summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scenes/fodder.tscn5
-rw-r--r--scenes/gnome.tscn5
-rw-r--r--scenes/soldier.tscn5
-rw-r--r--scripts/base_crawler.gd3
-rw-r--r--scripts/fodder.gd9
-rw-r--r--scripts/game_stats_config.gd37
-rw-r--r--scripts/gnome.gd9
-rw-r--r--scripts/soldier.gd10
8 files changed, 45 insertions, 38 deletions
diff --git a/scenes/fodder.tscn b/scenes/fodder.tscn
index b824f30..44b6069 100644
--- a/scenes/fodder.tscn
+++ b/scenes/fodder.tscn
@@ -1,7 +1,6 @@
-[gd_scene load_steps=4 format=3 uid="uid://rp5orgc6ae7j"]
+[gd_scene load_steps=3 format=3 uid="uid://rp5orgc6ae7j"]
[ext_resource type="Script" uid="uid://gn1504blq1pf" path="res://scripts/fodder.gd" id="1_4lnnv"]
-[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="2_eps3e"]
[sub_resource type="CircleShape2D" id="CircleShape2D_220eh"]
radius = 8.06226
@@ -13,6 +12,4 @@ script = ExtResource("1_4lnnv")
shape = SubResource("CircleShape2D_220eh")
[node name="Sprite2D" type="Sprite2D" parent="."]
-texture = ExtResource("2_eps3e")
-region_enabled = true
region_rect = Rect2(400, 64, 16, 16)
diff --git a/scenes/gnome.tscn b/scenes/gnome.tscn
index dbda07e..ecbb1a4 100644
--- a/scenes/gnome.tscn
+++ b/scenes/gnome.tscn
@@ -1,7 +1,6 @@
-[gd_scene load_steps=4 format=3 uid="uid://devcq5vsnrrm7"]
+[gd_scene load_steps=3 format=3 uid="uid://devcq5vsnrrm7"]
[ext_resource type="Script" uid="uid://ctq24sn8yo6me" path="res://scripts/gnome.gd" id="1_2fhd7"]
-[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="2_88agf"]
[sub_resource type="CircleShape2D" id="CircleShape2D_220eh"]
radius = 8.06226
@@ -13,6 +12,4 @@ script = ExtResource("1_2fhd7")
shape = SubResource("CircleShape2D_220eh")
[node name="Sprite2D" type="Sprite2D" parent="."]
-texture = ExtResource("2_88agf")
-region_enabled = true
region_rect = Rect2(416, 144, 16, 16)
diff --git a/scenes/soldier.tscn b/scenes/soldier.tscn
index 97a6394..b9b920b 100644
--- a/scenes/soldier.tscn
+++ b/scenes/soldier.tscn
@@ -1,7 +1,6 @@
-[gd_scene load_steps=4 format=3 uid="uid://dvk754te5630x"]
+[gd_scene load_steps=3 format=3 uid="uid://dvk754te5630x"]
[ext_resource type="Script" uid="uid://cu73ekuhjmdoj" path="res://scripts/soldier.gd" id="1_q2rr1"]
-[ext_resource type="Texture2D" uid="uid://di2vybjsniag4" path="res://assets/tilemap.png" id="2_2oslh"]
[sub_resource type="CircleShape2D" id="CircleShape2D_220eh"]
radius = 8.06226
@@ -13,6 +12,4 @@ script = ExtResource("1_q2rr1")
shape = SubResource("CircleShape2D_220eh")
[node name="Sprite2D" type="Sprite2D" parent="."]
-texture = ExtResource("2_2oslh")
-region_enabled = true
region_rect = Rect2(448, 0, 16, 16)
diff --git a/scripts/base_crawler.gd b/scripts/base_crawler.gd
index ffc726c..7a961fc 100644
--- a/scripts/base_crawler.gd
+++ b/scripts/base_crawler.gd
@@ -1,17 +1,20 @@
extends CharacterBody2D
@onready var sprite_node = $Sprite2D
+@onready var util = preload("res://scripts/util.gd")
var damage : int
var speed : float
var max_health : float
var worth : int
+var sprite_atlas : Vector2i
var _health : float
var _timer : Timer
func _ready() -> void:
_health = max_health
+ sprite_node.texture = util.get_tile_texture(sprite_atlas)
_timer = Timer.new()
_timer.wait_time = speed / 60
diff --git a/scripts/fodder.gd b/scripts/fodder.gd
index 3c1dd22..b9ee8f0 100644
--- a/scripts/fodder.gd
+++ b/scripts/fodder.gd
@@ -3,9 +3,10 @@ extends "res://scripts/base_crawler.gd"
var game_stats_config = preload("res://resources/game_stats_config.tres")
func _ready() -> void:
- damage = game_stats_config.fodder_damage
- speed = game_stats_config.fodder_speed
- max_health = game_stats_config.fodder_health
- worth = game_stats_config.fodder_worth
+ damage = game_stats_config.crawlers["fodder"]["damage"]
+ speed = game_stats_config.crawlers["fodder"]["speed"]
+ max_health = game_stats_config.crawlers["fodder"]["health"]
+ worth = game_stats_config.crawlers["fodder"]["worth"]
+ sprite_atlas = game_stats_config.crawlers["fodder"]["sprite"]
super()
diff --git a/scripts/game_stats_config.gd b/scripts/game_stats_config.gd
index 82ddbd1..1710dbc 100644
--- a/scripts/game_stats_config.gd
+++ b/scripts/game_stats_config.gd
@@ -55,17 +55,26 @@ class_name GameStatsConfig
}
# crawlers
-@export var fodder_damage : float = 1.0
-@export var fodder_speed : float = 40.0
-@export var fodder_health : float = 10.0
-@export var fodder_worth : float = 2.0
-
-@export var soldier_damage : float = 1.0
-@export var soldier_speed : float = 30.0
-@export var soldier_health : float = 35.0
-@export var soldier_worth : float = 5.0
-
-@export var gnome_damage : float = 1.0
-@export var gnome_speed : float = 90
-@export var gnome_health : float = 8.0
-@export var gnome_worth : float = 3.0
+@export var crawlers : Dictionary[String, Dictionary] = {
+ "fodder": {
+ "damage" : 1.0,
+ "speed" : 40.0,
+ "health": 10.0,
+ "worth": 2.0,
+ "sprite": Vector2i(25, 4),
+ },
+ "soldier": {
+ "damage" : 1.0,
+ "speed" : 30.0,
+ "health": 35.0,
+ "worth": 5.0,
+ "sprite": Vector2i(28, 0),
+ },
+ "gnome": {
+ "damage": 1.0,
+ "speed" : 90.0,
+ "health": 8.0,
+ "worth": 3.0,
+ "sprite": Vector2i(26, 9),
+ },
+}
diff --git a/scripts/gnome.gd b/scripts/gnome.gd
index 308e5fc..c5f7777 100644
--- a/scripts/gnome.gd
+++ b/scripts/gnome.gd
@@ -3,9 +3,10 @@ extends "res://scripts/base_crawler.gd"
var game_stats_config = preload("res://resources/game_stats_config.tres")
func _ready() -> void:
- damage = game_stats_config.gnome_damage
- speed = game_stats_config.gnome_speed
- max_health = game_stats_config.gnome_health
- worth = game_stats_config.gnome_worth
+ damage = game_stats_config.crawlers["gnome"]["damage"]
+ speed = game_stats_config.crawlers["gnome"]["speed"]
+ max_health = game_stats_config.crawlers["gnome"]["health"]
+ worth = game_stats_config.crawlers["gnome"]["worth"]
+ sprite_atlas = game_stats_config.crawlers["gnome"]["sprite"]
super()
diff --git a/scripts/soldier.gd b/scripts/soldier.gd
index 39f9350..85a1276 100644
--- a/scripts/soldier.gd
+++ b/scripts/soldier.gd
@@ -3,8 +3,10 @@ extends "res://scripts/base_crawler.gd"
var game_stats_config = preload("res://resources/game_stats_config.tres")
func _ready() -> void:
- damage = game_stats_config.soldier_damage
- speed = game_stats_config.soldier_speed
- max_health = game_stats_config.soldier_health
- worth = game_stats_config.soldier_worth
+ damage = game_stats_config.crawlers["soldier"]["damage"]
+ speed = game_stats_config.crawlers["soldier"]["speed"]
+ max_health = game_stats_config.crawlers["soldier"]["health"]
+ worth = game_stats_config.crawlers["soldier"]["worth"]
+ sprite_atlas = game_stats_config.crawlers["soldier"]["sprite"]
+
super()