init
This commit is contained in:
2
.gitattributes
vendored
Executable file
2
.gitattributes
vendored
Executable file
@@ -0,0 +1,2 @@
|
||||
# Normalize EOL for all files that Git considers text files.
|
||||
* text=auto eol=lf
|
||||
15
.gitignore
vendored
Normal file → Executable file
15
.gitignore
vendored
Normal file → Executable file
@@ -1,17 +1,2 @@
|
||||
# ---> Godot
|
||||
# Godot 4+ specific ignores
|
||||
.godot/
|
||||
|
||||
# Godot-specific ignores
|
||||
.import/
|
||||
export.cfg
|
||||
export_presets.cfg
|
||||
|
||||
# Imported translations (automatically generated from CSV files)
|
||||
*.translation
|
||||
|
||||
# Mono-specific ignores
|
||||
.mono/
|
||||
data_*/
|
||||
mono_crash.*.json
|
||||
|
||||
|
||||
13
.idea/.gitignore
generated
vendored
Normal file
13
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,13 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Rider ignored files
|
||||
/contentModel.xml
|
||||
/modules.xml
|
||||
/projectSettingsUpdater.xml
|
||||
/.idea.text.iml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
||||
4
.idea/encodings.xml
generated
Normal file
4
.idea/encodings.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
|
||||
</project>
|
||||
8
.idea/indexLayout.xml
generated
Normal file
8
.idea/indexLayout.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="UserContentModel">
|
||||
<attachedFolders />
|
||||
<explicitIncludes />
|
||||
<explicitExcludes />
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
BIN
PerfectDOSVGA437.ttf
Executable file
BIN
PerfectDOSVGA437.ttf
Executable file
Binary file not shown.
41
PerfectDOSVGA437.ttf.import
Executable file
41
PerfectDOSVGA437.ttf.import
Executable file
@@ -0,0 +1,41 @@
|
||||
[remap]
|
||||
|
||||
importer="font_data_dynamic"
|
||||
type="FontFile"
|
||||
uid="uid://5tgv0vpblug5"
|
||||
path="res://.godot/imported/PerfectDOSVGA437.ttf-65dd0ecbd095b86c6e348c58e7bb89e7.fontdata"
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://PerfectDOSVGA437.ttf"
|
||||
dest_files=["res://.godot/imported/PerfectDOSVGA437.ttf-65dd0ecbd095b86c6e348c58e7bb89e7.fontdata"]
|
||||
|
||||
[params]
|
||||
|
||||
Rendering=null
|
||||
antialiasing=1
|
||||
generate_mipmaps=false
|
||||
disable_embedded_bitmaps=true
|
||||
multichannel_signed_distance_field=false
|
||||
msdf_pixel_range=8
|
||||
msdf_size=48
|
||||
allow_system_fallback=true
|
||||
force_autohinter=false
|
||||
modulate_color_glyphs=false
|
||||
hinting=1
|
||||
subpixel_positioning=4
|
||||
keep_rounding_remainders=true
|
||||
oversampling=0.0
|
||||
Fallbacks=null
|
||||
fallbacks=[]
|
||||
Compress=null
|
||||
compress=true
|
||||
preload=[{
|
||||
"chars": [],
|
||||
"glyphs": [],
|
||||
"name": "New Configuration",
|
||||
"size": Vector2i(16, 0)
|
||||
}]
|
||||
language_support={}
|
||||
script_support={}
|
||||
opentype_features={}
|
||||
6
classes/interactable_object.gd
Executable file
6
classes/interactable_object.gd
Executable file
@@ -0,0 +1,6 @@
|
||||
class_name InteractableObject
|
||||
extends Node2D
|
||||
|
||||
|
||||
func use_object(_requested_object:Node2D) -> void:
|
||||
pass
|
||||
1
classes/interactable_object.gd.uid
Executable file
1
classes/interactable_object.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://cbadxwb4uhv6p
|
||||
BIN
cp437_10x10.png
Executable file
BIN
cp437_10x10.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 3.1 KiB |
40
cp437_10x10.png.import
Executable file
40
cp437_10x10.png.import
Executable file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://lxto72ieesw2"
|
||||
path="res://.godot/imported/cp437_10x10.png-7ea8344a2b4493b22b4de7b95ff69650.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://cp437_10x10.png"
|
||||
dest_files=["res://.godot/imported/cp437_10x10.png-7ea8344a2b4493b22b4de7b95ff69650.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
91
graph_edit.tscn
Executable file
91
graph_edit.tscn
Executable file
@@ -0,0 +1,91 @@
|
||||
[gd_scene format=3 uid="uid://notl4pe2d5w8"]
|
||||
|
||||
[node name="GraphEdit" type="GraphEdit"]
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -30.0
|
||||
offset_bottom = -30.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
scroll_offset = Vector2(-40, -40)
|
||||
|
||||
[node name="GraphNode" type="GraphNode" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 50.739998
|
||||
offset_top = 130.0
|
||||
offset_right = 290.74002
|
||||
offset_bottom = 1001.0
|
||||
mouse_filter = 1
|
||||
theme_override_constants/separation = 30
|
||||
position_offset = Vector2(10.74, 90)
|
||||
title = "A1"
|
||||
slots_focus_mode = 1
|
||||
slot/0/left_enabled = true
|
||||
slot/0/left_type = 1
|
||||
slot/0/left_color = Color(1, 1, 1, 1)
|
||||
slot/0/left_icon = null
|
||||
slot/0/right_enabled = true
|
||||
slot/0/right_type = 0
|
||||
slot/0/right_color = Color(1, 1, 1, 1)
|
||||
slot/0/right_icon = null
|
||||
slot/0/draw_stylebox = true
|
||||
slot/1/left_enabled = true
|
||||
slot/1/left_type = 0
|
||||
slot/1/left_color = Color(1, 1, 1, 1)
|
||||
slot/1/left_icon = null
|
||||
slot/1/right_enabled = true
|
||||
slot/1/right_type = 0
|
||||
slot/1/right_color = Color(1, 1, 1, 1)
|
||||
slot/1/right_icon = null
|
||||
slot/1/draw_stylebox = true
|
||||
|
||||
[node name="Label" type="Label" parent="GraphNode"]
|
||||
layout_mode = 2
|
||||
text = "Up
|
||||
"
|
||||
|
||||
[node name="Label2" type="Label" parent="GraphNode"]
|
||||
layout_mode = 2
|
||||
text = "Down
|
||||
"
|
||||
|
||||
[node name="GraphNode2" type="GraphNode" parent="."]
|
||||
layout_mode = 0
|
||||
offset_left = 410.0
|
||||
offset_top = 120.0
|
||||
offset_right = 650.0
|
||||
offset_bottom = 991.0
|
||||
mouse_filter = 1
|
||||
theme_override_constants/separation = 30
|
||||
position_offset = Vector2(370, 80)
|
||||
title = "A2"
|
||||
slots_focus_mode = 1
|
||||
slot/0/left_enabled = true
|
||||
slot/0/left_type = 1
|
||||
slot/0/left_color = Color(1, 1, 1, 1)
|
||||
slot/0/left_icon = null
|
||||
slot/0/right_enabled = true
|
||||
slot/0/right_type = 0
|
||||
slot/0/right_color = Color(1, 1, 1, 1)
|
||||
slot/0/right_icon = null
|
||||
slot/0/draw_stylebox = true
|
||||
slot/1/left_enabled = true
|
||||
slot/1/left_type = 0
|
||||
slot/1/left_color = Color(1, 1, 1, 1)
|
||||
slot/1/left_icon = null
|
||||
slot/1/right_enabled = true
|
||||
slot/1/right_type = 0
|
||||
slot/1/right_color = Color(1, 1, 1, 1)
|
||||
slot/1/right_icon = null
|
||||
slot/1/draw_stylebox = true
|
||||
|
||||
[node name="Label" type="Label" parent="GraphNode2"]
|
||||
layout_mode = 2
|
||||
text = "Up
|
||||
"
|
||||
|
||||
[node name="Label2" type="Label" parent="GraphNode2"]
|
||||
layout_mode = 2
|
||||
text = "Down
|
||||
"
|
||||
1
icon.svg
Executable file
1
icon.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg height="128" width="128" xmlns="http://www.w3.org/2000/svg"><rect x="2" y="2" width="124" height="124" rx="14" fill="#363d52" stroke="#212532" stroke-width="4"/><g transform="scale(.101) translate(122 122)"><g fill="#fff"><path d="M105 673v33q407 354 814 0v-33z"/><path fill="#478cbf" d="m105 673 152 14q12 1 15 14l4 67 132 10 8-61q2-11 15-15h162q13 4 15 15l8 61 132-10 4-67q3-13 15-14l152-14V427q30-39 56-81-35-59-83-108-43 20-82 47-40-37-88-64 7-51 8-102-59-28-123-42-26 43-46 89-49-7-98 0-20-46-46-89-64 14-123 42 1 51 8 102-48 27-88 64-39-27-82-47-48 49-83 108 26 42 56 81zm0 33v39c0 276 813 276 813 0v-39l-134 12-5 69q-2 10-14 13l-162 11q-12 0-16-11l-10-65H447l-10 65q-4 11-16 11l-162-11q-12-3-14-13l-5-69z"/><path d="M483 600c3 34 55 34 58 0v-86c-3-34-55-34-58 0z"/><circle cx="725" cy="526" r="90"/><circle cx="299" cy="526" r="90"/></g><g fill="#414042"><circle cx="307" cy="532" r="60"/><circle cx="717" cy="532" r="60"/></g></g></svg>
|
||||
|
After Width: | Height: | Size: 949 B |
43
icon.svg.import
Executable file
43
icon.svg.import
Executable file
@@ -0,0 +1,43 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://d0higreua8q7t"
|
||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://icon.svg"
|
||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
svg/scale=1.0
|
||||
editor/scale_with_editor_scale=false
|
||||
editor/convert_colors_with_editor_theme=false
|
||||
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")
|
||||
}
|
||||
6
levels/level.gd
Executable file
6
levels/level.gd
Executable file
@@ -0,0 +1,6 @@
|
||||
class_name Level
|
||||
extends TileMapLayer
|
||||
|
||||
var interactble_objects:Dictionary[Vector2, InteractableObject]
|
||||
|
||||
|
||||
1
levels/level.gd.uid
Executable file
1
levels/level.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://yuo36j2yrbp
|
||||
14
levels/template/level_template.tscn
Executable file
14
levels/template/level_template.tscn
Executable file
File diff suppressed because one or more lines are too long
66
levels/world/world.gd
Executable file
66
levels/world/world.gd
Executable file
@@ -0,0 +1,66 @@
|
||||
class_name World
|
||||
extends Node2D
|
||||
|
||||
@export var line_edit:LineEdit
|
||||
@export var world_ui:WorldState
|
||||
@export var battle_ui:BattleState
|
||||
@export var player:Player
|
||||
@export var texture:ColorRect
|
||||
var is_battle:bool = false
|
||||
func _ready() -> void:
|
||||
line_edit.grab_focus()
|
||||
line_edit.caret_column = 1
|
||||
world_ui.start(self)
|
||||
battle_ui.start(self)
|
||||
|
||||
func start_battle(enemy_list:Array[PackedScene], enemy_name:Array[String]) -> void:
|
||||
is_battle = true
|
||||
battle_ui.start_battle(enemy_list, enemy_name)
|
||||
world_ui.animation_player.play("appear")
|
||||
while(world_ui.size.y > 0):
|
||||
world_ui.size.y -= 10
|
||||
await get_tree().create_timer(0.01).timeout
|
||||
world_ui.animation_player.play("RESET")
|
||||
while(battle_ui.size.y < 540.0):
|
||||
if battle_ui.size.y == 270.0:
|
||||
battle_ui.start_animation()
|
||||
battle_ui.size.y += 10
|
||||
await get_tree().create_timer(0.01).timeout
|
||||
await get_tree().create_timer(2).timeout
|
||||
battle_ui.animation_player.play("RESET")
|
||||
|
||||
battle_ui.size.y = 540.0
|
||||
|
||||
func end_battle() -> void:
|
||||
is_battle = false
|
||||
while(battle_ui.size.y > 0):
|
||||
battle_ui.size.y -= 10
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
battle_ui.animation_player.play("RESET")
|
||||
while(world_ui.size.y < 540):
|
||||
world_ui.size.y += 10
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
world_ui.size.y = 540
|
||||
|
||||
func _on_line_edit_text_submitted(new_text: String) -> void:
|
||||
line_edit.clear()
|
||||
var string_command = new_text.get_slice(" ", 0)
|
||||
var input:String = new_text.replace(string_command + " ", "")
|
||||
if !is_battle:
|
||||
world_ui.do_command(string_command, input)
|
||||
elif is_battle:
|
||||
battle_ui.command(string_command, input)
|
||||
|
||||
|
||||
func _on_line_edit_text_changed(new_text: String) -> void:
|
||||
var caret_pos = line_edit.caret_column
|
||||
line_edit.text = new_text.to_upper()
|
||||
line_edit.caret_column = caret_pos
|
||||
|
||||
func test():
|
||||
if texture.size.y >= 613.0:
|
||||
print("done")
|
||||
return
|
||||
texture.size.y += 10
|
||||
await get_tree().create_timer(0.05).timeout
|
||||
test()
|
||||
1
levels/world/world.gd.uid
Executable file
1
levels/world/world.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://bu23r23kew8mf
|
||||
95
levels/world/world.tscn
Executable file
95
levels/world/world.tscn
Executable file
@@ -0,0 +1,95 @@
|
||||
[gd_scene load_steps=7 format=3 uid="uid://dyoi4j0q2kcsu"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://bu23r23kew8mf" path="res://levels/world/world.gd" id="1_ng6r8"]
|
||||
[ext_resource type="PackedScene" uid="uid://blbbmr2ap77jo" path="res://levels/world_state/control.tscn" id="3_8gvdk"]
|
||||
[ext_resource type="PackedScene" uid="uid://ccynhcgx88bgq" path="res://objects/player/player.tscn" id="3_b8p08"]
|
||||
[ext_resource type="PackedScene" uid="uid://cruod4lfh2xkh" path="res://levels/battle_state/battle_state.tscn" id="3_h0il2"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_b8p08"]
|
||||
content_margin_left = 4.0
|
||||
content_margin_top = 4.0
|
||||
content_margin_right = 4.0
|
||||
content_margin_bottom = 4.0
|
||||
bg_color = Color(0, 0, 0, 1)
|
||||
border_width_bottom = 2
|
||||
border_color = Color(0, 0, 0, 0.6)
|
||||
corner_radius_top_left = 3
|
||||
corner_radius_top_right = 3
|
||||
corner_radius_bottom_right = 3
|
||||
corner_radius_bottom_left = 3
|
||||
corner_detail = 5
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_8gvdk"]
|
||||
content_margin_left = 4.0
|
||||
content_margin_top = 4.0
|
||||
content_margin_right = 4.0
|
||||
content_margin_bottom = 4.0
|
||||
bg_color = Color(0.6, 0.6, 0.6, 0)
|
||||
draw_center = false
|
||||
border_width_top = 3
|
||||
corner_radius_top_right = 3
|
||||
corner_radius_bottom_right = 3
|
||||
corner_radius_bottom_left = 3
|
||||
expand_margin_left = 49.0
|
||||
expand_margin_top = 2.0
|
||||
expand_margin_right = 2.0
|
||||
expand_margin_bottom = 2.0
|
||||
|
||||
[node name="World" type="Node2D" node_paths=PackedStringArray("line_edit", "world_ui", "battle_ui", "player")]
|
||||
script = ExtResource("1_ng6r8")
|
||||
line_edit = NodePath("CanvasLayer/Control/LineEdit")
|
||||
world_ui = NodePath("CanvasLayer/WorldState")
|
||||
battle_ui = NodePath("CanvasLayer/BattleState")
|
||||
player = NodePath("Player")
|
||||
|
||||
[node name="CanvasLayer" type="CanvasLayer" parent="."]
|
||||
layer = -1
|
||||
|
||||
[node name="BattleState" parent="CanvasLayer" instance=ExtResource("3_h0il2")]
|
||||
anchors_preset = 15
|
||||
offset_bottom = -540.0
|
||||
|
||||
[node name="WorldState" parent="CanvasLayer" instance=ExtResource("3_8gvdk")]
|
||||
|
||||
[node name="Control" type="Control" parent="CanvasLayer"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
mouse_filter = 2
|
||||
|
||||
[node name="LineEdit" type="LineEdit" parent="CanvasLayer/Control"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 12
|
||||
anchor_top = 1.0
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_left = 11.0
|
||||
offset_top = -24.0
|
||||
offset_bottom = 4.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 0
|
||||
theme_override_colors/font_placeholder_color = Color(0.8745098, 0.8745098, 0.8745098, 0.6627451)
|
||||
theme_override_styles/normal = SubResource("StyleBoxFlat_b8p08")
|
||||
theme_override_styles/focus = SubResource("StyleBoxFlat_8gvdk")
|
||||
keep_editing_on_text_submit = true
|
||||
context_menu_enabled = false
|
||||
emoji_menu_enabled = false
|
||||
caret_blink = true
|
||||
|
||||
[node name="Label" type="Label" parent="CanvasLayer/Control"]
|
||||
layout_mode = 0
|
||||
offset_left = 4.0
|
||||
offset_top = 522.0
|
||||
offset_right = 44.0
|
||||
offset_bottom = 538.0
|
||||
text = ">"
|
||||
|
||||
[node name="Player" parent="." instance=ExtResource("3_b8p08")]
|
||||
position = Vector2(235, 175)
|
||||
damage = 5
|
||||
|
||||
[connection signal="text_changed" from="CanvasLayer/Control/LineEdit" to="." method="_on_line_edit_text_changed"]
|
||||
[connection signal="text_submitted" from="CanvasLayer/Control/LineEdit" to="." method="_on_line_edit_text_submitted"]
|
||||
93
levels/world_state/control.gd
Executable file
93
levels/world_state/control.gd
Executable file
@@ -0,0 +1,93 @@
|
||||
class_name WorldState
|
||||
extends Control
|
||||
@export var animation_player:AnimationPlayer
|
||||
@export var tilemap:Level
|
||||
@export var item_list:ItemList
|
||||
@export var stats_label:Label
|
||||
@export var stats_ui:Control
|
||||
@export var array:Array[Array] = [
|
||||
["A1", "A2", "A3"],
|
||||
["B1", "B2", "B3"],
|
||||
["C1", "C2", "C3"],
|
||||
[]
|
||||
]
|
||||
var world:World
|
||||
|
||||
var current_cords:Vector2 = Vector2(0, 0)
|
||||
|
||||
func do_command(command:String, input:String) -> void:
|
||||
match command:
|
||||
"WALK":
|
||||
move(input)
|
||||
"TALK":
|
||||
pass
|
||||
"INVENTORY":
|
||||
pass
|
||||
"BATTLE":
|
||||
battle(input)
|
||||
|
||||
func start(current_world:World) -> void:
|
||||
world = current_world
|
||||
world.player.stats_changed.connect(update_stats)
|
||||
update_stats()
|
||||
|
||||
func battle(input:String) -> void:
|
||||
match input:
|
||||
"UP":
|
||||
interactable_obj_exists(world.player.global_position + Vector2(0, -10))
|
||||
"DOWN":
|
||||
interactable_obj_exists(world.player.global_position + Vector2(0, 10))
|
||||
"LEFT":
|
||||
interactable_obj_exists(world.player.global_position + Vector2(-10, 0))
|
||||
"RIGHT":
|
||||
interactable_obj_exists(world.player.global_position + Vector2(10, 0))
|
||||
|
||||
func move(input:String) -> void:
|
||||
match input:
|
||||
"UP":
|
||||
if is_walkable(Vector2(0, -10)):
|
||||
world.player.global_position.y -= 10
|
||||
"DOWN":
|
||||
if is_walkable(Vector2(0, 10)):
|
||||
world.player.global_position.y += 10
|
||||
"LEFT":
|
||||
if is_walkable(Vector2(-10, 0)):
|
||||
world.player.global_position.x -= 10
|
||||
"RIGHT":
|
||||
if is_walkable(Vector2(10, 0)):
|
||||
world.player.global_position.x += 10
|
||||
|
||||
func is_walkable(direction:Vector2) -> bool:
|
||||
var clicked_cell:Vector2i = tilemap.local_to_map(world.player.global_position + direction)
|
||||
var cell:TileData = tilemap.get_cell_tile_data(clicked_cell)
|
||||
if cell:
|
||||
return cell.get_custom_data("walkable")
|
||||
return false
|
||||
|
||||
func interactable_obj_exists(pos:Vector2) -> void:
|
||||
if tilemap.interactble_objects.has(pos):
|
||||
tilemap.interactble_objects[pos].use_object(world)
|
||||
tilemap.interactble_objects[pos].queue_free()
|
||||
tilemap.interactble_objects.erase(pos)
|
||||
|
||||
func _on_item_list_item_selected(index: int) -> void:
|
||||
world.line_edit.text = item_list.get_item_text(index).to_upper()
|
||||
world.line_edit.caret_column = 30
|
||||
item_list.deselect(index)
|
||||
item_list.release_focus()
|
||||
world.line_edit.grab_focus()
|
||||
|
||||
|
||||
func update_stats():
|
||||
while(stats_ui.size.y > 0):
|
||||
stats_ui.size.y -= 10
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
|
||||
var stats:String = "Health: " + str(world.player.health) \
|
||||
+ "\nDamage: " + str(world.player.damage) \
|
||||
+ "\nSpeed: " + str(world.player.speed)
|
||||
stats_label.text = stats
|
||||
|
||||
while(stats_ui.size.y < 224.0):
|
||||
stats_ui.size.y += 10
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
1
levels/world_state/control.gd.uid
Executable file
1
levels/world_state/control.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://is3twd5fw4ay
|
||||
176
levels/world_state/control.tscn
Executable file
176
levels/world_state/control.tscn
Executable file
@@ -0,0 +1,176 @@
|
||||
[gd_scene load_steps=8 format=4 uid="uid://blbbmr2ap77jo"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://is3twd5fw4ay" path="res://levels/world_state/control.gd" id="1_0fbet"]
|
||||
[ext_resource type="PackedScene" uid="uid://bsnyy55qb2pyr" path="res://levels/template/level_template.tscn" id="2_gcbra"]
|
||||
[ext_resource type="TileSet" uid="uid://bfkalv0skoxy2" path="res://tileset.tres" id="2_qtu10"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_ee4bf"]
|
||||
length = 0.001
|
||||
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),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [0.0]
|
||||
}
|
||||
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),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 1,
|
||||
"values": [true]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_qtu10"]
|
||||
resource_name = "new_animation"
|
||||
length = 0.5
|
||||
step = 0.1
|
||||
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, 0.5),
|
||||
"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(0.5),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"values": [{
|
||||
"args": [&"flash", -1, 1.0, false],
|
||||
"method": &"play"
|
||||
}]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_uch48"]
|
||||
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("Label:visible")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.4, 1),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [true, false, true]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_kbped"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_ee4bf"),
|
||||
&"appear": SubResource("Animation_qtu10"),
|
||||
&"flash": SubResource("Animation_uch48")
|
||||
}
|
||||
|
||||
[node name="WorldState" type="Control" node_paths=PackedStringArray("animation_player", "tilemap", "item_list", "stats_label", "stats_ui")]
|
||||
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_0fbet")
|
||||
animation_player = NodePath("AnimationPlayer")
|
||||
tilemap = NodePath("LevelTemplate")
|
||||
item_list = NodePath("Commands/ItemList")
|
||||
stats_label = NodePath("Stats/StatsLabel")
|
||||
stats_ui = NodePath("Stats")
|
||||
|
||||
[node name="LevelTemplate" parent="." instance=ExtResource("2_gcbra")]
|
||||
|
||||
[node name="UI" type="TileMapLayer" parent="."]
|
||||
texture_filter = 1
|
||||
tile_map_data = PackedByteArray("AAAAACgAAAANAAwAAAABACgAAAANAAwAAAACACgAAAANAAwAAAADACgAAAANAAwAAAAEACgAAAANAAwAAAAFACgAAAANAAwAAAAGACgAAAANAAwAAAAHACgAAAANAAwAAAAIACgAAAANAAwAAAAJACgAAAANAAwAAAAKACgAAAANAAwAAAALACgAAAANAAwAAAAMACgAAAANAAwAAAANACgAAAANAAwAAAAOACgAAAANAAwAAAAPACgAAAANAAwAAAAQACgAAAANAAwAAAARACgAAAANAAwAAAASACgAAAANAAwAAAATACgAAAANAAwAAAAUACgAAAANAAwAAAAVACgAAAANAAwAAAAWACgAAAANAAwAAAAXACgAAAANAAwAAAAYACgAAAANAAwAAAAZACgAAAANAAwAAAAaACgAAAANAAwAAAAbACgAAAANAAwAAAAcACgAAAANAAwAAAAdACgAAAANAAwAAAAeACgAAAANAAwAAAAfACgAAAANAAwAAAAgACgAAAANAAwAAAAhACgAAAANAAwAAAAiACgAAAANAAwAAAAjACgAAAANAAwAAAAkACgAAAANAAwAAAAlACgAAAANAAwAAAAmACgAAAANAAwAAAAnACgAAAANAAwAAAAoACgAAAANAAwAAAApACgAAAANAAwAAAAqACgAAAANAAwAAAArACgAAAANAAwAAAAsACgAAAANAAwAAAAtACgAAAANAAwAAAAuACgAAAANAAwAAAAvACgAAAANAAwAAAAwACgAAAANAAwAAAAxACgAAAANAAwAAAAyACgAAAANAAwAAAAzACgAAAANAAwAAAA0ACgAAAANAAwAAAA1ACgAAAANAAwAAAA2ACgAAAANAAwAAAA3ACgAAAANAAwAAAA4ACgAAAANAAwAAAA5ACgAAAANAAwAAAA6ACgAAAANAAwAAAA7ACgAAAANAAwAAAA8ACgAAAANAAwAAAA9ACgAAAANAAwAAAA+ACgAAAANAAwAAAA/ACgAAAANAAwAAABAACgAAAANAAwAAABBACgAAAANAAwAAABCACgAAAANAAwAAABDACgAAAANAAwAAABEACgAAAANAAwAAABFACgAAAAJAAsAAABFACcAAAAKAAsAAABFACYAAAAKAAsAAABFACUAAAAKAAsAAABFACQAAAAKAAsAAABFACMAAAAKAAsAAABFACIAAAAKAAsAAABFACEAAAAKAAsAAABFACAAAAAKAAsAAABFAB8AAAAKAAsAAABFAB4AAAAKAAsAAABFAB0AAAAKAAsAAABFABwAAAAKAAsAAABFABsAAAAKAAsAAABFABoAAAAKAAsAAABFABkAAAAKAAsAAABFABgAAAAKAAsAAABFABcAAAAKAAsAAABFABYAAAAKAAsAAABFABUAAAAKAAsAAABFABQAAAAKAAsAAABFABMAAAAKAAsAAABFABIAAAAKAAsAAABFABEAAAAKAAsAAABFABAAAAAKAAsAAABFAA8AAAAKAAsAAABFAA4AAAAKAAsAAABFAA0AAAAKAAsAAABFAAwAAAAKAAsAAABFAAsAAAAKAAsAAABFAAoAAAAKAAsAAABFAAkAAAAKAAsAAABFAAgAAAAKAAsAAABFAAcAAAAKAAsAAABFAAYAAAAKAAsAAABFAAUAAAAKAAsAAABFAAQAAAAKAAsAAABFAAMAAAAKAAsAAABFAAIAAAAKAAsAAABFAAEAAAAKAAsAAABFAAAAAAAKAAsAAABFACkAAAAKAAsAAABFACoAAAAKAAsAAABFACsAAAAKAAsAAABFACwAAAAKAAsAAABFAC0AAAAKAAsAAABFAC4AAAAKAAsAAABFAC8AAAAKAAsAAABFADAAAAAKAAsAAABFADEAAAAKAAsAAABFADIAAAAKAAsAAABFADMAAAAKAAsAAABFADQAAAAKAAsAAABFADUAAAAKAAsAAAANACkAAAADAAsAAAANACoAAAADAAsAAAANACsAAAADAAsAAAANACwAAAADAAsAAAANAC0AAAADAAsAAAANAC4AAAADAAsAAAANAC8AAAADAAsAAAANADAAAAADAAsAAAANADEAAAADAAsAAAANADIAAAADAAsAAAANADMAAAADAAsAAAANADQAAAADAAsAAAANADUAAAADAAsAAAA=")
|
||||
tile_set = ExtResource("2_qtu10")
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_kbped")
|
||||
}
|
||||
|
||||
[node name="ColorRect3" type="ColorRect" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 10
|
||||
anchor_right = 1.0
|
||||
grow_horizontal = 2
|
||||
color = Color(0, 0, 0, 1)
|
||||
|
||||
[node name="Label" type="Label" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -243.0
|
||||
offset_right = 243.0
|
||||
offset_bottom = 48.0
|
||||
grow_horizontal = 2
|
||||
theme_override_colors/font_color = Color(1, 0, 0, 1)
|
||||
theme_override_font_sizes/font_size = 48
|
||||
text = "===== DANGER ====="
|
||||
visible_characters = 0
|
||||
visible_ratio = 0.0
|
||||
|
||||
[node name="Commands" type="Control" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 0
|
||||
offset_top = 408.0
|
||||
offset_right = 134.0
|
||||
offset_bottom = 540.0
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="ItemList" type="ItemList" parent="Commands"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
theme_override_colors/guide_color = Color(0.69803923, 0.69803923, 0.69803923, 1)
|
||||
item_count = 4
|
||||
item_0/text = "WALK UP"
|
||||
item_1/text = "WALK DOWN"
|
||||
item_2/text = "WALK RIGHT"
|
||||
item_3/text = "WALK LEFT"
|
||||
|
||||
[node name="Stats" type="Control" parent="."]
|
||||
clip_contents = true
|
||||
anchors_preset = 0
|
||||
offset_left = 138.0
|
||||
offset_top = 409.0
|
||||
offset_right = 251.0
|
||||
offset_bottom = 540.0
|
||||
pivot_offset = Vector2(0, 30)
|
||||
metadata/_edit_group_ = true
|
||||
|
||||
[node name="StatsLabel" type="Label" parent="Stats"]
|
||||
layout_mode = 1
|
||||
offset_right = 117.0
|
||||
offset_bottom = 131.0
|
||||
autowrap_mode = 1
|
||||
|
||||
[connection signal="item_selected" from="Commands/ItemList" to="." method="_on_item_list_item_selected"]
|
||||
60
new.txt
Executable file
60
new.txt
Executable file
@@ -0,0 +1,60 @@
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙║║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙ ∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙║∙∙∙∙∙∙∙ ║∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙╚═══════╝∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙
|
||||
BIN
objects/enemies/ascii-art(1).png
Executable file
BIN
objects/enemies/ascii-art(1).png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
40
objects/enemies/ascii-art(1).png.import
Executable file
40
objects/enemies/ascii-art(1).png.import
Executable file
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://cxpd16b5ebba5"
|
||||
path="res://.godot/imported/ascii-art(1).png-b6b244adb19f2eea0c40a314c5c3b8a5.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://objects/enemies/ascii-art(1).png"
|
||||
dest_files=["res://.godot/imported/ascii-art(1).png-b6b244adb19f2eea0c40a314c5c3b8a5.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
42
objects/enemies/enemy.gd
Executable file
42
objects/enemies/enemy.gd
Executable file
@@ -0,0 +1,42 @@
|
||||
class_name Enemy
|
||||
extends Node2D
|
||||
|
||||
@export var damage:int = 1
|
||||
@export var max_health:int = 10
|
||||
@export var speed:int = 10
|
||||
@export var accuracy:int = 100
|
||||
@export var max_money:int = 10
|
||||
|
||||
@export var level:int = 1
|
||||
@export var level_multiplier:float = 1.2
|
||||
|
||||
@export var health_label:RichTextLabel
|
||||
@export var animation_player:AnimationPlayer
|
||||
var min_money:int = 1
|
||||
var health:int = 0:
|
||||
set(value):
|
||||
health = value
|
||||
if health != max_health:
|
||||
if health_label != null:
|
||||
if health <= round(max_health / 4):
|
||||
health_label.text = "[color=red]" + str(health) + "[/color]" + " / " + str(max_health)
|
||||
elif health <= round(max_health / 2):
|
||||
health_label.text = "[color=yellow]" + str(health) + "[/color]" + " / " + str(max_health)
|
||||
else:
|
||||
health_label.text = str(health) + " / " + str(max_health)
|
||||
|
||||
if animation_player != null:
|
||||
animation_player.play("hurt")
|
||||
else:
|
||||
health_label.text = str(health) + " / " + str(max_health)
|
||||
|
||||
|
||||
func _ready() -> void:
|
||||
if level > 1:
|
||||
for i in range(level):
|
||||
damage = round(damage * level_multiplier)
|
||||
max_health = round(max_health * level_multiplier)
|
||||
speed = round(speed * level_multiplier)
|
||||
min_money = round(min_money * level_multiplier)
|
||||
max_money = round(max_money * level_multiplier)
|
||||
health = max_health
|
||||
1
objects/enemies/enemy.gd.uid
Executable file
1
objects/enemies/enemy.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://b0q3j0msvb7ai
|
||||
90
objects/enemies/slime.tscn
Executable file
90
objects/enemies/slime.tscn
Executable file
@@ -0,0 +1,90 @@
|
||||
[gd_scene load_steps=6 format=4 uid="uid://cba8xar11bpfs"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://b0q3j0msvb7ai" path="res://objects/enemies/enemy.gd" id="1_dvgkk"]
|
||||
[ext_resource type="TileSet" uid="uid://bfkalv0skoxy2" path="res://tileset.tres" id="2_nfxyp"]
|
||||
|
||||
[sub_resource type="Animation" id="Animation_nfxyp"]
|
||||
resource_name = "hurt"
|
||||
length = 0.3
|
||||
step = 0.1
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("TileMapLayer:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.2, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
|
||||
"update": 1,
|
||||
"values": [Vector2(-35, -65), Vector2(-5, -65), Vector2(-45, -65), Vector2(-35, -65)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("TileMapLayer:modulate")
|
||||
tracks/1/interp = 2
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0, 0.1, 0.3),
|
||||
"transitions": PackedFloat32Array(1, 1, 1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 1, 0, 1), Color(1, 0, 0, 1), Color(0, 1, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="Animation" id="Animation_4plf3"]
|
||||
length = 0.001
|
||||
tracks/0/type = "value"
|
||||
tracks/0/imported = false
|
||||
tracks/0/enabled = true
|
||||
tracks/0/path = NodePath("TileMapLayer:position")
|
||||
tracks/0/interp = 1
|
||||
tracks/0/loop_wrap = true
|
||||
tracks/0/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Vector2(-35, -65)]
|
||||
}
|
||||
tracks/1/type = "value"
|
||||
tracks/1/imported = false
|
||||
tracks/1/enabled = true
|
||||
tracks/1/path = NodePath("TileMapLayer:modulate")
|
||||
tracks/1/interp = 1
|
||||
tracks/1/loop_wrap = true
|
||||
tracks/1/keys = {
|
||||
"times": PackedFloat32Array(0),
|
||||
"transitions": PackedFloat32Array(1),
|
||||
"update": 0,
|
||||
"values": [Color(0, 1, 0, 1)]
|
||||
}
|
||||
|
||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_3a0bb"]
|
||||
_data = {
|
||||
&"RESET": SubResource("Animation_4plf3"),
|
||||
&"hurt": SubResource("Animation_nfxyp")
|
||||
}
|
||||
|
||||
[node name="Slime" type="Node2D" node_paths=PackedStringArray("health_label", "animation_player")]
|
||||
script = ExtResource("1_dvgkk")
|
||||
health_label = NodePath("RichTextLabel")
|
||||
animation_player = NodePath("AnimationPlayer")
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||
modulate = Color(0, 1, 0, 1)
|
||||
position = Vector2(-35, -65)
|
||||
tile_map_data = PackedByteArray("AAAAAAAAAAAPAAUAAAABAAAAAAAPAAUAAAACAAAAAAAPAAUAAAADAAAAAAAPAAUAAAAEAAAAAAAPAAUAAAAFAAAAAAAPAAUAAAAGAAEAAAAMAAUAAAAHAAIAAAAMAAUAAAAIAAMAAAAMAAUAAAAJAAQAAAAMAAUAAAD//wEAAAAPAAIAAAD+/wIAAAAPAAIAAAD9/wMAAAAPAAIAAAD8/wQAAAAPAAIAAAD7/wUAAAADAAsAAAD7/wcAAAADAAsAAAD7/wgAAAADAAsAAAD7/wYAAAADAAsAAAAKAAUAAAADAAsAAAAKAAYAAAADAAsAAAAKAAcAAAADAAsAAAAKAAkAAAADAAsAAAAKAAgAAAADAAsAAAD7/wkAAAADAAsAAAAJAAoAAAAPAAIAAAAIAAsAAAAPAAIAAAAHAAwAAAAPAAIAAAD8/woAAAAMAAUAAAD9/wsAAAAMAAUAAAD+/wwAAAAMAAUAAAD//w0AAAANAAIAAAAAAA0AAAANAAIAAAABAA0AAAANAAIAAAACAA0AAAANAAIAAAADAA0AAAANAAIAAAAEAA0AAAANAAIAAAAFAA0AAAANAAIAAAAGAA0AAAANAAIAAAA=")
|
||||
tile_set = ExtResource("2_nfxyp")
|
||||
|
||||
[node name="RichTextLabel" type="RichTextLabel" parent="."]
|
||||
offset_left = -45.0
|
||||
offset_top = 85.0
|
||||
offset_right = 45.0
|
||||
offset_bottom = 125.0
|
||||
bbcode_enabled = true
|
||||
text = "100 / 100"
|
||||
|
||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
|
||||
libraries = {
|
||||
&"": SubResource("AnimationLibrary_3a0bb")
|
||||
}
|
||||
18
objects/interact_obj/enemy/enemy_spawner.gd
Executable file
18
objects/interact_obj/enemy/enemy_spawner.gd
Executable file
@@ -0,0 +1,18 @@
|
||||
class_name EnemySpawner
|
||||
extends InteractableObject
|
||||
|
||||
@export var enemy_list:Array[PackedScene] = [null, null, null]
|
||||
@export var enemies_names:Array[String] = ["Enemy1", "Enemy2", "Enemy3"]
|
||||
var parent:Level
|
||||
|
||||
func _ready() -> void:
|
||||
if get_parent() == null:
|
||||
printerr("EnemySpawner must be a child of a Level")
|
||||
return
|
||||
parent = get_parent()
|
||||
parent.interactble_objects[global_position] = self
|
||||
|
||||
func use_object(requested_object:Node2D) -> void:
|
||||
if requested_object is World:
|
||||
requested_object.start_battle(enemy_list, enemies_names)
|
||||
|
||||
1
objects/interact_obj/enemy/enemy_spawner.gd.uid
Executable file
1
objects/interact_obj/enemy/enemy_spawner.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://doklv2vrsog8h
|
||||
16
objects/interact_obj/enemy/enemy_spawner.tscn
Executable file
16
objects/interact_obj/enemy/enemy_spawner.tscn
Executable file
@@ -0,0 +1,16 @@
|
||||
[gd_scene load_steps=4 format=3 uid="uid://cftk62y6lk3dm"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://doklv2vrsog8h" path="res://objects/interact_obj/enemy/enemy_spawner.gd" id="1_oe50a"]
|
||||
[ext_resource type="TileSet" uid="uid://bfkalv0skoxy2" path="res://tileset.tres" id="2_8s34m"]
|
||||
[ext_resource type="PackedScene" uid="uid://cba8xar11bpfs" path="res://objects/enemies/slime.tscn" id="2_jbnmd"]
|
||||
|
||||
[node name="EnemySpawner" type="Node2D"]
|
||||
script = ExtResource("1_oe50a")
|
||||
enemy_list = Array[PackedScene]([ExtResource("2_jbnmd"), null, null])
|
||||
enemies_names = Array[String](["Slime", "Enemy2", "Enemy3"])
|
||||
metadata/_custom_type_script = "uid://cbadxwb4uhv6p"
|
||||
|
||||
[node name="TileMapLayer" type="TileMapLayer" parent="."]
|
||||
position = Vector2(-5, -5)
|
||||
tile_map_data = PackedByteArray(0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, 0, 1, 0)
|
||||
tile_set = ExtResource("2_8s34m")
|
||||
14
objects/player/player.gd
Executable file
14
objects/player/player.gd
Executable file
@@ -0,0 +1,14 @@
|
||||
class_name Player
|
||||
extends Node2D
|
||||
|
||||
signal stats_changed()
|
||||
|
||||
@export var damage:int = 1:
|
||||
set(value):
|
||||
damage = value
|
||||
stats_changed.emit()
|
||||
|
||||
@export var health:int = 100
|
||||
@export var speed:int = 10
|
||||
|
||||
|
||||
1
objects/player/player.gd.uid
Executable file
1
objects/player/player.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://c52d5au7kw685
|
||||
14
objects/player/player.tscn
Executable file
14
objects/player/player.tscn
Executable file
@@ -0,0 +1,14 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://ccynhcgx88bgq"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://lxto72ieesw2" path="res://cp437_10x10.png" id="1_cqmt1"]
|
||||
[ext_resource type="Script" uid="uid://c52d5au7kw685" path="res://objects/player/player.gd" id="1_g7ett"]
|
||||
|
||||
[node name="Player" type="Node2D"]
|
||||
script = ExtResource("1_g7ett")
|
||||
|
||||
[node name="Sprite2D" type="Sprite2D" parent="."]
|
||||
texture_filter = 1
|
||||
texture = ExtResource("1_cqmt1")
|
||||
hframes = 16
|
||||
vframes = 16
|
||||
frame = 80
|
||||
64
project.godot
Normal file
64
project.godot
Normal file
@@ -0,0 +1,64 @@
|
||||
; Engine configuration file.
|
||||
; It's best edited using the editor UI and not directly,
|
||||
; since the parameters that go here are not all obvious.
|
||||
;
|
||||
; Format:
|
||||
; [section] ; section goes between []
|
||||
; param=value ; assign values to parameters
|
||||
|
||||
config_version=5
|
||||
|
||||
[application]
|
||||
|
||||
config/name="text based"
|
||||
run/main_scene="uid://dyoi4j0q2kcsu"
|
||||
config/features=PackedStringArray("4.5")
|
||||
config/icon="res://icon.svg"
|
||||
|
||||
[display]
|
||||
|
||||
window/size/viewport_width=960
|
||||
window/size/viewport_height=540
|
||||
window/size/mode=3
|
||||
window/size/window_width_override=1280
|
||||
window/size/window_height_override=720
|
||||
window/stretch/mode="viewport"
|
||||
window/stretch/aspect="ignore"
|
||||
window/stretch/scale_mode="integer"
|
||||
|
||||
[gui]
|
||||
|
||||
theme/custom_font="uid://5tgv0vpblug5"
|
||||
|
||||
[input]
|
||||
|
||||
mouse={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":1,"position":Vector2(199, 8),"global_position":Vector2(208, 56),"factor":1.0,"button_index":1,"canceled":false,"pressed":true,"double_click":false,"script":null)
|
||||
]
|
||||
}
|
||||
up={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":119,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
down={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
left={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":97,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
right={
|
||||
"deadzone": 0.2,
|
||||
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"location":0,"echo":false,"script":null)
|
||||
]
|
||||
}
|
||||
|
||||
[rendering]
|
||||
|
||||
textures/canvas_textures/default_texture_filter=0
|
||||
environment/defaults/default_clear_color=Color(0, 0, 0, 1)
|
||||
60
s.txt
Executable file
60
s.txt
Executable file
@@ -0,0 +1,60 @@
|
||||
┴
|
||||
|
||||
┴
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
╔
|
||||
╔╩══┴┴┴┴═
|
||||
═══════╔┴┴┴┴┴
|
||||
╔╔═ ┴
|
||||
╔═┴┴┴
|
||||
┴ ┴┴
|
||||
════════
|
||||
══
|
||||
══
|
||||
═
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
18
test.gd
Executable file
18
test.gd
Executable file
@@ -0,0 +1,18 @@
|
||||
@tool
|
||||
extends Control
|
||||
@export var array: Array[Array]
|
||||
@export_tool_button("Hello") var hello_action: Callable = hello
|
||||
|
||||
var a:int = 0
|
||||
|
||||
func hello():
|
||||
var label = Label.new()
|
||||
label.text = "Hello"
|
||||
label.name = "HI"
|
||||
add_child(label)
|
||||
label.owner = get_tree().edited_scene_root
|
||||
print(get_tree().edited_scene_root.find_child("VBoxContainer"))
|
||||
|
||||
|
||||
|
||||
|
||||
1
test.gd.uid
Executable file
1
test.gd.uid
Executable file
@@ -0,0 +1 @@
|
||||
uid://dbqn6x38ac4hh
|
||||
118
test.tscn
Executable file
118
test.tscn
Executable file
@@ -0,0 +1,118 @@
|
||||
[gd_scene load_steps=3 format=3 uid="uid://cx1yd1s0h6xxh"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://dbqn6x38ac4hh" path="res://test.gd" id="1_37kl0"]
|
||||
|
||||
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_37kl0"]
|
||||
content_margin_left = 0.0
|
||||
content_margin_top = 0.0
|
||||
content_margin_right = 0.0
|
||||
content_margin_bottom = 0.0
|
||||
bg_color = Color(1, 1, 1, 0.6)
|
||||
corner_radius_top_left = 3
|
||||
corner_radius_top_right = 3
|
||||
corner_radius_bottom_right = 3
|
||||
corner_radius_bottom_left = 3
|
||||
corner_detail = 5
|
||||
|
||||
[node name="Test" type="Control"]
|
||||
layout_mode = 3
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
script = ExtResource("1_37kl0")
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||||
layout_mode = 1
|
||||
anchors_preset = 15
|
||||
anchor_right = 1.0
|
||||
anchor_bottom = 1.0
|
||||
grow_horizontal = 2
|
||||
grow_vertical = 2
|
||||
|
||||
[node name="Row1" type="Panel" parent="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(10, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_37kl0")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/Row1"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 2
|
||||
anchor_top = 1.0
|
||||
anchor_bottom = 1.0
|
||||
offset_top = -16.0
|
||||
offset_right = 960.0
|
||||
grow_vertical = 0
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label2" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label3" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label4" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label5" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label6" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label7" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label8" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label9" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label10" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label11" type="Label" parent="VBoxContainer/Row1/HBoxContainer"]
|
||||
layout_mode = 2
|
||||
text = "adawdawda"
|
||||
|
||||
[node name="Label" type="Label" parent="VBoxContainer/Row1"]
|
||||
layout_mode = 1
|
||||
anchors_preset = 5
|
||||
anchor_left = 0.5
|
||||
anchor_right = 0.5
|
||||
offset_left = -20.0
|
||||
offset_right = 20.0
|
||||
offset_bottom = 16.0
|
||||
grow_horizontal = 2
|
||||
text = "Row 1"
|
||||
|
||||
[node name="Panel2" type="Panel" parent="VBoxContainer"]
|
||||
custom_minimum_size = Vector2(10, 30)
|
||||
layout_mode = 2
|
||||
theme_override_styles/panel = SubResource("StyleBoxFlat_37kl0")
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer/Panel2"]
|
||||
layout_mode = 0
|
||||
offset_top = 4.0
|
||||
offset_right = 960.0
|
||||
offset_bottom = 4.0
|
||||
|
||||
[node name="PanelContainer" type="PanelContainer" parent="."]
|
||||
layout_mode = 0
|
||||
offset_top = 4.0
|
||||
offset_right = 960.0
|
||||
offset_bottom = 4.0
|
||||
299
tileset.tres
Executable file
299
tileset.tres
Executable file
@@ -0,0 +1,299 @@
|
||||
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://bfkalv0skoxy2"]
|
||||
|
||||
[ext_resource type="Texture2D" uid="uid://lxto72ieesw2" path="res://cp437_10x10.png" id="1_2urvg"]
|
||||
|
||||
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qtu10"]
|
||||
texture = ExtResource("1_2urvg")
|
||||
texture_region_size = Vector2i(10, 10)
|
||||
0:0/0 = 0
|
||||
1:0/0 = 0
|
||||
2:0/0 = 0
|
||||
3:0/0 = 0
|
||||
4:0/0 = 0
|
||||
5:0/0 = 0
|
||||
6:0/0 = 0
|
||||
7:0/0 = 0
|
||||
8:0/0 = 0
|
||||
9:0/0 = 0
|
||||
0:1/0 = 0
|
||||
1:1/0 = 0
|
||||
2:1/0 = 0
|
||||
3:1/0 = 0
|
||||
4:1/0 = 0
|
||||
5:1/0 = 0
|
||||
6:1/0 = 0
|
||||
7:1/next_alternative_id = 2
|
||||
7:1/0 = 0
|
||||
7:1/1 = 1
|
||||
7:1/1/modulate = Color(0, 1, 0, 1)
|
||||
7:1/1/custom_data_0 = true
|
||||
8:1/0 = 0
|
||||
9:1/0 = 0
|
||||
0:2/0 = 0
|
||||
1:2/0 = 0
|
||||
2:2/0 = 0
|
||||
3:2/0 = 0
|
||||
4:2/0 = 0
|
||||
5:2/0 = 0
|
||||
6:2/0 = 0
|
||||
7:2/0 = 0
|
||||
8:2/0 = 0
|
||||
9:2/0 = 0
|
||||
0:3/0 = 0
|
||||
1:3/0 = 0
|
||||
2:3/0 = 0
|
||||
3:3/0 = 0
|
||||
4:3/0 = 0
|
||||
5:3/0 = 0
|
||||
6:3/0 = 0
|
||||
7:3/0 = 0
|
||||
8:3/0 = 0
|
||||
9:3/0 = 0
|
||||
0:4/0 = 0
|
||||
1:4/0 = 0
|
||||
2:4/0 = 0
|
||||
3:4/0 = 0
|
||||
4:4/0 = 0
|
||||
5:4/0 = 0
|
||||
6:4/0 = 0
|
||||
7:4/0 = 0
|
||||
8:4/0 = 0
|
||||
9:4/0 = 0
|
||||
0:5/0 = 0
|
||||
1:5/0 = 0
|
||||
2:5/0 = 0
|
||||
3:5/0 = 0
|
||||
4:5/next_alternative_id = 2
|
||||
4:5/0 = 0
|
||||
4:5/1 = 1
|
||||
4:5/1/modulate = Color(0, 1, 0, 1)
|
||||
4:5/1/custom_data_0 = true
|
||||
5:5/0 = 0
|
||||
6:5/0 = 0
|
||||
7:5/0 = 0
|
||||
8:5/0 = 0
|
||||
9:5/0 = 0
|
||||
0:6/0 = 0
|
||||
1:6/0 = 0
|
||||
2:6/0 = 0
|
||||
3:6/0 = 0
|
||||
4:6/0 = 0
|
||||
5:6/0 = 0
|
||||
6:6/0 = 0
|
||||
7:6/0 = 0
|
||||
8:6/0 = 0
|
||||
9:6/0 = 0
|
||||
0:7/0 = 0
|
||||
1:7/0 = 0
|
||||
2:7/0 = 0
|
||||
3:7/0 = 0
|
||||
4:7/0 = 0
|
||||
5:7/0 = 0
|
||||
6:7/0 = 0
|
||||
7:7/0 = 0
|
||||
8:7/0 = 0
|
||||
9:7/0 = 0
|
||||
0:8/0 = 0
|
||||
1:8/0 = 0
|
||||
2:8/0 = 0
|
||||
3:8/0 = 0
|
||||
4:8/0 = 0
|
||||
5:8/0 = 0
|
||||
6:8/0 = 0
|
||||
7:8/0 = 0
|
||||
8:8/0 = 0
|
||||
9:8/0 = 0
|
||||
0:9/0 = 0
|
||||
1:9/0 = 0
|
||||
2:9/0 = 0
|
||||
3:9/0 = 0
|
||||
4:9/0 = 0
|
||||
5:9/0 = 0
|
||||
6:9/0 = 0
|
||||
7:9/0 = 0
|
||||
8:9/0 = 0
|
||||
9:9/0 = 0
|
||||
10:0/0 = 0
|
||||
10:1/0 = 0
|
||||
10:2/0 = 0
|
||||
11:2/0 = 0
|
||||
11:3/0 = 0
|
||||
11:4/0 = 0
|
||||
11:5/0 = 0
|
||||
11:6/0 = 0
|
||||
11:7/0 = 0
|
||||
11:8/0 = 0
|
||||
11:9/0 = 0
|
||||
12:10/0 = 0
|
||||
13:10/0 = 0
|
||||
0:10/0 = 0
|
||||
0:11/0 = 0
|
||||
0:12/0 = 0
|
||||
0:13/0 = 0
|
||||
0:14/0 = 0
|
||||
0:15/0 = 0
|
||||
1:10/0 = 0
|
||||
1:11/0 = 0
|
||||
1:12/0 = 0
|
||||
1:13/0 = 0
|
||||
1:14/0 = 0
|
||||
1:15/0 = 0
|
||||
2:10/0 = 0
|
||||
2:11/0 = 0
|
||||
2:12/0 = 0
|
||||
2:13/0 = 0
|
||||
2:14/0 = 0
|
||||
2:15/0 = 0
|
||||
3:10/0 = 0
|
||||
3:11/0 = 0
|
||||
3:12/0 = 0
|
||||
3:13/0 = 0
|
||||
3:14/0 = 0
|
||||
3:15/0 = 0
|
||||
4:10/0 = 0
|
||||
4:11/0 = 0
|
||||
4:12/0 = 0
|
||||
4:13/0 = 0
|
||||
4:14/0 = 0
|
||||
4:15/0 = 0
|
||||
5:10/0 = 0
|
||||
5:11/0 = 0
|
||||
5:12/0 = 0
|
||||
5:13/0 = 0
|
||||
5:14/0 = 0
|
||||
5:15/0 = 0
|
||||
6:10/0 = 0
|
||||
6:11/0 = 0
|
||||
6:12/0 = 0
|
||||
6:13/0 = 0
|
||||
6:14/0 = 0
|
||||
6:15/0 = 0
|
||||
7:10/0 = 0
|
||||
7:11/0 = 0
|
||||
7:12/0 = 0
|
||||
7:13/0 = 0
|
||||
7:14/0 = 0
|
||||
7:15/0 = 0
|
||||
8:10/0 = 0
|
||||
8:11/0 = 0
|
||||
8:12/0 = 0
|
||||
8:13/0 = 0
|
||||
8:14/0 = 0
|
||||
8:15/0 = 0
|
||||
9:10/0 = 0
|
||||
9:11/0 = 0
|
||||
9:12/0 = 0
|
||||
9:13/0 = 0
|
||||
9:14/0 = 0
|
||||
9:15/next_alternative_id = 5
|
||||
9:15/0 = 0
|
||||
9:15/1 = 1
|
||||
9:15/1/modulate = Color(0.64705884, 0.16470589, 0.16470589, 1)
|
||||
9:15/1/custom_data_0 = true
|
||||
9:15/1/custom_data_1 = "name"
|
||||
10:10/0 = 0
|
||||
10:11/0 = 0
|
||||
10:12/0 = 0
|
||||
10:13/0 = 0
|
||||
10:14/0 = 0
|
||||
10:15/0 = 0
|
||||
11:10/0 = 0
|
||||
11:11/0 = 0
|
||||
11:12/0 = 0
|
||||
11:13/0 = 0
|
||||
11:14/0 = 0
|
||||
11:15/0 = 0
|
||||
12:11/0 = 0
|
||||
12:12/0 = 0
|
||||
12:13/0 = 0
|
||||
12:14/0 = 0
|
||||
12:15/0 = 0
|
||||
13:11/0 = 0
|
||||
13:12/0 = 0
|
||||
13:13/0 = 0
|
||||
13:14/next_alternative_id = 2
|
||||
13:14/0 = 0
|
||||
13:14/1 = 1
|
||||
13:14/1/modulate = Color(0, 1, 0, 1)
|
||||
13:15/0 = 0
|
||||
14:10/0 = 0
|
||||
14:11/0 = 0
|
||||
14:12/0 = 0
|
||||
14:13/0 = 0
|
||||
14:14/0 = 0
|
||||
14:15/0 = 0
|
||||
15:10/0 = 0
|
||||
15:11/0 = 0
|
||||
15:12/0 = 0
|
||||
15:13/0 = 0
|
||||
15:14/0 = 0
|
||||
15:15/next_alternative_id = 5
|
||||
15:15/0 = 0
|
||||
15:15/1 = 1
|
||||
15:15/1/modulate = Color(1, 0, 0, 1)
|
||||
15:15/1/custom_data_1 = "LEFT"
|
||||
15:15/2 = 2
|
||||
15:15/2/modulate = Color(0, 1, 0, 1)
|
||||
15:15/2/custom_data_1 = "RIGHT"
|
||||
15:15/3 = 3
|
||||
15:15/3/modulate = Color(0, 0, 1, 1)
|
||||
15:15/3/custom_data_1 = "UP"
|
||||
15:15/4 = 4
|
||||
15:15/4/custom_data_1 = "DOWN"
|
||||
10:3/0 = 0
|
||||
10:4/0 = 0
|
||||
10:5/0 = 0
|
||||
10:6/0 = 0
|
||||
10:7/0 = 0
|
||||
10:8/0 = 0
|
||||
10:9/0 = 0
|
||||
11:0/0 = 0
|
||||
11:1/0 = 0
|
||||
12:0/0 = 0
|
||||
12:1/0 = 0
|
||||
12:2/0 = 0
|
||||
12:3/0 = 0
|
||||
12:4/0 = 0
|
||||
12:5/0 = 0
|
||||
12:6/0 = 0
|
||||
12:7/0 = 0
|
||||
12:8/0 = 0
|
||||
12:9/0 = 0
|
||||
13:0/0 = 0
|
||||
13:1/0 = 0
|
||||
13:2/0 = 0
|
||||
13:3/0 = 0
|
||||
13:4/0 = 0
|
||||
13:5/0 = 0
|
||||
13:6/0 = 0
|
||||
13:7/0 = 0
|
||||
13:8/0 = 0
|
||||
13:9/0 = 0
|
||||
14:0/0 = 0
|
||||
14:1/0 = 0
|
||||
14:2/0 = 0
|
||||
14:3/0 = 0
|
||||
14:4/0 = 0
|
||||
14:5/0 = 0
|
||||
14:6/0 = 0
|
||||
14:7/0 = 0
|
||||
14:8/0 = 0
|
||||
14:9/0 = 0
|
||||
15:0/0 = 0
|
||||
15:1/0 = 0
|
||||
15:2/0 = 0
|
||||
15:3/0 = 0
|
||||
15:4/0 = 0
|
||||
15:5/0 = 0
|
||||
15:6/0 = 0
|
||||
15:7/0 = 0
|
||||
15:8/0 = 0
|
||||
15:9/0 = 0
|
||||
|
||||
[resource]
|
||||
tile_size = Vector2i(10, 10)
|
||||
custom_data_layer_0/name = "walkable"
|
||||
custom_data_layer_0/type = 1
|
||||
custom_data_layer_1/name = "bounds"
|
||||
custom_data_layer_1/type = 4
|
||||
sources/0 = SubResource("TileSetAtlasSource_qtu10")
|
||||
Reference in New Issue
Block a user