some refactoring
This commit is contained in:
parent
c05a396954
commit
a19250777f
@ -1,13 +1,9 @@
|
|||||||
[gd_scene load_steps=6 format=3 uid="uid://dl0d1m1gfcd4o"]
|
[gd_scene load_steps=5 format=3 uid="uid://dl0d1m1gfcd4o"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://f7n8gd1wlv4v" path="res://Scenes/Player/UI/spawnable_button.tscn" id="1_tvnet"]
|
[ext_resource type="PackedScene" uid="uid://f7n8gd1wlv4v" path="res://Scenes/Player/UI/spawnable_button.tscn" id="1_tvnet"]
|
||||||
[ext_resource type="PackedScene" uid="uid://brnx3xyyd0e71" path="res://Scenes/Spawnables/bat_spawnable.tscn" id="2_borla"]
|
[ext_resource type="PackedScene" uid="uid://brnx3xyyd0e71" path="res://Scenes/Spawnables/bat_spawnable.tscn" id="2_borla"]
|
||||||
[ext_resource type="Texture2D" uid="uid://ddvr5ltbo8ome" path="res://Assets/Bat/noBKG_BatFlight_strip.png" id="3_5io10"]
|
[ext_resource type="Texture2D" uid="uid://ddvr5ltbo8ome" path="res://Assets/Bat/noBKG_BatFlight_strip.png" id="3_5io10"]
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_qf7uu"]
|
|
||||||
atlas = ExtResource("3_5io10")
|
|
||||||
region = Rect2(0, 0, 64, 64)
|
|
||||||
|
|
||||||
[sub_resource type="AtlasTexture" id="AtlasTexture_if561"]
|
[sub_resource type="AtlasTexture" id="AtlasTexture_if561"]
|
||||||
resource_local_to_scene = true
|
resource_local_to_scene = true
|
||||||
atlas = ExtResource("3_5io10")
|
atlas = ExtResource("3_5io10")
|
||||||
@ -15,7 +11,6 @@ region = Rect2(64, 0, 64, 64)
|
|||||||
|
|
||||||
[node name="BatButton" instance=ExtResource("1_tvnet")]
|
[node name="BatButton" instance=ExtResource("1_tvnet")]
|
||||||
spawnableScene = ExtResource("2_borla")
|
spawnableScene = ExtResource("2_borla")
|
||||||
spawnableIcon = SubResource("AtlasTexture_qf7uu")
|
|
||||||
|
|
||||||
[node name="AnimatedTextureRect" parent="." index="0"]
|
[node name="AnimatedTextureRect" parent="." index="0"]
|
||||||
texture = SubResource("AtlasTexture_if561")
|
texture = SubResource("AtlasTexture_if561")
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://bj2kxv2gq5ase"]
|
[gd_scene load_steps=3 format=3 uid="uid://bj2kxv2gq5ase"]
|
||||||
|
|
||||||
[ext_resource type="Script" path="res://Scenes/Player/UI/cursor_state.gd" id="1_ghv1b"]
|
[ext_resource type="Script" path="res://Scenes/Player/UI/cursor_state.gd" id="1_ghv1b"]
|
||||||
|
[ext_resource type="Theme" uid="uid://dr1h7to56a2pv" path="res://Themes/base_theme.tres" id="2_4ke2g"]
|
||||||
|
|
||||||
[node name="CursorState" type="Node2D"]
|
[node name="CursorState" type="Node2D"]
|
||||||
script = ExtResource("1_ghv1b")
|
script = ExtResource("1_ghv1b")
|
||||||
@ -10,6 +11,7 @@ offset_left = 11.5
|
|||||||
offset_top = 14.0
|
offset_top = 14.0
|
||||||
offset_right = 81.5
|
offset_right = 81.5
|
||||||
offset_bottom = 40.0
|
offset_bottom = 40.0
|
||||||
|
theme = ExtResource("2_4ke2g")
|
||||||
|
|
||||||
[node name="Image" type="Sprite2D" parent="."]
|
[node name="Image" type="Sprite2D" parent="."]
|
||||||
position = Vector2(11.5, 14)
|
position = Vector2(11.5, 14)
|
||||||
|
@ -2,7 +2,6 @@ class_name SpawnableButton
|
|||||||
extends Button
|
extends Button
|
||||||
|
|
||||||
@export var spawnableScene : PackedScene = null
|
@export var spawnableScene : PackedScene = null
|
||||||
@export var spawnableIcon : Texture2D = null
|
|
||||||
|
|
||||||
@onready var animationPlayer : AnimationPlayer = $AnimationPlayer
|
@onready var animationPlayer : AnimationPlayer = $AnimationPlayer
|
||||||
|
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
var currentSpawnableScene : PackedScene = null
|
var currentSpawnableScene : PackedScene = null
|
||||||
|
var currentRefInstance : TemplateSpawnable = null
|
||||||
var currentStateIcon : Texture2D = null
|
var currentStateIcon : Texture2D = null
|
||||||
var spawnedMonsters : Array = []
|
var allSpawnedMonsters : Dictionary = {}
|
||||||
|
var currentSpawnedMonsters : Array = []
|
||||||
@onready var menuZone : Control = $Camera2D/CanvasLayer/PlayerUI.menuZone
|
@onready var menuZone : Control = $Camera2D/CanvasLayer/PlayerUI.menuZone
|
||||||
@onready var enemy : CharacterBody2D = $"../Enemy"
|
@onready var enemy : CharacterBody2D = $"../Enemy"
|
||||||
@onready var playableArea : Area2D = $"../PlayableArea"
|
@onready var playableArea : Area2D = $"../PlayableArea"
|
||||||
@ -20,10 +22,13 @@ func _process(delta):
|
|||||||
handle_cursor_state()
|
handle_cursor_state()
|
||||||
|
|
||||||
func add_monster(monster : TemplateSpawnable):
|
func add_monster(monster : TemplateSpawnable):
|
||||||
spawnedMonsters.append(monster)
|
currentSpawnedMonsters.append(monster)
|
||||||
|
if !allSpawnedMonsters.has(monster.monsterName):
|
||||||
|
allSpawnedMonsters[monster.monsterName] = 0
|
||||||
|
allSpawnedMonsters[monster.monsterName] += 1
|
||||||
|
|
||||||
func remove_monster(monster : TemplateSpawnable):
|
func remove_monster(monster : TemplateSpawnable):
|
||||||
spawnedMonsters.erase(monster)
|
currentSpawnedMonsters.erase(monster)
|
||||||
|
|
||||||
func entered_playable_area():
|
func entered_playable_area():
|
||||||
cursorState.set_cursor_state("", currentStateIcon)
|
cursorState.set_cursor_state("", currentStateIcon)
|
||||||
@ -57,9 +62,13 @@ func spawn_current():
|
|||||||
var spawnable = currentSpawnableScene.instantiate()
|
var spawnable = currentSpawnableScene.instantiate()
|
||||||
spawnable.global_position = get_global_mouse_position()
|
spawnable.global_position = get_global_mouse_position()
|
||||||
$"..".add_child(spawnable)
|
$"..".add_child(spawnable)
|
||||||
|
spawnable.signal_death.connect(monster_death)
|
||||||
|
add_monster(spawnable)
|
||||||
if enemy != null:
|
if enemy != null:
|
||||||
enemy.add_foe(spawnable)
|
enemy.add_foe(spawnable)
|
||||||
|
|
||||||
|
func monster_death(monster):
|
||||||
|
remove_monster(monster)
|
||||||
|
|
||||||
func is_in_menu():
|
func is_in_menu():
|
||||||
return menuZone.get_rect().has_point(get_local_mouse_position())
|
return menuZone.get_rect().has_point(get_local_mouse_position())
|
||||||
@ -72,6 +81,12 @@ func _on_player_ui_button_changed(currentButton):
|
|||||||
cursorState.set_cursor_state("", null)
|
cursorState.set_cursor_state("", null)
|
||||||
return
|
return
|
||||||
|
|
||||||
currentStateIcon = currentButton.spawnableIcon
|
if currentRefInstance != null:
|
||||||
|
currentRefInstance.queue_free()
|
||||||
|
currentRefInstance = null
|
||||||
|
|
||||||
currentSpawnableScene = currentButton.spawnableScene
|
currentSpawnableScene = currentButton.spawnableScene
|
||||||
|
currentRefInstance = currentSpawnableScene.instantiate()
|
||||||
|
currentStateIcon = currentRefInstance.monsterIcon
|
||||||
cursorState.set_cursor_state("", currentStateIcon)
|
cursorState.set_cursor_state("", currentStateIcon)
|
||||||
|
|
||||||
|
@ -1,8 +1,13 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://brnx3xyyd0e71"]
|
[gd_scene load_steps=5 format=3 uid="uid://brnx3xyyd0e71"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://kkfxguj0lr5a" path="res://Scenes/Spawnables/template_spawnable.tscn" id="1_verf7"]
|
[ext_resource type="PackedScene" uid="uid://kkfxguj0lr5a" path="res://Scenes/Spawnables/template_spawnable.tscn" id="1_verf7"]
|
||||||
|
[ext_resource type="Texture2D" uid="uid://ddvr5ltbo8ome" path="res://Assets/Bat/noBKG_BatFlight_strip.png" id="2_0p8tq"]
|
||||||
[ext_resource type="Script" path="res://Scenes/Spawnables/AIs/ai_bat.gd" id="2_x3ldf"]
|
[ext_resource type="Script" path="res://Scenes/Spawnables/AIs/ai_bat.gd" id="2_x3ldf"]
|
||||||
|
|
||||||
|
[sub_resource type="AtlasTexture" id="AtlasTexture_bnd0j"]
|
||||||
|
atlas = ExtResource("2_0p8tq")
|
||||||
|
region = Rect2(0, 0, 64, 64)
|
||||||
|
|
||||||
[node name="BatSpawnable" instance=ExtResource("1_verf7")]
|
[node name="BatSpawnable" instance=ExtResource("1_verf7")]
|
||||||
maxHp = 10
|
maxHp = 10
|
||||||
attackSpeed = 50.0
|
attackSpeed = 50.0
|
||||||
@ -10,6 +15,10 @@ speed = 4000.0
|
|||||||
damage = 1
|
damage = 1
|
||||||
priority = 1
|
priority = 1
|
||||||
expReward = 50
|
expReward = 50
|
||||||
|
cost = 100
|
||||||
|
minSpawnRange = 10.0
|
||||||
|
monsterName = "Bat"
|
||||||
|
monsterIcon = SubResource("AtlasTexture_bnd0j")
|
||||||
|
|
||||||
[node name="AnimatedSprite2D" parent="." index="1"]
|
[node name="AnimatedSprite2D" parent="." index="1"]
|
||||||
frame_progress = 0.482614
|
frame_progress = 0.482614
|
||||||
|
@ -12,7 +12,8 @@ const ATTACK_COOLDOWN : float = 100
|
|||||||
@export var cost : int = 0
|
@export var cost : int = 0
|
||||||
@export var minSpawnRange : float = 0
|
@export var minSpawnRange : float = 0
|
||||||
@export var canAttack : bool = true
|
@export var canAttack : bool = true
|
||||||
|
@export var monsterName : String = ""
|
||||||
|
@export var monsterIcon : Texture2D = null
|
||||||
|
|
||||||
@onready var ai : Node = $AI
|
@onready var ai : Node = $AI
|
||||||
@onready var animatedSprite : AnimatedSprite2D = $AnimatedSprite2D
|
@onready var animatedSprite : AnimatedSprite2D = $AnimatedSprite2D
|
||||||
@ -29,6 +30,8 @@ var enemy : CharacterBody2D = null
|
|||||||
var currentHp : int = 0
|
var currentHp : int = 0
|
||||||
var cooldown : float = 0
|
var cooldown : float = 0
|
||||||
|
|
||||||
|
signal signal_death(monster : TemplateSpawnable)
|
||||||
|
|
||||||
func _ready():
|
func _ready():
|
||||||
enemy = get_node("../Enemy")
|
enemy = get_node("../Enemy")
|
||||||
currentHp = maxHp
|
currentHp = maxHp
|
||||||
@ -95,6 +98,7 @@ func receive_damage(dmg):
|
|||||||
|
|
||||||
func die():
|
func die():
|
||||||
enemy.remove_foe(self)
|
enemy.remove_foe(self)
|
||||||
|
signal_death.emit(self)
|
||||||
bodyCollision.disabled = true
|
bodyCollision.disabled = true
|
||||||
damageCollision.disabled = true
|
damageCollision.disabled = true
|
||||||
spawnableUI.visible = false
|
spawnableUI.visible = false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user