summaryrefslogtreecommitdiff
path: root/Stages/Wintermaul/wintermaul.gd
diff options
context:
space:
mode:
Diffstat (limited to 'Stages/Wintermaul/wintermaul.gd')
-rw-r--r--Stages/Wintermaul/wintermaul.gd50
1 files changed, 13 insertions, 37 deletions
diff --git a/Stages/Wintermaul/wintermaul.gd b/Stages/Wintermaul/wintermaul.gd
index 0de2cdb..73ad8c4 100644
--- a/Stages/Wintermaul/wintermaul.gd
+++ b/Stages/Wintermaul/wintermaul.gd
@@ -1,4 +1,3 @@
-class_name Wintermaul
extends Stage
@@ -19,40 +18,16 @@ var teams := Teams.new()
var income_frequency := 15.0
-class PriceMapTower:
- static var cost: int = 5
-
- static func component_range(number_of_towers: int = 1):
- return 100 * number_of_towers
- static func component_range_level(component: TowerComponent, number_of_towers: int = 1):
- return pow(5, component.level) * number_of_towers
-
- static func component_attack(number_of_towers: int = 1):
- return 100 * number_of_towers
- static func component_attack_level(component: TowerComponent, number_of_towers: int = 1):
- return 10 * component.level * number_of_towers
-
- static func component_frost(number_of_towers: int = 1):
- return 100 * number_of_towers
- static func component_frost_level(component: TowerComponent, number_of_towers: int = 1):
- return 10 * component.level * number_of_towers
-
- static func component_burn(number_of_towers: int = 1):
- return 100 * number_of_towers
- static func component_burn_level(component: TowerComponent, number_of_towers: int = 1):
- return 10 * component.level * number_of_towers
-
- static func component_poison(number_of_towers: int = 1):
- return 100 * number_of_towers
- static func component_poison_level(component: TowerComponent, number_of_towers: int = 1):
- return 10 * component.level * number_of_towers
-
var starting_lives := 10
var starting_money := 50
var starting_income := 5
var use_premade_teams := false
var premade_teams := {}
+@onready var selection_manager: SelectionManager = $SelectionManager
+@onready var money_manager: MoneyManager = $MoneyManager
+@onready var notification_manager: NotificationManager = $NotificationManager
+
func _init():
super._init()
@@ -122,7 +97,7 @@ func place_tower(remote_data: Dictionary):
var player = Network.get_player(tower.owner_id)
player.towers[tower.global_position] = tower
- player.money -= PriceMapTower.cost
+ player.money -= money_manager.get_tower_price()
Network.players_changed.emit()
_place_tower(%Towers, tower)
@@ -154,15 +129,15 @@ func spawn_unit(remote_data: Dictionary):
func can_place_tower():
- if Client.player.money < PriceMapTower.cost:
- add_status_message("Not enough money to build tower")
+ if Client.player.money < money_manager.get_tower_price():
+ notification_manager.add_status_message("Not enough money to build tower")
return false
return true
func can_spawn_unit(unit: Unit):
if Client.player.money < unit.unit_resource.cost:
- add_status_message("Not enough money to spawn unit")
+ notification_manager.add_status_message("Not enough money to spawn unit")
return false
return true
@@ -182,17 +157,18 @@ func get_team(player: Player) -> Team:
return null
-func get_spawn():
+func get_spawn() -> Spawn:
return %Spawn
-func get_overwrite_target():
+func get_spawn_target() -> Node2D:
var team = get_team(Client.player)
if team == teams.top:
return [$Paths/PathNodeLeftDown, $Paths/PathNodeRightDown].pick_random()
elif team == teams.bottom:
return [$Paths/PathNodeLeftUp, $Paths/PathNodeRightUp].pick_random()
+ return null
func get_builder_collision_masks():
@@ -224,7 +200,7 @@ func update_lives(team: String, lives: int):
lives_changed.emit()
if lives < 0:
- add_status_message("Team " + team + " lost " + str(abs(lives)) + " life")
+ notification_manager.add_status_message("Team " + team + " lost " + str(abs(lives)) + " life")
if teams[team].lives <= 0:
- add_status_message("Team " + team + " lost the game")
+ notification_manager.add_status_message("Team " + team + " lost the game")