diff --git a/Zennysoft.Game.Ma/src/audio/amb/amb_ocean.ogg.import b/Zennysoft.Game.Ma/src/audio/amb/amb_ocean.ogg.import index d7688e59..98d30e18 100644 --- a/Zennysoft.Game.Ma/src/audio/amb/amb_ocean.ogg.import +++ b/Zennysoft.Game.Ma/src/audio/amb/amb_ocean.ogg.import @@ -3,12 +3,12 @@ importer="oggvorbisstr" type="AudioStreamOggVorbis" uid="uid://cgk17d8erskht" -path="res://.godot/imported/amb_ocean.ogg-f4ee3d30caf9194f7881a02c6507d38a.oggvorbisstr" +path="res://.godot/imported/amb_ocean.ogg-01a11020be2db82b0e22d1423cb26aa3.oggvorbisstr" [deps] -source_file="res://src/audio/AMB/amb_ocean.ogg" -dest_files=["res://.godot/imported/amb_ocean.ogg-f4ee3d30caf9194f7881a02c6507d38a.oggvorbisstr"] +source_file="res://src/audio/amb/amb_ocean.ogg" +dest_files=["res://.godot/imported/amb_ocean.ogg-01a11020be2db82b0e22d1423cb26aa3.oggvorbisstr"] [params] diff --git a/Zennysoft.Game.Ma/src/items/weapons/textures/PALM OF HEAVEN.PNG.import b/Zennysoft.Game.Ma/src/items/weapons/textures/PALM OF HEAVEN.PNG.import index f47030e9..f0e8993d 100644 --- a/Zennysoft.Game.Ma/src/items/weapons/textures/PALM OF HEAVEN.PNG.import +++ b/Zennysoft.Game.Ma/src/items/weapons/textures/PALM OF HEAVEN.PNG.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://bl4xempufmgr5" -path.bptc="res://.godot/imported/palm of heaven.png-8afcb54f797720ff29f3c00c68c0f579.bptc.ctex" +path.bptc="res://.godot/imported/PALM OF HEAVEN.PNG-35554a412a9c4bc09647efa86e6b581e.bptc.ctex" metadata={ "imported_formats": ["s3tc_bptc"], "vram_texture": true @@ -11,8 +11,8 @@ metadata={ [deps] -source_file="res://src/items/weapons/textures/palm of heaven.png" -dest_files=["res://.godot/imported/palm of heaven.png-8afcb54f797720ff29f3c00c68c0f579.bptc.ctex"] +source_file="res://src/items/weapons/textures/PALM OF HEAVEN.PNG" +dest_files=["res://.godot/imported/PALM OF HEAVEN.PNG-35554a412a9c4bc09647efa86e6b581e.bptc.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import index 32e69d62..495df45d 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cp0er3xxxjkr5" -path="res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex" +path="res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_222STONE.png" -dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_222STONE.png-992459ef9849c39922a9b9e0c7774a4a.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_222STONE.png" +dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_222STONE.png-139f243ac630853348798dfe584da1e0.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import index 6b7d90a6..21e6e0d9 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://5r16swvuqjjg" -path="res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex" +path="res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_AREA_2_MAIN_STONE.png" -dest_files=["res://.godot/imported/A2-Puer_AREA_2_MAIN_STONE.png-2267bd7e464cdc2e03c8954de01941bf.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_AREA_2_MAIN_STONE.png" +dest_files=["res://.godot/imported/a2-puer_AREA_2_MAIN_STONE.png-986249227e569ea1e40b4825b7f05c47.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import index e762e21b..04bb9e3d 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cvnpxln2mmtkp" -path="res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex" +path="res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_COLUMN_WHITE.png" -dest_files=["res://.godot/imported/A2-Puer_COLUMN_WHITE.png-18037c22b966bb159d05cb7acac1bc53.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_COLUMN_WHITE.png" +dest_files=["res://.godot/imported/a2-puer_COLUMN_WHITE.png-0b80d510851319464b2ef729d8868892.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import index 9e3842f7..180e2856 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://tjtjbktl51kd" -path="res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex" +path="res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_GREENBIT.png" -dest_files=["res://.godot/imported/A2-Puer_GREENBIT.png-40a9ca6a0efc569a5f329f19b3c3e572.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_GREENBIT.png" +dest_files=["res://.godot/imported/a2-puer_GREENBIT.png-e1ed395f917a2fe57ed6288185af0729.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import index 9338c9fc..3ebf2724 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://dqfdyguq83bhs" -path="res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex" +path="res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_14.png" -dest_files=["res://.godot/imported/A2-Puer_M13_14.png-e781478f15895763a566a64ff37db311.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_14.png" +dest_files=["res://.godot/imported/a2-puer_M13_14.png-ed8b29b0af1c2b973bfaee62e57cab14.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import index 80697846..4508979c 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://dorqwrqy03rim" -path="res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex" +path="res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_M13_49.png" -dest_files=["res://.godot/imported/A2-Puer_M13_49.png-44faadb5ae300e9ecea145cfe1949536.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_M13_49.png" +dest_files=["res://.godot/imported/a2-puer_M13_49.png-86429b5a3cd80a9159f32ded99a631bc.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import index 1d382c04..db04979b 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://nl3bwenfa8fi" -path="res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex" +path="res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_RUBBLE_1.png" -dest_files=["res://.godot/imported/A2-Puer_RUBBLE_1.png-72d7ff861d1df58d800502546da8d607.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_RUBBLE_1.png" +dest_files=["res://.godot/imported/a2-puer_RUBBLE_1.png-c7185e2aad2613007d1951f1515ef882.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import index 09c9a2ea..f0fbaffe 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://0p6suo7fpxum" -path="res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex" +path="res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_STUCCO_DECAL_BIG.png" -dest_files=["res://.godot/imported/A2-Puer_STUCCO_DECAL_BIG.png-015d9f8dd06372231a1f422979d3604e.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_STUCCO_DECAL_BIG.png" +dest_files=["res://.godot/imported/a2-puer_STUCCO_DECAL_BIG.png-882b477f490f6ddbf5bffb3a6f8904e1.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import index 24318b1e..19980632 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://ct3mkni0v0y3g" -path="res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex" +path="res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_Tile 4.png" -dest_files=["res://.godot/imported/A2-Puer_Tile 4.png-0cfd085ec5fcea35eb2d1373e4717f77.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_Tile 4.png" +dest_files=["res://.godot/imported/a2-puer_Tile 4.png-9d089a32db3fc38a0c5dee6cdb6d3495.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import index a2a510b2..64b96d31 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://b40fbcriycpp5" -path="res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex" +path="res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_imag2esnormal.jpg" -dest_files=["res://.godot/imported/A2-Puer_imag2esnormal.jpg-be023c8af9ff59eedfb3ede232c75195.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_imag2esnormal.jpg" +dest_files=["res://.godot/imported/a2-puer_imag2esnormal.jpg-d6e063b2785344af34fa3bb45d47aa2f.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import index 98a06282..b8a78e4a 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://b25r6gysyhu3e" -path="res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex" +path="res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_inner_rock2.png" -dest_files=["res://.godot/imported/A2-Puer_inner_rock2.png-7c99975de214e5dddd3507f87212b910.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_inner_rock2.png" +dest_files=["res://.godot/imported/a2-puer_inner_rock2.png-943622742770f7b55d1e40645d07d057.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import index 652b4507..c74c8b3f 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://cw4hq3kofjowa" -path="res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex" +path="res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_lime_hand_relief.png" -dest_files=["res://.godot/imported/A2-Puer_lime_hand_relief.png-825857ea33249fe0361c829ba37bbfdb.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_lime_hand_relief.png" +dest_files=["res://.godot/imported/a2-puer_lime_hand_relief.png-85b73e808337e8b8841453cbda0e78cd.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import index daa0c845..225a80ba 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://bqrsde28o867s" -path="res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex" +path="res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_mother_GREEN.png" -dest_files=["res://.godot/imported/A2-Puer_mother_GREEN.png-ba1f3d21981ed19fc5cc87868e04808c.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_mother_GREEN.png" +dest_files=["res://.godot/imported/a2-puer_mother_GREEN.png-7bb7d8dd57027953ba1e08ed0c256c8b.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import index 54793d5e..d34c6994 100644 --- a/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import +++ b/Zennysoft.Game.Ma/src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png.import @@ -3,7 +3,7 @@ importer="texture" type="CompressedTexture2D" uid="uid://4aq3a26dliyg" -path="res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex" +path="res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex" metadata={ "vram_texture": false } @@ -13,8 +13,8 @@ generator_parameters={ [deps] -source_file="res://src/map/dungeon/models/Area 2/Puer/A2-Puer_swirled_column _AREA222.png" -dest_files=["res://.godot/imported/A2-Puer_swirled_column _AREA222.png-4842b180cffdbc0274ecb9cbbbbc8221.ctex"] +source_file="res://src/map/dungeon/models/Area 2/Puer/a2-puer_swirled_column _AREA222.png" +dest_files=["res://.godot/imported/a2-puer_swirled_column _AREA222.png-6f90c188eae5b7e81110f39984d5d43f.ctex"] [params] diff --git a/Zennysoft.Game.Ma/src/player/Player.cs b/Zennysoft.Game.Ma/src/player/Player.cs index b1a73789..23e7d732 100644 --- a/Zennysoft.Game.Ma/src/player/Player.cs +++ b/Zennysoft.Game.Ma/src/player/Player.cs @@ -141,115 +141,115 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide public void Initialize() { - var container = new SimpleInjector.Container(); - container.Register(Lifestyle.Singleton); + var container = new SimpleInjector.Container(); + container.Register(Lifestyle.Singleton); - PlayerLogic = container.GetInstance(); - PlayerLogic.Set(this as IPlayer); - PlayerLogic.Set(Settings); + PlayerLogic = container.GetInstance(); + PlayerLogic.Set(this as IPlayer); + PlayerLogic.Set(Settings); - Inventory = new Inventory(); - Inventory.InventoryChanged += Inventory_InventoryChanged; - HealthComponent = new HealthComponent(InitialHP); - VTComponent = new VTComponent(InitialVT); - AttackComponent = new AttackComponent(InitialAttack); - DefenseComponent = new DefenseComponent(InitialDefense); - ExperiencePointsComponent = new ExperiencePointsComponent(); - LuckComponent = new LuckComponent(InitialLuck); - EquipmentComponent = new EquipmentComponent(); - StatusEffectComponent = new StatusEffectComponent(RustDuration); + Inventory = new Inventory(); + Inventory.InventoryChanged += Inventory_InventoryChanged; + HealthComponent = new HealthComponent(InitialHP); + VTComponent = new VTComponent(InitialVT); + AttackComponent = new AttackComponent(InitialAttack); + DefenseComponent = new DefenseComponent(InitialDefense); + ExperiencePointsComponent = new ExperiencePointsComponent(); + LuckComponent = new LuckComponent(InitialLuck); + EquipmentComponent = new EquipmentComponent(); + StatusEffectComponent = new StatusEffectComponent(RustDuration); - _itemReroller = new ItemReroller(ItemDatabase.Instance); - _playerEffectService = new PlayerEffectService(this); + _itemReroller = new ItemReroller(ItemDatabase.Instance); + _playerEffectService = new PlayerEffectService(this); - Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration }; + Settings = new PlayerLogic.Settings() { RotationSpeed = RotationSpeed, MoveSpeed = MoveSpeed, Acceleration = Acceleration }; - PlayerBinding = PlayerLogic.Bind(); + PlayerBinding = PlayerLogic.Bind(); - PlayerBinding - .Handle((in PlayerLogic.Output.ThrowItem output) => - { - }) - .Handle((in PlayerLogic.Output.Move output) => - { - Move(output.delta); - }); + PlayerBinding + .Handle((in PlayerLogic.Output.ThrowItem output) => + { + }) + .Handle((in PlayerLogic.Output.Move output) => + { + Move(output.delta); + }); - PlayerLogic.Start(); - this.Provide(); + PlayerLogic.Start(); + this.Provide(); } public void ResetPlayerData() { - PlayerFXAnimations.Play("RESET"); + PlayerFXAnimations.Play("RESET"); - Inventory.Items.Clear(); - HealthComponent.Reset(); - VTComponent.Reset(); - AttackComponent.Reset(); - DefenseComponent.Reset(); - ExperiencePointsComponent.Reset(); - LuckComponent.Reset(); - EquipmentComponent.Reset(); + Inventory.Items.Clear(); + HealthComponent.Reset(); + VTComponent.Reset(); + AttackComponent.Reset(); + DefenseComponent.Reset(); + ExperiencePointsComponent.Reset(); + LuckComponent.Reset(); + EquipmentComponent.Reset(); - HealthTimer.Timeout += OnHealthTimerTimeout; + HealthTimer.Timeout += OnHealthTimerTimeout; } #region Initialization public void OnReady() { - Hitbox.AreaEntered += Hitbox_AreaEntered; - CollisionDetector.AreaEntered += CollisionDetector_AreaEntered; - HealthComponent.CurrentHP.Changed += InverseHPToAttackPowerSync; - HealthComponent.HealthReachedZero += Die; - ExperiencePointsComponent.PlayerLevelUp += OnLevelUp; - ExperiencePointsComponent.PlayerLevelDown += OnLevelDown; - PlayerFXAnimations.AnimationFinished += PlayerFXAnimations_AnimationFinished; - HealthTimer.WaitTime = _healthTimerWaitTime; + Hitbox.AreaEntered += Hitbox_AreaEntered; + CollisionDetector.AreaEntered += CollisionDetector_AreaEntered; + HealthComponent.CurrentHP.Changed += InverseHPToAttackPowerSync; + HealthComponent.HealthReachedZero += Die; + ExperiencePointsComponent.PlayerLevelUp += OnLevelUp; + ExperiencePointsComponent.PlayerLevelDown += OnLevelDown; + PlayerFXAnimations.AnimationFinished += PlayerFXAnimations_AnimationFinished; + HealthTimer.WaitTime = _healthTimerWaitTime; - _projectileCooldownTimer = new Timer(); - AddChild(_projectileCooldownTimer); - _projectileCooldownTimer.WaitTime = 1.8f; - _projectileCooldownTimer.Timeout += ProjectileCooldown; + _projectileCooldownTimer = new Timer(); + AddChild(_projectileCooldownTimer); + _projectileCooldownTimer.WaitTime = 1.8f; + _projectileCooldownTimer.Timeout += ProjectileCooldown; - SetProcessInput(false); - SetPhysicsProcess(false); + SetProcessInput(false); + SetPhysicsProcess(false); } #endregion public void Activate() { - SetProcessInput(true); - SetPhysicsProcess(true); - SetHealthTimerStatus(HealthTimerIsActive); - Hitbox.SetDeferred(Area3D.PropertyName.Monitoring, true); - Hitbox.SetDeferred(Area3D.PropertyName.Monitorable, true); + SetProcessInput(true); + SetPhysicsProcess(true); + SetHealthTimerStatus(HealthTimerIsActive); + Hitbox.SetDeferred(Area3D.PropertyName.Monitoring, true); + Hitbox.SetDeferred(Area3D.PropertyName.Monitorable, true); } public void Deactivate() { - Velocity = Vector3.Zero; - SetProcessInput(false); - SetPhysicsProcess(false); - SetHealthTimerStatus(false); - Hitbox.SetDeferred(Area3D.PropertyName.Monitoring, false); - Hitbox.SetDeferred(Area3D.PropertyName.Monitorable, false); + Velocity = Vector3.Zero; + SetProcessInput(false); + SetPhysicsProcess(false); + SetHealthTimerStatus(false); + Hitbox.SetDeferred(Area3D.PropertyName.Monitoring, false); + Hitbox.SetDeferred(Area3D.PropertyName.Monitorable, false); } public void SetHealthTimerStatus(bool isActive) { - if (isActive) - HealthTimer.Start(); - else - HealthTimer.Stop(); + if (isActive) + HealthTimer.Start(); + else + HealthTimer.Stop(); } public void ModifyHealthTimerSpeed(float newSpeed) { - HealthTimerSpeedModifier = newSpeed; - HealthTimer.Stop(); - HealthTimer.WaitTime = _healthTimerWaitTime * newSpeed; - HealthTimer.Start(); + HealthTimerSpeedModifier = newSpeed; + HealthTimer.Stop(); + HealthTimer.WaitTime = _healthTimerWaitTime * newSpeed; + HealthTimer.Start(); } public void ModifyHealthRecoveryAmount(int newAmount) @@ -259,30 +259,30 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide public void TeleportPlayer((Vector3 Rotation, Vector3 Position) newTransform) { - Rotation = newTransform.Rotation; - Position = newTransform.Position; - ResetPhysicsInterpolation(); + Rotation = newTransform.Rotation; + Position = newTransform.Position; + ResetPhysicsInterpolation(); } public void TakeDamage(AttackData damage) { - _camera3D.AddShake(1.0f); - TakeDamageAnimationPlayer.Play("take_damage"); - var damageReceived = DamageCalculator.CalculateDamage(damage, TotalDefense, EquipmentComponent.ElementalResistance); - HealthComponent.Damage(damageReceived); - SfxDatabase.Instance.Play(SoundEffect.TakeDamage); + _camera3D.AddShake(1.0f); + TakeDamageAnimationPlayer.Play("take_damage"); + var damageReceived = DamageCalculator.CalculateDamage(damage, TotalDefense, EquipmentComponent.ElementalResistance); + HealthComponent.Damage(damageReceived); + SfxDatabase.Instance.Play(SoundEffect.TakeDamage); - if (EquipmentComponent.EquippedArmor.Value.ArmorTag == ArmorTag.DegradeOnHit) - { - EquipmentComponent.EquippedArmor.Value.DecreaseArmorDefense(1); - EquipmentComponent.UpdateEquipment(EquipmentComponent.EquippedArmor.Value); - } + if (EquipmentComponent.EquippedArmor.Value.ArmorTag == ArmorTag.DegradeOnHit) + { + EquipmentComponent.EquippedArmor.Value.DecreaseArmorDefense(1); + EquipmentComponent.UpdateEquipment(EquipmentComponent.EquippedArmor.Value); + } } public void Knockback(float impulse) { - _knockbackStrength = impulse; - _knockbackDirection = GlobalBasis.Z.Normalized(); + _knockbackStrength = impulse; + _knockbackDirection = GlobalBasis.Z.Normalized(); } public void PlayJumpScareAnimation() => PlayerFXAnimations.Play("jump_scare"); @@ -298,355 +298,355 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide public void LevelUp() { - ExperiencePointsComponent.LevelUp(); + ExperiencePointsComponent.LevelUp(); } public void Die() { - PlayerFXAnimations.Play("death"); + PlayerFXAnimations.Play("death"); - if (AutoRevive) - return; + if (AutoRevive) + return; - HealthTimer.WaitTime = _healthTimerWaitTime; - HealthTimer.Timeout -= OnHealthTimerTimeout; - SetProcessInput(false); - SetPhysicsProcess(false); + HealthTimer.WaitTime = _healthTimerWaitTime; + HealthTimer.Timeout -= OnHealthTimerTimeout; + SetProcessInput(false); + SetPhysicsProcess(false); } public override void _Input(InputEvent @event) { - if (GetTree().Paused) - return; + if (GetTree().Paused) + return; - if (@event.IsActionPressed(GameInputs.Attack)) - Attack(); - if (@event.IsActionPressed(GameInputs.Sprint)) - _debugSprint = true; - else if (@event.IsActionReleased(GameInputs.Sprint)) - _debugSprint = false; + if (@event.IsActionPressed(GameInputs.Attack)) + Attack(); + if (@event.IsActionPressed(GameInputs.Sprint)) + _debugSprint = true; + else if (@event.IsActionReleased(GameInputs.Sprint)) + _debugSprint = false; } public void OnPhysicsProcess(double delta) { - PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta)); + PlayerLogic.Input(new PlayerLogic.Input.PhysicsTick(delta)); } public void Equip(IEquipableItem equipable) { - if (equipable.ItemTag == ItemTag.MysteryItem) - { - var rerolledItem = _itemReroller.RerollItem(equipable, Inventory); - Equip(rerolledItem); - return; - } + if (equipable.ItemTag == ItemTag.MysteryItem) + { + var rerolledItem = _itemReroller.RerollItem(equipable, Inventory); + Equip(rerolledItem); + return; + } - if (equipable is Weapon && EquipmentComponent.EquippedWeapon.Value != null && !EquipmentComponent.EquippedWeapon.Value.Glued) - Unequip(EquipmentComponent.EquippedWeapon.Value); - if (equipable is Armor && EquipmentComponent.EquippedArmor.Value != null && !EquipmentComponent.EquippedArmor.Value.Glued) - Unequip(EquipmentComponent.EquippedArmor.Value); - if (equipable is Accessory && EquipmentComponent.EquippedAccessory.Value != null && !EquipmentComponent.EquippedAccessory.Value.Glued) - Unequip(EquipmentComponent.EquippedAccessory.Value); - if (equipable is Ammo && EquipmentComponent.EquippedAmmo.Value != null && !EquipmentComponent.EquippedAmmo.Value.Glued) - Unequip(EquipmentComponent.EquippedAmmo.Value); + if (equipable is Weapon && EquipmentComponent.EquippedWeapon.Value != null && !EquipmentComponent.EquippedWeapon.Value.Glued) + Unequip(EquipmentComponent.EquippedWeapon.Value); + if (equipable is Armor && EquipmentComponent.EquippedArmor.Value != null && !EquipmentComponent.EquippedArmor.Value.Glued) + Unequip(EquipmentComponent.EquippedArmor.Value); + if (equipable is Accessory && EquipmentComponent.EquippedAccessory.Value != null && !EquipmentComponent.EquippedAccessory.Value.Glued) + Unequip(EquipmentComponent.EquippedAccessory.Value); + if (equipable is Ammo && EquipmentComponent.EquippedAmmo.Value != null && !EquipmentComponent.EquippedAmmo.Value.Glued) + Unequip(EquipmentComponent.EquippedAmmo.Value); - if (equipable.ItemTag == ItemTag.GlueOnEquip) - equipable.Glued = true; + if (equipable.ItemTag == ItemTag.GlueOnEquip) + equipable.Glued = true; - HealthComponent.RaiseMaximumHP(equipable.BonusHP, false); - VTComponent.RaiseMaximumVT(equipable.BonusVT, false); - LuckComponent.IncreaseLuck(equipable.BonusLuck); + HealthComponent.RaiseMaximumHP(equipable.BonusHP, false); + VTComponent.RaiseMaximumVT(equipable.BonusVT, false); + LuckComponent.IncreaseLuck(equipable.BonusLuck); - if (equipable is IAugmentableItem augmentable) - if (augmentable.Augment != null) - augmentable.Augment.AugmentType.Apply(); + if (equipable is IAugmentableItem augmentable) + if (augmentable.Augment != null) + augmentable.Augment.AugmentType.Apply(); - EquipmentComponent.Equip(equipable); + EquipmentComponent.Equip(equipable); - if (equipable is Weapon weapon) - { - if (weapon.WeaponTag == WeaponTag.KineticProjectile) - PersuaderCrosshair.Show(); - if (weapon.WeaponTag == WeaponTag.InverseHPAttackPower) - InverseHPToAttackPowerSync(HealthComponent.CurrentHP.Value); - } + if (equipable is Weapon weapon) + { + if (weapon.WeaponTag == WeaponTag.KineticProjectile) + PersuaderCrosshair.Show(); + if (weapon.WeaponTag == WeaponTag.InverseHPAttackPower) + InverseHPToAttackPowerSync(HealthComponent.CurrentHP.Value); + } - if (equipable is Accessory accessory) - { - if (accessory.AccessoryTag == AccessoryTag.BoostEXPGainRate) - ExperiencePointsComponent.ModifyExpGainRate(ExperiencePointsComponent.ExpGainRate.Value + 0.2f); - } - _game.NotifyInventory($"{equipable.ItemName} equipped."); + if (equipable is Accessory accessory) + { + if (accessory.AccessoryTag == AccessoryTag.BoostEXPGainRate) + ExperiencePointsComponent.ModifyExpGainRate(ExperiencePointsComponent.ExpGainRate.Value + 0.2f); + } + _game.NotifyInventory($"{equipable.ItemName} equipped."); } public void Unequip(IEquipableItem equipable) { - HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP); - VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT); - LuckComponent.DecreaseLuck(equipable.BonusLuck); + HealthComponent.SetMaximumHealth(HealthComponent.MaximumHP.Value - equipable.BonusHP); + VTComponent.SetMaximumVT(VTComponent.MaximumVT.Value - equipable.BonusVT); + LuckComponent.DecreaseLuck(equipable.BonusLuck); - if (equipable is IAugmentableItem augmentItem && augmentItem.Augment != null) - augmentItem.Augment.AugmentType.Remove(); + if (equipable is IAugmentableItem augmentItem && augmentItem.Augment != null) + augmentItem.Augment.AugmentType.Remove(); - EquipmentComponent.Unequip(equipable); + EquipmentComponent.Unequip(equipable); - if (equipable is Weapon weapon) - { - if (weapon.WeaponTag == WeaponTag.KineticProjectile) - PersuaderCrosshair.Hide(); - } - if (equipable is Accessory accessory) - { - if (accessory.AccessoryTag == AccessoryTag.BoostEXPGainRate) - ExperiencePointsComponent.ModifyExpGainRate(ExperiencePointsComponent.ExpGainRate.Value - 0.2f); - } - _game.NotifyInventory($"{equipable.ItemName} unequipped."); + if (equipable is Weapon weapon) + { + if (weapon.WeaponTag == WeaponTag.KineticProjectile) + PersuaderCrosshair.Hide(); + } + if (equipable is Accessory accessory) + { + if (accessory.AccessoryTag == AccessoryTag.BoostEXPGainRate) + ExperiencePointsComponent.ModifyExpGainRate(ExperiencePointsComponent.ExpGainRate.Value - 0.2f); + } + _game.NotifyInventory($"{equipable.ItemName} unequipped."); } public void ApplyNewAugment(IAugmentItem jewel, IAugmentableItem augmentableItem) { - Inventory.Remove(jewel); + Inventory.Remove(jewel); - ApplyNewAugment((dynamic)augmentableItem, jewel as Jewel); + ApplyNewAugment((dynamic)augmentableItem, jewel as Jewel); - if (augmentableItem.Augment != null && augmentableItem is IEquipableItem equipable && EquipmentComponent.IsItemEquipped(equipable)) - augmentableItem.Augment.AugmentType.Apply(); + if (augmentableItem.Augment != null && augmentableItem is IEquipableItem equipable && EquipmentComponent.IsItemEquipped(equipable)) + augmentableItem.Augment.AugmentType.Apply(); - _game.NotifyInventory($"{((IBaseInventoryItem)augmentableItem).ItemName} augmented with {jewel.ItemName}."); + _game.NotifyInventory($"{((IBaseInventoryItem)augmentableItem).ItemName} augmented with {jewel.ItemName}."); } private void ApplyNewAugment(Weapon weapon, Jewel jewel) { - switch (jewel.Stats.JewelTag) - { - case JewelTags.AeolicElement: - weapon.Stats.WeaponElement = ElementType.Aeolic; - weapon.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HydricElement: - weapon.Stats.WeaponElement = ElementType.Hydric; - weapon.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.SlowVTReduction: - weapon.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HastenVT: - weapon.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ReviveUserOnce: - weapon.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseHPRecovery: - weapon.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.LowerEXPGain: - weapon.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ItemRescue: - if (!_game.RescuedItems.TryAdd(weapon)) - break; - if (EquipmentComponent.IsItemEquipped(weapon)) - Unequip(weapon); - Inventory.Remove(weapon); - SfxDatabase.Instance.Play(SoundEffect.Transfer); - break; - case JewelTags.Glue: - if (!EquipmentComponent.IsItemEquipped(weapon)) - break; - weapon.Glued = true; - weapon.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.TelluricElement: - weapon.Stats.WeaponElement = ElementType.Telluric; - weapon.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.AutoIdentifyAllItems: - weapon.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseAtkDefLuck: - weapon.IncreaseAttack(jewel.Stats.BonusAttack); - weapon.IncreaseDefense(jewel.Stats.BonusDefense); - weapon.IncreaseLuck(jewel.Stats.BonusLuck); - weapon.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseLuck: - weapon.IncreaseLuck(25); - weapon.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - } - EquipmentComponent.UpdateEquipment(weapon); + switch (jewel.Stats.JewelTag) + { + case JewelTags.AeolicElement: + weapon.Stats.WeaponElement = ElementType.Aeolic; + weapon.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HydricElement: + weapon.Stats.WeaponElement = ElementType.Hydric; + weapon.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.SlowVTReduction: + weapon.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HastenVT: + weapon.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ReviveUserOnce: + weapon.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseHPRecovery: + weapon.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.LowerEXPGain: + weapon.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ItemRescue: + if (!_game.RescuedItems.TryAdd(weapon)) + break; + if (EquipmentComponent.IsItemEquipped(weapon)) + Unequip(weapon); + Inventory.Remove(weapon); + SfxDatabase.Instance.Play(SoundEffect.Transfer); + break; + case JewelTags.Glue: + if (!EquipmentComponent.IsItemEquipped(weapon)) + break; + weapon.Glued = true; + weapon.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.TelluricElement: + weapon.Stats.WeaponElement = ElementType.Telluric; + weapon.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.AutoIdentifyAllItems: + weapon.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseAtkDefLuck: + weapon.IncreaseAttack(jewel.Stats.BonusAttack); + weapon.IncreaseDefense(jewel.Stats.BonusDefense); + weapon.IncreaseLuck(jewel.Stats.BonusLuck); + weapon.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseLuck: + weapon.IncreaseLuck(25); + weapon.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + } + EquipmentComponent.UpdateEquipment(weapon); } private void ApplyNewAugment(Armor armor, Jewel jewel) { - switch (jewel.Stats.JewelTag) - { - case JewelTags.AeolicElement: - armor.Stats.AeolicResistance += jewel.Stats.AeolicResistance; - armor.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HydricElement: - armor.Stats.HydricResistance += jewel.Stats.HydricResistance; - armor.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.SlowVTReduction: - armor.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HastenVT: - armor.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ReviveUserOnce: - armor.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseHPRecovery: - armor.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.LowerEXPGain: - armor.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ItemRescue: - if (!_game.RescuedItems.TryAdd(armor)) - break; - if (EquipmentComponent.IsItemEquipped(armor)) - Unequip(armor); - Inventory.Remove(armor); - SfxDatabase.Instance.Play(SoundEffect.Transfer); - break; - case JewelTags.Glue: - if (!EquipmentComponent.IsItemEquipped(armor)) - break; - armor.Glued = true; - armor.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.TelluricElement: - armor.Stats.TelluricResistance += jewel.Stats.TelluricResistance; - armor.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.AutoIdentifyAllItems: - armor.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseAtkDefLuck: - armor.IncreaseAttack(jewel.Stats.BonusAttack); - armor.IncreaseDefense(jewel.Stats.BonusDefense); - armor.IncreaseLuck(jewel.Stats.BonusLuck); - armor.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseLuck: - armor.IncreaseLuck(jewel.Stats.BonusLuck); - armor.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - } - EquipmentComponent.UpdateEquipment(armor); + switch (jewel.Stats.JewelTag) + { + case JewelTags.AeolicElement: + armor.Stats.AeolicResistance += jewel.Stats.AeolicResistance; + armor.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HydricElement: + armor.Stats.HydricResistance += jewel.Stats.HydricResistance; + armor.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.SlowVTReduction: + armor.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HastenVT: + armor.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ReviveUserOnce: + armor.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseHPRecovery: + armor.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.LowerEXPGain: + armor.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ItemRescue: + if (!_game.RescuedItems.TryAdd(armor)) + break; + if (EquipmentComponent.IsItemEquipped(armor)) + Unequip(armor); + Inventory.Remove(armor); + SfxDatabase.Instance.Play(SoundEffect.Transfer); + break; + case JewelTags.Glue: + if (!EquipmentComponent.IsItemEquipped(armor)) + break; + armor.Glued = true; + armor.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.TelluricElement: + armor.Stats.TelluricResistance += jewel.Stats.TelluricResistance; + armor.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.AutoIdentifyAllItems: + armor.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseAtkDefLuck: + armor.IncreaseAttack(jewel.Stats.BonusAttack); + armor.IncreaseDefense(jewel.Stats.BonusDefense); + armor.IncreaseLuck(jewel.Stats.BonusLuck); + armor.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseLuck: + armor.IncreaseLuck(jewel.Stats.BonusLuck); + armor.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + } + EquipmentComponent.UpdateEquipment(armor); } private void ApplyNewAugment(Accessory accessory, Jewel jewel) { - switch (jewel.Stats.JewelTag) - { - case JewelTags.AeolicElement: - accessory.Stats.AeolicResistance += jewel.Stats.AeolicResistance; - accessory.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HydricElement: - accessory.Stats.HydricResistance += jewel.Stats.HydricResistance; - accessory.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.SlowVTReduction: - accessory.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.HastenVT: - accessory.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ReviveUserOnce: - accessory.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseHPRecovery: - accessory.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.LowerEXPGain: - accessory.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.ItemRescue: - if (!_game.RescuedItems.TryAdd(accessory)) - break; - if (EquipmentComponent.IsItemEquipped(accessory)) - Unequip(accessory); - Inventory.Remove(accessory); - SfxDatabase.Instance.Play(SoundEffect.Transfer); - break; - case JewelTags.Glue: - if (!EquipmentComponent.IsItemEquipped(accessory)) - break; - accessory.Glued = true; - accessory.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.TelluricElement: - accessory.Stats.TelluricResistance += jewel.Stats.TelluricResistance; - accessory.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.AutoIdentifyAllItems: - accessory.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseAtkDefLuck: - accessory.IncreaseAttack(jewel.Stats.BonusAttack); - accessory.IncreaseDefense(jewel.Stats.BonusDefense); - accessory.IncreaseLuck(jewel.Stats.BonusLuck); - accessory.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - case JewelTags.IncreaseLuck: - accessory.IncreaseLuck(jewel.Stats.BonusLuck); - accessory.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); - break; - } - EquipmentComponent.UpdateEquipment(accessory); + switch (jewel.Stats.JewelTag) + { + case JewelTags.AeolicElement: + accessory.Stats.AeolicResistance += jewel.Stats.AeolicResistance; + accessory.Augment = new Augment(JewelTags.AeolicElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HydricElement: + accessory.Stats.HydricResistance += jewel.Stats.HydricResistance; + accessory.Augment = new Augment(JewelTags.HydricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.SlowVTReduction: + accessory.Augment = new Augment(JewelTags.SlowVTReduction, new SlowVTReductionAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.HastenVT: + accessory.Augment = new Augment(JewelTags.HastenVT, new HastenVTAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ReviveUserOnce: + accessory.Augment = new Augment(JewelTags.ReviveUserOnce, new RevivePlayerAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseHPRecovery: + accessory.Augment = new Augment(JewelTags.IncreaseHPRecovery, new HPRecoverySpeedAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.LowerEXPGain: + accessory.Augment = new Augment(JewelTags.LowerEXPGain, new LowerEXPRateAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.ItemRescue: + if (!_game.RescuedItems.TryAdd(accessory)) + break; + if (EquipmentComponent.IsItemEquipped(accessory)) + Unequip(accessory); + Inventory.Remove(accessory); + SfxDatabase.Instance.Play(SoundEffect.Transfer); + break; + case JewelTags.Glue: + if (!EquipmentComponent.IsItemEquipped(accessory)) + break; + accessory.Glued = true; + accessory.Augment = new Augment(JewelTags.Glue, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.TelluricElement: + accessory.Stats.TelluricResistance += jewel.Stats.TelluricResistance; + accessory.Augment = new Augment(JewelTags.TelluricElement, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.AutoIdentifyAllItems: + accessory.Augment = new Augment(JewelTags.AutoIdentifyAllItems, new IdentifyAllItemsAugment(this), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseAtkDefLuck: + accessory.IncreaseAttack(jewel.Stats.BonusAttack); + accessory.IncreaseDefense(jewel.Stats.BonusDefense); + accessory.IncreaseLuck(jewel.Stats.BonusLuck); + accessory.Augment = new Augment(JewelTags.IncreaseAtkDefLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + case JewelTags.IncreaseLuck: + accessory.IncreaseLuck(jewel.Stats.BonusLuck); + accessory.Augment = new Augment(JewelTags.IncreaseLuck, new BasicAugment(), jewel.ItemName, jewel.StatDescription, jewel.GetTexture()); + break; + } + EquipmentComponent.UpdateEquipment(accessory); } private void ProjectileCooldown() => _fired = false; private static Vector3 GlobalInputVector { - get - { - var rawInput = Godot.Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown); - var input = new Vector3 - { - X = rawInput.X, - Z = rawInput.Y - }; - return input with { Y = 0f }; - } + get + { + var rawInput = Godot.Input.GetVector(GameInputs.MoveLeft, GameInputs.MoveRight, GameInputs.MoveUp, GameInputs.MoveDown); + var input = new Vector3 + { + X = rawInput.X, + Z = rawInput.Y + }; + return input with { Y = 0f }; + } } public void PlaySpellFX(SpellFXEnum spellEnum) { - SpellFXAnimations.Stop(); - SpellFXAnimations.Play(spellEnum.ToString()); + SpellFXAnimations.Stop(); + SpellFXAnimations.Play(spellEnum.ToString()); } private void OnLevelUp() { - BoostPlayerHPFromLevelUp(); + BoostPlayerHPFromLevelUp(); } private void OnLevelDown() { - LowerPlayerHPFromLevelDown(); + LowerPlayerHPFromLevelDown(); } private void BoostPlayerHPFromLevelUp() { - var rng = new RandomNumberGenerator(); - rng.Randomize(); - var hpIncrease = rng.RandiRange(3, 6); - HealthComponent.RaiseMaximumHP(hpIncrease); + var rng = new RandomNumberGenerator(); + rng.Randomize(); + var hpIncrease = rng.RandiRange(3, 6); + HealthComponent.RaiseMaximumHP(hpIncrease); } private void LowerPlayerHPFromLevelDown() { - var rng = new RandomNumberGenerator(); - rng.Randomize(); - var hpIncrease = rng.RandiRange(3, 6); - HealthComponent.LowerMaximumHP(hpIncrease); + var rng = new RandomNumberGenerator(); + rng.Randomize(); + var hpIncrease = rng.RandiRange(3, 6); + HealthComponent.LowerMaximumHP(hpIncrease); } private static float LeftStrafeInputVector => Godot.Input.GetActionStrength(GameInputs.StrafeLeft); @@ -655,299 +655,299 @@ public partial class Player : CharacterBody3D, IPlayer, IProvide private async void Attack() { - var weapon = EquipmentComponent.EquippedWeapon.Value as Weapon; - if (weapon.WeaponTag == WeaponTag.ElementalProjectile || weapon.WeaponTag == WeaponTag.KineticProjectile) - { - HandleProjectile(weapon); - return; - } - if (WeaponAnimations.IsPlaying()) - return; + var weapon = EquipmentComponent.EquippedWeapon.Value as Weapon; + if (weapon.WeaponTag == WeaponTag.ElementalProjectile || weapon.WeaponTag == WeaponTag.KineticProjectile) + { + HandleProjectile(weapon); + return; + } + if (WeaponAnimations.IsPlaying()) + return; - PlayAttackAnimation(); + PlayAttackAnimation(); - if (weapon.WeaponTag == WeaponTag.DegradeOnSwing) - _playerEffectService.Degrade(); - else if (weapon.WeaponTag == WeaponTag.SelfDamage) - _playerEffectService.TakeSelfDamage(5); + if (weapon.WeaponTag == WeaponTag.DegradeOnSwing) + _playerEffectService.Degrade(); + else if (weapon.WeaponTag == WeaponTag.SelfDamage) + _playerEffectService.TakeSelfDamage(5); } private void HandleProjectile(Weapon weapon) { - if (_fired) - return; + if (_fired) + return; - var ammo = EquipmentComponent.EquippedAmmo.Value as Ammo; - if (ammo.Count == null || ammo.Count?.Value <= 0) - return; + var ammo = EquipmentComponent.EquippedAmmo.Value as Ammo; + if (ammo.Count == null || ammo.Count?.Value <= 0) + return; - if (weapon.WeaponTag == WeaponTag.ElementalProjectile) - { - if (ammo.AmmoElement == ElementType.Aeolic) - _airReactorProjectileSystem.Fire(); - if (ammo.AmmoElement == ElementType.Igneous) - _fireReactorProjectileSystem.Fire(); - if (ammo.AmmoElement == ElementType.Hydric) - _waterReactorProjectileSystem.Fire(); - } + if (weapon.WeaponTag == WeaponTag.ElementalProjectile) + { + if (ammo.AmmoElement == ElementType.Aeolic) + _airReactorProjectileSystem.Fire(); + if (ammo.AmmoElement == ElementType.Igneous) + _fireReactorProjectileSystem.Fire(); + if (ammo.AmmoElement == ElementType.Hydric) + _waterReactorProjectileSystem.Fire(); + } - if (weapon.WeaponTag == WeaponTag.KineticProjectile) - { - PlayAttackAnimation(); - _kineticProjectileSystem.Fire(); - } + if (weapon.WeaponTag == WeaponTag.KineticProjectile) + { + PlayAttackAnimation(); + _kineticProjectileSystem.Fire(); + } - ammo.SetCount(ammo.Count.Value - 1); - EquipmentComponent.UpdateEquipment(ammo); - if (ammo.Count.Value <= 0) - { - EquipmentComponent.Unequip(ammo); - Inventory.Remove(ammo); - } + ammo.SetCount(ammo.Count.Value - 1); + EquipmentComponent.UpdateEquipment(ammo); + if (ammo.Count.Value <= 0) + { + EquipmentComponent.Unequip(ammo); + Inventory.Remove(ammo); + } - _fired = true; - _projectileCooldownTimer.Start(); + _fired = true; + _projectileCooldownTimer.Start(); } private void ThrowItem() { - var itemScene = GD.Load("res://src/items/throwable/ThrowableItem.tscn"); - var throwItem = itemScene.Instantiate(); - GetTree().Root.AddChildEx(throwItem); - throwItem.GlobalPosition = CurrentPosition; - throwItem.GlobalRotation = GlobalRotation; + var itemScene = GD.Load("res://src/items/throwable/ThrowableItem.tscn"); + var throwItem = itemScene.Instantiate(); + GetTree().Root.AddChildEx(throwItem); + throwItem.GlobalPosition = CurrentPosition; + throwItem.GlobalRotation = GlobalRotation; } private void PlayAttackAnimation() { - var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value; - SfxDatabase.Instance.Play(weapon.SoundEffect); - WeaponAnimations.SetSpeedScale((float)weapon.AttackSpeed); - var potentialAnimName = weapon.Stats.Name; - if (WeaponAnimations.HasAnimation(potentialAnimName)) - WeaponAnimations.Play(potentialAnimName); - else if (weapon.WeaponElement == ElementType.Aeolic) - WeaponAnimations.Play("Air Slash"); - else if (weapon.WeaponElement == ElementType.Hydric) - WeaponAnimations.Play("Water Slash"); - else if (weapon.WeaponElement == ElementType.Igneous) - WeaponAnimations.Play("Fire Slash"); - else if (weapon.WeaponElement == ElementType.Telluric) - WeaponAnimations.Play("Earth Slash"); - else if (string.IsNullOrWhiteSpace(potentialAnimName)) - WeaponAnimations.Play("Unarmed"); - else - WeaponAnimations.Play("Normal Slash"); + var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value; + SfxDatabase.Instance.Play(weapon.SoundEffect); + WeaponAnimations.SetSpeedScale((float)weapon.AttackSpeed); + var potentialAnimName = weapon.Stats.Name; + if (WeaponAnimations.HasAnimation(potentialAnimName)) + WeaponAnimations.Play(potentialAnimName); + else if (weapon.WeaponElement == ElementType.Aeolic) + WeaponAnimations.Play("Air Slash"); + else if (weapon.WeaponElement == ElementType.Hydric) + WeaponAnimations.Play("Water Slash"); + else if (weapon.WeaponElement == ElementType.Igneous) + WeaponAnimations.Play("Fire Slash"); + else if (weapon.WeaponElement == ElementType.Telluric) + WeaponAnimations.Play("Earth Slash"); + else if (string.IsNullOrWhiteSpace(potentialAnimName)) + WeaponAnimations.Play("Unarmed"); + else + WeaponAnimations.Play("Normal Slash"); } private void PlayerFXAnimations_AnimationFinished(StringName animName) { - if (animName == "death") - { - if (AutoRevive) - PlayerFXAnimations.PlayBackwards("revive"); - else - PlayerDied?.Invoke(); - } - if (animName == "revive") - { - Revive(); - } + if (animName == "death") + { + if (AutoRevive) + PlayerFXAnimations.PlayBackwards("revive"); + else + PlayerDied?.Invoke(); + } + if (animName == "revive") + { + Revive(); + } } private void Revive() { - HealthComponent.SetCurrentHealth(HealthComponent.MaximumHP.Value); - VTComponent.SetVT(VTComponent.MaximumVT.Value); - if (EquipmentComponent.EquippedAccessory.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) - { - var itemToBreak = EquipmentComponent.EquippedAccessory.Value; - Unequip(EquipmentComponent.EquippedAccessory.Value); - Inventory.Remove(itemToBreak); - } - else if (EquipmentComponent.EquippedArmor.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) - { - var itemToBreak = EquipmentComponent.EquippedArmor.Value; - Unequip(EquipmentComponent.EquippedArmor.Value); - Inventory.Remove(itemToBreak); - } - else if (EquipmentComponent.EquippedWeapon.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) - { - var itemToBreak = EquipmentComponent.EquippedWeapon.Value; - Unequip(EquipmentComponent.EquippedWeapon.Value); - Inventory.Remove(itemToBreak); - } - else - PlayJumpScareAnimation(); + HealthComponent.SetCurrentHealth(HealthComponent.MaximumHP.Value); + VTComponent.SetVT(VTComponent.MaximumVT.Value); + if (EquipmentComponent.EquippedAccessory.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) + { + var itemToBreak = EquipmentComponent.EquippedAccessory.Value; + Unequip(EquipmentComponent.EquippedAccessory.Value); + Inventory.Remove(itemToBreak); + } + else if (EquipmentComponent.EquippedArmor.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) + { + var itemToBreak = EquipmentComponent.EquippedArmor.Value; + Unequip(EquipmentComponent.EquippedArmor.Value); + Inventory.Remove(itemToBreak); + } + else if (EquipmentComponent.EquippedWeapon.Value.Augment?.AugmentTag == JewelTags.ReviveUserOnce) + { + var itemToBreak = EquipmentComponent.EquippedWeapon.Value; + Unequip(EquipmentComponent.EquippedWeapon.Value); + Inventory.Remove(itemToBreak); + } + else + PlayJumpScareAnimation(); } private void InverseHPToAttackPowerSync(int obj) { - var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value; - if (weapon.WeaponTag == WeaponTag.InverseHPAttackPower) - { - var healthPercentage = (HealthComponent.CurrentHP.Value * 10) / HealthComponent.MaximumHP.Value; - weapon.SetAttack(10 - healthPercentage); - EquipmentComponent.Equip(weapon); - } + var weapon = (Weapon)EquipmentComponent.EquippedWeapon.Value; + if (weapon.WeaponTag == WeaponTag.InverseHPAttackPower) + { + var healthPercentage = (HealthComponent.CurrentHP.Value * 10) / HealthComponent.MaximumHP.Value; + weapon.SetAttack(10 - healthPercentage); + EquipmentComponent.Equip(weapon); + } } private void OnExitTree() { - PlayerLogic.Stop(); - PlayerBinding.Dispose(); - Hitbox.AreaEntered -= Hitbox_AreaEntered; - CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered; - HealthTimer.Timeout -= OnHealthTimerTimeout; - HealthComponent.CurrentHP.Changed -= InverseHPToAttackPowerSync; - HealthComponent.HealthReachedZero -= Die; - ExperiencePointsComponent.PlayerLevelUp -= OnLevelUp; - PlayerFXAnimations.AnimationFinished -= PlayerFXAnimations_AnimationFinished; + PlayerLogic.Stop(); + PlayerBinding.Dispose(); + Hitbox.AreaEntered -= Hitbox_AreaEntered; + CollisionDetector.AreaEntered -= CollisionDetector_AreaEntered; + HealthTimer.Timeout -= OnHealthTimerTimeout; + HealthComponent.CurrentHP.Changed -= InverseHPToAttackPowerSync; + HealthComponent.HealthReachedZero -= Die; + ExperiencePointsComponent.PlayerLevelUp -= OnLevelUp; + PlayerFXAnimations.AnimationFinished -= PlayerFXAnimations_AnimationFinished; } private void Move(float delta) { - var rawInput = GlobalInputVector; - var strafeLeftInput = LeftStrafeInputVector; - var strafeRightInput = RightStrafeInputVector; + var rawInput = GlobalInputVector; + var strafeLeftInput = LeftStrafeInputVector; + var strafeRightInput = RightStrafeInputVector; - var transform = Transform; - transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis; - var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized(); + var transform = Transform; + transform.Basis = new Basis(Vector3.Up, Settings.RotationSpeed * -rawInput.X * delta) * transform.Basis; + var moveDirection = new Vector3(strafeRightInput - strafeLeftInput, 0, rawInput.Z).Normalized(); - if (moveDirection.Length() > 0.25f) - { - var rng = new RandomNumberGenerator(); - rng.Randomize(); - WalkSFX.PitchScale = rng.RandfRange(0.5f, 1.5f); - if (!WalkSFX.Playing) - WalkSFX.Play(); - } - else if (WalkSFX.Playing) - WalkSFX.Stop(); + if (moveDirection.Length() > 0.25f) + { + var rng = new RandomNumberGenerator(); + rng.Randomize(); + WalkSFX.PitchScale = rng.RandfRange(0.5f, 1.5f); + if (!WalkSFX.Playing) + WalkSFX.Play(); + } + else if (WalkSFX.Playing) + WalkSFX.Stop(); - var velocity = (Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration); - if (_debugSprint) - velocity *= 2; - _knockbackStrength *= 0.9f; - Transform = Transform with { Basis = transform.Basis }; - Velocity = velocity + (_knockbackDirection * _knockbackStrength); + var velocity = (Basis * moveDirection * Settings.MoveSpeed * Settings.Acceleration); + if (_debugSprint) + velocity *= 2; + _knockbackStrength *= 0.9f; + Transform = Transform with { Basis = transform.Basis }; + Velocity = velocity + (_knockbackDirection * _knockbackStrength); - MoveAndSlide(); + MoveAndSlide(); } private void OnPlayerPositionUpdated(Vector3 globalPosition) => GlobalPosition = globalPosition; private void OnHealthTimerTimeout() { - if (VTComponent.CurrentVT.Value > 0) - { - if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption) - _healthTimerActive = !_healthTimerActive; + if (VTComponent.CurrentVT.Value > 0) + { + if (((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag == AccessoryTag.HalfVTConsumption) + _healthTimerActive = !_healthTimerActive; - HealthComponent.Heal(HealthTimerHPRate); + HealthComponent.Heal(HealthTimerHPRate); - if (_healthTimerActive) - VTComponent.Reduce(1); - } - else - HealthComponent.Damage(1); + if (_healthTimerActive) + VTComponent.Reduce(1); + } + else + HealthComponent.Damage(1); } private void Hitbox_AreaEntered(Area3D area) { - var target = area.GetOwner(); - if (target is IEnemy enemy) - HitEnemy(enemy); + var target = area.GetOwner(); + if (target is IEnemy enemy) + HitEnemy(enemy); } private void HitEnemy(IEnemy enemy) { - var weapon = EquipmentComponent.EquippedWeapon.Value as Weapon; - var isCriticalHit = BattleExtensions.IsCriticalHit(TotalLuck); - var totalDamage = TotalAttack; + var weapon = EquipmentComponent.EquippedWeapon.Value as Weapon; + var isCriticalHit = BattleExtensions.IsCriticalHit(TotalLuck); + var totalDamage = TotalAttack; - if (isCriticalHit) - { - totalDamage += (int)(totalDamage * 0.5f); - SfxDatabase.Instance.Play(SoundEffect.Crit); - } + if (isCriticalHit) + { + totalDamage += (int)(totalDamage * 0.5f); + SfxDatabase.Instance.Play(SoundEffect.Crit); + } - var baseAttack = new AttackData(totalDamage, weapon.WeaponElement, weapon.WeaponTag == WeaponTag.IgnoreDefense, weapon.WeaponTag == WeaponTag.IgnoreAffinity); - var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, enemy.ElementalResistanceSet); - enemy.HealthComponent.Damage(damageDealt); + var baseAttack = new AttackData(totalDamage, weapon.WeaponElement, weapon.WeaponTag == WeaponTag.IgnoreDefense, weapon.WeaponTag == WeaponTag.IgnoreAffinity); + var damageDealt = DamageCalculator.CalculateDamage(baseAttack, enemy.DefenseComponent.CurrentDefense.Value, enemy.ElementalResistanceSet); + enemy.HealthComponent.Damage(damageDealt); - if (weapon.WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable) - knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized()); - if (weapon.WeaponTag == WeaponTag.SelfDamage) - _playerEffectService.TakeSelfDamage(weapon.Stats.SelfDamage); - if (weapon.WeaponTag == WeaponTag.Instakill) - _playerEffectService.Instakill(enemy); - if (weapon.WeaponTag == WeaponTag.RustChanceSelfAndEnemy) - { - var rustChance = 0.15f; - var rng = new RandomNumberGenerator(); - rng.Randomize(); - if (rng.Randf() <= rustChance) - { - if (rng.Randf() >= 0.5f && ((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag != AccessoryTag.StatusEffectImmunity) - StatusEffectComponent.Rust.OnNext(true); - else - enemy.StatusEffectComponent.Rust.OnNext(true); - } - } + if (weapon.WeaponTag == WeaponTag.Knockback && enemy is IKnockbackable knockbackable) + knockbackable.Knockback(0.3f, -CurrentBasis.Z.Normalized()); + if (weapon.WeaponTag == WeaponTag.SelfDamage) + _playerEffectService.TakeSelfDamage(weapon.Stats.SelfDamage); + if (weapon.WeaponTag == WeaponTag.Instakill) + _playerEffectService.Instakill(enemy); + if (weapon.WeaponTag == WeaponTag.RustChanceSelfAndEnemy) + { + var rustChance = 0.15f; + var rng = new RandomNumberGenerator(); + rng.Randomize(); + if (rng.Randf() <= rustChance) + { + if (rng.Randf() >= 0.5f && ((Accessory)EquipmentComponent.EquippedAccessory.Value).AccessoryTag != AccessoryTag.StatusEffectImmunity) + StatusEffectComponent.Rust.OnNext(true); + else + enemy.StatusEffectComponent.Rust.OnNext(true); + } + } } private async void CollisionDetector_AreaEntered(Area3D area) { - if (area.GetParent() is IBaseInventoryItem inventoryItem) - { - var isAdded = Inventory.PickUpItem(inventoryItem); - if (isAdded) - ((Node3D)inventoryItem).QueueFree(); - } - if (area.GetParent() is DroppedItem droppedItem) - { - var isAdded = Inventory.PickUpItem(droppedItem.Item); - if (isAdded) - droppedItem.QueueFree(); - } - if (area.GetParent() is ThrownItem thrownItem) - { - var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown); - if (isAdded) - thrownItem.QueueFree(); - } - if (area.GetParent() is Restorative restorative) - { - await ToSignal(GetTree().CreateTimer(0.2f), "timeout"); - VTComponent.Restore(restorative.RestoreAmount); - SfxDatabase.Instance.Play(SoundEffect.HealVT); - restorative.QueueFree(); - } + if (area.GetParent() is IBaseInventoryItem inventoryItem) + { + var isAdded = Inventory.PickUpItem(inventoryItem); + if (isAdded) + ((Node3D)inventoryItem).QueueFree(); + } + if (area.GetParent() is DroppedItem droppedItem) + { + var isAdded = Inventory.PickUpItem(droppedItem.Item); + if (isAdded) + droppedItem.QueueFree(); + } + if (area.GetParent() is ThrownItem thrownItem) + { + var isAdded = Inventory.PickUpItem(thrownItem.ItemThatIsThrown); + if (isAdded) + thrownItem.QueueFree(); + } + if (area.GetParent() is Restorative restorative) + { + await ToSignal(GetTree().CreateTimer(0.2f), "timeout"); + VTComponent.Restore(restorative.RestoreAmount); + SfxDatabase.Instance.Play(SoundEffect.HealVT); + restorative.QueueFree(); + } } private bool PlayerIsHittingGeometry() { - var collisions = WallCheck.GetCollidingBodies(); - return collisions.Count > 0; + var collisions = WallCheck.GetCollidingBodies(); + return collisions.Count > 0; } private void WallCheck_BodyEntered(Node body) { - GD.Print("Hit wall"); - WeaponAnimations.Stop(); + GD.Print("Hit wall"); + WeaponAnimations.Stop(); } private void Inventory_InventoryChanged() { - if (AutoIdentifyItems) - { - foreach (var item in Inventory.Items.ToList()) - { - if (item.ItemTag == ItemTag.MysteryItem) - IdentifyItem(item); - } - } + if (AutoIdentifyItems) + { + foreach (var item in Inventory.Items.ToList()) + { + if (item.ItemTag == ItemTag.MysteryItem) + IdentifyItem(item); + } + } } } diff --git a/Zennysoft.Game.Ma/src/player/Player.tscn b/Zennysoft.Game.Ma/src/player/Player.tscn index 09735f28..84cc0762 100644 --- a/Zennysoft.Game.Ma/src/player/Player.tscn +++ b/Zennysoft.Game.Ma/src/player/Player.tscn @@ -1736,7 +1736,7 @@ resource_name = "Persuader" [sub_resource type="Animation" id="Animation_w5dir"] resource_name = "Plasma Sword" -length = 1.23334 +length = 0.500003 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -1752,26 +1752,26 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("Control/Weapon Animations Older 4x3:animation") +tracks/1/path = NodePath("Control/Weapon Animations 1080p:animation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 0.466667), +"transitions": PackedFloat32Array(1, 1), "update": 1, -"values": [&"plasma_sword"] +"values": [&"Plasma Sword 2", &"Cruciform"] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("Control/Weapon Animations Older 4x3:frame") +tracks/2/path = NodePath("Control/Weapon Animations 1080p:frame") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0, 1.16667), +"times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [0, 35] +"values": [0, 15] } [sub_resource type="Animation" id="Animation_flmxu"] @@ -1848,6 +1848,30 @@ tracks/5/keys = { "update": 1, "values": [0] } +tracks/6/type = "value" +tracks/6/imported = false +tracks/6/enabled = true +tracks/6/path = NodePath("Control/Weapon Animations 1080p:animation") +tracks/6/interp = 1 +tracks/6/loop_wrap = true +tracks/6/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [&"Cruciform"] +} +tracks/7/type = "value" +tracks/7/imported = false +tracks/7/enabled = true +tracks/7/path = NodePath("Control/Weapon Animations 1080p:frame") +tracks/7/interp = 1 +tracks/7/loop_wrap = true +tracks/7/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 1, +"values": [0] +} [sub_resource type="Animation" id="Animation_34gm2"] resource_name = "Rondo" @@ -11269,6 +11293,9 @@ animations = [{ }, { "duration": 1.0, "texture": ExtResource("738_u57bn") +}, { +"duration": 1.0, +"texture": null }], "loop": false, "name": &"Plasma Sword 2", @@ -11848,10 +11875,12 @@ sprite_frames = SubResource("SpriteFrames_h00b0") animation = &"earth_slash" [node name="Weapon Animations Lower Rez" type="AnimatedSprite2D" parent="ScreenFX/Control"] -position = Vector2(-319, 3.00002) -scale = Vector2(1.9963, 1.9963) +position = Vector2(-285, 17) +scale = Vector2(2.19722, 2.19722) sprite_frames = SubResource("SpriteFrames_k0pb3") -animation = &"Cello" +animation = &"Sealed Sword" +frame = 15 +frame_progress = 1.0 [node name="Weapn Animation - Unarmed" type="AnimatedSprite2D" parent="ScreenFX/Control"] position = Vector2(-156, 96) @@ -11860,9 +11889,10 @@ sprite_frames = SubResource("SpriteFrames_0nb7q") animation = &"Unarmed" [node name="Weapon Animations 1080p" type="AnimatedSprite2D" parent="ScreenFX/Control"] -position = Vector2(-358, -6) +position = Vector2(-102.667, 21.5) +scale = Vector2(1.09722, 1.09722) sprite_frames = SubResource("SpriteFrames_4pi58") -animation = &"Axe" +animation = &"Cruciform" [node name="PersuaderCrosshair" type="Sprite2D" parent="ScreenFX/Control"] unique_name_in_owner = true