diff options
author | bd <bdunahu@operationnull.com> | 2025-05-23 18:23:54 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-05-23 18:23:54 -0400 |
commit | 5eb70873a34bdb0f20a5a4518115c73e957731ca (patch) | |
tree | 65c24b4ff15f2ace361dc38f2fa809448dbbe130 | |
parent | 39acc5aff9c7ac75b34364ed4d389d7a6bcfc53d (diff) |
Refactor crawlers to define sprites in game_stats_config
-rw-r--r-- | scenes/fodder.tscn | 5 | ||||
-rw-r--r-- | scenes/gnome.tscn | 5 | ||||
-rw-r--r-- | scenes/soldier.tscn | 5 | ||||
-rw-r--r-- | scripts/base_crawler.gd | 3 | ||||
-rw-r--r-- | scripts/fodder.gd | 9 | ||||
-rw-r--r-- | scripts/game_stats_config.gd | 37 | ||||
-rw-r--r-- | scripts/gnome.gd | 9 | ||||
-rw-r--r-- | scripts/soldier.gd | 10 |
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() |