diff options
Diffstat (limited to 'Stages/Wintermaul/wintermaul.gd')
-rw-r--r-- | Stages/Wintermaul/wintermaul.gd | 50 |
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") |