Merge branch 'develop' into 'master'

develop

See merge request MaddoScientisto/cirnogodot!1
This commit is contained in:
Maddo 2025-03-12 13:23:18 +00:00
commit 3c11d5a4ce
534 changed files with 15513 additions and 807 deletions

View file

@ -0,0 +1,29 @@
{
"@path": "res://addons/dialogic/Resources/character.gd",
"@subpath": NodePath(""),
&"_translation_id": "",
&"color": Color(1, 1, 1, 1),
&"custom_info": {
"sound_mood_default": "",
"sound_moods": {},
"style": ""
},
&"default_portrait": "Default",
&"description": "",
&"display_name": "Colonel",
&"mirror": false,
&"nicknames": [""],
&"offset": Vector2(0, 0),
&"portraits": {
"Default": {
"export_overrides": {
"image": "\"res://Sprites/Portraits/Colonel.png\""
},
"mirror": false,
"offset": Vector2(0, 0),
"scale": 1,
"scene": ""
}
},
&"scale": 1.0
}

View file

@ -0,0 +1 @@
uid://ccnu5tt3fy217

View file

@ -0,0 +1,9 @@
Colonel: Good job, Cirno. The mission was a success.
Cirno: Of course it was! I'm really good at what I do!
ICE: Don't bee too smug about it, we had plenty of close calls...
Colonel: The destruction of the ICC refinery and the retrieval of the artifact is already having major repercussion on the enemy, but we should not celebrate yet because there are still more troubling ICC operations that do not look normal at all.
Colonel: Your next mission is to infiltrate a bioresearch facility, our agents are reporting massive allocations of funds to a particular virus research project.
Colonel: According to our agents, a new kind of virus is being developed through new methods with the intention of using to threaten rebel activity.
Colonel: We don't know exactly their reasoning, our analysts do not see how a potentially dangerous and deadly plague can help ICC's plans and yet investors have been funding the project en masse, we need to put a stop to this.
Colonel: You will once again infiltrate through teleport, locate the experimentation area, destroy it and make sure their research cannot be started again. If they are employing an artifact, retrieve it.
Colonel: Dismissed.

View file

@ -0,0 +1 @@
uid://cl77r1cocct1p

BIN
Music/NoReason.ogg (Stored with Git LFS)

Binary file not shown.

View file

@ -7,8 +7,8 @@
[sub_resource type="Resource" id="Resource_lrvah"] [sub_resource type="Resource" id="Resource_lrvah"]
script = ExtResource("1_xksf5") script = ExtResource("1_xksf5")
relativeTargetPosition = Vector2(0, 0) relativeTargetPosition = Vector2(0, -1)
moveDuration = 2.0 moveDuration = 1.0
transitionType = 0 transitionType = 0
easeType = 2 easeType = 2
WaitForCompletion = true WaitForCompletion = true

View file

@ -1,11 +1,13 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=3 format=3 uid="uid://dwxn7f1ue0m4s"] [gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://dwxn7f1ue0m4s"]
[ext_resource type="PackedScene" uid="uid://64ax2lj77sr1" path="res://Scenes/Weapons/Bullets/spider_bomb_bullet.tscn" id="1_8gj5r"] [ext_resource type="PackedScene" uid="uid://64ax2lj77sr1" path="res://Scenes/Weapons/Bullets/spider_bomb_bullet.tscn" id="1_8gj5r"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="1_f2i0g"] [ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="1_f2i0g"]
[ext_resource type="PackedScene" uid="uid://1lowv5ce2poq" path="res://Scenes/Weapons/Bullets/Autoclearing_Explosion_Bullet.tscn" id="2_f3yha"]
[resource] [resource]
script = ExtResource("1_f2i0g") script = ExtResource("1_f2i0g")
BulletScene = ExtResource("1_8gj5r") BulletScene = ExtResource("1_8gj5r")
DestructionParticlesScene = ExtResource("2_f3yha")
BulletSpeed = 40.0 BulletSpeed = 40.0
Direction = Vector2(1, 0) Direction = Vector2(1, 0)
BulletDamage = 0.0 BulletDamage = 0.0

View file

@ -1,7 +1,7 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=6 format=3 uid="uid://bopwqpmxoy1rd"] [gd_resource type="Resource" script_class="BulletResource" load_steps=6 format=3 uid="uid://bopwqpmxoy1rd"]
[ext_resource type="PackedScene" uid="uid://eqppkegmt562" path="res://Scenes/Weapons/Bullets/Yin_Yan_Bullet.tscn" id="1_5pffv"] [ext_resource type="PackedScene" uid="uid://eqppkegmt562" path="res://Scenes/Weapons/Bullets/Yin_Yan_Bullet.tscn" id="1_5pffv"]
[ext_resource type="PackedScene" uid="uid://h11o0et1y54v" path="res://Scenes/Weapons/Bullets/explosion.tscn" id="2_26vvh"] [ext_resource type="PackedScene" uid="uid://1lowv5ce2poq" path="res://Scenes/Weapons/Bullets/Autoclearing_Explosion_Bullet.tscn" id="2_26vvh"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="2_dbvc7"] [ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="2_dbvc7"]
[ext_resource type="Script" uid="uid://ci2vjo54w7i18" path="res://Scripts/Resources/Modifiers/DelayedSpeedIncreaseModifier.cs" id="2_w7k7r"] [ext_resource type="Script" uid="uid://ci2vjo54w7i18" path="res://Scripts/Resources/Modifiers/DelayedSpeedIncreaseModifier.cs" id="2_w7k7r"]

View file

@ -1,8 +1,20 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://brfrxovsuxgts"] [gd_resource type="Resource" script_class="BulletResource" load_steps=6 format=3 uid="uid://brfrxovsuxgts"]
[ext_resource type="PackedScene" uid="uid://eqppkegmt562" path="res://Scenes/Weapons/Bullets/Yin_Yan_Bullet.tscn" id="1_lfcuj"] [ext_resource type="PackedScene" uid="uid://eqppkegmt562" path="res://Scenes/Weapons/Bullets/Yin_Yan_Bullet.tscn" id="1_lfcuj"]
[ext_resource type="PackedScene" uid="uid://dfbmny3s4rili" path="res://Scenes/Particles/IceBulletParticle.tscn" id="2_mdq2b"] [ext_resource type="PackedScene" uid="uid://1lowv5ce2poq" path="res://Scenes/Weapons/Bullets/Autoclearing_Explosion_Bullet.tscn" id="2_mdq2b"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_78iov"] [ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_78iov"]
[ext_resource type="Script" uid="uid://ci2vjo54w7i18" path="res://Scripts/Resources/Modifiers/DelayedSpeedIncreaseModifier.cs" id="3_fvk2e"]
[sub_resource type="Resource" id="Resource_lcgqc"]
script = ExtResource("3_fvk2e")
TransitionType = 2
EaseType = 2
Duration = 0.5
TimeInSeconds = 0.0
ModifierType = 0
Value = 20.0
Continuous = false
metadata/_custom_type_script = "uid://ci2vjo54w7i18"
[resource] [resource]
script = ExtResource("3_78iov") script = ExtResource("3_78iov")
@ -10,10 +22,10 @@ BulletScene = ExtResource("1_lfcuj")
DestructionParticlesScene = ExtResource("2_mdq2b") DestructionParticlesScene = ExtResource("2_mdq2b")
BulletSpeed = 100.0 BulletSpeed = 100.0
Direction = Vector2(1, 0) Direction = Vector2(1, 0)
BulletDamage = 4.0 BulletDamage = 1.0
LifeTime = 10.0 LifeTime = 10.0
DestroyOnCollision = true DestroyOnCollision = true
Owner = 1 Owner = 1
DamageType = 1 DamageType = 1
Controllable = false Controllable = false
TimeModifiers = null TimeModifiers = Array[Object]([SubResource("Resource_lcgqc")])

View file

@ -1,7 +1,41 @@
[gd_resource type="Resource" script_class="CreditsCollection" load_steps=10 format=3 uid="uid://cojsc1rtf41i1"] [gd_resource type="Resource" script_class="CreditsCollection" load_steps=20 format=3 uid="uid://cojsc1rtf41i1"]
[ext_resource type="Script" uid="uid://buq8eurx510ps" path="res://Scripts/Resources/CreditsCollection.cs" id="1_0bwsf"] [ext_resource type="Script" uid="uid://buq8eurx510ps" path="res://Scripts/Resources/CreditsCollection.cs" id="1_0bwsf"]
[ext_resource type="Script" uid="uid://bc4f4ggvk3ktf" path="res://Scripts/Resources/CreditsEntry.cs" id="1_aaqha"] [ext_resource type="Script" uid="uid://bc4f4ggvk3ktf" path="res://Scripts/Resources/CreditsEntry.cs" id="1_aaqha"]
[ext_resource type="LabelSettings" uid="uid://b7aiiua04uma4" path="res://Resources/Styles/Credits_Section_Style.tres" id="2_vda0h"]
[sub_resource type="Resource" id="Resource_ep84i"]
script = ExtResource("1_aaqha")
Name = "Director"
Contribution = ""
CustomLabelSettings = ExtResource("2_vda0h")
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_ianh3"]
script = ExtResource("1_aaqha")
Name = "MaddoScientisto"
Contribution = "Programming, Sprites, Tilesets, Story"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_m7fsk"]
script = ExtResource("1_aaqha")
Name = "Original Game By"
Contribution = ""
CustomLabelSettings = ExtResource("2_vda0h")
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_ans3w"]
script = ExtResource("1_aaqha")
Name = "Team Shanghai Alice"
Contribution = "上海アリス幻樂団"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_1cmaw"]
script = ExtResource("1_aaqha")
Name = "Music"
Contribution = ""
CustomLabelSettings = ExtResource("2_vda0h")
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_vda0h"] [sub_resource type="Resource" id="Resource_vda0h"]
script = ExtResource("1_aaqha") script = ExtResource("1_aaqha")
@ -9,6 +43,26 @@ Name = "Fenekhu"
Contribution = "Music" Contribution = "Music"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf" metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_daaek"]
script = ExtResource("1_aaqha")
Name = "Art"
Contribution = ""
CustomLabelSettings = ExtResource("2_vda0h")
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_8vv0q"]
script = ExtResource("1_aaqha")
Name = "RayKeju"
Contribution = "Intro Art"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_321dv"]
script = ExtResource("1_aaqha")
Name = "Misc"
Contribution = ""
CustomLabelSettings = ExtResource("2_vda0h")
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_j7pkh"] [sub_resource type="Resource" id="Resource_j7pkh"]
script = ExtResource("1_aaqha") script = ExtResource("1_aaqha")
Name = "alphatrooper18" Name = "alphatrooper18"
@ -45,7 +99,13 @@ Name = "guillermochicasonido"
Contribution = "Teleporter Sound" Contribution = "Teleporter Sound"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf" metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[sub_resource type="Resource" id="Resource_ivgyk"]
script = ExtResource("1_aaqha")
Name = "Alexander Nikopoulos"
Contribution = "VFEZ"
metadata/_custom_type_script = "uid://bc4f4ggvk3ktf"
[resource] [resource]
script = ExtResource("1_0bwsf") script = ExtResource("1_0bwsf")
Credits = Array[ExtResource("1_aaqha")]([SubResource("Resource_vda0h"), SubResource("Resource_j7pkh"), SubResource("Resource_aaqha"), SubResource("Resource_gr2tg"), SubResource("Resource_b8hlh"), SubResource("Resource_gbaov"), SubResource("Resource_jkmrk")]) Credits = Array[ExtResource("1_aaqha")]([SubResource("Resource_ep84i"), SubResource("Resource_ianh3"), SubResource("Resource_m7fsk"), SubResource("Resource_ans3w"), SubResource("Resource_1cmaw"), SubResource("Resource_vda0h"), SubResource("Resource_daaek"), SubResource("Resource_8vv0q"), SubResource("Resource_321dv"), SubResource("Resource_j7pkh"), SubResource("Resource_aaqha"), SubResource("Resource_gr2tg"), SubResource("Resource_b8hlh"), SubResource("Resource_gbaov"), SubResource("Resource_jkmrk"), SubResource("Resource_ivgyk"), null])
metadata/_custom_type_script = "uid://buq8eurx510ps" metadata/_custom_type_script = "uid://buq8eurx510ps"

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://pemr2lrv3ylk" path="res://Scenes/HUD/Items/ying_yang_gun_huditem.tscn" id="1_i6xgq"] [ext_resource type="PackedScene" uid="uid://pemr2lrv3ylk" path="res://Scenes/HUD/Items/ying_yang_gun_huditem.tscn" id="1_i6xgq"]
[ext_resource type="Resource" uid="uid://ckppo2seg313h" path="res://Resources/Weapons/Cheat_Gun.tres" id="2_0na1t"] [ext_resource type="Resource" uid="uid://ckppo2seg313h" path="res://Resources/Weapons/Cheat_Gun.tres" id="2_0na1t"]
[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="2_5g5j1"] [ext_resource type="Texture2D" uid="uid://cwy7g861vnbj1" path="res://Sprites/Items/Cheat_Gun.png" id="2_0vddk"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_i0e51"] [ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_i0e51"]
[resource] [resource]
@ -18,5 +18,6 @@ PickupIfMaxed = true
ConsumeOnUse = false ConsumeOnUse = false
UiType = 1 UiType = 1
Selectable = true Selectable = true
InventorySprite = ExtResource("2_5g5j1") InventorySprite = ExtResource("2_0vddk")
HudItemScene = ExtResource("1_i6xgq") HudItemScene = ExtResource("1_i6xgq")
DropScenePath = null

View file

@ -1,17 +1,17 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=7 format=3 uid="uid://dhbltvgsa3g88"] [gd_resource type="Resource" script_class="LootItem" load_steps=7 format=3 uid="uid://dhbltvgsa3g88"]
[ext_resource type="Texture2D" uid="uid://r2h77ktff10m" path="res://Sprites/Bullets/Snowball.png" id="1_gpot4"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="1_lus3u"] [ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="1_lus3u"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="1_qd764"] [ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="1_qd764"]
[ext_resource type="Texture2D" uid="uid://huo14jdekj6n" path="res://Sprites/Bullets/spiderbomb.png" id="1_v5a4k"]
[ext_resource type="Resource" uid="uid://dwxn7f1ue0m4s" path="res://Resources/Bullets/Spider_Bomb_Bullet.tres" id="2_gpot4"] [ext_resource type="Resource" uid="uid://dwxn7f1ue0m4s" path="res://Resources/Bullets/Spider_Bomb_Bullet.tres" id="2_gpot4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gpot4"] [sub_resource type="AtlasTexture" id="AtlasTexture_gpot4"]
atlas = ExtResource("1_v5a4k") atlas = ExtResource("1_gpot4")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
[sub_resource type="Resource" id="Resource_v5a4k"] [sub_resource type="Resource" id="Resource_v5a4k"]
script = ExtResource("1_qd764") script = ExtResource("1_qd764")
Name = "Spider Bomb" Name = "Snowball Bomb launcher"
BulletData = ExtResource("2_gpot4") BulletData = ExtResource("2_gpot4")
RateOfFire = 1.0 RateOfFire = 1.0
BulletCapacity = 10 BulletCapacity = 10
@ -28,8 +28,8 @@ metadata/_custom_type_script = "uid://b6fmrnipv88bk"
[resource] [resource]
script = ExtResource("1_lus3u") script = ExtResource("1_lus3u")
ItemName = "Spider Bomb" ItemName = "Snowball Bomb"
ItemDescription = "A bomb that spiders" ItemDescription = "A snowball with a bomb inside"
ItemKey = "SPIDER_BOMB" ItemKey = "SPIDER_BOMB"
Item = 5 Item = 5
WeaponData = SubResource("Resource_v5a4k") WeaponData = SubResource("Resource_v5a4k")

View file

@ -0,0 +1,19 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=3 format=3 uid="uid://diqm2ju0xakkt"]
[ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="1_jt7l8"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_ajs4l"]
[resource]
script = ExtResource("3_ajs4l")
ItemName = "Yin Yang Ammo"
ItemDescription = "Ammunition for Ying-Yang based weapons"
ItemKey = "YinYangAmmo"
Item = 3
Amount = 5
Max = 50
PickupIfMaxed = false
ConsumeOnUse = true
UiType = 2
Selectable = false
InventorySprite = ExtResource("1_jt7l8")
DropScenePath = &"res://Scenes/Items/Yin_Yang_Ammo.tscn"

View file

@ -0,0 +1,22 @@
[gd_resource type="Resource" script_class="LootItem" load_steps=4 format=3 uid="uid://ccmuffmnevrt4"]
[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="1_2w24o"]
[ext_resource type="Resource" uid="uid://ba0r3qmsrm0td" path="res://Resources/Weapons/Yin_Yang_Gun.tres" id="1_cuxft"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_2w24o"]
[resource]
script = ExtResource("2_2w24o")
ItemName = "Yin-Yang Gun"
ItemDescription = "A weapon reverse engineered from Reimu's Yin-Yang orbs, shoots explosive projectiles"
ItemKey = "YinYangGun"
Item = 9
WeaponData = ExtResource("1_cuxft")
Amount = 1
Max = 1
PickupIfMaxed = true
ConsumeOnUse = false
UiType = 1
Selectable = true
InventorySprite = ExtResource("1_2w24o")
DropScenePath = &"res://Scenes/Items/Yin_Yang_Gun_Pickup.tscn"
metadata/_custom_type_script = "uid://epnwjptvks3t"

View file

@ -3,4 +3,5 @@
[ext_resource type="Shader" uid="uid://cjdl1m3psohju" path="res://Shaders/scanlines_static.tres" id="1_hteyp"] [ext_resource type="Shader" uid="uid://cjdl1m3psohju" path="res://Shaders/scanlines_static.tres" id="1_hteyp"]
[resource] [resource]
resource_local_to_scene = true
shader = ExtResource("1_hteyp") shader = ExtResource("1_hteyp")

View file

@ -1,7 +1,15 @@
[gd_resource type="SpriteFrames" load_steps=14 format=3 uid="uid://ch2ll1on8im2p"] [gd_resource type="SpriteFrames" load_steps=16 format=3 uid="uid://ch2ll1on8im2p"]
[ext_resource type="Texture2D" uid="uid://xhwfgbv0fjbr" path="res://Sprites/Actors/FairyGuard.png" id="1_fb3du"] [ext_resource type="Texture2D" uid="uid://xhwfgbv0fjbr" path="res://Sprites/Actors/FairyGuard.png" id="1_fb3du"]
[sub_resource type="AtlasTexture" id="AtlasTexture_em6qg"]
atlas = ExtResource("1_fb3du")
region = Rect2(0, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_klwxr"]
atlas = ExtResource("1_fb3du")
region = Rect2(16, 64, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_42a57"] [sub_resource type="AtlasTexture" id="AtlasTexture_42a57"]
atlas = ExtResource("1_fb3du") atlas = ExtResource("1_fb3du")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
@ -54,6 +62,41 @@ region = Rect2(32, 16, 16, 16)
animations = [{ animations = [{
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_klwxr")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_em6qg")
}],
"loop": true,
"name": &"dead",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_42a57") "texture": SubResource("AtlasTexture_42a57")
}, { }, {
"duration": 1.0, "duration": 1.0,

View file

@ -1,6 +1,52 @@
[gd_resource type="SpriteFrames" load_steps=15 format=3 uid="uid://bc7mghjx75qip"] [gd_resource type="SpriteFrames" load_steps=28 format=3 uid="uid://bc7mghjx75qip"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="1_nsg0m"] [ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="1_nsg0m"]
[ext_resource type="Texture2D" uid="uid://bvjyivjk530r5" path="res://Sprites/Actors/Cirno_Surprised.png" id="1_smg7h"]
[ext_resource type="Texture2D" uid="uid://calorbo7lwx72" path="res://Sprites/Actors/Cirno_Drowning.png" id="2_dod2v"]
[sub_resource type="AtlasTexture" id="AtlasTexture_qt0xq"]
atlas = ExtResource("1_smg7h")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_j8jir"]
atlas = ExtResource("1_smg7h")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6sqmb"]
atlas = ExtResource("2_dod2v")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_bl8yu"]
atlas = ExtResource("2_dod2v")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_a680j"]
atlas = ExtResource("2_dod2v")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_cab7f"]
atlas = ExtResource("2_dod2v")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_la2t0"]
atlas = ExtResource("2_dod2v")
region = Rect2(64, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_eqxxe"]
atlas = ExtResource("2_dod2v")
region = Rect2(80, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_7j3x3"]
atlas = ExtResource("2_dod2v")
region = Rect2(96, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_j4qq6"]
atlas = ExtResource("2_dod2v")
region = Rect2(112, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_34li8"]
atlas = ExtResource("2_dod2v")
region = Rect2(128, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6tpxx"] [sub_resource type="AtlasTexture" id="AtlasTexture_6tpxx"]
atlas = ExtResource("1_nsg0m") atlas = ExtResource("1_nsg0m")
@ -58,6 +104,62 @@ region = Rect2(32, 16, 16, 16)
animations = [{ animations = [{
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_qt0xq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j8jir")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qt0xq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j8jir")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_qt0xq")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j8jir")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6sqmb")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_bl8yu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_a680j")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_cab7f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_la2t0")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_eqxxe")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7j3x3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7j3x3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_j4qq6")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_34li8")
}, {
"duration": 1.0,
"texture": null
}],
"loop": false,
"name": &"Drowning",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6tpxx") "texture": SubResource("AtlasTexture_6tpxx")
}], }],
"loop": true, "loop": true,

View file

@ -0,0 +1,10 @@
[gd_resource type="LabelSettings" load_steps=2 format=3 uid="uid://b7aiiua04uma4"]
[ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="1_36nji"]
[resource]
font = ExtResource("1_36nji")
font_size = 18
font_color = Color(1, 1, 0.2, 1)
outline_size = 1
outline_color = Color(0.176871, 0.175749, 2.40654e-08, 1)

View file

@ -5,6 +5,6 @@
[resource] [resource]
line_spacing = 1.0 line_spacing = 1.0
font = ExtResource("1_foybo") font = ExtResource("1_foybo")
font_size = 12 font_size = 14
outline_size = 3 outline_size = 3
outline_color = Color(0, 0, 0, 1) outline_color = Color(0, 0, 0, 1)

View file

@ -1,7 +1,20 @@
[gd_resource type="Theme" load_steps=3 format=3 uid="uid://dnsadvmunm76k"] [gd_resource type="Theme" load_steps=7 format=3 uid="uid://dnsadvmunm76k"]
[ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="1_dp7be"] [ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="1_dp7be"]
[ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="2_wf67a"] [ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="2_wf67a"]
[ext_resource type="Texture2D" uid="uid://57jo25mrp028" path="res://Sprites/UI/Checkbox.png" id="3_xfr2l"]
[sub_resource type="AtlasTexture" id="AtlasTexture_jpso0"]
atlas = ExtResource("3_xfr2l")
region = Rect2(8, 0, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_0p6en"]
atlas = ExtResource("3_xfr2l")
region = Rect2(0, 0, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_xfr2l"]
atlas = ExtResource("3_xfr2l")
region = Rect2(16, 0, 8, 8)
[resource] [resource]
default_font = ExtResource("1_dp7be") default_font = ExtResource("1_dp7be")
@ -13,12 +26,12 @@ Button/colors/font_hover_color = Color(0, 0.772549, 0, 1)
Button/colors/font_hover_pressed_color = Color(0, 0.262745, 0, 1) Button/colors/font_hover_pressed_color = Color(0, 0.262745, 0, 1)
Button/colors/font_outline_color = Color(0, 0, 0, 1) Button/colors/font_outline_color = Color(0, 0, 0, 1)
Button/colors/font_pressed_color = Color(0, 0.870588, 0, 1) Button/colors/font_pressed_color = Color(0, 0.870588, 0, 1)
Button/colors/icon_disabled_color = Color(0, 0, 0, 1) Button/colors/icon_disabled_color = Color(0.235294, 0.235294, 0.235294, 1)
Button/colors/icon_focus_color = Color(0, 0, 0, 1) Button/colors/icon_focus_color = Color(1, 1, 1, 1)
Button/colors/icon_hover_color = Color(0, 0, 0, 1) Button/colors/icon_hover_color = Color(1, 1, 1, 1)
Button/colors/icon_hover_pressed_color = Color(0, 0, 0, 1) Button/colors/icon_hover_pressed_color = Color(1, 1, 1, 1)
Button/colors/icon_normal_color = Color(0, 0, 0, 1) Button/colors/icon_normal_color = Color(1, 1, 1, 1)
Button/colors/icon_pressed_color = Color(0, 0, 0, 1) Button/colors/icon_pressed_color = Color(1, 1, 1, 1)
Button/constants/align_to_largest_stylebox = 0 Button/constants/align_to_largest_stylebox = 0
Button/constants/h_separation = 0 Button/constants/h_separation = 0
Button/constants/icon_max_width = 0 Button/constants/icon_max_width = 0
@ -30,3 +43,6 @@ Button/styles/focus = ExtResource("2_wf67a")
Button/styles/hover = ExtResource("2_wf67a") Button/styles/hover = ExtResource("2_wf67a")
Button/styles/normal = ExtResource("2_wf67a") Button/styles/normal = ExtResource("2_wf67a")
Button/styles/pressed = ExtResource("2_wf67a") Button/styles/pressed = ExtResource("2_wf67a")
CheckBox/icons/checked = SubResource("AtlasTexture_jpso0")
CheckBox/icons/unchecked = SubResource("AtlasTexture_0p6en")
CheckBox/icons/unchecked_disabled = SubResource("AtlasTexture_xfr2l")

View file

@ -7,13 +7,13 @@
script = ExtResource("2_8ycgt") script = ExtResource("2_8ycgt")
Name = "Enemy Weapon" Name = "Enemy Weapon"
BulletData = ExtResource("1_eps1c") BulletData = ExtResource("1_eps1c")
RateOfFire = 0.4 RateOfFire = 0.3
BulletCapacity = 4 BulletCapacity = 4
ReloadTime = 1.0 ReloadTime = 1.0
AutoReload = true AutoReload = true
InfiniteAmmo = true InfiniteAmmo = true
BulletsPerShot = 5 BulletsPerShot = 1
SpreadAngle = 180.0 SpreadAngle = 0.0
RandomSpread = 0.0 RandomSpread = 0.0
ItemKey = "EnemyWeapon" ItemKey = "EnemyWeapon"
AmmoKey = "" AmmoKey = ""

View file

@ -1,25 +1,12 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=4 format=3 uid="uid://m7obu15t73df"] [gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://m7obu15t73df"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="1_m8p4s"] [ext_resource type="Resource" uid="uid://dwxn7f1ue0m4s" path="res://Resources/Bullets/Spider_Bomb_Bullet.tres" id="1_m8p4s"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="1_wdsus"] [ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="1_wdsus"]
[sub_resource type="Resource" id="Resource_hoooo"]
script = ExtResource("1_m8p4s")
BulletSpeed = 100.0
Direction = Vector2(1, 0)
BulletDamage = 1.0
LifeTime = 10.0
DestroyOnCollision = true
Owner = 0
DamageType = 0
Controllable = false
TimeModifiers = null
metadata/_custom_type_script = "uid://dslyrfcej3g2n"
[resource] [resource]
script = ExtResource("1_wdsus") script = ExtResource("1_wdsus")
Name = "Spider Bomb" Name = "Spider Bomb"
BulletData = SubResource("Resource_hoooo") BulletData = ExtResource("1_m8p4s")
RateOfFire = 0.4 RateOfFire = 0.4
BulletCapacity = 20 BulletCapacity = 20
ReloadTime = 1.0 ReloadTime = 1.0
@ -28,7 +15,7 @@ InfiniteAmmo = true
BulletsPerShot = 1 BulletsPerShot = 1
SpreadAngle = 0.0 SpreadAngle = 0.0
RandomSpread = 0.0 RandomSpread = 0.0
ItemKey = "" ItemKey = "SPIDER_BOMB"
AmmoKey = "" AmmoKey = ""
_rotationOffset = 0.0 _rotationOffset = 0.0
metadata/_custom_type_script = "uid://b6fmrnipv88bk" metadata/_custom_type_script = "uid://b6fmrnipv88bk"

View file

@ -0,0 +1,20 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://ba0r3qmsrm0td"]
[ext_resource type="Resource" uid="uid://brfrxovsuxgts" path="res://Resources/Bullets/yin_yang_bullet.tres" id="1_otehl"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_dbal7"]
[resource]
script = ExtResource("2_dbal7")
Name = "Yin-Yang Gun"
BulletData = ExtResource("1_otehl")
RateOfFire = 0.8
BulletCapacity = 3
ReloadTime = 0.4
AutoReload = true
InfiniteAmmo = false
BulletsPerShot = 1
SpreadAngle = 0.0
RandomSpread = 0.0
ItemKey = "YinYangGun"
AmmoKey = "YinYangAmmo"
_rotationOffset = 0.0

BIN
SFX/elevator.ogg (Stored with Git LFS) Normal file

Binary file not shown.

19
SFX/elevator.ogg.import Normal file
View file

@ -0,0 +1,19 @@
[remap]
importer="oggvorbisstr"
type="AudioStreamOggVorbis"
uid="uid://b0b3rcpdvfwsk"
path="res://.godot/imported/elevator.ogg-5900b7e7faadeae3d44a5aef62539cee.oggvorbisstr"
[deps]
source_file="res://SFX/elevator.ogg"
dest_files=["res://.godot/imported/elevator.ogg-5900b7e7faadeae3d44a5aef62539cee.oggvorbisstr"]
[params]
loop=false
loop_offset=0
bpm=0
beat_count=0
bar_beats=4

View file

@ -5,8 +5,9 @@ using Cirno.Scripts;
public partial class Activable : Area2D, IActivable public partial class Activable : Area2D, IActivable
{ {
public virtual void Activate(ActivationType activationType = ActivationType.Toggle) public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
//Debug.WriteLine("Activated"); //Debug.WriteLine("Activated");
return true;
} }
} }

View file

@ -0,0 +1,15 @@
[gd_scene load_steps=4 format=3 uid="uid://b4gugris5j5kd"]
[ext_resource type="Script" uid="uid://uq50svtj2muh" path="res://Scripts/Activables/BulletEmitter.cs" id="1_kaaee"]
[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="2_dj8i8"]
[ext_resource type="Texture2D" uid="uid://b6xatixd2u1wn" path="res://Sprites/Actors/WallEmitter.png" id="3_dj8i8"]
[node name="BulletEmitter" type="Node2D"]
script = ExtResource("1_kaaee")
EmissionRotation = 90.0
[node name="BulletSpawner" type="Node2D" parent="."]
script = ExtResource("2_dj8i8")
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_dj8i8")

View file

@ -0,0 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://cm564ue740cpx"]
[ext_resource type="SpriteFrames" uid="uid://ch2ll1on8im2p" path="res://Resources/Sprites/FairyGuard.tres" id="1_p33aj"]
[node name="DeadFairy" type="AnimatedSprite2D"]
sprite_frames = ExtResource("1_p33aj")
animation = &"dead"
autoplay = "dead"

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=29 format=3 uid="uid://bc054js8ep2b"] [gd_scene load_steps=30 format=3 uid="uid://bc054js8ep2b"]
[ext_resource type="Script" uid="uid://c2mo5hc1qb6kf" path="res://Scripts/Components/Actors/Actor.cs" id="1_ugrra"] [ext_resource type="Script" uid="uid://c2mo5hc1qb6kf" path="res://Scripts/Components/Actors/Actor.cs" id="1_ugrra"]
[ext_resource type="SpriteFrames" uid="uid://ch2ll1on8im2p" path="res://Resources/Sprites/FairyGuard.tres" id="2_i2plx"] [ext_resource type="SpriteFrames" uid="uid://ch2ll1on8im2p" path="res://Resources/Sprites/FairyGuard.tres" id="2_i2plx"]
@ -15,6 +15,7 @@
[ext_resource type="Script" uid="uid://m0ag88kn0c40" path="res://Scripts/Components/Actors/DeathAnimationHandler.cs" id="13_e2vvk"] [ext_resource type="Script" uid="uid://m0ag88kn0c40" path="res://Scripts/Components/Actors/DeathAnimationHandler.cs" id="13_e2vvk"]
[ext_resource type="Resource" uid="uid://dk2rbf88a5irh" path="res://Resources/Bullets/Explosion_Harmless.tres" id="14_881we"] [ext_resource type="Resource" uid="uid://dk2rbf88a5irh" path="res://Resources/Bullets/Explosion_Harmless.tres" id="14_881we"]
[ext_resource type="Script" uid="uid://7g3luecewcp5" path="res://Scripts/Components/Actors/ActorDefeatScriptHandler.cs" id="15_17yce"] [ext_resource type="Script" uid="uid://7g3luecewcp5" path="res://Scripts/Components/Actors/ActorDefeatScriptHandler.cs" id="15_17yce"]
[ext_resource type="PackedScene" uid="uid://cm564ue740cpx" path="res://Scenes/Actors/DeadFairyGuard.tscn" id="15_gsthm"]
[ext_resource type="Script" uid="uid://dwbh55rqi0x5e" path="res://Scripts/Components/Actors/EnemyDropModule.cs" id="16_76vwd"] [ext_resource type="Script" uid="uid://dwbh55rqi0x5e" path="res://Scripts/Components/Actors/EnemyDropModule.cs" id="16_76vwd"]
[ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="17_gsthm"] [ext_resource type="Script" uid="uid://cq65aed620ijo" path="res://Scripts/Resources/Loot/LootDrop.cs" id="17_gsthm"]
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="18_hwppe"] [ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="18_hwppe"]
@ -60,11 +61,11 @@ collision_layer = 16
collision_mask = 113 collision_mask = 113
script = ExtResource("1_ugrra") script = ExtResource("1_ugrra")
MovementSpeed = 30.0 MovementSpeed = 30.0
Health = 6.0 Health = 2.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = ExtResource("2_i2plx") sprite_frames = ExtResource("2_i2plx")
animation = &"down" animation = &"dead"
[node name="MovementProvider" type="Node2D" parent="."] [node name="MovementProvider" type="Node2D" parent="."]
script = ExtResource("3_tum7w") script = ExtResource("3_tum7w")
@ -129,13 +130,14 @@ shape = SubResource("CircleShape2D_0tkae")
[node name="DeathAnimation" type="Node2D" parent="."] [node name="DeathAnimation" type="Node2D" parent="."]
script = ExtResource("13_e2vvk") script = ExtResource("13_e2vvk")
ExplosionData = ExtResource("14_881we") ExplosionData = ExtResource("14_881we")
DebrisScene = ExtResource("15_gsthm")
[node name="DefeatScriptHandler" type="Node2D" parent="."] [node name="DefeatScriptHandler" type="Node2D" parent="."]
script = ExtResource("15_17yce") script = ExtResource("15_17yce")
[node name="LootDrops" type="Node2D" parent="."] [node name="LootDrops" type="Node2D" parent="."]
script = ExtResource("16_76vwd") script = ExtResource("16_76vwd")
LootDrops = [SubResource("Resource_lh4qp"), SubResource("Resource_fmqd5"), SubResource("Resource_gry1a"), SubResource("Resource_6b6qx")] LootDrops = Array[ExtResource("17_gsthm")]([SubResource("Resource_lh4qp"), SubResource("Resource_fmqd5"), SubResource("Resource_gry1a"), SubResource("Resource_6b6qx")])
[connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"] [connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"]
[connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"] [connection signal="area_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"]

View file

@ -30,7 +30,7 @@ collision_layer = 16
collision_mask = 113 collision_mask = 113
script = ExtResource("1_p2pib") script = ExtResource("1_p2pib")
MovementSpeed = 30.0 MovementSpeed = 30.0
Health = 3.0 Health = 2.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = ExtResource("2_ycldt") sprite_frames = ExtResource("2_ycldt")

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,30 @@
[gd_scene load_steps=7 format=3 uid="uid://cychwkelxf0h3"]
[ext_resource type="Script" uid="uid://cjy38nsh83ug1" path="res://Scripts/Activables/NPC.cs" id="1_j1l2o"]
[ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="2_17fwl"]
[ext_resource type="Texture2D" uid="uid://bbdrws471xslc" path="res://Sprites/Actors/Rumia-world.png" id="3_su4y0"]
[sub_resource type="Resource" id="Resource_2ugqu"]
script = ExtResource("2_17fwl")
TimelineName = &"rumia_rebel_base_1"
WaitForCompletion = true
metadata/_custom_type_script = "uid://ddv26x2qilprb"
[sub_resource type="AtlasTexture" id="AtlasTexture_cr26l"]
atlas = ExtResource("3_su4y0")
region = Rect2(0, 0, 8, 16)
[sub_resource type="CircleShape2D" id="CircleShape2D_cr26l"]
[node name="Rumia" type="Area2D" groups=["Interactable"]]
collision_layer = 68
collision_mask = 0
script = ExtResource("1_j1l2o")
Events = Array[Object]([SubResource("Resource_2ugqu")])
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = SubResource("AtlasTexture_cr26l")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_cr26l")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=12 format=3 uid="uid://d1rlw6ddpmrn8"] [gd_scene load_steps=20 format=3 uid="uid://d1rlw6ddpmrn8"]
[ext_resource type="Script" uid="uid://bjs2u8gogvs03" path="res://Scripts/Actors/Boss.cs" id="1_na4uq"] [ext_resource type="Script" uid="uid://bjs2u8gogvs03" path="res://Scripts/Actors/Boss.cs" id="1_na4uq"]
[ext_resource type="Texture2D" uid="uid://bcqgke6dthlrj" path="res://Sprites/Actors/Rumia.png" id="2_7k5gp"] [ext_resource type="Texture2D" uid="uid://bcqgke6dthlrj" path="res://Sprites/Actors/Rumia.png" id="2_7k5gp"]
@ -7,6 +7,67 @@
[ext_resource type="PackedScene" uid="uid://cuixq5ex0j40h" path="res://Scenes/enemyBullet.tscn" id="5_g1p0m"] [ext_resource type="PackedScene" uid="uid://cuixq5ex0j40h" path="res://Scenes/enemyBullet.tscn" id="5_g1p0m"]
[ext_resource type="Resource" uid="uid://d2l607uabv3d6" path="res://Resources/BossPhases/Rumia_Boss_Script.tres" id="6_ifwrk"] [ext_resource type="Resource" uid="uid://d2l607uabv3d6" path="res://Resources/BossPhases/Rumia_Boss_Script.tres" id="6_ifwrk"]
[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="7_2obh7"] [ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="7_2obh7"]
[ext_resource type="Script" uid="uid://dtg2vhquyrib3" path="res://Scripts/Components/Actors/BossSpriteAnimator.cs" id="8_vqdji"]
[sub_resource type="AtlasTexture" id="AtlasTexture_vqdji"]
atlas = ExtResource("2_7k5gp")
region = Rect2(0, 64, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_egx0r"]
atlas = ExtResource("2_7k5gp")
region = Rect2(16, 64, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_opbj8"]
atlas = ExtResource("2_7k5gp")
region = Rect2(0, 32, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_7asmc"]
atlas = ExtResource("2_7k5gp")
region = Rect2(16, 32, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ikvnf"]
atlas = ExtResource("2_7k5gp")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ifwrk"]
atlas = ExtResource("2_7k5gp")
region = Rect2(16, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_opbj8"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vqdji")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_egx0r")
}],
"loop": true,
"name": &"Left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_opbj8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_7asmc")
}],
"loop": true,
"name": &"Right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_ikvnf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ifwrk")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="CircleShape2D" id="CircleShape2D_8gtts"] [sub_resource type="CircleShape2D" id="CircleShape2D_8gtts"]
radius = 7.0 radius = 7.0
@ -30,8 +91,12 @@ CameraOffset = Vector2(0, 32)
Health = 200.0 Health = 200.0
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
texture = ExtResource("2_7k5gp") sprite_frames = SubResource("SpriteFrames_opbj8")
animation = &"Left"
autoplay = "default"
frame = 1
frame_progress = 0.41097
[node name="Damage_HitBox" type="CollisionShape2D" parent="."] [node name="Damage_HitBox" type="CollisionShape2D" parent="."]
visible = false visible = false
@ -80,6 +145,13 @@ shape = SubResource("RectangleShape2D_m1rsg")
script = ExtResource("7_2obh7") script = ExtResource("7_2obh7")
BulletScene = ExtResource("5_g1p0m") BulletScene = ExtResource("5_g1p0m")
[node name="BossSpriteAnimator" type="Node2D" parent="." node_paths=PackedStringArray("AnimatedSprite2D", "Enemy")]
script = ExtResource("8_vqdji")
AnimatedSprite2D = NodePath("../AnimatedSprite2D")
Enemy = NodePath("..")
LeftAnimationName = &"Left"
RightAnimationName = &"Right"
[connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"] [connection signal="area_entered" from="PlayerDetection" to="PlayerDetection" method="_on_area_entered"]
[connection signal="area_exited" from="PlayerDetection" to="." method="_on_area_exited"] [connection signal="area_exited" from="PlayerDetection" to="." method="_on_area_exited"]
[connection signal="velocity_computed" from="NavigationAgent2D" to="." method="_on_navigation_agent_2d_velocity_computed"] [connection signal="velocity_computed" from="NavigationAgent2D" to="." method="_on_navigation_agent_2d_velocity_computed"]

View file

@ -0,0 +1,26 @@
[gd_scene load_steps=6 format=3 uid="uid://darhrx8hscsbe"]
[ext_resource type="Script" uid="uid://cjy38nsh83ug1" path="res://Scripts/Activables/NPC.cs" id="1_plp6f"]
[ext_resource type="Script" uid="uid://ddv26x2qilprb" path="res://Scripts/Resources/Events/DialogueStartEvent.cs" id="2_fubt0"]
[ext_resource type="Texture2D" uid="uid://hibdc7gpqchj" path="res://Sprites/Actors/TutorialPoint.png" id="3_2cto7"]
[sub_resource type="Resource" id="Resource_2ugqu"]
script = ExtResource("2_fubt0")
TimelineName = &""
WaitForCompletion = true
metadata/_custom_type_script = "uid://ddv26x2qilprb"
[sub_resource type="CircleShape2D" id="CircleShape2D_cr26l"]
[node name="Tutorial" type="Area2D" groups=["Interactable"]]
collision_layer = 68
collision_mask = 0
script = ExtResource("1_plp6f")
Events = Array[Object]([SubResource("Resource_2ugqu")])
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_2cto7")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_cr26l")

View file

@ -1,15 +1,8 @@
[gd_scene load_steps=11 format=3 uid="uid://dnbtou2fklyvp"] [gd_scene load_steps=7 format=3 uid="uid://dnbtou2fklyvp"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_kao8y"]
[ext_resource type="Script" uid="uid://donxnd50p7dm8" path="res://Scripts/Resources/Events/AlarmDisableEvent.cs" id="2_8fwyu"]
[ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="3_eg1gw"]
[ext_resource type="Texture2D" uid="uid://bodoftbnvjh6i" path="res://Sprites/Actors/AlertSign.png" id="4_7ysp5"] [ext_resource type="Texture2D" uid="uid://bodoftbnvjh6i" path="res://Sprites/Actors/AlertSign.png" id="4_7ysp5"]
[ext_resource type="Script" uid="uid://daqdq17qiessy" path="res://Scripts/Components/AlarmSpriteSwitcher.cs" id="5_qohod"] [ext_resource type="Script" uid="uid://daqdq17qiessy" path="res://Scripts/Components/AlarmSpriteSwitcher.cs" id="5_qohod"]
[sub_resource type="Resource" id="Resource_hppa0"]
script = ExtResource("2_8fwyu")
WaitForCompletion = true
[sub_resource type="AtlasTexture" id="AtlasTexture_adk1y"] [sub_resource type="AtlasTexture" id="AtlasTexture_adk1y"]
atlas = ExtResource("4_7ysp5") atlas = ExtResource("4_7ysp5")
region = Rect2(16, 0, 16, 8) region = Rect2(16, 0, 16, 8)
@ -44,12 +37,7 @@ animations = [{
"speed": 5.0 "speed": 5.0
}] }]
[node name="AlarmBox" type="Node2D"] [node name="AlarmSign" type="Node2D"]
script = ExtResource("1_kao8y")
Events = Array[Object]([SubResource("Resource_hppa0")])
[node name="ControlPad" parent="." node_paths=PackedStringArray("Target") instance=ExtResource("3_eg1gw")]
Target = NodePath("..")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_25o7d") sprite_frames = SubResource("SpriteFrames_25o7d")

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=42 format=3 uid="uid://c4pr2707hbeph"] [gd_scene load_steps=58 format=3 uid="uid://c4pr2707hbeph"]
[ext_resource type="Script" uid="uid://d2ubk5gucny6s" path="res://Scripts/Components/FSM/PlayerFSMProxy.cs" id="1_g3wua"] [ext_resource type="Script" uid="uid://d2ubk5gucny6s" path="res://Scripts/Components/FSM/PlayerFSMProxy.cs" id="1_g3wua"]
[ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"] [ext_resource type="Script" uid="uid://bw2hakslndaxm" path="res://Scripts/Components/FSM/PlayerStateMachine.cs" id="1_mpmil"]
@ -18,6 +18,7 @@
[ext_resource type="PackedScene" uid="uid://biugfbp0yae2s" path="res://Scenes/Particles/DeathParticles.tscn" id="9_0pyos"] [ext_resource type="PackedScene" uid="uid://biugfbp0yae2s" path="res://Scenes/Particles/DeathParticles.tscn" id="9_0pyos"]
[ext_resource type="Script" uid="uid://d208gvthkstvc" path="res://Scripts/Components/Actors/PlayerCrosshairProvider.cs" id="9_s0ir4"] [ext_resource type="Script" uid="uid://d208gvthkstvc" path="res://Scripts/Components/Actors/PlayerCrosshairProvider.cs" id="9_s0ir4"]
[ext_resource type="Texture2D" uid="uid://cfrvb1moh857m" path="res://Sprites/Crosshair.png" id="10_8dcio"] [ext_resource type="Texture2D" uid="uid://cfrvb1moh857m" path="res://Sprites/Crosshair.png" id="10_8dcio"]
[ext_resource type="Script" uid="uid://bgve2lktony00" path="res://Scripts/Components/FSM/Player/Drowning.cs" id="10_es1gk"]
[ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"] [ext_resource type="Script" uid="uid://3jxrxcqp3ndr" path="res://Scripts/Components/Actors/PlayerHitboxSpriteProvider.cs" id="10_gp3hw"]
[ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"] [ext_resource type="Texture2D" uid="uid://bwjrdlnysft15" path="res://Sprites/Actors/Focus_Circle.png" id="12_8dcio"]
[ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"] [ext_resource type="Texture2D" uid="uid://bf37ce6jskdel" path="res://Sprites/SmallHitbox.png" id="13_pmkfo"]
@ -28,6 +29,8 @@
[ext_resource type="PackedScene" uid="uid://chkpk7erlqajg" path="res://Scenes/Selector.tscn" id="23_5tmtw"] [ext_resource type="PackedScene" uid="uid://chkpk7erlqajg" path="res://Scenes/Selector.tscn" id="23_5tmtw"]
[ext_resource type="AudioStream" uid="uid://myr6n2c1u503" path="res://SFX/581602__samsterbirdies__beep-error.mp3" id="24_5tmtw"] [ext_resource type="AudioStream" uid="uid://myr6n2c1u503" path="res://SFX/581602__samsterbirdies__beep-error.mp3" id="24_5tmtw"]
[ext_resource type="Script" uid="uid://cem7a1agaqtrt" path="res://Scenes/InteractionController.cs" id="27_vwjki"] [ext_resource type="Script" uid="uid://cem7a1agaqtrt" path="res://Scenes/InteractionController.cs" id="27_vwjki"]
[ext_resource type="Script" uid="uid://d0bebi2vn171l" path="res://Scripts/Components/FSM/Player/PlayerFSMItemUseModule.cs" id="29_m323t"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="30_li0ug"]
[sub_resource type="CircleShape2D" id="CircleShape2D_b3hxm"] [sub_resource type="CircleShape2D" id="CircleShape2D_b3hxm"]
radius = 5.0 radius = 5.0
@ -110,6 +113,117 @@ radius = 17.2627
[sub_resource type="CircleShape2D" id="CircleShape2D_g3wua"] [sub_resource type="CircleShape2D" id="CircleShape2D_g3wua"]
radius = 9.0 radius = 9.0
[sub_resource type="AnimationNodeTransition" id="AnimationNodeTransition_es1gk"]
input_0/name = "up"
input_0/auto_advance = false
input_0/break_loop_at_end = false
input_0/reset = true
input_1/name = "down"
input_1/auto_advance = false
input_1/break_loop_at_end = false
input_1/reset = true
input_2/name = "left"
input_2/auto_advance = false
input_2/break_loop_at_end = false
input_2/reset = true
input_3/name = "right"
input_3/auto_advance = false
input_3/break_loop_at_end = false
input_3/reset = true
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_4f2wn"]
animation = &"Walk_Down"
[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_fnw0c"]
blend_point_0/node = SubResource("AnimationNodeAnimation_4f2wn")
blend_point_0/pos = 0.0
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_12erk"]
animation = &"Walk_Up"
[sub_resource type="AnimationNodeBlendSpace1D" id="AnimationNodeBlendSpace1D_c4ide"]
blend_point_0/node = SubResource("AnimationNodeAnimation_12erk")
blend_point_0/pos = 0.0
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_fjg1v"]
graph_offset = Vector2(-110.364, 39.7151)
nodes/Transition/node = SubResource("AnimationNodeTransition_es1gk")
nodes/Transition/position = Vector2(706.667, 53.3333)
nodes/Walk_Down/node = SubResource("AnimationNodeBlendSpace1D_fnw0c")
nodes/Walk_Down/position = Vector2(426.667, 253.333)
nodes/Walk_Up/node = SubResource("AnimationNodeBlendSpace1D_c4ide")
nodes/Walk_Up/position = Vector2(426.667, 53.3333)
nodes/output/position = Vector2(280, 133.333)
node_connections = [&"Transition", 0, &"Walk_Up", &"Transition", 1, &"Walk_Down"]
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_hed00"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_q2flx"]
advance_mode = 2
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_k7ckg"]
states/BlendTree/node = SubResource("AnimationNodeBlendTree_fjg1v")
states/BlendTree/position = Vector2(401.333, 98.4444)
states/Start/position = Vector2(192, 98.963)
transitions = ["Start", "BlendTree", SubResource("AnimationNodeStateMachineTransition_hed00"), "BlendTree", "End", SubResource("AnimationNodeStateMachineTransition_q2flx")]
[sub_resource type="Animation" id="Animation_awrib"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0]
}
[sub_resource type="Animation" id="Animation_qlmfy"]
resource_name = "Walk_Down"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [0, 1, 2]
}
[sub_resource type="Animation" id="Animation_v2m0j"]
resource_name = "Walk_Up"
length = 0.3
loop_mode = 1
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("../Sprite2D:frame")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 0.1, 0.2),
"transitions": PackedFloat32Array(1, 1, 1),
"update": 1,
"values": [3, 5, 4]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_nfrn8"]
_data = {
&"RESET": SubResource("Animation_awrib"),
&"Walk_Down": SubResource("Animation_qlmfy"),
&"Walk_Up": SubResource("Animation_v2m0j")
}
[node name="FSMPlayer" type="CharacterBody2D" node_paths=PackedStringArray("PlayerFSM", "InteractionController")] [node name="FSMPlayer" type="CharacterBody2D" node_paths=PackedStringArray("PlayerFSM", "InteractionController")]
process_mode = 1 process_mode = 1
collision_layer = 2 collision_layer = 2
@ -137,7 +251,7 @@ _inputProvider = NodePath("../../InputProvider")
_damageReceiver = NodePath("../../DamageReceiver") _damageReceiver = NodePath("../../DamageReceiver")
_activationProvider = NodePath("../../InteractionProvider") _activationProvider = NodePath("../../InteractionProvider")
_interactionController = NodePath("../../InteractionController") _interactionController = NodePath("../../InteractionController")
_moduleNodes = [NodePath("../../InteractionController")] _moduleNodes = [NodePath("../../InteractionController"), NodePath("../../ItemUser")]
[node name="Cutscene" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")] [node name="Cutscene" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("4_22ff8") script = ExtResource("4_22ff8")
@ -161,13 +275,20 @@ _animationProvider = NodePath("../../AnimationProvider")
_inputProvider = NodePath("../../InputProvider") _inputProvider = NodePath("../../InputProvider")
_healthProvider = NodePath("../../DamageReceiver/HealthProvider") _healthProvider = NodePath("../../DamageReceiver/HealthProvider")
[node name="Drowning" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("10_es1gk")
_animationProvider = NodePath("../../AnimationProvider")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_b3hxm") shape = SubResource("CircleShape2D_b3hxm")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = ExtResource("4_5qlss") material = ExtResource("4_5qlss")
sprite_frames = ExtResource("4_s0ir4") sprite_frames = ExtResource("4_s0ir4")
animation = &"idle" animation = &"Drowning"
autoplay = "idle"
frame = 15
frame_progress = 0.860925
[node name="WeaponProvider" type="Node2D" parent="."] [node name="WeaponProvider" type="Node2D" parent="."]
script = ExtResource("5_gp3hw") script = ExtResource("5_gp3hw")
@ -264,6 +385,30 @@ Shield = NodePath("../DamageReceiver/ShieldProvider")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="InteractionController"] [node name="CollisionShape2D2" type="CollisionShape2D" parent="InteractionController"]
shape = SubResource("CircleShape2D_g3wua") shape = SubResource("CircleShape2D_g3wua")
[node name="ItemUser" type="Node2D" parent="."]
script = ExtResource("29_m323t")
[node name="Sprite2D" type="Sprite2D" parent="."]
visible = false
texture = ExtResource("30_li0ug")
hframes = 3
vframes = 4
[node name="AnimationTree" type="AnimationTree" parent="."]
root_node = NodePath(".")
tree_root = SubResource("AnimationNodeStateMachine_k7ckg")
anim_player = NodePath("AnimationPlayer")
parameters/BlendTree/Transition/current_state = ""
parameters/BlendTree/Transition/transition_request = ""
parameters/BlendTree/Transition/current_index = -1
parameters/BlendTree/Walk_Down/blend_position = 0
parameters/BlendTree/Walk_Up/blend_position = 0
[node name="AnimationPlayer" type="AnimationPlayer" parent="AnimationTree"]
libraries = {
&"": SubResource("AnimationLibrary_nfrn8")
}
[connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"] [connection signal="area_entered" from="DamageReceiver" to="DamageReceiver" method="_on_damage_hitbox_area_entered"]
[connection signal="area_entered" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_entered"] [connection signal="area_entered" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_entered"]
[connection signal="area_exited" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_exited"] [connection signal="area_exited" from="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_exited"]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,212 @@
[gd_scene load_steps=29 format=3 uid="uid://bs6o3htusgyjl"]
[ext_resource type="Script" uid="uid://dwry0643yvdiv" path="res://Scripts/Door.cs" id="1_no64f"]
[ext_resource type="Texture2D" uid="uid://d3ey7ton7xacy" path="res://Sprites/Actors/Doors/horizontal_hidden_door_1.png" id="2_i5ajf"]
[ext_resource type="Script" uid="uid://bbuhaam28lwld" path="res://Scripts/Components/Actors/DoorSpriteComponent.cs" id="3_i5ajf"]
[ext_resource type="Script" uid="uid://crpkvxepkcrir" path="res://Scripts/Components/Actors/ForceFieldCollisionDisabler.cs" id="4_pa8ry"]
[ext_resource type="AudioStream" uid="uid://dmsnvo8kdjyt8" path="res://SFX/517603__gurkboll__sony_dat_tcd-d10_pro_door_close.wav" id="6_2cts8"]
[ext_resource type="AudioStream" uid="uid://p5n7ijw2qvxy" path="res://SFX/517603__gurkboll__sony_dat_tcd-d10_pro_door_open.wav" id="7_0ahfd"]
[sub_resource type="AtlasTexture" id="AtlasTexture_pa8ry"]
atlas = ExtResource("2_i5ajf")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_no64f"]
atlas = ExtResource("2_i5ajf")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_6unpg"]
atlas = ExtResource("2_i5ajf")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_i5ajf"]
atlas = ExtResource("2_i5ajf")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_0g3ll"]
atlas = ExtResource("2_i5ajf")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_2cts8"]
atlas = ExtResource("2_i5ajf")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_0ahfd"]
atlas = ExtResource("2_i5ajf")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dprtd"]
atlas = ExtResource("2_i5ajf")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_kbylg"]
atlas = ExtResource("2_i5ajf")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_mkhvc"]
atlas = ExtResource("2_i5ajf")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_gdy2s"]
atlas = ExtResource("2_i5ajf")
region = Rect2(224, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_dgrgd"]
atlas = ExtResource("2_i5ajf")
region = Rect2(0, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_icmrg"]
atlas = ExtResource("2_i5ajf")
region = Rect2(32, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_fhqcm"]
atlas = ExtResource("2_i5ajf")
region = Rect2(64, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_8pgtu"]
atlas = ExtResource("2_i5ajf")
region = Rect2(96, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_vwnl3"]
atlas = ExtResource("2_i5ajf")
region = Rect2(128, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_q35nl"]
atlas = ExtResource("2_i5ajf")
region = Rect2(160, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_uiuwa"]
atlas = ExtResource("2_i5ajf")
region = Rect2(192, 0, 32, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_ls2kc"]
atlas = ExtResource("2_i5ajf")
region = Rect2(224, 0, 32, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_0g3ll"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pa8ry")
}],
"loop": true,
"name": &"Closed",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_no64f")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_6unpg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_i5ajf")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0g3ll")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_2cts8")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_0ahfd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_dprtd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_kbylg")
}],
"loop": false,
"name": &"Closing",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_mkhvc")
}],
"loop": true,
"name": &"Destroyed",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gdy2s")
}],
"loop": true,
"name": &"Open",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_dgrgd")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_icmrg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_fhqcm")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_8pgtu")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_vwnl3")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_q35nl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_uiuwa")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ls2kc")
}],
"loop": false,
"name": &"Opening",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0wg11"]
size = Vector2(36, 32)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_f2rl6"]
size = Vector2(36, 32)
[node name="HiddenHorizontalDoor" type="Area2D" groups=["Solid"]]
collision_layer = 64
collision_mask = 154
script = ExtResource("1_no64f")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_0g3ll")
animation = &"Opening"
script = ExtResource("3_i5ajf")
[node name="CollisionShape2D" type="CollisionShape2D" parent="." node_paths=PackedStringArray("_door")]
visible = false
shape = SubResource("RectangleShape2D_0wg11")
script = ExtResource("4_pa8ry")
_door = NodePath("..")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D" node_paths=PackedStringArray("_door")]
visible = false
shape = SubResource("RectangleShape2D_f2rl6")
script = ExtResource("4_pa8ry")
_door = NodePath("../..")
[node name="ActivationSound" type="AudioStreamPlayer2D" parent="."]
position = Vector2(0, 1)
stream = ExtResource("6_2cts8")
max_distance = 200.0
[node name="DeactivationSound" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource("7_0ahfd")
max_distance = 200.0

View file

@ -1,14 +1,76 @@
[gd_scene load_steps=3 format=3 uid="uid://cxjumgf8bhr3l"] [gd_scene load_steps=14 format=3 uid="uid://cxjumgf8bhr3l"]
[ext_resource type="Texture2D" uid="uid://cyq6f1n0nrgrs" path="res://Sprites/Elevator.png" id="1_0xq5m"] [ext_resource type="Texture2D" uid="uid://cyq6f1n0nrgrs" path="res://Sprites/Elevator.png" id="1_0xq5m"]
[ext_resource type="Script" uid="uid://bd0m1l6pqjwf7" path="res://Scripts/Components/FSM/Elevator/ElevatorProxyProxy.cs" id="1_flxos"]
[ext_resource type="Script" uid="uid://b6jp6fhmwmobv" path="res://Scripts/Components/FSM/Elevator/ElevatorProxy.cs" id="1_xv5vg"]
[ext_resource type="Script" uid="uid://bpey64n21hyhu" path="res://Scripts/Activables/Elevator.cs" id="2_dmimb"]
[ext_resource type="Script" uid="uid://cuxk8rrhvpe2c" path="res://Scripts/Components/FSM/Elevator/Init.cs" id="3_xv5vg"]
[ext_resource type="Script" uid="uid://ju87yydywmxi" path="res://Scripts/Components/FSM/Elevator/Bottom.cs" id="5_57077"]
[ext_resource type="Script" uid="uid://cxxu5ed50wiev" path="res://Scripts/Components/FSM/Elevator/Top.cs" id="6_rd3yl"]
[ext_resource type="Script" uid="uid://bgmehqn7g7fvj" path="res://Scripts/Components/FSM/Elevator/Ascending.cs" id="7_r4wj7"]
[ext_resource type="Script" uid="uid://72sfdklqrc6d" path="res://Scripts/Components/FSM/Elevator/Descending.cs" id="8_flmvm"]
[ext_resource type="AudioStream" uid="uid://b0b3rcpdvfwsk" path="res://SFX/elevator.ogg" id="9_flmvm"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_3lpp4"] [sub_resource type="Curve2D" id="Curve2D_flxos"]
_data = {
"points": PackedVector2Array(0, 0, 0, 0, 0, -31, 0, 0, 0, 0, 0, 0)
}
point_count = 2
[sub_resource type="RectangleShape2D" id="RectangleShape2D_flxos"]
size = Vector2(32, 32) size = Vector2(32, 32)
[node name="Elevator" type="Area2D"] [sub_resource type="RectangleShape2D" id="RectangleShape2D_3lpp4"]
size = Vector2(20, 19)
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Elevator" type="Path2D"]
curve = SubResource("Curve2D_flxos")
script = ExtResource("1_flxos")
[node name="StaticBody2D" type="StaticBody2D" parent="."]
collision_mask = 0
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource("RectangleShape2D_flxos")
[node name="Elevator" type="Area2D" parent="." node_paths=PackedStringArray("ElevatorPath", "TopBody")]
collision_layer = 0
collision_mask = 2
script = ExtResource("1_xv5vg")
ElevatorPath = NodePath("..")
TopBody = NodePath("../StaticBody2D/CollisionShape2D")
[node name="Sprite2D" type="Sprite2D" parent="Elevator"]
texture = ExtResource("1_0xq5m") texture = ExtResource("1_0xq5m")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="Elevator"]
position = Vector2(0, -0.5)
shape = SubResource("RectangleShape2D_3lpp4") shape = SubResource("RectangleShape2D_3lpp4")
[node name="StateMachine" type="Node2D" parent="Elevator"]
script = ExtResource("2_dmimb")
[node name="Init" type="Node2D" parent="Elevator/StateMachine"]
script = ExtResource("3_xv5vg")
[node name="Bottom" type="Node2D" parent="Elevator/StateMachine"]
script = ExtResource("5_57077")
[node name="Top" type="Node2D" parent="Elevator/StateMachine"]
script = ExtResource("6_rd3yl")
[node name="Ascending" type="Node2D" parent="Elevator/StateMachine" node_paths=PackedStringArray("Sound")]
script = ExtResource("7_r4wj7")
Sound = NodePath("../../AudioStreamPlayer2D")
[node name="Descending" type="Node2D" parent="Elevator/StateMachine" node_paths=PackedStringArray("Sound")]
script = ExtResource("8_flmvm")
Sound = NodePath("../../AudioStreamPlayer2D")
[node name="Disabled" type="Node2D" parent="Elevator/StateMachine"]
[node name="AudioStreamPlayer2D" type="AudioStreamPlayer2D" parent="Elevator"]
stream = ExtResource("9_flmvm")
[connection signal="area_entered" from="Elevator" to="Elevator" method="_on_area_entered"]
[connection signal="area_exited" from="Elevator" to="Elevator" method="_on_area_exited"]

View file

@ -0,0 +1,87 @@
[gd_scene load_steps=10 format=3 uid="uid://cmdf7cbqbxedj"]
[ext_resource type="Script" uid="uid://bbssj2rkbqysu" path="res://Scripts/UI/CreditsMenu.cs" id="1_7p0um"]
[ext_resource type="Resource" uid="uid://cojsc1rtf41i1" path="res://Resources/Credits.tres" id="2_6xeqb"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="2_ahn81"]
[ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="3_6xeqb"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="3_xr5nf"]
[ext_resource type="Texture2D" uid="uid://b4fhb0wyc5vw" path="res://Sprites/UI/BackIcon.png" id="5_dgb8a"]
[ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="6_v8423"]
[ext_resource type="LabelSettings" uid="uid://b7aiiua04uma4" path="res://Resources/Styles/Credits_Section_Style.tres" id="7_5tqy8"]
[sub_resource type="LabelSettings" id="LabelSettings_xr5nf"]
font = ExtResource("3_6xeqb")
font_size = 20
outline_size = 4
outline_color = Color(0, 0, 0, 1)
[node name="CreditsMenu" type="VBoxContainer" node_paths=PackedStringArray("CreditsContainer")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_7p0um")
Credits = ExtResource("2_6xeqb")
CreditsContainer = NodePath("ScrollContainer/VBoxContainer")
LabelSettings = ExtResource("3_xr5nf")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="BackButton" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
theme = ExtResource("2_ahn81")
text = "Back"
icon = ExtResource("5_dgb8a")
[node name="Name" type="Label" parent="HBoxContainer"]
layout_mode = 2
text = "CREDITS"
label_settings = SubResource("LabelSettings_xr5nf")
horizontal_alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="."]
layout_mode = 2
size_flags_vertical = 3
theme = ExtResource("2_ahn81")
theme_override_styles/panel = ExtResource("6_v8423")
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "asdf"
label_settings = ExtResource("3_xr5nf")
[node name="Label2" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "fdas"
label_settings = ExtResource("3_xr5nf")
[node name="Label3" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "gfdsgfdsg"
[node name="Label4" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer"]
layout_mode = 2
text = "Title"
label_settings = ExtResource("7_5tqy8")
[node name="HBoxContainer2" type="HBoxContainer" parent="ScrollContainer/VBoxContainer"]
layout_mode = 2
size_flags_horizontal = 4
[node name="Label" type="Label" parent="ScrollContainer/VBoxContainer/HBoxContainer2"]
layout_mode = 2
text = "TEST"
label_settings = ExtResource("7_5tqy8")
[connection signal="pressed" from="HBoxContainer/BackButton" to="." method="_on_back_button_pressed"]

View file

@ -1,10 +1,12 @@
[gd_scene load_steps=21 format=3 uid="uid://dkwi1hu1bixoe"] [gd_scene load_steps=23 format=3 uid="uid://dkwi1hu1bixoe"]
[ext_resource type="Script" uid="uid://baf6pxbvhqmjk" path="res://Scripts/Hud.cs" id="1_m0hb0"] [ext_resource type="Script" uid="uid://baf6pxbvhqmjk" path="res://Scripts/Hud.cs" id="1_m0hb0"]
[ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="2_0xmx2"] [ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="2_0xmx2"]
[ext_resource type="PackedScene" uid="uid://cd3ee1adstcrw" path="res://Scenes/HUD/HudItemContainer.tscn" id="2_mattb"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="2_x7kl7"] [ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="2_x7kl7"]
[ext_resource type="Texture2D" uid="uid://dde36pgb8fbwc" path="res://Sprites/selector_big.png" id="3_hee3i"] [ext_resource type="Texture2D" uid="uid://dde36pgb8fbwc" path="res://Sprites/selector_big.png" id="3_hee3i"]
[ext_resource type="PackedScene" uid="uid://bybd38ivpb2ly" path="res://Scenes/HUD/pause_menu.tscn" id="3_hxmxt"] [ext_resource type="PackedScene" uid="uid://bybd38ivpb2ly" path="res://Scenes/HUD/pause_menu.tscn" id="3_hxmxt"]
[ext_resource type="PackedScene" uid="uid://cq342rj7ibnqy" path="res://Scenes/HUD/ItemNotification.tscn" id="3_mw35l"]
[ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="4_gd1k6"] [ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="4_gd1k6"]
[ext_resource type="PackedScene" uid="uid://bwlstkdibs7oc" path="res://Scenes/HUD/BossHud.tscn" id="5_vmict"] [ext_resource type="PackedScene" uid="uid://bwlstkdibs7oc" path="res://Scenes/HUD/BossHud.tscn" id="5_vmict"]
[ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="6_sk1eq"] [ext_resource type="FontFile" uid="uid://coek1e2q257pq" path="res://fonts/at01.ttf" id="6_sk1eq"]
@ -68,6 +70,8 @@ anti_aliasing = false
[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_healthBar", "_shieldLabel", "_shieldBar", "_itemsContainer", "_gameOverPanel", "PauseMenuContainer", "DebugMenuHolder")] [node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_healthBar", "_shieldLabel", "_shieldBar", "_itemsContainer", "_gameOverPanel", "PauseMenuContainer", "DebugMenuHolder")]
process_mode = 3 process_mode = 3
script = ExtResource("1_m0hb0") script = ExtResource("1_m0hb0")
WeaponContainerTemplate = ExtResource("2_mattb")
ItemNotificationTemplate = ExtResource("3_mw35l")
_healthLabel = NodePath("VBoxContainer/HealthBarContainer/HealthLabel") _healthLabel = NodePath("VBoxContainer/HealthBarContainer/HealthLabel")
_healthBar = NodePath("VBoxContainer/HealthBarContainer/HealthBar") _healthBar = NodePath("VBoxContainer/HealthBarContainer/HealthBar")
_shieldLabel = NodePath("VBoxContainer/ShieldBarContainer/ShieldLabel") _shieldLabel = NodePath("VBoxContainer/ShieldBarContainer/ShieldLabel")
@ -165,6 +169,7 @@ label_settings = ExtResource("2_x7kl7")
[node name="ItemsContainer" type="VBoxContainer" parent="VBoxContainer"] [node name="ItemsContainer" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 0 theme_override_constants/separation = 0
[node name="BossHud" parent="." instance=ExtResource("5_vmict")] [node name="BossHud" parent="." instance=ExtResource("5_vmict")]
@ -195,6 +200,7 @@ mouse_filter = 2
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="ItemList" type="ItemList" parent="Control"] [node name="ItemList" type="ItemList" parent="Control"]
visible = false
layout_mode = 1 layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0

View file

@ -0,0 +1,34 @@
[gd_scene load_steps=5 format=3 uid="uid://cd3ee1adstcrw"]
[ext_resource type="Script" uid="uid://chqjrv7wqk6ej" path="res://Scripts/UI/WeaponAmmoCounter.cs" id="1_pwei3"]
[ext_resource type="Texture2D" uid="uid://duwiasewxvcb5" path="res://Sprites/Items/Icicle_Gun.png" id="2_pqw4t"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="3_a6rek"]
[ext_resource type="Texture2D" uid="uid://c5g0qg6u2gm6f" path="res://Sprites/Items/Ammo1.png" id="4_kbanm"]
[node name="HudItemContainer" type="HBoxContainer" node_paths=PackedStringArray("Icon", "AmmoIcon", "TotalAmmoLabel", "LoadedAmmoLabel")]
offset_right = 40.0
offset_bottom = 16.0
theme_override_constants/separation = 0
script = ExtResource("1_pwei3")
Icon = NodePath("WeaponIcon")
AmmoIcon = NodePath("Ammo Icon")
TotalAmmoLabel = NodePath("TotalAmmo")
LoadedAmmoLabel = NodePath("LoadedAmmo")
[node name="WeaponIcon" type="TextureRect" parent="."]
layout_mode = 2
texture = ExtResource("2_pqw4t")
[node name="LoadedAmmo" type="Label" parent="."]
layout_mode = 2
text = "0"
label_settings = ExtResource("3_a6rek")
[node name="Ammo Icon" type="TextureRect" parent="."]
layout_mode = 2
texture = ExtResource("4_kbanm")
[node name="TotalAmmo" type="Label" parent="."]
layout_mode = 2
text = "0"
label_settings = ExtResource("3_a6rek")

View file

@ -0,0 +1,62 @@
[gd_scene load_steps=6 format=3 uid="uid://dew6axbejrusj"]
[ext_resource type="Script" uid="uid://catf2cx0f8cnu" path="res://Scripts/UI/IntroLogos.cs" id="1_p43sh"]
[ext_resource type="Texture2D" uid="uid://dfncwtgc4ae6e" path="res://Sprites/UI/MaddoLogo.png" id="1_rm3c6"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="2_ryg35"]
[sub_resource type="Gradient" id="Gradient_p43sh"]
colors = PackedColorArray(0.027451, 0.0941176, 0.129412, 1, 0.027451, 0.0941176, 0.129412, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_ahpdu"]
gradient = SubResource("Gradient_p43sh")
[node name="IntroLogos" type="CanvasLayer"]
script = ExtResource("1_p43sh")
IntroScenePath = &"res://Scenes/Cutscenes/Intro.tscn"
[node name="TextureRect" type="TextureRect" parent="."]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = SubResource("GradientTexture1D_ahpdu")
[node name="CenterContainer" type="CenterContainer" parent="."]
anchors_preset = 5
anchor_left = 0.5
anchor_right = 0.5
offset_left = -80.0
offset_right = 80.0
offset_bottom = 144.0
grow_horizontal = 2
[node name="TextureRect" type="TextureRect" parent="CenterContainer"]
layout_mode = 2
texture = ExtResource("1_rm3c6")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
anchors_preset = 7
anchor_left = 0.5
anchor_top = 1.0
anchor_right = 0.5
anchor_bottom = 1.0
offset_left = -42.5
offset_top = -40.0
offset_right = 42.5
grow_horizontal = 2
grow_vertical = 0
theme_override_constants/separation = -1
[node name="Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "This is a non official Touhou Project game.
Original By"
label_settings = ExtResource("2_ryg35")
horizontal_alignment = 1
[node name="Label2" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "上海アリス幻樂団"
label_settings = ExtResource("2_ryg35")
horizontal_alignment = 1

View file

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=3 uid="uid://cq342rj7ibnqy"]
[ext_resource type="Script" uid="uid://bysbukjjv8nc2" path="res://Scripts/UI/ItemNotification.cs" id="1_g1ix0"]
[ext_resource type="Texture2D" uid="uid://duwiasewxvcb5" path="res://Sprites/Items/Icicle_Gun.png" id="2_5xd0r"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="3_lpbqr"]
[node name="ItemNotification" type="HBoxContainer" node_paths=PackedStringArray("Icon", "DescriptionLabel")]
offset_right = 35.0
offset_bottom = 16.0
theme_override_constants/separation = 0
script = ExtResource("1_g1ix0")
Icon = NodePath("ItemIcon")
DescriptionLabel = NodePath("Label")
[node name="ItemIcon" type="TextureRect" parent="."]
layout_mode = 2
texture = ExtResource("2_5xd0r")
[node name="Label" type="Label" parent="."]
layout_mode = 2
text = "Asdfg"
label_settings = ExtResource("3_lpbqr")

View file

@ -0,0 +1,62 @@
[gd_scene load_steps=7 format=3 uid="uid://do23ng7xbfyyc"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="1_t7lr0"]
[ext_resource type="Texture2D" uid="uid://ddwhrlrgj6i00" path="res://Sprites/Actors/Cirno.png" id="2_jkpx4"]
[sub_resource type="AtlasTexture" id="AtlasTexture_l06qh"]
atlas = ExtResource("2_jkpx4")
region = Rect2(0, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_r5soi"]
atlas = ExtResource("2_jkpx4")
region = Rect2(16, 48, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_xdnw5"]
atlas = ExtResource("2_jkpx4")
region = Rect2(32, 48, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_6kit5"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_l06qh")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_r5soi")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_xdnw5")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="LoadingPlaque" type="VBoxContainer"]
z_index = 110
z_as_relative = false
anchors_preset = 3
anchor_left = 1.0
anchor_top = 1.0
anchor_right = 1.0
anchor_bottom = 1.0
offset_left = -40.0
offset_top = -40.0
grow_horizontal = 0
grow_vertical = 0
[node name="Label" type="Label" parent="."]
layout_mode = 2
text = "Cirno is preparing..."
label_settings = ExtResource("1_t7lr0")
[node name="CenterContainer" type="CenterContainer" parent="."]
layout_mode = 2
size_flags_horizontal = 4
size_flags_vertical = 4
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="CenterContainer"]
position = Vector2(-2, 6)
sprite_frames = SubResource("SpriteFrames_6kit5")
autoplay = "default"
frame_progress = 0.847

View file

@ -1,4 +1,4 @@
[gd_scene load_steps=10 format=3 uid="uid://c84shrj84g4t2"] [gd_scene load_steps=11 format=3 uid="uid://c84shrj84g4t2"]
[ext_resource type="Script" uid="uid://c06tspxwnj7pg" path="res://Scripts/UI/MusicRoom.cs" id="1_u3ui8"] [ext_resource type="Script" uid="uid://c06tspxwnj7pg" path="res://Scripts/UI/MusicRoom.cs" id="1_u3ui8"]
[ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="2_kybwj"] [ext_resource type="Script" uid="uid://cx63lvsuj1787" path="res://Scripts/Resources/MusicResource.cs" id="2_kybwj"]
@ -6,6 +6,7 @@
[ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="3_nkbmj"] [ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="3_nkbmj"]
[ext_resource type="Texture2D" uid="uid://bpd4ldfmt3s51" path="res://Sprites/UI/Note.png" id="3_u3ui8"] [ext_resource type="Texture2D" uid="uid://bpd4ldfmt3s51" path="res://Sprites/UI/Note.png" id="3_u3ui8"]
[ext_resource type="Resource" uid="uid://b0aryixgv2vkj" path="res://Resources/Music/No_Restraint.tres" id="4_cv0ke"] [ext_resource type="Resource" uid="uid://b0aryixgv2vkj" path="res://Resources/Music/No_Restraint.tres" id="4_cv0ke"]
[ext_resource type="Texture2D" uid="uid://b4fhb0wyc5vw" path="res://Sprites/UI/BackIcon.png" id="7_cv0ke"]
[ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="7_nkbmj"] [ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="7_nkbmj"]
[ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="8_nkbmj"] [ext_resource type="LabelSettings" uid="uid://buk3e7bbwmnv1" path="res://Resources/Styles/Hud_Text_Style.tres" id="8_nkbmj"]
@ -41,6 +42,7 @@ layout_mode = 2
size_flags_vertical = 4 size_flags_vertical = 4
theme = ExtResource("2_rcbhv") theme = ExtResource("2_rcbhv")
text = "Back" text = "Back"
icon = ExtResource("7_cv0ke")
[node name="MusicRoomName" type="Label" parent="VBoxContainer/HBoxContainer"] [node name="MusicRoomName" type="Label" parent="VBoxContainer/HBoxContainer"]
layout_mode = 2 layout_mode = 2

120
Scenes/HUD/OptionsMenu.tscn Normal file
View file

@ -0,0 +1,120 @@
[gd_scene load_steps=7 format=3 uid="uid://bnhcgsyh6wfo3"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="1_il8fq"]
[ext_resource type="Script" uid="uid://c1874e6ryvd1g" path="res://Scripts/UI/OptionsMenu.cs" id="1_mpohc"]
[ext_resource type="Texture2D" uid="uid://b4fhb0wyc5vw" path="res://Sprites/UI/BackIcon.png" id="2_4kao5"]
[ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="2_l5i2j"]
[ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="3_l5i2j"]
[sub_resource type="LabelSettings" id="LabelSettings_4kao5"]
font = ExtResource("2_l5i2j")
font_size = 20
outline_size = 4
outline_color = Color(0, 0, 0, 1)
[node name="OptionsMenu" type="VBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_mpohc")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
layout_mode = 2
[node name="BackButton" type="Button" parent="HBoxContainer"]
layout_mode = 2
size_flags_vertical = 4
theme = ExtResource("1_il8fq")
text = "Back"
icon = ExtResource("2_4kao5")
[node name="MusicRoomName" type="Label" parent="HBoxContainer"]
layout_mode = 2
text = "Options"
label_settings = SubResource("LabelSettings_4kao5")
horizontal_alignment = 1
[node name="ScrollContainer" type="ScrollContainer" parent="."]
layout_mode = 2
size_flags_vertical = 3
theme_override_styles/panel = ExtResource("3_l5i2j")
[node name="HBoxContainer" type="HBoxContainer" parent="ScrollContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme = ExtResource("1_il8fq")
[node name="HFlowContainer" type="HFlowContainer" parent="ScrollContainer/HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 3
theme = ExtResource("1_il8fq")
[node name="Label" type="Label" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
text = "Note: The options currently do nothing"
[node name="Resolution" type="VBoxContainer" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
[node name="Label" type="Label" parent="ScrollContainer/HBoxContainer/HFlowContainer/Resolution"]
layout_mode = 2
text = "Resolution"
[node name="OptionButton" type="OptionButton" parent="ScrollContainer/HBoxContainer/HFlowContainer/Resolution"]
layout_mode = 2
item_count = 2
popup/item_0/text = "1920x1080"
popup/item_0/id = 0
popup/item_1/text = "Test 1"
popup/item_1/id = 1
[node name="CheckBox" type="CheckBox" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
size_flags_vertical = 0
text = "VSync"
[node name="CheckBox2" type="CheckBox" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
size_flags_vertical = 0
text = "Whatever"
[node name="CheckBox3" type="CheckBox" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
size_flags_vertical = 0
disabled = true
text = "Disabled"
[node name="CheckBox4" type="CheckBox" parent="ScrollContainer/HBoxContainer/HFlowContainer"]
layout_mode = 2
text = "adsfdsaf"
[node name="VBoxContainer3" type="VBoxContainer" parent="ScrollContainer/HBoxContainer"]
layout_mode = 2
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer/HBoxContainer/VBoxContainer3"]
layout_mode = 2
[node name="Label" type="Label" parent="ScrollContainer/HBoxContainer/VBoxContainer3/VBoxContainer"]
layout_mode = 2
text = "Music Volume"
[node name="HSlider" type="HSlider" parent="ScrollContainer/HBoxContainer/VBoxContainer3/VBoxContainer"]
layout_mode = 2
value = 50.0
[node name="VBoxContainer2" type="VBoxContainer" parent="ScrollContainer/HBoxContainer/VBoxContainer3"]
layout_mode = 2
[node name="Label" type="Label" parent="ScrollContainer/HBoxContainer/VBoxContainer3/VBoxContainer2"]
layout_mode = 2
text = "Sound Effects Volume"
[node name="HSlider" type="HSlider" parent="ScrollContainer/HBoxContainer/VBoxContainer3/VBoxContainer2"]
layout_mode = 2
value = 50.0
[connection signal="pressed" from="HBoxContainer/BackButton" to="." method="_on_back_button_pressed"]

View file

@ -1,9 +1,10 @@
[gd_scene load_steps=5 format=3 uid="uid://bemu3l6b1e84y"] [gd_scene load_steps=6 format=3 uid="uid://bemu3l6b1e84y"]
[ext_resource type="Script" uid="uid://sqhb36u3acw7" path="res://Scripts/UI/DebugMenu.cs" id="1_5vtnj"] [ext_resource type="Script" uid="uid://sqhb36u3acw7" path="res://Scripts/UI/DebugMenu.cs" id="1_5vtnj"]
[ext_resource type="Theme" uid="uid://dkom8gcup42kd" path="res://Resources/Styles/DebugMenuButtons.tres" id="2_6il8q"] [ext_resource type="Theme" uid="uid://dkom8gcup42kd" path="res://Resources/Styles/DebugMenuButtons.tres" id="2_6il8q"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="2_wqb8e"] [ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="2_wqb8e"]
[ext_resource type="Resource" uid="uid://d1lc8lhq1b05p" path="res://Resources/Debug/DebugLevels.tres" id="3_cvgqx"] [ext_resource type="Resource" uid="uid://d1lc8lhq1b05p" path="res://Resources/Debug/DebugLevels.tres" id="3_cvgqx"]
[ext_resource type="Texture2D" uid="uid://d1a0nwd4wdph7" path="res://Sprites/UI/Back_Small.png" id="5_1xl3a"]
[node name="DebugMenu" type="VBoxContainer" node_paths=PackedStringArray("ButtonsContainer")] [node name="DebugMenu" type="VBoxContainer" node_paths=PackedStringArray("ButtonsContainer")]
process_mode = 3 process_mode = 3
@ -47,6 +48,7 @@ layout_mode = 2
theme = ExtResource("2_wqb8e") theme = ExtResource("2_wqb8e")
theme_override_font_sizes/font_size = 10 theme_override_font_sizes/font_size = 10
text = "Back" text = "Back"
icon = ExtResource("5_1xl3a")
[connection signal="toggled" from="HBoxContainer/CheckBox" to="." method="_on_check_box_toggled"] [connection signal="toggled" from="HBoxContainer/CheckBox" to="." method="_on_check_box_toggled"]
[connection signal="pressed" from="ScrollContainer/Level Select/BackButton" to="." method="_on_back_button_pressed"] [connection signal="pressed" from="ScrollContainer/Level Select/BackButton" to="." method="_on_back_button_pressed"]

View file

@ -3,10 +3,11 @@ using System;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using Cirno.Scripts; using Cirno.Scripts;
using Cirno.Scripts.Interactables;
using Cirno.Scripts.Resources; using Cirno.Scripts.Resources;
using Godot.Collections; using Godot.Collections;
public partial class Interactable : Area2D public partial class Interactable : Area2D, IInteractable
{ {
[Export] public Array<LootItem> Requirements = []; [Export] public Array<LootItem> Requirements = [];
@ -43,7 +44,7 @@ public partial class Interactable : Area2D
return true; return true;
} }
public virtual bool Activate() public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
return true; return true;
} }

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=8 format=3 uid="uid://doqmmuuuprl3s"] [gd_scene load_steps=10 format=3 uid="uid://doqmmuuuprl3s"]
[ext_resource type="Script" uid="uid://duhodrhcnoslh" path="res://Scripts/Interactables/Switch.cs" id="1_62csb"] [ext_resource type="Script" uid="uid://ck54glo7xbuq8" path="res://Scripts/Actors/Computer.cs" id="1_6kf2l"]
[ext_resource type="Texture2D" uid="uid://dfjdl48v8kt2l" path="res://Sprites/Props/Computer2.png" id="2_tlxq6"] [ext_resource type="Texture2D" uid="uid://dfjdl48v8kt2l" path="res://Sprites/Props/Computer2.png" id="2_tlxq6"]
[ext_resource type="Script" uid="uid://rlevd6krqglv" path="res://Scripts/Components/SpriteAnimationStartupRotator.cs" id="3_l1hw5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_wv7xi"] [sub_resource type="CircleShape2D" id="CircleShape2D_wv7xi"]
@ -17,6 +18,10 @@ region = Rect2(16, 0, 16, 16)
atlas = ExtResource("2_tlxq6") atlas = ExtResource("2_tlxq6")
region = Rect2(32, 0, 16, 16) region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_6kf2l"]
atlas = ExtResource("2_tlxq6")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_7837l"] [sub_resource type="SpriteFrames" id="SpriteFrames_7837l"]
animations = [{ animations = [{
"frames": [{ "frames": [{
@ -24,7 +29,7 @@ animations = [{
"texture": SubResource("AtlasTexture_6yfpu") "texture": SubResource("AtlasTexture_6yfpu")
}], }],
"loop": true, "loop": true,
"name": &"default", "name": &"Down",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [{ "frames": [{
@ -32,7 +37,7 @@ animations = [{
"texture": SubResource("AtlasTexture_jl6l5") "texture": SubResource("AtlasTexture_jl6l5")
}], }],
"loop": true, "loop": true,
"name": &"left", "name": &"Left",
"speed": 5.0 "speed": 5.0
}, { }, {
"frames": [{ "frames": [{
@ -40,17 +45,27 @@ animations = [{
"texture": SubResource("AtlasTexture_jxgtm") "texture": SubResource("AtlasTexture_jxgtm")
}], }],
"loop": true, "loop": true,
"name": &"right", "name": &"Right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6kf2l")
}],
"loop": true,
"name": &"Up",
"speed": 5.0 "speed": 5.0
}] }]
[node name="Computer" type="Area2D" groups=["Interactable"]] [node name="Computer" type="Area2D" groups=["Interactable"]]
collision_layer = 4 collision_layer = 4
collision_mask = 2 collision_mask = 2
script = ExtResource("1_62csb") script = ExtResource("1_6kf2l")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_wv7xi") shape = SubResource("CircleShape2D_wv7xi")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_7837l") sprite_frames = SubResource("SpriteFrames_7837l")
animation = &"Down"
script = ExtResource("3_l1hw5")

View file

@ -7,7 +7,6 @@
[node name="ScriptableAreaTrigger" type="Node2D"] [node name="ScriptableAreaTrigger" type="Node2D"]
script = ExtResource("1_jpwi6") script = ExtResource("1_jpwi6")
Events = Array[Object]([])
[node name="AreaTrigger" type="Area2D" parent="."] [node name="AreaTrigger" type="Area2D" parent="."]
collision_layer = 4 collision_layer = 4

View file

@ -0,0 +1,50 @@
[gd_scene load_steps=8 format=3 uid="uid://oi8svqsspcsj"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_cpf8e"]
[ext_resource type="Script" uid="uid://dmo0pw7natoja" path="res://Scripts/Interactables/AreaTrigger.cs" id="2_xybrs"]
[ext_resource type="Texture2D" uid="uid://bs5fsrx07bolj" path="res://Sprites/Actors/MovementSensor.png" id="3_xybrs"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1nht3"]
size = Vector2(4, 30)
[sub_resource type="AtlasTexture" id="AtlasTexture_a8ahg"]
atlas = ExtResource("3_xybrs")
region = Rect2(0, 0, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_5aqpj"]
atlas = ExtResource("3_xybrs")
region = Rect2(8, 0, 8, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_hqdqa"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_a8ahg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5aqpj")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="MovementSensor" type="Node2D"]
script = ExtResource("1_cpf8e")
[node name="AreaTrigger" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 2
script = ExtResource("2_xybrs")
OneTime = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="AreaTrigger"]
position = Vector2(0, 15)
shape = SubResource("RectangleShape2D_1nht3")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_hqdqa")
autoplay = "default"
[connection signal="Activated" from="AreaTrigger" to="." method="Start"]
[connection signal="area_entered" from="AreaTrigger" to="AreaTrigger" method="_on_area_entered"]

View file

@ -0,0 +1,50 @@
[gd_scene load_steps=8 format=3 uid="uid://dqr6myj0yaqvd"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_48f0r"]
[ext_resource type="Script" uid="uid://dmo0pw7natoja" path="res://Scripts/Interactables/AreaTrigger.cs" id="2_ms26s"]
[ext_resource type="Texture2D" uid="uid://bs5fsrx07bolj" path="res://Sprites/Actors/MovementSensor.png" id="3_7s6mr"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_1nht3"]
size = Vector2(4, 62)
[sub_resource type="AtlasTexture" id="AtlasTexture_a8ahg"]
atlas = ExtResource("3_7s6mr")
region = Rect2(0, 0, 8, 8)
[sub_resource type="AtlasTexture" id="AtlasTexture_5aqpj"]
atlas = ExtResource("3_7s6mr")
region = Rect2(8, 0, 8, 8)
[sub_resource type="SpriteFrames" id="SpriteFrames_hqdqa"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_a8ahg")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_5aqpj")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="MovementSensorLonger" type="Node2D"]
script = ExtResource("1_48f0r")
[node name="AreaTrigger" type="Area2D" parent="."]
collision_layer = 4
collision_mask = 2
script = ExtResource("2_ms26s")
OneTime = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="AreaTrigger"]
position = Vector2(0, 31)
shape = SubResource("RectangleShape2D_1nht3")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_hqdqa")
autoplay = "default"
[connection signal="Activated" from="AreaTrigger" to="." method="Start"]
[connection signal="area_entered" from="AreaTrigger" to="AreaTrigger" method="_on_area_entered"]

View file

@ -1,15 +1,18 @@
[gd_scene load_steps=14 format=3 uid="uid://d1h48wgasakk4"] [gd_scene load_steps=16 format=3 uid="uid://d1h48wgasakk4"]
[ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_2d4he"] [ext_resource type="Script" uid="uid://d0a0o50j82eo6" path="res://Scripts/Activables/ScriptableBase.cs" id="1_2d4he"]
[ext_resource type="PackedScene" uid="uid://crph24e6e0v0q" path="res://Scenes/Interactable/Control_Pad.tscn" id="2_2xddf"] [ext_resource type="Script" uid="uid://duhodrhcnoslh" path="res://Scripts/Interactables/Switch.cs" id="1_vly4n"]
[ext_resource type="Texture2D" uid="uid://bpc66amnvvkrn" path="res://Sprites/AlarmBox.png" id="2_slydm"] [ext_resource type="Texture2D" uid="uid://bpc66amnvvkrn" path="res://Sprites/AlarmBox.png" id="2_slydm"]
[ext_resource type="Script" uid="uid://donxnd50p7dm8" path="res://Scripts/Resources/Events/AlarmDisableEvent.cs" id="2_umsjn"] [ext_resource type="Script" uid="uid://donxnd50p7dm8" path="res://Scripts/Resources/Events/AlarmDisableEvent.cs" id="2_umsjn"]
[ext_resource type="Script" uid="uid://b5fesrd4lv8t1" path="res://Scripts/Resources/Events/EventResource.cs" id="3_m2axc"]
[ext_resource type="Script" uid="uid://daqdq17qiessy" path="res://Scripts/Components/AlarmSpriteSwitcher.cs" id="5_7g2v5"] [ext_resource type="Script" uid="uid://daqdq17qiessy" path="res://Scripts/Components/AlarmSpriteSwitcher.cs" id="5_7g2v5"]
[sub_resource type="Resource" id="Resource_hppa0"] [sub_resource type="Resource" id="Resource_hppa0"]
script = ExtResource("2_umsjn") script = ExtResource("2_umsjn")
WaitForCompletion = true WaitForCompletion = true
[sub_resource type="CircleShape2D" id="CircleShape2D_m2axc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_enwfk"] [sub_resource type="AtlasTexture" id="AtlasTexture_enwfk"]
atlas = ExtResource("2_slydm") atlas = ExtResource("2_slydm")
region = Rect2(48, 0, 16, 16) region = Rect2(48, 0, 16, 16)
@ -65,12 +68,18 @@ animations = [{
"speed": 5.0 "speed": 5.0
}] }]
[node name="AlarmBox" type="Node2D" groups=["Interactable"]] [node name="AlarmBox" type="Area2D" node_paths=PackedStringArray("Targets") groups=["Interactable"]]
script = ExtResource("1_2d4he") collision_layer = 4
Events = Array[Object]([SubResource("Resource_hppa0")]) collision_mask = 2
script = ExtResource("1_vly4n")
Targets = [NodePath("AlarmBox")]
[node name="ControlPad" parent="." node_paths=PackedStringArray("Target") instance=ExtResource("2_2xddf")] [node name="AlarmBox" type="Node2D" parent="." groups=["Interactable"]]
Target = NodePath("..") script = ExtResource("1_2d4he")
Events = Array[ExtResource("3_m2axc")]([SubResource("Resource_hppa0")])
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_m2axc")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_kbgi5") sprite_frames = SubResource("SpriteFrames_kbgi5")

View file

@ -37,6 +37,16 @@ public partial class InteractionController : PlayerArea2DModule
{ {
} }
public override void EnterState(PlayerState state)
{
}
public override void ExitState(PlayerState state)
{
}
public override void Init(IStateMachine<PlayerState, CharacterBody2D> machine) public override void Init(IStateMachine<PlayerState, CharacterBody2D> machine)
{ {
base.Init(machine); base.Init(machine);

View file

@ -1,8 +1,9 @@
[gd_scene load_steps=5 format=3 uid="uid://4q82gggqax87"] [gd_scene load_steps=6 format=3 uid="uid://4q82gggqax87"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_vx8ix"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_vx8ix"]
[ext_resource type="Resource" uid="uid://cfq121rs3bsu8" path="res://Resources/Items/Cheat_Gun_Item.tres" id="2_si1ac"] [ext_resource type="Resource" uid="uid://cfq121rs3bsu8" path="res://Resources/Items/Cheat_Gun_Item.tres" id="2_si1ac"]
[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="4_pj6iu"] [ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_whagr"]
[ext_resource type="Texture2D" uid="uid://cwy7g861vnbj1" path="res://Sprites/Items/Cheat_Gun.png" id="3_6qev1"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] [sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
@ -10,10 +11,10 @@
collision_layer = 4 collision_layer = 4
collision_mask = 2 collision_mask = 2
script = ExtResource("1_vx8ix") script = ExtResource("1_vx8ix")
LootTable = [ExtResource("2_si1ac")] LootTable = Array[ExtResource("2_whagr")]([ExtResource("2_si1ac")])
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("4_pj6iu") texture = ExtResource("3_6qev1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_jtwy2") shape = SubResource("CircleShape2D_jtwy2")

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=5 format=3 uid="uid://ddwcib46ttlrp"] [gd_scene load_steps=6 format=3 uid="uid://ddwcib46ttlrp"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_gpoff"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_gpoff"]
[ext_resource type="Resource" uid="uid://dau0s8ob7qnpc" path="res://Resources/Items/IceShotgun.tres" id="2_l5f4t"] [ext_resource type="Resource" uid="uid://dau0s8ob7qnpc" path="res://Resources/Items/IceShotgun.tres" id="2_l5f4t"]
[ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="3_2spyx"]
[ext_resource type="Texture2D" uid="uid://b46usr10jhmev" path="res://Sprites/Items/Ice_Shotgun.png" id="3_w7kfy"] [ext_resource type="Texture2D" uid="uid://b46usr10jhmev" path="res://Sprites/Items/Ice_Shotgun.png" id="3_w7kfy"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] [sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
@ -10,7 +11,7 @@
collision_layer = 4 collision_layer = 4
collision_mask = 2 collision_mask = 2
script = ExtResource("1_gpoff") script = ExtResource("1_gpoff")
LootTable = [ExtResource("2_l5f4t")] LootTable = [ExtResource("2_l5f4t"), ExtResource("3_2spyx")]
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_w7kfy") texture = ExtResource("3_w7kfy")

View file

@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_qo3uh"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_qo3uh"]
[ext_resource type="Resource" uid="uid://bgcgeg187vg1h" path="res://Resources/Items/IcicleRepeater.tres" id="2_qo3uh"] [ext_resource type="Resource" uid="uid://bgcgeg187vg1h" path="res://Resources/Items/IcicleRepeater.tres" id="2_qo3uh"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_sb7le"] [ext_resource type="Resource" uid="uid://ct1fa2huvy34n" path="res://Resources/Items/Ammo1.tres" id="3_leexx"]
[ext_resource type="Texture2D" uid="uid://bxe747rnr5xt7" path="res://Sprites/Items/Ice_Repeater.png" id="3_sb7le"] [ext_resource type="Texture2D" uid="uid://bxe747rnr5xt7" path="res://Sprites/Items/Ice_Repeater.png" id="3_sb7le"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"] [sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
@ -11,7 +11,7 @@
collision_layer = 4 collision_layer = 4
collision_mask = 2 collision_mask = 2
script = ExtResource("1_qo3uh") script = ExtResource("1_qo3uh")
LootTable = Array[ExtResource("2_sb7le")]([ExtResource("2_qo3uh")]) LootTable = [ExtResource("2_qo3uh"), ExtResource("3_leexx")]
[node name="Sprite2D" type="Sprite2D" parent="."] [node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_sb7le") texture = ExtResource("3_sb7le")

View file

@ -1,9 +1,8 @@
[gd_scene load_steps=8 format=3 uid="uid://cvctgw8eo2f7e"] [gd_scene load_steps=7 format=3 uid="uid://cvctgw8eo2f7e"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_bdsed"] [ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_bdsed"]
[ext_resource type="Resource" uid="uid://dhbltvgsa3g88" path="res://Resources/Items/Spider_Bomb_Pickup.tres" id="2_bdsed"] [ext_resource type="Resource" uid="uid://dhbltvgsa3g88" path="res://Resources/Items/Spider_Bomb_Pickup.tres" id="2_bdsed"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_fyf8h"] [ext_resource type="Texture2D" uid="uid://r2h77ktff10m" path="res://Sprites/Bullets/Snowball.png" id="3_bdsed"]
[ext_resource type="Texture2D" uid="uid://huo14jdekj6n" path="res://Sprites/Bullets/spiderbomb.png" id="3_bdsed"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"] [sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"]
@ -26,7 +25,7 @@ animations = [{
collision_layer = 4 collision_layer = 4
collision_mask = 2 collision_mask = 2
script = ExtResource("1_bdsed") script = ExtResource("1_bdsed")
LootTable = Array[ExtResource("2_fyf8h")]([ExtResource("2_bdsed")]) LootTable = [ExtResource("2_bdsed")]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_6vv2s") shape = SubResource("CircleShape2D_6vv2s")

View file

@ -0,0 +1,35 @@
[gd_scene load_steps=8 format=3 uid="uid://sjxkj5jdndxb"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_o42iv"]
[ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="2_o42iv"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="2_q76u6"]
[ext_resource type="Texture2D" uid="uid://b61po207ggn63" path="res://Sprites/Items/Yin_Ammo.png" id="3_o42iv"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"]
[sub_resource type="AtlasTexture" id="AtlasTexture_q76u6"]
atlas = ExtResource("3_o42iv")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_8gvnj"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_q76u6")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[node name="YinYangAmmo" type="Area2D" groups=["Interactable"]]
collision_layer = 4
collision_mask = 2
script = ExtResource("1_o42iv")
LootTable = Array[ExtResource("2_q76u6")]([ExtResource("2_o42iv")])
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_6vv2s")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_8gvnj")

View file

@ -0,0 +1,20 @@
[gd_scene load_steps=6 format=3 uid="uid://dyvrwksve4ulg"]
[ext_resource type="Script" uid="uid://b3h7b30kerf60" path="res://Scripts/Interactables/ItemPickup.cs" id="1_47pfy"]
[ext_resource type="Resource" uid="uid://ccmuffmnevrt4" path="res://Resources/Items/Yin_Yang_Gun_Pickup.tres" id="2_47pfy"]
[ext_resource type="Resource" uid="uid://diqm2ju0xakkt" path="res://Resources/Items/Yin_Yang_Ammo.tres" id="3_44v4n"]
[ext_resource type="Texture2D" uid="uid://61kfxc7k3do" path="res://Sprites/Items/Ying_Yang_Gun.png" id="3_atrc8"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
[node name="YinYangGun" type="Area2D" groups=["Interactable"]]
collision_layer = 4
collision_mask = 2
script = ExtResource("1_47pfy")
LootTable = [ExtResource("2_47pfy"), ExtResource("3_44v4n")]
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("3_atrc8")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_jtwy2")

View file

@ -1,17 +1,19 @@
[gd_scene load_steps=16 format=3 uid="uid://5xajclchk3my"] [gd_scene load_steps=18 format=3 uid="uid://5xajclchk3my"]
[ext_resource type="Script" uid="uid://dql102fvubniv" path="res://Scripts/MainMenu.cs" id="1_702nk"] [ext_resource type="Script" uid="uid://dql102fvubniv" path="res://Scripts/MainMenu.cs" id="1_702nk"]
[ext_resource type="PackedScene" uid="uid://c84shrj84g4t2" path="res://Scenes/HUD/MusicRoom.tscn" id="2_if7li"] [ext_resource type="PackedScene" uid="uid://c84shrj84g4t2" path="res://Scenes/HUD/MusicRoom.tscn" id="2_if7li"]
[ext_resource type="Texture2D" uid="uid://xvadkvwajs0t" path="res://Sprites/UI/Crystal.png" id="2_j4e6a"] [ext_resource type="Texture2D" uid="uid://xvadkvwajs0t" path="res://Sprites/UI/Crystal.png" id="2_j4e6a"]
[ext_resource type="Texture2D" uid="uid://dicat7qqa0a7o" path="res://Sprites/Portraits/CirnoTitle.png" id="2_mpelb"]
[ext_resource type="Texture2D" uid="uid://by38ufb51f6rx" path="res://Sprites/UI/TitleBackground.png" id="2_qdx0s"] [ext_resource type="Texture2D" uid="uid://by38ufb51f6rx" path="res://Sprites/UI/TitleBackground.png" id="2_qdx0s"]
[ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="3_bl0se"] [ext_resource type="FontFile" uid="uid://ccm3u37q1hvux" path="res://fonts/Xolonium-Regular.ttf" id="3_bl0se"]
[ext_resource type="PackedScene" uid="uid://cmdf7cbqbxedj" path="res://Scenes/HUD/CreditsMenu.tscn" id="4_8e205"]
[ext_resource type="AudioStream" uid="uid://di416g5wgx6j0" path="res://Music/Title.mp3" id="4_i6ku4"] [ext_resource type="AudioStream" uid="uid://di416g5wgx6j0" path="res://Music/Title.mp3" id="4_i6ku4"]
[ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="4_nk7wn"] [ext_resource type="Theme" uid="uid://dnsadvmunm76k" path="res://Resources/Styles/MainMenuButtons.tres" id="4_nk7wn"]
[ext_resource type="PackedScene" uid="uid://bnhcgsyh6wfo3" path="res://Scenes/HUD/OptionsMenu.tscn" id="5_7467j"]
[ext_resource type="LabelSettings" uid="uid://wr7cb2qa6w71" path="res://Resources/Styles/Title_Text_Style.tres" id="7_loo7a"] [ext_resource type="LabelSettings" uid="uid://wr7cb2qa6w71" path="res://Resources/Styles/Title_Text_Style.tres" id="7_loo7a"]
[ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="7_rrcx7"] [ext_resource type="StyleBox" uid="uid://ctw2hju32l3rg" path="res://Resources/Styles/PixelStyleBoxRed.tres" id="7_rrcx7"]
[ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="8_koqhg"] [ext_resource type="PackedScene" uid="uid://b3tyacxxw88lx" path="res://Scenes/Utils/StreamPlayerWithName.tscn" id="8_koqhg"]
[ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="9_nwlsr"] [ext_resource type="PackedScene" uid="uid://bemu3l6b1e84y" path="res://Scenes/HUD/debug_menu.tscn" id="9_nwlsr"]
[ext_resource type="Texture2D" uid="uid://cv1fmski5dvhk" path="res://Sprites/Briefing/Intro/robot pov/l1_robot pov1.png" id="12_7467j"]
[ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="13_fh7cp"] [ext_resource type="Resource" uid="uid://byo74ews118nl" path="res://Resources/Music/No_Reason.tres" id="13_fh7cp"]
[sub_resource type="Theme" id="Theme_c7h4d"] [sub_resource type="Theme" id="Theme_c7h4d"]
@ -23,15 +25,7 @@ font_size = 12
outline_size = 4 outline_size = 4
outline_color = Color(0, 0, 0, 1) outline_color = Color(0, 0, 0, 1)
[node name="Control" type="Control" node_paths=PackedStringArray("SubMenuHolder", "MusicPlayer")] [node name="MainMenu" type="CanvasLayer" node_paths=PackedStringArray("SubMenuHolder", "MusicPlayer")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
offset_right = 1.0
offset_bottom = -2.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_702nk") script = ExtResource("1_702nk")
GameScene = "res://Scenes/Maps/Tutorial.tscn" GameScene = "res://Scenes/Maps/Tutorial.tscn"
MainMenuScene = "res://Scenes/MainMenu.tscn" MainMenuScene = "res://Scenes/MainMenu.tscn"
@ -39,23 +33,25 @@ SubMenuHolder = NodePath("SubMenuContainer")
MusicPlayer = NodePath("AudioStreamPlayer2D") MusicPlayer = NodePath("AudioStreamPlayer2D")
MusicRoomTemplate = ExtResource("2_if7li") MusicRoomTemplate = ExtResource("2_if7li")
DebugMenuTemplate = ExtResource("9_nwlsr") DebugMenuTemplate = ExtResource("9_nwlsr")
CreditsMenuTemplate = ExtResource("4_8e205")
OptionsMenuTemplate = ExtResource("5_7467j")
[node name="TextureRect2" type="TextureRect" parent="."] [node name="TextureRect2" type="TextureRect" parent="."]
layout_mode = 0 anchors_preset = 15
offset_right = 320.0 anchor_right = 1.0
offset_bottom = 160.0 anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_qdx0s") texture = ExtResource("2_qdx0s")
[node name="TextureRect" type="TextureRect" parent="."] [node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0
offset_left = 122.315 offset_left = 122.315
offset_top = 16.0 offset_top = 21.375
offset_right = 170.315 offset_right = 170.315
offset_bottom = 56.0 offset_bottom = 61.375
texture = ExtResource("2_j4e6a") texture = ExtResource("2_j4e6a")
[node name="MarginContainer" type="MarginContainer" parent="."] [node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15 anchors_preset = 15
anchor_right = 1.0 anchor_right = 1.0
anchor_bottom = 1.0 anchor_bottom = 1.0
@ -102,7 +98,6 @@ size_flags_horizontal = 3
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer/Title"] [node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer/Title"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
size_flags_vertical = 0
theme_override_constants/separation = -9 theme_override_constants/separation = -9
[node name="Label" type="Label" parent="MarginContainer/GridContainer/Title/VBoxContainer"] [node name="Label" type="Label" parent="MarginContainer/GridContainer/Title/VBoxContainer"]
@ -125,7 +120,8 @@ horizontal_alignment = 1
[node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/Title/VBoxContainer"] [node name="TextureRect" type="TextureRect" parent="MarginContainer/GridContainer/Title/VBoxContainer"]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 4 size_flags_horizontal = 4
texture = ExtResource("2_mpelb") size_flags_vertical = 10
texture = ExtResource("12_7467j")
stretch_mode = 2 stretch_mode = 2
[node name="Options" type="VBoxContainer" parent="MarginContainer/GridContainer"] [node name="Options" type="VBoxContainer" parent="MarginContainer/GridContainer"]
@ -155,7 +151,6 @@ MusicData = ExtResource("13_fh7cp")
[node name="SubMenuContainer" type="PanelContainer" parent="."] [node name="SubMenuContainer" type="PanelContainer" parent="."]
visible = false visible = false
layout_mode = 0
offset_left = 13.0 offset_left = 13.0
offset_top = 23.0 offset_top = 23.0
offset_right = 312.0 offset_right = 312.0
@ -166,4 +161,6 @@ theme_override_styles/panel = ExtResource("7_rrcx7")
[connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton2" to="." method="_on_debug_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton2" to="." method="_on_debug_button_pressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton" to="." method="_on_debug_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/DebugButton" to="." method="_on_debug_button_pressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/ExitButton" to="." method="_on_exit_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/GameButtons/ExitButton" to="." method="_on_exit_button_pressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/Options/OptionsButton" to="." method="OnOptionsButtonPressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/Options/MusicRoomButton" to="." method="_on_music_room_button_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/Options/MusicRoomButton" to="." method="_on_music_room_button_pressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/Options/CreditsButton" to="." method="OnCreditsButtonPressed"]

File diff suppressed because one or more lines are too long

125
Scenes/Maps/Level3.tscn Normal file

File diff suppressed because one or more lines are too long

94
Scenes/Maps/Level4.tscn Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,7 +1,8 @@
[gd_scene load_steps=16 format=4 uid="uid://prgabjxh44lf"] [gd_scene load_steps=17 format=4 uid="uid://prgabjxh44lf"]
[ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_4uv21"] [ext_resource type="Script" uid="uid://doxmbokehw8ci" path="res://Scripts/GameManager.cs" id="1_4uv21"]
[ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_xfbh8"] [ext_resource type="PackedScene" uid="uid://c4pr2707hbeph" path="res://Scenes/Actors/fsm_player.tscn" id="2_xfbh8"]
[ext_resource type="Script" uid="uid://epnwjptvks3t" path="res://Scripts/Resources/LootItem.cs" id="3_cko4a"]
[ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_bc0u7"] [ext_resource type="Script" uid="uid://mja0rk7n2kln" path="res://Scripts/Resources/MapStartDataResource.cs" id="4_bc0u7"]
[ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_em3f4"] [ext_resource type="TileSet" uid="uid://6k28roiljylj" path="res://Tilesets/factory_tileset.tres" id="4_em3f4"]
[ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="5_75e1c"] [ext_resource type="Script" uid="uid://krean0uywtms" path="res://Scripts/TilemapAvoidance.cs" id="5_75e1c"]
@ -17,7 +18,7 @@
[sub_resource type="Resource" id="Resource_6wo78"] [sub_resource type="Resource" id="Resource_6wo78"]
script = ExtResource("4_bc0u7") script = ExtResource("4_bc0u7")
EggIndex = 0 EggIndex = 0
StartingEquipment = [] StartingEquipment = Array[ExtResource("3_cko4a")]([])
[sub_resource type="CircleShape2D" id="CircleShape2D_5xgmc"] [sub_resource type="CircleShape2D" id="CircleShape2D_5xgmc"]
@ -33,11 +34,11 @@ MapStartData = SubResource("Resource_6wo78")
[node name="Tilemaps" type="Node2D" parent="."] [node name="Tilemaps" type="Node2D" parent="."]
process_mode = 1 process_mode = 1
[node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayer")] [node name="Floor" type="TileMapLayer" parent="Tilemaps" node_paths=PackedStringArray("_solidLayers")]
tile_map_data = PackedByteArray("AAAEABAAAAAEAAIAAAAEABEAAAAEAAIAAAAEABIAAAAEAAIAAAAEABMAAAAEAAIAAAAEABQAAAAEAAIAAAAEABUAAAAEAAIAAAAEABYAAAAEAAIAAAAFABAAAAAEAAIAAAAFABEAAAAEAAIAAAAFABIAAAAEAAIAAAAFABMAAAAEAAIAAAAFABQAAAAEAAIAAAAFABUAAAAEAAIAAAAFABYAAAAEAAIAAAAGABAAAAAEAAIAAAAGABEAAAAEAAIAAAAGABIAAAAEAAIAAAAGABMAAAAEAAIAAAAGABQAAAAEAAIAAAAGABUAAAAEAAIAAAAGABYAAAAEAAIAAAAHABAAAAAEAAIAAAAHABEAAAAEAAIAAAAHABIAAAAEAAIAAAAHABMAAAAEAAIAAAAHABQAAAAEAAIAAAAHABUAAAAEAAIAAAAHABYAAAAEAAIAAAAIABAAAAAEAAIAAAAIABEAAAAEAAIAAAAIABIAAAAEAAIAAAAIABMAAAAEAAIAAAAIABQAAAAEAAIAAAAIABUAAAAEAAIAAAAIABYAAAAEAAIAAAAJABAAAAAEAAIAAAAJABEAAAAEAAIAAAAJABIAAAAEAAIAAAAJABMAAAAEAAIAAAAJABQAAAAEAAIAAAAJABUAAAAEAAIAAAAJABYAAAAEAAIAAAAKABAAAAAEAAIAAAAKABEAAAAEAAIAAAAKABIAAAAEAAIAAAAKABMAAAAEAAIAAAAKABQAAAAEAAIAAAAKABUAAAAEAAIAAAAKABYAAAAEAAIAAAADABAAAAAEAAIAAAADABEAAAAEAAIAAAADABIAAAAEAAIAAAADABMAAAAEAAIAAAADABQAAAAEAAIAAAADABUAAAAEAAIAAAADABYAAAAEAAIAAAADABcAAAAEAAIAAAADABgAAAAEAAIAAAAEABcAAAAEAAIAAAAEABgAAAAEAAIAAAAFABcAAAAEAAIAAAAFABgAAAAEAAIAAAAGABcAAAAEAAIAAAAGABgAAAAEAAIAAAAHABcAAAAEAAIAAAAHABgAAAAEAAIAAAAIABcAAAAEAAIAAAAIABgAAAAEAAIAAAAJABcAAAAEAAIAAAAJABgAAAAEAAIAAAAKABcAAAAEAAIAAAAKABgAAAAEAAIAAAALABAAAAAEAAIAAAALABEAAAAEAAIAAAALABIAAAAEAAIAAAALABMAAAAEAAIAAAALABQAAAAEAAIAAAALABUAAAAEAAIAAAALABYAAAAEAAIAAAALABcAAAAEAAIAAAALABgAAAAEAAIAAAA=") tile_map_data = PackedByteArray("AAAEABAAAAAEAAIAAAAEABEAAAAEAAIAAAAEABIAAAAEAAIAAAAEABMAAAAEAAIAAAAEABQAAAAEAAIAAAAEABUAAAAEAAIAAAAEABYAAAAEAAIAAAAFABAAAAAEAAIAAAAFABEAAAAEAAIAAAAFABIAAAAEAAIAAAAFABMAAAAEAAIAAAAFABQAAAAEAAIAAAAFABUAAAAEAAIAAAAFABYAAAAEAAIAAAAGABAAAAAEAAIAAAAGABEAAAAEAAIAAAAGABIAAAAEAAIAAAAGABMAAAAEAAIAAAAGABQAAAAEAAIAAAAGABUAAAAEAAIAAAAGABYAAAAEAAIAAAAHABAAAAAEAAIAAAAHABEAAAAEAAIAAAAHABIAAAAEAAIAAAAHABMAAAAEAAIAAAAHABQAAAAEAAIAAAAHABUAAAAEAAIAAAAHABYAAAAEAAIAAAAIABAAAAAEAAIAAAAIABEAAAAEAAIAAAAIABIAAAAEAAIAAAAIABMAAAAEAAIAAAAIABQAAAAEAAIAAAAIABUAAAAEAAIAAAAIABYAAAAEAAIAAAAJABAAAAAEAAIAAAAJABEAAAAEAAIAAAAJABIAAAAEAAIAAAAJABMAAAAEAAIAAAAJABQAAAAEAAIAAAAJABUAAAAEAAIAAAAJABYAAAAEAAIAAAAKABAAAAAEAAIAAAAKABEAAAAEAAIAAAAKABIAAAAEAAIAAAAKABMAAAAEAAIAAAAKABQAAAAEAAIAAAAKABUAAAAEAAIAAAAKABYAAAAEAAIAAAADABAAAAAEAAIAAAADABEAAAAEAAIAAAADABIAAAAEAAIAAAADABMAAAAEAAIAAAADABQAAAAEAAIAAAADABUAAAAEAAIAAAADABYAAAAEAAIAAAADABcAAAAEAAIAAAADABgAAAAEAAIAAAAEABcAAAAEAAIAAAAEABgAAAAEAAIAAAAFABcAAAAEAAIAAAAFABgAAAAEAAIAAAAGABcAAAAEAAIAAAAGABgAAAAEAAIAAAAHABcAAAAEAAIAAAAHABgAAAAEAAIAAAAIABcAAAAEAAIAAAAIABgAAAAEAAIAAAAJABcAAAAEAAIAAAAJABgAAAAEAAIAAAAKABcAAAAEAAIAAAAKABgAAAAEAAIAAAALABAAAAAEAAIAAAALABEAAAAEAAIAAAALABIAAAAEAAIAAAALABMAAAAEAAIAAAALABQAAAAEAAIAAAALABUAAAAEAAIAAAALABYAAAAEAAIAAAALABcAAAAEAAIAAAALABgAAAAEAAIAAAA=")
tile_set = ExtResource("4_em3f4") tile_set = ExtResource("4_em3f4")
script = ExtResource("5_75e1c") script = ExtResource("5_75e1c")
_solidLayer = NodePath("../Solid") _solidLayers = [NodePath("../Solid"), NodePath("../Props")]
metadata/_edit_lock_ = true metadata/_edit_lock_ = true
[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]] [node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
@ -70,6 +71,7 @@ animation = &"down"
process_mode = 1 process_mode = 1
script = ExtResource("11_uct4d") script = ExtResource("11_uct4d")
pixel_snap = false pixel_snap = false
enable_smoothing = false
[node name="ReferenceRect" type="ReferenceRect" parent="."] [node name="ReferenceRect" type="ReferenceRect" parent="."]
visible = false visible = false

File diff suppressed because one or more lines are too long

61
Scenes/Props/Box_Hex.tscn Normal file
View file

@ -0,0 +1,61 @@
[gd_scene load_steps=9 format=3 uid="uid://drcrl8lr8arlr"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_pi3gx"]
[ext_resource type="PackedScene" uid="uid://dyvl0kyyete74" path="res://Scenes/Props/Box_Hex_Broken.tscn" id="2_pi3gx"]
[ext_resource type="PackedScene" uid="uid://jmijre3eaf8m" path="res://Scenes/Explosion.tscn" id="3_cj0wp"]
[ext_resource type="Texture2D" uid="uid://c6viqia3n1clp" path="res://Sprites/Box_Hex_Green.png" id="4_afyat"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2ewfl"]
size = Vector2(11, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_cj0wp"]
atlas = ExtResource("4_afyat")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_v070w"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_cj0wp")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ss2y0"]
size = Vector2(12, 10)
[node name="Hex Box" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_pi3gx")
Health = 4.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
DebrisScene = ExtResource("2_pi3gx")
ExplosionParticles = ExtResource("3_cj0wp")
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_2ewfl")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_v070w")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
visible = false
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
position = Vector2(0, -3)
shape = SubResource("RectangleShape2D_ss2y0")
[node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="."]
visible = false
radius = 8.36
vertices = PackedVector2Array(-6, -9, 6, -9, 6, 2, -6, 2)

View file

@ -0,0 +1,52 @@
[gd_scene load_steps=7 format=3 uid="uid://dyvl0kyyete74"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_o8kg7"]
[ext_resource type="Texture2D" uid="uid://c6viqia3n1clp" path="res://Sprites/Box_Hex_Green.png" id="2_o8kg7"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2ewfl"]
size = Vector2(11, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_gjk4d"]
atlas = ExtResource("2_o8kg7")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_n61jf"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_gjk4d")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ss2y0"]
size = Vector2(11, 14)
[node name="Hex Broken" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_o8kg7")
Health = 2.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_2ewfl")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_n61jf")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_ss2y0")

View file

@ -0,0 +1,61 @@
[gd_scene load_steps=9 format=3 uid="uid://bx2h6niaxi6mv"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_qpdex"]
[ext_resource type="PackedScene" uid="uid://dwvt4ckmqwqko" path="res://Scenes/Props/Box_Wood_Broken.tscn" id="2_qpdex"]
[ext_resource type="PackedScene" uid="uid://jmijre3eaf8m" path="res://Scenes/Explosion.tscn" id="3_5nv8d"]
[ext_resource type="Texture2D" uid="uid://cbd17wjvcdvec" path="res://Sprites/Box_Wood.png" id="4_qpdex"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2ewfl"]
size = Vector2(11, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_pic8d"]
atlas = ExtResource("4_qpdex")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_5nv8d"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_pic8d")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ss2y0"]
size = Vector2(12, 10)
[node name="Wood Box" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_qpdex")
Health = 4.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
DebrisScene = ExtResource("2_qpdex")
ExplosionParticles = ExtResource("3_5nv8d")
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_2ewfl")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_5nv8d")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
visible = false
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
position = Vector2(0, -3)
shape = SubResource("RectangleShape2D_ss2y0")
[node name="NavigationObstacle2D" type="NavigationObstacle2D" parent="."]
visible = false
radius = 8.36
vertices = PackedVector2Array(-6, -9, 6, -9, 6, 2, -6, 2)

View file

@ -0,0 +1,52 @@
[gd_scene load_steps=7 format=3 uid="uid://dwvt4ckmqwqko"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_1mliv"]
[ext_resource type="Texture2D" uid="uid://cbd17wjvcdvec" path="res://Sprites/Box_Wood.png" id="2_1mliv"]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_2ewfl"]
size = Vector2(11, 14)
[sub_resource type="AtlasTexture" id="AtlasTexture_4fc6y"]
atlas = ExtResource("2_1mliv")
region = Rect2(16, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_gn3bd"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_4fc6y")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_ss2y0"]
size = Vector2(11, 14)
[node name="Wood Box Broken" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_1mliv")
Health = 2.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
metadata/_edit_group_ = true
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_2ewfl")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_gn3bd")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
visible = false
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_ss2y0")

119
Scenes/Props/Chair.tscn Normal file
View file

@ -0,0 +1,119 @@
[gd_scene load_steps=15 format=3 uid="uid://bjb1xv0ny1qim"]
[ext_resource type="Texture2D" uid="uid://c8rj2wjj7ho3j" path="res://Sprites/Props/Chair.png" id="1_a0rvv"]
[ext_resource type="Script" uid="uid://0hfmpf6i0icv" path="res://Scripts/Actors/Chair.cs" id="1_yxrrg"]
[ext_resource type="Script" uid="uid://rlevd6krqglv" path="res://Scripts/Components/SpriteAnimationStartupRotator.cs" id="3_eq5fp"]
[sub_resource type="AtlasTexture" id="AtlasTexture_yxrrg"]
atlas = ExtResource("1_a0rvv")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_eq5fp"]
atlas = ExtResource("1_a0rvv")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_vlpit"]
atlas = ExtResource("1_a0rvv")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_hgjbl"]
atlas = ExtResource("1_a0rvv")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_3qtkp"]
atlas = ExtResource("1_a0rvv")
region = Rect2(32, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ge7ok"]
atlas = ExtResource("1_a0rvv")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_t37n8"]
atlas = ExtResource("1_a0rvv")
region = Rect2(48, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_fu0sf"]
atlas = ExtResource("1_a0rvv")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_hgjbl"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_yxrrg")
}],
"loop": true,
"name": &"Down",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_eq5fp")
}],
"loop": true,
"name": &"Left",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_vlpit")
}],
"loop": true,
"name": &"Right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_hgjbl")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_3qtkp")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ge7ok")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_t37n8")
}],
"loop": true,
"name": &"Spin",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_fu0sf")
}],
"loop": true,
"name": &"Up",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_a0rvv"]
size = Vector2(7, 10)
[sub_resource type="CircleShape2D" id="CircleShape2D_yxrrg"]
radius = 5.09902
[node name="Chair" type="StaticBody2D"]
collision_layer = 68
collision_mask = 0
script = ExtResource("1_yxrrg")
SpinTime = 1.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_hgjbl")
animation = &"Down"
script = ExtResource("3_eq5fp")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
position = Vector2(0.5, -1)
shape = SubResource("RectangleShape2D_a0rvv")
[node name="Area2D" type="Area2D" parent="."]
collision_layer = 64
collision_mask = 8
[node name="CollisionShape2D" type="CollisionShape2D" parent="Area2D"]
shape = SubResource("CircleShape2D_yxrrg")
[connection signal="area_entered" from="Area2D" to="." method="OnBulletCollision"]

View file

@ -43,15 +43,18 @@ DebrisScene = ExtResource("2_pr6n8")
metadata/_edit_group_ = true metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_kpm16") sprite_frames = SubResource("SpriteFrames_kpm16")
autoplay = "default" autoplay = "default"
frame_progress = 0.193815 frame_progress = 0.193815
[node name="CollisionShape2D" type="CollisionShape2D" parent="."] [node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false visible = false
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_0nhpj") shape = SubResource("RectangleShape2D_0nhpj")
[node name="RigidBody2D" type="RigidBody2D" parent="."] [node name="RigidBody2D" type="RigidBody2D" parent="."]
position = Vector2(0, -8)
collision_layer = 64 collision_layer = 64
collision_mask = 10 collision_mask = 10
gravity_scale = 0.0 gravity_scale = 0.0

View file

@ -0,0 +1,73 @@
[gd_scene load_steps=10 format=3 uid="uid://cl7s06sk106uo"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_1necu"]
[ext_resource type="PackedScene" uid="uid://dlnw4ear5tsv3" path="res://Scenes/Props/VendingMachine_Broken.tscn" id="2_1necu"]
[ext_resource type="Texture2D" uid="uid://cg75fgm412pt7" path="res://Sprites/Props/VendingMachine.png" id="3_1necu"]
[sub_resource type="AtlasTexture" id="AtlasTexture_wa2ji"]
atlas = ExtResource("3_1necu")
region = Rect2(0, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_4d1y1"]
atlas = ExtResource("3_1necu")
region = Rect2(16, 0, 16, 32)
[sub_resource type="AtlasTexture" id="AtlasTexture_hlj8y"]
atlas = ExtResource("3_1necu")
region = Rect2(32, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_lo43l"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_wa2ji")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_4d1y1")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_hlj8y")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0nhpj"]
size = Vector2(14, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vguns"]
size = Vector2(13, 20)
[node name="VendingMachine" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_1necu")
Health = 8.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
DebrisScene = ExtResource("2_1necu")
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_lo43l")
autoplay = "default"
frame = 1
frame_progress = 0.710561
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
visible = false
position = Vector2(0, -8)
shape = SubResource("RectangleShape2D_0nhpj")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
position = Vector2(0, -8)
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
visible = false
position = Vector2(0.5, -3)
shape = SubResource("RectangleShape2D_vguns")

View file

@ -0,0 +1,50 @@
[gd_scene load_steps=7 format=3 uid="uid://dlnw4ear5tsv3"]
[ext_resource type="Script" uid="uid://cpx2fxtumgmud" path="res://Scenes/Barrel.cs" id="1_ggfb7"]
[ext_resource type="Texture2D" uid="uid://cg75fgm412pt7" path="res://Sprites/Props/VendingMachine.png" id="2_ggfb7"]
[sub_resource type="AtlasTexture" id="AtlasTexture_n2q42"]
atlas = ExtResource("2_ggfb7")
region = Rect2(48, 0, 16, 32)
[sub_resource type="SpriteFrames" id="SpriteFrames_n5h7c"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_n2q42")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="RectangleShape2D" id="RectangleShape2D_0nhpj"]
size = Vector2(6, 24)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_vguns"]
size = Vector2(6, 20)
[node name="VendingMachineBroken" type="Area2D" groups=["Destroyable"]]
collision_layer = 64
collision_mask = 10
script = ExtResource("1_ggfb7")
Indestructible = true
Health = 8.0
ExplosionRadius = 0.0
ExplosionDamage = 0.0
metadata/_edit_group_ = true
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_n5h7c")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("RectangleShape2D_0nhpj")
[node name="RigidBody2D" type="RigidBody2D" parent="."]
collision_layer = 64
collision_mask = 10
gravity_scale = 0.0
[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"]
position = Vector2(0, -3)
shape = SubResource("RectangleShape2D_vguns")

View file

@ -0,0 +1,14 @@
[gd_scene load_steps=4 format=3 uid="uid://1lowv5ce2poq"]
[ext_resource type="Script" uid="uid://df81kn4u8yigu" path="res://Scripts/Weapons/AutoclearingBulletEmitter.cs" id="1_5c773"]
[ext_resource type="Resource" uid="uid://ncukdupc7hbm" path="res://Resources/Bullets/Explosion.tres" id="2_d2d24"]
[ext_resource type="Script" uid="uid://c6467d6yx50qh" path="res://Scripts/Components/BulletSpawner.cs" id="3_d2d24"]
[node name="AutoclearingExplosionBullet" type="Node2D"]
script = ExtResource("1_5c773")
BulletResource = ExtResource("2_d2d24")
EmitOnStart = true
EmitCoolDown = 10.0
[node name="BulletSpawner" type="Node2D" parent="."]
script = ExtResource("3_d2d24")

View file

@ -1,34 +1,57 @@
[gd_scene load_steps=8 format=3 uid="uid://64ax2lj77sr1"] [gd_scene load_steps=12 format=3 uid="uid://64ax2lj77sr1"]
[ext_resource type="Script" uid="uid://dsa4b75hdig8p" path="res://Scripts/Bullet.cs" id="1_nrcj1"] [ext_resource type="Script" uid="uid://dsa4b75hdig8p" path="res://Scripts/Bullet.cs" id="1_nrcj1"]
[ext_resource type="Texture2D" uid="uid://huo14jdekj6n" path="res://Sprites/Bullets/spiderbomb.png" id="2_nrcj1"] [ext_resource type="Texture2D" uid="uid://bb6vb13ncqpul" path="res://Sprites/Bullets/Snowball_Small.png" id="2_lhjit"]
[ext_resource type="Texture2D" uid="uid://cf2855sd3hqty" path="res://Sprites/Actors/Aiming_Reticule_Small.png" id="3_lhjit"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jxptd"] [sub_resource type="CircleShape2D" id="CircleShape2D_jxptd"]
radius = 2.23607 radius = 2.23607
[sub_resource type="AtlasTexture" id="AtlasTexture_lhjit"] [sub_resource type="AtlasTexture" id="AtlasTexture_ibnjy"]
atlas = ExtResource("2_nrcj1") atlas = ExtResource("2_lhjit")
region = Rect2(0, 0, 16, 16) region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ibnjy"] [sub_resource type="AtlasTexture" id="AtlasTexture_w1jch"]
atlas = ExtResource("2_nrcj1") atlas = ExtResource("2_lhjit")
region = Rect2(16, 0, 16, 16) region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w1jch"] [sub_resource type="AtlasTexture" id="AtlasTexture_o2e4e"]
atlas = ExtResource("2_nrcj1") atlas = ExtResource("2_lhjit")
region = Rect2(32, 0, 16, 16) region = Rect2(32, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_co0jb"] [sub_resource type="AtlasTexture" id="AtlasTexture_ea6l6"]
atlas = ExtResource("2_lhjit")
region = Rect2(48, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_f4bqv"]
animations = [{ animations = [{
"frames": [{ "frames": [{
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_lhjit")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ibnjy") "texture": SubResource("AtlasTexture_ibnjy")
}, { }, {
"duration": 1.0, "duration": 1.0,
"texture": SubResource("AtlasTexture_w1jch") "texture": SubResource("AtlasTexture_w1jch")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_o2e4e")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ea6l6")
}],
"loop": true,
"name": &"default",
"speed": 5.0
}]
[sub_resource type="AtlasTexture" id="AtlasTexture_co0jb"]
atlas = ExtResource("3_lhjit")
region = Rect2(0, 0, 16, 16)
[sub_resource type="SpriteFrames" id="SpriteFrames_o2e4e"]
animations = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_co0jb")
}], }],
"loop": true, "loop": true,
"name": &"default", "name": &"default",
@ -48,10 +71,14 @@ shape = SubResource("CircleShape2D_jxptd")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."] [node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_co0jb") sprite_frames = SubResource("SpriteFrames_f4bqv")
autoplay = "default" autoplay = "default"
frame = 1 frame = 2
frame_progress = 0.375255 frame_progress = 0.980155
[node name="AnimatedSprite2D2" type="AnimatedSprite2D" parent="."]
position = Vector2(18.545, 0)
sprite_frames = SubResource("SpriteFrames_o2e4e")
[connection signal="area_entered" from="." to="." method="_on_area_entered"] [connection signal="area_entered" from="." to="." method="_on_area_entered"]
[connection signal="body_entered" from="." to="." method="_on_body_entered"] [connection signal="body_entered" from="." to="." method="_on_body_entered"]

BIN
Scenes/l0_frames01.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://7mxxy4mjr6yk"
path="res://.godot/imported/l0_frames01.png-3513fbc42e9a59a6bb60a1beada6ca73.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Scenes/l0_frames01.png"
dest_files=["res://.godot/imported/l0_frames01.png-3513fbc42e9a59a6bb60a1beada6ca73.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
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/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

File diff suppressed because one or more lines are too long

View file

@ -16,7 +16,7 @@ public partial class BlackCover : Sprite2D, IActivable
UpdateSprite(); UpdateSprite();
} }
public void Activate(ActivationType activationType = ActivationType.Toggle) public bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
switch (activationType) switch (activationType)
{ {
@ -36,6 +36,7 @@ public partial class BlackCover : Sprite2D, IActivable
break; break;
} }
UpdateSprite(); UpdateSprite();
return true;
} }
private void UpdateSprite() private void UpdateSprite()

View file

@ -24,7 +24,7 @@ public partial class BulletEmitter : Node2D, IActivable
private BulletSpawner _bulletSpawner; private BulletSpawner _bulletSpawner;
private bool _isEmitting = false; protected bool IsEmitting = false;
private double _emitTimer = 0f; private double _emitTimer = 0f;
@ -33,13 +33,14 @@ public partial class BulletEmitter : Node2D, IActivable
_bulletSpawner = GetNode<BulletSpawner>("BulletSpawner"); _bulletSpawner = GetNode<BulletSpawner>("BulletSpawner");
if (EmitOnStart) if (EmitOnStart)
{ {
_isEmitting = true; IsEmitting = true;
CallDeferred(MethodName.Shoot);
} }
} }
public override void _Process(double delta) public override void _Process(double delta)
{ {
if (!_isEmitting) return; if (!IsEmitting) return;
_emitTimer += delta; _emitTimer += delta;
if (_emitTimer >= EmitCoolDown) if (_emitTimer >= EmitCoolDown)
@ -54,27 +55,29 @@ public partial class BulletEmitter : Node2D, IActivable
_bulletSpawner.SpawnBullet(BulletResource.MakeBullet(this.GlobalPosition, Count, Spread, EmissionRotation)); _bulletSpawner.SpawnBullet(BulletResource.MakeBullet(this.GlobalPosition, Count, Spread, EmissionRotation));
} }
public void Activate(ActivationType activationType = ActivationType.Toggle) public bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
switch (activationType) switch (activationType)
{ {
case ActivationType.Open: case ActivationType.Open:
case ActivationType.Enable: case ActivationType.Enable:
_isEmitting = true; IsEmitting = true;
_emitTimer = 0; _emitTimer = 0;
break; break;
case ActivationType.Close: case ActivationType.Close:
case ActivationType.Disable: case ActivationType.Disable:
_isEmitting = false; IsEmitting = false;
_emitTimer = 0; _emitTimer = 0;
break; break;
case ActivationType.Use: case ActivationType.Use:
case ActivationType.Toggle: case ActivationType.Toggle:
_isEmitting = !_isEmitting; IsEmitting = !IsEmitting;
_emitTimer = 0; _emitTimer = 0;
break; break;
case ActivationType.Destroy: case ActivationType.Destroy:
break; break;
} }
return true;
} }
} }

View file

@ -35,14 +35,20 @@ public partial class DialogueStarter : ChainActivable
DialogueEndAction(); DialogueEndAction();
} }
public override void Activate(ActivationType activationType = ActivationType.Toggle) public override bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
if (GlobalState.Instance.SessionSettings.SkipDialogues)
{
DialogueEndAction();
return true;
}
_dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded)); _dialogic.Connect("timeline_ended", Callable.From(OnTimelineEnded));
var dialogicNode = _dialogic.Call("start", _trackName); var dialogicNode = _dialogic.Call("start", _trackName);
((Node)dialogicNode).ProcessMode = ProcessModeEnum.Always; ((Node)dialogicNode).ProcessMode = ProcessModeEnum.Always;
_gameManager.ChangeState(GameState.Dialogue); _gameManager.ChangeState(GameState.Dialogue);
return true;
// Script dialogic = ResourceLoader.Load("res://addons/dialogic/Other/DialogicClass.gd") as Script; // Script dialogic = ResourceLoader.Load("res://addons/dialogic/Other/DialogicClass.gd") as Script;
// var dialog = (Node) dialogic.Call("start","timeline"); // var dialog = (Node) dialogic.Call("start","timeline");
// AddChild(dialog); // AddChild(dialog);

View file

@ -0,0 +1,12 @@
using Cirno.Scripts.Components.FSM;
using Cirno.Scripts.Components.FSM.Elevator;
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Activables;
public partial class Elevator : StateMachineBase<ElevatorState, ElevatorProxy>
{
[Export] public override ElevatorState InitialState { get; protected set; } = ElevatorState.Init;
}

View file

@ -0,0 +1 @@
uid://bpey64n21hyhu

View file

@ -66,7 +66,7 @@ public partial class HealthStation : Activable
_healingTimer = 0; _healingTimer = 0;
} }
public override void Activate(ActivationType activationType = ActivationType.Toggle) public override bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
switch (activationType) switch (activationType)
{ {
@ -90,6 +90,8 @@ public partial class HealthStation : Activable
// Destroys // Destroys
break; break;
} }
return true;
} }
private void _on_area_entered(Area2D area) private void _on_area_entered(Area2D area)

35
Scripts/Activables/NPC.cs Normal file
View file

@ -0,0 +1,35 @@
using Cirno.Scripts.Interactables;
using Cirno.Scripts.Resources.Events;
using Godot;
using Godot.Collections;
namespace Cirno.Scripts.Activables;
public partial class NPC : Area2D, IInteractable
{
[Export] public Array<EventResource> Events;
private ScriptableBase _scriptable;
public override void _Ready()
{
_scriptable = new ScriptableBase();
_scriptable.Events = Events;
// Add as sibling so relative paths still work
GetParent().CallDeferred("add_child", _scriptable);
}
public bool Activate(ActivationType activationType = ActivationType.Toggle)
{
_scriptable?.Activate(activationType);
return true;
}
public bool CanActivate()
{
return true;
}
}

View file

@ -0,0 +1 @@
uid://cjy38nsh83ug1

View file

@ -34,11 +34,13 @@ public partial class PlayerMover : ChainActivable
_gameManager = this.GetGameManager(); _gameManager = this.GetGameManager();
} }
public override void Activate(ActivationType activationType = ActivationType.Toggle) public override bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
if (_gameManager.Player is null) return; if (_gameManager.Player is null) return false;
_ = MovePlayer(); _ = MovePlayer();
return true;
} }
private async Task MovePlayer() private async Task MovePlayer()

View file

@ -1,4 +1,5 @@
using System; using System;
using Cirno.Scripts.Interactables;
using Cirno.Scripts.Resources.Events; using Cirno.Scripts.Resources.Events;
using Godot; using Godot;
using Godot.Collections; using Godot.Collections;
@ -7,7 +8,7 @@ namespace Cirno.Scripts.Activables;
public partial class ScriptableBase : Node2D, IActivable public partial class ScriptableBase : Node2D, IActivable
{ {
[Export] public Array<EventResource> Events; [Export] public Array<EventResource> Events { get; set; } = [];
private EventResource CurrentEvent => Events[_currentEventIndex]; private EventResource CurrentEvent => Events[_currentEventIndex];
@ -43,7 +44,6 @@ public partial class ScriptableBase : Node2D, IActivable
if (!CurrentEvent.WaitForCompletion || CurrentEvent.IsComplete()) if (!CurrentEvent.WaitForCompletion || CurrentEvent.IsComplete())
{ {
// This loops // This loops
//_currentEventIndex = (_currentEventIndex + 1) % Events.Count;
_currentEventIndex++; _currentEventIndex++;
if (_currentEventIndex >= Events.Count) if (_currentEventIndex >= Events.Count)
{ {
@ -55,16 +55,17 @@ public partial class ScriptableBase : Node2D, IActivable
CurrentEvent.Start(this); CurrentEvent.Start(this);
} }
// if (_currentHealth <= CurrentPhase.Threshold && currentPhaseIndex + 1 < Phases.Count)
// {
// currentPhaseIndex++;
// _bossHud.SpellCardName = CurrentPhase.PhaseName;
// StartPhase(CurrentPhase);
// }
} }
public void Activate(ActivationType activationType = ActivationType.Toggle) public bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
Start(); Start();
return true;
}
public bool CanActivate()
{
return true;
} }
} }

View file

@ -76,7 +76,7 @@ public partial class Teleporter : Activable
} }
} }
public override void Activate(ActivationType activationType = ActivationType.Toggle) public override bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
switch (activationType) switch (activationType)
{ {
@ -100,6 +100,8 @@ public partial class Teleporter : Activable
// Destroys // Destroys
break; break;
} }
return true;
} }
public void PrepareForReceiving() public void PrepareForReceiving()

View file

@ -17,7 +17,7 @@ public partial class ActorSpawner : Node2D, IActivable
SpawnedActor = this.CreateSibling<Actor>(ActorPrefab); SpawnedActor = this.CreateSibling<Actor>(ActorPrefab);
} }
public void Activate(ActivationType activationType = ActivationType.Toggle) public bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
if (!WaitForActorDeath) if (!WaitForActorDeath)
{ {
@ -27,5 +27,7 @@ public partial class ActorSpawner : Node2D, IActivable
{ {
Spawn(); Spawn();
} }
return true;
} }
} }

View file

@ -1,4 +1,5 @@
using Cirno.Scripts.Activables; using System.Threading.Tasks;
using Cirno.Scripts.Activables;
using Godot; using Godot;
namespace Cirno.Scripts.Actors; namespace Cirno.Scripts.Actors;
@ -13,6 +14,8 @@ public partial class AlarmTeleporterActorSpawner : ActorSpawner
[Export] [Export]
public float ActivationRange { get; private set; } public float ActivationRange { get; private set; }
[Export] public float ActivationDelay { get; private set; } = 2f;
public override void _Ready() public override void _Ready()
{ {
_alarmManager = this.GetAlarmManager(); _alarmManager = this.GetAlarmManager();
@ -22,6 +25,13 @@ public partial class AlarmTeleporterActorSpawner : ActorSpawner
private void AlarmManagerOnAlarmEnabled(Vector2 location) private void AlarmManagerOnAlarmEnabled(Vector2 location)
{ {
if (!(location.DistanceTo(this.GlobalPosition) <= ActivationRange)) return; if (!(location.DistanceTo(this.GlobalPosition) <= ActivationRange)) return;
_ = DelaySpawn();
}
private async Task DelaySpawn()
{
await Task.Delay((int)(1000 * ActivationDelay));
Teleporter?.FireParticles(); Teleporter?.FireParticles();
Spawn(); Spawn();
} }

View file

@ -37,6 +37,8 @@ public partial class Boss : Enemy, IActivable
private BossHud _bossHud; private BossHud _bossHud;
[Signal] public delegate void ActorSpriteChangeEventHandler(Vector2 direction);
public override void _Ready() public override void _Ready()
{ {
base._Ready(); base._Ready();
@ -138,7 +140,7 @@ public partial class Boss : Enemy, IActivable
_currentHealth -= amount; _currentHealth -= amount;
} }
public void Activate(ActivationType activationType = ActivationType.Toggle) public bool Activate(ActivationType activationType = ActivationType.Toggle)
{ {
_started = true; _started = true;
if (_bossHud is not null) if (_bossHud is not null)
@ -147,6 +149,8 @@ public partial class Boss : Enemy, IActivable
} }
_gameManager.CameraTargetObject(_cameraMarker); _gameManager.CameraTargetObject(_cameraMarker);
StartPhase(CurrentPhase); StartPhase(CurrentPhase);
return true;
} }
private async Task Switchphase(BossPhase phase) private async Task Switchphase(BossPhase phase)
@ -181,4 +185,9 @@ public partial class Boss : Enemy, IActivable
_animationTextureRect.Visible = false; _animationTextureRect.Visible = false;
} }
public void ChangeSpriteDirection(Vector2 direction)
{
EmitSignal(SignalName.ActorSpriteChange, direction);
}
} }

50
Scripts/Actors/Chair.cs Normal file
View file

@ -0,0 +1,50 @@
using Godot;
using System;
using System.Threading.Tasks;
using Cirno.Scripts.Components;
using Cirno.Scripts.Enums;
public partial class Chair : StaticBody2D, IIRotateable
{
[Export]
public Direction Direction { get; set; } = Direction.Down;
private AnimatedSprite2D _animatedSprite;
[Export]
public StringName SpinAnimationName = "Spin";
[Export] public float SpinTime { get; private set; } = 4f;
private double _timer = 0f;
public override void _Ready()
{
_animatedSprite = GetNode<AnimatedSprite2D>("AnimatedSprite2D");
//_animatedSprite.Play(Direction.ToString());
}
public override void _Process(double delta)
{
if (_animatedSprite.Animation != SpinAnimationName) return;
_timer += delta;
if (_timer >= SpinTime)
{
_timer = 0;
_animatedSprite.SpeedScale = 0;
}
}
private void OnBulletCollision(Area2D area)
{
_animatedSprite.SpeedScale = 1;
_animatedSprite.Play("Spin");
_timer = 0;
}
}

View file

@ -0,0 +1 @@
uid://0hfmpf6i0icv

Some files were not shown because too many files have changed in this diff Show more