diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/base_defender.gd | 2 | ||||
-rw-r--r-- | scripts/cursor.gd | 7 | ||||
-rw-r--r-- | scripts/game_data.gd | 7 | ||||
-rw-r--r-- | scripts/game_stats_config.gd | 20 | ||||
-rw-r--r-- | scripts/game_stats_config.gd.uid | 1 | ||||
-rw-r--r-- | scripts/warlock.gd | 9 | ||||
-rw-r--r-- | scripts/wyvern.gd | 12 |
7 files changed, 46 insertions, 12 deletions
diff --git a/scripts/base_defender.gd b/scripts/base_defender.gd index 66be11d..4ebe417 100644 --- a/scripts/base_defender.gd +++ b/scripts/base_defender.gd @@ -4,7 +4,7 @@ extends StaticBody2D var defender_range : float var fire_rate : float -var damage : int +var damage : float var target : CharacterBody2D func _on_fire_timer_timeout() -> void: diff --git a/scripts/cursor.gd b/scripts/cursor.gd index d36d5eb..d12f9e0 100644 --- a/scripts/cursor.gd +++ b/scripts/cursor.gd @@ -1,6 +1,7 @@ extends Node2D @onready var tilemap = get_node("../Map/TileMapLayer") +var game_stats_config = preload("res://resources/game_stats_config.tres") @onready var map_config = preload("res://resources/map_generator_resource.tres") var occupied_tiles = {} @@ -11,14 +12,14 @@ var dirs = {"move_right": Vector2.RIGHT, "move_left": Vector2.LEFT, "move_up": Vector2.UP, "move_down": Vector2.DOWN} -var towers : Dictionary = { +var towers : Dictionary[String, Dictionary] = { "place_warlock": { "scene": preload("res://scenes/warlock.tscn"), - "cost": 10 + "cost": game_stats_config.warlock_defender_cost }, "place_wyvern": { "scene": preload("res://scenes/wyvern.tscn"), - "cost": 15 + "cost": game_stats_config.wyvern_defender_cost } } diff --git a/scripts/game_data.gd b/scripts/game_data.gd index fd6a80e..7c82257 100644 --- a/scripts/game_data.gd +++ b/scripts/game_data.gd @@ -1,10 +1,11 @@ - extends Node +var game_stats_config = preload("res://resources/game_stats_config.tres") + signal life_changed signal morale_changed -var _life: int = 20 -var _morale: int = 10 +var _life: int = game_stats_config.starting_life +var _morale: int = game_stats_config.starting_morale func get_life() -> int: return _life diff --git a/scripts/game_stats_config.gd b/scripts/game_stats_config.gd new file mode 100644 index 0000000..671e146 --- /dev/null +++ b/scripts/game_stats_config.gd @@ -0,0 +1,20 @@ +extends Resource +class_name GameStatsConfig + +@export var starting_life : int = 20 +@export var starting_morale : int = 10 + +@export var warlock_damage : float = 5.0 +@export var warlock_fire_rate : float = 1.0 +@export var warlock_defender_range : float = 75.0 +@export var warlock_defender_cost : int = 10 + +@export var wyvern_damage : float = 2.0 +@export var wyvern_fire_rate : float = 1.0 +@export var wyvern_damage_tick_rate: float = 0.25 +@export var wyvern_defender_range : float = 35.0 +@export var wyvern_defender_cost : int = 15 + +@export var fodder_damage : float = 1.0 +@export var fodder_speed : float = 30.0 +@export var fodder_health : float = 25.0 diff --git a/scripts/game_stats_config.gd.uid b/scripts/game_stats_config.gd.uid new file mode 100644 index 0000000..0e78da8 --- /dev/null +++ b/scripts/game_stats_config.gd.uid @@ -0,0 +1 @@ +uid://dndluiku7wdi8 diff --git a/scripts/warlock.gd b/scripts/warlock.gd index 058f86f..4048bb0 100644 --- a/scripts/warlock.gd +++ b/scripts/warlock.gd @@ -1,10 +1,15 @@ extends "res://scripts/base_defender.gd" +var game_stats_config = preload("res://resources/game_stats_config.tres") var projectile: PackedScene = preload("res://scenes/warlock_projectile.tscn") +var range_collision : CollisionShape2D func _ready(): - damage = 5 - fire_rate = 1.0 + damage = game_stats_config.warlock_damage + fire_rate = game_stats_config.warlock_fire_rate + defender_range = game_stats_config.warlock_defender_range + range_collision = $Tower/CollisionShape2D + range_collision.shape.radius = defender_range func _on_fire_timer_timeout(): select_target() diff --git a/scripts/wyvern.gd b/scripts/wyvern.gd index ecd92ad..f90c019 100644 --- a/scripts/wyvern.gd +++ b/scripts/wyvern.gd @@ -1,12 +1,18 @@ extends "res://scripts/base_defender.gd" +var game_stats_config = preload("res://resources/game_stats_config.tres") var projectile: PackedScene = preload("res://scenes/wyvern_projectile.tscn") -var damage_tick_rate: float = 0.25 +var damage_tick_rate: float +var range_collision : CollisionShape2D var firing : bool = false func _ready(): - damage = 2 - fire_rate = 1.0 + damage = game_stats_config.wyvern_damage + fire_rate = game_stats_config.wyvern_fire_rate + damage_tick_rate = game_stats_config.wyvern_damage_tick_rate + defender_range = game_stats_config.wyvern_defender_range + range_collision = $Tower/CollisionShape2D + range_collision.shape.radius = defender_range func _process(_delta): select_target() |