init
This commit is contained in:
81
levels/battle_state/battle_state.gd
Executable file
81
levels/battle_state/battle_state.gd
Executable file
@@ -0,0 +1,81 @@
|
||||
class_name BattleState
|
||||
extends Control
|
||||
|
||||
|
||||
@export var enemy_list:Array[Enemy] = [null, null, null]
|
||||
@export var animation_player:AnimationPlayer
|
||||
@onready var enemy_label_1: Label = %EnemyLabel1
|
||||
@onready var enemy_label_2: Label = %EnemyLabel2
|
||||
@onready var enemy_label_3: Label = %EnemyLabel3
|
||||
@onready var pos_1: Marker2D = %Pos1
|
||||
@onready var pos_2: Marker2D = %Pos2
|
||||
@onready var pos_3: Marker2D = %Pos3
|
||||
var world:World
|
||||
|
||||
func start_battle(list:Array[PackedScene], enemy_name:Array[String]) -> void:
|
||||
delete_all_enemies()
|
||||
var i:int = 0
|
||||
for enemy:PackedScene in list:
|
||||
if enemy != null:
|
||||
var new_enemy:Enemy = enemy.instantiate() as Enemy
|
||||
if i == 0:
|
||||
new_enemy.position = pos_1.global_position
|
||||
enemy_label_1.text = enemy_name[0].to_upper()
|
||||
elif i == 1:
|
||||
new_enemy.position = pos_2.global_position
|
||||
enemy_label_2.text = enemy_name[1].to_upper()
|
||||
elif i == 2:
|
||||
new_enemy.position = pos_3.global_position
|
||||
enemy_label_3.text = enemy_name[2].to_upper()
|
||||
add_child(new_enemy)
|
||||
enemy_list[i] = new_enemy
|
||||
i += 1
|
||||
|
||||
|
||||
|
||||
func start(current_world:World) -> void:
|
||||
world = current_world
|
||||
|
||||
func start_animation() -> void:
|
||||
animation_player.play("appear")
|
||||
|
||||
func command(current_command:String, input:String) -> void:
|
||||
match current_command:
|
||||
"FIGHT":
|
||||
fight(input)
|
||||
|
||||
|
||||
func fight(enemy_to_attack:String) -> void:
|
||||
var new_input:String = enemy_to_attack.replace(" ", "")
|
||||
new_input = new_input.to_upper()
|
||||
if new_input == enemy_label_1.text.replace(" ", ""):
|
||||
if enemy_list[0] != null:
|
||||
enemy_list[0].health -= world.player.damage
|
||||
if enemy_list[0].health <= 0:
|
||||
enemy_list[0].queue_free()
|
||||
enemy_list[0] = null
|
||||
elif new_input == enemy_label_2.text.replace(" ", ""):
|
||||
if enemy_list[1] != null:
|
||||
enemy_list[1].health -= world.player.damage
|
||||
if enemy_list[1].health <= 0:
|
||||
enemy_list[1].queue_free()
|
||||
enemy_list[1] = null
|
||||
elif new_input == enemy_label_3.text.replace(" ", ""):
|
||||
if enemy_list[2] != null:
|
||||
enemy_list[2].health -= world.player.damage
|
||||
if enemy_list[2].health <= 0:
|
||||
enemy_list[2].queue_free()
|
||||
enemy_list[2] = null
|
||||
for enemy in enemy_list:
|
||||
if enemy != null:
|
||||
print(enemy)
|
||||
return
|
||||
animation_player.play("win")
|
||||
await get_tree().create_timer(3).timeout
|
||||
world.end_battle()
|
||||
|
||||
|
||||
func delete_all_enemies() -> void:
|
||||
for enemy in enemy_list:
|
||||
if enemy != null:
|
||||
enemy.queue_free()
|
||||
1
levels/battle_state/battle_state.gd.uid
Executable file
1
levels/battle_state/battle_state.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://pf5yw3mcch7m
|
||||
242
levels/battle_state/battle_state.tscn
Executable file
242
levels/battle_state/battle_state.tscn
Executable file
@@ -0,0 +1,242 @@
|
||||
[gd_scene load_steps=8 format=4 uid="uid://cruod4lfh2xkh"]
|
||||
|
||||
[ext_resource type="TileSet" uid="uid://bfkalv0skoxy2" path="res://tileset.tres" id="1_3rf3u"]
|
||||
[ext_resource type="Script" uid="uid://pf5yw3mcch7m" path="res://levels/battle_state/battle_state.gd" id="1_tj1v8"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_2rq08"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Label4:visible_ratio")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Label4:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/2/type = "value"
|
||||
tracks/2/imported = false
|
||||
tracks/2/enabled = true
|
||||
tracks/2/path = NodePath("Label:visible")
|
||||
tracks/2/interp = 1
|
||||
tracks/2/loop_wrap = true
|
||||
tracks/2/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
tracks/3/type = "value"
|
||||
tracks/3/imported = false
|
||||
tracks/3/enabled = true
|
||||
tracks/3/path = NodePath("Label:visible_ratio")
|
||||
tracks/3/interp = 1
|
||||
tracks/3/loop_wrap = true
|
||||
tracks/3/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_tj1v8"]
|
||||
resource_name = "flash"
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Label4:visible_ratio")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("AnimationPlayer")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [&"flash", -1, 1.0, false],
|
||||
"method": &"play"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_nr2j5"]
|
||||
resource_name = "flash"
|
||||
loop_mode = 1
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Label4:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false, true]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("Label:visible")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.5, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false, true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_x0k2y"]
|
||||
resource_name = "win"
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("Label:visible_ratio")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 1),
|
||||
"transitions": PackedFloat32Array(1, 1),
|
||||
"update": 0,
|
||||
"values": [0.0, 1.0]
|
||||
}
|
||||
tracks/1/type = "method"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("AnimationPlayer")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(1),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [&"flash", -1, 1.0, false],
|
||||
"method": &"play"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nr2j5"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_2rq08"),
|
||||
&"appear": SubResource("Animation_tj1v8"),
|
||||
&"flash": SubResource("Animation_nr2j5"),
|
||||
&"win": SubResource("Animation_x0k2y")
|
||||
}
|
||||
|
||||
[node name="BattleState" type="Control" node_paths=PackedStringArray("enemy_list", "animation_player")]
|
||||
clip_contents = true
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_tj1v8")
|
||||
enemy_list = [null, null, null]
|
||||
animation_player = NodePath("AnimationPlayer")
|
||||
metadata/_edit_use_anchors_ = true
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||
tile_map_data = PackedByteArray("AAAAAB4AAAANAAwAAAABAB4AAAANAAwAAAACAB4AAAANAAwAAAADAB4AAAANAAwAAAAEAB4AAAANAAwAAAAFAB4AAAANAAwAAAAGAB4AAAANAAwAAAAHAB4AAAANAAwAAAAIAB4AAAANAAwAAAAJAB4AAAANAAwAAAAKAB4AAAANAAwAAAALAB4AAAANAAwAAAAMAB4AAAANAAwAAAANAB4AAAANAAwAAAAOAB4AAAANAAwAAAAPAB4AAAANAAwAAAAQAB4AAAANAAwAAAARAB4AAAANAAwAAAASAB4AAAANAAwAAAATAB4AAAANAAwAAAAUAB4AAAANAAwAAAAVAB4AAAANAAwAAAAWAB4AAAANAAwAAAAXAB4AAAANAAwAAAAYAB4AAAANAAwAAAAZAB4AAAANAAwAAAAaAB4AAAANAAwAAAAbAB4AAAANAAwAAAAcAB4AAAANAAwAAAAdAB4AAAANAAwAAAAeAB4AAAANAAwAAAAfAB4AAAANAAwAAAAgAB4AAAANAAwAAAAhAB4AAAANAAwAAAAiAB4AAAANAAwAAAAjAB4AAAANAAwAAAAkAB4AAAANAAwAAAAlAB4AAAANAAwAAAAmAB4AAAANAAwAAAAnAB4AAAANAAwAAAAoAB4AAAANAAwAAAApAB4AAAANAAwAAAAqAB4AAAANAAwAAAArAB4AAAANAAwAAAAsAB4AAAANAAwAAAAtAB4AAAANAAwAAAAuAB4AAAANAAwAAAAvAB4AAAANAAwAAAAwAB4AAAANAAwAAAAxAB4AAAANAAwAAAAyAB4AAAANAAwAAAAzAB4AAAANAAwAAAA0AB4AAAANAAwAAAA1AB4AAAANAAwAAAA2AB4AAAANAAwAAAA3AB4AAAANAAwAAAA4AB4AAAANAAwAAAA5AB4AAAANAAwAAAA6AB4AAAANAAwAAAA7AB4AAAANAAwAAAA8AB4AAAANAAwAAAA9AB4AAAANAAwAAAA+AB4AAAANAAwAAAA/AB4AAAANAAwAAABAAB4AAAANAAwAAABBAB4AAAANAAwAAABCAB4AAAANAAwAAABDAB4AAAANAAwAAABEAB4AAAANAAwAAABFAB4AAAANAAwAAABGAB4AAAANAAwAAABHAB4AAAANAAwAAABIAB4AAAANAAwAAABJAB4AAAANAAwAAABKAB4AAAANAAwAAABLAB4AAAANAAwAAABMAB4AAAANAAwAAABNAB4AAAANAAwAAABOAB4AAAANAAwAAABPAB4AAAANAAwAAABQAB4AAAANAAwAAABRAB4AAAANAAwAAABSAB4AAAANAAwAAABTAB4AAAANAAwAAABUAB4AAAANAAwAAABVAB4AAAANAAwAAABWAB4AAAANAAwAAABXAB4AAAANAAwAAABYAB4AAAANAAwAAABZAB4AAAANAAwAAABaAB4AAAANAAwAAABbAB4AAAANAAwAAABcAB4AAAANAAwAAABdAB4AAAANAAwAAABeAB4AAAANAAwAAABfAB4AAAANAAwAAAA=")
|
||||
tile_set = ExtResource("1_3rf3u")
|
||||
|
||||
[node name="Pos3" type="Marker2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(765, 115)
|
||||
|
||||
[node name="Pos2" type="Marker2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(455, 115)
|
||||
|
||||
[node name="Pos1" type="Marker2D" parent="."]
|
||||
unique_name_in_owner = true
|
||||
position = Vector2(145, 115)
|
||||
|
||||
[node name="EnemyLabel2" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 455.0
|
||||
offset_top = 245.0
|
||||
offset_right = 495.0
|
||||
offset_bottom = 261.0
|
||||
text = "1"
|
||||
|
||||
[node name="EnemyLabel1" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 135.0
|
||||
offset_top = 245.0
|
||||
offset_right = 175.0
|
||||
offset_bottom = 261.0
|
||||
text = "0"
|
||||
|
||||
[node name="EnemyLabel3" type="Label" parent="."]
|
||||
unique_name_in_owner = true
|
||||
layout_mode = 0
|
||||
offset_left = 765.0
|
||||
offset_top = 245.0
|
||||
offset_right = 805.0
|
||||
offset_bottom = 280.0
|
||||
text = "2
|
||||
"
|
||||
|
||||
[node name="Label4" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
offset_left = 309.0
|
||||
offset_top = 254.0
|
||||
offset_right = 651.0
|
||||
offset_bottom = 286.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "====== FIGHT ======"
|
||||
visible_characters = 0
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = -1
|
||||
offset_left = 460.0
|
||||
offset_top = 262.0
|
||||
offset_right = 500.0
|
||||
offset_bottom = 278.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/font_color = Color(0, 1, 0, 1)
|
||||
theme_override_font_sizes/font_size = 32
|
||||
text = "========== YOU WON =========="
|
||||
visible_characters = 0
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_nr2j5")
|
||||
}
|
||||
Reference in New Issue
Block a user