localised resources and remaining scenes

This commit is contained in:
2025-08-21 18:41:32 +10:00
parent 2859b6dd43
commit 57a57d2b91
38 changed files with 484 additions and 129 deletions

View File

@@ -1,7 +1,7 @@
class_name CardText
extends Resource
@export var target_type: Data.TargetType
@export var target_type: Array[Data.TargetType]
@export var energy_type: Data.EnergyType
@export var attributes: Array[StatAttribute]
@export_multiline var text: String

View File

@@ -13,7 +13,7 @@ var stats: Card
func set_card(value: Card) -> void:
stats = value
title_text.text = stats.display_name
target_label.text = str(Data.TargetType.keys()[stats.tower_stats.target_type])
target_label.text = "replace me"
rarity_sprite.region_rect = Rect2(64 * stats.rarity, 0, 64, 64)
energy_cost.text = str(value.cost)
@@ -22,8 +22,7 @@ func process_card_text(card_text: CardText) -> String:
var processed_string: String = card_text.text
for stat: StatAttribute in card_text.attributes:
processed_string = processed_string.replace(stat.key, str(stat.value))
processed_string = processed_string.replace("/", "[color=red]")
processed_string = processed_string.replace("\\", "[color=black]")
processed_string = processed_string.replace("%", "")
return processed_string
@@ -34,4 +33,4 @@ func view_weapon() -> void:
func view_tower() -> void:
description.text = process_card_text(stats.tower_stats)
target_label.text = str(Data.TargetType.keys()[stats.tower_stats.target_type])
target_label.text = str("go fuck yourself")

View File

@@ -14,7 +14,7 @@ var keymap_data: KeymapData
const DEFAULT_SERVER_PORT: int = 58008
enum DamageIndicationType {PLAYER = 0, TOWER = 1, OTHER_PLAYER = 2, STATUS = 3}
enum EnergyType {UNDEFINED = 0, DISCRETE = 1, CONTINUOUS = 2}
enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2, BOTH = 3}
enum TargetType {UNDEFINED = 0, LAND = 1, AIR = 2}
enum EnemyType {UNDEFINED = 0, LAND = 1, AIR = 2}
enum Rarity {COMMON = 0, UNCOMMON = 1, RARE = 2, EPIC = 3, LEGENDARY = 4}
enum CardTags {DAMAGE = 0, UTILITY = 1, TARGETS_FLYING = 2}

View File

@@ -22,7 +22,7 @@ var gamemode: GameMode = null
var level: Level
var enemies: int = 0
var objective_health: int = 120
var wave: int = 0
var wave: int
var pot: float
var UILayer: CanvasLayer
var chatbox: Chatbox
@@ -161,7 +161,7 @@ func ready_player(player_ready_true: bool) -> void:
func spawn_enemy_wave() -> void:
level.shop.close()
wave += 1
#wave += 1
level.disable_all_tower_frames()
level.flow_field.calculate()
for spawn: EnemySpawner in level.enemy_spawns:
@@ -174,10 +174,10 @@ func spawn_enemy_wave() -> void:
func set_upcoming_wave() -> void:
if is_multiplayer_authority():
var spawn_power: int = WaveManager.calculate_spawn_power(wave + 1, connected_players_nodes.size())
var spawn_power: int = WaveManager.calculate_spawn_power(wave, connected_players_nodes.size())
#var new_wave: Dictionary = WaveManager.generate_wave(spawn_power, level.enemy_pool)
var new_wave: Wave = WaveManager.generate_wave(spawn_power, level.enemy_pool, level.enemy_spawns)
temp_set_upcoming_wave(new_wave, WaveManager.calculate_pot(wave + 1, connected_players_nodes.size()))
temp_set_upcoming_wave(new_wave, WaveManager.calculate_pot(wave, connected_players_nodes.size()))
#networked_set_upcoming_wave.rpc(new_wave, 6 + floori(spawn_power / 70.0))
@@ -238,12 +238,14 @@ func damage_goal(enemy: Enemy, penalty: int) -> void:
func end_wave() -> void:
wave += 1
for peer_id: int in connected_players_nodes:
var player: Hero = connected_players_nodes[peer_id] as Hero
player.hud.set_wave_count(wave)
player.currency += ceili(pot / connected_players_nodes.size())
player.energy = Data.player_energy
player.blank_cassettes += 1
if wave % 2 == 0:
player.blank_cassettes += 1
if card_gameplay:
player.iterate_duration()
player.draw_to_hand_size()
@@ -291,7 +293,7 @@ func setup() -> void:
game_active = false
enemies = 0
objective_health = 120
wave = 0
wave = 1
stats = RoundStats.new()
game_setup.emit()

View File

@@ -49,7 +49,7 @@ func find_multiple_targets() -> Array[EnemyController]:
continue
if tower.global_position.distance_to(enemy.global_position) > tower.target_range:
continue
if !(enemy.stats.target_type & tower.stats.target_type):
if !tower.stats.target_type.has(enemy.stats.target_type):
continue
#if multiple_targets_cache.has(enemy):
# continue