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"]
script = ExtResource("1_xksf5")
relativeTargetPosition = Vector2(0, 0)
moveDuration = 2.0
relativeTargetPosition = Vector2(0, -1)
moveDuration = 1.0
transitionType = 0
easeType = 2
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="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]
script = ExtResource("1_f2i0g")
BulletScene = ExtResource("1_8gj5r")
DestructionParticlesScene = ExtResource("2_f3yha")
BulletSpeed = 40.0
Direction = Vector2(1, 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"]
[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://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://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://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]
script = ExtResource("3_78iov")
@ -10,10 +22,10 @@ BulletScene = ExtResource("1_lfcuj")
DestructionParticlesScene = ExtResource("2_mdq2b")
BulletSpeed = 100.0
Direction = Vector2(1, 0)
BulletDamage = 4.0
BulletDamage = 1.0
LifeTime = 10.0
DestroyOnCollision = true
Owner = 1
DamageType = 1
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://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"]
script = ExtResource("1_aaqha")
@ -9,6 +43,26 @@ Name = "Fenekhu"
Contribution = "Music"
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"]
script = ExtResource("1_aaqha")
Name = "alphatrooper18"
@ -45,7 +99,13 @@ Name = "guillermochicasonido"
Contribution = "Teleporter Sound"
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]
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"

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="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"]
[resource]
@ -18,5 +18,6 @@ PickupIfMaxed = true
ConsumeOnUse = false
UiType = 1
Selectable = true
InventorySprite = ExtResource("2_5g5j1")
InventorySprite = ExtResource("2_0vddk")
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"]
[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://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"]
[sub_resource type="AtlasTexture" id="AtlasTexture_gpot4"]
atlas = ExtResource("1_v5a4k")
atlas = ExtResource("1_gpot4")
region = Rect2(0, 0, 16, 16)
[sub_resource type="Resource" id="Resource_v5a4k"]
script = ExtResource("1_qd764")
Name = "Spider Bomb"
Name = "Snowball Bomb launcher"
BulletData = ExtResource("2_gpot4")
RateOfFire = 1.0
BulletCapacity = 10
@ -28,8 +28,8 @@ metadata/_custom_type_script = "uid://b6fmrnipv88bk"
[resource]
script = ExtResource("1_lus3u")
ItemName = "Spider Bomb"
ItemDescription = "A bomb that spiders"
ItemName = "Snowball Bomb"
ItemDescription = "A snowball with a bomb inside"
ItemKey = "SPIDER_BOMB"
Item = 5
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"]
[resource]
resource_local_to_scene = true
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"]
[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"]
atlas = ExtResource("1_fb3du")
region = Rect2(0, 0, 16, 16)
@ -54,6 +62,41 @@ region = Rect2(32, 16, 16, 16)
animations = [{
"frames": [{
"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")
}, {
"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://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"]
atlas = ExtResource("1_nsg0m")
@ -58,6 +104,62 @@ region = Rect2(32, 16, 16, 16)
animations = [{
"frames": [{
"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")
}],
"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]
line_spacing = 1.0
font = ExtResource("1_foybo")
font_size = 12
font_size = 14
outline_size = 3
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="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]
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_outline_color = Color(0, 0, 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_focus_color = Color(0, 0, 0, 1)
Button/colors/icon_hover_color = Color(0, 0, 0, 1)
Button/colors/icon_hover_pressed_color = Color(0, 0, 0, 1)
Button/colors/icon_normal_color = Color(0, 0, 0, 1)
Button/colors/icon_pressed_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(1, 1, 1, 1)
Button/colors/icon_hover_color = Color(1, 1, 1, 1)
Button/colors/icon_hover_pressed_color = Color(1, 1, 1, 1)
Button/colors/icon_normal_color = Color(1, 1, 1, 1)
Button/colors/icon_pressed_color = Color(1, 1, 1, 1)
Button/constants/align_to_largest_stylebox = 0
Button/constants/h_separation = 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/normal = 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")
Name = "Enemy Weapon"
BulletData = ExtResource("1_eps1c")
RateOfFire = 0.4
RateOfFire = 0.3
BulletCapacity = 4
ReloadTime = 1.0
AutoReload = true
InfiniteAmmo = true
BulletsPerShot = 5
SpreadAngle = 180.0
BulletsPerShot = 1
SpreadAngle = 0.0
RandomSpread = 0.0
ItemKey = "EnemyWeapon"
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"]
[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]
script = ExtResource("1_wdsus")
Name = "Spider Bomb"
BulletData = SubResource("Resource_hoooo")
BulletData = ExtResource("1_m8p4s")
RateOfFire = 0.4
BulletCapacity = 20
ReloadTime = 1.0
@ -28,7 +15,7 @@ InfiniteAmmo = true
BulletsPerShot = 1
SpreadAngle = 0.0
RandomSpread = 0.0
ItemKey = ""
ItemKey = "SPIDER_BOMB"
AmmoKey = ""
_rotationOffset = 0.0
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 virtual void Activate(ActivationType activationType = ActivationType.Toggle)
public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
{
//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="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="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="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://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"]
@ -60,11 +61,11 @@ collision_layer = 16
collision_mask = 113
script = ExtResource("1_ugrra")
MovementSpeed = 30.0
Health = 6.0
Health = 2.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = ExtResource("2_i2plx")
animation = &"down"
animation = &"dead"
[node name="MovementProvider" type="Node2D" parent="."]
script = ExtResource("3_tum7w")
@ -129,13 +130,14 @@ shape = SubResource("CircleShape2D_0tkae")
[node name="DeathAnimation" type="Node2D" parent="."]
script = ExtResource("13_e2vvk")
ExplosionData = ExtResource("14_881we")
DebrisScene = ExtResource("15_gsthm")
[node name="DefeatScriptHandler" type="Node2D" parent="."]
script = ExtResource("15_17yce")
[node name="LootDrops" type="Node2D" parent="."]
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_exited" from="PlayerDetection" to="PlayerDetection" method="_on_area_exited"]

View file

@ -30,7 +30,7 @@ collision_layer = 16
collision_mask = 113
script = ExtResource("1_p2pib")
MovementSpeed = 30.0
Health = 3.0
Health = 2.0
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
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="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="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://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"]
radius = 7.0
@ -30,8 +91,12 @@ CameraOffset = Vector2(0, 32)
Health = 200.0
metadata/_edit_group_ = true
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("2_7k5gp")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_opbj8")
animation = &"Left"
autoplay = "default"
frame = 1
frame_progress = 0.41097
[node name="Damage_HitBox" type="CollisionShape2D" parent="."]
visible = false
@ -80,6 +145,13 @@ shape = SubResource("RectangleShape2D_m1rsg")
script = ExtResource("7_2obh7")
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_exited" from="PlayerDetection" to="." method="_on_area_exited"]
[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="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"]
atlas = ExtResource("4_7ysp5")
region = Rect2(16, 0, 16, 8)
@ -44,12 +37,7 @@ animations = [{
"speed": 5.0
}]
[node name="AlarmBox" 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="AlarmSign" type="Node2D"]
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
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://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="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="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="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"]
@ -28,6 +29,8 @@
[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="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"]
radius = 5.0
@ -110,6 +113,117 @@ radius = 17.2627
[sub_resource type="CircleShape2D" id="CircleShape2D_g3wua"]
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")]
process_mode = 1
collision_layer = 2
@ -137,7 +251,7 @@ _inputProvider = NodePath("../../InputProvider")
_damageReceiver = NodePath("../../DamageReceiver")
_activationProvider = NodePath("../../InteractionProvider")
_interactionController = NodePath("../../InteractionController")
_moduleNodes = [NodePath("../../InteractionController")]
_moduleNodes = [NodePath("../../InteractionController"), NodePath("../../ItemUser")]
[node name="Cutscene" type="Node2D" parent="StateMachine" node_paths=PackedStringArray("_animationProvider")]
script = ExtResource("4_22ff8")
@ -161,13 +275,20 @@ _animationProvider = NodePath("../../AnimationProvider")
_inputProvider = NodePath("../../InputProvider")
_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="."]
shape = SubResource("CircleShape2D_b3hxm")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
material = ExtResource("4_5qlss")
sprite_frames = ExtResource("4_s0ir4")
animation = &"idle"
animation = &"Drowning"
autoplay = "idle"
frame = 15
frame_progress = 0.860925
[node name="WeaponProvider" type="Node2D" parent="."]
script = ExtResource("5_gp3hw")
@ -264,6 +385,30 @@ Shield = NodePath("../DamageReceiver/ShieldProvider")
[node name="CollisionShape2D2" type="CollisionShape2D" parent="InteractionController"]
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="InteractionProvider" to="InteractionProvider" method="_on_interaction_controller_area_entered"]
[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="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)
[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")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Elevator"]
position = Vector2(0, -0.5)
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="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="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://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://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"]
@ -68,6 +70,8 @@ anti_aliasing = false
[node name="HUD" type="CanvasLayer" node_paths=PackedStringArray("_healthLabel", "_healthBar", "_shieldLabel", "_shieldBar", "_itemsContainer", "_gameOverPanel", "PauseMenuContainer", "DebugMenuHolder")]
process_mode = 3
script = ExtResource("1_m0hb0")
WeaponContainerTemplate = ExtResource("2_mattb")
ItemNotificationTemplate = ExtResource("3_mw35l")
_healthLabel = NodePath("VBoxContainer/HealthBarContainer/HealthLabel")
_healthBar = NodePath("VBoxContainer/HealthBarContainer/HealthBar")
_shieldLabel = NodePath("VBoxContainer/ShieldBarContainer/ShieldLabel")
@ -165,6 +169,7 @@ label_settings = ExtResource("2_x7kl7")
[node name="ItemsContainer" type="VBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
theme_override_constants/separation = 0
[node name="BossHud" parent="." instance=ExtResource("5_vmict")]
@ -195,6 +200,7 @@ mouse_filter = 2
metadata/_edit_group_ = true
[node name="ItemList" type="ItemList" parent="Control"]
visible = false
layout_mode = 1
anchors_preset = 15
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://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="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="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="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
theme = ExtResource("2_rcbhv")
text = "Back"
icon = ExtResource("7_cv0ke")
[node name="MusicRoomName" type="Label" parent="VBoxContainer/HBoxContainer"]
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="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="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")]
process_mode = 3
@ -47,6 +48,7 @@ layout_mode = 2
theme = ExtResource("2_wqb8e")
theme_override_font_sizes/font_size = 10
text = "Back"
icon = ExtResource("5_1xl3a")
[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"]

View file

@ -3,10 +3,11 @@ using System;
using System.Diagnostics;
using System.Linq;
using Cirno.Scripts;
using Cirno.Scripts.Interactables;
using Cirno.Scripts.Resources;
using Godot.Collections;
public partial class Interactable : Area2D
public partial class Interactable : Area2D, IInteractable
{
[Export] public Array<LootItem> Requirements = [];
@ -43,7 +44,7 @@ public partial class Interactable : Area2D
return true;
}
public virtual bool Activate()
public virtual bool Activate(ActivationType activationType = ActivationType.Toggle)
{
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="Script" uid="uid://rlevd6krqglv" path="res://Scripts/Components/SpriteAnimationStartupRotator.cs" id="3_l1hw5"]
[sub_resource type="CircleShape2D" id="CircleShape2D_wv7xi"]
@ -17,6 +18,10 @@ region = Rect2(16, 0, 16, 16)
atlas = ExtResource("2_tlxq6")
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"]
animations = [{
"frames": [{
@ -24,7 +29,7 @@ animations = [{
"texture": SubResource("AtlasTexture_6yfpu")
}],
"loop": true,
"name": &"default",
"name": &"Down",
"speed": 5.0
}, {
"frames": [{
@ -32,7 +37,7 @@ animations = [{
"texture": SubResource("AtlasTexture_jl6l5")
}],
"loop": true,
"name": &"left",
"name": &"Left",
"speed": 5.0
}, {
"frames": [{
@ -40,17 +45,27 @@ animations = [{
"texture": SubResource("AtlasTexture_jxgtm")
}],
"loop": true,
"name": &"right",
"name": &"Right",
"speed": 5.0
}, {
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_6kf2l")
}],
"loop": true,
"name": &"Up",
"speed": 5.0
}]
[node name="Computer" type="Area2D" groups=["Interactable"]]
collision_layer = 4
collision_mask = 2
script = ExtResource("1_62csb")
script = ExtResource("1_6kf2l")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
shape = SubResource("CircleShape2D_wv7xi")
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_7837l")
animation = &"Down"
script = ExtResource("3_l1hw5")

View file

@ -7,7 +7,6 @@
[node name="ScriptableAreaTrigger" type="Node2D"]
script = ExtResource("1_jpwi6")
Events = Array[Object]([])
[node name="AreaTrigger" type="Area2D" parent="."]
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="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="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"]
[sub_resource type="Resource" id="Resource_hppa0"]
script = ExtResource("2_umsjn")
WaitForCompletion = true
[sub_resource type="CircleShape2D" id="CircleShape2D_m2axc"]
[sub_resource type="AtlasTexture" id="AtlasTexture_enwfk"]
atlas = ExtResource("2_slydm")
region = Rect2(48, 0, 16, 16)
@ -65,12 +68,18 @@ animations = [{
"speed": 5.0
}]
[node name="AlarmBox" type="Node2D" groups=["Interactable"]]
script = ExtResource("1_2d4he")
Events = Array[Object]([SubResource("Resource_hppa0")])
[node name="AlarmBox" type="Area2D" node_paths=PackedStringArray("Targets") groups=["Interactable"]]
collision_layer = 4
collision_mask = 2
script = ExtResource("1_vly4n")
Targets = [NodePath("AlarmBox")]
[node name="ControlPad" parent="." node_paths=PackedStringArray("Target") instance=ExtResource("2_2xddf")]
Target = NodePath("..")
[node name="AlarmBox" type="Node2D" parent="." groups=["Interactable"]]
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="."]
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)
{
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="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"]
@ -10,10 +11,10 @@
collision_layer = 4
collision_mask = 2
script = ExtResource("1_vx8ix")
LootTable = [ExtResource("2_si1ac")]
LootTable = Array[ExtResource("2_whagr")]([ExtResource("2_si1ac")])
[node name="Sprite2D" type="Sprite2D" parent="."]
texture = ExtResource("4_pj6iu")
texture = ExtResource("3_6qev1")
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
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="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"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
@ -10,7 +11,7 @@
collision_layer = 4
collision_mask = 2
script = ExtResource("1_gpoff")
LootTable = [ExtResource("2_l5f4t")]
LootTable = [ExtResource("2_l5f4t"), ExtResource("3_2spyx")]
[node name="Sprite2D" type="Sprite2D" parent="."]
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="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"]
[sub_resource type="CircleShape2D" id="CircleShape2D_jtwy2"]
@ -11,7 +11,7 @@
collision_layer = 4
collision_mask = 2
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="."]
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="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://huo14jdekj6n" path="res://Sprites/Bullets/spiderbomb.png" id="3_bdsed"]
[ext_resource type="Texture2D" uid="uid://r2h77ktff10m" path="res://Sprites/Bullets/Snowball.png" id="3_bdsed"]
[sub_resource type="CircleShape2D" id="CircleShape2D_6vv2s"]
@ -26,7 +25,7 @@ animations = [{
collision_layer = 4
collision_mask = 2
script = ExtResource("1_bdsed")
LootTable = Array[ExtResource("2_fyf8h")]([ExtResource("2_bdsed")])
LootTable = [ExtResource("2_bdsed")]
[node name="CollisionShape2D" type="CollisionShape2D" parent="."]
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="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://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="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="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="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://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"]
[sub_resource type="Theme" id="Theme_c7h4d"]
@ -23,15 +25,7 @@ font_size = 12
outline_size = 4
outline_color = Color(0, 0, 0, 1)
[node name="Control" type="Control" 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
[node name="MainMenu" type="CanvasLayer" node_paths=PackedStringArray("SubMenuHolder", "MusicPlayer")]
script = ExtResource("1_702nk")
GameScene = "res://Scenes/Maps/Tutorial.tscn"
MainMenuScene = "res://Scenes/MainMenu.tscn"
@ -39,23 +33,25 @@ SubMenuHolder = NodePath("SubMenuContainer")
MusicPlayer = NodePath("AudioStreamPlayer2D")
MusicRoomTemplate = ExtResource("2_if7li")
DebugMenuTemplate = ExtResource("9_nwlsr")
CreditsMenuTemplate = ExtResource("4_8e205")
OptionsMenuTemplate = ExtResource("5_7467j")
[node name="TextureRect2" type="TextureRect" parent="."]
layout_mode = 0
offset_right = 320.0
offset_bottom = 160.0
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
texture = ExtResource("2_qdx0s")
[node name="TextureRect" type="TextureRect" parent="."]
layout_mode = 0
offset_left = 122.315
offset_top = 16.0
offset_top = 21.375
offset_right = 170.315
offset_bottom = 56.0
offset_bottom = 61.375
texture = ExtResource("2_j4e6a")
[node name="MarginContainer" type="MarginContainer" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -102,7 +98,6 @@ size_flags_horizontal = 3
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/GridContainer/Title"]
layout_mode = 2
size_flags_horizontal = 3
size_flags_vertical = 0
theme_override_constants/separation = -9
[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"]
layout_mode = 2
size_flags_horizontal = 4
texture = ExtResource("2_mpelb")
size_flags_vertical = 10
texture = ExtResource("12_7467j")
stretch_mode = 2
[node name="Options" type="VBoxContainer" parent="MarginContainer/GridContainer"]
@ -155,7 +151,6 @@ MusicData = ExtResource("13_fh7cp")
[node name="SubMenuContainer" type="PanelContainer" parent="."]
visible = false
layout_mode = 0
offset_left = 13.0
offset_top = 23.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/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/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/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="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="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"]
@ -17,7 +18,7 @@
[sub_resource type="Resource" id="Resource_6wo78"]
script = ExtResource("4_bc0u7")
EggIndex = 0
StartingEquipment = []
StartingEquipment = Array[ExtResource("3_cko4a")]([])
[sub_resource type="CircleShape2D" id="CircleShape2D_5xgmc"]
@ -33,11 +34,11 @@ MapStartData = SubResource("Resource_6wo78")
[node name="Tilemaps" type="Node2D" parent="."]
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_set = ExtResource("4_em3f4")
script = ExtResource("5_75e1c")
_solidLayer = NodePath("../Solid")
_solidLayers = [NodePath("../Solid"), NodePath("../Props")]
metadata/_edit_lock_ = true
[node name="Solid" type="TileMapLayer" parent="Tilemaps" groups=["Solid"]]
@ -70,6 +71,7 @@ animation = &"down"
process_mode = 1
script = ExtResource("11_uct4d")
pixel_snap = false
enable_smoothing = false
[node name="ReferenceRect" type="ReferenceRect" parent="."]
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
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
position = Vector2(0, -8)
sprite_frames = SubResource("SpriteFrames_kpm16")
autoplay = "default"
frame_progress = 0.193815
[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

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="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"]
radius = 2.23607
[sub_resource type="AtlasTexture" id="AtlasTexture_lhjit"]
atlas = ExtResource("2_nrcj1")
[sub_resource type="AtlasTexture" id="AtlasTexture_ibnjy"]
atlas = ExtResource("2_lhjit")
region = Rect2(0, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_ibnjy"]
atlas = ExtResource("2_nrcj1")
[sub_resource type="AtlasTexture" id="AtlasTexture_w1jch"]
atlas = ExtResource("2_lhjit")
region = Rect2(16, 0, 16, 16)
[sub_resource type="AtlasTexture" id="AtlasTexture_w1jch"]
atlas = ExtResource("2_nrcj1")
[sub_resource type="AtlasTexture" id="AtlasTexture_o2e4e"]
atlas = ExtResource("2_lhjit")
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 = [{
"frames": [{
"duration": 1.0,
"texture": SubResource("AtlasTexture_lhjit")
}, {
"duration": 1.0,
"texture": SubResource("AtlasTexture_ibnjy")
}, {
"duration": 1.0,
"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,
"name": &"default",
@ -48,10 +71,14 @@ shape = SubResource("CircleShape2D_jxptd")
[node name="VisibleOnScreenNotifier2D" type="VisibleOnScreenNotifier2D" parent="."]
[node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
sprite_frames = SubResource("SpriteFrames_co0jb")
sprite_frames = SubResource("SpriteFrames_f4bqv")
autoplay = "default"
frame = 1
frame_progress = 0.375255
frame = 2
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="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();
}
public void Activate(ActivationType activationType = ActivationType.Toggle)
public bool Activate(ActivationType activationType = ActivationType.Toggle)
{
switch (activationType)
{
@ -36,6 +36,7 @@ public partial class BlackCover : Sprite2D, IActivable
break;
}
UpdateSprite();
return true;
}
private void UpdateSprite()

View file

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

View file

@ -35,14 +35,20 @@ public partial class DialogueStarter : ChainActivable
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));
var dialogicNode = _dialogic.Call("start", _trackName);
((Node)dialogicNode).ProcessMode = ProcessModeEnum.Always;
_gameManager.ChangeState(GameState.Dialogue);
return true;
// Script dialogic = ResourceLoader.Load("res://addons/dialogic/Other/DialogicClass.gd") as Script;
// var dialog = (Node) dialogic.Call("start","timeline");
// 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;
}
public override void Activate(ActivationType activationType = ActivationType.Toggle)
public override bool Activate(ActivationType activationType = ActivationType.Toggle)
{
switch (activationType)
{
@ -90,6 +90,8 @@ public partial class HealthStation : Activable
// Destroys
break;
}
return true;
}
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();
}
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();
return true;
}
private async Task MovePlayer()

View file

@ -1,4 +1,5 @@
using System;
using Cirno.Scripts.Interactables;
using Cirno.Scripts.Resources.Events;
using Godot;
using Godot.Collections;
@ -7,7 +8,7 @@ namespace Cirno.Scripts.Activables;
public partial class ScriptableBase : Node2D, IActivable
{
[Export] public Array<EventResource> Events;
[Export] public Array<EventResource> Events { get; set; } = [];
private EventResource CurrentEvent => Events[_currentEventIndex];
@ -43,7 +44,6 @@ public partial class ScriptableBase : Node2D, IActivable
if (!CurrentEvent.WaitForCompletion || CurrentEvent.IsComplete())
{
// This loops
//_currentEventIndex = (_currentEventIndex + 1) % Events.Count;
_currentEventIndex++;
if (_currentEventIndex >= Events.Count)
{
@ -55,16 +55,17 @@ public partial class ScriptableBase : Node2D, IActivable
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();
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)
{
@ -100,6 +100,8 @@ public partial class Teleporter : Activable
// Destroys
break;
}
return true;
}
public void PrepareForReceiving()

View file

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

View file

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

View file

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