FINAL JAM COMMIT

This commit is contained in:
2026-02-01 14:06:04 +02:00
parent d910018b7b
commit 4dcca0d08a
42 changed files with 1652 additions and 55 deletions
Binary file not shown.
@@ -0,0 +1,36 @@
[remap]
importer="font_data_dynamic"
type="FontFile"
uid="uid://2ojf62uk562d"
path="res://.godot/imported/DotGothic16-Regular.ttf-92ac4d0db6d294ec4cf5b81c268c64a1.fontdata"
[deps]
source_file="res://Assets/Fonts/DotGothic16-Regular.ttf"
dest_files=["res://.godot/imported/DotGothic16-Regular.ttf-92ac4d0db6d294ec4cf5b81c268c64a1.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=[]
language_support={}
script_support={}
opentype_features={}
Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://hf1ut501rt4v"
path="res://.godot/imported/broken_altar.png-ac1e9a4b12f5fd9cb18c47dbc3f28b59.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Environments/broken_altar.png"
dest_files=["res://.godot/imported/broken_altar.png-ac1e9a4b12f5fd9cb18c47dbc3f28b59.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ck5ielqswiswh"
path="res://.godot/imported/fallen_sakura.png-49dd82ec9ef0f5015b6af3d21426b290.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/Environments/fallen_sakura.png"
dest_files=["res://.godot/imported/fallen_sakura.png-49dd82ec9ef0f5015b6af3d21426b290.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 261 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cdaoxfxcl87xq"
path="res://.godot/imported/Score.png-4b6ce1605dd92d5517aea3e710ce9d87.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/Score.png"
dest_files=["res://.godot/imported/Score.png-4b6ce1605dd92d5517aea3e710ce9d87.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dudgvn6o3ex"
path="res://.godot/imported/button.png-f5f55c2001b987774ec6d685edf0f92a.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/button.png"
dest_files=["res://.godot/imported/button.png-f5f55c2001b987774ec6d685edf0f92a.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://bb6vffiwr24cs"
path="res://.godot/imported/logokg.png-bc4c8e63d119897cd743f8183203506c.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/logokg.png"
dest_files=["res://.godot/imported/logokg.png-bc4c8e63d119897cd743f8183203506c.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
Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cd08robnbvjxx"
path="res://.godot/imported/panel.png-8a90e05fb516d863b9a2b3cfffa3ac71.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Assets/Sprites/UI/panel.png"
dest_files=["res://.godot/imported/panel.png-8a90e05fb516d863b9a2b3cfffa3ac71.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
+118 -1
View File
@@ -1,11 +1,16 @@
[gd_scene load_steps=18 format=3 uid="uid://cx7gr555b1gov"] [gd_scene load_steps=26 format=3 uid="uid://cx7gr555b1gov"]
[ext_resource type="Texture2D" uid="uid://be7hl01iuo5af" path="res://Assets/Sprites/Characters/Player/kitsune-Sheet.png" id="1_0bpay"] [ext_resource type="Texture2D" uid="uid://be7hl01iuo5af" path="res://Assets/Sprites/Characters/Player/kitsune-Sheet.png" id="1_0bpay"]
[ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_jjtgc"] [ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_jjtgc"]
[ext_resource type="Script" uid="uid://cy00plvsi6vkn" path="res://Scripts/Projectiles/ProjectilePool.cs" id="3_d0rgn"] [ext_resource type="Script" uid="uid://cy00plvsi6vkn" path="res://Scripts/Projectiles/ProjectilePool.cs" id="3_d0rgn"]
[ext_resource type="PackedScene" uid="uid://wucwxtp1w12q" path="res://Prefabs/Projectiles/Blueflame.tscn" id="4_jjtgc"] [ext_resource type="PackedScene" uid="uid://wucwxtp1w12q" path="res://Prefabs/Projectiles/Blueflame.tscn" id="4_jjtgc"]
[ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_d0rgn"] [ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_d0rgn"]
[ext_resource type="Script" uid="uid://qf0qrqg0l7np" path="res://Scripts/Turrets/TurretUpgrader.cs" id="6_0ocyc"]
[ext_resource type="AudioStream" uid="uid://dt18fd3icyuxu" path="res://Assets/Sounds/Sfx/kitsune.wav" id="6_cnydl"] [ext_resource type="AudioStream" uid="uid://dt18fd3icyuxu" path="res://Assets/Sounds/Sfx/kitsune.wav" id="6_cnydl"]
[ext_resource type="Texture2D" uid="uid://b2wa0rqssefiy" path="res://Assets/Sprites/UI/soul.png" id="8_ftmsq"]
[ext_resource type="FontFile" uid="uid://b8lsp07ucxq6p" path="res://Assets/Fonts/MintsodaLimeGreen13X16Regular-KVvzA.ttf" id="9_kt03c"]
[ext_resource type="Texture2D" uid="uid://bfclgdy7dusmg" path="res://Assets/Sprites/Projectiles/projectile_green-Sheet.png" id="10_c1di4"]
[ext_resource type="Texture2D" uid="uid://m77l7ej5ojn0" path="res://Assets/Sprites/Projectiles/flame_attack.png" id="11_odfq6"]
[sub_resource type="AtlasTexture" id="AtlasTexture_3dryh"] [sub_resource type="AtlasTexture" id="AtlasTexture_3dryh"]
atlas = ExtResource("1_0bpay") atlas = ExtResource("1_0bpay")
@@ -69,6 +74,20 @@ size = Vector2(32, 16)
[sub_resource type="QuadMesh" id="QuadMesh_5wxv7"] [sub_resource type="QuadMesh" id="QuadMesh_5wxv7"]
size = Vector2(100, 100) size = Vector2(100, 100)
[sub_resource type="LabelSettings" id="LabelSettings_s4ciy"]
font = ExtResource("9_kt03c")
font_size = 22
outline_size = 6
outline_color = Color(0, 0, 0, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_vail8"]
atlas = ExtResource("10_c1di4")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_45wqr"]
atlas = ExtResource("11_odfq6")
region = Rect2(0, 0, 16, 32)
[node name="Turret" type="Node2D"] [node name="Turret" type="Node2D"]
y_sort_enabled = true y_sort_enabled = true
texture_filter = 1 texture_filter = 1
@@ -103,6 +122,15 @@ DragArea = NodePath("../../DragCollider")
CheckArea = NodePath("../../PlacementCollider") CheckArea = NodePath("../../PlacementCollider")
ShootArea = NodePath("../../ShootArea") ShootArea = NodePath("../../ShootArea")
[node name="TurretUpgrader" type="Node" parent="Scripts" node_paths=PackedStringArray("_turret", "_clickArea", "_ui", "_costLabel", "_damageLabel", "_fireRateLabel")]
script = ExtResource("6_0ocyc")
_turret = NodePath("../Turret")
_clickArea = NodePath("../../DragCollider")
_ui = NodePath("../../Control")
_costLabel = NodePath("../../Control/TextureRect/Cost")
_damageLabel = NodePath("../../Control/TextureRect2/Dmg")
_fireRateLabel = NodePath("../../Control/TextureRect3/Rps")
[node name="ShootArea" type="Area2D" parent="."] [node name="ShootArea" type="Area2D" parent="."]
collision_layer = 0 collision_layer = 0
collision_mask = 4 collision_mask = 4
@@ -136,3 +164,92 @@ mesh = SubResource("QuadMesh_5wxv7")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_cnydl") stream = ExtResource("6_cnydl")
volume_db = -20.0 volume_db = -20.0
[node name="Control" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
offset_left = -64.0
offset_top = -56.0
offset_right = -24.0
offset_bottom = -16.0
scale = Vector2(0.5, 0.5)
[node name="TextureRect" type="TextureRect" parent="Control"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("8_ftmsq")
[node name="Cost" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_s4ciy")
[node name="Label2" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "Cost"
label_settings = SubResource("LabelSettings_s4ciy")
[node name="TextureRect2" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 80.0
offset_right = 120.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_vail8")
stretch_mode = 5
[node name="Dmg" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_s4ciy")
[node name="Label2" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "DMG"
label_settings = SubResource("LabelSettings_s4ciy")
[node name="TextureRect3" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 160.0
offset_right = 200.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_45wqr")
stretch_mode = 5
[node name="Rps" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_s4ciy")
[node name="Label2" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 8.0
offset_top = 20.0
offset_right = 62.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "RPS"
label_settings = SubResource("LabelSettings_s4ciy")
+118 -1
View File
@@ -1,11 +1,16 @@
[gd_scene load_steps=18 format=3 uid="uid://8fsvnmto0ckj"] [gd_scene load_steps=26 format=3 uid="uid://8fsvnmto0ckj"]
[ext_resource type="Texture2D" uid="uid://c6dl0tlkdtis1" path="res://Assets/Sprites/Characters/Player/oniSheet.png" id="1_rg6xk"] [ext_resource type="Texture2D" uid="uid://c6dl0tlkdtis1" path="res://Assets/Sprites/Characters/Player/oniSheet.png" id="1_rg6xk"]
[ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_hi1ge"] [ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_hi1ge"]
[ext_resource type="Script" uid="uid://cy00plvsi6vkn" path="res://Scripts/Projectiles/ProjectilePool.cs" id="3_if52b"] [ext_resource type="Script" uid="uid://cy00plvsi6vkn" path="res://Scripts/Projectiles/ProjectilePool.cs" id="3_if52b"]
[ext_resource type="PackedScene" uid="uid://deud430j2w18n" path="res://Prefabs/Projectiles/GreenFist.tscn" id="4_rg6xk"] [ext_resource type="PackedScene" uid="uid://deud430j2w18n" path="res://Prefabs/Projectiles/GreenFist.tscn" id="4_rg6xk"]
[ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_hi1ge"] [ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_hi1ge"]
[ext_resource type="Script" uid="uid://qf0qrqg0l7np" path="res://Scripts/Turrets/TurretUpgrader.cs" id="6_6qlhu"]
[ext_resource type="AudioStream" uid="uid://ce5vqm3tts58o" path="res://Assets/Sounds/Sfx/oni.wav" id="6_if52b"] [ext_resource type="AudioStream" uid="uid://ce5vqm3tts58o" path="res://Assets/Sounds/Sfx/oni.wav" id="6_if52b"]
[ext_resource type="Texture2D" uid="uid://b2wa0rqssefiy" path="res://Assets/Sprites/UI/soul.png" id="7_ahiq0"]
[ext_resource type="FontFile" uid="uid://b8lsp07ucxq6p" path="res://Assets/Fonts/MintsodaLimeGreen13X16Regular-KVvzA.ttf" id="8_6qlhu"]
[ext_resource type="Texture2D" uid="uid://bfclgdy7dusmg" path="res://Assets/Sprites/Projectiles/projectile_green-Sheet.png" id="9_kidxu"]
[ext_resource type="Texture2D" uid="uid://m77l7ej5ojn0" path="res://Assets/Sprites/Projectiles/flame_attack.png" id="10_v2c4g"]
[sub_resource type="AtlasTexture" id="AtlasTexture_hi1ge"] [sub_resource type="AtlasTexture" id="AtlasTexture_hi1ge"]
atlas = ExtResource("1_rg6xk") atlas = ExtResource("1_rg6xk")
@@ -69,6 +74,20 @@ size = Vector2(100, 100)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_rg6xk"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_rg6xk"]
size = Vector2(32, 16) size = Vector2(32, 16)
[sub_resource type="LabelSettings" id="LabelSettings_nmwuw"]
font = ExtResource("8_6qlhu")
font_size = 22
outline_size = 6
outline_color = Color(0, 0, 0, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_70y4k"]
atlas = ExtResource("9_kidxu")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_n6aa7"]
atlas = ExtResource("10_v2c4g")
region = Rect2(0, 0, 16, 32)
[node name="Turret" type="Node2D"] [node name="Turret" type="Node2D"]
y_sort_enabled = true y_sort_enabled = true
texture_filter = 1 texture_filter = 1
@@ -103,6 +122,15 @@ DragArea = NodePath("../../DragCollider")
CheckArea = NodePath("../../PlacementCollider") CheckArea = NodePath("../../PlacementCollider")
ShootArea = NodePath("../../ShootArea") ShootArea = NodePath("../../ShootArea")
[node name="TurretUpgrader" type="Node" parent="Scripts" node_paths=PackedStringArray("_turret", "_clickArea", "_ui", "_costLabel", "_damageLabel", "_fireRateLabel")]
script = ExtResource("6_6qlhu")
_turret = NodePath("../Turret")
_clickArea = NodePath("../../DragCollider")
_ui = NodePath("../../Control")
_costLabel = NodePath("../../Control/TextureRect/Cost")
_damageLabel = NodePath("../../Control/TextureRect2/Dmg")
_fireRateLabel = NodePath("../../Control/TextureRect3/Rps")
[node name="ShootArea" type="Area2D" parent="."] [node name="ShootArea" type="Area2D" parent="."]
collision_layer = 0 collision_layer = 0
collision_mask = 4 collision_mask = 4
@@ -134,3 +162,92 @@ shape = SubResource("RectangleShape2D_rg6xk")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_if52b") stream = ExtResource("6_if52b")
volume_db = -20.0 volume_db = -20.0
[node name="Control" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
offset_left = -64.0
offset_top = -56.0
offset_right = -24.0
offset_bottom = -16.0
scale = Vector2(0.5, 0.5)
[node name="TextureRect" type="TextureRect" parent="Control"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("7_ahiq0")
[node name="Cost" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_nmwuw")
[node name="Label2" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "Cost"
label_settings = SubResource("LabelSettings_nmwuw")
[node name="TextureRect2" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 80.0
offset_right = 120.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_70y4k")
stretch_mode = 5
[node name="Dmg" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_nmwuw")
[node name="Label2" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "DMG"
label_settings = SubResource("LabelSettings_nmwuw")
[node name="TextureRect3" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 160.0
offset_right = 200.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_n6aa7")
stretch_mode = 5
[node name="Rps" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_nmwuw")
[node name="Label2" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 8.0
offset_top = 20.0
offset_right = 62.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "RPS"
label_settings = SubResource("LabelSettings_nmwuw")
+118 -1
View File
@@ -1,4 +1,4 @@
[gd_scene load_steps=18 format=3 uid="uid://cthdcnxhbyad2"] [gd_scene load_steps=26 format=3 uid="uid://cthdcnxhbyad2"]
[ext_resource type="Texture2D" uid="uid://codbtra5i6ara" path="res://Assets/Sprites/Characters/Player/tengu-Sheet.png" id="1_3e4v5"] [ext_resource type="Texture2D" uid="uid://codbtra5i6ara" path="res://Assets/Sprites/Characters/Player/tengu-Sheet.png" id="1_3e4v5"]
[ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_ahbvo"] [ext_resource type="Script" uid="uid://cxrhl65cjw4yr" path="res://Scripts/Turrets/Turret.cs" id="2_ahbvo"]
@@ -6,6 +6,11 @@
[ext_resource type="PackedScene" uid="uid://cr6shokga0dy6" path="res://Prefabs/Projectiles/Fireball.tscn" id="4_mtyrr"] [ext_resource type="PackedScene" uid="uid://cr6shokga0dy6" path="res://Prefabs/Projectiles/Fireball.tscn" id="4_mtyrr"]
[ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_ahbvo"] [ext_resource type="Script" uid="uid://bpqof3jshxnug" path="res://Scripts/Turrets/DragMover.cs" id="5_ahbvo"]
[ext_resource type="AudioStream" uid="uid://wvrhsssfi7w3" path="res://Assets/Sounds/Sfx/tengu.wav" id="6_466qr"] [ext_resource type="AudioStream" uid="uid://wvrhsssfi7w3" path="res://Assets/Sounds/Sfx/tengu.wav" id="6_466qr"]
[ext_resource type="Script" uid="uid://qf0qrqg0l7np" path="res://Scripts/Turrets/TurretUpgrader.cs" id="6_i8ey8"]
[ext_resource type="Texture2D" uid="uid://b2wa0rqssefiy" path="res://Assets/Sprites/UI/soul.png" id="7_u8dw0"]
[ext_resource type="FontFile" uid="uid://b8lsp07ucxq6p" path="res://Assets/Fonts/MintsodaLimeGreen13X16Regular-KVvzA.ttf" id="8_i8ey8"]
[ext_resource type="Texture2D" uid="uid://bfclgdy7dusmg" path="res://Assets/Sprites/Projectiles/projectile_green-Sheet.png" id="9_sh1pr"]
[ext_resource type="Texture2D" uid="uid://m77l7ej5ojn0" path="res://Assets/Sprites/Projectiles/flame_attack.png" id="10_2yn51"]
[sub_resource type="AtlasTexture" id="AtlasTexture_ahbvo"] [sub_resource type="AtlasTexture" id="AtlasTexture_ahbvo"]
atlas = ExtResource("1_3e4v5") atlas = ExtResource("1_3e4v5")
@@ -69,6 +74,20 @@ size = Vector2(100, 100)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3e4v5"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_3e4v5"]
size = Vector2(32, 16) size = Vector2(32, 16)
[sub_resource type="LabelSettings" id="LabelSettings_ubruh"]
font = ExtResource("8_i8ey8")
font_size = 22
outline_size = 6
outline_color = Color(0, 0, 0, 1)
[sub_resource type="AtlasTexture" id="AtlasTexture_viipx"]
atlas = ExtResource("9_sh1pr")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_0dq80"]
atlas = ExtResource("10_2yn51")
region = Rect2(0, 0, 16, 32)
[node name="Turret" type="Node2D"] [node name="Turret" type="Node2D"]
y_sort_enabled = true y_sort_enabled = true
texture_filter = 1 texture_filter = 1
@@ -103,6 +122,15 @@ DragArea = NodePath("../../DragCollider")
CheckArea = NodePath("../../PlacementCollider") CheckArea = NodePath("../../PlacementCollider")
ShootArea = NodePath("../../ShootArea") ShootArea = NodePath("../../ShootArea")
[node name="TurretUpgrader" type="Node" parent="Scripts" node_paths=PackedStringArray("_turret", "_clickArea", "_ui", "_costLabel", "_damageLabel", "_fireRateLabel")]
script = ExtResource("6_i8ey8")
_turret = NodePath("../Turret")
_clickArea = NodePath("../../DragCollider")
_ui = NodePath("../../Control")
_costLabel = NodePath("../../Control/TextureRect/Cost")
_damageLabel = NodePath("../../Control/TextureRect2/Dmg")
_fireRateLabel = NodePath("../../Control/TextureRect3/Rps")
[node name="ShootArea" type="Area2D" parent="."] [node name="ShootArea" type="Area2D" parent="."]
collision_layer = 0 collision_layer = 0
collision_mask = 4 collision_mask = 4
@@ -134,3 +162,92 @@ shape = SubResource("RectangleShape2D_3e4v5")
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."] [node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("6_466qr") stream = ExtResource("6_466qr")
volume_db = -20.0 volume_db = -20.0
[node name="Control" type="Control" parent="."]
visible = false
layout_mode = 3
anchors_preset = 0
offset_left = -64.0
offset_top = -56.0
offset_right = -24.0
offset_bottom = -16.0
scale = Vector2(0.5, 0.5)
[node name="TextureRect" type="TextureRect" parent="Control"]
layout_mode = 0
offset_right = 40.0
offset_bottom = 40.0
texture = ExtResource("7_u8dw0")
[node name="Cost" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_ubruh")
[node name="Label2" type="Label" parent="Control/TextureRect"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "Cost"
label_settings = SubResource("LabelSettings_ubruh")
[node name="TextureRect2" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 80.0
offset_right = 120.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_viipx")
stretch_mode = 5
[node name="Dmg" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_ubruh")
[node name="Label2" type="Label" parent="Control/TextureRect2"]
layout_mode = 0
offset_left = 4.0
offset_top = 20.0
offset_right = 58.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "DMG"
label_settings = SubResource("LabelSettings_ubruh")
[node name="TextureRect3" type="TextureRect" parent="Control"]
layout_mode = 0
offset_left = 160.0
offset_right = 200.0
offset_bottom = 40.0
texture = SubResource("AtlasTexture_0dq80")
stretch_mode = 5
[node name="Rps" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 40.0
offset_top = 12.0
offset_right = 81.0
offset_bottom = 38.0
text = "999"
label_settings = SubResource("LabelSettings_ubruh")
[node name="Label2" type="Label" parent="Control/TextureRect3"]
layout_mode = 0
offset_left = 8.0
offset_top = 20.0
offset_right = 62.0
offset_bottom = 46.0
scale = Vector2(0.56, 0.56)
text = "RPS"
label_settings = SubResource("LabelSettings_ubruh")
+8
View File
@@ -0,0 +1,8 @@
[gd_resource type="Environment" format=3 uid="uid://8npqvmcbfysk"]
[resource]
background_mode = 3
background_color = Color(0.1254902, 0.1254902, 0.1254902, 1)
ambient_light_color = Color(0.1254902, 0.1254902, 0.1254902, 1)
glow_enabled = true
glow_blend_mode = 1
+44
View File
@@ -0,0 +1,44 @@
[gd_scene load_steps=6 format=3 uid="uid://ddoe833kg11n5"]
[ext_resource type="AudioStream" uid="uid://dbsuw8omrcx1d" path="res://Assets/Sounds/Music/8bit-mysterious-kyouto_reverb_Loop.ogg" id="1_5ast2"]
[ext_resource type="Script" uid="uid://bmdb22du7uvr1" path="res://Scripts/Common/SceneManager.cs" id="2_uy6xw"]
[ext_resource type="PackedScene" uid="uid://csyk43kt3xbyx" path="res://Scenes/game.tscn" id="3_4cwpi"]
[ext_resource type="PackedScene" uid="uid://cof1iapx258cw" path="res://Scenes/menu.tscn" id="4_a4hfx"]
[ext_resource type="PackedScene" uid="uid://c1n63k05rq5g4" path="res://Scenes/endscreen.tscn" id="5_6st05"]
[node name="Root" type="Node2D"]
[node name="MusicPLayer" type="AudioStreamPlayer" parent="."]
process_mode = 3
stream = ExtResource("1_5ast2")
volume_db = -30.0
autoplay = true
parameters/looping = true
[node name="SceneManager" type="Node" parent="." node_paths=PackedStringArray("_root")]
process_mode = 3
script = ExtResource("2_uy6xw")
_root = NodePath("..")
_gameScene = ExtResource("3_4cwpi")
_menuScene = ExtResource("4_a4hfx")
_endScene = ExtResource("5_6st05")
[node name="CanvasLayer" type="CanvasLayer" parent="."]
process_mode = 3
layer = 6767
visible = false
[node name="ColorRect" type="ColorRect" parent="CanvasLayer"]
custom_minimum_size = Vector2(1, 1)
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -4999.5
offset_top = -4999.5
offset_right = 4999.5
offset_bottom = 4999.5
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
File diff suppressed because one or more lines are too long
+233 -26
View File
@@ -1,8 +1,9 @@
[gd_scene load_steps=45 format=4 uid="uid://csyk43kt3xbyx"] [gd_scene load_steps=54 format=4 uid="uid://csyk43kt3xbyx"]
[ext_resource type="TileSet" uid="uid://b15j7vhkfu415" path="res://Resources/environmentTileMap.tres" id="1_ebmjs"] [ext_resource type="TileSet" uid="uid://b15j7vhkfu415" path="res://Resources/environmentTileMap.tres" id="1_ebmjs"]
[ext_resource type="Script" uid="uid://djp8dmixf6sq2" path="res://Scripts/Common/GameController.cs" id="1_i6g32"] [ext_resource type="Script" uid="uid://djp8dmixf6sq2" path="res://Scripts/Common/GameController.cs" id="1_i6g32"]
[ext_resource type="Script" uid="uid://b0uosq6r5dbqa" path="res://Scripts/Turrets/TurretController.cs" id="1_nb51f"] [ext_resource type="Script" uid="uid://b0uosq6r5dbqa" path="res://Scripts/Turrets/TurretController.cs" id="1_nb51f"]
[ext_resource type="Script" uid="uid://ch2o7voah6o3o" path="res://Scripts/Common/PauseManager.cs" id="1_tgy6u"]
[ext_resource type="Script" uid="uid://bhxyvnirfeipr" path="res://Scripts/Enemies/EnemyPool.cs" id="2_i6g32"] [ext_resource type="Script" uid="uid://bhxyvnirfeipr" path="res://Scripts/Enemies/EnemyPool.cs" id="2_i6g32"]
[ext_resource type="Script" uid="uid://cds2rrl4yjexf" path="res://Scripts/Enemies/EnemySpawner.cs" id="3_1l0tm"] [ext_resource type="Script" uid="uid://cds2rrl4yjexf" path="res://Scripts/Enemies/EnemySpawner.cs" id="3_1l0tm"]
[ext_resource type="PackedScene" uid="uid://8230dpmp7mic" path="res://Prefabs/Turrets/Placeholders/kitsune_ph.tscn" id="3_ewbju"] [ext_resource type="PackedScene" uid="uid://8230dpmp7mic" path="res://Prefabs/Turrets/Placeholders/kitsune_ph.tscn" id="3_ewbju"]
@@ -25,7 +26,11 @@
[ext_resource type="Shader" uid="uid://8dk8mi2w1xl6" path="res://Scenes/game.tres" id="14_1phco"] [ext_resource type="Shader" uid="uid://8dk8mi2w1xl6" path="res://Scenes/game.tres" id="14_1phco"]
[ext_resource type="Texture2D" uid="uid://2x62ipg12256" path="res://Assets/Sprites/Vfx/particle.png" id="16_22asu"] [ext_resource type="Texture2D" uid="uid://2x62ipg12256" path="res://Assets/Sprites/Vfx/particle.png" id="16_22asu"]
[ext_resource type="Script" uid="uid://dxcke7geb20dm" path="res://Scripts/Misc/Floating.gd" id="19_fkdbe"] [ext_resource type="Script" uid="uid://dxcke7geb20dm" path="res://Scripts/Misc/Floating.gd" id="19_fkdbe"]
[ext_resource type="AudioStream" uid="uid://dbsuw8omrcx1d" path="res://Assets/Sounds/Music/8bit-mysterious-kyouto_reverb_Loop.ogg" id="26_fkdbe"] [ext_resource type="Script" uid="uid://fxb27qlab5nb" path="res://Scripts/UI/PriceUpdater.cs" id="25_mucmn"]
[ext_resource type="FontFile" uid="uid://2ojf62uk562d" path="res://Assets/Fonts/DotGothic16-Regular.ttf" id="26_81klo"]
[ext_resource type="Texture2D" uid="uid://cdaoxfxcl87xq" path="res://Assets/Sprites/UI/Score.png" id="27_8m3t6"]
[ext_resource type="Texture2D" uid="uid://dudgvn6o3ex" path="res://Assets/Sprites/UI/button.png" id="27_tgy6u"]
[ext_resource type="Script" uid="uid://bsmpt1ig823du" path="res://Scripts/UI/SceneChangerBtn.cs" id="29_cwurv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1l0tm"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_1l0tm"]
size = Vector2(19, 11) size = Vector2(19, 11)
@@ -119,6 +124,9 @@ adjustment_contrast = 1.1
atlas = ExtResource("11_o5yvi") atlas = ExtResource("11_o5yvi")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
[sub_resource type="LabelSettings" id="LabelSettings_ese38"]
font = ExtResource("12_rfjv2")
[sub_resource type="AtlasTexture" id="AtlasTexture_nnt18"] [sub_resource type="AtlasTexture" id="AtlasTexture_nnt18"]
atlas = ExtResource("11_o5yvi") atlas = ExtResource("11_o5yvi")
region = Rect2(0, 16, 16, 15) region = Rect2(0, 16, 16, 15)
@@ -137,9 +145,31 @@ shadow_size = 0
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nb51f"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_nb51f"]
shader = ExtResource("14_1phco") shader = ExtResource("14_1phco")
[node name="Root" type="Node2D"] [sub_resource type="LabelSettings" id="LabelSettings_cwurv"]
font = ExtResource("26_81klo")
font_size = 128
outline_size = 12
outline_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_mucmn"]
font = ExtResource("12_rfjv2")
font_size = 18
outline_size = 2
outline_color = Color(0, 0, 0, 1)
[sub_resource type="LabelSettings" id="LabelSettings_8m3t6"]
font = ExtResource("26_81klo")
font_size = 36
[node name="Game" type="Node2D"]
texture_filter = 1 texture_filter = 1
[node name="PauseManager" type="Node" parent="." node_paths=PackedStringArray("_hud", "_pauseMenu")]
process_mode = 3
script = ExtResource("1_tgy6u")
_hud = NodePath("../Hud")
_pauseMenu = NodePath("../PauseMenu")
[node name="TurretController" type="Node2D" parent="." node_paths=PackedStringArray("_turretParent")] [node name="TurretController" type="Node2D" parent="." node_paths=PackedStringArray("_turretParent")]
script = ExtResource("1_nb51f") script = ExtResource("1_nb51f")
_typeToPrefab = Dictionary[int, PackedScene]({ _typeToPrefab = Dictionary[int, PackedScene]({
@@ -153,12 +183,14 @@ _typeToPlaceholder = Dictionary[int, PackedScene]({
2: ExtResource("5_7nbq1") 2: ExtResource("5_7nbq1")
}) })
_turretParent = NodePath("../Level/YSorted/Turrets") _turretParent = NodePath("../Level/YSorted/Turrets")
BasePrice = 125
[node name="GameController" type="Node" parent="." node_paths=PackedStringArray("_CurrencyLabel", "_ShrineHealthLabel")] [node name="GameController" type="Node" parent="." node_paths=PackedStringArray("_CurrencyLabel", "_ShrineHealthLabel", "_scoreLabel")]
script = ExtResource("1_i6g32") script = ExtResource("1_i6g32")
_ShrineStartHP = 100.0 _ShrineStartHP = 100.0
_CurrencyLabel = NodePath("../CanvasLayer/UIRoot/CurrencyImg/CurrencyLabel") _CurrencyLabel = NodePath("../Hud/UIRoot/CurrencyImg/CurrencyLabel")
_ShrineHealthLabel = NodePath("../CanvasLayer/UIRoot/ShrineHealthImg/ShrineHealthLabel") _ShrineHealthLabel = NodePath("../Hud/UIRoot/ShrineHealthImg/ShrineHealthLabel")
_scoreLabel = NodePath("../Hud/UIRoot/Score/ScoreLabel")
[node name="EnemyController" type="Node" parent="."] [node name="EnemyController" type="Node" parent="."]
@@ -395,9 +427,9 @@ current = true
[node name="WorldEnvironment" type="WorldEnvironment" parent="."] [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_h4fw4") environment = SubResource("Environment_h4fw4")
[node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="Hud" type="CanvasLayer" parent="."]
[node name="UIRoot" type="Control" parent="CanvasLayer"] [node name="UIRoot" type="Control" parent="Hud"]
texture_filter = 1 texture_filter = 1
layout_mode = 3 layout_mode = 3
anchors_preset = 15 anchors_preset = 15
@@ -407,7 +439,7 @@ grow_horizontal = 2
grow_vertical = 2 grow_vertical = 2
mouse_filter = 1 mouse_filter = 1
[node name="GridContainer" type="GridContainer" parent="CanvasLayer/UIRoot"] [node name="GridContainer" type="GridContainer" parent="Hud/UIRoot"]
layout_mode = 1 layout_mode = 1
anchors_preset = 7 anchors_preset = 7
anchor_left = 0.5 anchor_left = 0.5
@@ -423,28 +455,90 @@ grow_vertical = 0
scale = Vector2(2, 2) scale = Vector2(2, 2)
columns = 3 columns = 3
[node name="Oni" type="Button" parent="CanvasLayer/UIRoot/GridContainer"] [node name="Oni" type="Button" parent="Hud/UIRoot/GridContainer"]
custom_minimum_size = Vector2(42, 42) custom_minimum_size = Vector2(42, 42)
layout_mode = 2 layout_mode = 2
icon = SubResource("AtlasTexture_nb51f") icon = SubResource("AtlasTexture_nb51f")
icon_alignment = 1 icon_alignment = 1
expand_icon = true expand_icon = true
[node name="Kitsune" type="Button" parent="CanvasLayer/UIRoot/GridContainer"] [node name="Price" type="Label" parent="Hud/UIRoot/GridContainer/Oni"]
visible = false
layout_mode = 0
offset_left = 20.0
offset_top = -20.0
offset_right = 60.0
offset_bottom = 3.0
text = "999"
label_settings = SubResource("LabelSettings_ese38")
vertical_alignment = 1
script = ExtResource("25_mucmn")
[node name="TextureRect" type="TextureRect" parent="Hud/UIRoot/GridContainer/Oni/Price"]
layout_mode = 0
offset_left = -20.0
offset_right = 20.0
offset_bottom = 40.0
scale = Vector2(0.5, 0.5)
texture = ExtResource("13_1phco")
[node name="Kitsune" type="Button" parent="Hud/UIRoot/GridContainer"]
custom_minimum_size = Vector2(42, 42) custom_minimum_size = Vector2(42, 42)
layout_mode = 2 layout_mode = 2
icon = SubResource("AtlasTexture_nnt18") icon = SubResource("AtlasTexture_nnt18")
icon_alignment = 1 icon_alignment = 1
expand_icon = true expand_icon = true
[node name="Tengu" type="Button" parent="CanvasLayer/UIRoot/GridContainer"] [node name="Price" type="Label" parent="Hud/UIRoot/GridContainer/Kitsune"]
visible = false
layout_mode = 0
offset_left = 14.0
offset_top = -20.0
offset_right = 54.0
offset_bottom = 3.0
text = "125"
label_settings = SubResource("LabelSettings_ese38")
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("25_mucmn")
[node name="TextureRect" type="TextureRect" parent="Hud/UIRoot/GridContainer/Kitsune/Price"]
layout_mode = 0
offset_left = -14.0
offset_right = 26.0
offset_bottom = 40.0
scale = Vector2(0.5, 0.5)
texture = ExtResource("13_1phco")
[node name="Tengu" type="Button" parent="Hud/UIRoot/GridContainer"]
custom_minimum_size = Vector2(42, 42) custom_minimum_size = Vector2(42, 42)
layout_mode = 2 layout_mode = 2
icon = SubResource("AtlasTexture_ewbju") icon = SubResource("AtlasTexture_ewbju")
icon_alignment = 1 icon_alignment = 1
expand_icon = true expand_icon = true
[node name="CurrencyImg" type="TextureRect" parent="CanvasLayer/UIRoot"] [node name="Price" type="Label" parent="Hud/UIRoot/GridContainer/Tengu"]
visible = false
layout_mode = 0
offset_left = 12.0
offset_top = -20.0
offset_right = 52.0
offset_bottom = 3.0
text = "125"
label_settings = SubResource("LabelSettings_ese38")
horizontal_alignment = 1
vertical_alignment = 1
script = ExtResource("25_mucmn")
[node name="TextureRect" type="TextureRect" parent="Hud/UIRoot/GridContainer/Tengu/Price"]
layout_mode = 0
offset_left = -12.0
offset_right = 28.0
offset_bottom = 40.0
scale = Vector2(0.5, 0.5)
texture = ExtResource("13_1phco")
[node name="CurrencyImg" type="TextureRect" parent="Hud/UIRoot"]
layout_mode = 1 layout_mode = 1
offset_left = 8.0 offset_left = 8.0
offset_top = 8.0 offset_top = 8.0
@@ -453,7 +547,7 @@ offset_bottom = 48.0
scale = Vector2(2, 2) scale = Vector2(2, 2)
texture = ExtResource("13_1phco") texture = ExtResource("13_1phco")
[node name="CurrencyLabel" type="Label" parent="CanvasLayer/UIRoot/CurrencyImg"] [node name="CurrencyLabel" type="Label" parent="Hud/UIRoot/CurrencyImg"]
layout_mode = 1 layout_mode = 1
offset_left = 40.0 offset_left = 40.0
offset_top = 8.0 offset_top = 8.0
@@ -462,7 +556,26 @@ offset_bottom = 36.0
text = "99999999" text = "99999999"
label_settings = SubResource("LabelSettings_o5yvi") label_settings = SubResource("LabelSettings_o5yvi")
[node name="ShrineHealthImg" type="TextureRect" parent="CanvasLayer/UIRoot"] [node name="Score" type="TextureRect" parent="Hud/UIRoot"]
layout_mode = 1
offset_left = 1096.0
offset_top = 8.0
offset_right = 1120.0
offset_bottom = 32.0
scale = Vector2(2, 2)
texture = ExtResource("27_8m3t6")
[node name="ScoreLabel" type="Label" parent="Hud/UIRoot/Score"]
layout_mode = 1
offset_left = -228.0
offset_top = -2.5
offset_right = -2.0
offset_bottom = 25.5
text = "99999999"
label_settings = SubResource("LabelSettings_o5yvi")
horizontal_alignment = 2
[node name="ShrineHealthImg" type="TextureRect" parent="Hud/UIRoot"]
self_modulate = Color(1, 0, 0, 1) self_modulate = Color(1, 0, 0, 1)
material = SubResource("ShaderMaterial_nb51f") material = SubResource("ShaderMaterial_nb51f")
layout_mode = 1 layout_mode = 1
@@ -473,7 +586,7 @@ offset_bottom = 144.0
scale = Vector2(2, 2) scale = Vector2(2, 2)
texture = ExtResource("13_1phco") texture = ExtResource("13_1phco")
[node name="ShrineHealthLabel" type="Label" parent="CanvasLayer/UIRoot/ShrineHealthImg"] [node name="ShrineHealthLabel" type="Label" parent="Hud/UIRoot/ShrineHealthImg"]
layout_mode = 1 layout_mode = 1
offset_left = 40.0 offset_left = 40.0
offset_top = 8.0 offset_top = 8.0
@@ -482,7 +595,7 @@ offset_bottom = 36.0
text = "100%" text = "100%"
label_settings = SubResource("LabelSettings_o5yvi") label_settings = SubResource("LabelSettings_o5yvi")
[node name="StartWaveBtn" type="Button" parent="CanvasLayer/UIRoot"] [node name="StartWaveBtn" type="Button" parent="Hud/UIRoot"]
visible = false visible = false
layout_mode = 0 layout_mode = 0
offset_left = 872.0 offset_left = 872.0
@@ -492,13 +605,107 @@ offset_bottom = 599.0
scale = Vector2(2, 2) scale = Vector2(2, 2)
text = "Start Next Wave" text = "Start Next Wave"
[node name="MusicPLayer" type="AudioStreamPlayer" parent="."] [node name="PauseMenu" type="CanvasLayer" parent="."]
stream = ExtResource("26_fkdbe") process_mode = 3
volume_db = -30.0 visible = false
autoplay = true
parameters/looping = true
[connection signal="pressed" from="CanvasLayer/UIRoot/GridContainer/Oni" to="TurretController" method="StartPlaceingTurret" binds= [2]] [node name="Label" type="Label" parent="PauseMenu"]
[connection signal="pressed" from="CanvasLayer/UIRoot/GridContainer/Kitsune" to="TurretController" method="StartPlaceingTurret" binds= [0]] texture_filter = 1
[connection signal="pressed" from="CanvasLayer/UIRoot/GridContainer/Tengu" to="TurretController" method="StartPlaceingTurret" binds= [1]] anchors_preset = 5
[connection signal="pressed" from="CanvasLayer/UIRoot/StartWaveBtn" to="GameController" method="StartWave"] anchor_left = 0.5
anchor_right = 0.5
offset_left = -128.0
offset_top = -22.0
offset_right = 128.0
offset_bottom = 164.0
grow_horizontal = 2
text = "一時停止"
label_settings = SubResource("LabelSettings_cwurv")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Label2" type="Label" parent="PauseMenu"]
texture_filter = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -106.0
offset_top = 93.0
offset_right = 106.0
offset_bottom = 211.0
grow_horizontal = 2
text = "The game is paused"
label_settings = SubResource("LabelSettings_mucmn")
horizontal_alignment = 1
vertical_alignment = 1
[node name="HFlowContainer" type="HFlowContainer" parent="PauseMenu"]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -147.0
offset_top = -122.0
offset_right = 147.0
offset_bottom = -2.0
grow_horizontal = 2
grow_vertical = 0
alignment = 1
[node name="Continue" type="TextureButton" parent="PauseMenu/HFlowContainer"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("27_tgy6u")
stretch_mode = 5
[node name="Label" type="Label" parent="PauseMenu/HFlowContainer/Continue"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Continue"
label_settings = SubResource("LabelSettings_8m3t6")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Menu" type="TextureButton" parent="PauseMenu/HFlowContainer"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("27_tgy6u")
stretch_mode = 5
script = ExtResource("29_cwurv")
[node name="Label" type="Label" parent="PauseMenu/HFlowContainer/Menu"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Main Menu"
label_settings = SubResource("LabelSettings_8m3t6")
horizontal_alignment = 1
vertical_alignment = 1
[connection signal="mouse_entered" from="Hud/UIRoot/GridContainer/Oni" to="Hud/UIRoot/GridContainer/Oni/Price" method="set_visible" binds= [true]]
[connection signal="mouse_exited" from="Hud/UIRoot/GridContainer/Oni" to="Hud/UIRoot/GridContainer/Oni/Price" method="set_visible" binds= [false]]
[connection signal="pressed" from="Hud/UIRoot/GridContainer/Oni" to="TurretController" method="StartPlaceingTurret" binds= [2]]
[connection signal="mouse_entered" from="Hud/UIRoot/GridContainer/Kitsune" to="Hud/UIRoot/GridContainer/Kitsune/Price" method="set_visible" binds= [true]]
[connection signal="mouse_exited" from="Hud/UIRoot/GridContainer/Kitsune" to="Hud/UIRoot/GridContainer/Kitsune/Price" method="set_visible" binds= [false]]
[connection signal="pressed" from="Hud/UIRoot/GridContainer/Kitsune" to="TurretController" method="StartPlaceingTurret" binds= [0]]
[connection signal="mouse_entered" from="Hud/UIRoot/GridContainer/Tengu" to="Hud/UIRoot/GridContainer/Tengu/Price" method="set_visible" binds= [true]]
[connection signal="mouse_exited" from="Hud/UIRoot/GridContainer/Tengu" to="Hud/UIRoot/GridContainer/Tengu/Price" method="set_visible" binds= [false]]
[connection signal="pressed" from="Hud/UIRoot/GridContainer/Tengu" to="TurretController" method="StartPlaceingTurret" binds= [1]]
[connection signal="pressed" from="Hud/UIRoot/StartWaveBtn" to="GameController" method="StartWave"]
[connection signal="pressed" from="PauseMenu/HFlowContainer/Continue" to="PauseManager" method="ContinueGame"]
+267
View File
@@ -0,0 +1,267 @@
[gd_scene load_steps=12 format=3 uid="uid://cof1iapx258cw"]
[ext_resource type="Texture2D" uid="uid://bb6vffiwr24cs" path="res://Assets/Sprites/UI/logokg.png" id="1_1rerr"]
[ext_resource type="Texture2D" uid="uid://dudgvn6o3ex" path="res://Assets/Sprites/UI/button.png" id="1_cayip"]
[ext_resource type="FontFile" uid="uid://2ojf62uk562d" path="res://Assets/Fonts/DotGothic16-Regular.ttf" id="2_158mb"]
[ext_resource type="Script" uid="uid://bsmpt1ig823du" path="res://Scripts/UI/SceneChangerBtn.cs" id="2_jsrd8"]
[ext_resource type="Texture2D" uid="uid://2x62ipg12256" path="res://Assets/Sprites/Vfx/particle.png" id="4_158mb"]
[ext_resource type="Script" uid="uid://dsjivlkkwvwqs" path="res://Scripts/UI/QuitBtn.gd" id="4_wbdvm"]
[ext_resource type="FontFile" uid="uid://b8lsp07ucxq6p" path="res://Assets/Fonts/MintsodaLimeGreen13X16Regular-KVvzA.ttf" id="4_wwsa2"]
[sub_resource type="LabelSettings" id="LabelSettings_wwsa2"]
font = ExtResource("2_158mb")
font_size = 36
[sub_resource type="LabelSettings" id="LabelSettings_jsrd8"]
font = ExtResource("4_wwsa2")
font_size = 51
[sub_resource type="LabelSettings" id="LabelSettings_wbdvm"]
font = ExtResource("4_wwsa2")
font_size = 26
[sub_resource type="Gradient" id="Gradient_wwsa2"]
offsets = PackedFloat32Array(0, 0.6683673, 1)
colors = PackedColorArray(0, 0, 0, 0, 4.416, 2.127, 3.729, 1, 1, 1, 1, 0)
[node name="Menu" type="Node2D"]
[node name="Camera2D" type="Camera2D" parent="."]
zoom = Vector2(4, 4)
[node name="CanvasLayer" type="CanvasLayer" parent="."]
[node name="Control" type="Control" parent="CanvasLayer"]
texture_filter = 1
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="HFlowContainer" type="VFlowContainer" parent="CanvasLayer/Control"]
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -100.0
offset_top = -244.0
offset_right = 100.0
offset_bottom = -19.0
grow_horizontal = 2
grow_vertical = 0
alignment = 1
last_wrap_alignment = 2
[node name="Start" type="TextureButton" parent="CanvasLayer/Control/HFlowContainer"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("1_cayip")
stretch_mode = 5
script = ExtResource("2_jsrd8")
_changeTo = 1
[node name="Label" type="Label" parent="CanvasLayer/Control/HFlowContainer/Start"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Start"
label_settings = SubResource("LabelSettings_wwsa2")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Settings" type="TextureButton" parent="CanvasLayer/Control/HFlowContainer"]
visible = false
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("1_cayip")
stretch_mode = 5
[node name="Label" type="Label" parent="CanvasLayer/Control/HFlowContainer/Settings"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Settings"
label_settings = SubResource("LabelSettings_wwsa2")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Credits" type="TextureButton" parent="CanvasLayer/Control/HFlowContainer"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("1_cayip")
stretch_mode = 5
[node name="Label" type="Label" parent="CanvasLayer/Control/HFlowContainer/Credits"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Credits"
label_settings = SubResource("LabelSettings_wwsa2")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Quit" type="TextureButton" parent="CanvasLayer/Control/HFlowContainer"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 2
texture_normal = ExtResource("1_cayip")
stretch_mode = 5
script = ExtResource("4_wbdvm")
[node name="Label" type="Label" parent="CanvasLayer/Control/HFlowContainer/Quit"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Quit"
label_settings = SubResource("LabelSettings_wwsa2")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Logo" type="TextureRect" parent="CanvasLayer/Control"]
layout_mode = 1
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -368.0
offset_top = -38.0
offset_right = 368.00006
offset_bottom = 422.0
grow_horizontal = 2
texture = ExtResource("1_1rerr")
[node name="Credits" type="Control" parent="CanvasLayer/Control"]
visible = false
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="Mainmenu" type="TextureButton" parent="CanvasLayer/Control/Credits"]
texture_filter = 1
custom_minimum_size = Vector2(200, 50)
layout_mode = 1
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -100.0
offset_top = -82.0
offset_right = 100.0
offset_bottom = -32.0
grow_horizontal = 2
grow_vertical = 0
texture_normal = ExtResource("1_cayip")
stretch_mode = 5
[node name="Label" type="Label" parent="CanvasLayer/Control/Credits/Mainmenu"]
texture_filter = 1
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_top = -2.0
offset_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
text = "Back"
label_settings = SubResource("LabelSettings_wwsa2")
horizontal_alignment = 1
vertical_alignment = 1
[node name="Label" type="Label" parent="CanvasLayer/Control/Credits"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -102.0
offset_top = 45.0
offset_right = 102.0
offset_bottom = 166.0
grow_horizontal = 2
grow_vertical = 2
text = "Credits
"
label_settings = SubResource("LabelSettings_jsrd8")
horizontal_alignment = 1
[node name="Label2" type="Label" parent="CanvasLayer/Control/Credits"]
layout_mode = 1
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -244.0
offset_top = 104.0
offset_right = 244.0
offset_bottom = 266.0
grow_horizontal = 2
grow_vertical = 2
text = "Marumarsu - programming & SFX
Sraapfft - art
Belzebunny - art
Music - music.storyinvention.com
"
label_settings = SubResource("LabelSettings_wbdvm")
[node name="CPUParticles2D" type="CPUParticles2D" parent="."]
position = Vector2(-4, -84)
amount = 32
texture = ExtResource("4_158mb")
lifetime = 10.0
randomness = 1.0
lifetime_randomness = 0.31
emission_shape = 3
emission_rect_extents = Vector2(152.29, 1)
spread = 0.0
gravity = Vector2(7, 15)
angular_velocity_min = -50.0
angular_velocity_max = 50.0
radial_accel_min = -10.0
radial_accel_max = 10.0
scale_amount_min = 0.2
scale_amount_max = 0.3
color = Color(4.415934, 2.1274936, 3.7294016, 1)
color_ramp = SubResource("Gradient_wwsa2")
[connection signal="pressed" from="CanvasLayer/Control/HFlowContainer/Credits" to="CanvasLayer/Control/HFlowContainer" method="set_visible" binds= [false]]
[connection signal="pressed" from="CanvasLayer/Control/HFlowContainer/Credits" to="CanvasLayer/Control/Credits" method="set_visible" binds= [true]]
[connection signal="pressed" from="CanvasLayer/Control/HFlowContainer/Quit" to="CanvasLayer/Control/HFlowContainer/Quit" method="_on_QuitButton_pressed"]
[connection signal="pressed" from="CanvasLayer/Control/Credits/Mainmenu" to="CanvasLayer/Control/HFlowContainer" method="set_visible" binds= [true]]
[connection signal="pressed" from="CanvasLayer/Control/Credits/Mainmenu" to="CanvasLayer/Control/Credits" method="set_visible" binds= [false]]
+8 -8
View File
@@ -8,9 +8,11 @@ public partial class GameController : Node
[Export] private float _ShrineStartHP; [Export] private float _ShrineStartHP;
[Export] private Label _CurrencyLabel; [Export] private Label _CurrencyLabel;
[Export] private Label _ShrineHealthLabel; [Export] private Label _ShrineHealthLabel;
[Export] private Label _scoreLabel;
public int Wave { get; private set; } public int Wave { get; private set; }
public int Currency { get; private set; } public int Currency { get; private set; }
public int Score { get; private set; }
public float ShrineHealth { get; private set; } public float ShrineHealth { get; private set; }
private bool _waveOnGoing = false; private bool _waveOnGoing = false;
@@ -20,10 +22,11 @@ public partial class GameController : Node
GameController.Instance = this; GameController.Instance = this;
Wave = 0; Wave = 0;
Currency = 300; Currency = 300;
ShrineHealth = 100; ShrineHealth = _ShrineStartHP;
_CurrencyLabel.Text = Currency.ToString(); _CurrencyLabel.Text = Currency.ToString();
_ShrineHealthLabel.Text = $"{(100f * (ShrineHealth /_ShrineStartHP)):F1}%"; _ShrineHealthLabel.Text = $"{(100f * (ShrineHealth /_ShrineStartHP)):F1}%";
_scoreLabel.Text = "0";
CallDeferred(nameof(DelayNextWave)); CallDeferred(nameof(DelayNextWave));
} }
@@ -34,12 +37,7 @@ public partial class GameController : Node
Wave++; Wave++;
_waveOnGoing = true; _waveOnGoing = true;
int amountToSpawn = (int)Math.Round(5 * Math.Pow(Wave, 1.05)); int amountToSpawn = (int)Math.Round(5 * Math.Pow(Wave, 1.025));
for (int i = 0; i < 100; i++)
{
// GD.Print((int)Math.Round(5 * Math.Pow(i + 1, 1.05)));
}
EnemySpawner.Instance.EnemiesSpawned = amountToSpawn; EnemySpawner.Instance.EnemiesSpawned = amountToSpawn;
@@ -73,7 +71,7 @@ public partial class GameController : Node
_ShrineHealthLabel.Text = $"{(100f * (ShrineHealth /_ShrineStartHP)):F1}%"; _ShrineHealthLabel.Text = $"{(100f * (ShrineHealth /_ShrineStartHP)):F1}%";
if (ShrineHealth <= 0) if (ShrineHealth <= 0)
{ {
// TODO LOSE SCENARIO SceneManager.Instance.ChangeScene(Scenes.End);
} }
} }
@@ -81,6 +79,8 @@ public partial class GameController : Node
{ {
v = Math.Abs(v); v = Math.Abs(v);
Currency += v; Currency += v;
Score += v;
_scoreLabel.Text = Score.ToString();
_CurrencyLabel.Text = Currency.ToString(); _CurrencyLabel.Text = Currency.ToString();
} }
+36
View File
@@ -0,0 +1,36 @@
using Godot;
using System;
public partial class PauseManager : Node
{
[Export] private CanvasLayer _hud;
[Export] private CanvasLayer _pauseMenu;
public override void _Process(double delta)
{
if (Input.IsActionJustPressed("pause"))
{
bool paused = GetTree().Paused;
if (!paused)
{
PauseGame();
return;
}
ContinueGame();
}
}
public void PauseGame()
{
GetTree().Paused = true;
_hud.Visible = false;
_pauseMenu.Visible = true;
}
public void ContinueGame()
{
GetTree().Paused = false;
_hud.Visible = true;
_pauseMenu.Visible = false;
}
}
+1
View File
@@ -0,0 +1 @@
uid://ch2o7voah6o3o
+84
View File
@@ -0,0 +1,84 @@
using Godot;
using System;
public enum Scenes
{
Menu,
Game,
End
}
public partial class SceneManager : Node
{
public static SceneManager Instance;
[Export] private Node _root;
[Export] private PackedScene _gameScene;
[Export] private PackedScene _menuScene;
[Export] private PackedScene _endScene;
private Node _game;
private Node _menu;
private Node _end;
public override void _Ready()
{
Instance = this;
CallDeferred(nameof(EnterMenu));
}
public void ChangeScene(Scenes s)
{
GetTree().Paused = false;
switch (s)
{
case Scenes.Menu:
EnterMenu();
break;
case Scenes.Game:
EnterGame();
break;
case Scenes.End:
EnterEnd();
break;
default:
throw new ArgumentOutOfRangeException(nameof(s), s, null);
}
}
private void EnterMenu()
{
RemoveScene(ref _game);
RemoveScene(ref _end);
AddScene(ref _menuScene, ref _menu);
}
private void EnterGame()
{
RemoveScene(ref _menu);
RemoveScene(ref _end);
AddScene(ref _gameScene, ref _game);
}
private void EnterEnd() // Not the Minecraft
{
RemoveScene(ref _game);
RemoveScene(ref _menu);
AddScene(ref _endScene, ref _end);
}
private void RemoveScene(ref Node n)
{
if (n == null) return;
n.GetParent()?.RemoveChild(n);
n.QueueFree();
n = null;
}
private void AddScene(ref PackedScene s, ref Node n)
{
n = s.Instantiate();
_root.AddChild(n);
}
}
+1
View File
@@ -0,0 +1 @@
uid://bmdb22du7uvr1
+2 -1
View File
@@ -1,3 +1,4 @@
using System;
using Godot; using Godot;
using System.Collections.Generic; using System.Collections.Generic;
@@ -53,7 +54,7 @@ public partial class EnemyPool : Node
private void Died(Enemy e) private void Died(Enemy e)
{ {
GameController.Instance.AddCurrency(25); GameController.Instance.AddCurrency((int)Math.Floor(e.Health.MaxHP));
ReturnToPool(e); ReturnToPool(e);
} }
+2 -1
View File
@@ -13,6 +13,7 @@ public partial class Projectile : Node2D
public event Action<Projectile> OnDespawn; public event Action<Projectile> OnDespawn;
public Vector2 Direction; public Vector2 Direction;
public float Damage;
public override void _Ready() public override void _Ready()
{ {
@@ -34,7 +35,7 @@ public partial class Projectile : Node2D
if (area is EnemyArea earea) if (area is EnemyArea earea)
{ {
float isSe = _superEffective.Contains(earea.Enemy.Type) ? 2f : 1f; float isSe = _superEffective.Contains(earea.Enemy.Type) ? 2f : 1f;
earea.Enemy.Health.Substract(_baseDamage * isSe); earea.Enemy.Health.Substract(Damage * isSe);
} }
CallDeferred(nameof(Despawn)); CallDeferred(nameof(Despawn));
+22 -5
View File
@@ -7,6 +7,7 @@ public partial class DragMover : Node
[Export] public Area2D CheckArea; // Overlap validation [Export] public Area2D CheckArea; // Overlap validation
[Export] public Area2D ShootArea; // This gets disabled while dragging [Export] public Area2D ShootArea; // This gets disabled while dragging
private bool _tresholdReached = false;
private bool _dragging; private bool _dragging;
private Vector2 _dragOffset; private Vector2 _dragOffset;
private Vector2 _originalPosition; private Vector2 _originalPosition;
@@ -37,29 +38,45 @@ public partial class DragMover : Node
ShootArea.Monitoring = false; ShootArea.Monitoring = false;
_originalPosition = Parent.GlobalPosition; _originalPosition = Parent.GlobalPosition;
Parent.SetModulate(Color.FromHtml("ffffff20"));
_dragOffset = Parent.GlobalPosition - Parent.GetGlobalMousePosition(); _dragOffset = Parent.GlobalPosition - Parent.GetGlobalMousePosition();
} }
else else
{ {
_dragging = false;
ShootArea.Monitoring = true; ShootArea.Monitoring = true;
if (CheckArea.HasOverlappingAreas() || CheckArea.HasOverlappingBodies() || !_tresholdReached)
// Check overlaps when released
if (CheckArea.HasOverlappingAreas() || CheckArea.HasOverlappingBodies())
{ {
Parent.GlobalPosition = _originalPosition; Parent.GlobalPosition = _originalPosition;
Parent.SetModulate(Color.FromHtml("ffffffff"));
} }
else else
{ {
MovementDelay(); MovementDelay();
} }
_tresholdReached = false;
_dragging = false;
} }
} }
public override void _Process(double delta) public override void _Process(double delta)
{ {
if ((Parent.GetGlobalMousePosition() + _dragOffset).DistanceTo(_originalPosition) >= 10f && _dragging)
{
_tresholdReached = true;
}
if ((Parent.GetGlobalMousePosition() + _dragOffset).DistanceTo(_originalPosition) <= 10f && !_tresholdReached) return;
if (!_dragging) return; if (!_dragging) return;
if (CheckArea.HasOverlappingAreas() || CheckArea.HasOverlappingBodies())
{
Parent.SetModulate(Color.FromHtml("ff000020"));
}
else
{
Parent.SetModulate(Color.FromHtml("ffffff20"));
}
Parent.GlobalPosition = Parent.GetGlobalMousePosition() + _dragOffset; Parent.GlobalPosition = Parent.GetGlobalMousePosition() + _dragOffset;
} }
@@ -68,7 +85,7 @@ public partial class DragMover : Node
ShootArea.Monitoring = false; ShootArea.Monitoring = false;
_canMove = false; _canMove = false;
Parent.SetModulate(Color.FromHtml("ffffff20")); Parent.SetModulate(Color.FromHtml("ffffff20"));
await ToSignal(GetTree().CreateTimer(4), SceneTreeTimer.SignalName.Timeout); await ToSignal(GetTree().CreateTimer(1.5), SceneTreeTimer.SignalName.Timeout);
Parent.SetModulate(Color.FromHtml("ffffffff")); Parent.SetModulate(Color.FromHtml("ffffffff"));
ShootArea.Monitoring = true; ShootArea.Monitoring = true;
_canMove = true; _canMove = true;
+13 -1
View File
@@ -14,8 +14,19 @@ public partial class Turret : Node
[Export] private AudioStreamPlayer2D _audio; [Export] private AudioStreamPlayer2D _audio;
private float _fireTimer = 0f; private float _fireTimer = 0f;
public int Level { get; private set; } = 1;
public int UpgradeCost => 31 + (int)(31 * Math.Pow(Level, 1.75f));
public float FireRate => _fireRate + (Level - 1) * 0.05f;
public float Damage => 25 + (int)(10 + Math.Pow(Level, 1.5f));
private HashSet<Enemy> _enemiesInRange = new HashSet<Enemy>(); private HashSet<Enemy> _enemiesInRange = new HashSet<Enemy>();
public void Upgrade()
{
Level++;
}
public override void _EnterTree() public override void _EnterTree()
{ {
_Attackrange.AreaEntered += EnemyEntered; _Attackrange.AreaEntered += EnemyEntered;
@@ -42,7 +53,7 @@ public partial class Turret : Node
{ {
if (_enemiesInRange.Count == 0) return; if (_enemiesInRange.Count == 0) return;
_fireTimer += (float)delta; _fireTimer += (float)delta;
if (!(_fireTimer >= 1f / _fireRate)) return; if (!(_fireTimer >= 1f / FireRate)) return;
_fireTimer = 0; _fireTimer = 0;
_audio?.SetPitchScale(RandomHelper.Float(0.8f, 1.2f)); _audio?.SetPitchScale(RandomHelper.Float(0.8f, 1.2f));
_audio?.Play(); _audio?.Play();
@@ -50,6 +61,7 @@ public partial class Turret : Node
var dir = (t.GlobalPosition - _parent.GlobalPosition).Normalized(); var dir = (t.GlobalPosition - _parent.GlobalPosition).Normalized();
var proj = _projectilePool.Get(); var proj = _projectilePool.Get();
proj.Direction = dir; proj.Direction = dir;
proj.Damage = Damage;
proj.GlobalPosition = _parent.GlobalPosition; proj.GlobalPosition = _parent.GlobalPosition;
proj.Rotation = dir.Angle(); proj.Rotation = dir.Angle();
ProjectileParent.Instance.AddChild(proj); ProjectileParent.Instance.AddChild(proj);
+15 -4
View File
@@ -1,6 +1,6 @@
using System; using System;
using System.Collections.Generic;
using Godot; using Godot;
using Godot.Collections;
public enum TurretType public enum TurretType
{ {
@@ -11,10 +11,17 @@ public enum TurretType
public partial class TurretController : Node2D public partial class TurretController : Node2D
{ {
[Export] private Dictionary<TurretType, PackedScene> _typeToPrefab; public static TurretController Instance;
[Export] private Dictionary<TurretType, PackedScene> _typeToPlaceholder;
[Export] private Godot.Collections.Dictionary<TurretType, PackedScene> _typeToPrefab;
[Export] private Godot.Collections.Dictionary<TurretType, PackedScene> _typeToPlaceholder;
[Export] private Node2D _turretParent; [Export] private Node2D _turretParent;
[Export] public int BasePrice;
public int TurretAmount => _allTurrets.Count;
public int TurretPrice => BasePrice + (int)Math.Round(30f * Math.Pow(TurretAmount, 1.5f));
[Signal] [Signal]
public delegate void PlaceTurretEventHandler(TurretType t); public delegate void PlaceTurretEventHandler(TurretType t);
@@ -23,8 +30,11 @@ public partial class TurretController : Node2D
private TurretPlaceholder _turretPlaceholder; private TurretPlaceholder _turretPlaceholder;
private TurretType _currentlyPlacingType; private TurretType _currentlyPlacingType;
private HashSet<Node2D> _allTurrets = new();
public override void _Ready() public override void _Ready()
{ {
Instance = this;
PlaceTurret += StartPlaceingTurret; PlaceTurret += StartPlaceingTurret;
} }
@@ -40,8 +50,9 @@ public partial class TurretController : Node2D
{ {
case MouseButton.Left: case MouseButton.Left:
if (!_turretPlaceholder.CanPlace) return; if (!_turretPlaceholder.CanPlace) return;
if (!GameController.Instance.TryRemoveCurrency(_turretPlaceholder.Cost)) return; if (!GameController.Instance.TryRemoveCurrency(TurretPrice)) return;
var newT = _typeToPrefab[_currentlyPlacingType].Instantiate() as Node2D; var newT = _typeToPrefab[_currentlyPlacingType].Instantiate() as Node2D;
_allTurrets.Add(newT);
_turretParent.AddChild(newT); _turretParent.AddChild(newT);
newT.GlobalPosition = mpos; newT.GlobalPosition = mpos;
break; break;
+48
View File
@@ -0,0 +1,48 @@
using Godot;
public partial class TurretUpgrader : Node
{
[Export] private Turret _turret;
[Export] private Area2D _clickArea;
[Export] private Control _ui;
[Export] private Label _costLabel;
[Export] private Label _damageLabel;
[Export] private Label _fireRateLabel;
public override void _Ready()
{
_clickArea.InputEvent += OnClickAreaInputEvent;
_clickArea.MouseEntered += MouseEntered;
_clickArea.MouseExited += MouseExited;
}
private void OnClickAreaInputEvent(Node viewport, InputEvent @event, long shapeIdx)
{
if (@event is not InputEventMouseButton m)
{
return;
}
if (m.ButtonIndex != MouseButton.Right) return;
if (!GameController.Instance.TryRemoveCurrency(_turret.UpgradeCost)) return;
_turret.Upgrade();
_costLabel.Text = _turret.UpgradeCost.ToString();
_damageLabel.Text = _turret.Damage.ToString();
_fireRateLabel.Text = _turret.FireRate.ToString();
}
private void MouseEntered()
{
if (_ui == null) return;
_ui.Visible = true;
_costLabel.Text = _turret.UpgradeCost.ToString();
_damageLabel.Text = _turret.Damage.ToString();
_fireRateLabel.Text = _turret.FireRate.ToString();
}
private void MouseExited()
{
if (_ui == null) return;
_ui.Visible = false;
}
}
+1
View File
@@ -0,0 +1 @@
uid://qf0qrqg0l7np
+10
View File
@@ -0,0 +1,10 @@
using Godot;
using System;
public partial class PriceUpdater : Label
{
public override void _Process(double delta)
{
Text = TurretController.Instance.TurretPrice.ToString();
}
}
+1
View File
@@ -0,0 +1 @@
uid://fxb27qlab5nb
+4
View File
@@ -0,0 +1,4 @@
extends TextureButton
func _on_QuitButton_pressed():
get_tree().quit()
+1
View File
@@ -0,0 +1 @@
uid://dsjivlkkwvwqs
+16
View File
@@ -0,0 +1,16 @@
using Godot;
public partial class SceneChangerBtn : TextureButton
{
[Export] private Scenes _changeTo;
public override void _Ready()
{
ButtonUp += Change;
}
private void Change()
{
SceneManager.Instance.ChangeScene(_changeTo);
}
}
+1
View File
@@ -0,0 +1 @@
uid://bsmpt1ig823du
+7 -1
View File
@@ -15,7 +15,7 @@ config/name_localized={
"ja": "仮面の保護者" "ja": "仮面の保護者"
} }
config/version="0.0.1" config/version="0.0.1"
run/main_scene="uid://csyk43kt3xbyx" run/main_scene="uid://ddoe833kg11n5"
config/features=PackedStringArray("4.5", "C#", "Forward Plus") config/features=PackedStringArray("4.5", "C#", "Forward Plus")
boot_splash/show_image=false boot_splash/show_image=false
config/icon="res://icon.svg" config/icon="res://icon.svg"
@@ -66,6 +66,12 @@ attack={
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null)
] ]
} }
pause={
"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":4194305,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null)
, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":6,"pressure":0.0,"pressed":false,"script":null)
]
}
[physics] [physics]