3D bullet rotation

This commit is contained in:
Marco 2025-07-01 13:40:13 +02:00
commit 1a455251a9
43 changed files with 279 additions and 203 deletions

View file

@ -103,7 +103,7 @@
[ext_resource type="Resource" uid="uid://bgcgeg187vg1h" path="res://Resources/Items/IcicleRepeater.tres" id="89_awrmj"]
[ext_resource type="Resource" uid="uid://cj5aa7btaw6q0" path="res://Resources/Items/Blue_Keycard.tres" id="89_dt4t5"]
[ext_resource type="PackedScene" uid="uid://yath5bvxo3cn" path="res://3D/Scenes/Props/Wall_Emitter_3D.tscn" id="93_u76qv"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/simple_enemy_bullet_small_3D.tres" id="94_3vwxl"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/3D/simple_enemy_bullet_small_3D.tres" id="94_3vwxl"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="95_s22g3"]
[ext_resource type="Script" uid="uid://bxiprx5nwmpnu" path="res://Scripts/AttackPatterns/ShootingPattern3D.cs" id="96_qyisa"]
[ext_resource type="Script" uid="uid://w8hcpu68ssq" path="res://Scripts/Resources/BulletScripts/BulletScript3D.cs" id="97_8tkgc"]

View file

@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_hsg1w"]
[ext_resource type="PackedScene" uid="uid://hxn4awevjyui" path="res://3D/BlockbenchModels/Box/Box_Blue.gltf" id="1_ropdl"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_cn5xh"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_cn5xh"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
size = Vector3(0.763428, 0.469452, 0.77832)

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://c5k6rsawax3gf" path="res://3D/BlockbenchModels/Box/Box_Green.gltf" id="1_03sp0"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_e6kl3"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_bguu7"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_bguu7"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
size = Vector3(0.763428, 0.469452, 0.77832)

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://ninnis3a3jbn" path="res://3D/BlockbenchModels/Box/Box_Red.gltf" id="1_fi646"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_kvqx7"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_jolck"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_jolck"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
size = Vector3(0.763428, 0.469452, 0.77832)

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://cpwolnoq46foq" path="res://3D/BlockbenchModels/Box/Box_Yellow.gltf" id="1_0rxnx"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_l0sp5"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_1if0l"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_1if0l"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
size = Vector3(0.763428, 0.469452, 0.77832)

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=6 format=3 uid="uid://b0rhxqjs52fsv"]
[ext_resource type="Script" uid="uid://dg3aho2ulfngs" path="res://Scripts/Actors/3D/SecurityCamera3D.cs" id="1_tkk1t"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_1t1m8"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_1t1m8"]
[ext_resource type="PackedScene" uid="uid://bt5weyaiyhtrl" path="res://3D/BlockbenchModels/Camera/Camera.gltf" id="2_ix4p0"]
[ext_resource type="Script" uid="uid://cmgcelj1qxg8o" path="res://addons/tattomoosa.vision_cone_3d/src/VisionCone3D.gd" id="4_f1teg"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://ddi6ch3tuqqri"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_r46ds"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_yftba"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_yftba"]
[ext_resource type="PackedScene" uid="uid://b4t2ngnfotn0v" path="res://3D/BlockbenchModels/Furniture/Furniture_Can.gltf" id="3_r46ds"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_yftba"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://5oos364p3wex"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_uw6yr"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_mieo6"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_mieo6"]
[ext_resource type="PackedScene" uid="uid://bdegfd1qsmm83" path="res://3D/BlockbenchModels/Furniture/Computer_Tower.gltf" id="3_uw6yr"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://dcv3hwt7p4hgp"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_rnn28"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_1of0j"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_1of0j"]
[ext_resource type="PackedScene" uid="uid://cttslkvuo01s4" path="res://3D/BlockbenchModels/Furniture/Furniture_Shelf.gltf" id="3_3irlk"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://cgxq2tvdxnkil"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_njx1r"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_ispe4"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_ispe4"]
[ext_resource type="PackedScene" uid="uid://bsj5pd4e0q4f8" path="res://3D/BlockbenchModels/Furniture/Furniture_Box.gltf" id="3_njx1r"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://dsppxfki3n30g"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_td6u3"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_4teip"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_4teip"]
[ext_resource type="PackedScene" uid="uid://ca7snn0abf446" path="res://3D/BlockbenchModels/Furniture/Furniture_Triangle.gltf" id="3_td6u3"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=5 format=3 uid="uid://cgy5kmem2hrps"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_3hjfg"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_loy8v"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_loy8v"]
[ext_resource type="PackedScene" uid="uid://c1acf6anldpax" path="res://3D/BlockbenchModels/WallFan/Wall_Fan.gltf" id="3_3hjfg"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]

View file

@ -2,7 +2,7 @@
[ext_resource type="PackedScene" uid="uid://etmm2bm8mj06" path="res://3D/BlockbenchModels/WoodenBox/Wooden_Box.gltf" id="1_2t24b"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_nnmn3"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="2_5j3e2"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="2_5j3e2"]
[sub_resource type="BoxShape3D" id="BoxShape3D_hsg1w"]
size = Vector3(1, 0.498138, 0.543457)

View file

@ -2,7 +2,7 @@
[ext_resource type="Texture2D" uid="uid://du8xcvbnf30o2" path="res://ExternalMaterial/Barrel/Barrels.png" id="1_2libs"]
[ext_resource type="Script" uid="uid://ccxnvbthsvka3" path="res://Scripts/Actors/Destructible3D.cs" id="1_gafco"]
[ext_resource type="Resource" uid="uid://bpreje4f8ok62" path="res://Resources/Bullets/Explosion_3D.tres" id="2_g54tg"]
[ext_resource type="Resource" uid="uid://bpreje4f8ok62" path="res://Resources/Bullets/3D/Explosion_3D.tres" id="2_g54tg"]
[sub_resource type="CylinderShape3D" id="CylinderShape3D_2libs"]
height = 0.564575

View file

@ -20,6 +20,7 @@
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AInput_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003F3e43a674e8a96aa8b4abdf97a31f18732060401d8285a17ee7109827a69cd18b_003FInput_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003F1b81cb3be224213a6a73519b6e340a628d9a1fb8629c351a186a26f6376669_003FList_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANativeCalls_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003F4178b6f96a2e273c05bd023e0a7f4ff5c747b218af487b1ac979f58bafb30d_003FNativeCalls_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode2D_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003F86db9cd834346aad02d74c1b66dd9c64d6ef3147435dd9c9c9477b48f7_003FNode2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode2D_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe37dc1faf08a4d5ea030ad59bdf77522523400_003F49_003F8f2ede17_003FNode2D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode3D_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003F2d4443da87d5a5e36e61a843c597b1f44b520eba9b5866aaf155364eb2710f8_003FNode3D_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANode_002Ecs_002Fl_003AC_0021_003FUsers_003FMaddo_003FAppData_003FLocal_003FJetBrains_003FShared_003FvAny_003FSourcesCache_003Fbb1b701f3c7411227a9d2e09f965d857ff3e771557650c4f513e427d77c_003FNode_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>

View file

@ -0,0 +1,54 @@
[gd_resource type="Resource" script_class="BossPhase" load_steps=9 format=3 uid="uid://cnsmcexyhppdo"]
[ext_resource type="Script" uid="uid://fo8sf11p058s" path="res://Scripts/Resources/BulletScripts/SimpleMovementPattern3D.cs" id="1_yfihc"]
[ext_resource type="Resource" uid="uid://bmdxhsjh2qla6" path="res://Resources/BossPhases/Rumia/Rumia_NS_1_Chase.tres" id="2_nr3fd"]
[ext_resource type="Resource" uid="uid://chcinoo8pkkwq" path="res://Resources/Patterns/Rumia_NS_2_3D.tres" id="3_d7m3h"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="4_okj7o"]
[sub_resource type="Resource" id="Resource_xfnue"]
script = ExtResource("1_yfihc")
relativeTargetPosition = Vector2(-4, 0)
moveDuration = 2.0
RelativeToPlayer = true
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_lrsat"]
script = ExtResource("1_yfihc")
relativeTargetPosition = Vector2(0, 0)
moveDuration = 1.0
RelativeToPlayer = false
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_ovn8y"]
script = ExtResource("1_yfihc")
relativeTargetPosition = Vector2(4, 0)
moveDuration = 2.0
RelativeToPlayer = true
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_mi6hp"]
script = ExtResource("1_yfihc")
relativeTargetPosition = Vector2(0, 0)
moveDuration = 1.0
RelativeToPlayer = false
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[resource]
script = ExtResource("4_okj7o")
PhaseName = ""
Threshold = 100
PlayAnimation = false
Patterns = Array[Object]([SubResource("Resource_xfnue"), ExtResource("2_nr3fd"), ExtResource("3_d7m3h"), SubResource("Resource_lrsat"), ExtResource("2_nr3fd"), ExtResource("3_d7m3h"), SubResource("Resource_ovn8y"), ExtResource("2_nr3fd"), ExtResource("3_d7m3h"), SubResource("Resource_mi6hp"), ExtResource("2_nr3fd"), ExtResource("3_d7m3h")])
metadata/_custom_type_script = "uid://cdd6q2h0t1hhq"

View file

@ -0,0 +1,88 @@
[gd_resource type="Resource" script_class="BossPhase" load_steps=12 format=3 uid="uid://cwrjsponw40pd"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_a65t7"]
[ext_resource type="Resource" uid="uid://cvcpb6u6mo8oo" path="res://Resources/Bullets/3D/rice_bullet_small_blue_3D.tres" id="1_d7vfp"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="2_ali57"]
[ext_resource type="Script" uid="uid://dka43xos84kbw" path="res://Scripts/Resources/Modifiers/DelayedRotationModifier.cs" id="3_gq3ok"]
[ext_resource type="Script" uid="uid://bxiprx5nwmpnu" path="res://Scripts/AttackPatterns/ShootingPattern3D.cs" id="4_38hmx"]
[ext_resource type="Script" uid="uid://cg7gi3tva4gvw" path="res://Scripts/AttackPatterns/WaitPattern.cs" id="5_ali57"]
[sub_resource type="Resource" id="Resource_r87xf"]
script = ExtResource("3_gq3ok")
TimeInSeconds = 1.0
ModifierType = 1
Value = 90.0
Continuous = false
metadata/_custom_type_script = "uid://dka43xos84kbw"
[sub_resource type="Resource" id="Resource_4hlom"]
script = ExtResource("4_38hmx")
BulletResource = ExtResource("1_d7vfp")
EmitterOffset = Vector3(0, 0, 0)
bulletCount = 20
rotationSpeed = 0.0
_rotationOffset = 0.0
duration = 1.0
spread = 360.0
burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = Array[ExtResource("2_ali57")]([SubResource("Resource_r87xf")])
WaitForCompletion = false
metadata/_custom_type_script = "uid://bxiprx5nwmpnu"
[sub_resource type="Resource" id="Resource_d7vfp"]
script = ExtResource("3_gq3ok")
TimeInSeconds = 1.0
ModifierType = 1
Value = -90.0
Continuous = false
metadata/_custom_type_script = "uid://dka43xos84kbw"
[sub_resource type="Resource" id="Resource_ali57"]
script = ExtResource("4_38hmx")
BulletResource = ExtResource("1_d7vfp")
EmitterOffset = Vector3(0, 0, 0)
bulletCount = 20
rotationSpeed = 0.0
_rotationOffset = 0.0
duration = 1.0
spread = 360.0
burstInterval = 2.0
ShotsPerBurst = 100
BurstRate = 0.0
_targetPlayer = false
_predictPlayer = false
OverrideOwner = false
Owner = 0
OverrideDamageType = false
DamageType = 0
OverrideControllable = false
Controllable = false
OverrideCreationModifier = false
TimeModifiers = Array[ExtResource("2_ali57")]([SubResource("Resource_d7vfp")])
WaitForCompletion = false
metadata/_custom_type_script = "uid://bxiprx5nwmpnu"
[sub_resource type="Resource" id="Resource_gq3ok"]
script = ExtResource("5_ali57")
SecondsToWait = 2.0
WaitForCompletion = true
metadata/_custom_type_script = "uid://cg7gi3tva4gvw"
[resource]
script = ExtResource("1_a65t7")
PhaseName = "Darkness Sign \"Demarcation\""
Threshold = 50
PlayAnimation = false
Patterns = [SubResource("Resource_4hlom"), SubResource("Resource_ali57"), SubResource("Resource_gq3ok")]
metadata/_custom_type_script = "uid://cdd6q2h0t1hhq"

View file

@ -1,61 +1,13 @@
[gd_resource type="Resource" script_class="BossScript" load_steps=11 format=3 uid="uid://1u4y6hvc318e"]
[gd_resource type="Resource" script_class="BossScript" load_steps=6 format=3 uid="uid://1u4y6hvc318e"]
[ext_resource type="Script" uid="uid://cdd6q2h0t1hhq" path="res://Scripts/Resources/BossPhase.cs" id="1_k3wbt"]
[ext_resource type="Script" uid="uid://fo8sf11p058s" path="res://Scripts/Resources/BulletScripts/SimpleMovementPattern3D.cs" id="2_mi6hp"]
[ext_resource type="Resource" uid="uid://cnsmcexyhppdo" path="res://Resources/BossPhases/Rumia/Rumia_NS1_3D.tres" id="2_ovn8y"]
[ext_resource type="Script" uid="uid://inasa76li3ym" path="res://Scripts/Resources/ScriptableBullets/BossScript.cs" id="2_t8f0y"]
[ext_resource type="Resource" uid="uid://bmdxhsjh2qla6" path="res://Resources/BossPhases/Rumia/Rumia_NS_1_Chase.tres" id="3_ovn8y"]
[ext_resource type="Resource" uid="uid://chcinoo8pkkwq" path="res://Resources/Patterns/Rumia_NS_2_3D.tres" id="5_mi6hp"]
[sub_resource type="Resource" id="Resource_xfnue"]
script = ExtResource("2_mi6hp")
relativeTargetPosition = Vector2(-4, 0)
moveDuration = 2.0
RelativeToPlayer = true
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_lrsat"]
script = ExtResource("2_mi6hp")
relativeTargetPosition = Vector2(0, 0)
moveDuration = 1.0
RelativeToPlayer = false
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_ovn8y"]
script = ExtResource("2_mi6hp")
relativeTargetPosition = Vector2(4, 0)
moveDuration = 2.0
RelativeToPlayer = true
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_mi6hp"]
script = ExtResource("2_mi6hp")
relativeTargetPosition = Vector2(0, 0)
moveDuration = 1.0
RelativeToPlayer = false
transitionType = 0
easeType = 2
WaitForCompletion = false
metadata/_custom_type_script = "uid://fo8sf11p058s"
[sub_resource type="Resource" id="Resource_l0s11"]
script = ExtResource("1_k3wbt")
PhaseName = ""
Threshold = 0
PlayAnimation = false
Patterns = Array[Object]([SubResource("Resource_xfnue"), ExtResource("3_ovn8y"), ExtResource("5_mi6hp"), SubResource("Resource_lrsat"), ExtResource("3_ovn8y"), ExtResource("5_mi6hp"), SubResource("Resource_ovn8y"), ExtResource("3_ovn8y"), ExtResource("5_mi6hp"), SubResource("Resource_mi6hp"), ExtResource("3_ovn8y"), ExtResource("5_mi6hp")])
metadata/_custom_type_script = "uid://cdd6q2h0t1hhq"
[ext_resource type="Resource" uid="uid://cwrjsponw40pd" path="res://Resources/BossPhases/Rumia/Rumia_SP1_3D.tres" id="3_mi6hp"]
[ext_resource type="Resource" uid="uid://ddb5dqocmk6x7" path="res://Resources/BossPhases/Rumia_NS2.tres" id="4_xfnue"]
[resource]
script = ExtResource("2_t8f0y")
BossName = &"Rumia"
Phases = Array[ExtResource("1_k3wbt")]([SubResource("Resource_l0s11")])
Phases = Array[ExtResource("1_k3wbt")]([ExtResource("3_mi6hp"), ExtResource("2_ovn8y"), ExtResource("4_xfnue")])
metadata/_custom_type_script = "uid://inasa76li3ym"

View file

@ -23,21 +23,17 @@ Continuous = false
[sub_resource type="Resource" id="Resource_jtuih"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("1_as8n2")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
Attributes = 34
TimeModifiers = Array[Object]([SubResource("Resource_cj86d")])
[sub_resource type="Resource" id="Resource_puvpt"]
@ -74,19 +70,15 @@ Continuous = false
[sub_resource type="Resource" id="Resource_axlrq"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("1_as8n2")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_pbgtt")])
@ -118,19 +110,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_w7b0n"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("4_tek7n")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_cj86d")])
@ -162,19 +150,15 @@ WaitForCompletion = false
[sub_resource type="Resource" id="Resource_3iv0j"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("4_tek7n")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_pbgtt")])
@ -206,19 +190,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_5jr31"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("5_n4xqo")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_cj86d")])
@ -250,19 +230,15 @@ WaitForCompletion = false
[sub_resource type="Resource" id="Resource_mg2qy"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("5_n4xqo")
BulletSize = 0.0
BulletSpeed = 20.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_pbgtt")])
@ -316,19 +292,15 @@ Continuous = false
[sub_resource type="Resource" id="Resource_gfhkm"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("7_gsnyb")
BulletSize = 0.0
BulletSpeed = 80.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = true
Owner = 0
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_ln27r"), SubResource("Resource_nal31")])
@ -368,19 +340,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_4r74g"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("7_gsnyb")
BulletSize = 0.0
BulletSpeed = 80.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_ln27r"), SubResource("Resource_nal31")])
@ -420,19 +388,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_vgg5n"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("7_gsnyb")
BulletSize = 0.0
BulletSpeed = 80.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_ln27r"), SubResource("Resource_nal31")])
@ -472,19 +436,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_wlhxp"]
script = ExtResource("3_ow5fu")
BulletScene = ExtResource("7_gsnyb")
BulletSize = 0.0
BulletSpeed = 80.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = true
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = Array[Object]([SubResource("Resource_ln27r"), SubResource("Resource_nal31")])

View file

@ -38,19 +38,15 @@ ScalingFactor = 10.0
[sub_resource type="Resource" id="Resource_2o6nd"]
script = ExtResource("4_juoir")
BulletScene = ExtResource("1_o4um1")
BulletSize = 0.0
BulletSpeed = 100.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
Modifier = SubResource("Resource_80ngy")
@ -91,19 +87,15 @@ ScalingFactor = 10.0
[sub_resource type="Resource" id="Resource_j7r4h"]
script = ExtResource("4_juoir")
BulletScene = ExtResource("4_ruawj")
BulletSize = 0.0
BulletSpeed = 100.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
Modifier = SubResource("Resource_e6jj0")

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="BulletScript3D" load_steps=6 format=3 uid="uid://bbogxl60hvdp1"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/simple_enemy_bullet_3D.tres" id="1_bjips"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/3D/simple_enemy_bullet_3D.tres" id="1_bjips"]
[ext_resource type="Script" uid="uid://b5s5mjuk1rng5" path="res://Scripts/Resources/TimeModifier.cs" id="2_yjtbi"]
[ext_resource type="Script" uid="uid://bxiprx5nwmpnu" path="res://Scripts/AttackPatterns/ShootingPattern3D.cs" id="3_2rxa2"]
[ext_resource type="Script" uid="uid://w8hcpu68ssq" path="res://Scripts/Resources/BulletScripts/BulletScript3D.cs" id="4_mksdg"]

View file

@ -1,24 +1,22 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=3 format=3 uid="uid://csmq6hngkx41e"]
[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://csmq6hngkx41e"]
[ext_resource type="PackedScene" uid="uid://byc67yxbkefyk" path="res://Scenes/Weapons/bullet_3D.tscn" id="1_qojek"]
[ext_resource type="Texture2D" uid="uid://cybpmpb0d8yva" path="res://Sprites/Projectile.png" id="2_663pf"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_xep6w"]
[resource]
script = ExtResource("3_xep6w")
BulletScene = ExtResource("1_qojek")
BulletSprite = ExtResource("2_663pf")
BulletSize = 0.08
BulletSpeed = 10.0
Direction = Vector2(1, 0)
BulletDamage = 0.5
MaxDamage = 1.2
Knockback = 100.0
LifeTime = 10.0
DestroyOnCollision = true
Owner = 1
DamageType = 3
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = false
GrazeValue = 0.2
Attributes = 256
TimeModifiers = []

View file

@ -0,0 +1,23 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://cvcpb6u6mo8oo"]
[ext_resource type="PackedScene" uid="uid://d28e1t2c0lwbp" path="res://Scenes/Weapons/base_enemy_bullet_3D.tscn" id="1_8m7mi"]
[ext_resource type="Texture2D" uid="uid://wdw60fumilgh" path="res://Sprites/Bullets/rice_bullet_blue_small.png" id="2_p44mg"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="3_56owm"]
[resource]
script = ExtResource("3_56owm")
BulletScene = ExtResource("1_8m7mi")
BulletSprite = ExtResource("2_p44mg")
BulletSize = 0.08
BulletSpeed = 2.5
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
Owner = 2
DamageType = 0
GrazeValue = 0.2
Attributes = 98
TimeModifiers = null
metadata/_custom_type_script = "uid://dslyrfcej3g2n"

View file

@ -1,24 +1,22 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=3 format=3 uid="uid://wbdspte0ch33"]
[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://wbdspte0ch33"]
[ext_resource type="PackedScene" uid="uid://d28e1t2c0lwbp" path="res://Scenes/Weapons/base_enemy_bullet_3D.tscn" id="1_l7ter"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="2_5nrie"]
[ext_resource type="Texture2D" uid="uid://cfldr7l7dearo" path="res://Sprites/Bullets/mid_bullet_red.png" id="2_eh6d2"]
[resource]
script = ExtResource("2_5nrie")
BulletScene = ExtResource("1_l7ter")
BulletSprite = ExtResource("2_eh6d2")
BulletSize = 0.161
BulletSpeed = 3.0
Direction = Vector2(1, 0)
BulletDamage = 12.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 10.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 290
TimeModifiers = []

View file

@ -1,24 +1,22 @@
[gd_resource type="Resource" script_class="BulletResource" load_steps=3 format=3 uid="uid://qrqsywgiij7i"]
[gd_resource type="Resource" script_class="BulletResource" load_steps=4 format=3 uid="uid://qrqsywgiij7i"]
[ext_resource type="PackedScene" uid="uid://c133312rx63ps" path="res://Scenes/Weapons/base_enemy_bullet_3D_small.tscn" id="1_pm333"]
[ext_resource type="Script" uid="uid://dslyrfcej3g2n" path="res://Scripts/Resources/BulletResource.cs" id="2_4bl80"]
[ext_resource type="Texture2D" uid="uid://bdyd0bht18n47" path="res://Sprites/EnemyProjectile.png" id="2_e1tuw"]
[resource]
script = ExtResource("2_4bl80")
BulletScene = ExtResource("1_pm333")
BulletSprite = ExtResource("2_e1tuw")
BulletSize = 0.08
BulletSpeed = 2.5
Direction = Vector2(1, 0)
BulletDamage = 8.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 10.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 290
TimeModifiers = []

View file

@ -19,19 +19,15 @@ Continuous = false
[resource]
script = ExtResource("3_871qc")
BulletScene = ExtResource("1_y6dig")
BulletSize = 0.0
BulletSpeed = 70.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = true
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 0.2
Attributes = 34
Modifier = SubResource("Resource_jeq72")

View file

@ -51,7 +51,7 @@ script = ExtResource("10_wrko3")
EnemyName = &"Rumia"
EnemyKey = &"RUMIA"
PrefabPath = &"uid://cboj3aamnco2r"
MaxHealth = 900.0
MaxHealth = 500.0
MovementSpeed = 2.0
Weapon = ExtResource("9_80fxw")
LootDrops = Array[ExtResource("3_lo74v")]([SubResource("Resource_c8nix"), SubResource("Resource_gs2l3"), SubResource("Resource_sqnvg"), SubResource("Resource_5tyar"), SubResource("Resource_48xq6")])

View file

@ -10,19 +10,15 @@
[sub_resource type="Resource" id="Resource_uv53h"]
script = ExtResource("2_gfvud")
BulletScene = ExtResource("1_4xpdn")
BulletSize = 0.0
BulletSpeed = 40.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = []
@ -54,19 +50,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_wtj61"]
script = ExtResource("2_gfvud")
BulletScene = ExtResource("3_gr7a3")
BulletSize = 0.0
BulletSpeed = 50.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = []
@ -98,19 +90,15 @@ WaitForCompletion = true
[sub_resource type="Resource" id="Resource_qbq0m"]
script = ExtResource("2_gfvud")
BulletScene = ExtResource("1_4xpdn")
BulletSize = 0.0
BulletSpeed = 50.0
Direction = Vector2(1, 0)
BulletDamage = 20.0
MaxDamage = 1.0
Knockback = 1.0
LifeTime = 20.0
DestroyOnCollision = false
Owner = 2
DamageType = 0
RotateSprite = false
Controllable = false
Freezable = true
Grazeable = true
GrazeValue = 1.0
Attributes = 0
TimeModifiers = []

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://dtrmtjd7j03k8"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/simple_enemy_bullet_small_3D.tres" id="1_l2h7p"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/3D/simple_enemy_bullet_small_3D.tres" id="1_l2h7p"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_0kc7l"]
[resource]

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://c6ywv08e6is5o"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/simple_enemy_bullet_3D.tres" id="1_itg3a"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/3D/simple_enemy_bullet_3D.tres" id="1_itg3a"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_6m4qy"]
[resource]

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=3 format=3 uid="uid://co6x2jq0fslql"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/simple_enemy_bullet_small_3D.tres" id="1_mw07s"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/3D/simple_enemy_bullet_small_3D.tres" id="1_mw07s"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="2_gpx82"]
[resource]

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=5 format=3 uid="uid://bsdi1iudx5431"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/icicle_gun_bullets_3D.tres" id="1_ublmp"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/3D/icicle_gun_bullets_3D.tres" id="1_ublmp"]
[ext_resource type="AudioStream" uid="uid://jsv3yjluv1au" path="res://SFX/Weapons/Reload_01.wav" id="2_vgotw"]
[ext_resource type="AudioStream" uid="uid://oyjbk3qjp5cr" path="res://SFX/Chiptone_Source/Shotgun.wav" id="3_uxcop"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="4_u3gqe"]

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=5 format=3 uid="uid://bohkmf6g1fi2o"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/icicle_gun_bullets_3D.tres" id="1_d2kl0"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/3D/icicle_gun_bullets_3D.tres" id="1_d2kl0"]
[ext_resource type="AudioStream" uid="uid://jsv3yjluv1au" path="res://SFX/Weapons/Reload_01.wav" id="2_sdmjb"]
[ext_resource type="AudioStream" uid="uid://d16xfhll0fujt" path="res://SFX/Ice_Shot.wav" id="3_hj8fq"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="4_ld57e"]

View file

@ -1,6 +1,6 @@
[gd_resource type="Resource" script_class="WeaponResource" load_steps=5 format=3 uid="uid://dhi6ml0xhkka5"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/icicle_gun_bullets_3D.tres" id="1_nxdsa"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/3D/icicle_gun_bullets_3D.tres" id="1_nxdsa"]
[ext_resource type="AudioStream" uid="uid://jsv3yjluv1au" path="res://SFX/Weapons/Reload_01.wav" id="2_grfjv"]
[ext_resource type="AudioStream" uid="uid://cjg8r7bthkfsy" path="res://SFX/Laser_shoot 11.wav" id="3_agxp1"]
[ext_resource type="Script" uid="uid://b6fmrnipv88bk" path="res://Scripts/Resources/WeaponResource.cs" id="4_hppsh"]

View file

@ -77,10 +77,11 @@ shape = SubResource("CapsuleShape3D_jgarc")
[node name="StateMachine" type="Node" parent="."]
script = ExtResource("3_nghfy")
[node name="Init" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "DetectionProvider", "_moduleNodes")]
[node name="Init" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "DetectionProvider", "HealthProvider", "_moduleNodes")]
script = ExtResource("4_ypm0v")
Storage = NodePath("../../Storage")
DetectionProvider = NodePath("../../PlayerDetectionProvider")
HealthProvider = NodePath("../../DamageReceiver/HealthProvider")
_moduleNodes = [NodePath("../../AnimationModule")]
[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "GravityProvider", "_moduleNodes")]

View file

@ -75,10 +75,11 @@ shape = SubResource("CapsuleShape3D_jgarc")
[node name="StateMachine" type="Node" parent="."]
script = ExtResource("2_xne4s")
[node name="Init" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "DetectionProvider", "_moduleNodes")]
[node name="Init" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "DetectionProvider", "HealthProvider", "_moduleNodes")]
script = ExtResource("4_jgarc")
Storage = NodePath("../../Storage")
DetectionProvider = NodePath("../../PlayerDetectionProvider")
HealthProvider = NodePath("../../DamageReceiver/HealthProvider")
_moduleNodes = [NodePath("../../AnimationModule")]
[node name="Idle" type="Node" parent="StateMachine" node_paths=PackedStringArray("Storage", "PlayerDetection", "GravityProvider", "_moduleNodes")]

View file

@ -1,13 +1,13 @@
[gd_scene load_steps=15 format=3 uid="uid://c3t8rhwwdo5cl"]
[ext_resource type="Script" uid="uid://k1pdoan4wie2" path="res://Scripts/Controllers/PoolingManager.cs" id="1_ji88p"]
[ext_resource type="Resource" uid="uid://bpreje4f8ok62" path="res://Resources/Bullets/Explosion_3D.tres" id="2_jldm7"]
[ext_resource type="Resource" uid="uid://bpreje4f8ok62" path="res://Resources/Bullets/3D/Explosion_3D.tres" id="2_jldm7"]
[ext_resource type="Script" uid="uid://e3jqtie5u2wp" path="res://Scripts/Controllers/PooledBulletInfo.cs" id="3_45ubr"]
[ext_resource type="Resource" uid="uid://c22xvpyn5nxof" path="res://Resources/Bullets/Explosion_Harmless_3D.tres" id="4_30kdg"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/icicle_gun_bullets_3D.tres" id="5_eqibw"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/simple_enemy_bullet_3D.tres" id="6_32utd"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/Explosion_Harmless_Small_3D.tres" id="7_k5vio"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/simple_enemy_bullet_small_3D.tres" id="8_ck0dn"]
[ext_resource type="Resource" uid="uid://c22xvpyn5nxof" path="res://Resources/Bullets/3D/Explosion_Harmless_3D.tres" id="4_30kdg"]
[ext_resource type="Resource" uid="uid://csmq6hngkx41e" path="res://Resources/Bullets/3D/icicle_gun_bullets_3D.tres" id="5_eqibw"]
[ext_resource type="Resource" uid="uid://wbdspte0ch33" path="res://Resources/Bullets/3D/simple_enemy_bullet_3D.tres" id="6_32utd"]
[ext_resource type="Resource" uid="uid://bes254wblt1lm" path="res://Resources/Bullets/3D/Explosion_Harmless_Small_3D.tres" id="7_k5vio"]
[ext_resource type="Resource" uid="uid://qrqsywgiij7i" path="res://Resources/Bullets/3D/simple_enemy_bullet_small_3D.tres" id="8_ck0dn"]
[sub_resource type="Resource" id="Resource_fco51"]
script = ExtResource("3_45ubr")

View file

@ -1,4 +1,5 @@
using Cirno.Scripts.Enums;
using Cirno.Scripts.Components.Actors;
using Cirno.Scripts.Enums;
using Godot;
namespace Cirno.Scripts.Components.FSM.Enemy._3D;
@ -10,6 +11,8 @@ public partial class Init : EnemyStateBase3D
[Export] public PlayerDetection3D DetectionProvider { get; private set; }
[Export] public ActorResourceProvider HealthProvider { get; private set; }
public override void EnterState()
{
//DamageReceiver.HealthProvider.MaxResource = StorageModule.Root.EnemyResource.MaxHealth;
@ -19,6 +22,10 @@ public partial class Init : EnemyStateBase3D
Storage.HomePosition = MainObject.GlobalPosition;
// TODO: Hide wings
// TODO: Hide aiming reticule
HealthProvider.MaxResource = Storage.Root.EnemyResource.MaxHealth;
HealthProvider.FillResource();
StateMachine.SetState(EnemyState.Idle);
}

View file

@ -1,6 +1,7 @@
using System.Collections.Generic;
using System.Linq;
using Cirno.Scripts.Components;
using Cirno.Scripts.Utils;
using Godot;
using Godot.Collections;
@ -12,6 +13,8 @@ public partial class BulletResource : Resource
{
[Export]
public PackedScene BulletScene { get; set; }
[Export] public Texture2D BulletSprite { get; set; }
[Export] public float BulletSize { get; set; }
[Export] public PackedScene DestructionParticlesScene { get; set; }
[Export] public float BulletSpeed = 100f;
[Export] public Vector2 Direction = Vector2.Right;
@ -19,13 +22,8 @@ public partial class BulletResource : Resource
[Export] public float MaxDamage = 1;
[Export] public float Knockback = 1;
[Export] public float LifeTime = 10f;
[Export] public bool DestroyOnCollision = true;
[Export] public BulletOwner Owner = BulletOwner.None;
[Export] public DamageType DamageType = DamageType.Neutral;
[Export] public bool RotateSprite = false;
[Export] public bool Controllable = false;
[Export] public bool Freezable { get; set; } = true;
[Export] public bool Grazeable { get; set; } = true;
[Export] public float GrazeValue { get; set; } = 0.2f;
[Export] public BulletFlags Attributes { get; set; }
@ -51,13 +49,13 @@ public partial class BulletResource : Resource
RotationOffset = rotationOffset,
Modifier = Modifier,
LifeTime = LifeTime,
DestroyOnCollision = DestroyOnCollision,
DestroyOnCollision = Attributes.HasNoFlags(BulletFlags.Piercing),
DestructionParticlesScene = DestructionParticlesScene,
RotateSprite = RotateSprite,
Controllabe = Controllable,
Freezable = Freezable,
RotateSprite = Attributes.HasFlag(BulletFlags.Rotateable),
Controllabe = Attributes.HasFlag(BulletFlags.Controllable),
Freezable = Attributes.HasFlag(BulletFlags.Freezable),
TimeModifiers = TimeModifiers.Select(x => x).ToList(),
Grazeable = Grazeable,
Grazeable = Attributes.HasFlag(BulletFlags.Grazeable),
GrazeValue = GrazeValue,
Attributes = Attributes,
// TimeModifiers = TimeModifiers?.Where(mod => mod is TimeModifier).Cast<TimeModifier>().Select(m => new ModifierWrapper()

View file

@ -45,23 +45,45 @@ public partial class Bullet3D : Area3D, IBullet
private CollisionShape3D _collisionShape;
private Sprite3D _sprite;
private readonly Vector3 _defaultRotation = new(
Mathf.DegToRad(-45f),
Mathf.DegToRad(45f),
0f
);
public override void _Ready()
{
_grazeSound = GetNodeOrNull<AudioStreamPlayer3D>("AudioStreamPlayer");
_grazeParticles = GetNodeOrNull<GpuParticles3D>("GrazeParticles");
_collisionShape = GetNode<CollisionShape3D>("CollisionShape");
_sprite = GetNodeOrNull<Sprite3D>("Sprite");
}
public void Initialize(BulletInfo bulletInfo)
{
_bulletInfo = bulletInfo;
_elapsedTime = 0f;
this.Speed = bulletInfo.Speed;
_sprite?.SetRotation(_defaultRotation);
SpriteRotation = 0f;
if (_sprite is not null && bulletInfo.OriginalBulletResource.BulletSprite is not null)
{
_sprite.Texture = _bulletInfo.OriginalBulletResource.BulletSprite;
}
if (_collisionShape.Shape is SphereShape3D sphere && bulletInfo.OriginalBulletResource.BulletSize > 0)
{
sphere.Radius = bulletInfo.OriginalBulletResource.BulletSize;
}
// Need to clone them here
// _modifiers = _bulletInfo.TimeModifiers.Select(x => x.MakeClone()).ToList();
@ -151,7 +173,7 @@ public partial class Bullet3D : Area3D, IBullet
_direction = _direction.Rotated(radians).Normalized(); // Rotate direction
if (!BulletInfo.Attributes.HasFlag(BulletFlags.Rotateable)) return;
RotateSprite(SpriteRotation + radians);
RotateSprite(SpriteRotation + radians + Mathf.DegToRad(45));
//SetRotation(Rotation + radians);
}
@ -169,15 +191,14 @@ public partial class Bullet3D : Area3D, IBullet
if (!BulletInfo.Attributes.HasFlag(BulletFlags.Rotateable)) return;
SpriteRotation += radians;
Vector3 axis = Basis.FromEuler(new Vector3(
Mathf.DegToRad(-45f),
Mathf.DegToRad(45f),
0f
)).Z;
Rotate(axis, radians);
var axis = Basis.FromEuler(_defaultRotation).Z;
_sprite?.Rotate(axis, radians);
//_sprite.SetRotation(new Vector3());
//Rotate(axis, radians);
//_sprite?.Rotate(Vector3.Forward, radians);
//_sprite?.RotateZ(radians);
//SetRotation(Rotation + radians);
}
public void FacePlayer()