summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rw-r--r--scripts/base_defender.gd2
-rw-r--r--scripts/cursor.gd7
-rw-r--r--scripts/game_data.gd7
-rw-r--r--scripts/game_stats_config.gd20
-rw-r--r--scripts/game_stats_config.gd.uid1
-rw-r--r--scripts/warlock.gd9
-rw-r--r--scripts/wyvern.gd12
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()