summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--resources/game_stats_config.tres40
-rw-r--r--scenes/knight.tscn15
-rw-r--r--scripts/game_data.gd2
-rw-r--r--scripts/game_stats_config.gd39
-rw-r--r--scripts/wave_spawner.gd2
5 files changed, 64 insertions, 34 deletions
diff --git a/resources/game_stats_config.tres b/resources/game_stats_config.tres
index f2ade17..375efbd 100644
--- a/resources/game_stats_config.tres
+++ b/resources/game_stats_config.tres
@@ -4,17 +4,16 @@
[resource]
script = ExtResource("1_t0c0a")
-starting_life = 40
+starting_life = 15
starting_morale = 10
wave_data = [{
15: {
-"fodder": 5
+"fodder": 4
},
27: {
-"fodder": 8
+"fodder": 5
},
30: {
-"fodder": 1,
"soldier": 2
}
}, {
@@ -29,17 +28,17 @@ wave_data = [{
"soldier": 6
},
30: {
-"fodder": 5
+"fodder": 6
}
}, {
7: {
-"gnome": 10
+"gnome": 6
},
14: {
-"soldier": 4
+"knight": 4
},
30: {
-"gnome": 6,
+"gnome": 4,
"soldier": 8
}
}]
@@ -48,7 +47,7 @@ defenders = Array[Dictionary]([{
"cost": 10,
"damage": 4.0,
"desc": "Warlock",
-"fire_rate": 1.2,
+"fire_rate": 1.1,
"is_valid": true,
"max_projectile_lifetime": 7.5,
"projectile_speed": 125,
@@ -84,7 +83,7 @@ defenders = Array[Dictionary]([{
}, {
"chaos_factor": 10,
"cost": 15,
-"damage": 1.0,
+"damage": 1.5,
"damage_tick_rate": 0.25,
"desc": "Wyvern",
"fire_delay": 1.0,
@@ -150,21 +149,28 @@ crawlers = Dictionary[String, Dictionary]({
"health": 10.0,
"speed": 40.0,
"sprite": Vector2i(25, 4),
-"worth": 2.0
+"worth": 1.0
},
"gnome": {
"damage": 1.0,
-"health": 8.0,
-"speed": 90.0,
+"health": 20.0,
+"speed": 80.0,
"sprite": Vector2i(26, 9),
"worth": 3.0
},
-"soldier": {
+"knight": {
"damage": 1.0,
-"health": 35.0,
-"speed": 30.0,
+"health": 55.0,
+"speed": 25.0,
"sprite": Vector2i(28, 0),
-"worth": 5.0
+"worth": 6.0
+},
+"soldier": {
+"damage": 1.0,
+"health": 25.0,
+"speed": 35.0,
+"sprite": Vector2i(27, 0),
+"worth": 1.0
}
})
metadata/_custom_type_script = "uid://dndluiku7wdi8"
diff --git a/scenes/knight.tscn b/scenes/knight.tscn
new file mode 100644
index 0000000..921e101
--- /dev/null
+++ b/scenes/knight.tscn
@@ -0,0 +1,15 @@
+[gd_scene load_steps=3 format=3 uid="uid://dh6732v1ja8yk"]
+
+[ext_resource type="Script" uid="uid://fyov84nkbjh8" path="res://scripts/knight.gd" id="1_dp28g"]
+
+[sub_resource type="CircleShape2D" id="CircleShape2D_220eh"]
+radius = 8.06226
+
+[node name="CrawlerKnight" type="CharacterBody2D"]
+script = ExtResource("1_dp28g")
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
+shape = SubResource("CircleShape2D_220eh")
+
+[node name="Sprite2D" type="Sprite2D" parent="."]
+region_rect = Rect2(448, 0, 16, 16)
diff --git a/scripts/game_data.gd b/scripts/game_data.gd
index cc20c13..8890eff 100644
--- a/scripts/game_data.gd
+++ b/scripts/game_data.gd
@@ -56,7 +56,7 @@ func start_spawning():
func stop_spawning():
_is_spawning = false
- if (_current_wave > game_stats_config.wave_data.size()):
+ if (_current_wave >= game_stats_config.wave_data.size()):
# TODO
print("win!")
else:
diff --git a/scripts/game_stats_config.gd b/scripts/game_stats_config.gd
index 3b19b69..94d2ecc 100644
--- a/scripts/game_stats_config.gd
+++ b/scripts/game_stats_config.gd
@@ -2,26 +2,26 @@ extends Resource
class_name GameStatsConfig
# game stats
-@export var starting_life : int = 20
+@export var starting_life : int = 15
@export var starting_morale : int = 10
# waves
@export var wave_data = [
{
- 15: {"fodder": 5},
+ 15: {"fodder": 4},
27: {"fodder": 8},
- 30: {"fodder": 1, "soldier": 2},
+ 30: {"soldier": 1},
},
{
5: {"fodder": 6},
10: {"soldier": 2},
20: {"fodder": 5, "soldier": 6},
- 30: {"fodder": 5},
+ 30: {"fodder": 6},
},
{
- 7: {"gnome": 10},
- 14: {"soldier": 4},
- 30: {"gnome": 6, "soldier": 8}
+ 7: {"gnome": 6},
+ 14: {"knight": 4},
+ 30: {"gnome": 4, "soldier": 8}
}
]
@@ -32,7 +32,7 @@ enum defenders_index {WARLOCK, WYVERN, WEREWOLF, WELLSPRING}
"desc": "Warlock",
"is_valid": true,
"damage" : 4.0,
- "fire_rate" : 1.2,
+ "fire_rate" : 1.1,
"range": 75.0,
"sprite_panel": Vector2i(32, 4),
"sprite_attacking": Vector2i(28, 1),
@@ -76,7 +76,7 @@ enum defenders_index {WARLOCK, WYVERN, WEREWOLF, WELLSPRING}
{
"desc": "Wyvern",
"is_valid": true,
- "damage" : 1.0,
+ "damage" : 1.5,
"fire_delay" : 1.0,
"range": 40.0,
"projectile_range": 45.0,
@@ -153,21 +153,28 @@ enum defenders_index {WARLOCK, WYVERN, WEREWOLF, WELLSPRING}
"damage" : 1.0,
"speed" : 40.0,
"health": 10.0,
- "worth": 2.0,
+ "worth": 1.0,
"sprite": Vector2i(25, 4),
},
"soldier": {
"damage" : 1.0,
- "speed" : 30.0,
- "health": 35.0,
- "worth": 5.0,
- "sprite": Vector2i(28, 0),
+ "speed" : 35.0,
+ "health": 25.0,
+ "worth": 1.0,
+ "sprite": Vector2i(27, 0),
},
"gnome": {
"damage": 1.0,
- "speed" : 90.0,
- "health": 8.0,
+ "speed" : 80.0,
+ "health": 20.0,
"worth": 3.0,
"sprite": Vector2i(26, 9),
},
+ "knight": {
+ "damage" : 1.0,
+ "speed" : 25.0,
+ "health": 55.0,
+ "worth": 6.0,
+ "sprite": Vector2i(28, 0),
+ },
}
diff --git a/scripts/wave_spawner.gd b/scripts/wave_spawner.gd
index 653fe92..dfbd265 100644
--- a/scripts/wave_spawner.gd
+++ b/scripts/wave_spawner.gd
@@ -5,6 +5,7 @@ extends Node2D
@onready var fodder_enemy = preload("res://scenes/fodder.tscn")
@onready var soldier_enemy = preload("res://scenes/soldier.tscn")
@onready var gnome_enemy = preload("res://scenes/gnome.tscn")
+@onready var knight_enemy = preload("res://scenes/gnome.tscn")
@onready var map = get_node("../Map")
@onready var _path : Path2D
@@ -16,6 +17,7 @@ func _ready() -> void:
"fodder": fodder_enemy,
"soldier": soldier_enemy,
"gnome": gnome_enemy,
+ "knight": knight_enemy,
}
var curve : Curve2D = Curve2D.new()