From 3b894c7de4bd9f5360999ea6fb47cb6e2fa5dd84 Mon Sep 17 00:00:00 2001 From: juliangiebel Date: Wed, 12 Aug 2020 23:41:09 +0200 Subject: [PATCH 01/10] Add higher interaction priority to --- Content.Server/GameObjects/Components/AnchorableComponent.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Content.Server/GameObjects/Components/AnchorableComponent.cs b/Content.Server/GameObjects/Components/AnchorableComponent.cs index 6ad088bdbe..5ab4989660 100644 --- a/Content.Server/GameObjects/Components/AnchorableComponent.cs +++ b/Content.Server/GameObjects/Components/AnchorableComponent.cs @@ -14,6 +14,8 @@ namespace Content.Server.GameObjects.Components { public override string Name => "Anchorable"; + int IInteractUsing.Priority { get => 1; } + /// /// Checks if a tool can change the anchored status. /// From a41e2d100208b7ff32f15ae98ce194ba3febb945 Mon Sep 17 00:00:00 2001 From: Julian Giebel Date: Thu, 13 Aug 2020 09:54:27 +0200 Subject: [PATCH 02/10] Fix typos in doc comment --- .../GameObjects/Components/Interaction/IInteractUsing.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs index 1589b00493..f036e91314 100644 --- a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs +++ b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs @@ -14,9 +14,9 @@ namespace Content.Shared.Interfaces.GameObjects.Components public interface IInteractUsing { /// - /// The interaction Priority. Higher numbers get called first. + /// The interaction priority. Higher numbers get called first. /// - /// Prority defaults to 0 + /// Priority defaults to 0 int Priority { get => 0; } /// From 781faae98a5bb1609b50991a547f008f8a428b02 Mon Sep 17 00:00:00 2001 From: juliangiebel Date: Thu, 13 Aug 2020 20:14:07 +0200 Subject: [PATCH 03/10] Set interaction priority of PlacableSurfaceComponent to 1 --- .../GameObjects/Components/PlaceableSurfaceComponent.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs b/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs index 3ac23365fe..34e41ed1a9 100644 --- a/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs +++ b/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs @@ -1,4 +1,4 @@ -using Content.Server.GameObjects.Components.GUI; +using Content.Server.GameObjects.Components.GUI; using Content.Shared.GameObjects.Components; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; @@ -12,6 +12,8 @@ namespace Content.Server.GameObjects.Components private bool _isPlaceable; public bool IsPlaceable { get => _isPlaceable; set => _isPlaceable = value; } + int IInteractUsing.Priority { get => 1; } + public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); From 43606b061703b92cbc94000d53d91b6ebdd2794e Mon Sep 17 00:00:00 2001 From: Julian Giebel Date: Sun, 16 Aug 2020 14:58:36 +0200 Subject: [PATCH 04/10] Change formating --- Content.Server/GameObjects/Components/AnchorableComponent.cs | 2 +- .../GameObjects/Components/PlaceableSurfaceComponent.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/GameObjects/Components/AnchorableComponent.cs b/Content.Server/GameObjects/Components/AnchorableComponent.cs index 5ab4989660..b1d07fbc60 100644 --- a/Content.Server/GameObjects/Components/AnchorableComponent.cs +++ b/Content.Server/GameObjects/Components/AnchorableComponent.cs @@ -14,7 +14,7 @@ namespace Content.Server.GameObjects.Components { public override string Name => "Anchorable"; - int IInteractUsing.Priority { get => 1; } + int IInteractUsing.Priority => 1; /// /// Checks if a tool can change the anchored status. diff --git a/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs b/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs index 34e41ed1a9..54469fb856 100644 --- a/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs +++ b/Content.Server/GameObjects/Components/PlaceableSurfaceComponent.cs @@ -12,7 +12,7 @@ namespace Content.Server.GameObjects.Components private bool _isPlaceable; public bool IsPlaceable { get => _isPlaceable; set => _isPlaceable = value; } - int IInteractUsing.Priority { get => 1; } + int IInteractUsing.Priority => 1; public override void ExposeData(ObjectSerializer serializer) { From 2c853ea5723c3a68d5eb696e8707973c6530c5df Mon Sep 17 00:00:00 2001 From: Julian Giebel Date: Sun, 16 Aug 2020 17:45:15 +0200 Subject: [PATCH 05/10] Update IInteractUsing.cs --- .../GameObjects/Components/Interaction/IInteractUsing.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs index f036e91314..21c0dacedb 100644 --- a/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs +++ b/Content.Shared/Interfaces/GameObjects/Components/Interaction/IInteractUsing.cs @@ -17,7 +17,7 @@ namespace Content.Shared.Interfaces.GameObjects.Components /// The interaction priority. Higher numbers get called first. /// /// Priority defaults to 0 - int Priority { get => 0; } + int Priority => 0; /// /// Called when using one object on another when user is in range of the target entity. From 0f7e62d4142893404b725a4a21a06260cbde60bb Mon Sep 17 00:00:00 2001 From: Swept Date: Sun, 16 Aug 2020 16:20:36 -0700 Subject: [PATCH 06/10] More Mobs | Space Carp, Monkey, Gorilla etc. (#1502) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Space Carp (Can't move in Space) * Carps! * Monky and Gorilla * Fixes * Chickens I guess * rsis updated * Buncha Sprites m8 * Hopefully that pr'll get merged * Fixed * Added a shitton of stuff * Refined hitboxes and added new corgi * Broken for now * Fixes conflicts * Moves Xeno back * ok NOW it fixes it Co-authored-by: Víctor Aguilera Puerto --- Resources/Audio/Effects/chungus.ogg | Bin 0 -> 678300 bytes .../Prototypes/Entities/Mobs/NPCs/animals.yml | 588 ++++++++++++++++++ .../Prototypes/Entities/Mobs/NPCs/carp.yml | 110 ++++ .../Prototypes/Entities/Mobs/NPCs/pets.yml | 212 +++++++ .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 4 +- .../Mobs/Back/corgi_back.rsi/armor.png | Bin 0 -> 481 bytes .../Mobs/Back/corgi_back.rsi/cardborg.png | Bin 0 -> 792 bytes .../Mobs/Back/corgi_back.rsi/deathsquad.png | Bin 0 -> 1979 bytes .../corgi_back.rsi/fire_extinguisher0.png | Bin 0 -> 526 bytes .../corgi_back.rsi/fire_extinguisher1.png | Bin 0 -> 526 bytes .../Clothing/Mobs/Back/corgi_back.rsi/ian.png | Bin 0 -> 1012 bytes .../Mobs/Back/corgi_back.rsi/meta.json | 1 + .../Mobs/Back/corgi_back.rsi/oxygen.png | Bin 0 -> 585 bytes .../Mobs/Back/corgi_back.rsi/petcollar.png | Bin 0 -> 258 bytes .../Mobs/Back/corgi_back.rsi/walkietalkie.png | Bin 0 -> 433 bytes .../Mobs/Hats/corgi_hats.rsi/beret.png | Bin 0 -> 354 bytes .../Mobs/Hats/corgi_hats.rsi/blackscarf.png | Bin 0 -> 346 bytes .../Mobs/Hats/corgi_hats.rsi/bunny.png | Bin 0 -> 508 bytes .../Mobs/Hats/corgi_hats.rsi/captain.png | Bin 0 -> 413 bytes .../Mobs/Hats/corgi_hats.rsi/cardborg_h.png | Bin 0 -> 505 bytes .../Mobs/Hats/corgi_hats.rsi/cargosoft.png | Bin 0 -> 412 bytes .../Mobs/Hats/corgi_hats.rsi/chef.png | Bin 0 -> 197 bytes .../Hats/corgi_hats.rsi/christmasscarf.png | Bin 0 -> 366 bytes .../Mobs/Hats/corgi_hats.rsi/clown.png | Bin 0 -> 547 bytes .../Mobs/Hats/corgi_hats.rsi/detective.png | Bin 0 -> 245 bytes .../Mobs/Hats/corgi_hats.rsi/festive.png | Bin 0 -> 362 bytes .../Hats/corgi_hats.rsi/hardhat0_cakehat.png | Bin 0 -> 289 bytes .../Hats/corgi_hats.rsi/hardhat0_reindeer.png | Bin 0 -> 301 bytes .../Hats/corgi_hats.rsi/hardhat0_white.png | Bin 0 -> 505 bytes .../Hats/corgi_hats.rsi/hardhat0_yellow.png | Bin 0 -> 527 bytes .../Hats/corgi_hats.rsi/hardhat1_cakehat.png | Bin 0 -> 459 bytes .../Hats/corgi_hats.rsi/hardhat1_white.png | Bin 0 -> 496 bytes .../Hats/corgi_hats.rsi/hardhat1_yellow.png | Bin 0 -> 518 bytes .../Mobs/Hats/corgi_hats.rsi/helmet.png | Bin 0 -> 632 bytes .../Mobs/Hats/corgi_hats.rsi/hopcap.png | Bin 0 -> 431 bytes .../Mobs/Hats/corgi_hats.rsi/kitty.png | Bin 0 -> 866 bytes .../Mobs/Hats/corgi_hats.rsi/meta.json | 1 + .../Mobs/Hats/corgi_hats.rsi/nursehat.png | Bin 0 -> 255 bytes .../Mobs/Hats/corgi_hats.rsi/paper.png | Bin 0 -> 322 bytes .../Mobs/Hats/corgi_hats.rsi/paper_words.png | Bin 0 -> 322 bytes .../Mobs/Hats/corgi_hats.rsi/pirate.png | Bin 0 -> 535 bytes .../Mobs/Hats/corgi_hats.rsi/policehelm.png | Bin 0 -> 478 bytes .../Mobs/Hats/corgi_hats.rsi/redwizard.png | Bin 0 -> 421 bytes .../Mobs/Hats/corgi_hats.rsi/santahat.png | Bin 0 -> 446 bytes .../Mobs/Hats/corgi_hats.rsi/scarf.png | Bin 0 -> 329 bytes .../Mobs/Hats/corgi_hats.rsi/sheet.png | Bin 0 -> 1130 bytes .../Mobs/Hats/corgi_hats.rsi/sheriff.png | Bin 0 -> 586 bytes .../Mobs/Hats/corgi_hats.rsi/sombrero.png | Bin 0 -> 523 bytes .../Clothing/Mobs/Hats/corgi_hats.rsi/sun.png | Bin 0 -> 204 bytes .../Mobs/Hats/corgi_hats.rsi/tophat.png | Bin 0 -> 245 bytes .../Mobs/Hats/corgi_hats.rsi/ushankadown.png | Bin 0 -> 1097 bytes .../Mobs/Hats/corgi_hats.rsi/ushankaup.png | Bin 0 -> 887 bytes .../Mobs/Hats/corgi_hats.rsi/wizard-fake.png | Bin 0 -> 515 bytes .../Mobs/Hats/corgi_hats.rsi/wizard.png | Bin 0 -> 515 bytes .../Mobs/Hats/corgi_hats.rsi/zebrascarf.png | Bin 0 -> 369 bytes .../Mobs/Aliens/Carps/carp_holo.rsi/dead.png | Bin 0 -> 98 bytes .../Aliens/Carps/carp_holo.rsi/holocarp.png | Bin 0 -> 5821 bytes .../Mobs/Aliens/Carps/carp_holo.rsi/icon.png | Bin 0 -> 388 bytes .../Mobs/Aliens/Carps/carp_holo.rsi/meta.json | 103 +++ .../Mobs/Aliens/Carps/carp_magic.rsi/dead.png | Bin 0 -> 478 bytes .../Mobs/Aliens/Carps/carp_magic.rsi/icon.png | Bin 0 -> 485 bytes .../Aliens/Carps/carp_magic.rsi/magicarp.png | Bin 0 -> 2899 bytes .../Carps/carp_magic.rsi/magicarp_gib.png | Bin 0 -> 2186 bytes .../Aliens/Carps/carp_magic.rsi/meta.json | 73 +++ .../Mobs/Aliens/Carps/carp_space.rsi/carp.png | Bin 0 -> 3713 bytes .../Aliens/Carps/carp_space.rsi/carp_gib.png | Bin 0 -> 2967 bytes .../Mobs/Aliens/Carps/carp_space.rsi/dead.png | Bin 0 -> 279 bytes .../Mobs/Aliens/Carps/carp_space.rsi/icon.png | Bin 0 -> 557 bytes .../Aliens/Carps/carp_space.rsi/meta.json | 73 +++ .../Xenos}/xeno_hunter.rsi/crit.png | Bin .../Xenos}/xeno_hunter.rsi/dead.png | Bin .../Xenos}/xeno_hunter.rsi/meta.json | 0 .../Xenos}/xeno_hunter.rsi/running.png | Bin .../Xenos}/xeno_hunter.rsi/sleeping.png | Bin .../Xenos}/xeno_hunter.rsi/standing.png | Bin .../Textures/Mobs/Animals/bat.rsi/bat.png | Bin 0 -> 1102 bytes .../Textures/Mobs/Animals/bat.rsi/dead.png | Bin 0 -> 177 bytes .../Textures/Mobs/Animals/bat.rsi/meta.json | 50 ++ .../Mobs/Animals/bear.rsi/armor_bear.png | Bin 0 -> 1222 bytes .../Textures/Mobs/Animals/bear.rsi/bear.png | Bin 0 -> 2759 bytes .../Mobs/Animals/bear.rsi/bear_dead.png | Bin 0 -> 1105 bytes .../Mobs/Animals/bear.rsi/bear_gib.png | Bin 0 -> 9926 bytes .../Mobs/Animals/bear.rsi/brownbear.png | Bin 0 -> 2905 bytes .../Mobs/Animals/bear.rsi/brownbear_dead.png | Bin 0 -> 1154 bytes .../Mobs/Animals/bear.rsi/brownbear_gib.png | Bin 0 -> 4780 bytes .../Mobs/Animals/bear.rsi/combatbear.png | Bin 0 -> 3340 bytes .../Mobs/Animals/bear.rsi/combatbear_dead.png | Bin 0 -> 1140 bytes .../Textures/Mobs/Animals/bear.rsi/meta.json | 138 ++++ Resources/Textures/Mobs/Animals/bee.rsi/0.png | Bin 0 -> 207 bytes Resources/Textures/Mobs/Animals/bee.rsi/1.png | Bin 0 -> 217 bytes Resources/Textures/Mobs/Animals/bee.rsi/2.png | Bin 0 -> 220 bytes Resources/Textures/Mobs/Animals/bee.rsi/3.png | Bin 0 -> 207 bytes Resources/Textures/Mobs/Animals/bee.rsi/4.png | Bin 0 -> 213 bytes .../Textures/Mobs/Animals/bee.rsi/dead.png | Bin 0 -> 136 bytes .../Textures/Mobs/Animals/bee.rsi/meta.json | 105 ++++ .../Mobs/Animals/butterfly.rsi/butterfly.png | Bin 0 -> 1402 bytes .../Mobs/Animals/butterfly.rsi/dead.png | Bin 0 -> 227 bytes .../Mobs/Animals/butterfly.rsi/meta.json | 50 ++ .../Textures/Mobs/Animals/chick.rsi/chick.png | Bin 0 -> 667 bytes .../Textures/Mobs/Animals/chick.rsi/dead.png | Bin 0 -> 289 bytes .../Textures/Mobs/Animals/chick.rsi/gib.png | Bin 0 -> 1605 bytes .../Textures/Mobs/Animals/chick.rsi/meta.json | 62 ++ .../Mobs/Animals/chicken.rsi/chicken-0.png | Bin 0 -> 1824 bytes .../Mobs/Animals/chicken.rsi/chicken-1.png | Bin 0 -> 1940 bytes .../Mobs/Animals/chicken.rsi/chicken-2.png | Bin 0 -> 1879 bytes .../Mobs/Animals/chicken.rsi/dead-0.png | Bin 0 -> 418 bytes .../Mobs/Animals/chicken.rsi/dead-1.png | Bin 0 -> 430 bytes .../Mobs/Animals/chicken.rsi/dead-2.png | Bin 0 -> 428 bytes .../Mobs/Animals/chicken.rsi/icon-0.png | Bin 0 -> 242 bytes .../Mobs/Animals/chicken.rsi/icon-1.png | Bin 0 -> 242 bytes .../Mobs/Animals/chicken.rsi/icon-2.png | Bin 0 -> 245 bytes .../Mobs/Animals/chicken.rsi/meta.json | 143 +++++ .../Mobs/Animals/chicken.rsi/note.txt | 1 + .../Mobs/Animals/cockroach.rsi/cockroach.png | Bin 0 -> 922 bytes .../Mobs/Animals/cockroach.rsi/glockroach.png | Bin 0 -> 996 bytes .../Mobs/Animals/cockroach.rsi/meta.json | 55 ++ .../Textures/Mobs/Animals/cow.rsi/cow.png | Bin 0 -> 2891 bytes .../Textures/Mobs/Animals/cow.rsi/dead.png | Bin 0 -> 1143 bytes .../Textures/Mobs/Animals/cow.rsi/gib.png | Bin 0 -> 3763 bytes .../Textures/Mobs/Animals/cow.rsi/meta.json | 58 ++ .../Textures/Mobs/Animals/crab.rsi/crab.png | Bin 0 -> 3404 bytes .../Textures/Mobs/Animals/crab.rsi/dead.png | Bin 0 -> 614 bytes .../Textures/Mobs/Animals/crab.rsi/meta.json | 46 ++ .../Textures/Mobs/Animals/frog.rsi/dead.png | Bin 0 -> 301 bytes .../Textures/Mobs/Animals/frog.rsi/frog.png | Bin 0 -> 2005 bytes .../Textures/Mobs/Animals/frog.rsi/meta.json | 46 ++ .../Textures/Mobs/Animals/goat.rsi/dead.png | Bin 0 -> 1066 bytes .../Textures/Mobs/Animals/goat.rsi/goat.png | Bin 0 -> 2114 bytes .../Textures/Mobs/Animals/goat.rsi/meta.json | 38 ++ .../Textures/Mobs/Animals/goose.rsi/dead.png | Bin 0 -> 665 bytes .../Textures/Mobs/Animals/goose.rsi/goose.png | Bin 0 -> 1917 bytes .../Textures/Mobs/Animals/goose.rsi/meta.json | 132 ++++ .../Textures/Mobs/Animals/goose.rsi/vomit.png | Bin 0 -> 2872 bytes .../Mobs/Animals/goose.rsi/vomit_end.png | Bin 0 -> 3587 bytes .../Mobs/Animals/goose.rsi/vomit_start.png | Bin 0 -> 7376 bytes .../Mobs/Animals/gorilla.rsi/crawling.png | Bin 0 -> 2590 bytes .../Mobs/Animals/gorilla.rsi/dead.png | Bin 0 -> 663 bytes .../Mobs/Animals/gorilla.rsi/icon.png | Bin 0 -> 369 bytes .../Mobs/Animals/gorilla.rsi/meta.json | 65 ++ .../Mobs/Animals/gorilla.rsi/standing.png | Bin 0 -> 2823 bytes .../Textures/Mobs/Animals/lizard.rsi/dead.png | Bin 0 -> 214 bytes .../Textures/Mobs/Animals/lizard.rsi/gib.png | Bin 0 -> 1065 bytes .../Mobs/Animals/lizard.rsi/lizard.png | Bin 0 -> 361 bytes .../Mobs/Animals/lizard.rsi/meta.json | 75 +++ .../Mobs/Animals/lizard.rsi/space.png | Bin 0 -> 574 bytes .../Textures/Mobs/Animals/monkey.rsi/dead.png | Bin 0 -> 348 bytes .../Mobs/Animals/monkey.rsi/meta.json | 38 ++ .../Mobs/Animals/monkey.rsi/monkey.png | Bin 0 -> 641 bytes .../Mobs/Animals/mouse.rsi/dead-0.png | Bin 0 -> 385 bytes .../Mobs/Animals/mouse.rsi/dead-1.png | Bin 0 -> 411 bytes .../Mobs/Animals/mouse.rsi/dead-2.png | Bin 0 -> 379 bytes .../Mobs/Animals/mouse.rsi/icon-0.png | Bin 0 -> 233 bytes .../Mobs/Animals/mouse.rsi/icon-1.png | Bin 0 -> 228 bytes .../Mobs/Animals/mouse.rsi/icon-2.png | Bin 0 -> 232 bytes .../Textures/Mobs/Animals/mouse.rsi/meta.json | 170 +++++ .../Mobs/Animals/mouse.rsi/mouse-0.png | Bin 0 -> 1530 bytes .../Mobs/Animals/mouse.rsi/mouse-1.png | Bin 0 -> 1658 bytes .../Mobs/Animals/mouse.rsi/mouse-2.png | Bin 0 -> 1489 bytes .../Mobs/Animals/mouse.rsi/splat-0.png | Bin 0 -> 484 bytes .../Mobs/Animals/mouse.rsi/splat-1.png | Bin 0 -> 489 bytes .../Mobs/Animals/mouse.rsi/splat-2.png | Bin 0 -> 487 bytes .../Textures/Mobs/Animals/parrot.rsi/dead.png | Bin 0 -> 647 bytes .../Textures/Mobs/Animals/parrot.rsi/icon.png | Bin 0 -> 593 bytes .../Mobs/Animals/parrot.rsi/meta.json | 109 ++++ .../Mobs/Animals/parrot.rsi/parrot.png | Bin 0 -> 16667 bytes .../Textures/Mobs/Animals/parrot.rsi/sit.png | Bin 0 -> 1264 bytes .../Mobs/Animals/penguin.rsi/meta.json | 1 + .../Mobs/Animals/penguin.rsi/penguin.png | Bin 0 -> 890 bytes .../Mobs/Animals/penguin.rsi/penguin_baby.png | Bin 0 -> 669 bytes .../Animals/penguin.rsi/penguin_baby_dead.png | Bin 0 -> 253 bytes .../penguin.rsi/penguin_baby_dead_blood.png | Bin 0 -> 294 bytes .../Mobs/Animals/penguin.rsi/penguin_dead.png | Bin 0 -> 302 bytes .../penguin.rsi/penguin_dead_blood.png | Bin 0 -> 357 bytes .../Mobs/Animals/penguin.rsi/penguin_egg.png | Bin 0 -> 196 bytes .../penguin.rsi/penguin_egg_broken.png | Bin 0 -> 221 bytes .../penguin.rsi/penguin_shamebrero.png | Bin 0 -> 1395 bytes .../Textures/Mobs/Animals/snake.rsi/dead.png | Bin 0 -> 688 bytes .../Textures/Mobs/Animals/snake.rsi/icon.png | Bin 0 -> 202 bytes .../Textures/Mobs/Animals/snake.rsi/meta.json | 64 ++ .../Textures/Mobs/Animals/snake.rsi/snake.png | Bin 0 -> 1115 bytes .../Mobs/Animals/spider.rsi/guard.png | Bin 0 -> 3969 bytes .../Mobs/Animals/spider.rsi/guard_dead.png | Bin 0 -> 660 bytes .../Mobs/Animals/spider.rsi/hunter.png | Bin 0 -> 3906 bytes .../Mobs/Animals/spider.rsi/hunter_dead.png | Bin 0 -> 638 bytes .../Mobs/Animals/spider.rsi/meta.json | 221 +++++++ .../Mobs/Animals/spider.rsi/midwife.png | Bin 0 -> 3928 bytes .../Mobs/Animals/spider.rsi/midwife_dead.png | Bin 0 -> 764 bytes .../Mobs/Animals/spider.rsi/nurse.png | Bin 0 -> 3344 bytes .../Mobs/Animals/spider.rsi/nurse_dead.png | Bin 0 -> 560 bytes .../Mobs/Animals/spider.rsi/tarantula.png | Bin 0 -> 4225 bytes .../Animals/spider.rsi/tarantula_dead.png | Bin 0 -> 886 bytes .../Mobs/Animals/spider.rsi/viper.png | Bin 0 -> 4075 bytes .../Mobs/Animals/spider.rsi/viper_dead.png | Bin 0 -> 829 bytes .../chungster.png | Bin 0 -> 1461 bytes .../unusuallylargefunnyrabbit.rsi/dead.png | Bin 0 -> 848 bytes .../unusuallylargefunnyrabbit.rsi/meta.json | 38 ++ ...ungs_plasmaman.png => lungs_phoronman.png} | Bin Resources/Textures/Mobs/Pets/cat.rsi/cak.png | Bin 0 -> 1112 bytes .../Textures/Mobs/Pets/cat.rsi/cak_dead.png | Bin 0 -> 355 bytes .../Textures/Mobs/Pets/cat.rsi/cak_rest.png | Bin 0 -> 370 bytes .../Textures/Mobs/Pets/cat.rsi/cak_sit.png | Bin 0 -> 400 bytes Resources/Textures/Mobs/Pets/cat.rsi/cat.png | Bin 0 -> 2619 bytes Resources/Textures/Mobs/Pets/cat.rsi/cat2.png | Bin 0 -> 2252 bytes .../Textures/Mobs/Pets/cat.rsi/cat2_dead.png | Bin 0 -> 625 bytes .../Textures/Mobs/Pets/cat.rsi/cat2_rest.png | Bin 0 -> 878 bytes .../Textures/Mobs/Pets/cat.rsi/cat2_sit.png | Bin 0 -> 645 bytes .../Textures/Mobs/Pets/cat.rsi/cat_dead.png | Bin 0 -> 555 bytes .../Mobs/Pets/cat.rsi/cat_deadcollar.png | Bin 0 -> 119 bytes .../Mobs/Pets/cat.rsi/cat_deadtag.png | Bin 0 -> 95 bytes .../Textures/Mobs/Pets/cat.rsi/cat_rest.png | Bin 0 -> 741 bytes .../Mobs/Pets/cat.rsi/cat_restcollar.png | Bin 0 -> 119 bytes .../Mobs/Pets/cat.rsi/cat_resttag.png | Bin 0 -> 95 bytes .../Textures/Mobs/Pets/cat.rsi/cat_sit.png | Bin 0 -> 655 bytes .../Textures/Mobs/Pets/cat.rsi/catcollar.png | Bin 0 -> 162 bytes .../Textures/Mobs/Pets/cat.rsi/cattag.png | Bin 0 -> 139 bytes .../Textures/Mobs/Pets/cat.rsi/kitten.png | Bin 0 -> 1701 bytes .../Mobs/Pets/cat.rsi/kitten_dead.png | Bin 0 -> 486 bytes .../Mobs/Pets/cat.rsi/kitten_deadcollar.png | Bin 0 -> 113 bytes .../Mobs/Pets/cat.rsi/kitten_deadtag.png | Bin 0 -> 96 bytes .../Mobs/Pets/cat.rsi/kitten_rest.png | Bin 0 -> 662 bytes .../Mobs/Pets/cat.rsi/kitten_restcollar.png | Bin 0 -> 113 bytes .../Mobs/Pets/cat.rsi/kitten_resttag.png | Bin 0 -> 96 bytes .../Textures/Mobs/Pets/cat.rsi/kitten_sit.png | Bin 0 -> 552 bytes .../Mobs/Pets/cat.rsi/kittencollar.png | Bin 0 -> 140 bytes .../Textures/Mobs/Pets/cat.rsi/kittentag.png | Bin 0 -> 140 bytes .../Textures/Mobs/Pets/cat.rsi/meta.json | 392 ++++++++++++ .../Textures/Mobs/Pets/cat.rsi/spacecat.png | Bin 0 -> 3666 bytes .../Mobs/Pets/cat.rsi/spacecat_dead.png | Bin 0 -> 881 bytes .../Mobs/Pets/cat.rsi/spacecat_rest.png | Bin 0 -> 1266 bytes .../Mobs/Pets/cat.rsi/spacecat_sit.png | Bin 0 -> 988 bytes .../Textures/Mobs/Pets/corgi.rsi/corgi.png | Bin 0 -> 795 bytes .../Mobs/Pets/corgi.rsi/corgi_dead.png | Bin 0 -> 306 bytes .../Mobs/Pets/corgi.rsi/corgi_deadcollar.png | Bin 0 -> 117 bytes .../Mobs/Pets/corgi.rsi/corgi_deadtag.png | Bin 0 -> 104 bytes .../Mobs/Pets/corgi.rsi/corgi_rest.png | Bin 0 -> 816 bytes .../Mobs/Pets/corgi.rsi/corgicollar.png | Bin 0 -> 189 bytes .../Textures/Mobs/Pets/corgi.rsi/corgitag.png | Bin 0 -> 136 bytes .../Textures/Mobs/Pets/corgi.rsi/ian.png | Bin 0 -> 1313 bytes .../Textures/Mobs/Pets/corgi.rsi/ian_dead.png | Bin 0 -> 523 bytes .../Mobs/Pets/corgi.rsi/ian_shaved.png | Bin 0 -> 1396 bytes .../Mobs/Pets/corgi.rsi/ian_shaved_dead.png | Bin 0 -> 557 bytes .../Textures/Mobs/Pets/corgi.rsi/lisa.png | Bin 0 -> 1470 bytes .../Mobs/Pets/corgi.rsi/lisa_dead.png | Bin 0 -> 594 bytes .../Mobs/Pets/corgi.rsi/lisa_shaved.png | Bin 0 -> 1585 bytes .../Mobs/Pets/corgi.rsi/lisa_shaved_dead.png | Bin 0 -> 590 bytes .../Textures/Mobs/Pets/corgi.rsi/meta.json | 415 ++++++++++++ .../Textures/Mobs/Pets/corgi.rsi/narsian.png | Bin 0 -> 1849 bytes .../Mobs/Pets/corgi.rsi/narsian_dead.png | Bin 0 -> 675 bytes .../Textures/Mobs/Pets/corgi.rsi/old_ian.png | Bin 0 -> 2447 bytes .../Mobs/Pets/corgi.rsi/old_ian_dead.png | Bin 0 -> 685 bytes .../Mobs/Pets/corgi.rsi/old_ian_shaved.png | Bin 0 -> 2712 bytes .../Pets/corgi.rsi/old_ian_shaved_dead.png | Bin 0 -> 762 bytes .../Textures/Mobs/Pets/corgi.rsi/puppy.png | Bin 0 -> 911 bytes .../Mobs/Pets/corgi.rsi/puppy_dead.png | Bin 0 -> 359 bytes .../Mobs/Pets/corgi.rsi/puppy_deadcollar.png | Bin 0 -> 118 bytes .../Mobs/Pets/corgi.rsi/puppy_deadtag.png | Bin 0 -> 106 bytes .../Mobs/Pets/corgi.rsi/puppy_shaved.png | Bin 0 -> 1005 bytes .../Mobs/Pets/corgi.rsi/puppy_shaved_dead.png | Bin 0 -> 381 bytes .../Mobs/Pets/corgi.rsi/puppycollar.png | Bin 0 -> 159 bytes .../Textures/Mobs/Pets/corgi.rsi/puppytag.png | Bin 0 -> 145 bytes Resources/Textures/Mobs/Pets/fox.rsi/fox.png | Bin 0 -> 1524 bytes .../Textures/Mobs/Pets/fox.rsi/fox_dead.png | Bin 0 -> 539 bytes .../Mobs/Pets/fox.rsi/fox_deadcollar.png | Bin 0 -> 116 bytes .../Mobs/Pets/fox.rsi/fox_deadtag.png | Bin 0 -> 123 bytes .../Textures/Mobs/Pets/fox.rsi/foxcollar.png | Bin 0 -> 145 bytes .../Textures/Mobs/Pets/fox.rsi/foxtag.png | Bin 0 -> 141 bytes .../Textures/Mobs/Pets/fox.rsi/meta.json | 92 +++ .../Textures/Mobs/Pets/sloth.rsi/meta.json | 38 ++ .../Textures/Mobs/Pets/sloth.rsi/sloth.png | Bin 0 -> 4219 bytes .../Mobs/Pets/sloth.rsi/sloth_dead.png | Bin 0 -> 1072 bytes 270 files changed, 3805 insertions(+), 2 deletions(-) create mode 100644 Resources/Audio/Effects/chungus.ogg create mode 100644 Resources/Prototypes/Entities/Mobs/NPCs/animals.yml create mode 100644 Resources/Prototypes/Entities/Mobs/NPCs/carp.yml create mode 100644 Resources/Prototypes/Entities/Mobs/NPCs/pets.yml create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/armor.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/cardborg.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/deathsquad.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/fire_extinguisher0.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/fire_extinguisher1.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/ian.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/oxygen.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/petcollar.png create mode 100644 Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/walkietalkie.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/beret.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/blackscarf.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/bunny.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/captain.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cardborg_h.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cargosoft.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/chef.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/christmasscarf.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/clown.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/detective.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/festive.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_cakehat.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_reindeer.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_white.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_yellow.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_cakehat.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_white.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_yellow.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/helmet.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hopcap.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/kitty.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/meta.json create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/nursehat.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/paper.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/paper_words.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/pirate.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/policehelm.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/redwizard.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/santahat.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/scarf.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheet.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheriff.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sombrero.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sun.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/tophat.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankadown.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankaup.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/wizard-fake.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/wizard.png create mode 100644 Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/zebrascarf.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/holocarp.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/magicarp.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/magicarp_gib.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp_gib.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/meta.json rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/crit.png (100%) rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/dead.png (100%) rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/meta.json (100%) rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/running.png (100%) rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/sleeping.png (100%) rename Resources/Textures/Mobs/{Species => Aliens/Xenos}/xeno_hunter.rsi/standing.png (100%) create mode 100644 Resources/Textures/Mobs/Animals/bat.rsi/bat.png create mode 100644 Resources/Textures/Mobs/Animals/bat.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/bat.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/armor_bear.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/bear.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/bear_dead.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/bear_gib.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/brownbear.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/brownbear_dead.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/brownbear_gib.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/combatbear.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/combatbear_dead.png create mode 100644 Resources/Textures/Mobs/Animals/bear.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/0.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/1.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/2.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/3.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/4.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/bee.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/butterfly.rsi/butterfly.png create mode 100644 Resources/Textures/Mobs/Animals/butterfly.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/butterfly.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/chick.rsi/chick.png create mode 100644 Resources/Textures/Mobs/Animals/chick.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/chick.rsi/gib.png create mode 100644 Resources/Textures/Mobs/Animals/chick.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/chicken-0.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/chicken-1.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/chicken-2.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/dead-0.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/dead-1.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/dead-2.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/icon-0.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/icon-1.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/icon-2.png create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/chicken.rsi/note.txt create mode 100644 Resources/Textures/Mobs/Animals/cockroach.rsi/cockroach.png create mode 100644 Resources/Textures/Mobs/Animals/cockroach.rsi/glockroach.png create mode 100644 Resources/Textures/Mobs/Animals/cockroach.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/cow.rsi/cow.png create mode 100644 Resources/Textures/Mobs/Animals/cow.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/cow.rsi/gib.png create mode 100644 Resources/Textures/Mobs/Animals/cow.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/crab.rsi/crab.png create mode 100644 Resources/Textures/Mobs/Animals/crab.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/crab.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/frog.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/frog.rsi/frog.png create mode 100644 Resources/Textures/Mobs/Animals/frog.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/goat.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/goat.rsi/goat.png create mode 100644 Resources/Textures/Mobs/Animals/goat.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/goose.png create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/vomit.png create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/vomit_end.png create mode 100644 Resources/Textures/Mobs/Animals/goose.rsi/vomit_start.png create mode 100644 Resources/Textures/Mobs/Animals/gorilla.rsi/crawling.png create mode 100644 Resources/Textures/Mobs/Animals/gorilla.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/gorilla.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/gorilla.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/gorilla.rsi/standing.png create mode 100644 Resources/Textures/Mobs/Animals/lizard.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/lizard.rsi/gib.png create mode 100644 Resources/Textures/Mobs/Animals/lizard.rsi/lizard.png create mode 100644 Resources/Textures/Mobs/Animals/lizard.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/lizard.rsi/space.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/monkey.rsi/monkey.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/dead-0.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/dead-1.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/dead-2.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/icon-0.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/icon-1.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/icon-2.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/mouse-0.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/mouse-1.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/mouse-2.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/splat-0.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/splat-1.png create mode 100644 Resources/Textures/Mobs/Animals/mouse.rsi/splat-2.png create mode 100644 Resources/Textures/Mobs/Animals/parrot.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/parrot.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/parrot.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/parrot.rsi/parrot.png create mode 100644 Resources/Textures/Mobs/Animals/parrot.rsi/sit.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby_dead.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby_dead_blood.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead_blood.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg_broken.png create mode 100644 Resources/Textures/Mobs/Animals/penguin.rsi/penguin_shamebrero.png create mode 100644 Resources/Textures/Mobs/Animals/snake.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/snake.rsi/icon.png create mode 100644 Resources/Textures/Mobs/Animals/snake.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/snake.rsi/snake.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/guard.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/guard_dead.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/hunter.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/hunter_dead.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/midwife.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/midwife_dead.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/nurse.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/nurse_dead.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/tarantula.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/tarantula_dead.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/viper.png create mode 100644 Resources/Textures/Mobs/Animals/spider.rsi/viper_dead.png create mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/chungster.png create mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png create mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/meta.json rename Resources/Textures/Mobs/Parts/{lungs_plasmaman.png => lungs_phoronman.png} (100%) create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cak.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cak_dead.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cak_rest.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cak_sit.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat2.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat2_dead.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat2_rest.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat2_sit.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_dead.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_deadcollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_deadtag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_rest.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_restcollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_resttag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cat_sit.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/catcollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/cattag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_dead.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadcollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadtag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_rest.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_restcollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_resttag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kitten_sit.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kittencollar.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/kittentag.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/spacecat.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/spacecat_dead.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/spacecat_rest.png create mode 100644 Resources/Textures/Mobs/Pets/cat.rsi/spacecat_sit.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgi.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgi_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadcollar.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadtag.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgi_rest.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgicollar.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/corgitag.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/ian.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/ian_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/ian_shaved.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/ian_shaved_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/lisa.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/lisa_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/narsian.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/narsian_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/old_ian.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy_deadcollar.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy_deadtag.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved_dead.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppycollar.png create mode 100644 Resources/Textures/Mobs/Pets/corgi.rsi/puppytag.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/fox.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/fox_dead.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/fox_deadcollar.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/fox_deadtag.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/foxcollar.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/foxtag.png create mode 100644 Resources/Textures/Mobs/Pets/fox.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Pets/sloth.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Pets/sloth.rsi/sloth.png create mode 100644 Resources/Textures/Mobs/Pets/sloth.rsi/sloth_dead.png diff --git a/Resources/Audio/Effects/chungus.ogg b/Resources/Audio/Effects/chungus.ogg new file mode 100644 index 0000000000000000000000000000000000000000..054ac995bf0c28cbd3e58f990176ea54953c7816 GIT binary patch literal 678300 zcmagG1ymft(=R%UySoKeeb?^ z?w!-yr>CpCs;lZ(JvFmCt7u`N3P1q=IT{T9H6l0kWk4h#H+v^zE9ciPkYC$>hPZ?N zHkv_-uQUJG@jCOB!aiENi>Cha|2l>s|1n|!)3vM|ESVLZEJ$svj5YqUCzU2;XJun& zWoP9erB$@GvvP1Ub2hVcp?hVA1OBMmo4dFhIhhH{8M&Er@i6nSF|)CHvTS03RsnP~y#{=?W8aX+2UBq+VNntf46hp?!EJ5p4bcRgrR< zVgmpa;71D|mA@L@7iCs~Bk+t189Tgn1HZ%aX zn6MOC5SGeoWgJ2lj0dj15;+Z$6=ygh(3j+VL0}&w4Ul6$D2P|!KPbtM;yAMKPN-DV%{<{;h0ApP4Q zBfQ}MlsljG+t>0}by5(JL&2A{MVCiTkhjT~2N@V#0Rfo4nuHWSj+`zoU%JTrW0h5U zqh)!c?MN--NG;OeAz*Jqy{-nxu}UlY{}glWB(wi}5w;wp2ZX`49B?EWaHNz_p&W2x zg#BybK>+MiVHL(cCr(Lc&H?AQ;3DZFK9nFgb|r`UUru;+I{*l?5%oC|4S}tp!ZhQ= zrRglV;4HrYHpQz&{?CX1U%Y@7AO2X(>%f|LZ}Uar`Z?FX@I;`*Knz)11epk(Bf`>JtTHj73&N7Ej_5jS`>3Hb_@M5*hVg zrZhlF1)rwS<;!2qNdX`b?JtV|tNIJ&e<&`93!@*Vts7+@VSKGBddB&WzV)DqA+do` z%*X{sab&}8mU9)KlyzalybeQQf{F}X;lGFiJC)QlMg#``Z;%A1I1SSkgQMbqI_@{+ z1Um85|0omZM9LUc;4;O|q{<-I|ZAryJ{deT#&_-?Y zMo~z|QEJCgdn8$erj@2<9hBxF{BMzC8CIMURvZ$x7ZODqnq(E4R@RbdGhB7l`hP9| zD{>^AD8U6BITB8k|08m`*@(oz(NxPQfB8>G!6~poT_kY-rvm_>I|fPi?>?fe!ZfGC zHK)R)t|s_@juz3Qa(nRti_tic z_>jq6Vnk>Jo8$O;kS;e=XtBlR0wSq+qDYZ{6zNIt@WO$&Jt#mK0Q}en*?RGu#-)dH z#K+m-GZO~+XbR(}rRkWG@HptGiZD#JGV-UThYAw#WWzEGFib)#!IJ=3@CPw>G6owY zj0FJ3NGb?)K?y43bh|Ms!)!Z5Dl&Y<8LH!aaKwSbY%rMtXmo`{s^fG6M1i9sI~f6! zBD4TN+6@AKL}@uqB>*%UV8elOBA!zgi%J$#Vgk!-0aJbs63@0IhyoGX}WG;e0qQGiyRbG4iN^Pw?>UTV9W%Vwi8!0M3Y%OhVwL5Bc9Bs5E$}c1E|dwRQ|W6-T1V>OT63X6roq+PHS>JW;v}k$Gi@t@I1&gg!OX2;{*TJjca~268u0k7#pBhY+w!x=aMl%`0;`O7_vPq zRW$lOQWrFpL(&2@HW)Hz1(`mg1SOe|WC^qM{iJG9(t{cC7&4Z03DYXDxrItH*0~Au zD%Lecv&JW+1voNRObOFEA4~gZbt2GB(Af71Ovk0+3+rDAU{-rM1t_92g#}o$GE5qy zU?AsDi%69gV5mx$Hh@_b7U0Orur*@o+Of?OfoBw8=t|S|W2xFQ^`}wvlY&_dy$b&; zV<#m6%qle?PDZ9OF-~PPBmR|DK$MI$U1OY#9C%eSGBrUeIyP+c87ekh;8lTH#mU$( z_3P-$HMpYbApTudWrK$G$I5=NaH>K)S(%y!9BVtaT>=@a%2(l~eK@*NVBxCPTt)LA zUkSRlg7az4GL`eQDv@ARMu}O=28a`0kQU1Yg3mF_=}H zN(6X@u1!l((nl~MO(ncxcgfj?>tFB^(FoE-q zzhMg_AKC{(K-Pu_#KBSAPYT|5VDJm^0w(bauuRa%3-Q2yDa0}X+ZN9mMU)=jWL$)n zE>KB^o-PPYMw+S+ocbaVf%7?=$pkGT@PhvBBOj2Ak=TMsUDVj=(F5gVXiELT7Oivz zL!q#5ROe%5{h}~jWzamkEEO0E=9RrEI^f*)7`&k4zxxOk5CaPc!r6kMivk zae{Y7qCgb-{)_+=Q8;YyGQiiWQ9f{mCJH8i^S#^va8;Nv{Yp@gIUoi1(G|M95)xDp z0D#^BoDqFfHg*0In*-i6ApnopJyV7cHaFotT|a3;oC;VRSfx@YB(UxJG+qe_I>)47 zXxMPMp@Cu5uOlW?*{5Y)MOHX(T*0*f264k~nzam=U_I6X04vb2z&A)j32quZczRCL zze@O#g3TDg7K~*a#!o`~Rt>Yh4M3-2bcq z;VuMN;02aYLz0({0Fm)kM>G_0qSuoGUNH=DU@+Z&K_J*YxneSWv{Yb}(9wb61CHnf z9hp>T6%~4_!lc)&V^&9o3CtUos&HQABUlPQTw(p}tEfd0DZ0XWop2^_$jN|DjU%{% zRlq~~7L6;|3Z_-S@rh?r0S+J?Yw*&ondlnkjUyVs_6P3}^Ty#^^E!yYhMfc8C-u!S zII*Da$JEAOUz358ZPCBhe!VeJ0sA876)j}qGGJ7_VuUOZ?1q1RfieH94~>8CAGE-L z+WR*yK}qy4wBT~VeRRZNkkS5aQGr|V{}Q;rU<||nr*a8k&j0!nFu*eYrgsS{uZRSj z=9Tals()MXWUuD>JDBX>+}B(X3{l9}U6^8@GJlxdhV$1CNF~cb8Nd$-02~)T9?{JY zlJ;c;CdmfIIH4IcqpO7RN!FN2;rHRqC9oA@sj67-XBbB)D`uL=u=P|VXvomUewlWv zXmA?^-yD*{0jy|b9R9)}EWAOmpg<@(Am>~6B%2--)HVh?0usVNp!2j9B!Ct;h!h*5 zg@l1w=AUQG4`}Iq7=-mhij1reN8D%chSpzkB@HBnA`9sQVa50bVA_4!L{@D64$m)9 zi1PQ=cmn`P03Z&Tl$<<`FA60ZH3lsfJq{xtGXV@=0Qd&-Lk0XOp+iDK%%k#qwje3R zO#=&hx1p&1l3y!0xPP}QP=DM1Zk@Yj{*hmAonOUZitoV^v9fNS{MuTcot>Ik*`TAL zWn*FEWZxc}X=|^qF8D}iv8iG>nkn=LC`*wMI+(%{Yg1j$w3HNR_&gD*kRkWg;_Uty zv757@{7ZQqP;U$m1>Nz3>+{EM7@+=HQjyB+swAW0{MU!&hRNj5m4Z>{ZCdN-g~uDe z9yAee0fGlJ32NyOSjdXA8AWW(Bi7?Xi7zrEx8?MqeVq4Z7j!5wJseN>3XfRaX{z&_ zkbf##I?R!fRZ-qDYd;XXy?1_)|16@B73-tnbh?nlU-u@5m>D*^L^RXbsMC#zYWi#G z4`nT4v8HkHN>ax{+?F~~EU1Aw?ER{0oTWBDQ%kv}-DGRpqHpcpgT4gV?_?-{-p_9( zUW&$`MIJI$&WD9?=iTTQmldjwC*m1PEN3os{BAZi@S%iM9>wIxrf;W1aT{6rxSL~z zWXce2>S!F8&m@5+XHZv zkr!g2Ii58en+*NqU6oWkKe()hDXL!X`Rx?6;M`)Gm%JiixO z{aF3j!6(*Xj_vSFz-UV|Q~C2Cg}tVo;<&EJ2sbA-8@|%9kloa^^+uJt#U-3Y>Vb6iQI00yPu=;XVjmZXy8jA&oX*ZblX+ng#~;)%`(5Rv1o z1F$B5Q$>TLqTx4nnGo|$K>7*-6#=m9hG9kavhs7yPbKjcy5ZSB)1BGE!AC-+d@9#) zw|&-=&>;i5mKK9>(iAe2BF8Kxn`Myk9QijblJ_hTu> z_m;MM*4(Jk+59Yw^9 z@1XId&^Vb)l3L$l{-m`lxbyMK%Dmk3v3JKAoAcX#(cG*K;k(FjYos0I=2j7A6Lp=ZqUg0UI@t?va*)D7Y$y85Bw!@R9N zNZy=n-8eoFkv7P~v=Y(k!w|a=RbfP-`+l8r*uSfM4T^`6^ZdT$O?@aT4%#68r)0cm zY6*RYeFsD!*gA4p!~WO%>hNfu-Ss*TyFsgH&;T(55Km>_ipR2D>=m-Da|R{g(saii z2E=no-*<*Ieo&#!>d&}1(vON!#J{4tP;i6^V8<6x0`|FIsTW)To#=yycQ6oxw3^m*&g z)O|b4IiG#)kRoR`j~YlxKZ|?N4(5mZ|BlxvY3zWgJ@EA zKrcE8JHFPNn9L>w?vztIvVhjIk1^JKN-^ReaJIe%WTZ(Q87jveNWjP`%up}6nRV95 zOHAvp5)c!@BnDsGm-@;ZJ;i`dh6z7BD%KY?gv0c!*Tah zCuUG`#-FW1oLGJzsVQtBlrEYNQ|g5*x`4IiBjAKK&qAhR2q0i9^*3Tmyx-Kal!5e3 zpSKOO1z~hQxImz%(O`9dM*ybR{7~ex<)tRr-PYG5;yrU#ZQkB8Ehzh#_bz4=Kk6%B zSd}L9ESwV}jb)~j@=NECUl-!CQwMk{#ce }&-$HK;U8VTyhC9B1!VN`d^ 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≥v01hIu`;tUDUC~$bkKKxY%#?V9t3Mju9 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ⅈ8xwUW)Eea|trx0@R7seIx1bpfi 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 Njg8JvPJ+H2R4n<|&hti|aEuHAkvBtDu$egT+ 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

0T6v2ifXSdI4pN!7-{Jk;ymIZc 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 z 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 z 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

h}ILAdaQ1&?$60N=tj@UVL>62;8pUdM-a!c}| zGgb-T0&K%?wgE1?{-0b^u%S7Kh#dcRc0Cr^W7Wx)l33e^GMTQ|9D7bLV6=;#(@UPo zf_pc^$m4fz8X*J)4L%WwT)M|v-t!5Vds>?}6keFWqM?|WUQBMTr#RnB84vq)`j;$% zfS=%R!24J>A|6ivQADa)v~UmI4DK@I$GCUhP6!xo1|iCS(;cMDCoytsx8Q|JFjML< zU!3)i*n}ZW6ZRRY1P4X&simEfKD);>HC?=-Kq=8FN_lEuv;tzoW0 ziiLZOs@*d~g?wJYOs-Pk20lAc@QLwxe9WoDAgXkH0->y^P}RAg-RswMX6^Zb~Z{fX!7RB>6AH;?;tL!o~_XX}Wpz7ax^O* z+O?p8upXZ{!^y{k?w=q;Ro9fCGvYcBIqx@7e(gt3(P^jGfy=1#b)k2ciP4pOdklwe z@q!-(_gC726701j>hP_IQ;GSFiQMF1)(I(FBHH8hW3$*xYs5JhY87R>+N(L z9*BS>UfZC;t@@KcOgwxz1)^o|4+4uLrb2vzFQ$zkw^>@P(e<6HZF^^2ZS`k?fU z_*$NL>x)G5BzrU)Dfa|n91EuAOwp=RU+<;mS9sYj%edvy1m}mHP2kUGZ!agpyhm$B zWfjvBc56`hMRr)PSb7dub`lAi6@lU`T05RB<}_(ioTj0FiHnYG|GA6`Uwg1_1kf+ zC4usA(F_lL#D>%_?rwU}#^bVdvXAy#y-{QXc};Fj8!5tgM@*^7GjM&l$kUjhxoTrEOcSv@Q_=?&?Jcb1CmYuK7roGsxNC$iVG=SaoJ

8QjOMS93w^$&yY9iP0C2=>oPtoYq@QHl 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

ip`HOVEFx! zZ|?JJ+dtjB?0R!%wC}mQt5)w5XW9RO(_zPl{<@^iAH$VjpIh4FJ9jqBO&JRL_sjAH U3Or=?10#aL)78&qol`;+0AAI-=>Px# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/kitty.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/kitty.png new file mode 100644 index 0000000000000000000000000000000000000000..bc30f075d7dff529309578c55008b53ba30c33aa GIT binary patch literal 866 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVAk|>aSW-L^Y-rkyhjcK$3K32 zsWL0Xv5&i@f-yx?%-_MYdkTBO6s7fInzsBCge-$@O<7qKv~Jfkt@!4N9~~3+W}iP) zXCI{X?@!y;1fM05EvfWK`=e&=HTra3Dc;59+2^0zmrqOHKDqwh zPX-1BgUveH>5<1+-42{OEAMw;wraxcW`Aauo@RcqBVojcTdL=dx6jKrk)6|{c6);J z!>_-0y6yX2vzV>pam1vHDd~E9-#z}U?d2xi`S`|@%#-0~%(H+FDGjXI{qexY+qo0p zoBdxNYx!#x=bUxo_m)gska3CcuT10IC9=M0_D{!D^X!01<%*IITR(^1*jM+uzv0$(`?u?pZvE7< ziK>VB4@@6ueO0ua=hNM%hzWPZ%*?szcCPTRJzLObBK&0P&^kjdbWo%8}&vojn zeLwxTX5KO5Q>?hF$nlLlm#%y%ymmA9bF82F>}R{@t;yT^Zy|p~$2&FQted~rF*?Z_ ztccrwtT8}(ZMv03fr-O|42Cx!QZJdFs0rL5k@HV}!TFqu2N&EMzHL)?e7^c!#iG4; zyUO;l+^a!xVZ-TCz2bLIwilNeESY6^J&NVi?z8r{7=SJ-yLTsSwq?cipSf8(w){!s zb(c<oCsh@k+@CXR`8SI%pUWu2 zUHZP!tMtLuYl+iRpFX=Q-)SH#V!C5MHbHyHn|SJa9Ap5U~qLWqIkMWENpx4-0{ z@BeyFB6-cEEjp)z%@VKtS;yO9c&&2Y{+Q_NU(cH*KKXO|s(jw<1e$`pj(;fodhhg^wtqjvXYd1E2?h731id=3 z_|wJ8weOma%-p*}p;yy)i)8LM?=Hh@L0)^~t3TJBlG@A3KY!tTQSmcAm!4Pty?V)M z_V)X`pL@vLHe}9fn`$6e$9k@d+cN#>9M!+;wp@62_xT%N0WSfF4G!DOg>L`4de-N5 PIY_|M)z4*}Q$iB}k1mk` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/paper_words.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/paper_words.png new file mode 100644 index 0000000000000000000000000000000000000000..3924013f33e1149c5f847d13dda5d7620125ee64 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3|4aSW-L^Y+%p+`|SUEf0&; z0uHiTG;p0;FBq}m0z*EdsLoA8SB2I>C5MHbHyHn|SJa9Ap5U~qLWqIkMWENpx4-0{ z@BeyFB6-cEEjp)z%@VKtS;yO9c&&2Y{+Q_NU(cH*KKXO|s(jw<1e$`pj(;fodhhg^wtqjvXYd1E2?h731id=3 z_|wJ8weOma%-p*}p;yy)i)8LM?=Hh@L0)^~t3TJBlG@A3KY!tTQSmcAm!4Pty?V)M z_V)X`pL@vLHe}9fn`$6e$9k@d+cN#>9M!+;wp@62_xT%N0WSfF4G!DOg>L`4de-N5 PIY_|M)z4*}Q$iB}k1mk` literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/pirate.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/pirate.png new file mode 100644 index 0000000000000000000000000000000000000000..d977afefa571a7149b7e11917aff2ff5cc291937 GIT binary patch literal 535 zcmV+y0_gpTP)3~&8;q@CtlYuC9<(%Wf>p2z*I>y8taTB%11qsKA+d38aU7z?>jlK(= zObqt@8n*DB^TF z0d&f5J5c9?i=rS10-SU8Zyd*zWl33aW%T3`IF z+u)orrmt=BGCvH%hu<#wO(&q9@hrxNkY!nYZj;ICn*V&$VHkGG zZ@f(XZ2IEB!#f}deo9$u>wUT3?|a(@)>?PJ-{1L0zKDp3h=_=Yh=_=Yh{!MZmEPHX zSGFw6k23nK^-AvrpPQ&r6tUaw0_U6q2z(dyFYeEq&1TLwLw%>W?@4If9{(3(jJq8e zV;GOeq-hHLbava;^Vg(l%6L4+*Y!Dljr-%-e1787=@fvfsu&CgESF2x>osLray%Xz zt$@j7f-#0PP1$TVT(4I~qY(gy!vW}TMf9=){LQCnN>x=s%lg3onH3StB)t1MN!0dyKS@r=JWa64|ou-Vrk9FuGcHXyOhOU(Zyq$ z35#R%9=4s%PKxv2YrXj2+`PN`&hLG{@7?`k*U-`N;{L1&l^QRuvoicRRQNq^cN`;w zjZNv2XMfiIP*&e9cURE(a1UZ8vRYz^`9i+?kmXMa+h zXm{lASIfBh(evsV{r;>^dDQ=vo5A7bmYyeNhh%@Bj8B*l_}KrH%7n9`3tp<3+;!2K zTz-D@&ZaXZ$w%MYr#$jrKP@#|Q-}3D<(6eTh@vJ!AX3>qWfb^2Ve}T`ke)-&SeOdB*L&J1+26^MWl5 zipEO2=C)P8xSlv&o`MHmd(yE)BBgk*bpc9?NYP>5A#Z&dwcD(E-4y6Dr=OH ze|vaau8hd}Df?_5I5PfhUVk*Gxy7E7gIpzlk$gJTZ}h&5{g?E9t!XrMypuGH>+a5HTMNB|d%a6D zz122MkG&`BLDJDV$;_{LNuDHsbWXjQ_R;ZfV$PDPK|@nXx|wN^bQssM-b@GQbT<3( z-keRzolx%NrLQY-FKIWatsW{2bBv1ThD+59QR-!@{G%vRHP_P3HN zzUIGkT6=1)GID5+OBOB{$-FYo<_& z36V$4O>UG@C^hxws!E8|Seo4M&iOQR&_%C99-ws!Wmb_jk{fXlqK`HrSFdFXWmCzG zG=*}DPBPTY#dDUVP@3liTO>EqjmXssmi`o)-%eU4H%Ng100000fHiyquphdnaw7`> P00000NkvXXu0mjfvVyt2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/santahat.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/santahat.png new file mode 100644 index 0000000000000000000000000000000000000000..8056d14327c3c6574ce7f44acecad447a686e027 GIT binary patch literal 446 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU~KhtaSW-L^Y)gb*I@?<)(7Fq z-p<{;dAl;i88^;ew+)%9WU-@$?R@ed!YD8O#iOjmPkH^9lmi|Yfok|`&1a-P`eZMz|!c|w(a-0 zH}47RKh^r0XZuF|`^%1Z=2pyjD(@#>QLWsy{+YjFtk3+{Kb5y!TUs?|8t=uZ?$^6^ z?EWN}W|=29kAWfbSI^U;&hCq-pu-pT*`#rNMYzMW%W*!+ai0LdET77{afgPb!QcokieqFRwwrV zd6fUas6NTCVcb{40AJR_{2&zopr049KwI{*Lx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheet.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheet.png new file mode 100644 index 0000000000000000000000000000000000000000..d71f99f848b99c94edcd612c417d692b43cb5d5f GIT binary patch literal 1130 zcmV-w1eN=VP)S4#@0dJ8}ZskO((Q2f0G_*c+NfGV{wl?A`XABJJx24fXNWAI=7E%5#QeHo&* z>W`HLI)2W1Vcm!S>NDV6bP|AbK9(Q7_-C_OVciF#WWZk&st%otXKdUw&9jL6Vrc$p z4Cs5Is`jPReklId0&vbDiXvgF&tKV&qG)hID5ZwVuP!n_rL@)CY3HXv6h*)o)4q%_ z#zqMqfg&{Vw+$Wupwm0N@B2Bx&j2J(M*#r5yu1_we|mZvZGND-$hiYb|GUh*gj|_j zdP;o4gb5QSOqeiX!e0iK&3~<}i@^8&oO7NJ;rNhk=`i?&i0}J3rL_0AIvuhs14`*A znK1f{&^b zcL$VGFiq3ooL@&4=z5=Xo}W&q!uIKO$}vzGp67|figd^BFm z7!&KoVo{p*QrrGBPwF+DZS%~?34mUS9rE|hCY;31#a<=jy2CfUP z4r!VKz|RLu#u)5&yUxKQJkQHFn+;f&CFcEgLev38suDuG6RWwlNRk9>+ZJ}3ra}M! z=p_OM4*)^{Ie3+`31Jv&MJQE*b;0Y(TiwV!o6Ud_0+waL;c#f}q>97g0G4F|A*A#P zoDfp!j}BF(bfHz>_w)67UFlGkWd#D+u38U)I*uxTbXc#~B@tS^3uIXaNs=@Y>GmCu z$6jNA>$(P3j!hh@KS`3b?tqd2I#mGxY}*Fgwo48FW?`Z$l+aJKDTnepUI62!f!Hm8JBIf!6F;P<>pDa8M(EI&f9A}Jy{5J+U w!x6O;6NoN7iPsL*`)%5lpY3wB*Cvkt0s7pPwk_cEvH$=807*qoM6N<$f|j2dyZ`_I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheriff.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sheriff.png new file mode 100644 index 0000000000000000000000000000000000000000..ac29b44c025bb0984d49b1815d0884ba3d793e24 GIT binary patch literal 586 zcmV-Q0=4~#P)Pf8+;MFYKCkWW_&(3W!*jRX10o_KuB_x|4L~uM zF~^a=lebfc8$P!OJ4x+&4S=229ycGAT*q^&kWHI_?!v0h&DtiEoZb#o;@YdS?v z##b3mPVl+>n&tNw00;-Ip7#d|*|ceHxBeRIbaKqIN$_L>in)xj>osDL(0;+}HUNl4 zLWF}B0n6XhH=&rzn1JOc9JGiiHL}Zh=_=Yi2Uci Y0fGn1ZPu$EEC2ui07*qoM6N<$f|+j|Jpcdz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sombrero.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sombrero.png new file mode 100644 index 0000000000000000000000000000000000000000..2f199b9ef044a4fc8cbea4e91218e00db40dd78c GIT binary patch literal 523 zcmV+m0`&cfP)+*+7Y6(QczHFU&Zi3(SyV_X$H_)l0Ugmdl^8^+e5v*7oz&(Kg^=id^4(3jvh=_=Y zh=_=Yh=_=Yh&+D2{BdY9I^%Z?$M}LKqci=8;V2?waxs(9m43x=x{Ann@p^laV$-Ho zt&oC_(V73na3~)WjK#?YN_D*@>6A>I=;wu1FEY6G79V0(j-`~wR^=jpx8j8S(h=_=Yh=_=I@E4n5^kb{ez2*P_ N002ovPDHLkV1h-3|6Kq8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sun.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/sun.png new file mode 100644 index 0000000000000000000000000000000000000000..730dea902e53aa04c43f68e5f88c2e5f047ea059 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=lRaG=Ln`LHy>*(i*+GEeg0EzB zlY4NJEyv2FgI-Kwf&$SScu&uaaXR77p~hvor(7y+#>~C%m#{D}97vDVyf{_J^0~zE zkGk)?I`@A6A9O$H$(&?Gknup!U|)PA`Nd=Tzo`;Ip`n?xmWA$~wXCyp-sP3K?{^m8 xfB)&8uk7nzU;Q4eUfdadKKTBj9FVSSyO>^FH)Uac5?u!3db;|#taD0e0stGdP%Z!f literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/tophat.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/tophat.png new file mode 100644 index 0000000000000000000000000000000000000000..f723d36da8e4c2cedacac1c6b2ffaad646ecb987 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=dpunnLn`LHy=BPPq9D-vaQkds zgIkv_RPa{mpAOv9#@qW=>dhVDoK4;iNq_cB&EPz0@>zx9K&@?&USu|Za?h@HmoI#; z%AXzNb?bZV>s@JkZ?5{cIc#$HLG~?q3$})zTbeoR$(+gG;~raNMT(vMyhdWN6UWl( zHBtZ9HzuyNt+S0zme{tAALtGUh>5uPH}d3zLy?L-x7Q#4*>H__%QVpmKbEBwJX|B- lHZd{CXomv_6GZKbSIqiF#j+3g$!miIJYD@<);T3K0Ra2@WZwV) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankadown.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankadown.png new file mode 100644 index 0000000000000000000000000000000000000000..9b0b85e2bc81adba6dca217b91d1d46ca64d579e GIT binary patch literal 1097 zcmV-P1h)H$P)a8D*QX8rCQzAk4sZ#)qe|jCru$Ia2=khXv|E}ta z!v?&2&a7FEvTQFFBUi2nk^6&Cu!-z;gz1@?19dN7yeQf|c?zWpN^1`fA3btyF&vJ^ zMFgFIUuCV@%p1*>1J|q+o9OfxDOYRc3G;aN=*7_XE1+u{pD!&JPM+vo33coR<5HppirtD zIWS$*D3lJ~o#RTS(*US#eE@{i3P#l;Q`q?osg*tDyVoDZ_5?hhomC8_<;cg%?sbh= zO{G{!CV4tPuWb8U*?&BppH~)=Nmf%Sx0`-Byg4vn>-XL6b&@1Wk|arzBuSDaNs=T< zlJtsk?azy=LuW)R+6ut#&XLVRnXKqw>cNAC+WFwxHPNoD@5uvLO6T})?pIg(?n=nj zp)(>BY&x{;t#{sMJ)33X?p;T1eKI~SI@;U$@%wKMEiaTRu1vzQ_6O|e^Lc3w`e_dO z0m$YHj0{iE`DDs*R_Bu`MusQI<_iGzT%WJ;y#R-4Xn(+dyLUg}Q&GJhYSuPtAVjQt zfY0ywFwdFr^H+{Ce>wLqi}!rQ`b|pfzu{F(RIdlGqF|a9|MtW=<;p8?d9Y8!qHXoT zm$rR~*Sh%n{(V>SZ;p-%#YhqKnDsW6(i==Cp1mBefI*nW&A&UgtXV|DVK<@yh=ju| zYZgoC4Qkdli<=${+{t%k0_GA4rCh0y-q4A*ML2sB^1ALuG_aF(_9R5xBBVET%9RRp ziG(Xpm#d3lxoQ#$`pFq3bi;5hS2qlDMu||+Pq}KkmJ2RUz+57s7=%f#WH2qu)h#l* zreRtZ$(0NSVb|{d3o$e}D2C&4*Ec8($KzsXa8Pc1kR(ZxBuSDaNpizqu2ZK^al^E< P00000NkvXXu0mjf&;%9Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankaup.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/ushankaup.png new file mode 100644 index 0000000000000000000000000000000000000000..a4ebe9b46329f2bc0f456625d8d746290f160633 GIT binary patch literal 887 zcmV--1Bm>IP)ghDU+LG)|Q%FB!*TiPB{sZHxZ#$A)pyblOTBk9f4dpo1U z2!s$qhKhk!&WzcjfYtV!kQH$*vcRQ4j>wYc*C2 z1r`?;XmvW=-`pg3>J+Z)^8L-5$6ACq8!%-$d9_w!HwaiQ6ae__lWzc6Efm-d0)Bh? z)HI}#^DWmz_L(E9jO6E1!%R~04Svx3`gDZ*ZF^1ir@8}QPX2OP)2vMjo-mT?27O%kYAtIW^M;d&m8Mg!Y%_~Pr2fi}ba zeO%8Y8V>0mQvv>2*!{ua#RJQlY-XknFe(7R!ElJ$+vDfEcmK87Ea&qPKr)#$4f|T^ z)heUWh-usYYtXVFiomj%vTc-7^sCj^j%l<69z1$vDW!N=sT{h~j>mu5+&s2lfn+kt z!Ei`6mwR!`W+(T9=g*I=_-~End_EdqX(q1;A%qY@2qA2KraljfUTXKSmJ+p_G}aZsrmWInC|yqc}#C2mMZ|Dx3|Y|G@3kr{Nzb&8|>E3 zj`hKrGtq7k0ANo|;W$n#v13c}@8|MybmmRXA%qY@2qAg=_yO1z{oHlOQJuY^$LI-4)B z-Bk$Uq+S~U%H78Lom>5MYBW^2j%G^$Kzt~ms}jfO#l`2M{kk4PpC)dtYrbc0UdRxF zI6?I^0{|S0RqMK)o04W^5XWM5@fkS=0I%`sY`9(#a>fDRt2$lw(SD5}PN1vuY!JVTMP`cC`D)LpxmfQeNO_!EO+h)Gtarv&z_nMoRJU}*I zV1r!yx)KHz8Is%pP^U_4$&F?TCEEWcOlg=_yO1z{oHlOQJuY^$LI-4)B z-Bk$Uq+S~U%H78Lom>5MYBW^2j%G^$Kzt~ms}jfO#l`2M{kk4PpC)dtYrbc0UdRxF zI6?I^0{|S0RqMK)o04W^5XWM5@fkS=0I%`sY`9(#a>fDRt2$lw(SD5}PN1vuY!JVTMP`cC`D)LpxmfQeNO_!EO+h)Gtarv&z_nMoRJU}*I zV1r!yx)KHz8Is%pP^U_4$&F?TCEEWcOl^^FK zY=O?{_~#omZ$_jlvOKF~WAM4$k|@Df|MR$v9H-)iZErtTMr1qR|E?JJ_;QlnO{Ql% z-e>3R{J(q7%3lor3=P-+x9*pJ<8XhzUqc51Z1TM18f)g+_fBAW-`48pRQq+SR_(5< zjlJ$^=k~@?YiXY0qP>Qb!m=&RAMAAx6xscZZOIhHcZw|x3>EJu&)f9m_|+)sM_b&s zlx97N{BC)i<&<9f8>#ftZ95y^=+!gn#nwLf&*LW`7<-7H;l+|T9hI;DfI-RN>FVdQ I&MBb@0Hc?pt^fc4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/dead.png b/Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4043029689331d8ee657e3e30e4fc57e1bf3c0 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzO-~ockcif|7ac``60956U-fig uS~aV2b^huN3=Huz)>+3MS7X>P?FnPhOXe)kM@E7`O$?r{elF{r5}E*>vK&SL literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/holocarp.png b/Resources/Textures/Mobs/Aliens/Carps/carp_holo.rsi/holocarp.png new file mode 100644 index 0000000000000000000000000000000000000000..47c26a457fe89ff4ada5bf0e9ca822f7a8c208e2 GIT binary patch literal 5821 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 Uw*HUfP5=M^07*qoM6N<$g14vJUjP6A literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/icon.png b/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1350ed8543af81a902fda4609b6873ba348b1c3c GIT binary patch literal 485 zcmVJ5FH3wDbms;P|$D!xBwLu4JQCvlnd+ya)A_x4pGnmC!nFBrCq@ZC_({LyHcb` zkk#At6K%+WU=NT%{yx*TmuWLO(AonhsUqdN4S8z;7d;Y}J=I2i-2FXXcO5o3D>cc_ z(yINoB)Tqjf2ZRX1702g`QcNJ$d`m%(1-op5QZ!9@q`oR?_QSuL>IQLA}?5x=eZ<- z7eHDRg%E>*tkH)Z_-&r7{@#xG`>@I=jjJgzoTrgH6(k9s=sDL zciXCMepEIrod9yY^M{G*<833sun-d<=5YYo5echFgf#}3oL!2|WsXlsn0em>k3)o9 zSE_xMiKrD|lJm*L^KAW?X*PN-M;Ib1>Bd_Q=71THawr#M?^&Y bUl7qZ1qtcPwQbar00000NkvXXu0mjf797^E literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/magicarp.png b/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/magicarp.png new file mode 100644 index 0000000000000000000000000000000000000000..ee64f5acf17b23f2e3291dbb046c966e78a179e4 GIT binary patch literal 2899 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 M07*qoM6N<$f+c24F8}}l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/meta.json new file mode 100644 index 0000000000..30cc05d941 --- /dev/null +++ b/Resources/Textures/Mobs/Aliens/Carps/carp_magic.rsi/meta.json @@ -0,0 +1,73 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/d3d351dea8d9420cee47514843a02158d0a7266f#diff-8dd94e19fdb2ff341b57e31bce101298", + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "magicarp", + "directions": 4, + "delays": [ + [ + 0.2, + 0.3, + 0.2 + ], + [ + 0.2, + 0.3, + 0.2 + ], + [ + 0.2, + 0.3, + 0.2 + ], + [ + 0.2, + 0.3, + 0.2 + ] + ] + }, + { + "name": "magicarp_gib", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp.png b/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp.png new file mode 100644 index 0000000000000000000000000000000000000000..de6b4c960bb05f431a47c411ad70ae3908cf1fc8 GIT binary patch literal 3713 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp_gib.png b/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/carp_gib.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d2c96041dcc10e89267f742f26c3f39a299ae7 GIT binary patch literal 2967 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 N002ovPDHLkV1gi->Vg0O literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/dead.png b/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..610087d8f2a5d50fa5441233b4d84d984f63414e GIT binary patch literal 279 zcmV+y0qFjTP)e<^Yin70RQ!SNklZw*bdG}E;?ypgh2me}rcMr0+pSV@5ft59 zPz1H5n?$~g7gL)wzbXjkgK~ZEeth41clRz7;@?BCN`R(Zy3R|bD`@+YX1R_Tg0gDq zp9r!8AP+JhmLJe#n8q86XpR|L(@{H8-~%$pPOP;G{vw zeGAy@yld;R6#I`hCCyuk`xOBopAn-2KG@mxmSH0sZbf(!0CF+5K_xXuFTFS82OEAr zB0L>JL|Rhx?QL8g5A-RDKxMh^Y5xJ&891PvhDdjJPAQ!%&_&~rnky03!iFFH7&mqS zsCbGga*#@r#B8*%c}6hKONDg31&9zNh?-=X`GjhfwW2IDe})PJ=U}V?IC`qe2sK6d zcDCEhPuZf^<=mfv`~EYFZY^8X$spz{6R_b&KgM~1<8#dS^Ssj{adMjZo^ESHbLN)v zx|okw;zi2*P}x1lBewwLxaY0zqd^>5Od4cnfEafl{Sb@lSfQxnw}PzzPR>(`#c{_o zCr4V}W)AO%2+T`h9S0GX9c8(0kn_l_3Jl2X{1AaHOGIY%0;c9Hxf~Cn`IY+#kocMB vTEJO6&Q#l#SGx}mKAz7H5hBFj1rdD$P>T8GU(=&s00000NkvXXu0mjf2YUc? literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/meta.json new file mode 100644 index 0000000000..66407ac9a2 --- /dev/null +++ b/Resources/Textures/Mobs/Aliens/Carps/carp_space.rsi/meta.json @@ -0,0 +1,73 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/blob/master/icons/mob/animal.dmi", + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "carp", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "carp_gib", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/crit.png b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/crit.png similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/crit.png rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/crit.png diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/dead.png b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/dead.png similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/dead.png rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/dead.png diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/meta.json b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/meta.json similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/meta.json rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/meta.json diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/running.png b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/running.png similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/running.png rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/running.png diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/sleeping.png b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/sleeping.png similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/sleeping.png rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/sleeping.png diff --git a/Resources/Textures/Mobs/Species/xeno_hunter.rsi/standing.png b/Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/standing.png similarity index 100% rename from Resources/Textures/Mobs/Species/xeno_hunter.rsi/standing.png rename to Resources/Textures/Mobs/Aliens/Xenos/xeno_hunter.rsi/standing.png diff --git a/Resources/Textures/Mobs/Animals/bat.rsi/bat.png b/Resources/Textures/Mobs/Animals/bat.rsi/bat.png new file mode 100644 index 0000000000000000000000000000000000000000..404ac148c73abdb6984042a23e455768b33167fd GIT binary patch literal 1102 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrU=j6naSW-L^Y*TPzEHHxv5)Pu z%N7a>FJcs2IhVoF^Uj8Z%S)u+Rqx1uxKHJN(|bpAz1SU@k9ud`>)E-)wCwT`Df0<3 z;&+&j3r>)Hb|&CQT^LJ7-ShKb=9GM_)?x(O0s_-A*nN}Z?ccMcT`k{!Q{Hpm8^5ZX zOgrBH-l8o%AuQ~(y+=@i#S5=Vmi=x^x7@#}`gTDkAOE$uLuB5R{M!=ubZ>JeS@rtuS9RjrS~sgpKpxYSGCsf z!k4K0o9VO9)xXt#U?Vkk-Mah|u{f_uhccFAEnRcD&RhPF$D}JGW{>;2NQ3nr`k ze%`O;g9Hl_*`T{Y`|Zmo%y)vGFpI2-()6D7j5*{~d6%4D*2+(eODf%0#Wwu-z3($) zj`Fg#@5_!y?c3cFTUp8)4YcrL!()EOIqPc}qOJG6IQ`=u&uyi5c3&#DwEdo8|C539 z^<;hl=`(iEnQs{0xL!S-KcK|E=HA!sy7CKNd}T*+0))9^YS~g-+sic#j~BbGi#7cC z>vziQPmEGuXJy(}YIr`oTrX}tmp5T+bEe&a+-X|!56h<^cy?*pre7$@9AM=BGEo=2pzLuEwl-c96utERi+td5k{y&(hp>SxE zZop|Vh4n{owDR6?5&P^vC$FI9iosfSep5MrF|j|f6OOE_yvKQ_!br19Vx{Umh2OXB z<@`(j-;4E}w3{LCcgZ#WhUn-^hkg~>$vY`aN()@%oOSQ@&l&ZPv=8Lg{}XVtdb?f3 zP1*DE9)|eY@2}N~*<8B(tGV^->ZzaBu3J{{_fS5`@b{|67L?Gy&+R(+rB09ld^02AO2X8C^oktuchyOyZ@=Qe=CLi^z7<2 zV}0V!y*seyUCr#Kz>wP4*Av>7S#s;|y?%Gv&-ZIX69rZ~sldabA?7bb##K?-+Av*E PIlgTe~DWM4f5}OuT literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bat.rsi/dead.png b/Resources/Textures/Mobs/Animals/bat.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0d4e458b8b70b629483b89d5b2d806b2006b10 GIT binary patch literal 177 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJ3Qrfukcv5PFKpy(P!M3fu)dI& zOGrq_o0}{8?m@vBmssx{NN_r+ke-^ZB=@#n^la@vSqB#o;5sK&S)KjmZRstZTL-V5 zl@Ap!xYn`R?a{VVHoZ&?n&LVKm7g~4Si4B~%GH{EEc^^N`ac_gIQ7){b2($KMPRSA Y?i9I0+Y&--fNo&$boFyt=akR{0R2!wQvd(} literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bat.rsi/meta.json b/Resources/Textures/Mobs/Animals/bat.rsi/meta.json new file mode 100644 index 0000000000..127fb60ead --- /dev/null +++ b/Resources/Textures/Mobs/Animals/bat.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "bat", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/armor_bear.png b/Resources/Textures/Mobs/Animals/bear.rsi/armor_bear.png new file mode 100644 index 0000000000000000000000000000000000000000..a9513d2c825222d8006f191292570e85815a1e2b GIT binary patch literal 1222 zcmV;%1UdVOP)9kXCbog(rtM)oq;EUjZgyt&N4hclLFhI+JMYcg_h!C%^8)lZB2FLF zvT0`iPR|z|_jgwE&pQPj_xv;j$%rRM(X2O6D(FaMGz<<8 z0f4f6B}Mtcuf174_3ZTA4BM~mLsbbC`SIi^Hdi)~%4nzVmkK&2XQ!}R{vs{^oD)S# z1s&6KGbdbddTxf53c8c-ltF{vuk9Nj{(BWDg@B$fM(#eyF)I&Pd$Ssuo||EV!$Wxe z@|ABP(5yFLPP|%^wQQQv$B*_QLWJmDbS#787Ul^}#01;5F+;c= zc1mx(qQ%tD*u=Q`7Bg>$iG%QMMDnHb0UQZpGJ_#y_`SOuj7^N={i}Dz|EY{d24Q-> z7~$pdNg2ux*}>KTS~hL)@6DAB#73@2D@|#uTBQmto0c-1mHe@Zas2xJQ##wjw`q?c1ST&~Y((@x+_Gox6jNTOSP9KKg6q3kj)=hHsy~+V(Fr zKq{l5RM4^a>$mh9)bquNo-g9k)ypiE(OiW=GNU>6006jt^M>t!I%otMJe@)l z<+dV0A}CW~qNPWin*k?xU4VZfVXh7_*C>!~Do{QfBrBH+dfV->-v%(FR;ivSn((be z#;in8=w=Xg3ehc)a+k#?t;y}#yEK5{x*3JS<2ywFz@w+)@d*z{7oUK|*Ap1I2Fwo} zx>nL}%nux5!6>x>G@)W z_fTH73LmK-Cwn kHR}*mem58*M2OzTKhONe)VBaxZ2$lO07*qoM6N<$f~Y$}F#rGn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/bear.png b/Resources/Textures/Mobs/Animals/bear.rsi/bear.png new file mode 100644 index 0000000000000000000000000000000000000000..a2eb0ef3c35be0f66bb2cddbcadb18083e27fca4 GIT binary patch literal 2759 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 N002ovPDHLkV1fkFFBJd) literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/bear_dead.png b/Resources/Textures/Mobs/Animals/bear.rsi/bear_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..2e47b74683ea5b09d5e17d670648a1fc561525fe GIT binary patch literal 1105 zcmV-X1g`suP)jIEUr2y#ldH|HmWo@SP#P@wFl}g;jDNSsVR1Lb{H8M z!M1I}Ff>^J2*Z#d2(WFN)z#I0a^N6a&1UnpA~dIz(y{?6l?tBcVcRyNqoV+9Z*TML z*)tr+!Eqb_e!71jrBs4ElgZF-x3O&-fNr--xm+fn&znr;^LeF*5JJt*&r_*X5JIRl z!1L$Njk6OcPS9?*@jMS91gTVt-Q8Ur$Kk_s=h!|hjkaH2UgqrCvt%+EY}+OX0wY3~ z#Pd8ZkL_^x$ta%ZvAMZPqtQT0X<6}<08CF$8}h?FGnZ2G;>8P=mX?f&xw$zr&*gGF zefpFj2vEwnOrYIv1JG)de)oQq|i|e}NaybA# zy1qa*n>B>%>+2@4PN&1#+8X(Mo^rXYjDUXZ@9zT#hfYI_0I)18Auc|CzImG<2-w}- zrPJx)`#!U?vjFVv?NO~(6I`#{1O3p%mi6*bTb4zy*E2%CefJwKKE9N&dHC=l_iAUL zaE1%luQNS8J<$Ka4Cvn1QR z)9rTYcDt_^pb>^4N-3n2q|<47y&h2%nU;&9h>MRe@%4|V__+0n$yhdPQOyhq&E!1L5pwsC92M5seyo61E7o>#{ z>h$T;z(HSUG8r~DHYgU09E!uTEP@~a4lbynp&?SKlzt-&;^exFT7dCCUnQlq z(f}tW8NFFV+EkeBWn& zejb2EqoH2=7Fd?WJN29VUjNdhe^A=vCFvtyJX~Ige-AV!SwTt}Cm#gOx!C_=EtE>7y8a)K zQu5x7JG8D{F~mBpLWp{`TIJKxC*1kNK`C`q@&pDwnG2JXlXZR3XvFHdD1=b=YG=6n zWb~g#ek1|VS2InlCqf8SsZ_W;w!>{d`^MyNg9Rak(&H}#9|>>sqZudt&mup@zm7iv X3N!EPjL>Nm00000NkvXXu0mjf0nict literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/bear_gib.png b/Resources/Textures/Mobs/Animals/bear.rsi/bear_gib.png new file mode 100644 index 0000000000000000000000000000000000000000..75e436ca6a26319c19bdf28f3ddc44cee5c29e5d GIT binary patch literal 9926 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 U@%8(w^8f$<07*qoM6N<$f*ZOi4*&oF literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/brownbear_gib.png b/Resources/Textures/Mobs/Animals/bear.rsi/brownbear_gib.png new file mode 100644 index 0000000000000000000000000000000000000000..8b73affbac7ed9cd09d4b751f8ddab299330a12b GIT binary patch literal 4780 zcmV;d5>xGoP)}aOTSvoGUVS zd(niOZ7f(em~8Psu)%S`nL9Y#7wEpxH($S3Ke~G~GjcyzJnF8l@71fX-g{Nm)f+-D zy=;>FX)9Ep8uoNl$F;8Ad0Azn*R2z#qfo7zPM@6oI{Rg1#-0ram4$z?Z4;xHCCIzC zZ#p;hY&bCM{NeeR^XnJeq55_9%ct4VY=|cJyTrCeU>Eov2|~E;e3V%helKexN`&bs zRI}lr^5TDKeRo2Z#rRxf-NuNE>CzT|*yiC)ktWQ4^sySO5})P${pxOx-jsZjjTV8c zXZPRa`AlMsQZ#CRTRsrOATJbkyBqNgMnwT(IKn z$X_=8O2u37SZDmU^YtA3SiOq>a;sk+Ua6#v-$m!7$kvk}LssoBQ~0UO|4vD6XDqYv zaHZ>j@5THa{Ea0D;#e%<>3Y=8hJ)Jl={E4;!rS0;N9!{$SNI~$(qx&;=8kAH`bvf8 z{w4SuJIdEt);%Y%B<2Nr*>Fj%>ZR`8d0BPiyTs?wn_I7z%SmGIgf!VD+a&zdLX?NU zj91ofT~^KD*hY+I?90OT-u_MDV>vj6vGy;7Jo;D-Rz-r@a8Uhyt1>&_*@rNAf4>Uv zX~X5VuoeI3|Jo$^*I(X*KRnvo+)W_JrtJlEi5f$kP zZ;G#P{al{v(1<1;xBLhg(w*hFbcf+n42 z8BpYEi98?$uj9=VvDL2^)6?dNEbA62OwL|f(mqqpE5533Nm>d_|*SezY<<3cU zxpU&S_hS2+u&(z?84(@u?(G}55xI4GWka|*@aVl2!}uxVr{>~pP$q%y#&IWj_^Jov zqrTkGrLG(GV1%QdgM))gy@|Jol(jCw9fpqJ25>oV`;kwqmUseHFt#Piv0CfE{ib?Y z?bF|{UcFktKi%D{t{$G%3_lwVY8}M*mWR9CIjJyO8I$XO_3Bk^qY_HUy(7)Xoigui`Su6A0Y>Gq{uGLUiu zLWa-yFdnY4F`F1)b>Mn9htOnDpUJ`JGOr&zUA*UI)UkPaN^(Y^Hb&zXm&?uOJza99 zmcaEqTJDq#f(~bVv@14MwD7II;Di+SI2`A`JY?os;T(|6qQf!%A@i=#4~FXeCY|0 z>fc!jIUa(6b@5_4x}KYMeKsAqmTOO8tD#{eYvBd=ypyt)m*d~SR}3!0ZaJo(9@Ux+ z2UQB6ZJ}6929La!KBk}|?_IQ5C7NWUj9w~UQW;BbtZONKH0$RMWe>oK;nl;l1$=7* z>2!C`?F|0gS_A_gJPcn~e1s`Z1{Hrk3n=Xvi>XkK4W)*+jNSyBr-q8FQ?`=#<8+Fq zE_AYWN|YRYQ}Ccy(CVaIqLkoS$;`#}b*^Bomn$K>92o-1U&i? z4p?8$29^#yIz4<~Tce-dzC{q$gOl8vQXE6AOgLsZluc!w)){q8XcX7;1|R{~6I-D1 zbWmgI3Lt0bIt>FJyL`B8E7r4nf4Oyo`TD`rxvTc@XT!yvK+6N+H{$~XZXfzGe$7}+ z1Zx*C1bbn~TI1FZ@g$YRF$Rx(c7eF22F$@%PopE7JI}+1z0@{3P+~8GSooS3aMrH` z)^`>xFI|iOmc&LgHw;Oc6>FhTE{=E2BVi7HN(WAyxNZ2Y1XGvG_^hAThUqAn$sa$< z;gIXS+&QV?bLX?(+VQ#guBeN)ezOu?2scz?B{#_HU?qih9WvRfhcGLrQ9H0+8gpZ$ z#I;zCg*sSogaP&hut5|28nCsz>t*CBmb=S!!-}i*cx63&i-_8(`aYjEJK%kHj`_H+ zJA%{Eb#CJ2QJy_`imA`VJTS`XmbPbylCbD52<2qAAuKN0mK?Cuk*LeeF?<-GpJO6w zed^|!L>!0VdaoXyRr)f9<%0PhFC6JJ9E*8fK?f6_*Y^OqytVKIeD!)!5@`IiI#*{6 zsWL8@fy*Ai!bc~w3yh8a)ZT$5R-1I0T06o@xcG0*(nF{x%`8|?z$O#VQmp(;uX*H& zC86_&b#cKn92(8@V!p4V)nauCuGJ{UXAGSpvIo#>TAvz8jcmnOO9zxyOs`FvTVYH0 zeE*=f{mdIjz-RpxUsptvvjBcLbw1sC7fs{1HZ}*_+Ve*pSO`*l#jrw#H$qrL% zEdFpAbPkBgxk5|_4~xaiANaS%f6E51A3UwC4Cdh1rZkpv_zkzqps_~rb17_Alv&PY zJbZqRpNWOBQhYWh{|&=?I;cH7J6T7$6of`BW*`TdmLkRUZRN8F(^s*tsE}dOj>}>ku$B!3WX{+<;Bs~FdNxZDp zTj>j7(fEAC>B-AKS4T%jtvbpgV62{H5ioZ_Ya@jdh}67ary1w_2enTA?z`_y19_WE zs>?D7SSra^r~WT@iVz{(%tzJLwmF~fiB2C&38-b-5HO`<>e{kA(9#5r7>~ybQ@HVX zY;H|{_0?C^Z0Mg)KRP;!&NXw5k5QZ=Uq6Fk?DzHbF_)8bhU_2+qJlQ&* zJ|2&=Mhcc&y*2n40WH0tTUP``S?ydUptm$@)z`)YrKFXY;nlSe>Wd24aL|~`Bf#45 zh$%N6g`&}+%domgQ%XQjxD7c348iw6Z6w!*sd}a8Nr1WEnN)fxM7VBB{{KpNO&Wk~@K@ zM5kUb0B=rkrAUTgpeE9E(MKJ{?IME6lFZ8$}iYr=$7_9Moa0R$gp}8b04o z*@4SiZSdM(;(^-4bRJA>Q|l{XmYDaf5a1avmh3Src}FWpp%?*UqPnr}O$ms1@bRoi zz_uPJ))q@x4|wNT`D|f>p%eK)qPGOgMpbu(=lPhj7iaZa%21Z@2)Nk3ImDsIq&-mr z#=;isX?dU~ZHRd*uO18E3n5tvD6&{hesUDfG1lqsUWL^%PQ)w%T2s#wY3gQCt_fz$ z1EqAcwv(+XcMM;r^u=NwkB%uFLVe_gaPxu%zmzx|`sdS8w-PX>YpgRZd@po)ZAk5l zXkC^E3gOzOF%O7mHG#8|(3tRBN*aQ!k6O$nc0Rpy6ll_9F`A965+h(+0Rg>xA>4#5 zi-55igIAwLz*u?yn+XLxFBG$A2-1bR8ZeR^Jit@06qtAKVmr(iMJ~2O^~D!oB$GPJ zBb4H@cm%|~*AJf7I=P7l%$1Vo*@Ia9kV+(#DEj%Dh38}E(@PtoE{xxyOP)`cI%4-z zBOyjWovpAPa@v@4A6T*2uimHxKPSeQ;@9HYcs#Do_YdY%ol;N0iy-&z-J5$Aj{mP8 zJZ+Wesor{>30RT<=IWDECf5VT>W<;C7qjXw!dKVNA1Lw^vt|QNo;=AW3rJuQFsf`q zShrYKUz%*`b0rHnP4SBtb`tn=EHBy8PEMULv6SEum=bpB@DjSn64Oy}Jpw{c4MCcL zceTL630P_r-zI)d7wddFFKk%zS)E#03r6fsECa-518tKokAPmd!oMJ3+fLx=BW3Q8j;8Ao8iG7BlzKTWpGyLlj2Z{=FGe&HL6pJPubxkbGS*Tk z49N=gXiFV_-$a;!&)C;0;)m0_E`roO9;s2EYjtyqwohO zawN9Aoy122zyA8`tfayM!oma&AwGWmI68eSl^6l}dJX||bV(6Vy$Zh`ry;1c?UonJ z5n!?|nw)dlc|$z~z0t+xQN}u|Z9V5r7jv%V60p`t=kFX$?^%z49D+*r4lG@GgXm&A z)ZRnXHNo0ye?7o?|bhw(+K!rT8_O4R1~f-Me>h;gcw+`0((sHsY}ane$O1Yn1V|7y(1L zCZSdD;o)JUk!TsvBbs+T7tbQ8mB&~(76D7~7bNF_WuH&Co>9!)47|!mdg-N?UV7=JmtK15rI%iM>7|!mdg-N?UV7=JmtO9c^n1*`M5QOl9hcNQ zc_E~~RoBY~O6ogxCEu#+W&LCjyEz?&>e+`dxO#Y2eg50`gAlHd8Snh(uOWmGo_z=d zbo~4KRrvj9XCZ_TKL73e!E89F-rujnKYn)-LI~lH|NL8c^s$QK^|E5oSBkA~)bKSf z!{w}R)ZAt}dTAm2cCCI{Dt0i$`fe|m)8Ac7PqGfg>MR}A_&fHE8ZN_LWf_TKpM-WO z_)uZ#=*{^?je3*ZB+>dN0qW_K(2gZ$xSTVDo*;aryg}?kiTG`OEE#q4iJ=mbbtM}g zhB%(Xkf|feIfUWw_U0Z&MS`gxTFgyCt%H)wBE+2tLwb0VN0TKvCts~^)NnFs9i-$W zvTYIy@_;BQ0>(tYFTh8!@t+d)wg}i-yaSFQ)MKx9ymm_Q`Sf6im)s=O!pFZbyw!Q! zUd88-!)@YDMcb4Re59N8Q39^Dpb=0!c0Qd)VB7QQoP;X=Y*_#Q^xz&JleR`3hZJCW zhff(l7K%^@--n*~P?in=4PQAYrf*gByF6ZYzpV4=%fjc;%OlhJ7_=9Pbi}vCS3<5# ztgKmGA~(A0^Xa#NujSVXf8!)4d0O>~pO)#;=&Q!>TK)%#lkxm|A%4{W0000W@M!R literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/combatbear.png b/Resources/Textures/Mobs/Animals/bear.rsi/combatbear.png new file mode 100644 index 0000000000000000000000000000000000000000..98f1213c4be11bd1eb249b5462bc4629202a3e71 GIT binary patch literal 3340 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bear.rsi/meta.json b/Resources/Textures/Mobs/Animals/bear.rsi/meta.json new file mode 100644 index 0000000000..36e8f5ff86 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/bear.rsi/meta.json @@ -0,0 +1,138 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "brownbear", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "brownbear_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "brownbear_gib", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "combatbear", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "combatbear_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "bear", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "bear_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "bear_gib", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/bee.rsi/0.png b/Resources/Textures/Mobs/Animals/bee.rsi/0.png new file mode 100644 index 0000000000000000000000000000000000000000..fdd7e9eb478ced8ae2629419dc6dcae0ad1647d5 GIT binary patch literal 207 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo(>z@qLn`LHy|s|n*^!6&!W(=4 z<1hR)HT8c^ihXKZWH7DRz!<2E;Xr-G`+b)r&t+-sS9Ct|?#-Du-+MDO?B^D@YXt*erW!WjRaHGUn&OhrG)lUgY6r6*<$No}mF#z`#%ub9iCFm9N@wH?xMw nXwKJHu>4=csCrHutm1&a{9m1gRTAqfW`p>iu6{1-oD!M<8vCC$`RGkf4!g+cxNYBWH8l>H8U}{@oio$( sr+^G(ocv|))A%2`e?LXm!A&|KobTheu&QUr+u0yJp00i_>zopr0G_E&rvLx| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bee.rsi/2.png b/Resources/Textures/Mobs/Animals/bee.rsi/2.png new file mode 100644 index 0000000000000000000000000000000000000000..bc356e03882fa0d775355a8582fc2b066ea77be9 GIT binary patch literal 220 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoi#=T&Ln`LHy}ePe*@1_};cI;V z=>_VRhK8Jn=eFN%3Hbh9zDp9Qj^W?YjlVt9J3Qs>Z0)6#YJc3lIrHXybLCK{qYuw( ztmI);HHmSUBLq?j1`WHHm`{mcyY$aAnSQMsJ@aPH`&69$>mc_B4yy{59WYfudWY-L zsw$%+(dpqW9_QBmFjtUVw5Z|FpNftyCa|gz@qLn`LHy|s|n*^!6&!W(=4 z<1hR)HT8c^ihXKZWH7DRz!<2E;Xr-G`+b)r&t+-sS9Ct|?#-Du-+MDO?B^D@YXt*erW!WjRaHGUn&OhrG)lUgY6r6*<$No}mF#z`#%ub9iCFm9N@wH?xMw nXwKJHu>4=csCrHutm1&a{9m1gRTAqfW`p>iu6{1-oD!ML{zmR;DPr~QAY v)*hPk@5br>8{abb)VnJj`BBaSR@M+BuVFfM;!2gR(?EPrS3j3^P6}@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/bee.rsi/dead.png b/Resources/Textures/Mobs/Animals/bee.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..dba0f3b2786740a889347e9dc0e48f18627130a3 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdze@_?3kcif|=MQo=I0!gj+)y>) z=)ct;lH{{3izj{5|E9p>6vupW`plU(^Ibdci3WsB(2NpZpkw)ATKt{ohj&epktpD~ kF==ng{WE9I>{HBSa@i-dNx))X3eacNh! zgfn9<5!0G1R7*R>u}-q>ByHM}M~j)+cGidUoG<;J_xAn$y>HQJ-{Yq1Y}Nq)V2bfU zozZo|w=@RnDi;~f1AsMN7?jt~>9^;m;E63KEJ0$CA9D=~LJ{8RBJ9mDV31AiqV!Jp zcCY_x7_Im2{il<#B9R;c_370H+Fz@>WiXxNql5tF|MAKwD!5D+q({D@$;XlcUMI8^ zE@hc|nNHa@F&9+z@K0@_o2v1)J{@sl9+GcZ?#XA$8(W0wAw z+xf|9eLOjySZ^Fl8MMxWffvs1F9>xTP~wr6X!!6IA`CqBth%)+mIA3I-UD;RR-w=l z>zj{h`Hsbj0a_Tiq-;vzPJ}1M|BfB@uqC-pk6a-(##+(x0@Ok>5a&dvds75VwEbQr#v(sl8oQ$(Gp$GK{be{7oQx<8u#aa(=FNO`pIhi}Q^B$XsV$|DeSsWBfW3(w_}J5dk!f=-tZp9H zP4(P9DaKR#6-Pz_DNk1Ub+Zc8cM%DMD?3+f!0I$9q2vwJj`3 znU2NDNMd$W0?kj9xyoUC=;x@-3%`Sunz4c{v|sJ}81Yt;Gsbq`q0z>SYsU}tk}Cx+ zqhf=g)PMLNoz)r#!Ms`;bXYlnJFzi+9#XfNSmRJ0g_I+zCZG+&%A%U+#e=cq^BYa~ z77xgrzN;OFAc5l}>Qj=0I=iTLs!?5r@@}D7BDO zM)Qrc;L~H3t=;8DfjsE_A4{%_eoL67 zR>rrYCwo4Bh;v9IGqke?_Sf}^@Mf6}aA+;j3Jnj5OX^e+UZyU08M#O@kSCZx?D~%3 zV+})rGVSYK9{sz6yOw96AMAiPk!Es@UR;@Jd{FisiL1Lo&x`r4Y(loWgkjMKWvHL+ e-0?s4+NCYkYa26a1PqMsrvezXFRINuEcah8->{DW literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/butterfly.rsi/dead.png b/Resources/Textures/Mobs/Animals/butterfly.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..10f9a5db9f17869686653fd97c3bdefe1a0aaaeb GIT binary patch literal 227 zcmV<90382`P)ST5J1r%DXoR*@eFLh0?d00cmrne00?dXr{aRBjFl$hUWa6J-xzStIp>^n?&)4F zo0erM=jU-8o8EIfAf;3QVvO{C55T&vQZ3|XEKuY-B2tYqjrljpd-&tmJ0-u-y@PQrHp!!QiPFbu;m48t%C!!Z97 z7WGDv1QGz|S&7iIv48xXycUII)RCcQL)mcr@h3_D8_G>038dq@0D#c5;rMP95ECfp z9p8oHy9hlS$*4opPYS?1D`B;6D+8?7E#_HCS&EF>faZ5yNC5~v8{fNos zIaE5D;5l7X{d<&~=2?l8Px-F_QI zx~ybHxaXy*~1ZTp?kc3DA8Jr13 zQ?b!tgkq!U)h9(Nt{-2lLn8-0i7y9hvLan>lzF5KNJbs0oUiu?XYt}i+f&xy&YH!G z>RNTCMG{DACTJO}lyv*;HMt6c=^D_?J{26Dx}co_&Ebeyyny4oh^9h!DKgPi!0}x) zv!S^$e}i@a>QfoxVO|B~^y=Q&nB3{ry`>x;5A!vfbkR1t{@7DQQ(-g!0C010DBpkB zUz1TDizK6OE)LfUj%nv#jU95(+j>v_HQ2Dz{028?DgWzBxNraf002ovPDHLkV1n;! BITZi^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chick.rsi/dead.png b/Resources/Textures/Mobs/Animals/chick.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..901a2fd58a8196f4f232f1b1f5900ca71922d95b GIT binary patch literal 289 zcmV++0p9+JP)zDmxgKGE?BGvUt$;q@g0^l`3jv;KMnGs8@Fo6&G~x nBk-cLzhhe}J?*aaAIO~-`XyO)JhF-p00000NkvXXu0mjffg*PH literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chick.rsi/gib.png b/Resources/Textures/Mobs/Animals/chick.rsi/gib.png new file mode 100644 index 0000000000000000000000000000000000000000..b0581ad981ce3a208225eda6b4732b53ad986643 GIT binary patch literal 1605 zcmV-L2D zJ96VV5QZC5Ta!6bFuVsGP2@!O4G3rv0RR910000000000003aiC}{)0GE9Fo^y@bf5h>N8|MrCGkA{fM z@Mv1I_BDU3Hw$oL`XkZH$Mq5H57QsbnY4`pV2_+hqw^&({m~fHW*LK*g3cGFL?R~1 z-6nyOccFA5Rz(yL?f}udP&yGilQy}WASnWv{%BNlB6@!#rCQqCU8tIqav!;Qq%NCo z@(@r%2XyV<>-Rz{Vv?cQI)RuCrav0@OTq@}u~14sr*6`n&(RCPmmk0E@B0x-^ z71KU_sy3c8h^{&&8AR^4)Ha)ZK%Qtr8a(A+zpU9H$%?R<<<=8`_EbV z?0B(lUs8=9(wE2y#+-m{SFqju*)w_H8#FJW{6~sZ%ALz~&sfeYk$V)041L(QlH{ zLxG!nIFH|KD5cM-5z~!n=eFselz%GinM$?FMgh~yoxqXC&jU)3v<|>=XDHPwrP|=0 zJC2OJmK>xys#u($!kus0VYjXH6u6f5t_GGF$c!AMv@Kkne>Y3PoP6dWM8AHM>5rp1 zNU2V$b_QVCYiRP9h)YL-Qm+jX;aa2TDnhYp2-v%amI~8z7s7Hxpw&6R-kgAIY_?1A zsyW^KJTwJf(+7(eg3hFk?hn*87t-dLh=|Pl!Eo0HaP=k5=ll9OuYYPGETm6On%3e7 zU>kW5cZ^CiVHwujeSNO;`Ga2I`m8I%2U3~!Q^Z7$3OP|k|(zgwe>wJ1{ zeJ-S~e@wr4g%DpL$NBW!`kcc6_w^IqUZ1a@@;3dVB+y=5?0mXv|J)dmyD{eI6MZ#O zE`7gI?er|9Ut%Yb|C+Juw`KFBcQXM10000000000008a^>GSbG5Og+x6YLr3@DJy! z0O>L%aDs~2^6~85GpFIXwth)diyftiZVB@b9Z2jlksgBfK-2+hDb6I7eCFO(wp5>s zpaa;=g{5l&jbUpM#eR>ZG!H=s2pvD-tPnP)&xNnYQLZJVTbk^-(^CnOdw<+Mu2X*T8TAoI|Qfddp z^v|S?X`hDDJE1A)Sb{z`8bl*Ns7R4D!oGOueEeF@q)n$@zv+kO$ffk{^RE4Sqwm{c zol&Edz#DM#D2gV#`(Z%TL99VE$A?VOw%HBgf+Y>bWjv7x{|=BN*_M1RijO0apy z@GmgbvHsa~&Qd8cTcq?i$#7RYpHe+_r*R~UoHc>w{%&(lHz(ZBohhU?&eH$eTqo3m zF>SCIQY`GoDp=(xm@vorawVu^uQ{esGC>9afc*Rq{i&9oy`&LS00000NkvXXu0mjf DwJi`e literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chick.rsi/meta.json b/Resources/Textures/Mobs/Animals/chick.rsi/meta.json new file mode 100644 index 0000000000..1d01fd99a0 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/chick.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cow", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "chick_gib", + "directions": 1, + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-0.png b/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-0.png new file mode 100644 index 0000000000000000000000000000000000000000..d5ebdc2de106cf56b97e32c652840722ea285653 GIT binary patch literal 1824 zcmZvddpOez7{`Ar_j_6yj$0vR2d77pw2_3Ixi3veW`#NqO~*aEQMpG)By4jO)8v|_ zCPVHioR&l`b31EupZjWa)^q;tdEUz(-}ian_j#Ys^Sr4ZZcfSyS_%LFD7!eH@sebs z#L;pxk~kP2?*afaT$eNUKCwj$szR}`w6UL3jkXyHv6E9^XG{^p~w3VF0^VNH`9j?3|* z68^Zk+)x#E!M&wzDIl!p^7VTEF(%`mxf9{_I5gN1iOR$JYq~YZA(D6j)9&Tm zoNm+u1}A-2n^RtFv6lLmR1@v4nf^`&;wUFe@?Xhp~4CaJpFV_+^l>X zRva@zL1H}cdT3OcYQ(-8@pi6i(V^1?Wvgw)Z>);%13{=hSE}5YQ?=T!twLHqIY_hp zPdkbHSpZr&YSXmW#69uFA(d9-N1EgQex3R);Qn5Z?RG6G`(wIUp*wj&n!h$1ycW`g zg30O%JPlpwR^ZU2-6@P-2LZ{2`Ldn}hRlwtrYD=hvexi*r2Y`0z(eWR$H zzgd?I7YjOTuk|xd4Ic$(Ri5CLOpNGWN>(An>!~yoI>xUy#^cvM=IdlYCxJZtIK_Bp z`K#}jv=BK_pL}sIbzH++-Z>AO>ZceDb{wQ(_cmlH%yYZ!>R>`LgJ_aQUx`)fU**K< zc22JpZ(QX-K@Co^o1c|~;G;n)d05V^I>p7 zCH(y+Zs+w>%%JZ%B10VMZOKdbwfm{duYdP6h_zFZ>DK!xf z!-Wo0!}%6hUEz{b(9?cfPZ|Cr7`p9<<4YSJLi^%o6^cJoS!Tki10MoMw9NQyE0geK z|MiobvIDd30Zt<3*P%hJJ`u>q3&A)NB53`a>cFc?V?_~I3u38~#Q`CMOZhP^kh9v1 z1rB2!F;D@w(oI1X!qyPD7p|ehQcKF?!LhL$f@9%&`&^p@n77P%3|&~_@A|+$Oww6W zxy3wn_bI}scCW%q)5P4AYr zD(Sw|gKaj#(m6ZASg)vY$^BoO8%l!d!-0+XQX!pZ?%Kig2;iFmjAWaN*2upnjJ z!`K4Gf*7=)5-7yFV&Ni0M*0oh&Y0+MT~atI+Q>5Sv-0t4$9yZQY;}%hJ*0wTn%A z48O7qwG4q^QQXv@T@e}3UJJ4tH=1Xm#Ep1()yIH;+=#>EHC%$)ET{S=kl{F!7_9e6 z@E9&WkLOPF2Dmwh(pd6ZZX(!SbkqR~tDQF;MYxHx$|s({?Z!k7F$&Lhx{yN+!I_sz tAyxJGW5e_+!Bp>vRSxl{lm&TPuMrZX`f}n^oaFNXE{<+zs!pR5{{#HVl#2iW literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-1.png b/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-1.png new file mode 100644 index 0000000000000000000000000000000000000000..c2f2bd7cf70e1c69156ee8dc39013f2eeabf6c96 GIT binary patch literal 1940 zcmZuydpr}47T=f_KaVog)Y>Q^mBo69Sp1OHvTD{QxhdTq^Sq@NvzbRxo_F6%*n?_1=XZxx`{}>Mzz84bR0_D$a%}vyDTPf#3-4o%$&1uyA;*k!`WHGIN z**nYCOr`Oh)PCa7ihkmmXJ9vfLx~A!xu1P$i)*tzYXJYBy_@ly8j_tTYd)TqJp9Kd z%LL78Zrq$ zf%ZBRg+a8HH*(OHOmO*$mdLqse0$uCNn9cEVL{JX>dNXXkV|z3qyLL*nE!fx_0km( zx<9%&=>@RB2DE!sN7+viV;^w7hZG)dw1Q|6Rg3c$%fw2}=%>XA+Uvi5POoVc5F5(o z!ISF>iUO(2Ip;e@{D!Btb76tog6Q=+IcO=akU4YA^B$3V>V>~6XQplg;QW;Zz(|$z zlrl+T^zLwWvsGVY0@lr_Ge2E0!ng`pe}U)py*5BeEEDhAdi&RQeR#^9HmZR;lq~;2 zQrWg?orQ>cNPnyG42m7)qrR&+20_hTVfvtVR-a72>UWcY(z&m7Gd%0C!&kG(FDb`ASB1WnrCQWF6I?^Bd&p z;aDKC+PJKc zOdg|bhrZ99Q89>bh1l#14z5K-c_M__DTgtNp|myc&%#Y$JAK`4$OHOOTyiYjjY06{ zeken6;$+xMR4{#Lg%^qmHkeZIGG50Uur`qSr{24qvr*H}H|2b+hyINc=e^d_qVA`H zD6Oyx=?qkB`oG!bf*$+i?;tx<`aa?sfB;nF5pvL$zI!k>V+_swf#((WBI@6lQtEJ~ zQj}APudDlwrq8vR(?&RIh_DNN$BFF%V&$@J}dw;XKmY~oyRp`S_*o`pYb;;SSOXL zYy9WczwX^-4Tq(Q?cLomviQaJ@ynC74lx=3q&pM)i3;4;XZAs}7;j5y1O-GjDVb1%uqv-NJ57H_ z*?U<0G{>sg)IcS$d8Y{bzXUvG4eRsXQm?sJ=X|tMrcGXR_NlyZ<-#k$pkqX)dU7e`e^4BzslEP=5^0+e1CL@8@=HF@?2KA#$sNNqon;oW{U0)uG25Fj7032 zlTAM;9}hY%Eq`er$l}nu>@I4&Ahwy9QNI)r^s7}z#R!=V9^Gaw+UwL{*X;%m;K28L zD1gbvuqQgYMG8YFbuh6nBL{URhD2VAAAk+?5Ze1}{bsa}mEbMm!Mc>sJ6o6IeO-=n zUj?;IC_y%xYsP_q!OgZC9Hi)`%CkO-iCd5Ulw5Yc_o^>9ehW8u(W2Q*F^y;U{(C-+ z8^CguY(tz}#F0DCp#-EBK*D$F01q1Sgu}>RJgtGZ)nU9=Uxv#gUy{?|8MCiR)1WeR zZsQTP00AmrRxpe#aYg8fNYr+hZ_iG2>Q7>6nA)H-i4S4l@`b)&w1Re3;jQDs)B5k zSFr7d!^W<#!Ji|Oj+gL39ydL!P{pZ@#%VPIL6&P=4!~j8ilK0`P5e8h&`tks0a*Va KziQv`)c*qrx5kJ7 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-2.png b/Resources/Textures/Mobs/Animals/chicken.rsi/chicken-2.png new file mode 100644 index 0000000000000000000000000000000000000000..366315fdd9b4c2748a10c5fb20b989e86850b876 GIT binary patch literal 1879 zcmZvdc~sJg7RP_MPimS=LuqcQ^s+F0xjb|hiXJLfL{+rdJ^D+ zlx-xNk#i0&-I}Ru_ks;}NbjXMJniSP%8-(L){AkFTB}Y;fkUx3Qs4l^#*$Nm<ck z9S*fBsUCjGArW>dlL{B9dHg91@8dM%)5s`Pm%k81^*U@*>3>OQNGj=#mPyf&NJ|^P z5qbTGt=ZOv)T3_^5c7()lV!gC-t9Q$>56<4HEqv*@j@>>&s!p>C`wB>A$__@Cu5yI zn-+?Wf4zxYz6jEvWAeupR5B(Yu}P2(g(s->>;V7ZCxZSXirVNM#AD;0cQVnWs3|T5%br0MubiBSTov# z#eeog@TFaKbzrMhX(U-Y*VJ$Xi7AO09>LCth@FSAz{?)FUyH)cqibWyif2MBhVPuA-7l4nF;3z00_pDCp=esU`*5VY%$$nxTaoO|FBldX9_MT`N6FRD&kr z{K2j~UZ6AZ+wMO~WFXJUIcq2U_x_B8dFy43=TD%ztepv*8fBYXwt0V{rcO@MccW`< zH&f8A6)CN=%QH_!KN#+|LwtiVWH>^yfQq8#y}DxVb+4E}cA3k1U`#=be|DTDj_@Mh zwpS;@+rZU~Fi<^^arn*^+Dk9U^Px}rIiQPO;mSkU1Ad*hV%Y2cbB~Toyy-xtbp5ED z9ehSdg28||PH=WdLGOS~yJuHMwgG@!n$37^cZ*Yt$<$?oe2aS5{?Bu$SM))2dE(uQa;W2**Qqbf201rsG+>S#YIlAU;?>Hwv+0`#oyi=X**b8LXdg zC@DJ4AOF&4d46&BVLfS93iRwQG_aXzS*WIuuZ^qCq9fJgw9l_jaZ&^RGmuP{BEG^- zR1&{&W&S=r33oU-jPax!7dF2*mwVGXt~1J&_@Lj_(SABL1wP~GFZRKta!B;8Rmk+?$;Smg`(66Eg`!X& znL-JuHRaNEai8-e+-W_1xAT&BKBvYhb(u4(@gZ`0^p|HO3F@jZyz-)sYt4nf>rPdf zk~j{FU1dcE`G|Bo!XZLy8(5F_p`(}O6Ly6AIW_N}WW2POUXm;%oIFxQN)sr$j#@Dj z8qYcy@xjM|RbRzZ`oI{pjTz?2#pyc!>U&IZ4fSUL{S)=SOG2m?u^Wt39c}J=mD$^7 zcdIeXdX$Bjgtm$4Qn#!3>WP~6P1Y)$bi%BrT*_ej8y_srkj0UP$AykF6NQAu09D){ zhgt1z?)$G6Tr->tbv~O#1TII9UkbLXOVTvUPl5M^wJWp#O-_Vlt+Vn^Xv737{HlcV zt&z7F{b;4ZTThN~ZeB7g#4abA3i6qqY=^oQf=2QDOU#zjDZX^wmYvMLEx5cd*02ZW zDuh+fn}=FRYDsFbW6TJZjrJT9ig-s(Rvr2R$2Sn0=*?vVA%5hAXEXzs4eIC`t7~@e z3t_3kY2^dCQCPYuiYr`J*eZ>Gq}M_t)tLy;BS-n z@e={uIYtMJQ5e;1vydvOSqgL7+17uQS?!O?o_3)>?!RSZguH z5XUjrTDsjXfD6Nr;cz(9$jUVFm-jbXW5e;q4Xv>$1k2=U2qBPCqLjjz&)P5yky4VT zsVldxO0By*`Z$hhO-UfXecgI)B2PpJfl{hAjoKERjPC=60JyWARkj{1Qp)1CRq=8w z;A>WtQiX|y5-8(t_gv8H2h~5Ij;pq%b3H2JFPmK`feDAbegI5tE}O}+jHiPpo$C>_ zn`o^Atu;{;IRIk}LWqg?;>U5P+qFZMB#BGY)J0J=a}a-(KNX*c5BK7!DcGvm00000 M07*qoM6N<$f=Zgc=>Px# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/dead-1.png b/Resources/Textures/Mobs/Animals/chicken.rsi/dead-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5ea03157c93a24be91bdccf35362d27b781b1d3e GIT binary patch literal 430 zcmV;f0a5;mP)cd(V{U1y)MoEm}DaE)@qd!ld#TB(Ozm~!%uwp{z|K(a(4GXtE0MtUYsKq(QAajcrb*tiz%)O%-zH}w0GjAPgvv@Ys}l*pMZUBqAGPsLZ| Y1J9?WdPlm-$N&HU07*qoM6N<$g4&44*#H0l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/dead-2.png b/Resources/Textures/Mobs/Animals/chicken.rsi/dead-2.png new file mode 100644 index 0000000000000000000000000000000000000000..87f5d022775bee162db17ad35042c82c315ba962 GIT binary patch literal 428 zcmV;d0aN~oP)oyjG;C`+zukU^R`aQto@pwEQkH_=hA)CA$hM~>Z;y7Mw=JqB_8DpT7 z=3DGKLY6k&?;P0ytGMR{OXrB92*#MD^Gh3^cTerUy1}sD#@^w1VUJP@lu{_AAf<#5 z!quWELJ$O{Zfun;AJ3+Ed$_~d)gy-ewp*Abb%Rn0#uzx~kWvBwf*=563`vsMqPzel z85qx|7_bV&#WkJ)=Rnr}^h>j1Qa3o~uBMcN5CQ;f-i?I?;cSdM6t1!k8V+^#`767D_pp-&uy~?_uVQ*<+$igtRNs`!Ft+p_Tzs{d7U&a?O WxvKKmXID!A0000qr%!-OS5FjOH$+%EuOT$i)CH!0wUf#{V zhYvqYGcd4V_SNKd6-vj?)M~||e k%@$T$z*$ga^niik4ug2c^60Psfv#cjboFyt=akR{06*kS7ytkO literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/icon-1.png b/Resources/Textures/Mobs/Animals/chicken.rsi/icon-1.png new file mode 100644 index 0000000000000000000000000000000000000000..69360a0393d482ca9c20ed5f277aa5d0dc861431 GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvxd5LK*M|QMiv+{^_`R!wbs8KP z4t502ObuU|YYdeC-{A0n$(Gqb7Gp_}UoeBivm0qZPLrpLV~EDYzq9tt^oZJNN9l!x-6c@aR$2 kv)RIG3pfjkj2zopr0PG=8g8%>k literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/chicken.rsi/icon-2.png b/Resources/Textures/Mobs/Animals/chicken.rsi/icon-2.png new file mode 100644 index 0000000000000000000000000000000000000000..7d579a9ed3f285d3a6c0e8ba243945d5fa2d3437 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv#Q>iW*M|QMiv+{^_`L%H0+f}N zFJ8PjGc|nT#EC1rvVlteH#h{{F_Z$b7)yfuf*Bm1-ADs+nmk<`Lo_BPCrGdgC^Q^P z7ilt{IhVI#$pWUB1EwYt8d7Nt;R14USqBns&EyGB%!-OS5FjPEm0_XEmWG`oOZd4W zyu6!z4U{3UOaSW-L^Y*T-cXXfx`-l2p zN~)9gJy;~_$|BpcsP(}W)eB2YUKFWs@B1q<$$#R;=;b=HUEYe`>Vm5{Btx7!L%M@j z@UpEv{8Hihw0wpc7$C2!}1 z*BrNUqdnfXE|;~}+?H)u9&=A7R7&z>6XSzFJJclq?LXBzr%S81=k)tKugxPgPiZq) zum*H3V0aK)d0O*_ug9_PlGcSRCA+Up<+e06FJt{%ToiEhq@$^yj>*X%OEuP)*ci9x zg|p4BJoIXXX!xeA+TAlX*QH#2b;;>;_Ux;*Gj8wuyYu~5pF2PYJwI;hGPTX4CRp>- z>YW=`&)fLbZ14JO+h=!HMyN-{oZKdJ_T)>+KR@bjOmg`9hDrFW@{Tz6c161a+fQ|A z^OL?^Y_7PSR%(ClXv*f#jK@7IN;4TJUpBVb8**dq)xxTk0rtBYF6^zizddW+$6ABz z4z1oZE}vJZE}MD!$rqpF9Ue)woKZEO#rAKvE1y$3f8V=@H~-|s?5WiKveo!kuf3gV zf4F>E-W=y@-zt?i*Irfptud^dFUQOOS%2gAk9)6bY_MZ^HsSx)4@~{v_cQz`kCw=~ z!SD1Z?~9}4{8{V`7V4iTJ$cG7L)f68_U+X(itB|x?NyF>{M+hvb>{luem39ptlNY) zetpjHx4p}vr~UDf$-6(kwp!S`HB~f;{l+o&vYPh3udB|^X~!qrNx40~zGa46M;hSWuMlzrErXr>Fh;2aD^LUpu05Y47j9 zU!MQI;{UhSR^H&$dA1*Y?`s%J>TMdP$(`NOw$J;IfN#>i*X3U4mfG)&IiYz!w@LBW zXXm5a*WTAWDDd~=V!8W26>abT{pjiR{rPTzN;?O8r4+S?o9*wpo%r`hW#Q}h){gOD zWtxtkb3R;^e}AgHeqXo1SL?fN-)3FB{HlNYyYti6?QgEkotAM{?B#iLkL&k8-fb_b zuetS+eQli*5?BJlhI>Ch#UTgMKi|9~KZ|3K-Gv0JAs9f}}@ zES*HCMVdh+EtYDllvaa5E9G^NcfQqMxdHaC$Hvn%z)+(b%Dj*T?@Y^kyib=%j!Nuy`t!t}T}*sh{b zu33q%Di(5Lxa+uSY`IPDtJ#%$U>>0potsEC9L>IgLHzjsts#NUy+icWx1c)@UWE9- z$;kVax{aY5*PU%km31c%$_YML07jODjO*g&? zY7K>QEzwioYKW=k(l;>Z84*E3PeG$ko??Ibz2~fZ_i+vPvO`Ys>Rf1QXGD$P-Jivy zH=oX(gS#d<5>~65czl1DPS8|;e5c3P zN=Q8$O!dd>GTooABaZsDZbO@0(bWskX@7j$OnyJM}OZxNA zV7q?LXCJov<69lS-RdVIA|fIpA|fIpA|fKXq&odMftIn|j}Nrh`T-_z{Q%3jet>0M zKfp4sA7B~R53r2u2Uy1S11#hE0hV$70L!?3K)d7m0hV$703sqHA|fKXRQ?0v5REUZ S!*sF$0000 zRJ-vuk6AXuUgDJtd$pAnvbBkc;0}ne1~UN81(?7;2c52Kg$%F=*B{;1Rxd1uM+`O= zYD)ou3G~{RYq7uKn7Kxdywk6c5U$#A`P}dJUb;lz5|^P%LDl8VKwhFL0I1CEGTPuE z2}fl*jN?}mH>%e$(p+G~z|-P1Wy$KQ^4dMz7s)zW;Cjzpl69bq z{21+iNEC~zqLAsVqR}h2e1FZXF5*?rUrn=+kL|HAi(!$L(HTH%3gxDB?F9IJZM*`B z_`<6$|He*06Yd^AQ1Gc33uFHv%@@?$rGal3w(C{kXYNLmxhoGYbGQWAI zYMQ}HC(%M5rNlrKH zLcMX}q?CD28N5Jx@EIOPuBENNOtqjSOXP!hM%IxMkcU=Jx9aNjml9=B+UkClg<9n- z3;kMI#5L*RWE>N~6p66CKu*zSL&$3IMG;qoOTC+CZq8*iz=o>0?E`^P&b}DmKWwHW z=|eJ9yH)Yz7IW_E`e6nH)8mB@_SR%EW?VI z?U-!J>SBzjTsxO$@od=}5wWC%>vlYO$M*db&=x|o`1c(L@-!PNvu&&&zG7@fI~n?> zA#caT|FDppir3c`9^uVIBNWP>PUd$n;Fw6A?N zG!IWVW4QKWf9`QST4eU}aR@yz9&|C>uo*HQ?#+bmeW*Hd`p>rc(+o|b;6UgPalf^l zTjP>dU>=!P-B^XoIU0Ln$V}L?HJ(R<^*%rpM$@m5I}W?1Gy~Y~y#hDk+CC>;%XRj6 zRvGi2JF-cKlzD{E>R{e{eZ5o)p+@s!=oX^qEIf8o4m+BsqS2p=XOsQEJTYS(5lL5p9O(7Ba`x91v0m3FqJqJ^$u{tkM;Yj%? z_ES+;s<2AXQXf(^B|Tl5q|RjGo;F8=#qfR~n%vTf&uX{iu_{?Nf&)-QG0mxJIbEJJ z9mXTC|gfl_+2$vX}3s;Tm8VW(Tl z`nP{_OIg}-xKkH=C1c8sSkn^p7DK-wF8YM2h)Q6INti#v7m6zNsuaUl=0lM0f5S?F zJfXL$niqg2UnNZ_!Y^u{#Cp5xauFl;{D5I^szGdNeA> z=p}XK?#roj0n0<#PW&FpKfBIcj6>rm z&-%nmbDYNrT%0`E$Acm=-C2k5s&I=Y(b6CR95}YGzY--J=U=XqJfTKpOg8ddWhBW8hp6#|e3X7>2ePY<- zY1aR^-Y8q-*_g@f9#g#Q>-aNm+^1M5ex}fFkga|j;i(yr2v6ZsS)=sLYCuLbku-vxUu;RSpo+Z+_52xAP&m_)i3Ni^)lC$BLo4d-qTh zG%i7*-?paXdE3q2N#>1MjQ6PUWp-F-Hm{_x-*??i0ZN&2{}6PkMWFzNWe#2e$5w zYRe^(J^;IdBkObuBLfr4x!leZ=z+`w<>G$+R<+itfaN!N-b6_*IyM}!ss6Mbej3GFI};{wEC4e^1$8Yd1dR7gbZk*_j)T% z!||HiJo9C%0oZQtJ2{xBZcu$M*|xs6h3%31kKn14>>k}wnpd7TwHdoW@rz5K;r{E% zEXfocVLol+RhwPg%T;C|olo|Ak!?q5n=203Urj<+l?eh>?I94W2@dJPH2;6~M$#20 zw|xpN$G9Y7HNEC#yRKKt#jV@7JW5!ti{eIArkUO_J#ywk0W zYcq$aD49u9Rfd9NS$`l?c@8?*Q>zu<(Zp2hsd%FY_2w47NfhuGUUwvvIb45DP zNSU@vTgGlCZ~ADTg*YGlr~Is%uVI`d4$vxtq;lhr3Zs) z8rH)U`PxA}b7U7^czfi$svtO#eOB)BsHfW9Nr3yg^sOJ0CWsklimU3+Ah4e|5`^mQ kyen)j@@JZM*!67TVxD|aFm+6%gF`Z)f87LIsqGZ`KW7(XApigX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/cow.rsi/dead.png b/Resources/Textures/Mobs/Animals/cow.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..1eff485ebe149110c8221ee3efe87fafe1f963bb GIT binary patch literal 1143 zcmV--1c>{IP)Y}j6o%h3W>vR1?$ISK09@i^-J#lAs0OeZC(Q4L3`oTT?pe;bpXsB2A007L~ z8+U&Jxr_#n66_j(X#fED_|_MWRONR#y-1+h=Oizq<5=asSd@==mG6BG!-~Gk_=*nML06Kl?2L>>f-Lh1Y zBoGmZs4Yp703eQ*er3n-1$=PsLpX*n44Qf{1$?r2@A4&96}Q!7xonzi<)_@J?sIe` z#P43d#79d{_;~3FuP!g1Y*uTsW<%;3Z2*r9sft@LGv)Jn5D`2|5cSGF3L9&P#^OlC z$HB}9_}nPf8UO=Z+eI|0`zUNYG}AZ|$&}DD8l&UB7dU64qoSkGu|0G;kY(C=aQ(0Qne2LM2lgqg`PFmreE6RT<8|3uW!wTx&vAJe|((W86yam%h*KJ12Gfu6+QBWU7O$DsBtERBc*xtILZVjm5#t zkQ@%Au78A;we=SQ&rZD$76L14>mVY`Opal{QU?GWJUd3I+9W-r33LuZiHzdHmcs#n zOVuU^e6rZw+@wT&99!E(&~t1)`P|gZ+q;;xB>u3#K)~-W+C%_HXZ{D(P_9o_7hPL=a*oxZ5PVob>4Nt_6_GrWpX)XMYl)JvH~41Q3FL527Q(*xKH;oaoG~ zIq=z$%ck4RY{vH#?kjzHvCS;FR({I$${wqJ4^K~wawPnYc?$l!f4f1XXSBAexY>U6 zPEU-!Hh{hfRmI(oghP^HJ=`y0T>Y0=kiq-eWU-B{s!10FmW+dhW0qEObg)5w&l#MmJT5kAbF9I8;_fES8=B;G; z{lG-~-n{vJGxN>&ee*X!fdT~z6ev(&vtXdqF9u5eq8nUKb%W$l1vSD_b2;cH=U{mk z{j}nDk+)EQ1Y~K5ELh_ZeZ4&Zfa=9_*!%f6BAA@);GUkU3IG^8dK>^i@-8)(^A@xF z=%!iZoP*_^VxZJ7rl+bxM3I)?r;Nl+jjV!L!}L^Da9M3+u(AMYCMGYFY1$io^UJ+a z?uAJ`5P<%+T0D3v;^aXyb&4;HvzQF6VO=!jfI=JC_!Iu z4<4+nl3B#{S6NM(!H81~Q9z^Di}* zgQezjaOco#aW5Q3J)mCr)4d<@)4d<@=G!OZI;YCO?51!K4TJl7}}u{XJ3{>fleZKJ;Go z&dLH%CJ$CtF;LpZo^Qj0mDRR1zM<-kI{v)mpdOyq1HJb=2}{kN(U_aTueSd>xHfwu zs9rpWBjqMY5xAl*HGfXb$5;V)5J>+`s(?KF@JMAy2qDC?S1x0`@=)6VzAB${11+D= zf0GLUT7l=)=5Ab@y%7K{^DUcWR~ZhJ7D45wzZ(m;f}YU{0If#eH#!zH7H$Pso4WzD zyQ1lDzl#HQ8Ab}gEAr00pW{)0TmihmzLcPP@f`Ykd+_zl9G?5#F5EfvS}MP<%IDkw z+W4slHs)qPJ#4)45TqPwJ9HT8oaN!2iInA z1T;hhpp?T4xV8%+Vkvh5@vC zzfT!Be<*55;|E%elT{9t<>QJ-7KU3ISq?z2h{g(V>TmDh>zTPY>K;3KyrW?I_dFj9 z?b8LQ_*J0cApl&Py%7wScfpqx;QTcFqDGPVdE>asvD91+zJBfxI5Ybsf*=U$llAx= zDS?P0u{w1!&inKSAK~-|AGPJb~s2yy+ZPrXb;@eu`YRC*?&NYo}Fj+C2dEZmCIg;5Bw7$phL zyMm9MIEAI=TLI8AhoAiYv};zG_-hEovC<;)I}TqEGy^$sWl@+YqSHjs zyYHPbdX^VB7gfr;@160w8%G7c8|c`HQ_AZ-0{_N>zc3|x2aqoKqO!&$F<{<;2hEPyr^Z9;~DU8B6 zQqPL&XJ5uV^o+KiaU~$AIzXBt8oPkL-X84V^SpA1LBGe29v6e@c zx$I2_QoK9&)|Z=yQ4a=I`bBH|_4)w}CPR?NC z6Tsa)+B}UF;K9nOQHA>42jIf*TL!Lpgr(+kplW;?wJeZsezIfqdaqPq? zTy0*6pU)q99mh(GZJTxTR79^ZIdPMQytilTK-08Bh_>;1H~2*q#jCP>!H4EVjAihB zq{$|)tXe9fXhU`f6Kr6T;;)zYTTw^@5( zR(=;wAMnnts|eXD_#OhKHG<6V+XTDvZ)xZ%*2Vv(xd)j~$1kU|ErUvyJoxiMSNY|N zkY~L3J9!^Je{LEhsJ>V6t3W+f7@Q^YhtYw)~l(5}Ybe)kA6s6XO8i z<8+m5#IJG@Twc>y#l;Hn8%1>KOv{!OlqYo*x%?)4MuJeGgKGgd&Jmc~D?SX99KpMK-gl-K;j`w$Z&y-f8JA^$lrT2-z-1d`cw*;^qW6- zIi{S%XWOW{_c~deD<&bIq`Z=3P<@lvY$ngsXzsX%&RZx{8y(0x(EWY1o0hgTCxK4h z(0zB87D_l!TC~3OkYrUo=Vu0!zEg2gel~J&8C>Oeo!3t)2ggWdNNC$cz7T?XH4*3n z99m7ZIi{R+6xvq%<=&Uo8oBg7l?*2N*aWgJG9|rJZVFAh5Q4Oe?@6ck^t@+u0@q)8 zQF%;R2h~w%*Iq{_X2U2tAJZaDQdzCv%vOX>&Cew6W7N^XUrh4VHavIYsQ&fJ`NKgm(vOH;N>8=3z9DmXk zFj>l+_AQsiDYF_vp_*@}-&8f_+mdl4MiHXu~rT{vx zWu;Mo%E$3XB zl`d<*rLsh}ZpfBXr-Y^f?1o!1)txx>PWGAfH$A7lg|@4Hrb?Ftd9^I*&YUzilqL2^ zQvx}Ell*M?)1Dder`=4!krWWx3a?W-)54foq9ivYH@c7Bmt?k8R>;<3$Z1vagN|P- zc-n?gm2hAD<6~<-#gU|Ru25Mb3SM=}(5emy0WO=rRHrq%;S(3 zE~v8e@MR|NIDcB6Cb5S}K5`n_4XLb<%ALAGrNpvTOf3(;j7e32HbUB5+9VGvlhWBJ zfQhWOv4@TSmfaA^#I2BzpqF#1T%xQP)UHZPOIoWEhze!8Oj$!1S8kdTtm2Cll}OqXjd%h0GViC~V79#hF-kD6|&O547aCkn-3*r-MTIGk0q^+VnT}M(3kku;K^!CkSf%3*i^DD90gzAPO6wpA` zGhHiB^_|H?(`E}6w-UEkY?Xp+m2zwfnD~AlXW+7Yzge)U%3(ViP^H(MQCCej>!zT6 z1fofD`^<04!bBOe#s>VN0$+0kNlH~r5T!uXqthxvK5^RZN`BN_$);2+or%txSGU&| zOtIPI*+{e<59bx*a$B|PzS|nqH;t<}vs$3EJPBz>+aFs6@okoMu|t~0v7JNU?@jW4 dY#Uj^{{h*V-c!v3SwjE-002ovPDHLkV1nW-JQx4~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/cow.rsi/meta.json b/Resources/Textures/Mobs/Animals/cow.rsi/meta.json new file mode 100644 index 0000000000..caab74e720 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/cow.rsi/meta.json @@ -0,0 +1,58 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cow", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "gib", + "directions": 1, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/crab.rsi/crab.png b/Resources/Textures/Mobs/Animals/crab.rsi/crab.png new file mode 100644 index 0000000000000000000000000000000000000000..9c423c97b96cfd51796a9b19cb74c22e7bbbc3f1 GIT binary patch literal 3404 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 JqS725_h0bevi$%6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/crab.rsi/dead.png b/Resources/Textures/Mobs/Animals/crab.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..c2fa2d91acb244bf8188b6fd496a24d8732b60bb GIT binary patch literal 614 zcmV-s0-61ZP)A!|1NGo+%SA8rB2sBWzzjt+DXkF{3WbP6hq@IU+{J)%XCdP5AP8L?I*67| z7L1gpic`fvib2gut~NCG;4E}FhwzMs)RNnqg;#zI=8+Zqt{I; zhDA_*P!XO$zxJMF9#ljx+=V!UVp_3ts^lzcSQfeonhXi4V=m~|0fAmOeHwy_VL3%a zgt;bn+T=#W#McjkdnRG+sE&mHSlj6-MF<% z)mFrJ1{#*d((*h2``bILtu@e1h+jBMa&nmKx32*3{OP7g_}+sV0N%g;L~Zwo)9pia z6Yk$l5X)u&c(J_h6eK!u$}QqH7tBtnXfiZ^95NOkC01A=R#+iBmm-x>NM#hVb15f2 z79S-!IgD$JmZ-=698O{Qv*}07*qoM6N<$f|yMn AmjD0& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/crab.rsi/meta.json b/Resources/Textures/Mobs/Animals/crab.rsi/meta.json new file mode 100644 index 0000000000..73d7ef3bdb --- /dev/null +++ b/Resources/Textures/Mobs/Animals/crab.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "crab", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/frog.rsi/dead.png b/Resources/Textures/Mobs/Animals/frog.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..4d667a1b2aa4a87b7d4d200ada6cfe09d954a3c4 GIT binary patch literal 301 zcmV+|0n+}7P)MP_C@&p~6oqHFD3N8)~f(TV# zz}ulD7<#pmjy>OWIrqG8z{wL?4kYO z$9|EUs~Tz4Kq*f$jaeP9BMv)uB*gHEW zfc7OZz<2~^4uE~1s_NJK)sf9?Pm<}HkQf$kpH=O2?ZO#NlwwQq>x%-u<6a+jtPi`I zd~iRk-FK9VkS4Jg)09}QHImb4 zB)8(Y726TVZ7poMlv|kG=Q7Lr{R8K`UeEJ=UeEXS`hLH!=lQ;$&y(!xY=_vXx)T5Z z1j(N04z6Ty`ongBmKPmO0sv?piD=~+l{c3^5{f>9<}~Tv`SFu%H9$Fakqf~gKgn$( z?c44ReZS{|@~v)^8$>OSrlFTr7VVaLQjWAjE0At8)YqD&J;+^nmAVJ_>*9MgE5r}g z6LOul$&MJ!$neNFgh0)hpvO^o{eY=1&8aUpe;kj5EjLIbWvu>tRP0$W=0j@j-AF;t zs`Dl<6QTqUmJ0l0dxN204xG?9{>Za)nG#u9cSi1EVfqn{jjOs-ptlJD3OwC#b@4%v zZMy(EIg=p`j7Py1v?1XZ_XSg@R^a6|L-_JS=+UY?O}+(rlRdHs1h2sT<=!r?A5fwz zDTtuG{i}Sg%nG~%CQc}pJUu_CSl`T_;e>h1{(=DLTPF>Hdr*kl#_VMnmL+$KgP#%$IjzJd5qGQ=u?o zja+qmIz|LlNSkksFP`rVeSEWfaf%}E>W0L_)?aix$LL+LdvGo?W#dxk)+%#6=-oU| z5f2IaCUz*xPoB3Mz@S4g0E#55c(C$Pxl?Lqq0i+q81Nm=2U;G;ctlS?;>w%`%T=5#$MQWFWxj8b2Wa>G@lJq#p6f>b;m zwM!!Xkz?sEbUkKmKXqo-I4-U2|coun6t4kPq?4PwCS9c^A zN$LH$0iI)iIFK=6^vqry6A{qaE&T+3w<>Qkbhbx7jJdTo<7Cj3N_20b2C1sYuW3&{ zQIPwK18z{H7XgQrtb=eXG0%I<>kAy*+AY>2dTSv5A#uFZpqqJntP+MPdRb%`Q~mjj z5|z2ZAGtM4MQ4Hm`gd}2aNpjS@dSa%H-=vtLki9Pbma;YMuG=q{Gpib@VWm1v^9uR z>`{pdt-wo96SJ$PKeec}#2q}`zjm|^CRj4!Sd|t!uO5 z;+@{wA+a<#v4-WnZyFu9_l+i5gCLZ*K2dN)WL95*A(Wh-e5L|oU-7yMX6$Qea+DG^ z>jxyA_MlPrX<@>&<)NuEFQ=tI1_PFp%rdK!**Y|tQKo6SOPt0xR?OA%rU(^>mbE`V zA@fDI8ccLMO4Ul{Kelrkb+s_!r(ZCwPqvw5wTkaI_ zaU2vm#2u=cxYKWPZgQxlY~pKkiD?F@a%o@~oIZ$gFv4z{8cX~QK``+59cL}-60t=tO1q1M_TXV}gKqS_n zW-MW!ycLb|&|ar_Cx<#U52`LG1;)I$eivDmpT~6{6&tJj*59ZwKI!a3cuA312?rmw zaNS1JMqZS-U(qu694I&~7ub=eESB;S5>i)Ia?>L;`tFbTNg8bPe((O-Ut$SLOwDct zC+&Sk`u677?CN!egC{g3ZH9=!y*8putcf&v@NB3hQ9EExrnyw_!hpXgR~F0#2kc#% z;&YBz(kMs~w8e!U-9G*ifmaFzihcA@QSyH5)4KbO^K)}3UFqk_47Y^nN3p}s?*=(z zZ3nz=o0}fFyA6!&Gd**GV|I3i^{9%?===S8W=6dU+vwWdo$$6*V#>+Qj&`W^MDJg$ z+_XAJZ_qnvQ-pCW^m9t=9G_7i9_!eYgfCg~;@+4>6?z2VE;<@w`AW0gGA_bCs}4# z@KphmU3_ss!-Qw$SqPCnV(WG}h~AwP0vYXp$I6QB-IC|;e&{+<>nj1jYk+jZnOJ7+ GfA3#;Ahn$U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/frog.rsi/meta.json b/Resources/Textures/Mobs/Animals/frog.rsi/meta.json new file mode 100644 index 0000000000..2d517146ef --- /dev/null +++ b/Resources/Textures/Mobs/Animals/frog.rsi/meta.json @@ -0,0 +1,46 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "frog", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/goat.rsi/dead.png b/Resources/Textures/Mobs/Animals/goat.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..7b85384e80604d495fb56b29279939a4c104a034 GIT binary patch literal 1066 zcmV+_1l9YAP)7~BJkNQ)-{~LF>l)f>Y?g7vZA7?4;@=>ZNs@Ah#1Ic?{g5uiJ~N z>v(*|e)I;iq7n#(u!{L31vD&Sq&F#8MU&gP>-OsPYfX!zXgXb?FaWCNWjGnd>o@TD z3l+=Zpt1TJ4?~bv;5uFhL=u`3?eIT%B2Fb;>INkR4P?m zE^&VxIGbM&S#k4d>;7IR-be%3_Z$|*jGMz5eDlP0h zCKP)bqchNuuUslP-Pzi_caW}e1mlyl!sW{g01PBg)NF)f3H+TQyd4IjDBuzsPgYrR zv9)f?AXUcSnst@~7VO8^v$J4mvIwm5WtF}Wb$r|GRI9!rK zxnv=V0@bRGX%-xES#eV_Tb~I{0%1df6jjX&5r<_WB{TlP%Q4?l{KnW z+Yyo9-bB+p=pH|Sv#i-~_CD)_?QbbS_ZR@IT$!`aygez*TS*&W?A@~fcsus|oq;gr zk_E6ongW$dmBq!yrYc(z*U-|ja%IkzRW~oDKXm-H^B|K+<2QmWD?Eyj>ymHZg k?#%lw{|oi_x1{y>8#Y>3kGa+Ero`9 z)X-6OHFmRxZGm-Ty>W80+>~X7v5>?jCYDrNwk%nSqFS~koqv+fE{@M<9ZOb}#J0+I z9`McizVkir`%0r2 zm#ePxq}U7orb-uYd^xT=-9AdmP2%Cc@X*EbexD0nk*1 zh6V>~s}E_}*9m~v>!Y#Bg{I~>d-g2e<~B4{DSJY-2(j1v6$85R=~+FY_yIWR4)F4c zU*Pe!h#&y+noN_^LqmhHgb{!dT(PL5D3X}3C=#-iVRG_%O(N_if5kl@q4@d9Pk#o0 zrYZdSPgek=)Vy9F0J5CLQ+m^;+JNy?ibbOuH8uCBoa@Hlu=T>k_?SL2at2LRIM8#5 z)pQbo6GN{Hac}*s>ohE!sSp8mrC_?laBx_snT;sA7X_5gRPim=!G76CSPNaKa$ z)JXtdeCajE#Q2zgdn!o(fUz@cY7Pxha3Gw-KhR|%(9|5h=2ieEuT?(<>cL-D z0V5-uFBLDo^qOUIBpeVy6beO_Bl7^bJYG7xx&g>*8mVNQ&aQ6pWXu3-IRf{Z-y%SC zF`xtVKIg9(s47c5jK|pD{Va-{;a*^gLkC-Ms|oZ*vso5yE zrsu>)^|aV6{>S=uzWCnHb!XG&zWLF|zp>o^{-s~)rPn|D@IBoO{&9HrlE31|P$isy z=S@8ki_+iMO-_=C#vYW7FD))0E5?re!Nqs=)s-a4RJvA*y71R5KzK2RBq^lVGNisu z^VL89ZBcb8nqWPX6W6C_LKWvdDeBE{!-fqTHf-3iVZ(-v|1CV#he9o0eI<{-R@ALO zpc+a8Fl}kmgxs*PEKcmJL+2e|UH?qilpI5+M{5eSuKfX}sHFDr@JT#gLvZuTOU^qu-R<@Y@7?KgQ^*_tXe<_W;nkZk?XCa( z<1K*U&iS)ejcCy z;rF%V4%E3n05-jJMUl#qHDNlhO->Ij`#M=$eJF@e480B*o8p0M__o|vDC!i8I?{TY)s?ugu1c}t{p;K9%GLSCU8yg!+=Hx{3 z7e+5TX71k9ONIEZ^#_z~g64!mp-3*fCX!4g(ZzrsT@2{k`TzCk4|wFafZNkTED}Q7Ajz(! z$!i*O(X^P8O2&l=c`vX8R91Vt#2z(%Vf3me5oMBf!2Lx5Hug`UAGD05geja2icj zn2V6EJP$c7lZ0!#yjmszxsW`~!eF8u*p{q?Q>y9jRMI)IkX^XpH3 zyDN_DZuAFKt$>wG1LJ=i{v<^i?P-;UC96Cv$ z385_kBRB|7;(R)N^y?QQySB*kY8rsB9s*#c z@P$BM54E!kYG)S!)XvK)5qFDP0!+sS)I(uC#KCrfso4bp4z>#{ucj&PT7>lw*|kN6 z#}X8GEslQta_kd~jC2HgBOPuCPXJl*VZEEVr3_QE3lzTpY%+F3$gy3n7C2(Jr_gDi zJgj$fSnmcPF{m-Ol;OkMH>$rfayJCPd}^jum`xDw6gu5R09}`-6n8BWgBsbjMHPQo z4>6ybVR<#p@zF^W#OJTy)E=_`E~zA>rz0BKdwVY@Vppekcr4*r>C(sdJQ#Z9n5&&# z5R8npddoxuz)579rpV=TSeAuh7<65pHbKZrr77Sr&aAAHOirqCD}ZXXA^_s?msbF$ zX$k;o?p9RSnjl8U<2-(PpSySNsaI}eBM+be+L_;e{_yvcoBg+B0-m4F#v)!l8*kzRC)G*MtgJiCy#ORce}53eFueZ}rP8J-l{Q5KPE@NEbwzbeM0HJ6%6p=AUUrNt zv`g~UY;h=9<800000NkvXXu0mjfyni=& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/goose.rsi/goose.png b/Resources/Textures/Mobs/Animals/goose.rsi/goose.png new file mode 100644 index 0000000000000000000000000000000000000000..5c3685ac13bde7555f5bbf817ae892cf10e971dc GIT binary patch literal 1917 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℞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

gw61g=t!85EVd~4qi9Ucr7a{wR}J0`>{tu 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 U6x7s$E0uteo|*1@?Hkem4^FR0WdHyG literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/gorilla.rsi/crawling.png b/Resources/Textures/Mobs/Animals/gorilla.rsi/crawling.png new file mode 100644 index 0000000000000000000000000000000000000000..2faeab4cdea7aace9732b887b66f0faed3feabde GIT binary patch literal 2590 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/gorilla.rsi/dead.png b/Resources/Textures/Mobs/Animals/gorilla.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..0033f8f4d7dbe7665147b5a4e63f2ffe4bebdd5f GIT binary patch literal 663 zcmV;I0%-k-P)DDu5CL+FHjEGADKw3*y zN@HmP0KQ+ef>ODB!aSY*-GjsemZcGKC>6(%{)=$Ge-jbc#ODOSFbEd3gdEH#nrFn zwWb{`CbVeMTo96y$Z7GX&tLH7?JGuMkH=4*@!;VezF)LG_KbN2OXNU)YJntXp!}II;<76T=`N-cn`6npju`hm9iuPERf~tI_*{ zq@l$;WBBy>9WZavulV)-R-%FTA72A-esP>>KqnGUD2~hnqK*aU+npIn4)&N8goHQ|A^<+BEIu$cb zXmM*m-CS!Y)Fx!Z(qlAfMwcEIVrqZ)VBs_zg@ctQUzUM;%LYcb;<>Os4JCzmOX7*7 xapyN8SbZX9aP}wO34!FZKW$E}`_}Y-^An`KMyv!9V}}3$002ovPDHLkV1g_iF?s+1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/gorilla.rsi/icon.png b/Resources/Textures/Mobs/Animals/gorilla.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ad43fef18444f6b5b513eabf8e25ffebfbbdd4c0 GIT binary patch literal 369 zcmV-%0gnEOP)RRaqyPW_Rf)OU00001bW%=J06^y0W&i*H z`$g0*+a0~;XlD}RdS17EgaaMjnA{Ljjg4Xuw`D( zpvk!lg4o|cNb+T7m?(9MQ~Vhf(Hv^#^XYxD?0hq;xY+M!HS`qj4$~TWe7HZfQ`lYK z_z6^U%a>k$?ypk6zme+;Ski`9nrvxH!3&WDpP@?60M@+9qf~*H8X#t$=dPIuLN)6G zoi;wLP{4FLT=6z-8J<13;YPxc;l(2OuyrPbT3hr)gEQqfVj-P}qXJH&w=}>OKpLwb z0DUaMW&|Q6!@^+`#~9&|0SVMuOdmW#j2|(M|AKiB1+xA#b_P2~rPiaE4^U>Rd P00000NkvXXu0mjf%B-HS literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/gorilla.rsi/meta.json b/Resources/Textures/Mobs/Animals/gorilla.rsi/meta.json new file mode 100644 index 0000000000..8a9ee12dc6 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/gorilla.rsi/meta.json @@ -0,0 +1,65 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 64 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "crawling", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "standing", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/gorilla.rsi/standing.png b/Resources/Textures/Mobs/Animals/gorilla.rsi/standing.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e18f58c0498e7960dc9269442c95707ea01401 GIT binary patch literal 2823 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/lizard.rsi/dead.png b/Resources/Textures/Mobs/Animals/lizard.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..3026938567b6e736fc4421b3a5c254b1eb05f336 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJxt=bLAr*7pUfjsrY#_jT!C!_` zh3$jDy+f_Pc_s*MVpNq*VcE9egc#33h6PI${8CFAd|&)r|G2)>dM=|97+CGjS$`(` z`P1!2Qo+}m8SbqYYb~8^^CRT#yZz1Ct3HVBGm&C2DE({WBH8=!=9%VH`RIT5m8ORT zMznvtrekEeq~^}zooA+8oUOf1b^Gb;>5MM%=-ACqCoAfQ4Cseos9m?S8 L>gTe~DWM4f-{n?! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/lizard.rsi/gib.png b/Resources/Textures/Mobs/Animals/lizard.rsi/gib.png new file mode 100644 index 0000000000000000000000000000000000000000..b296dbd780bb8a5eb20ee34dc0b92abacca816d0 GIT binary patch literal 1065 zcmV+^1lIeBP)QUHI5PZt^QB?)81Z~9h}8b7rPxX0Ur>c(Fe`;*&pUHqmt000000000000000 z00000000005Hj`~F%Z`J4IwUlkwjnD!#H|N0QYqE^tDG}gNYppS1PFD?v|7}@ z7R8?V_R`~T@-)$x6^!xUnp1(=`6S{WeEsaO-N|9QI}T!2=EsiK&vbpdJT%JK5QwX4{-@1Ghj zJ2L^zg8+kL7O#6Z*PZ>z&;9M!9-S%ETUGv63-@fc|LHyJ!;S?EvfH+*ygV7XHFR>- zmDp6x*-qd4ckflv{FAp@?d6{8XXoo!cRid`a_6nMeOLBLc9^LQVXyq#W`6Y1lM873 zdSzke{eKJBgq&nQ(i*c*aKe&!=hJ(1zI+WkUDJO)JykNjHrll6-;J2LH>Xd%)pK+9 zA^Cppm%?h>CY9W{cFOK~>d)|>)4!j+8oB+`lApaZN(%4a?Mwgce3V7A{J6zzPphNZ z+c)hh^*t-QC*jnZz1GX$uhXw|*XQN%OO8x#%d%vicyg|t(8o_dL2mPO^>bP0l+XkK D-ld{c literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/lizard.rsi/meta.json b/Resources/Textures/Mobs/Animals/lizard.rsi/meta.json new file mode 100644 index 0000000000..8680a2713d --- /dev/null +++ b/Resources/Textures/Mobs/Animals/lizard.rsi/meta.json @@ -0,0 +1,75 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "lizard", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "gib", + "directions": 1, + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "space", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/lizard.rsi/space.png b/Resources/Textures/Mobs/Animals/lizard.rsi/space.png new file mode 100644 index 0000000000000000000000000000000000000000..a63b48aaeddcec39e9666233855d06d0e378b511 GIT binary patch literal 574 zcmV-E0>S->P)zNfccKOi4z>h2Yjev#KxQ!Y2?bh%gnOAQoT3xaq=fi#x%T zSk1zsRRUJYqO^gw3FGR93r=X}j*5%#x5`{5_ne%$naw#MA|fIpA|fIpA|fIp|G(Z~ z6!r$AFv%Y2qzM32vguTkeOzPj{XCd_cFn=L0KLH|eEw!LaRRQfcRuW}@pT)3W~t_! z!<=gZ!CJu3J7VY^5v&CyJ&JL?{j$rccfzT6Li^*E^FB@m0JwC+XSvg5xzlCtTHZMU z7nN)}b^dB@a_ukGo&SbT1*o-}T<|Z_&gE(6@?5`llUl3kvXzre&(t8?>g5Wn z{dF=y!|4RZu39E&gkH74`2BaD-FXbagUu(Hwc|&x|LVKIj&J){@kK;LL_|bHL_|bH zL_{Ja9botq0}y9PG$3KvjY-p+OFBO=?fX%&l5pO@PQL*O!QzdW?=X~(|D#a z!~ZjBiHV619z1AhXkcKNc}Vt>1W+YoNswPKgTu2MX+TavRY*jMOKNd)QD#9&W_}(6 zL&conu!5q}?_YuoK7M_o<*loA?#%h%4WR}XjUPPHIq#!+lA)-lcZY>>knv?>FNHae zCLNg+q7bZUZm(~>^^$>|s;QxCXScEH<`oheIVX8;uxYaF*!k^&LO~)apv&@8E-UNRFu{%QCOp-ab$rAgRp>zXL3+bpiqlu zQizaNxrj)hp=cAQK?VbB%pB$B2g^LBSX=F~Xm4VbV3m-NG(8pjK#S$#S%H=tK`h%_ q104b+ugW$tb-mC#`hoi|BZG~CVA!-tIfg*H89ZJ6T-G@yGywo(X?r37 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json new file mode 100644 index 0000000000..1621265020 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/monkey.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "monkey", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/monkey.rsi/monkey.png b/Resources/Textures/Mobs/Animals/monkey.rsi/monkey.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa76fde169b7e788a05d5cc4d95006c9f96a2f1 GIT binary patch literal 641 zcmV-{0)G98P)202u%PPg2MN00001bW%=J06^y0W&i*H zYG8(C9|j)q>YO+ttc@!6~s2=QdV&F za{(I+0ChMT(zqrt&Hw-blSxEDR7i>Klrc}kFc5`pEEt%QT4d-(fZgsX8DQ%#0HPp9 ztO)NcgdHJf#xQ}pW#tcYF0Ja9($1COGJWTF_Sw-rA$BHYnr`Jiou7<=iAGQ`nNDrY zL}Wowu<5NDwghv#=D7FpA_a0;_m~<*`L&sE&FV@?1$#LIoE8v7<5YgEc;$Z#KklDZw2F!+ljw3RU0-ZIuL+J)hYC-{7bUD() z9V}F^A(ZfRX=9;6I`2{7eHIH;-L_AcE8gevhsjbE8%8`?w{2T2d2RydUH26qanW_N z#nO)n^jZrDYx~8LAf-(IiPsJfGwv7u5NzN>+7#a*)yZMx4}6WPiUmahmk8Ss_yHpd b{(O7`OU_zcC9&$s00000NkvXXu0mjf3?WLs_6~uf~bLh$cTYyo}T{cz4Xf*|ONNFfBSFV9fEJ&)eKF(sTaW}WP8 zfl><2Inp!*=Nz1KL{S9WwpV&6rSLotANvQmU%o>Kv9>dl1XQ>>r)jFc5=BuU&vO7+ zk!YHx`$x$PF?k0Tw+|KogkdP-I7U@fN=yQP>$-3p2W{JSJx{)m)3O9GyojR{P|Kv( zwqKTdIKnVQQ4~m$1a)0^Q)-$9hgk+-eQ&;%o2zrFe=A`^h$Mu_EX(BUC=adJ8?LfIaN zUb5icU8LUqZQm@Dk?nA$R;|$7On`2u4cGIbtGV|BQwsoq;;T21S8udXHZ;^5Eo6Hf zL4keQip(&@#Y=@(!u5RM{t5ul&8Sh{^V4H=rfg^k3M{cks({Ga&b|`LoE#mZvUQ`_ z4p%~ne7`v$0RXGpm(eD1g0)XB1MF5}Y z=2xjzDnT*ahSLpU&kKzv*i;yTXHUY_>;|)iPlx@@40fhdEP)bh~8?81?=k{H&;p_2!gSQ(OP4(-s0iuem48dcOxPrgz)y! z&ODwmD5W5!1Y-;U5QZTDpzFGWePvmKbB?ksp|ytZ`=36=>O0NtQ0tVCQlhTw*PzvV zRNJ=0Kb&*;zCYPxR>0=!=GNm{0|IgkK=G);%~)C|lD^uuJ=E>53O zRn-v27=x4&MNyz>n&FlJAdX`IALr&**+)BLuX|x4GDKvOBr(-pX2u6OijXaGGy%t- Z;{}PkmVpvKGYJ3y002ovPDHLkV1h8?rz8LX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/icon-0.png b/Resources/Textures/Mobs/Animals/mouse.rsi/icon-0.png new file mode 100644 index 0000000000000000000000000000000000000000..63e17544dd2c2d7d68ba6f99724a59c9fbfbd315 GIT binary patch literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdt_}Yi0s;b7c4gmKz3lp$ zPGx1~ix)38FfgoKxw5vl_W%F?d-v|0IB{Z4O-+A)|Gs_uW~PQ$)=C!wwKJ9k`2{mL zJiCzw1!riCzNgdWT@QzUG~7vgAcSD(qC7+ zFWf$lU$9rAho#caaF5!7$zit-b|}33Uvi>OsX2XFPL+t`f~5^>ID^6_`L2*}uYIpNQ8!Uxv%yTcoeBjf7kqU-seL+Zjcl~zr=!+aU;mma ZyRwCGJKwvwuRz-vJYD@<);T3K0RS36R{H<| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/icon-2.png b/Resources/Textures/Mobs/Animals/mouse.rsi/icon-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d52d3b4c2717f5911b47520e729f5f8ed18d7383 GIT binary patch literal 232 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dy#sNMdt_}YiY;A2l9Cc8CZ^=%M-L~rnLrVQms7yO?{z5GBZN@bqZpPR{T|{T$;1!?G3I;`uC<3 d#qQt4yn}`D`jqEZkAc=Pc)I$ztaD0e0svW%S4RK< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/meta.json b/Resources/Textures/Mobs/Animals/mouse.rsi/meta.json new file mode 100644 index 0000000000..f63289117b --- /dev/null +++ b/Resources/Textures/Mobs/Animals/mouse.rsi/meta.json @@ -0,0 +1,170 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/e15c63d100db65eaaa5231133b8a2662ff439131#diff-8dd94e19fdb2ff341b57e31bce101298", + "states": [ + { + "name": "icon-0", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "icon-1", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "icon-2", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "mouse-0", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "mouse-1", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "mouse-2", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "dead-0", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead-1", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead-2", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "splat-0", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "splat-1", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "splat-2", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/mouse-0.png b/Resources/Textures/Mobs/Animals/mouse.rsi/mouse-0.png new file mode 100644 index 0000000000000000000000000000000000000000..b82f7affdefdaf4e7c5e97c64108424ca085f9b1 GIT binary patch literal 1530 zcmZ8hdoZt9(uirOSej8A#u~f3|MorK$N8S~eSW^@d~XH#d8w=EsR00>j_`(~6gER4 z5vp4hnuEh30N}T$2)Ntv*c_#z5$FN5}o^*}-zxG`$$D zRIS#Gy4u?bY- zHQp*bo);B(YDtFWzDHU-;>Lw`ByL^CeGKOblZF%=eJFq)G~E$jp{J}4h&S7S@mtBF z051N{)1hwBs{!we+j=S4xcyeR?z7yay0O?8pe;$LSI4RAX^>#px*$Ng(VW1B&h)&v zP=w#r?#Is!|3BNQTvo-`tmh9=y?_iV)wF?5C*r0DH0<+pOxP01l>Nawf@!OnffJcy z@%0?hegf4j%Z*UFxpc?KTw($T0|3E$RLFiRfYh@)j$3;l+p7rnP_1-ybi^bkCdQuX z3e$wF{o$?-0C}jYpn4@BC@2U3u!}rmK@-}A_NiUNF1%_ex>pQ&f?HMt5)u+JbZx>a zhN2DXO;JdTuFlT-!I`EYZvo#50cb=Sx8D;G#^$q>4gEX}=#RR0|#T zU0>zsj%&2j*)`_00_M!+4_vOmG8&CW9~kZRV1f1$*!gcZU=$@rneXTDCI4iF6-sIZy<64QT zkM*R%RegQ^@l=;pr+=r8k?^Q9F~~%AkLS=ZHiU>y7aTX zYlfZh8<0mM<~p}`?#aRMZ!T=No2H>^8$H^?8qdYW#Z@`bPBB#~l#KFU^)^|_(tnsR zoHhRLHv!=31El*RnC?CTyGv5NTU%0MbW6sgCM573_0$^}459>GlZeFj4Deq@B~1+3gw{8sDYMmmn!CRx4pGdqr>Gn)#?CG;%m6dJG4fB2MW* zSeg85ZFqUNTwG%hT>=hb>&JOK&)Vb9L?XL#$h8|tnzBXIeDmZzQA(-p@`KJRfE<)2 zOyZ))%8O*Kh57=$

KHCuZYKXDHY|YWB|qlc~^nch#=uW-2x*Nj3>9hR&W>7nk81 ziff7Fs#Ifwq5V_=%CyL%#Kp>VAr>0>VHDx*j34n`+R!d$k{^0T?JxBI^?nNf(CDXy zTuT4O&*5@t(3P(TyVmEj+jhT;mGc*Sh+_X#5Q{0>`g{z8j+cuR2a#jwfpIBA;!QbK zXI;Jxf6Wa>&i(Z;`}hH3QfE$IA8eu%tH}@;{*3${=(3c*GRuldXU|K*ls&svF_Hm^ z>$PTUme`0!C_tg(rWS9b`J)atyzujJzI5M@zVi>haa5b9&zJ8hq(Z2 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/mouse-1.png b/Resources/Textures/Mobs/Animals/mouse.rsi/mouse-1.png new file mode 100644 index 0000000000000000000000000000000000000000..073b4ef031a53bf080438c0803d41b1152662360 GIT binary patch literal 1658 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/mouse.rsi/splat-2.png b/Resources/Textures/Mobs/Animals/mouse.rsi/splat-2.png new file mode 100644 index 0000000000000000000000000000000000000000..297f2dbd4fdb96d7375448e0c779cb8a5d7427b2 GIT binary patch literal 487 zcmVO24Hnv7tv|rU#?l{*Q5=}3ns+jp_nEI3N=iyfN=i!JJJwrH=0cQc7n=LU z0#eE-8LugoC6$|F0Q7o2Ge!u3 zZQGeSas`rXH(FLK({8tEHk+1G$~v2!pjN5!ki}!D5b37 z=e9c9$M<~;?%%!RI5aD_9FFzre4XRq^4uiv?d}4P?@eKWH1q97Yam`7?X#v7o4(IN z{~CbL`}@GZBij;-kLpIut16+JsC+R~^$ji>EfafEns(YTyt)*-8Rd6a&VA#uUkDeX dVUd#mjytf5obdXv;)DPI002ovPDHLkV1l+|>A3&^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/parrot.rsi/dead.png b/Resources/Textures/Mobs/Animals/parrot.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..8a87b42a3bee00e95f9eb741a0bfe42e96ea4e62 GIT binary patch literal 647 zcmV;20(kw2P)ML+0p=@i*K#iLq=9R7tAWho(15=fsIT*ZUJD>_lA4HIF-sl8gfqK&OJlb z>~Zjok1f~XQim2xFH^FEVZ>Q9}MACccI$(GUHLK&T(mBY

nrmghHUb@6`qG7k*`<1Kqtw2;jn8VMV9PvXuT@4I8wgB}t>{^E{ky0MZXFt2 h_pfSTU|{fn^9`Jc)H?=Fi!lHI002ovPDHLkV1i#nIY|Hj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/parrot.rsi/icon.png b/Resources/Textures/Mobs/Animals/parrot.rsi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..10459e3c3ce00ca301e93678104d1210e6e4999b GIT binary patch literal 593 zcmV-X0lElQsA1f`iw6q&OQ4d9$-}?3d3J|Z2N!^<#0t*jacz<0JA&v|g zEj&Jm2p|p^f&dB+ssRh500^-P3LR3XV3m}pEEUcm8ITMa0S+WcNJv{-TL2AF026!w z6@gApP5>5x0TX-y5^EF{HxLjq01|2%YSa*3$=gp%TL~#{00001bW%=J06^y0W&i*I zKS@MER5*>*ky}&3FcgGOnl_hG(xz0vR&FVRP@n?Zs#W>_|H{aylXj?2zIgJG?Cdvt zb|wISH3%&HBe11)!?zuad=r>hj@=*}M46GmC~_JB$i{}oTGt{7=gc*<%Qz<{VAGC= zjTPAIP}}gkgbKg5!WWcu4ZtS8IF}59;9OEjVjBPu8H%31qbq&%-4mf->p;T36d0nx z@On6i01Lk#ngIZDB6W#~-{_+OUnX(Qhh!9wb;N{oKG6Z=xSP}g7{yaLQ|X+~Z`Djr z<59zh1zLLYZl&gGwU*uzEt&wJjBeC+m+rP|L$l^*eop47bafrCt8I>l^l)r-0UjO;Rg_Py{_{&wl~qx_wgF}Jrh)gWYy(bTz^T2& f2`c!-{=f49C|eoyk3tL*00000NkvXXu0mjfz&7mH literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/parrot.rsi/meta.json b/Resources/Textures/Mobs/Animals/parrot.rsi/meta.json new file mode 100644 index 0000000000..5a57f8f46e --- /dev/null +++ b/Resources/Textures/Mobs/Animals/parrot.rsi/meta.json @@ -0,0 +1,109 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "parrot", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "sit", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/parrot.rsi/parrot.png b/Resources/Textures/Mobs/Animals/parrot.rsi/parrot.png new file mode 100644 index 0000000000000000000000000000000000000000..fd9079fd668d12dc3a1d92fef2e2a6a71ed478bc GIT binary patch literal 16667 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 ag7O!_w^3=EHkxbz0000I9w%=8 zq%67Debi9NFRTDRGF?hg&5yExX97wA&2}sB{%LU>6iLQP`Ci9CG16sl92CiBZF_QW z);5Zt+X8ys4oT-7I4m!o?T6(B(s>7Z-A*J*p!~UO!_xwD*9MB8O96C)IVEk#*3Ph4 z&F|V5t2tzAXE-J8yXRFQW2MM!GKEvphEvjp*<^ax?rsy|w^RxmHC|udP;Eg7wSbJ3 zBF%OSYLzmSs`cCV)CyQ@C{^oFtCXSHZYi?@>^QvrP`?7KBE0S&31~l{RIS5eHGk-r z2at4xbiKT&pCR&mpaL>hinw=tUMyB~>3u*4f2ajuXIYhXM9pu`0zr+kKK>*0Hx>}~ z!1r%oQ3GT9>E;hqz;HB9U|r1Dmp2%W#!{g&9sHpdfQ`4QiWA1oe?za^A)B>L&gZl5 zwOQLF%HwcQEP`I5{KBU}Rcrep!OlXj+qqp>?aT11n0)}jyntUUURRF5&6BZGg#OjR zZ(v|xU|{fMP*NWNp#S$*6~B`D0Ke~|f=YfR^#L^ULS0gfAiUgke6MH^hFjQdL`YOE zizqqKX8~0Lh(fgts6D{x7r^Nkq=>Qb;_#D)2iyu^*IqjBKsxV$(=Whbd4c!O4-~l! z-akL!u)KiNFWlr|_afeLxMz$VlxAyk*9K&3X8`yUDB14z(s95r^tv6wW~zT|zuf8) z*!Ur@HKOVRDA8hNLl!fDLY$H|x;6lSQvp0C#iXK0R94`g{UFd_N!W8ziIMGYFVkHK zWMwd!p|}Nz8%6JLR{~iXxD?>!P`EX%!xbKm#)<82 z|5tv}Yt|!ig=drLjf~eLiyCej+;zlZ5Ize~f`7sMS%|(k1-Am+Nk|sDPJ#eHIS7D% zDV#`LLaJIk?pgt@{C@wX!RG9B%R;MGykz4Yi_28p1G2lWd+q6t3Chay8*+*0=Om*n Q&j0`b07*qoM6N<$g2A?)T>t<8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby.png new file mode 100644 index 0000000000000000000000000000000000000000..25b423bffd7a485e89b29e614b106a934b1bb250 GIT binary patch literal 669 zcmV;O0%HA%P)yo2o3+|*)~YB9z0J`#j({-m z6#(Q(r0@Lhut%Om6q4%8*Kf5w2BZ%FclQtam#c4NXc+ja*Xf@)+0AN*+uz||t1XYCRv#Gnfz-z(E0aOiY5?dQ20&GsEb{N`rl?CYeztpN@ z0?Prk_|@GGa|>hxw=B3T0OqCx;6Ic!y^oMwQ ze&n25IdlWKWpd*em-3&WGTdHWjy{01lU*&A#`?bi`iXyemW)-m00000NkvXXu0mjf DA-OyM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby_dead.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_baby_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..5d9a12a299a7c3bc9a3d426f2103078dddf433fd GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJBc3jfAr*6y6C_v{Cy4Yk1sZU< z9n=7GcnlJjxD@-P{i>I!KJ{g$$V}I1PiJ3W_v8P|%gg_R82xV~f*80pyDB4Z1n6um z|C+QyOW(CnWRs2ILZ^}q2X*@WeNzg`3tOxiWM%H`?QH~t#OL$=x>z=K&YGs&tv|miDjQ%$gL5$oRxhf-X1n6um z|C+QyOW(CnWRuOtg-%nHW<344vXkeXUS9$Gg68Jk+YJqX;LV-Q^E2EH0#6sEd~DtP zT-az@1^a_dEsa1hy}v)PYlTMJpG{M{JIYv2@-?s;Gcz+Ee(pbCLaYAYkqP}={mC8v zzDxR;?f(Bfdg1^BXIR7?C2OYHj}xZ-Pft*oVcl_V|As9AC(m$vFSWL|j`Z)*1@t(Br>mdKI;Vst006LkO8@`> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..69245c07d925814ccd1c7469bf05f94251eb94df GIT binary patch literal 302 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJubwWBAr*6y6C_v{Cy4Yk1sZU< z9n=7EmN2^&nS9)|;jj9VXP@WCyUg_6!rZZOip+6=5(ZVV$4n>ql9aA}`fgVf-PDAHhUlF4uUMyB@2HlJ zxj*Hl@xyOPyo@;ww|{Un&-ks*W~g!h-qr4ftM-UE$3~}{`x%$LyV?IJfsIYbi6Q)t yv4KL9SoDVE;C6Ga50*_=uJrLG>~k+;V0gvlf8tvgqX;kn7(8A5T-G@yGywp2EPBuY literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead_blood.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_dead_blood.png new file mode 100644 index 0000000000000000000000000000000000000000..fa6a1432ad2bf4036cbde1f95812f47cb236fa0c GIT binary patch literal 357 zcmV-r0h<1aP)1w5&<;h%-bkTqiKGO21A>F4LlFnTp(1(%MI0-H;2=6ky#b+ED23cZ?jxNV zBJI$gkY96%qvzSq`QG!r@A(6TLZMJ76bgmnzf-HS=vc3B%QWjSkm@ZRK*qF6n9=}$ zF)kt=NRu@mjE04}-)d!j3j@SO?zqFvsl&(Td#?8FRJM2PWnFf|=L`N%FrF4R{ITU=u z^fmZlz=>YR4+E~RE;IV6?J#LH_JKDWfLxsj5Pt(Z`uAaYTR?vE00000NkvXXu0mjf DtR|sp literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg.png new file mode 100644 index 0000000000000000000000000000000000000000..aa81895fef45c3c7b1c7f4f32cc887a683f7a717 GIT binary patch literal 196 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJZci7-kcv5PFZpscC*X14w7VuxN?$nB?O$;kLnKP0zqo*g-M~h!N*2OGxiTSTV vnv2Mut!CG*yBuNP^SQk{laGO6{s!iZRgtIJ{x0SOI*Y;6)z4*}Q$iB}95G99 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg_broken.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_egg_broken.png new file mode 100644 index 0000000000000000000000000000000000000000..e2e4f957de2888d6d7636265b3ced5525e42d298 GIT binary patch literal 221 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJC7v#hAr*6y6C_v{Cy4Yk1sZU9 zu*|-`?uY$?Y4yLpy!^l1e?Es*Q$+iwfOk4R4n53?4V^;X8zNbRt#?#Q=gJ-cf#b)I zd-O;+%N4{eYvGzq$k6%i!ti K=d#Wzp$PzJJXVJQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_shamebrero.png b/Resources/Textures/Mobs/Animals/penguin.rsi/penguin_shamebrero.png new file mode 100644 index 0000000000000000000000000000000000000000..99b01708019ff4494079d4d69fe6918bf34457b8 GIT binary patch literal 1395 zcmV-(1&sQMP)= zVuUP8Syn_+khVxSXn&HDP#X*lE4UBw%`Qq{65>y)w-0hJGqdaLow>6!8s>vx{_eTo zch5aD%$;*2Sj4TC+eCf-<=sBXYF}>hTQa)Ua+{pnJEOUFui`JqoM0!vPlQ|!RX`3^ z007SIohg`=a=>nW*-R*@+dlgA8NRsGga`Mkk^A#!oc{47_W+FUJI(I{fcD`*L`XfC zK-%t|H$nh_y^WXbI6~?T?diP;sYmI9q)hYcJODR9e>FGzjU52Mo3&L~T3x|s_di7F=Eq1~xq=hq1OOmF0tEvI z*MxEZj413DNnl>Gz%vc5Fx+7zUwr!?(S(^Cips*&}j zLEBSXy0-!~|KvmxSzj7iUmEYe^|q$n?z(8{o)Jo} z27|Jn^!7*5*4m7w^B3548U^ZTXgYrZZLQ7d?T@mk5rx%$ctLkEnGjZ0QPF}u4iVsva=C{f}Bf5`}V{@<>p zL0GjrYWxg|c#O==rir2`hi-GTX|^1-8}uhksm(0E>D8cJ&-Sr|dKMD#7~8CRUxeR| z*#}H!ht;2!>Sye*>vluW6O{dg?yd4$7VFgqc=Z8ZeSlXV0C@EQ0KEDDuRcIMTV8zt zy!wDc@!Ho1==Vl_nXL~vjH4Jo&sc=&14IOrvpztSpMj@7fac=$1q$V^4^TUT@-GiH zYH9{V`3r;q2P-jsE`E8ak>qAT6h$F=0=w%2^w$+d(P+r$*ELIXUViSygL=tHvo#;= ze~!8~1;D|NlKISn@PEKkNW^1AovF^xhge;L`u`#Cve;6603}LIr%`960~?X`r7hP6 z0Gtls$+4+YQKVc^pr3ss(4Qrx+6g5_<}(W-=C(jogO?d{TY%f}9N@M9x8XU!Ok>e} zy%R92Q78i1TAM}8ZGor;E(a9*pwN5TiBI9tv2kfWvrv$qEH>+9`4pacuF>SnkafOP$L-ku%|Lm2sKA;?0{s(jMA3~5|MtT4M002ovPDHLkV1kAU Bo-Y6Z literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/snake.rsi/dead.png b/Resources/Textures/Mobs/Animals/snake.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..62df7fb2c7933a0f722d51a92667c6e48213a7ee GIT binary patch literal 688 zcmV;h0#E&kP)hAy#Ye;phJAF3O-(BjWPS|q*1iy&S z_|)2WO&KTbJpf*~4&CRq|Do-l?&~V0&9W2#`ebHC$vp=5k0T6V6zL`ojb>H~;d(?L=p&f_M@H+~CSFVF~!gLNi8&a42P8hWH$xMu1JOJ(y z41nmxL>;Xmh=>l;h0vFdk_**r5wroIZ>B1t9UA~^blD7;ahNu}^CS_eOWjEsVlcEm znTdWe?S&a&Hl7u_=?-vtr%oTrOh-P7PKCYzXy)4LnC66s9H5#$3VcyWBpZodTG~#V zXqEwMv>$SSFFnV1XVY)jnmmRGMSpJX82wl$u;+mBLx(MC>xlRkKzmrBmc+Me(YIcT?RN#Sb8^{7o->B6n#l@=_ea!7{s_Gy~jDIt6QHmUc+m_UhznE3HI)#X-P|0}h zkQ;;Ky;I%+fdYl1Q-fz5x%IgKxbH7sAHY?pNZgNS2?Rh9{lGXR^w;fzn0xtKRj5eo zPpX1km^!%>{qzzg>v3O&$k7dns- yW3J4w?RrwOn#8dgX-?rQ8kgAcMZ|wtD#yHrOK|@APrN`I89ZJ6T-G@yGywpA%tq7z literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/snake.rsi/meta.json b/Resources/Textures/Mobs/Animals/snake.rsi/meta.json new file mode 100644 index 0000000000..7177be225b --- /dev/null +++ b/Resources/Textures/Mobs/Animals/snake.rsi/meta.json @@ -0,0 +1,64 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "icon", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "snake", + "directions": 4, + "delays": [ + [ + 2.5, + 0.1, + 0.1, + 0.1 + ], + [ + 2.5, + 0.1, + 0.1, + 0.1 + ], + [ + 2.5, + 0.1, + 0.1, + 0.1 + ], + [ + 2.5, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "dead", + "directions": 1, + "delays": [ + [ + 0.2, + 0.03, + 0.03, + 0.03, + 0.03, + 0.03 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/snake.rsi/snake.png b/Resources/Textures/Mobs/Animals/snake.rsi/snake.png new file mode 100644 index 0000000000000000000000000000000000000000..4b92f120ec981aa9a536904ceea6b4ccd44697e6 GIT binary patch literal 1115 zcmZ8f3ozRU82`J_c3GXaQ*Sbljj7|P>5)$8P${ZyN>@?AF>7;?tv1h;FvlhoQ|b}* zC^hfL7+nyiDyT%P11`|f+(?|$ERzaOt$zNn7WLjnMx zj`eiArp(m0e(Z=c4mgL50)VOs*3I>LEPbQ2=k9`wrU%BZ*51A;Ff6dn$GxohVtG`4 zcRFZNiZ)7i`Ya!x|48$CWFhIC8s_AORr&2Vh?9uZcpF!Eq3B*~9T^5i#)`qQe}G3eG618w2%g3mLS!c7WN#{1q@8W;SGp zlFSqdh6DP?6Y+}KCur})F>4z|)^F<22hssP5EWxG2HIfP&G@vuKbVVmDjRV~#ohYhP)qV2 z{5^6hb;xUP(A)2tyf`k;m&JldH|8x2=fPfJ1b$#+6f5wZb#140?cjCz-!C3!aa;wak0ska zs`Io=4wy>Plg`9WQM7U5lF2~8@3qRCO^77xU{LRE@tEH#qM(J=PoWK2mZ^&$yq4pO zN|~0=r|0>z_b5ayT%7Lyy2d0RQyJI2>5S=6;z2(DAy1)#d5Ka)=Av&BHCMSvMg5P8 zF!N`ELD#B*tVjBowA8b@CSrqK6iN$4X#G>e;2WxAJX{K2MV4nK-Bb_+@{fc85{SFc zJ>BR0OHh!g7iKs@=)L`Lgcpxogv{S{1$SRoSL`N7$Op?fZ30OBaY(qeoq#+ro-!d5 zq;D&U<8tRPB_jm0OfOY!7tbTI6aFm_53I!SOTa;Jo9~sZc7pDj^Z7Dy~MAi#P`b=AMyjVGd@=o2jP=3Ma*baE+)Je z5>}Cs<5fd+>T;)K_C7GkDB+Dz_MkS0JR@CrSMJaGJ)8Z-cV%p#C>DMxYs5bbWRQ** zL9P2L@4jfs;j5jjaztlN!Vt=Xi{RW58Yby9w}V$SE*-@; z5ft;X(Z-J#oT|k(oyAs9whAVg_tJA%f?00!stFf04>r4dr|t+gYj%{{)ls&61tLGd z_8%Hf26_pyc=)!A<3au5U`Fowrgip!VjKb&!QPxYb8wf_mPW&K0{=y}f7;s`>wej- I=|XVI-{5*gfdBvi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/guard.png b/Resources/Textures/Mobs/Animals/spider.rsi/guard.png new file mode 100644 index 0000000000000000000000000000000000000000..0bc66cd8340b7cb960cf627f77b0a5fdec88cf24 GIT binary patch literal 3969 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 W@Its*#%*?M4cJ)OTQ-?{-}?{Yw5%8a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/guard_dead.png b/Resources/Textures/Mobs/Animals/spider.rsi/guard_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..39654f9037a1528962ce04892bdb4c8850eacd52 GIT binary patch literal 660 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 Y0!r(7Hen->rvLx|07*qoM6N<$g5%61W&i*H literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/meta.json b/Resources/Textures/Mobs/Animals/spider.rsi/meta.json new file mode 100644 index 0000000000..be37234ec3 --- /dev/null +++ b/Resources/Textures/Mobs/Animals/spider.rsi/meta.json @@ -0,0 +1,221 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "hunter", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "midwife", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "viper", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "tarantula", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "nurse", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "guard", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + }, + { + "name": "hunter_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "midwife_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "viper_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "tarantula_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "nurse_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "guard_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/midwife.png b/Resources/Textures/Mobs/Animals/spider.rsi/midwife.png new file mode 100644 index 0000000000000000000000000000000000000000..9c9ef66268f30f9a37e550c2d5c79eb9edf61814 GIT binary patch literal 3928 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/nurse_dead.png b/Resources/Textures/Mobs/Animals/spider.rsi/nurse_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..8add1b16eb75b6f0806e183ca3431157b4e94386 GIT binary patch literal 560 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/spider.rsi/viper_dead.png b/Resources/Textures/Mobs/Animals/spider.rsi/viper_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..8a008976af2ac6320033da2fb6bab37083b35bdb GIT binary patch literal 829 zcmV-D1H$}?P)T(Gw^z_U*O;HQg&5wFy?NCqhkwW zmKJOq3#qj+M2_z4LeE*!CQ^nl7=55{lJkB%?|Yu}rob3uj4{R-{}@v6fe^y@no=qa zoBuuHVowYjDzb`Fp&W8}jO3+48H%iqW~^&Twz9C!9)koSgsm*BGhItY#!C#opp;4; z+{nZ{K-}>>wD0-u=*P;t5M)dUVe`2qrfW$C0H(ez_V`-Yl59S=G~^doJ#eo9LI~r( zI70bs5shXYy?$3R^=&q%EDOImWf`Wv&3gT=)M(a`&lY1fG?+_>a8P`jqCt^W@!Y*| z;Q1~HAuJ(VxSTqGkxIizrExiRfP`#;5W+m)MfbuH$rM?IrfA}MP>fQLnIfymJ$r#q zU*1cE5N4#(u$>ktr4lD%q|(Se&qWmn>xTu~X#s%n3C37iSZ7wP8q$O40Hsv&d>2-& zDymLCNeOb?j=zgSa4#yxVDb=whd?QnHdZ$Q0F7oH=bg@w&3UJTMzan8*jU{hS@A=Y z&`71x_xkXB7XXmY7V-V`Ysg8FRm@~&L+={Ry71u$`f@Gs^e* zd=**6OQz%GCY)?Bq2is?gXgGx$*iH-faVu1irf5SQitGS);#Hh?I--q6DlKewwG8H_?}+~F^zo+O6np$8 z6@2IfJ2w&mN~vT!EzD$Q(X{W>T`H8Ze|?5Z zyA1$%bt?;dzOJ;}*uOqQsZfUJyJ*^V%w%R`+YiJX0Y`B9@vE7g)UlXQv1OWgZCe0< zw?+3TIp)1D=ipw$5uo(Qz#(ii8_aFOT)&Gg#3lx};2)k9S00000NkvXX Hu0mjfi|&GQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/chungster.png b/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/chungster.png new file mode 100644 index 0000000000000000000000000000000000000000..74af69c98339d2ba55e1f6f0d2cece7c82fda3cb GIT binary patch literal 1461 zcmV;m1xosfP)z!Hpo8ih`{hH(I+gmX=DZ8?6yt6l#@3jQ`Mu;$JsvQCgbR zjX&A6i`0N(QYg5Q6p6ai#7&{W-gECg zl7ja;I!e7g>q|I`<=%!;sT6hOA%)w81+g!HY~|8!xi+{%sDOSy7g+pmhk%nt^B%g@ z-2o4uO)5eFq*Oq^uP5?2aSz?Yk!tlgchR$cL)&@a7*Dwu6`~Q1pCW}?0P!kZN4W@KLvCuhc(FY|vfX#qk zfBV3d!pg*O+s-LSasWe(#2gyuY8cdqJnE1V{y=gBPyw9Rez0C$L$Q=(BovU%um`8E zLn;dA0Z`=1tzXqW&h^X%&(-0zQ%7176uJlRE>UXlX_j$SBrf4oh;J$qFh zhmT#9{w0gm`R0Qu^?$NP4o=860e$AfcL=7D(11$IWB&QP&Og&YhIC*=>nw7cc_%>u&wQ6)cIz0@1d7U5niI^cVI08)L z33&g%Og9+YrkgWyF)^rBQbeP4BXyV) zGX8&me9Y^0uLJh?@06kOyXwHTc)mWc;fr-j3G~*J)6;V4+;`DU0q@{l7j#GPT2G3o zuM18GK#5&_Co1>2?%BB9DR6Y;gnAARs~7miT}=bOPyF`S>-^wR;D_@E)#1a2O<~Wa zz&7o*HM6{?VuRBGyZ4^VXbd9(2F3vILr$!{rA;WI}s2NCOd z{?B`rC`d7$D8HKob#U3$~mDL8D7 z$on{WZ+ODJKH+o#$dT$IwPc!UbHX?Kcd7%%uUh?~e1GP$y2iUjoIrlaf=tM!BVJ|; zW-X2q&=op|@aKjI$zd4CVK|+ze9cEy&m!D6Z|SuXu_>g^2J_@DdhsHA)7e?|-{S{= zs56X5vPRtznS=d%thPGah>bk8Z5N#m+tAxHdxmH_MGEMgi*|j$Jl6++OJ4!veY-xO zT^|sSrmqhus>54RAHYr8c6~s*J|G@R34(30QaoRwR*4X~33Kr^ilkj1(5???zWM;2 zt6d-9(Io^)?S^w~?ge7H`Q@Vt`Ef;0Wvk4beirQnIXySI$PeUAd20^z#FJ0{tvU!? z+ZG{;&ITdVR~6E`1E!`BDI%FycrLZYDI>jNMIvLMq1>SWW`1?PHztv*1+ zy+6qMfL(pDCg+1Y#Mp3k?N6e1VYa?fa_vzzO?`mRc>TE;{)Vp)hyit@t|8n_Qy&1C zp&)mN?m=sUs0{#I!;lHo2h?Iq3QoWl-Ky1L4nP#>skskc2b9yw;7ZMU)CZJhRn0(M zz|a|*5;sMC0OdfoE&bJ@>lnh{boBwaCZ7rF))MsrHqMr-53nIhXA$`yMtUly?(uf$ P00000NkvXXu0mjfv?IPx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png b/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png new file mode 100644 index 0000000000000000000000000000000000000000..25dd2ead4b9bc7b31d9cfc2df9ceb14b71301d56 GIT binary patch literal 848 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 Bq5uE@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cak_rest.png b/Resources/Textures/Mobs/Pets/cat.rsi/cak_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..9d6d13f93a1ea09ece6f56809dc0544b9359e73b GIT binary patch literal 370 zcmV-&0ge8NP)WF!N80VCt&CSdIY3ifE}hXbbZ|&iNP}2%;YF> zY?=frG5C`*#EIYk`Pnj%$z(E_OeT~0uh4GeXt#04&M8vioHKCF@D~z9l&ldID9^5E z*4D7L{` z5ji15BjKNL8x9H-^973e;>UwD1hrC-QuZVc?z7g~Nv*JF)EO_!vNJan6hc6%Csg{O zSMz;!kE_S^Y_LFV+!)h&_w62nF{W8SQoyfhXkjIn(AC?h@T5Td0Hp&ZbX7$Iw&f`< zXy3@UyA^I-Pr%=T*4Dtud8Y$XDO6e~rHnDa*9T(r!*BkciFY877|jTYZ`|&rX2e-k Q1ONa407*qoM6N<$f_E&U=Kufz literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cak_sit.png b/Resources/Textures/Mobs/Pets/cat.rsi/cak_sit.png new file mode 100644 index 0000000000000000000000000000000000000000..f8e99f1953fdd8ca5bfcfb75e7a02212bcc1bf5d GIT binary patch literal 400 zcmV;B0dM|^P)!ALTx2yDS!X}Hsvi^gGQdSvCrLcGCKVrE;s9{sYG4RceO3DJJ$MHC2G13z z1Wf!|Zy}ef$Or?!zkOf+lz^$)78mKoKNwh?_eNe;FZ=r^kvhN9YY2%5X(>=q_q3S< z=yIJy>#fr}of44CRix`P06--g@!clJZj(d3KO+^Q5&wK`E)Tp~U@C00W`>k9G6M<# uNfM*)r)A@P7VJ+pt5RDSzz^Z}vo_y~H=m}D9$wD?0000!OGN literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat.png new file mode 100644 index 0000000000000000000000000000000000000000..37b105b12ed7dfe1ef4426f9a52bf52cdb79be4b GIT binary patch literal 2619 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 LNkvXXu0mjf5I`W= literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat2_rest.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat2_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..b1f6676873eb64f6db85a782104f368b516af576 GIT binary patch literal 878 zcmV-!1CjiRP)iOM_^FF-q|G(#b&&z@50YMN1 zK@bE%5ClOG1VIo6qm)v?hI;ikv@@YQ!78YfQg<6Kr7TkFVbp&l*if%FZrhcXB#cF$ zQV(i=o-O6wFZG~4UOuS+0$%Np*GlLsrN&j?@&o{!IJi3{@vdGQPP>hOS5vFYcaD0E zb@@5ts-H9gUA?w38%R*-I|{(l;MGyj9dG@KBTcGar4e;RI32V$5b$d1+l*P}^OP^2 z0PsJHaP~ko07VOplh^V(hX6NJMN=f{wq{Cy!~_8N)~^J@0P4!4;Y|XpC@7&frW=F# z#!qdTlODZ~;>peEtij>cd3?r!d*x;V-2S5^WJ2H4M7(LA0tmJD0kG#>tr?r+>IdL> zRh2oWxtv4h_vpsF;>peCSY@byeT8n;9P%ekKqmAp?|@KypDC`noZLCK-;51@H#L_N z&E;glT%E_K35byLXH|Mx>W5i#y1ICf7xfdocu2ERFo#*$j6LmxY*n7?T zwac{rZ)RFV4{RGUWg8jAR_G#v%18JZJB`0B_$ss~g*< zm8fDyJi6rtz}i#V`P65L5Mkk-%}BNKG}{5E{TKlDj(Grfx{3f8Y-hKu1aMsMz><9olxZf*OQjtJIFJePQICQ3qqVYU1jsCkys29tp$79IZc)9QGzDWQkF886> zPc^i-hK^w7cNg7od$63m1hA>%0hZ>%O^Y{dV00!aRf^etlYEf-cz@_7(rB{W70)l2 z0a)88Xlp>F(!@dQIRH|TfLNLfZ{j3@{q&V?(+Knb?yI*R#!4&btNMz`7d z&e$kesEDi1PPi##CNZm$W=WBGnmcf~=Y7w6?tqVvkB^U!kB^Vf|3W+-7ynE=kw}Q? zrw`(o5&6EwlgXrz5JUnGh{xli{r<&4UAj;4bUH1B*bjVhp)#K@kY$Co+V0WeLIXf(=tz4n?bih|=f2ZD;CpsMQ0G;G^uI2@A8&;BHV0je%x-* z9z6#3@9OE3D>~o4Ga8K!-+)W2)e_-wn8{>9v)Ke-ySV`%9C=766uL9HYtV5V3WWms ze4g!gOSM|XFbwMTI+7$I%lp5+QmIfXm5v(#sMTsh(=>X$9$&wFMhX1g{+-)>^l#q2 tL(?>7vl)#>1H&*-Rn;@(*2?9w^b<$(!+w8dU0VPE002ovPDHLkV1oEP37r4{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat_deadcollar.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat_deadcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..d065e3f898e414c4e5bb46ce1bd69ce38033ee3b GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzJ5LwKkcv5PFCFA$FyLTu^!%S2 z(SG-a+oi@k&pA$bP0l+XkKC&U`q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat_rest.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..5650e1d504ff6e518483d5835946f1783d3f2190 GIT binary patch literal 741 zcmV7K;UZ-$yS_007@cx^fKX;avJ(j|E866j_$7$|%n(B|%DQ zecuNF1VI1*5JEr*VY4hN9m{#BN?HAb6_BQ>m!>Iz)l;Z?em(Dfk3tB{!r9tPl~`Kq zv+AFG5=tqXWf_DJu=d@<%gf8wy;908gP!NDGw(3Qpx^J~M^E7U!*i)BIJf>u6GUW# zAb=2J{aaBKTV@UkZqn=Z007hJ6vh~oJqG92KWM_0$)T5!F=oruCd=h={k_#{ZCxvh zqSWRurN7sR%Q~<+KSfahz|jo5;KmrV+im#1k6*u+ST6nmFzYpCUZ$7S-!U^DkF5{_ zd7fiD9s^iq+nI5nkHT(U7>2mLy@fFbkB^Utq6kTn!1Fu|heHq%-rn9Y7!39%;?nwi zO^ik(OGKDXr_j3kfA{_UJ-Xd4USD7F^z?)%iqPqF)`r}*ySuypQlDWMhG7_nVHk#C z7=~e(%kvp+`7#`BjyfYvMXI*7;yAWp7$T12tLX2TX=0*of8JFYto)W|Kt&<+nxrR&j(~#R(tbh^^eX60KjB2sU`kd z^8s~fJRji5^ZaV_0XH`{&|1S7!}9?=AF!c6pU-#J@q9o{eVz~a7=-5oaQ*)LCH4OT X;A_732aJWE00000NkvXXu0mjf?{!$I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat_restcollar.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat_restcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..d065e3f898e414c4e5bb46ce1bd69ce38033ee3b GIT binary patch literal 119 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzJ5LwKkcv5PFCFA$FyLTu^!%S2 z(SG-a+oi@k&pA$bP0l+XkKC&U`q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cat_sit.png b/Resources/Textures/Mobs/Pets/cat.rsi/cat_sit.png new file mode 100644 index 0000000000000000000000000000000000000000..36f980d37cb1d9dfb55158da3f2b48a1ecf9d284 GIT binary patch literal 655 zcmV;A0&x9_P)<6)bH+9XY2#Y_IT*_nBM|7V|PW?-O!1{!Fff&PIk%ToUh zK0Q6Hj$W>-UX5sB!n4_|5-4IrI+kUr;*vc5E&uxEyzbhjW7F~%B|Y6+6b5kIINK?p(VR*6)~U}`ecu@}NMFcLpE&Tr)b z*nDuiCLooF=5v#0Al#p~OE`}?##9B6tTD8br+7Uz;k~lwF=KW#q+#iz2i7spSu~J0f0(*7c(`= z_(U4d^Qayl;ks@BZZy77uQ>oLFE4ZQ-3iaY&d!cVjgBFNf2typ2+v;>SX^ABRSMNS zWo&$ctGQX0mX_E%_!yo6fSTjizm>7B>*R7dfZ)O@l}ZA@wr$qd)`E+xoBDnWS})tx p+$;d|^Yau6g>!LQ;C6F=>ksAp)y=mXoX7wG002ovPDHLkV1h_OD_Z~n literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/catcollar.png b/Resources/Textures/Mobs/Pets/cat.rsi/catcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..c420a6bdbb5cd1c7a18bee52f36ce7c043461327 GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=nVv3=Ar*7p-rUH0K!JzF;r)L0 z;tG?XixZY~DJZ=2()xcoqz|Z!p`kYAT1SV*(tkE5Q)Ye@`}LBSEwg@o`4z5jsxqQ- zAQcP@eBa6pWD{>%Kj{&g#(TdQ(r literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/cattag.png b/Resources/Textures/Mobs/Pets/cat.rsi/cattag.png new file mode 100644 index 0000000000000000000000000000000000000000..449b89638d71737ec2bfec1d8e6ec53a623f8eb1 GIT binary patch literal 139 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=L7py-Ar*7p-rUIBV8G+*IQyfq z_$j7D`QVEIfh??@yBX*G$#w^-0|Fa^sIadqE^Z3Dzv;~StM3=GqSz1oFlJXQSn5~RS>)z4*}Q$iB}<1j89 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten.png new file mode 100644 index 0000000000000000000000000000000000000000..875d8d358c77331bd37241077565c7665b0d1be7 GIT binary patch literal 1701 zcmV;W23q-vP)8OML)aBBx}W+BV03uOmH*=d5pbVt{{)Gh_ohRr5UiiS!PR=Y79BdIkp)^<&^ zUJ@G9y%_dF{m|}arD$qW0_(Umw9PWWE?Af_R3PH$fTPUHcx0$73~xVB5Lf4R95kDp z-={fe&ig$7_kW&q-ZS$YP*6}%P*6}%P*6}%P*6}%P*8}7?(S~U-Q6u7wGO!~d62=E zwj-9Mr9?~1BjG^|5CExf=dtviRlL8W?4edc?Y_dh^5rep%gV2knO~HejQp+Bf!O~T zAB+~EPVwOXDwWqhtdkovY-;xviX@+xTN*8{wq{&vGXNdV%k&JoBg!wU0!mFr(zJ<` znvDE$CZCL_{Qzha2IYj4&9cXJq^~XHaqWcc7%_4NrD+rS?Mvs;r!8Zotr20y1yghSh5T_WIRp9fSzsT68;}mv#ng>H~-zj zUiC>i;bf8I^UiE7)F8hxC){a-i*ua_j?I&`|9?A*;vrAs)(#Low-@y|v?vvj-Co0$rGXHS_?@A1Nww3 z5s#H+fIi_0Nd^PiC3_G~2UF=oygh7|6G}EeTlXE(zYC5h_n?b~RhGjf{r`rz=(ugi z#f4s*xbgX60kFN$EJ{sA0S~7F>UNog+jd;k?J@~~>LUll`Hr(<_;UZlslW@pHsQ7% z|7Nl|6BeC00~YS9K5{@*A35-?{ZXc%prD|jprD|jprD|jpztlmpi?i}pAw7Fe|(_s z@Ha8&)Z(*uj{-#X57IePf4u$&Q8yu^0iH`9;ko1qE9sMovpvF|3WTPl`T?cg;j?#- z&YPf4@q{%dT-`wp7~P48Pl+c!C7$ygXM+Ya=+q*2g_+S2CvgQ;_|EPPOK3R!eBWN0 z-q^+Hh?69rH)Iu@?>IZJdvs^;N(^Yg=uSjx-UbruD;ex-CEr{UwBay!_SfWS$gP?n zuAnL^m%;NHh}u0>2gqGv z=2xZbXdmz)4)$~C3pa5ERiTE3q;^jghrVzl4))VN;A2(x3wQMe1CehoQ8`=d;r7j- z#|1Rtst+bycHSHc-SDU>Lzq%KNE5wiV`Hco(DVB0R4&fALXHi^#Tgf`uTG_6K#w*y zhBVR3jq9D%l!dOYH;2qjxa?f@1wJO=nKkItVy>)nSD2}7?oiF`+qTgJz|74~0G2Gh zv%O_)5!Y1T=i-cuO}{)9m0n@vF^kArl1`fFny>#}MaI-~j1?85J7;BM z=I4w|Jv%SXH!dMbl8BZGk|YV=xP&$~2Jh4~-l=IeX7=2pA?~F=uqtO(NA0H_G@*`OUBZC30yD*$$zl`q|T-s@{& zrD&gDrlLLhg)!IUXjm!Qd9Sa9FWvgPwAgJ{G>OSf8Y+;o3PMgE!hA_;+S!Pv$U@t> zQxtEmyeFvj^a9V2yzY%Yc~7P58zomcLj|S3^zE^>=NN zCFC(O5v3+0FMo8CPS5?HO}ZLt#PS!*@r_HwWNwOXcI)XAqVbqT1e;t}LyfpP;u2R! vTv0cm)MO0#5=K`;jc7b(5!TZu!p{Fcx9X=rJld#U00000NkvXXu0mjf@oH4w literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_dead.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..330fd0bff55ad4665ac12eb6d893ebed441cb7d9 GIT binary patch literal 486 zcmV@P)1uT+RzYM6m2Q~&7vaWV1oaU6fFpDnL-hj4h|JGm@QZgI5>%mAQHF~H)|UO z9YPxlr4Xy21vTm75QtJSAtElqkCNJQ9mIf`L>FK(jppz{sBi&^INB z1bob`eMj_AbQa3~CqUwhkWSAKhq)}d#AmGO6dB`;S1lD(9{mI$b=CpEX+sm%bc$a; zmZ)j-V6#+STxcs)a&~SMxRd~JdWJ~G!iDqWyrr;yyq5srVRH-CbP9m@#xwv<-4B3k cBy=tBKd79N-xwx-U;qFB07*qoM6N<$g5FKlcmMzZ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadcollar.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..b45fc5ccede74f4428204b0c09e31ffe7d51e462 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz3r`ovkcv5PFCOG%P~c%c@aSK* zMf>d%-nk1GaTI;`=TKo{U}#w1W4L-^S@QASj5FO|fBO=*@8L?;z-?^Pf3FB)0h+FVdQ&MBb@039$U6951J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadtag.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_deadtag.png new file mode 100644 index 0000000000000000000000000000000000000000..2851bfd41eaab9500dadb6bfbad692e96e0bd976 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzbx#+^kcv5PPZ;2v_KjdLm`eXdl5h%vs>FVdQ&MBb@06Q=m)&Kwi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_rest.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..3d46e4f45d062a9a699c5588c3fbda89e75806f0 GIT binary patch literal 662 zcmV;H0%`q;P)gQw~eNC?kHQS=vs z7DO9?1(Jao<+ejoLlYv0BBKaavMjzGWNX6IrEJ6czE016Jp4Z2=lAgJ^8JERN-3q3 zQc5YMlu}A5rPLxdR3ZRfO*Z-O@*66V@jDl!tH~xGj5B#J;BWFvve^vaNd5G0_kB$B z-5-q?^QhOy3gC73y{rpQ5)lD#R{e>}RsO7-iHJC>Ohn_w09@R&7Jx5hqulMAd2eg2 zjjyZL0C4-s07v)Lux-;W>e_zrzQcn1rjMS`r#TBx7xWtvOPDEo_lo0}ujMp9Mr1?P5Du;o-o z)(4O-`9^b^bLOG>gi(u^bY=HYIPkWm+Szk!&zy!W3w&; zAfA{4z%^9C341xWUOdA%%!2+4a-Bc#TM7CNaWu9tJ{Dyx_!!G@gwgmUyQ@nmo#+Q3 zGU){1`^L>!h9iWZKcKv(5v#crfY6)HdB5F4`{!CCsVoN%E2WfDN-3q3Qc5YMlu}B~X-UrqB-_)A318Cl z0il2=)gDjE=X?N6x5G}l-8s*nb+c~Yb;(D6J`)jNX{vtLJOBUy07*qoM6N<$f^xJqqyPW_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_restcollar.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_restcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..b45fc5ccede74f4428204b0c09e31ffe7d51e462 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz3r`ovkcv5PFCOG%P~c%c@aSK* zMf>d%-nk1GaTI;`=TKo{U}#w1W4L-^S@QASj5FO|fBO=*@8L?;z-?^Pf3FB)0h+FVdQ&MBb@039$U6951J literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_resttag.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_resttag.png new file mode 100644 index 0000000000000000000000000000000000000000..2851bfd41eaab9500dadb6bfbad692e96e0bd976 GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzbx#+^kcv5PPZ;2v_KjdLm`eXdl5h%vs>FVdQ&MBb@06Q=m)&Kwi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/kitten_sit.png b/Resources/Textures/Mobs/Pets/cat.rsi/kitten_sit.png new file mode 100644 index 0000000000000000000000000000000000000000..bcaf7b46b1b646c6138087c92ea090ab18be8871 GIT binary patch literal 552 zcmV+@0@wYCP)1wCc5_MD7!gxxL#^5x&_mf`TT1li-=Szxj3N|l3oZ2E9x4c4M9_mhimdby zPeMQx4*|6W@gz}61b+^-7!AZURIo*?plSR(=$2x7m_WqKKBr;6nfHCanSlWh4-XFy z4-XHII?@)><-eN0yEQ2QF9%T$;;UDH=Ee%HdEnrr^1hk^h=@$zNmO;$7Sbi!(aon~ z9=~O?{P0};1Bi&s+`YMO&F#LYJwVj{hTpQ4uR$q5EP`y?*Z{zRV?)~C^=L;o6a9TW zom)mOzUA`s5`N28k)}au)gLa|LsfH59D!$qB?!hY2Ira>@7zT0XF*A`rZ@2MtG+sp zMUYqo@ddl^1-nS5X9&w1F6?RIvtA-Ll2FpDI?nY-4z$RkzrfXLo%f3sEjiF4TlWTwE?(AM>H*~U8UZM5$c>;|lrfDi^D_ueSP?+-OBfxb+KYp77%qGS#7Sh~!^q8^U z@6f)F5-6K12bjvhnZq!Aa-3Y=V5z)r#(g18fks$wIm{#CbWv8k)p!fzxr!tyr z2GBEcjn~F*UNn!Ojb=16m*xH!p%lMeleuyLm$f0bSp5KGQ;vLia&L9McmHv+Dd*q) q3G>B*%ohu?7Ppp7IpWq;^?m_UsZ%k_9T3dXRa(CDdrZ!~CChF(X(^VNsP&^~|$5cXRVw f`)%!SGBup$)bbIUG2gw<45Yx*)z4*}Q$iB}tDY-I literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/meta.json b/Resources/Textures/Mobs/Pets/cat.rsi/meta.json new file mode 100644 index 0000000000..79e5c555bd --- /dev/null +++ b/Resources/Textures/Mobs/Pets/cat.rsi/meta.json @@ -0,0 +1,392 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "cak", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "cak_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cak_rest", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cak_sit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "cat2", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "cat2_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat2_rest", + "directions": 1, + "delays": [ + [ + 0.1, + 0.2, + 0.1, + 0.2 + ] + ] + }, + { + "name": "cat2_sit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_deadcollar", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_deadtag", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_rest", + "directions": 1, + "delays": [ + [ + 0.1, + 0.2, + 0.1, + 0.2 + ] + ] + }, + { + "name": "cat_restcollar", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_resttag", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "cat_sit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "catcollar", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "cattag", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "kitten", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "kitten_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kitten_deadcollar", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kitten_deadtag", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kitten_rest", + "directions": 1, + "delays": [ + [ + 0.1, + 0.2, + 0.1, + 0.2 + ] + ] + }, + { + "name": "kitten_restcollar", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kitten_resttag", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kitten_sit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "kittencollar", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "kittentag", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "spacecat", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "spacecat_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "spacecat_rest", + "directions": 1, + "delays": [ + [ + 0.1, + 0.2, + 0.1, + 0.2 + ] + ] + }, + { + "name": "spacecat_sit", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/spacecat.png b/Resources/Textures/Mobs/Pets/cat.rsi/spacecat.png new file mode 100644 index 0000000000000000000000000000000000000000..15fd940b54d6c4d428a22ca45253281661b27baa GIT binary patch literal 3666 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 Hu0mjfRf4II literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/spacecat_rest.png b/Resources/Textures/Mobs/Pets/cat.rsi/spacecat_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..631f7937e60461ecf4944f7fe3c07b788ff0a349 GIT binary patch literal 1266 zcmV0Xkwqs!Do9;zd zw>QdQ?8RW+*w(_zT&cB`bx*_;gWLb}Di^r> z{OZ*za#tLlXO0=|A`DhN<0*d z0dVK~&rRj~UOWd-QR;Z;Ab7oA(`vPH?b@|9*Yr4kIVG>DsWI0oPRWOYF@}OM1DL&j z;Y`#1r?&x2-nw+IX($*=_KnO(((mzly=H4`E4jJ38}66aQ=Y~waQD*bo|d^-ge|7Z z#jm>GJyh-h7`-<#e(A@dsg)w^c01$a<18#JY`9-uZ}~f~S2cCMRo4Q{nSeFN#>eM= zVaYJ~?1G;}{Lfik*FwNj>Yn@e?^9M*wl0(KxPEy(<&~9{=7|#@v1gBm<40Rs?WWV|WNd7V?(S|}E*EzDvM?A7(%;{Y&*#Htv*B{NP!t8L)ymx5 z9J8~tXqrYcnFL^FW(Hl?&{P%E)R83#=k{$FNsVwQ%*Y=J>YDaGFvG*c!%|mQm$}h? zIlTZ?RZ%P6rnR+|-rioOr>7Yh7yuw1j}s1ui9{j{3=A+fHpb%OBB4--Kp?=#$OsOH zgDY3ApePCerm3&IU^o;eG95)tB&dG*z=sukJj&|tflT7WAb_f>jE;`ta5%Vk_by-p66J0;7K?>sGKt^sCmas5Yu7G<6B8tLlS^m5Q*lI7Nx_U1c`}%N~ zmopQc##dVhKxAr)(eZI&u^76pQ&LjG?XC6fD>k^(_XTZjZJauF3Q3Zv-G7*DiN%C?Z7zvb^GWuhnwnx<1wP{3R~ zzP$G|4K0~qG0(;O?=@3YR75lyrK_upwzf9%^YiKK?4;+r3s@``ZuNandwcssPx(yy z1p;M1&07*qoM6N<$f+NszuK)l5 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/cat.rsi/spacecat_sit.png b/Resources/Textures/Mobs/Pets/cat.rsi/spacecat_sit.png new file mode 100644 index 0000000000000000000000000000000000000000..09b93e9104f026087dcea7fb7e7a4eff78f65fc1 GIT binary patch literal 988 zcmV<210(#2P)77svc!`FOgs?91BSRt zc2o|InLwk4QPu*HSwfqINIPO#XiEpI9e-ME>F?Lq!v;wijIzv=d~ffQ-}`*O@AG@! z=ljAjj&Y1*9OD@OcPL(T!au{Qp}nySXH@n7xquzw*+2vU-}JcIP*Xb$@LKt)1BEEF zNp3Qkgvn$Q&mx}3KV>=d)-yU~nG-_5oumiu}kHKKb zh<$bSGxPY3>sJ9#C`cu@P^2Z&vP`ftNII1yFGsjQ#js7eb&^sYxXg$mtZP?-n8ul$Dln?j_comTtW4OTnGuJLc!_MVoFY)WGT4BFEf9mF349umw@H)5;~m@zuynQ z*_Y3Vwzf6^CMPEuxiyN*K1B3E2qC21eM`Y5mRD9uB$J%K_`#Qe=3;GK#yrUC7v!q* z(ChUe9$$dsl2Uqmd+F}(roX=*fRS6HSS%KdHFapUTH^6IN~MyTOXe?t9CbndE5M1T za%Ur8ZEX!%mT7Ei!fv+LKl-JkSu&=BGdb5830004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRL zOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DLKC=JyVH`GbOXA7^I1dGp#5wHxYCm3jjDd8X_ZJGs6G?0xU^HK~zYI?UcW3+dve@Uo?sgv2mfJtRIkej6_kPi>xOq zXeUQ5EuBhIm;M>8L^*{Hor+{Km`-++p+kq#DbOwr{-gTN`r&tuFl5g&hWozz+{B6~IIVhNt+3C!A=aECBn&Jyn1NCo1st zowDV&C0L)PsagZ7H9S}pOJ#>%@16oIX5WiBFB&o6faaHFal~{&7Gn;?c_~Ir(>yW_ zPAr6AW!pHQAM>y!z!G*iHjfn`%=453_&E0z0P`|a03o=h#)%?hHEe6xL%;9>uHyok zrgOhsBx9}#;C%p_0Aq&+>(%m@C#=^OiiYCzzWBoQFVa6au)5Y)S3C4w+$x66px-^O zwcovEbOKiU0XRpUfZeMXYQ0g{Jl&=`Z*Se~I`%L+c{l}_etVSQK?mSq_%{9u@IHIt zso!HA1G8C~?02EomFEpfe2%mH-ag>FX?y zW_LMD5zi{U%+@mMH$Dzl5uR0g;nj)SM|W$D4bW(JZ3!11MqNOH;qM9{J8DA2EvTq~ z{uOXZmhxrAcwT#E5*Sla*OmT>IGo@F{RT)$O!|n=s)YU*BkIEdKQ`w+#DMyc;PZKN z%nzWMcHFjC%SNUF_uF=Af8<)n-vFtcI(*V5{>k$9H;=WRU&+Iqx4piU)#|GaupX|n Z@E`u%u3UOqerf;!002ovPDHLkV1mp=YDNG6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..b52737b4b77f0e615445c385f4123c305c3c350a GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na**Z=?jPntAk!}>L!K7BfK z=FH|u)=%paFILDu?l(A`DSZ9CkKN zTI0RO{96|=}nW7XoH%cIoLg7U*NqGB}svoz3sS!7=;ojf)pMMI@qiRt1(Ayb-&* zZ*ek{SA%Pbf;1yn-^{f)*eHC;Vd=s>Uq#4-HI$XNLvB(?f4+c+HKbLh*2~7ZP CCUW@z literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadcollar.png b/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..35edb287d90744b01e18b0bec968e3849c582383 GIT binary patch literal 117 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz8&4O(g103_Xl{*Y7``DkfNJ{%ECu=dBc`kQ;n`7Cq5r QKyw&8UHx3vIVCg!0I@wL*#H0l literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadtag.png b/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_deadtag.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc4b6c1e4ba3c1bb1d88e238a35d39fb7e6eae6 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzeNPw1kcv5P&l(CcDDW_BY^slx z;reh{D?yj%ozmhw>x6hv8y=bvNOG5Uhij_dE44$rjF6*2UngCns B9{T_Q literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_rest.png b/Resources/Textures/Mobs/Pets/corgi.rsi/corgi_rest.png new file mode 100644 index 0000000000000000000000000000000000000000..8fa2495489e88393ed28ce81fe057d72ca8f4c87 GIT binary patch literal 816 zcmV-01JC@4P)LKl(4U?*Voq$zJ}od0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRL zOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DLKC=Ju|*Eue3NdMTv_uC9|j)q?d~`ttc@! z6~s2=QdV&Fa{-$U04G}=6-{8EumAu8I!Q!9R7i>Kl)aAAKoG|_TbhPgISQ)8u_cu2 z5_7WX;>?~bQN`NOP$DAe5f6Zkw9a)%Alp^$Xc9vaoj^kI8}L+&FaFrgStp>rspdcX z+nw3f&Jc2M|6m=1(7_#=P`huA@6d#DpZl@~pSvmmpaKk3;1Qhb%7%q(<)XD3&4qETLO3i_%h%nv9zOe1I#6Wdy$ZKm<$%2NmW|rEDFG? z118`RTm~$*`p9Hp4pSKz=m@yoI$*)b7@5*bQT=K9dEC4$Wv6*=N!Q$@@r6j^b)_#C zkMsS>yw+r&<@pcz_9*O*0>cgs}DiDZreJ3 z9;(4b)e`fimYfouw2gPns!(85q7lckI#q`tAF!yD(xOC1R&vZ*BpoWJ3MZZfJ&w8y~U;8Y1?y}2&d6qjH zZ*T6qlle8r$~Z~p`uqL!<zztL27o|b!6pU!tya%F-WsW! cGcas;$J{R_R=qxr^#@4S)78&qol`;+0OWZn#sB~S literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/ian.png b/Resources/Textures/Mobs/Pets/corgi.rsi/ian.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee2f2544bd34e0325e8693f713189901f0508dd GIT binary patch literal 1313 zcmV++1>X9JP)XAdI2X$7nyECiV(X33${=mrdMlR=|~1~ut70~idUm; z+`PO2SOou<`CMd-VLF|4v-a#>^~x{mza;;qVu08PwOaqIb~7ZD)P0tK{b6W-3xp7i z$G~)YWj6Y&grmcdu>m%BFT7FjXij)H!FW8I`<(v`yqhFdqu!D8jgX4J;3b!<;-8@3 zZSv{k8+MTGh<&6&moOgf@fVXdf!C;Wo|8ega z4FL4PfQMn|d<0bdW!Ug9Eu^qI0LV;qbl13S{xxdUs8ORvjT$u;!R48t%JW4fcY@*q z(}mzJ`%=NV0g~HWmp4N!s^q2_Si!CEGD5E+<;Ll$Np*Mcol>i`8IcN;O}r@c>SKb+ zJ)rgQW#Yb+QZ64`vk>*dkgbO=s}|3l2WVezSd=_uvb%d&TU!IAGv;pFS z?3eT&1<3x^Ecj(!e0h6aD~}2~Bcu$_?>70y&D&aGyvge{0~XC_GUFv4Dz(t`T_}$N z8#iy~j9|75vMB9xEHbh_yMLfv_7*`bi|l?T(CPR}bnlcJ4?xZUDy!z|CDB24tuCOl zo*Yob(bYSpc=7F1=MR*WQvSuS-z7ZcUyG>Z62Bk;P&gokTVc`g+D~6AHxe?f-yQPn z<#e)w$^F9S?uFOy4*A)G-;mo&m_j5Shy)0eHvMk1bepoWm>z;`|6tz(suIm|@aK=6;rKQ|PC6K`zUAO?|!yqwnbO}pd zGarJxt_R$n0RTP*Pq}v|i*jt6TQ&xc`< zGFzHJmbf5Bv;cQJG>{(wWdz_-#=@t1;t=Gi??G@hFwwG&{Z6#6+!gUM;^1B>~^}CE_Vx zU3oajFtJM%Jwq!D1I&krYmeQZzRbYR#kMw(K)U%q>?a$h|APJ`z5omm*c(A}_s{?U N002ovPDHLkV1lyl=HvhX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/ian_shaved.png b/Resources/Textures/Mobs/Pets/corgi.rsi/ian_shaved.png new file mode 100644 index 0000000000000000000000000000000000000000..2b71f36e398f7590758e96d841a99b9165c2ec95 GIT binary patch literal 1396 zcmV-)1&jKLP)gVTE4GAQTL}Wn{1(N68L3?6|{VHy?J}rI#Ld z*rA7o=CVtm1j^_&;7g-GW=vf)Vs%M8d0wI^=IvlVSyG;4y(h`(KpzP9`^oS9{=7d@ z^!ot`2?+@a2?+_DG%6DDYyV&Le;}%SzVNZ7)ZLDoDD|gAl>@+0^AAgImo0v0a*ume z`qN>IDJ-oH8mCH_p{`87&=vpy@?puh9XI6qoNqfQLIEISlh$|R!7ogCoRI5tKql`L zX7WNo5MBY9&vyU-hG96`Bf~iMZwEy93^0Da(|3B-YL6U2r|k%@fco9%&~@GVtKWSd z+L*w&m;W%i58MHe9}Z4ly8P*<`+6M64_A@Cx87@H@`JyNe~`Yn&aGc)3tX(d!n|qX zs5w}I^M#LavGxk--@ge4lBrJSVU|t87xDDY#@;L3i zD}AaDBrNZ#bqFLVfI$8%ir_Zi{4 z!25#wbS+f>PysMa)B5hUE#gFdx`x8iYN#Lx1%Ns$Ns=YYj^`W!85PZg-BA7cZ-b_W z8N9&xcrWUvX~H$l?~&Hztfjy6w{zC1{zm;BS-iOtNI$ocwOY-3%(Oe{C6Ag$eb3Tk zchXCqkdTm&kdTm&FlwT#6^OI$AeMK6jfzAHORJF>9_3gpA`bvHIEuWTg>j6yf)M*# z;V?#zqU0vh|C+4Xw<|bRgvw@UDU7@DqIs|zX$em3D`4#L8*BM0ib51c@tjq9od$C3 z@te5K3s)l)1moGK0DAR2hAd-hY6^;?kW#7Sn8m&fx~?PBUq!TUoJ79@+=pL3XHQFM zbY1uCO0QXEH|~6Ylm}~{$O6!{@A#%>7LfbvCt$)=gQPwQG|sRbf#(Xa93PgCchh;@`y89KL?SOK z7jLeltQVbQvx9MIAOhOet%3mFfnWw8P$7by)=OaKvw?xs*r>6u0=rH>`hIk)Agmx< zIs_XP$=i8W?#Hps?= zNKgjGt;5eA2CV-l*tbEq6Q;XK}=H3rNG{Svl!|tcuDhU03l+FW#TcX_Q2O+3Ez|a-S41hXa={NklK|)JGs6(*gX6hoiOTnd!Q^CQ1!9T&-p{vl%*+J-D5EoY|WNEKkAri4^ zORJJ0t>qljCYR<%FWQ1bzvV9X?!E7OFE5V(Ypk)x8l2GDb*i=Nbk#ngfrbNv4hIIE zs70=TtWT7PL>v+F_r3jKHn4eITj;B`>olF&0|0yuUy(aF@%e1<3UH7qa9@=_u951M zBkv?*3m6+**CuL_LOKGZJW{%+8Fjq|vl(8EAm|kzIS{u3 zX2b4ofPWt76#xhwT%iIy<8#z?iRS_@!lH@kGZI250LZfJITs%H`R# vWUCagbh6k29EdwB$(|e9jqvwB+y9Cmr+LseEH*=q00000NkvXXu0mjfMZf#^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/lisa.png b/Resources/Textures/Mobs/Pets/corgi.rsi/lisa.png new file mode 100644 index 0000000000000000000000000000000000000000..0c517d95300a2d5827dbf18a4bdbd40e18a68156 GIT binary patch literal 1470 zcmV;v1ws0WP)Req#6kFAZA(jX34!86F^1ApNx?Utnm-_SUvklZ5qfBDhLj!y z!T1mYzQr`eBOii@jJ8_SjhiiAvbJG*kY+Ta-IaDmyK)cvfw1PSX5No^`{vEOF_0ri zjvP61z`~EB7ReQC+|kE_DJSYJn_yo|16!*9O8a9f4{Ct6ax3IOz#7XC7NmSDvA^KOO=5P@Vx@(Be|4ZTP3k<0u;d z0BW1R0CP710Kw)i%;#G@W1OGBInfzW4Yarfm?fELme7lUw$fO7uK)n^=Vt(bAPA)P z)DXC%+X3?|O2++Ffc`5G1D!3Y7E;;_B{smy&ZXhB4hMw3yK`ED2%$5dRq=5im{XJFu(r6WG@H%s1G=`jisStw6zl6shn%WN-2nXbR@|TK z+#3-41a4+V$oy28-6v4Fwo-p`&uF4|6((z>x@(H6+!$vBUB^~FplCM=v{GIM{oIo1 zX;+;xi2)*JAH3u4O9-LjwsjcnIWy$!gLherm!1d2)(wTT{9tnz3kwS%goO6&gb-?3 z7Cg^``FtzXS45g#kiG{DA5IF&1Aymwv0d3S_S=y18Ppw9F@QAtW+@~nR|r6-(}_H> zu`J8zbUKlJdW3;Dq`4wwvkEXHT=~3Kz?2(xTxD67!D2+UT9wDpxc!j?Az^eZ8~N^^ zpK#@Mj;W<;^pziZ0YaxNJ}igS;7rXDA6&WW$_kScC?Aps7@Yen-UN~K2;7i7{0m!m z0if&HN{Sn2L|(6j*#}ba03hTAA)aHv?-Kx0Uc!Um%FdO(O6Q<*{F4r+mMg~~|^rmSzw*dyhMK$LFD zmchVSx-!w z*w)oJBY6AWv(yWegb=#=@(0eN>kO{NN697rSINh%*Rd)1$W)khocsOT$k`NW?S@S& zYC35l$@#*{&ZW_A*!2AVpS_e?2kg>;=XoRd@FLocf^r{KS(2veI`T&jqS{%f&vnZ3 YAFxff;>2smq5uE@07*qoM6N<$f`G`~=l}o! literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..f698bef30e59f1abb7b77e5e6f19272153d377b7 GIT binary patch literal 594 zcmV-Y0DRAmrU)}ETL;58U01l-QS}90)b@fV8~disV#Kyb!i8K z6a}}#6+z_`ejQ}Vcc(u-gH56MEjsScd++y7`XOMCJ@(k+e+TEBIOp_Fh&bmYgdibA z}w+*Yh2L@okM^vK(?13Ok+@Y2=?;}k|b94yRNq~ zY$z6F7sDHvg6Vu5$Bd40zK?JKBsFIhC38^@{( z1AxXFOhfR;d~(}55I*7Yf@R}*9x z&taW?Kz6l^T1!B0D)qQ)T~!E*`?oIxID?bi#Fcu_MfK~2&7dR@1c5|6p~V{y4{J

C?t9-h>t=t g{R`TOiCt^_1(DP88wELvga7~l07*qoM6N<$f^78;O8@`> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved.png b/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved.png new file mode 100644 index 0000000000000000000000000000000000000000..9094804887ef8d4f16e1227d994b03ce2df601ef GIT binary patch literal 1585 zcmV-12G043P)2E3Hu4jwvoC=@Rmx^>Bt zAwvTh8e$4v0wFjw8N8Tii6r9+5rr$3Qrqe|ihVtc*Fk!xyVIR?@9EA-;67mF_dC7! z`}6+X>3%=J$H&LV$H#|-+~PXPEv}PJviE@iYlqz8I+^-n8hEB)vy#{3Q;|4uHiXT! z3=((FGmpz^Lx18TCVo^kJ;jtj-sGMz>;8btf@cbVhSR!FD)$oV{8(%p#gssDi|eGA z63AF=9Q}!lU|ofL0XQ210Br?mE1@Cx66(CZO`$@2LJ#*`Rr?u50eJj$=pMILJdx3am4#5l8>Wxse z`FHdN!3)=z^>b~3qlKp!Q&nu2noDpj_7RR2o+9|yH#|c!6TJLWt59XX3or*@tM?b2 z0w4$iPJJA+ybdIo4PipCIqmJ_ZD860we&nW9o@p=!M^47!-IXCj&7lrp7-QOQ7t`B zATGE6lDN#IpX(6p?F%!>-(|S(0`Cgat%a`ocNG9tRki=^wuP5Sw-yjf%ykt6t^iPH z1wqhcy?tRrK#q%2?on6$*>8ht84*0hVP8G!s;WXclrb2NB7E>iSH?KiPfvSsY1Poy zt~1c}7TDR{$6z>myt7Z8RLem5p0UjcQvgoPJP4qC4*<|BuVQC+AMtoRuwB}1&VKn` z{d*pu*H4|-WYl>^{roH7zgO+sUgMH}z5rA+s0>^;hz?JF2UIg$!}02uhEo6lX*k8L zpXm_H=kug8B%rr1j9vhccMaDok?(;Bkk6|m9*?`e4T^;gQW+f4^jBXSXPxRV7G9Bw z$yrDGnT^cn^V(yk-bp*T+Y}2MnjXEAc5)vdA0HndAD_2IH$@ZgW5I<6&E1pRGFRn@ zzHc!lcoqmx-U${{0*NK&8maUQrXq2s*~~4jlc`7?n`;^LCoUqEn1feAa6JIjc|+cg zr*J~wN7?Z#2;9k0r_h25mfD@fo%4Yl>ZLGV*{tm{rq^j8dv3h&+C1;KfO7X!0QGtvMHDeKG=yw6 zOOnZ?VHO)Q$g+%3V-?Z9UgG`=Fc&Q}a`v>8MwVsUuJoE#c4N->yHF5e#ef zRD&elbTm$<9D(f$&>ZiSk2h0&UjOVF(L_8iDJLdp1KNwuo{{FbG!PE$s--~y`#@L* zz)>NBp2}k&@_ExhYOLGnSAkwPe6uj j-*OPv&OCkIrY-*ib%!36tb&yW00000NkvXXu0mjfV%hm_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/lisa_shaved_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..fec42685a09114f54e7ee7f63dba381c1e49b4fd GIT binary patch literal 590 zcmV-U0{zrdg1?BFVN6GsQZy->R7QjlVn_GK$n zGPEkKN`$nQ=MbB`n2)~HcI#R4^6tC$oO|ERCBPI@Ofdx~8ubco)GKt-K7oNc?H28{ zTePocxB{|1VIpRth>*T-tQVt-xt+pL-$uPc6UkKoz(?m9Ya6>BpIKf3Hj-)Xqtg2s z;;$E>XXYad=(V_x_0dUqyH?{E}O11qcwpb&ryu zdJRU+AsDQU8YAG>7E4)GGiuOpF985+XFZ!YdJnJ!141@a7O|A`6cwy&9eToq3h>Q- z5cKaJyPr&Z&-wWwY7?><^;%ZOY~WZ55QE*DTFF&@fa3~27mut(_r+~6YQfd;gP!-0 z15qnrRITm?_~(J12Y|rA6)3G1{0Z9KZetjbO<9YzuOqOgW+xP#pp^OFiB=;#xizPnEeHz&w z2NP-Cm0eu-imvQVGE5@;_S=6aY7ZkZ0ZWS|;LdoUhXmC=EvOj|dz>mK^?=_cRiJTQ zrz^W$yI1@{6nTH!;bNO#ZtZiz{$~ZQ2)bs-?Nl2(6|Q=$Y!#1Wf#N9_0)Gd?WxN~ zS>#Rmq}623FK-_mvwwKN$>LX=U(HTd&n=T-PC{ZLybt$eYs08Fbp6p8B8t znb%?D3MY%WN8LJ+J)66PK%Ggn)3_~IUbb&8Io6L*6nTkS5bs1ESi`WFX zt!Adv?!!(JwV9^Z;fxPuLA_f^2Yjluty}3pIAx#G8D#?FF`%>jhsR5fx&C{ zZKf=WQW2k2ej-Jmf}F#<0qScXAYA{CG02SpY0WPHDC5DCBg>)~c&GF0FRFed5-a&s z`@O9jIjDXL(0}b^V${zt!wfUbFvAQp%y8dGGd?i2Si`hFiAg_5nug+Oj@5^05DENkr9M^b!PG$r`jkbHYxk-z-j}u)Bo2-afea@sxb78S*%em(y7#xD%^N`Z?g0wt9T9$?5IAk+fT=xp$MTq&>zDrv8%isPA!2aPu-|X!l z9%TF+1Ah4Kd)gm5!Mh@FdWji}CAzYUWm&lHRVrSPiU$a>jN>?1mKDs@lU9>GpwYVJ zW4le&sR7Z(E2y@rQ{!X1O`~n*4q@6`y08Q@K~nNy3Kt1^*1Ot zkHX2(vHbSyZ)mh`GidH@1~6uMxr)BIc$A(Ww$3ruVcrq zaCZKxCy4szR$c-~hfYb-^ zGcEeCV^?_XA5jW==7=6Xdk1W<0@cW&2IBKoIIH%L2ShC~%IoWq#DM1kYFUIy=<@)z z&KlSCNI^P=g~2=RPOy9LSCb!C`&BY~AfL3Fyr5SPwZs$@K`Lq#)?<*zLIeRSwPbs1 z6URTgbSPnQascM=!e!$k?z_4!VZCw>47Rs6IrH-c!YO>=1(VS`v_JGlgNOaEF99|C zkAY_sTvnbz<}uzqAUu9tz4WqgTaP{ikHOcMmz4bwv>M3y^%oU*43tpDE0&F%5v0*g zV!XmL$jsr9VB`$W&R?;;wb>^h2=vnpFR!on?N@Oit@#CM%`eEE-b+tkKm7FA9lIh$ z-jpJ5%DpLkxY+aM=(0xXwPRNTI|lR{2r2TWEQ_K}!pL{5`2{KRraW0qpMaB9Pp7!X zDC5hbsFT%)VJ<4I`Gw%}F`{qq&K~};$9TJc6cnLnRrtGC6-yU&iY3Vx=o^HDu5+@A ne7>=kx(7VpSR2Q)M(Y1RtW>Tw&QtKL00000NkvXXu0mjf7UPsj literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/narsian_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/narsian_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..6d792a2b54368ec8f462e5d2edcff46408ec695c GIT binary patch literal 675 zcmV;U0$lxxP)pu)qTU0b~+dEakmre{)0b zZ*I)JXdbyREQDbxAv1WCmmJ_n`0bATP%IVWMWBD5OMoIiIt5}Ug&fCZ;ye?%O0abr z6Mi%-+|@NDA`>mINwHLeBFb6bfh8S2N)UeLSy;U3L(nG9zFj16!|O74~*^<@+~p<<{wd z?POo2QTKkGX6p2yeW)dJ zst%p=j+PwIl7prM05!MD<5CIRF!=!V2LsNouUN7yJg+(7N`=nxP!4gb4(+%Hw9_-q zK$3b^OpBUZ9d&Oozz_Oq{glg#UZ=oVN4u_@5|25?_q%z0I!K|c4I zQi2qsBJHx1202D?UQDY?FK&o+zWCoMPt`kVrrfUXDqviREQ<;~ze}a;r27}WPUgA0 zV(ug?K*3MQooXx~sqcf4X9`d{#yea!*5Ag1H{QKO{7dpbil35N45I$aMCbqj002ov JPDHLkV1m!!G5!Dm literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian.png b/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian.png new file mode 100644 index 0000000000000000000000000000000000000000..6bdc878a6cce5924b9cced7b0137683556c1d5a3 GIT binary patch literal 2447 zcmV;A32^p_P) zO=uh00muInY){ZCZnsk7B2$-A5H@8?jp&liVJWeTi)rk1i+lC<5ShZ7s*ae^^MiH)dc~7`tn4}u-h=#_ndAS zro~nPs6$@;f8`e|4ddN}xxVK#Ao|RaqR&<#*lq#hZ~g`VP!z=!?iQ@|q2yYJDX~2U zD0hEcx#;ie;cmiOUlX;L=|*g~fW22gM4?d7Uwf~9*l}X|M!&ZEX&2vuj%GoMqCgZy zy&LE@%=AgkH)i;kpV>N~p@kw`=h1Oj;bm4CK9 z_SWthWHK2f5{b6@mIvXvgx0d6(J12aIO6fRDLj`@u@P}?DTcZJt=%(@o{y>kwEpaU z%q3K0vspx=Q7kMhV19mH?|Vxn?by}TRnzBaYC%8fOOj;iGm<1x>D!uy&dx3XfPV1+ z;PnFY^YfKj=*OR4w{zy+)ei=P0D$*?{%`XjtmNv#R~}C4$G3xe5GJ#W?YB~HPyEuby{a`8sUjnL503)9UI$pj~1 zt)Izc%n@zYg6fWM0(AjIqft{>{CEnYD56vXo+_4TS)MX*%T`d(H2pD6){dylcczHTc)y{aDw1oU$Y@)2^=JNR_+F2-VI;nT^x zP%i91kdO2xIM7dQ78O$o^7(*U&Y!I*%X`-|{;on4#n1$_V*Sj^#gVHb@~ zpPk*sz+%pHd^@OTL8(*<_wL=pz_*rh>;=34@_8VgPMZ?|;P?47E?&HdP$)!u`o7Q) zg+j>Z)5zzwxQU4gf&5J-lWL>m9fPcGB$G*%yo~SH#?!8a^qc`ecdkDXc?Qe zen(?KFJ-!^_8CzA{4)UBc%_VvVt9BM$z)O`U#76ux7Pw3^v63+ZKbHBiEL#m6be11 zZ?6E1{&@2GN@hRvAZe;ehjAZSI-Q2Awcnz?{Vu4HKb}zmTz+&88{>uu(Pz47p!(gh z)0y9?K6PRuk%;<-AH0u7{ah`FPquJ#f04=^+)RsnmSzU?>%aU2e!m|8s>a+eKZ9~% z$5zI7Q{PexxKobdZM3&%YyNmTXIL|C+_<6sc5sQRz_+hgE$h>N^uXisVB?ZUf8S26 z@0NaNvmlqDxp)8&zDQ#GdUd1r*>^t2bld~a2Vnr(mZi21 z_2zz6i+C(sJI&4j|EY$~pV$80zkk2y^{Mv<6pKY_!zln1i$%-+{DY-Ib>xRX1@<-T z`QF|htorheghC-KFE5jsM^EZoa>j*1A!>hor_QjowKV`$Up~nQJq;BE`N*^ca`xR9 z@caGPxbzIlueNMYJJ;6MOdkJYv1rZ%hx9wU4`|_!w~HVj>Hi0VL6k}*luD(h8y=cn ze5d+EkLy3BZPtQlcZe7niy1EKHB)>X?KX&g}9_4`XISMGS-(5Ef{G62*1-Fk=a3YZq#$sjR>0t(k zPqy${+^;qL%1uxwnNReC!C;+!Fc@@P-|`qh>yLK=QV1mTYZ;4`g|S#!kR(X}wE4J` z+5q$}$Qb9OKJ_e!3`Dg4c-kEzjYuRC034_T z-0x~)SnIPuuSu0J5Kt%-AU@C@3t4A5so+K}WUbE%Qwt#8b=}!pd+{#2pIPg(Kreua zi3!2@_^(=fwXrt3F(YBE&x*QcOukMV9UV2r>)k?yxr7QkhSzqm*6%h=FTj`);$L6W zf1rRoJe&40@uaV|>Jw$H-z}QDB1}$)0T1R9Dr8xPENccV?J@D~?b`=STk4&1%(732 zwSKo~S^zUMGwRi=R{;RBd=j#ptz7g=05lH_&5x&zj86f())U5Bzgsjd0OPZl&sPlZ zw@epe_QcoH$X9=`G^o-}A6e^niKER~*KdVR^qcwmdl71H=*FdI@caEZ`|b-puGzC8 zn)&*T-hZpm>bLUsccSkW)Lp^Jl~#|yg<}t6^2VDUEAKF@_1(tOjnR+(@k^*LPv}3ULvDnO zH#^2w0HCAVZ%4maECPT@AJE**y;l1H8{1Sh5BxYJNfO4IY#>afQhLAJ$k*Qq?evK@ z>2`v_U{4RiR5gP1!vOH#_k1me_x}IyyZ62qm@r|&goqf1 zAq~TjQRfRGq!40cOd_iI{QNusKXx;mz56RPP6#0Z>h(GR%gf6ERIAm%m`Da(6X)M; z08rX5pzFFXRtO0%d!BNo0}t*N@1F2U=>DIpkG{S zIUL79(=?=(gKi6{<(OSqijqelLo48lCtt1sP~JO@ZQC5&3HE*K?L|)&08jRhF6kUK zEzc&7ya$5B6VA85xu$87N~M&zi_~(yxuF$sv)|m@jOx+D;4uW)z4C$PmyezboD5r_ zQmLqMsZ{za6VTg)0G4I>#D^NlX0vKstJQEEhl8y%>bu0Tp^juAi|(Mo!_O-KfekFw zfUfI_{!Lik%d)=H!Eqb_4z`Af_t8A80V|=uhZ^wo@ZSzELxp4xhezO@wj*v=)ZJ)qTLoGGwQK#MYZti zYDfNje2%r94sUKx$ED|EXeRDmKfAC5$xQ6o!-&f$Zn3cqDE?9QkqP?S_22LZ6UZP0 TIjq{`00000NkvXXu0mjf!*NGx literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved.png b/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved.png new file mode 100644 index 0000000000000000000000000000000000000000..0541d67d6ebc728c337c4219613c6985f6dda7a2 GIT binary patch literal 2712 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 OfP<|Is^X+i;(q~)HB&$U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/old_ian_shaved_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..f94b46fe72c091ebf34cacd2ca4abf6f48eb4e49 GIT binary patch literal 762 zcmVF|9LGOf#)A6?7Y)fpWiLysmtZa(G6Vx*6gU4?;!INhpJ)@(=_` zH!m)_(KX|NCr8%9;KB|GD^~7KSjKdi=IxHNyN zh)5(NjpOlnRgnEU$;Av>k>i;A?u=2o>EW_e-DPSOmlNHzgC7ECmDO@?Ew30;J_lxX~K;9R{%(k z&QT~7Sf0NHrBw*@Sd0FQ$0k2Iq5u#K2FYf#D2l>F_bdQi_kK!W&na-2gJoV?Esrad z&1MM(gVNkq`}qOad+SCZrwQ}Hqvu{39jdJUSS*I7X*?OsvALFUM4%>sq9`)Q!^6Xe z2GDgKfR2t1`G2B&)?p5HimdB>z$J3g!&FHlw0tTgs7j+7tn zZh^nmg2+!-{U99)psslZ#HP05s^p`{(TKv~ur$9iRf63u>sL~>Hp{PCijfvM85Ley`?56_qY?Xe5sZ*{fN sMyT$`sL^JJ29P?Y(|eYkihokS0m(-xEk&7~meE2cQAJD0zA$y<%x_4-3hRalg z!6r7Cl0z|3GhBzu*|KB(xRd12@;+cJo#gwz_w?@0=p8^11VIo4K@bE%5CoBfLANII zwEYYEFHFQ=x!#iCy0)q)TmPl0A@1HG2Hi`cjxn2WF$%uQNhsf&z*Bc7Ls?+g6 zXkwHB_SX&o>A2^42*X9&Mz9;pPki-U1FZlIx;5eM9RdKtaM8ZKEx+Z;P~B2E=+=bW zYA0Sd(Knj|uy8sah>c*F>PZ*}K%oNhEEE{~3he+`v&mdkJ^e70#+a_f+N^WhFc6mR z57ggIQEwu8e}OOr8sFNmW)s|uN7y}i(C$-LU(G|SjQf|``q~+=d-7o2j7P9$lX(Vg z%6X+f?q5D>H*p>?$NHL4!CkTQd2!bF8 zf*=TjAmR+VHBm)zq^f=k*9GEaRc?ynw%Vmvo=OWq-1)K%t+MY@GeBVrBnm1z{aJfys5Fay)Z_i>83xKy=i@a43rwMGF;b2>HG*gYc-4h6+rc zKxE#aJ+nts{CfMP^a>4QOuYH=NoylSo?((Y2_`z9QJwXDA7xf*;zJ>iz9P?xk-ZA6 zcD$|(o+B+w#cn*YD_*u=vMYnkO;Xlu0ud8c&Rf6P)9q>%?-5wCttl0$jovT7Ke-dgKZ1oQ2T50yEYguzZW(M4S_=)>RVMV;t#dcMB zUWN03Tum5b!tY#Rt9LMWeA$-8c)#yl;chqtPJ&{>j4{DE7o79de|3XyE!TZz*pW7| l<+WE^JWpp;*XgUU<1e>=Ct`_s*82be002ovPDHLkV1mPysQv%| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..1f80afd4bfea5bdaf4e5a2b31c789db8a13f1293 GIT binary patch literal 359 zcmV-t0hs=YP)1pw6ox;S8i%fiCPdJslZV{HC+KB5`!a!?pmgjNs?G+RI1maN0;YpH)J`qOiDa4* z0{RvU>+%1;(9;8t$K&yMJf3SpN~xuk`doFR&6QGGDW&r)JSyI;a|vJz%|p_9+P=;5{BZ{g5$WH3v%*w#^3+y*wQ?>f>T;r8&7)N@+mX zt91XZSLw-NbT-bP0l+XkK D*I*$x literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved.png b/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved.png new file mode 100644 index 0000000000000000000000000000000000000000..ae84297e042e39a5c9470a839d74804210ad9fe0 GIT binary patch literal 1005 zcmVLkijP2 zy!5iggTYZqafP}yYusvAUk`5+qixo_Z_`cX`9R>!n>Wv|JntKLpBEqqf*=TjAP9mW z2!e<}F`r~n`u+v|XJnL*>Q{bK*r~5y#H~LeYlwbh3dMYZd2M_v%ZieMJ6vL3TNdd6 zC=WltaU9-OReXPOP1*<<*m(_lD$U#V3I-%UfK&k3c@6c~X(*}+0I0vtg4HVkN>WD1 z=_&oUxj^n^_9DJU91}Gy^qGa_00O}Qf1^Wb%3c%6q3dYBDlu9L( zN+pbs={TBQkupFOV=jZlbdKLBBfjH_=^Tu?jIcc6DPYWHfP?oqJa-%8V>$q!>I_0p zZt!P|tHMSIlhlxyc^Zo-p$upivJ4uJer>`&Jl~TH@c_76{#Wq6er>VX|k~U|6M;p z5ClOG1VIo4K@bEHq?k{#ew-8Nm)xG~0zr!TB-2yk^|`3%sZ8vLFk%Zp(D}Fx?WgQm zGr&VxScRU-^t@T=y|1S-P!{@Abd6;TIV|<-GcTd4DooQ9-mW%Hlcm#XIF1A5?ftgr zJ0I6@b+OU2{XzmlE3d7J?a{j>zpFm;5&&S^@_Y5BX)?p$d;Y;7B<{2-#P(9B*Mtfr zkp}vXA6J?NczrIZ!By_Uwt3N_*FuFig$%>MP<_MKaV)LCLP zC}aEJ9wsIxVy)0vmc_20Tkr0C0DF19>ohrb5e)sU#aNw{BBK5%e+==zK&LWzl(dYK zq}J|mplmNf*8uE%T>B+B==|O~zYi+y_Zfjdo%HnYt+zjKl)3F)=sHjR^8f(gZiWxk za)7&q?K6*KpZ^|~WwGl&o&!U-(6L1B5wN%0LfG|`*!IOGjOv$g_S1t9Q<~xwT#9)^?d?S)mI`vyhE6E)F}6I|&xmUSZ`?ghd_q bH`(zMZr&8e|A+z!00000NkvXXu0mjfCK>4> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved_dead.png b/Resources/Textures/Mobs/Pets/corgi.rsi/puppy_shaved_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..04584d4d443945fa0522ac30e78c5d0550ec289b GIT binary patch literal 381 zcmV-@0fPRCP)U{upbU zuhyAJ?3fBL#+=v58@zD`@Y~QyFvcA3<-)Wr8pf5Y_(y;oXeHpc;f*_J%E8)Jj%lV4 zf|?(WQc_{LsX8j|NiSvKC0~Inbe2~BWhT*Q!?VsyRlkT(M4f1+D%T{%B?7N-6 z<%N=76oJ(+FsRME$fJMVt$)>t>FXce=i2e-A;SktcJF&8VVrB0mw*&`y85}Sb4q9e E0O8s@?*IS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/corgi.rsi/puppytag.png b/Resources/Textures/Mobs/Pets/corgi.rsi/puppytag.png new file mode 100644 index 0000000000000000000000000000000000000000..b7d9d09d57972f9ac86266611168145df7b59ecc GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=5uPrNAr*7p-ZJEBFyLXmpmFbi z$WrwWc7>WHqS-4CRR>S2ae5}t2vo_yP~d#+#F~k#-%Aws=*&;ezP!F3EDR+4_uiDA mantceI_vj$2exlwSg@Nx$yDIs9hHW&ASIrzelF{r5}E*CH!&gr literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/fox.rsi/fox.png b/Resources/Textures/Mobs/Pets/fox.rsi/fox.png new file mode 100644 index 0000000000000000000000000000000000000000..912c87ede461a5e275c8e89e2089be28d8ff7b61 GIT binary patch literal 1524 zcmVBX>xTt-iY(J2qCnGT#`T_Op_NFg9?QRc`-)zM6>wqAU#>Kq||z`-3|1EK;F}P?|a|( z-uIrY?*kGN5)u*;5)u*;5)!&(THr{W`v0>0pjcJxJT@0+F~t8$TFrMbCgfR%VuHWU;l)?)LOa+Y;`|cse7A?D z^(yu_skj}KGEc;rSzx>ne0W-crW|2ry%~GlSn}tW>_R5jeqdGs0NTM$EcwhXPX4Nha60h=M-T{Ij zKvh+2Z*N0YRS1I6%Xz&XXUj*HyM)PCWmzVYB*C&Qw~pgDsH%!$vDi2NrzmAU^2&>Q z{xI!;p|2MJ*h?_A5wgJ4SuxVbn^`?0NaenF2)#(LFnJ41nGPHx8 zw(_2GT={HgK*InY-$y2M&2@v!FQ3@;gM|7$qyGa}I0Pwl`wx^Tg&7RNZh(g2x`1U_ zgJ1m~!E|CPWuCnC?VkVu!!VG|P9U8=$6sH*-PgB3uYABc_%b=btU^230WhFj;O?^) zxJM-zh5_m63Tm|zaF0s3`>e$>9Fu$>nHEdM8YNBZ6@E9YzMlb9{-Ih=(er?A|G00Wu_sG~^Vd1-9_w!Z z(o~)_|F+O?BfM$(2?+@a2?+@a2?+@aUBeQ(9(1_9Z%hjuk?-A(t&Du{HW`EwuKZQ_ zGHBiaOX!@2-}`L@=KO$e858ojajX3y^K~CBX}cS@0Q}bfoP++x@tw$x7w!2*q!C#9 zT$R4MKqrNVTW?dD48d0j%P5=Pe>;wQHley*}@bUeC5rFu?kIRVkMV7$={@bzg zrg`Bi4Ya@DdcWmovlFf%!gd1CHbh*)4ClKAd@E>H?Z87=GSp?5Ro{fE@|Iuw)t8WGjly6)TYHk?eq3F&X&E)i-BvB8C4NbOzFtBd24OqMiXyD{iV>u$?`rTJ0oO#HLs*rrfh4N@1_u zs0H&FMpKSL^+~&{?@@kcy_r(V8WATwEi*Y=AOP*920(KkiIbvVs1veAqskn!1Dr#! zQT2}rxC-0zXd{j|*Xek{XBh3J=IC@}Cwaoz1=t||S7DD814hu>%6FcoN?9Y+AmXG5 zG;CiqAMBxK#9Ms|JqxlA_KbCdoG0y7P|2()@ zu08+&=d4o7JkfQXXxbU+y#MEzs=w5u^` z`>;MrnJ1cdMs!^#N|`4^t<`;S9EWuJJTk+=UU~h06LH-=)>FdG(a>kD)qSMX=ioRF zt=0YZEzqlMuS2z-;<;fMXLa;q7nG**#5k*i<^%L%jsaa|Ste1bC9GSz7p@R@>v!AF atM9+}Rw2rym2YW9sbtN15>+lg(25VG6tqAnqX zEDdlG)b5LjQ^__Ylgbac+8HS;p_`2LHGw*a9 zFf0H*JcHotuT*q!yvohQ#Mhw8n5nQ_FUNa0N4qT9TMBNX}vy5 zicJd^bKG?pmUAY4klUd2V}Q3$bHzFFjKR5>n{K7uG3?yh#%MIcG@F=a6VLNl zEPms8UShs&^nH4MprYprWBvZXOZ9@2cMOhKng+@6K++!X%@?LG?pE7j6;$YqF>D4n zH^q+Q$m#Q&Nr;yZ3-y%1McMvyc8*rnjqCaYe#}B1pM2*1qs@7>EpTOsCr9$oZe8l= dy%hh-{0|$Z!FO^2JZb;{002ovPDHLkV1iXW2D1PF literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/fox.rsi/fox_deadcollar.png b/Resources/Textures/Mobs/Pets/fox.rsi/fox_deadcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..258e2b5f06d2f9f23c1625891af985a01829383e GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzYfl%)kcv5P&pYxmDDbcx{QUm0 z&4fCwwGs^TS|`Y|?iK>7;WKi(n>XRjq`Tsi46`cl$!_}U!ou(;g{h}sjYyFRZ#?$G$CI0`nKju)(zF`6Pftt0ipB?nbKJ5-t1Ju9+G<-Wdk5hiB R#CD)*44$rjF6*2UngC0_CfNW0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/fox.rsi/foxcollar.png b/Resources/Textures/Mobs/Pets/fox.rsi/foxcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..83a226ba7c8e5b33c94bb9c82a0fb475229138d0 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=5uPrNAr*7p-r6YG;K0G+@auiE zl?HEcbG`6=$*<*?y&I-<1646FH0)f}w@NN;rtHkeZ_3ZL-^eNi3o|g3nZM>;^W~TM opU}ofedkLB!g&8&ab#>@zBOIz`y=ZQ7eUHAUHx3vIVCg!0L`p3_W%F@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/fox.rsi/foxtag.png b/Resources/Textures/Mobs/Pets/fox.rsi/foxtag.png new file mode 100644 index 0000000000000000000000000000000000000000..86254d3959663bb0b2b67af5bac5f3bad1f1bedb GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=A)YRdAr*7p-rUIBV8FxT(Eia_ z{1j87yfKp?$IcV6|3AHsb_Xg0g4JpHk#`rKd81qGl4tK!$_^1_(3qwixBvY9lyKR4 g`5ouNCb2f8o9E?=eBF3DT^Xdr)78&qol`;+0Kn`kV*mgE literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/fox.rsi/meta.json b/Resources/Textures/Mobs/Pets/fox.rsi/meta.json new file mode 100644 index 0000000000..6e4b003f46 --- /dev/null +++ b/Resources/Textures/Mobs/Pets/fox.rsi/meta.json @@ -0,0 +1,92 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "fox", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "fox_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "fox_deadcollar", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "fox_deadtag", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + }, + { + "name": "foxcollar", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "foxtag", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Pets/sloth.rsi/meta.json b/Resources/Textures/Mobs/Pets/sloth.rsi/meta.json new file mode 100644 index 0000000000..53aabb227e --- /dev/null +++ b/Resources/Textures/Mobs/Pets/sloth.rsi/meta.json @@ -0,0 +1,38 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", + "states": [ + { + "name": "sloth", + "directions": 4, + "delays": [ + [ + 1 + ], + [ + 1 + ], + [ + 1 + ], + [ + 1 + ] + ] + }, + { + "name": "sloth_dead", + "directions": 1, + "delays": [ + [ + 1 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Pets/sloth.rsi/sloth.png b/Resources/Textures/Mobs/Pets/sloth.rsi/sloth.png new file mode 100644 index 0000000000000000000000000000000000000000..66d8bb71c708f85f0bac026feabd69f5541f9dbf GIT binary patch literal 4219 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 Rmkj^_002ovPDHLkV1g;wL`VPt literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Pets/sloth.rsi/sloth_dead.png b/Resources/Textures/Mobs/Pets/sloth.rsi/sloth_dead.png new file mode 100644 index 0000000000000000000000000000000000000000..6320626c24bbdeea8edc034f034b359ffe29553c GIT binary patch literal 1072 zcmV-01kd}4P)4~>67)1|Wrpd%z}&g_^g+3XC}L`pzRdS>b8@!toZs(v zE`$jaCQO(xVZ!{+h-VqJ{*_F*x28&O_g=Wj_?HB-8>Qt?dP z#WQ)AT$c;?%jwka+edAMTRyLVaixyU>#}7qq_L&61R-F4c7kYoA^?T?xm>+ANO6t> zaLZswqqS@BU){#CN$>B>m$P#rG%1O;MDUWU2za!)U5;|s7e%x^k;4330D>V&`-x@% zigO$^eAz1i))lUm1|j+N%G1N7ckbNel1`h6^73*zfBXr6jO+sDXD0wC*-*ySYlC`w ziINRv0Cb#cVagZ8XpUie#>1}N)c~}gI>z>rWL@lu0^3V-b@;=go@iPqBq*ySkW<74;=5|%ACIpZZQ?M05Z zH1Y8#2dJ%Yz@C`JzWwzphColk6Kzf8ueG6sAR{%2NOJ_Frw|)dx!6B~!6M0C)Clxk zCwWH}mVn9v;LfxWmsv_j$M*ylRZg@u@m^g$8_PyeRTWJO(bU+;UsHi63Wz#qob;K@ zs4fTV-Ld@AH$#-gh(SP5QJM8Gk~`+rC)`Z2qM0Jdom07=97S1CJOJHSrde22@CQP~ zJ1lIec#s2qeSLJF{~b+ge6%<3v0Tsva<`?Ss&IMON9xTCQGZefXWlAo%Q;oi*G-yKH{1xda>i2&roMYRMw z;x#vWYO4A0)6YqD1X&2G0A!E-jY-ouG~*TeCLPTO Date: Sun, 16 Aug 2020 19:29:47 -0400 Subject: [PATCH 07/10] Fixes mistake (#1751) Never again. --- Resources/Audio/Effects/chungus.ogg | Bin 678300 -> 0 bytes .../Prototypes/Entities/Mobs/NPCs/animals.yml | 40 ------------------ .../chungster.png | Bin 1461 -> 0 bytes .../unusuallylargefunnyrabbit.rsi/dead.png | Bin 848 -> 0 bytes .../unusuallylargefunnyrabbit.rsi/meta.json | 38 ----------------- 5 files changed, 78 deletions(-) delete mode 100644 Resources/Audio/Effects/chungus.ogg delete mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/chungster.png delete mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png delete mode 100644 Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/meta.json diff --git a/Resources/Audio/Effects/chungus.ogg b/Resources/Audio/Effects/chungus.ogg deleted file mode 100644 index 054ac995bf0c28cbd3e58f990176ea54953c7816..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 678300 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 }&-$HK;U8VTyhC9B1!VN`d^ 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≥v01hIu`;tUDUC~$bkKKxY%#?V9t3Mju9 zA>MJXWq{(-8I(TN)sj|USL3(SW7vT74CX^YJ}FE0OxPtGlPzK9Lz)sjb;`Dux6U3~ zJ1w-Q{SqLe<)`!I`dQtM>$GIKU|79k_d~k1ezu((@YNBD1l7=%u?*V~5&D!Un}Euq z^VLDsyS=vqro>00uU}ZpP*0Z5HcoRT0RX-mE)^q?uZE7&#C^VQ&_J&S&sbGuyhLkR zNtax|6wIsNeSc1mF%{XUBkRUfUCD>ddV61^WaMiNwKf()8`7GJ&#e>s?Bz%X z`ugm-^KVsVx56MFD_r6RZnrdug}Rm&6p7k}yI5@eg`*f#ghx6O@qp@Vk<`k0`d3PA zh{K=LjVi)O7ks>(Hq-Ju)kX{t)?u=O|2Zevaz&z?R zsUS(v`n1$#EE@C6E$ePom(Pl(- z7WKpm;!W%_qYfTR_7gzDuK}>W|2!u^Fk2wCZFE(sC5=(inY=So!?}@tq;+_dKJ~7W zH8zG<_cZKPe=$0W%tHs+v1(7!+Vca7=CrhSqt!Ls`c^sK>d@4R%_)hl*k~#5-4wRZ zb=E?~zWtJ;g_9R9eE$5Q-u~DFPmYj}ijR^=G2|Jxc!#k9T(%`6+UZju(jy9#g!FeU zxXIzQmYGRwKaqg(`_!;OEz{_HaYiBb>%%g7M;wAblC zoC%FA3c^qMQ`M%gD5GWs&#VMhkJMS=9kDGZby-`cFI zztx4K69`#IBc%(`e>;0J5EH_@-x24Y17kh_-U^N*KtPyag{j{M02tF5KzNiZ3P)7* zZ3zHYNHynI$@7EOa&-Q^sV5X?g|4d4I4|B<>8rb6i}O&iN~oqq5ZL~yItXj8Czy(n zHfncmR{YU!(r&-q1J-{b9z2(QO+Ij18IRyNUqRy#gBhZmYmE&*xfOL}Q%QXV%hCrj zh`2FcdRrHU95*as9c5C4tZfMybZ7{Z(y?U}h-{!FME`mLp^skj0ACQ?VHJd9uuBG8 z#a9`<_H=fv5a2?ce0nXwodAGOMP@Jw?BoerGa5Qyzp&-Rux)NA{$yAZv}rMN?)=^;@0{{S!rem3Ejf+vJAeFO?V$DQX0heHN;x4u%uY?0NUHn!Pa%!ee+rh;*EJP8G1*js8I=0I?L?^?Avt#CpD%1bI8P8{rRwr}Y9GKo^ENOj)OD*uw|Fm4_?8%f^4D;x zPYai~Zrh#Nj;o`3QLQ(g8{kYT56+H52Yz&5w7d=j#;&lkQa+M47>baX03^@1akMZb z4!A<#GZ?tWKg<%U@D!Nlso)=YTo7^2`}r9d76B|q8)ew-Y(nybYzM$gr~(dMq&QDh z44q)=+%F@8mS?PbJ2GO!{?Y&(I#I^#jf_A<+W0X&bTuH{0Rl1Y$z%jac%&-iZoVu>JpDIUJHNP@+)^$zFpRfj2Aav$}s@k4Sme8 zH;{-vHUQVLtby2Hb{1az@}e^H=~{O)4)#WOFK|NE6-<85>_r3QA@#(tlY|6_Yyd%m zH33uqRO@f5z+Rf+=`I|TkCZ+Py?pVn_IxP-6fP;E?Gx)#>`Oa*_gb3K(=+ zn?OuLg^gc;4kRKiZNCjlg_~k)G5}v;iq00#DB;lff!wLA$-WO|K0@HC14^?$91d~C zsgn5|>By)U1RNrfVr^7%?m+qL0_o%#_gEh*i!0_QzY{w6%iC$H)BZVj`{t8wR$E+U zYm(&wOcD`Mv-W8bc>i9Yta@jy(P@)nHeC4A*6VR}%IDa0in9-wWR^PrrRL7J!UbLZ z6$k)KLPebs!^$~ie~NyNPOX^wkmxKYR4FOzK3dzh;BPu|H5 z&oqYq@;*nxmjr^sXxpx|b`-m%;qEz|NfB+XYK+P7%C$qqu zI)_^~hnw#s@)HofldSK*!|O$c%(V0fi%6?A7FBgT3jLbWSOEaudL?9<#RF*<9AV2_{P}$@9-N|;r~v+I*@*?%C*9)=Kmq``&H$b|<;_Uy&%y=pp2iA}DHIcolY?=ZVtijfVi<8pWx= zIt!PK^GN)CnmPqVi3TMA8^8?ECevz?PP959Tr;(2=Xu+S`w}mr+w^-YWL?*Y70X&w zuLpX)>YA~Xk)-0j3y9F5m$qK@j>;Ei{UuNvO@_V4Lr$J&vd%UDW|D#TBj8eb#9ewj ze1wMCfVHWp>JW_^eh6T?FC{>@isjC ziHy=4{N9w`FBkwLMhm`6V|9in(|?dP0G|3JV}toDGy#41((jSoDY%=7FySYYNv})t zq*2C`uJ=a#0G~i$zuFs&8#SGSyrH|Yx{kr7o8-z9XH&FMGQos(k?#IgQyK+o`=g!E zcy!DROxFnBQ6OEucSv}6h2hlroOoicS$-7|?g!?>UjSJsNC3m;pY1}-F4gBRBG?j{ zEu8ao#9qb#U_(UFl9dcaT|j0S|Nb__&e71K6v_e}yB`DOHCi+ui$y|zR5reUWzPU+ zp4>_Bz+6Iu_8GM#?WSE=ORr)>h4QAA2e8MY;*VN^>!!;&WQjoAjfF6m&z27WPiJRS z006*h1ONa4006aK000pH000)DA^R8I-PGCF=;P<&*WujK&eGH1FfcJLFX%oS6=Q>b zb})eVNE<;Hjitej8GyE=8c$o}d9>I$+srdPoQk9Id)i=NV{O{qI<#2!0XZmnK??(Gu^*1M&WO+adq8vFZE(jyHG1)T#66IeGMo2FV@u=D zpO6-IyWb~18l@>htpfn>*`aTc1E7Ji+W^{L&KIP0M5etsLbCHEq{za4p*HrlLw zHeoscqKTECxQ^C~T{W#LzH^$*Z)3972?7KLxd#?pW)pv!)Y2ZqmC3%JKES;YZY{p?TbXlqIgq6U?xMdf+ zu$b5Bq=jA3f@;Q+{dLs!71^dupmpbx#rn>oq6~$J-_VBKdJe}Sj>P5Be;@5-eMm>s zEjSIK@B3#{X6PN(gjw6`h`8whUOIK&LuY5Kpu~OTmYSWRrh&GV5c_q+uoPX5%q`(DqO5~Mu$#3sw+a6)UGPa!R;FW^YaEmEZ6sJuRP zkQk}mmcX1|=mII7q|1mP36+D3iA35p$8ghJAu(UTcp?&|+n_0PA=dAo7S>qHLDIlv36b=loTCtY5 z?>jjmITZY>__}&k1xtihDaO=(?iK5F&nb*&rI@_cf!tRlbOJ^@AwErZ- z(B7+Gzq8g$g?5cU z9yW}xV*J{IZ=3BmJNJ|*S&o9s*^~LFOHKsOi3!`p$S;h#7}s23f>sXFcY6M`g=HdVP5K{?J%&_}PQ6ABa9Ued73XaGNu>(H-IN8yn92 z|8w4_y@g4!Qeb;2MQx5Kt(sk}F@%6?rF_fOc|HP8hDl}ppKkkp70jKsvHD>ofMro- z74(%;)=MR3xFnHu6L!U60zD*x18 zYcn&VGye_ty`cjDemgaegUW*O5HaALjZ2$W0Z@}RF;$w>TFzn&gT9>K^zp{L@JY7% z$IqXMS6<0?w&~uZcudAgDdctqDo|TZS~_vHI|w{DYix3gZXD2{Fcw?TTLSr7H8hIk zX(+`v<%p(RB$@GW_49$~e#w2G&Xw$KTr?5IKd9S}>4kH=pG4GHB|N%rBh}z>r)HC{kgd%3ATp zDEd}BxU3!f($$B$nSP6WAtH(WCF$ana&|rMWdZ=c`;8uh;NiSLHT&s@btDdGKyL$> zmRxBRzUp>3hzTAyGf|=Z90c9!KrLAk z5VGw6b>jLog=GnD4^viC{KEOF2xJN64(Mfoagz=gnGtrj!VG7NMN#D=M`4Rsu{f}~ zHvrxXW~s+aNJ{EXYMVZ6tmgXh4b2PfqS^I z<+`7A%g5D*ZVa-q;IQtoM}@3*4~SZ4qwJ%RzYJ{y$9wfp!~g;nD1c428)!9j z8kZ>M2t{(AUE@5($A94qou?E4!IqAma*)G5=U6h;9Ob#h9fKMaNZesdNf~Sr@Qn6s zERa?|qZ<;>5mu_0jcv$LmI}Nku=q?868vwR9VGN<0O9a;06=-IZb;`C zgKNde+CA^G^p+i%x(=E}F>bSxQ*i#-4{4=5Tq^2Wnm~jfjUsxBP{XdG3Z@c{R$foR z{7(`kM!5jfR7f-UZPck5nP`HXl~o z&q#?5a6cZihH;c~Ab9k{lQ0Aa>s3@4h9z(IFO`|vz&=4b_VISrS+}H;e01IgnB~RQ z96)w+5mVlD(ITa1nH^HJ<$>D1cDCYXGI;<#YmRBETNo1*hVMtU2NHZLv)P3C0xkgs z&=+W1skZB!qL`bsQB)bHv2)yU5075jZk*(xcQ`f%gyLrG2JN!2mJ&hYSzS6MA!#P_ zo5O*r9vb=dUHh~nOcXlbBko*=1()}^?H+NKR$a=gnUQY(4ofEJ3o!5_jfb%xWF{@H zrgE7Ad@iP6Bucs9zm6)6u;Rcq-b7tVK1h?#xrT|=PW0c|f^kwoyY_GFTwoJzZeMqnw}#M|^&0-G&VJK6nf(!KAe(!O0dTw~ zMkmqK%!MQ@zuFkk_;G?q0@8-QNQ6_hB`qV(JVN6)D6&-#2Y2YwYk#B;iqSY0^~N(I z$B5sTmgWp|39EI_!m{zqMog-i4O^An?8s1}G&2lOUz~W_e8`)Wz3QB+A))RL ze{wI*SJ(ia<_?D~gh8Bvk3vh6yJk(`)sW@6mf%uPdiGt-M3Z%5_5C8H;!0+~biQab z>hFIa=I1*fbU78%t}NVp^!qxsVxbqQziNn_+Ga?xA;4!>R0elvmaE?D-eACUgq`sV zOcEb)=mV3B60N56G}iUGgh+e+(lx#1GG|Z$D%x`Ea}0A?gezclh1yZ#;K=(f&-#wG z{Vgj55&#}s9$gBqpa=N=y9tXdK{l=}fJquo8Y$&#qZwj{ZP5Gv*EQSJNMzc##(M3C zjxx;=At#}-Y*1-DDBuTxxx&Gn-bg;2Th`k}8RZiBjHWgW%U_E@?1IMKo$+a>B<@UX zN8@1VG*fGw{KzCPani2!11lAwQ%-LlXoL+X(vTMi%}~!SBzjBT`V;HtOQXR<9l|&p zSbD|U3T}-pi3v-ao1}@17j(KPE^`GW63iA^a1r9vgH&VZKK<09v`OQ_1jq(i%^--k zP9`7#o=aZln9+qszz}@Ttwt_Pf`JEi1DFA90F~VajFeWIp{f4eA=in=%yqP{1soo! zMpZ?^QCFl&*==bKjLBqh;2ZTAb>hhK>sU6r@-BwnFIhx;3_$8^iwnJWozCo#ej4ze zwyfN=VtP-U5oQf;<&eLldN^YM{%B?7v~xPJyP^Sim=gCV@2$giZ_|b!1N#ZDP^M#H zDEj(P?0O|j!k%>DQ=D1}V7>=1V44Zw@3~B|`;PDuE2Sc?sF1R6`{5Y&T}Y7@vY5&` z9675dvICyFt-=H#698}i(*oqc8nI1mJm|u)iBU?{KH-SoO}WWiPM@LJ*;%Ybtr^?e zOgV=>)j86{a<<>K?L-v zGjWZ>k?_$7_mojSnP>)?<6?|(xQ55ELqk&?U?BfG{2iYgGN~qLI|huB0t^@EF=GV) zZkfTSA*iUvioK%`Kvd(UL9P7S7{;2<36Mp{`CftSSJuxeyRsJ*dnuC+SAJT{Yf?x| zSGDkMk@}zlc6Pa?GJ@e_02qD%05sOgxPgvTY`y9{tu6Ae2X%`hZBEjEuiK<1slTTT zXffw>q9Ga^hkq_n>si15yLY+Yk84LYh@2&0xW$7$W3YuCI?$<6v1u-8M;8Tu&vBYKBfCCGDWmQYOSugLQwRHp@ z{gVvUi7Kb&U>>w9)o7&?!z2MsjO-tk`9Ufq5h0KTsQPtQLsMgRqL>`n6C907Ab%w* z8>VU8mk1ry@4i;eI^o#h)jL%r3%)08ca(;!1eWlHfX8=$OqKy2eOWY9iQ-ZDD^uDv zP>+~!rzg#0CAxN8Xmc9I2JP8y0E}X-N8{LCjo|-f1{x^vPh*kcH0XZ4YGY`uZE@=H z9r6A-cKa+jz_{x_EN68C0AzMCV!%KPZ?O-s1!aKo1v52L%fcA*ubUS8WX)Cl_I4bv zy~&LME%#Uj&8Ckt2O4~Gl?S+{JGjr^3rI`)+D8UCzMIF(o}(vr-*bHMdx3qFPG4}z zy7^cU)fb=yoK}s_Av69A+OfZS4WxyVBg!M1<(k|Vq?OecKBBO>=KhTMea?quTzRr+ zH~;{8nRUjFR3oU2IP(Vp-~u+maR8ugHy|Y@u{8s1BBlh#bb{?O3AHRdaPN2dpYMbj_C9?tk&#mP;pI zxF|5xszu#tZ_rzzL<|4E!Z`jEcXmCG!Q{akpGf6jU{kQK3{L-41fhDR8d@i}4)O zj3D6M*2^d*CnzT|FZKTt_4g(vDJdu>F)cIg>g3|%+3o&Gbw)%iW>Wg!O^Q5M@;zR- z53WWfIZ!Bo86K+V#i(64N1>Pr|DfK-<%i@%Un{&~y)|3Nov?Kl71l*$`Ft|Q(4Hwm z$Y&)=-@FCTTJ8(#)kb{-O@>h-VWT438+{}5yFT}ErcfC|>_U;udM_w%;7vb4=U%31 zYenHNNtQ)$6b70Cp?bs(2X|}TwT9|a3_sh~&@3sHni&6u+ZW7EG&@r+`vDJS>?H>)e zWoC*W;xJdn%!e00005V6VmgK^_42;#$rP~Of(+Cyo35_wG!IxAesRflp zW^DFuR}2v+0s0*)z|(&p3?r4XfWEHbfF{uIVl zTsLGka5D1x`k+;s7f?|WJURR#s~KAt`5A$+$OSR1lKJErf8in#8|dBYCRJX{Ftl4s z+)6T1e^il+<P=$(R9X0!icfL_>iXJhDasQfx0-NvyZ^ zyxcI#Iya=GDM_QeCVyoT!p0GDCmdPHQBulrwaj?dp`&r|kZnqHTfh3#fa4(4QAUh;OipKT0SZ8k#6j=Dm zLL|rHNeGz%Hfz<8`|PLXg>wBrP1rbBh;RmKSE3pBX@mmLjWcB7D1ME20eYO~r+vOm z=uHVVgQ9LVE#n#L(-J}w05-|x+!{Usch3@$_yGVQO?0E=yi5uwvtXd`m+NdBGNHP+ zacmb7r+-#D3Vq_8H{I7op~+*HGPOJ2nRjF%drCn*2cuiO;rA=~gHrL_n@@R?2o-*u%W;KLnmxhF`u;Z)nTRL9t4a|7bTVmU z0BWR2@b3l66$PRfdHHPcCxa&C_J`J(hPiqxh2S3+nisYxn%XBcl9~>h=p4pHP;Xd_ zo3-nHyZgBJ&Lyv)WCD{(Fdz;n0Hm5O*V$ZNy3>Nxs55g_j1GsnmqxjUoL;s|&);i0 z)pz+?Ea|;PHCA52+L(+AQ7}hAc{N+LF;v44C&cd(nY5PYm)L-CtweI_)ohO;Vl{PN z5~EfA2;O5t+&tNCueqzD&uT?v?LjLr2pA47#dG$5its?bx`-oA7-a7 zXg0J=L8AA-27m$I4O*+5c2+kcjS@loqyR0dE-*aOybEYzqce`P`{59rwlv`Se43Nw zmm#Y~rDM+{3a$O~2!VkDBsm!!6i50;ReGWT9@)(C4bVgDJwcg=CiCfJ$IfK3)PM~= zkp}#u01Y?*fDK^9gaZJL4WP+lUN`G{RLuCwowNi4pW)Acy>9vxuOxQQ22ur9?`Agz zHkk7MFi0 zDOzpMYYo0j>nrsd7O^x9%9v|rxk|?5rZ*sdW@Vrt0_5JZE`WIDTq~p<7hs5NayR(5 zRX`tPYk*iZBJ1;6K=Rx04xXsZJZI%Xi9t`X>IgP~89HLQNtUFG^d9L4XMtML+_CM zXg&%-(3e5>R)soGTh$b$z@OFUtWFNo(G^2Q29cX|>VYVwcs)D?R873@vQ$&(Fd_tC zaSdQcha$kerYXQ=S50(rs@!QJ;amgoA{yiCcER?m0v!XuEuH$uHds3>YdY1{g0!OO zA|wD%&19ET0*MPc)hr%6IvqdaI0pOYi7}OH z+Ib*Mx&aMl3a|oNF5o3h3t!v2xy2kUcc-Nu8+D)aEE|FmLU?h(6Q3`4HL0k&ah5HT zUnjKyq$UNLH5V#%_ar$TCo%aUIkmCY+9kYt=_xo(>n70pE6;HFpV>HX4TH-c_WPW! zMM<%Io`KH6MX*q}=%vHT2ujqxc-S+64;o!iey2@RAgPKA=N@uKVn~FQzie>4mdqf# zSgy&LFbt=P&PM~K)`PPA=}xj5BnFyxWLnZY!9LJM6 z@L7DP+z{9a-y-82{c|IFv~4LN$CsZq0Bm-}lnA77GDXwh1B6siG;KJtqNF}Zbm{Lx zzDPveoR!m3cxXj&wE?ttsceTbIiNn99XjCPh~&Q&e1aM>h_GlCy&E1U8iPum9qfI- zjt8V}(cl?E>KRh+!vz=={^ks>hK@zY4e~p0ImCCBE!}NJ5BsbEbatr}Bqgm!CCKY* zSf}Nd-2u~YOkSlXG4^O?``NX>d1l{qD4T2WL@pnH!c(VK8hm0)nUQY1Bvxpf8mF@2S=60vwW*v-r3z;XfY$a7`Z6hG{*!#Cv4@7HB z=RC8RdE&XM+Lr`06Lo$k`d5s5TW;+*LPm-Zbaj}R8XGD z*p7MKde#`pS-jn^)yCtxar7*Ae0|$jm^yPfo`-2-;%57G8oc5VtX1@9=LW?~d`-|DW)GXm3v`DwZ?&1TZF10HB%=*V?q4D?q6tRTMrU2)MTfH~ zqgvxs1OUDZPL%>Y0C1mES+cNxomtoPX9bv6P5d(2Poi|if!TN~?sVv@gUepd#*tC~PFc}dge{=R4*x;Mt}fk7FE)CKQmOKca78PQ;j541!LA0F-TJ0R47 z5TQUa7T)zu&{Wd_e2kf{)fyw$U;gl@UU` zZ=yIa`aui94m!NYas_^8=E zRiY)JPS$&HQjVWYHWgS}n_rQ(Ro^qd^+2vA)${&#Qar<4Y;HK76gwnH^kEL;cyf{a zq3`IF*W@Y~T=+fBe2I@c{iJoKVALl9Tr>3T0_Gu&lER?WKukd#4!uq*M<74m{FKLza~iCo&oq&Rg+drl`yg=-8pkY54GW% ziQcflxjvJ1vtFzc^1nCqZ9cHLd`KbNa)sy=0#7N}N&ncj;4y7U@i)y6Z(b4V3com? z#6#gNNr|+meeW__c$}@fr$x!3wK144qIK#WT&X6r<=1?>(vvK$!gVjO1cnXi*}^oX z5e^|?)1D=iKQsLDvE&{4S)%Trz$`syjB{6JrAZdJl9Fwq49$o&&9Y;YR&dNA!I&je ztoML%CN$R#ipxc3qH0KlLgK?#ykj^QQ|UvD2IUoEIQLOf0G?Z}2Zw}51K_^zdm7Me z=*yVglyTt8oac7VvZoXL9)$A3z8Z-sX|k}o z5yYu4Bf03c7U^IW=BG!nR5j8`6BsRSV8ZUUvdS%cjI^AUfD?LaeTT@OSrp?`A%`Xt zpWu)V#l#ut(@$-U3YFEX$))w9DH3oqt}Icjb`6vWjmxL}-j9~BmGs6@CIEgb?h_Bn zBtaBR`+m#;Fxvoxv7Ju)bQ)R7CEdmBD>@y!+DC>5Wx+1l+01YL_W~PW`IWXB|BUmE zm^R)_Tdd7I_Xdv7{f}$Rr^DQT2+~#0iaHH0M8ibvJtLRcj_s3&)MTBkn53qJ#*2Pf zS5uI>i#leeBg2@-(Ve8&!qGCGpF}(Co|nbDFfMC0-qUiUL-f{9;hBqkc9cl!Q?7qb zzoP(aWm5<8?PR1mEeUTNYY1_Nosl`XVvajgQBl}G_Pbdy>k_l;oVVP`;@st#IKxiq z0D+S&q&^`tL-ug|=L*r*$ z0KC6h0Mr_QE-f!9-+9_HrnRfZA8mESJIFg+_|?sOW>5VvXe4vfP%@2P_g_y6dTB*X z=tXcqzOl%vtj=+r97@4_C#JHPSHUr7c4)ggf6~#8MX5!Iw~t&Bs2^=}s6ZK$9|Uv6 zGtO1GXmF$R8yHiNg)ZPTEI zwdd?B;*#Co=u{g)$o*!QkcH>x%;RvU14~VDiu0(Zh=Jej)V=|(YsP({^UV_Y~N|zYjR2n7sLGZ~d_T|SH z84n;4p)}J0Xwqi&IDAIK(h>uOvk_twma8THvqQZ*<8CWTMPx}-X!H&Mta_C(B|wYd zZU8R1CxLzcsR{K6)vXiHjGAY7z;I8@48GZMkgpt&0L+T5^|hsFNR*JDdlN7c8cSwE zbzg#gzKMTFV5hKC1$lavGYg^voK~@N;Q~OJI{_F;BTar8mz2G~Ig{T~_1+~`w2OvV zW+|g16%BlLfmH`UfQdVRt6*P1-YLBbuLyRwTbEykVcQ$GcjMr!m9F62Y<6V;p_nYP z-UgtPup2PPLvfXflm1b;D48~RM8NFj-fp?rw6LN8q++9#kz{nW<*hRZ06G;fpAB)U zM6yV$1iY{P1=L!zzY3J~;B^}%0i1rFRgI-Mj{o~jzy-W#>csP;Eu|g@arV_Ay}w^2 zBfR@U`O^fXYF7+KCNG-5J^`SdlV`0;V;Fg0y{bGlfAWk#=!=dGj8`WaRC)K1-EVEy z3w(kJ1u~C9Tfl3 z*O>cFAPYEF)%1F;t9QamZ5cRIQ>0DNA729#59uly%KIsZ*R z_r8orZQZyw9Z-c=(hEh?6H>m2tZ>0v?n`GNj<5s7dMyeP$>7m_d~yJZG@pGAYs!vC zbjIUe$vl0&1BJ>p&mQq$*Ef6CS}Ro~h**d@~*D<5m9%3k8fD zKsQZF4jH3D(&a|;w@l}U=ZHwMB@y06OY27l?$6r;e< z)=JYX0t}vQ0=*_-OM)=vaq&&&6C<7igp)vhK8y-aYwKdwDkZ1baRxN4AFJz$?$h~AUvI5 z6im{#sSg|h$kt85lKZddI+^$6i#Py49o{+3m`P|BJ$NaRB{bcS=I$oXWa!{30hk<| z1BeYe4nPOGv9GKax_B)V^#do=~@=y(yBC|y;o>s+yEdqfcFMz1H1!=i`Mv6 z5NcQz5Cv6P%5>l}K>$1z5hm6UL1Gf}rljQfur3;`Rd+~@4WZ%9oj-E8Kt#G#fNG$F z>wEu?s4xf-36atOUID)8%(zi#kNmV%t$ahva6g!LlPfR;x)Ol!04S4#0)W7z8vrDM zXG6dMFrm~o8VOCBR^`f3p$o!`3n$~(1FZG7UBRP~2mpR*QT#UUwL+C|X$*1Kr15l~ z7N$K4-%|W+xH<^UMj%vy;yJ1Jnb6S^)V^@T3w&F{A4jMr0OhuZ{`FT{H4L^m%aS%q zxZ97OTauL1{-vHP;YhJjWa|5^9bJ?ME%_y?(+HE4bt#so75z`ieObg_l=G6c6+L4o zWCM&rY$pE{#w8p3CtT#z%XffW1_s84@q2TaD+ys@gG|HClz$C?Yx_DVHAb4=%#OtG z!Z?zU`|}tB;QxLO!nkh`0RD)~u?F||p*L~f%6#~It335j;IA4glq%+T(G@O=!|@71|^SBn7?lgD#Fo9XAG`@kN9FR&OEe zJ3uTVagAPVE5EXN$&J|Xo0IApMesV>!XLscf|$(Nn9S1*-=#HC0bq~_y)UU{hH@%! z1#z$z#e(%j0wC4ztDjNg&m2Gy0_egV(-xl-jYxu06T$y_={yPL#=#m^r0NxoTT7&w2aDeHfy=TO#lG1`PBn*=s8~}jF%mD`t08-s# z1t2y}4vtPX8~O!F=b)%j1^UNqmAJ3B(v|U=BUGOB3e5H@?~x`qCM-ZKAm>~ltJ^*B zkF9HAbp;CN9N>LsiO0+UeL&ixiH38*3UnN?SM@+SF~FlzBBx`$JqggE(|H)rca*zL zrGhB@JI$u^GTRw51P@_r)MK=y^tnxxt+9W3fQGOT%Ov&wQq7uWYt&0K%67FKtvPb^&m!P8C;66KSJV@k)NWkT?bT;8&3*F=+;ANef1&6~VxQ zX+IT*Nz4S^DP<)=y)PC8*bnoUER0#5Cj8{!0T}u`9gc|&8l(YqRisWFC3?d(HIr;j zKh5)3+8>*KA@j#ULd)HhQSwQkCBXY<%Tj*RRdI)=X?vu8ZwjJsma4Hooo6(EC5;|u zTXfRI4$7gZ-9{Lfd)k|h&6S*;8N@YewXu)}=5=g5hx{SH9_8uc4+GhS-RoEz^K%i#omD zgh(a3_+n%xzf>FciMHGN=(M_nGlO>_0YWy%bzE$}IT-#yPZ`)GaT0S)AeS%Fn+xs) zth%$db>3rWD{SC3uPur@UZul9jn#6ef2V*W5BQF}Umjx&q8fuHqWCQj^S*+E`*#cO zG9Ltx=#7lP7EM9dKmcyvWerNH#jbLNc11bIBdV`Z!P)ny2vWR?jR~Zbg*_*Qn4haIX*|-yE;d4IPi|eicp&9zZ$k%R;Hh1m9 zwFXL2yBinu^Ll12sBT*F&hVa(I4gj0VSYKntOCoQH&d% zob0*}=^f6r9WXF0?m0b9ESfsPJa z=M^xmWHy&Lmh(Dw6bS|ZerL>L9`pk60(y_slLo##ZE4WEs&KhB#HMBd{p%n7L_x{e0isDR+0w^l<#=@U)A{-iLykcdfMGAPxYWmxT>7M(5dpV8j`uOzs-S}7H|ifxvs2GWUd#X-ScP!&v3LWCVQBXd`e`zT z;D^wlU1V9`UE`y8wF~K}2oGL{1Bv;1OBmyE0Shne#r5*&7?Z^eOx#ZlzFD-X0wh4f z497mVmjH~@ioQ;xj&h#xzgI8jHXGOU!A}p|nYHX6`bLF zhf|x7sc!Lugyrrrb>?x(zY-3k&(05g()#gcc;iLxP}a zPt%!zVFGuBqE+|`1)uUl@&ZP=rmQgJOUw5cW&i+BXJ=CY0Kho~000000JUBK02BZK z00JA*d?4D<;M>s2*3s)FCnhK*E-x`LFYDaR=O!d1Dl;LBuBF5l(g3iJdK$#S zd?MVX)m7V(+EX+hnzmZiYoMHvSab6w;SEf!4nHp~H7b@AwAmLj|&lmR=-2nr_vUW=Ay z$~Kfl#jNs797r(SHx>@nYn$pdejq0(E*H(taCi1YsT}8|o&Ge0{T>pD=fD49MKe^; zjCs~l;t3v{yWn)@d8l9nd8?L^>%^>d4w$vQk>$!^Dzs24PgDUk6&34w!A}weKx-|! z@nHZ|Qvp6(i&Z)>B3)1p!z1xjeN-b2g9gc>zmSjh=~cPReK4}1c&Ip&n)=pqTUrWz z>J7C36^0|s`foA5zvCU!jP3vwK?B5R0tjGvJU~zx!>r8szH?lDmqTbn2y`w}FP=>A z2EbL`Tm{MsLd-`=nIY)%$Wa)qcbGyDQa(x#9(m18oUdBg^=&%V7_x=CJxQJ}9cR?FcWaIXRKM?{!aj z`9+vgE#YcrO*ZK7A;>gs`w}#mpc3`miRL7#*?=5tRd+r2be}~q z!Qd8zm%T`YJO{&30A5S3W~^Hn1>pPx0056(6K=aeb}Ktg(Ypg+T}5`1-2G(YX`cyjj`!-$qn`ZBi4*S|wePr9Fuo|6u!y|bz3(HdANC^qLAF&hxO@V{E3I{wzwBk> z%;uau*D0^?g%nk(VUsi?OB;e8O%tMVR7`|c3pgV}5@ghLJ!En}hJ-_8vaXuKC%rG4 z^w+tDn(-8NDqw{YZhUj`UYjaNUgNAHs_@kgsf7jrK6`Gl7MDUDKpEc0q=5z1Ob{A}a9>b$UfwrK zF{0~PYK*J*g#s`|mOmDD4_)Jj{5+o;6vKWdU7KhNGlMcTW><3n+em!hs3tx>V>H@e z>X9hsy@p>$h7d`A>p*h@h5ZH&FtSB9_=rSoUZDq|m_raUcgi;Cv$32aRRysW(@{2C zpHv9!ZGPEpAn{2~9#P68qC4uI#(Va>u%@dh6#B0G1>-d5WugAKcCi%-1d|~#r7FU@ zDW`-C3;R}Pn)VG>X?084vzk(?y?7J=9%~+B%IKmcbb#-w60qn=b|wO`Q(yq(3Y<2U zj*&G}MEdA(qwl*T4Yb^J1FHdIE;z7;?n={=q8p>-6UM$X&?+B5rTeDDP(@cEJbz`g zOBw$5SZ5r`7QLrvfK{;s&aWV4*-Aw1u#8y-55Y}K0rpno}=j9(Ez(y zI(9EbCl1!?m~tc?b|LO9#&)k}U-9>T%ep}O*;_VhP#tsS&hIJPSZ)$JhUbo&%9X#UjI7V+p?8`_2>=iW<14X6!1*jx~_ta5Os0|QmNqd&G ztP{%pq@icTdF%%}EK)SNqfTb4etx%;3q;u6_o=E*j?6V)Lq&-FqIxQEUTI`z;wDFr zZ4IiZ1x`H?*IB6O4{%iz5t5Hp=1c%S3vM-rKoBs3Z+HPMZB=R_@Uk&U`nBw-G3bf&4Z41F3>(`{1!tf51JPGK9QAz)m^?*k|{ZSbx_RM5+ z^)6F#W*|R_SBYjP*GZ`}3stXv9|?Z_of`Yg9$lKZDd^+z>(j^Bm-Q~Cx#mTJs_*w5 zgG!aWfXV78j&fd-u#Hw+eOt4Lufi1o)_Ij8BG6q!%8V(k@BdcD6+IHQol|0sxdC)R zNtdC3ilmp2RFbV0+xvNQIw^?oE2<8J)wZ_wSC}(KsmYdF_o?_3Yj3_`h`5H*9|U7W zbM#U$>(@&;gXBNxE+8xG8+0#8(hFZpAGMw_QN!evzN7Cn-7tVa+wINJjMH1*6ZC+U zE}7b|qW4O&IWiF$IXEh$q5j!>wQaEjINHQfoE#$KM&Q$WqSa8N+}LHn;{3tOa>T4o~_-~*%a#SGpl0{kLPdd zsQR!P-Nwpf0DLZy#D)b8VM^P10(uq0DGfh_ayrS5<*P03tMK2|Ws)crM7f1?0E|}Y z2&y2!pQ;6*Gpr1;dP=C1AJN&PnE95DGF?Jn2nJmmiv)Z&Q42yvfc?EbiKKF3~Ii%(XzpyG3+ljqL%nQY`?2+6^lB?+ic{7fuwX?U{^4`>4P(gO0sD z+(yf@7+fGs{9Layl(v0z461Da%yOd!jBNMN;_`C=q=l8({3yMcN$i&=A3s#8i#xt- z_MW$oI-7pfOKx)cy&|%gAhceS9wgD9h&>elnm}2|4&_W2Nrnj&>xEGmLaf{bn@5(u zHfkAugz;drXgCZ2I$5Pm2`*6C@bUuyphCfc20&L!Ae9_LbpQbU1OU7!z1HWLE`e2i znw!UX_FM;5h(2^xzu=KLesToP7Ez!4T&)C}WU7}yW$sVce6RzIYPzcv>(M&D_vK6_ z#_8G9wZA#~H0JO-`!_LsG+Ju{095Z)cf}vyT@{@9w_j!l+I5*ZC|fMJqPI8d@$*c= zYRziSO_4}_%&6(mn1f68bX94$glshi-?xQ2<+>zpj{`fBy<*sotDq-_Ays*$I*Ct^vxD@b)&Mo^%)|Fk zZ)EB$M=cyRt2Me2h%ZUMV{8Zu)lCfjHp*4eY94O7hI&v;^zwrC3gCW4eiCFq;0^Gv z1&po_C`z27^FmWkjUe}{+#hvswvC{xv@+(VWc09j3I@30jQK0b|+)l~b^?hb41cX|wf({U0vw0Z+AHs)%s-x_W!>wpFTRtQyy z9{UQgg2fL206;fZl24nCu&f3as~8|7ZM^63EE5qoV$!;VK3SQOHI>{}Yawzh82|(_ znga}r(Ij}OabZzUbwEU!BuoHT*qUQ+O2PrXgJdrd6k2iS_LE`rBZEXOmpA~-**_P) z4h6uT2mwH5o*j-1d<8}o4V?{qN}+>sQ1_5e;sxWS&+LER~v(GkiWl0*4de&c^`g zB;QNVp_ODdQ5Qd!ucw^;trhK9)Vzd9>n@$p!DTm6Ubt-wyYQDmAn&M*G`W-Z4Jliv++4X zn8$xiz;W7mX$Yd^eFj`A5kNk(#CInv+OGi8)n3UHw;UwxGmT})J%Xy~bg$~wy}GXFMh~eonL+Rl$uF5_|6Wk5ui9Ga1`K}4XwB(`H`k`iE2UD2 zM*`ae_?ZVWjnQW4JO1@^{KlZ(sU{*l2}M!PbbxNAN*@@row%7l$kn=^r1jWZ&5s5f z%Zmg!fT__-l|9GB$em(P zzhDIX<=GCLGGKOm#{~+}@Vhny%SuX0EJEKX_IBQ!I9a~r^aZX}P%vE9IY%d6u+(iC z>}l6Vv!h$ZYPyqP-J^d;l|+iUgBg}p%jH*jyR}BB`f_1`%-Hs+r%C@*1srqMBwTs< zE?sKd$o5X_{xnAL9Im-2E55S=Vykg~0l~3o5tx&tpSx{@$T4c%1HyYpbw{kA)=q;n zJ)-kFWd+4xsNCtzdAmOT+I!oZf=4E$)JU)Py_!ljFsPB(%Yx}k(E1UvPZ%mrJ4sW85yaOY>qH>~_w5HOq2K-+I1i5_D#zN`>&Eom0FIMnW#+uSYzM?!y0~TuxPle}?}ZNMs-{+PL5Omu zqRi9=L<7I&W8oD;dtrs0Q2Qegci}>=nMl}?^B1h(ltEja&Zb+HkmLQXuqCa(JZMKx z{>r}bjSuT-{Ji_qPc&=iTJSEA{B!46za7j%0#``y)PqOO+W*mEYIGs{57|dR>?d)6 zct__bq=@=BYJu?)OT|G6yX@V+lA7LOu9~_0k48NWXfU|E0bwsyq1pmUh*n`vaZ(?U zoJPS|>Hb82`Gp!lB>ny%9ifGYf9Rz7Obr!)1E$oHun!?Wb5N~U>*|z?1MzVrJRbzS z1(Dzmpd?SiG)nm*&O@VZRc>cv(LgF;#@Wm*n&JJ^w5s^BN3P*L0O6mTMG83Q)%xyL zN%+|dl<=8nMY(XaNu|SV1Ld0?53Y>5)q8FL^ty@&?myO?`?mEKuvUr`sE_3yE_pHi z6aqMz%fB?aUVp0ucmx|oRBtOUxBs5>d7?2%mdFrPu#=4R6ZiG{MO87SoWMT*K+{xJ z&VTaV5E(Za!r-TZB6GQp1c^DpGP)J09F+f2*QaGgI+?QIz#GcnPo7SiTa1BEgHr(k zFgtn@5{3j6+YVc*C0F}OzExab6*}5So8Bz!&hr(}cAZc{@us+F>sl$JqixM14 z#$YWM4MrdH51$OcWL15p2xtLO8MnChqWg`WmJzuO;ON+1uE7`Z6#E%xt6Sc{{>&R`XL(At^48uV@mEYGe=(w$j-us(4#ikz1OxM1>n+-~@`5TB`zAh_56!H00kpQIf5#2I*-Z}Mu8PnFeX)Qyw|0!ZM zgwF|iKX@xdTP?5gpUpNm&Kcnz*^xikaW?1)ln{Zl2sg4H^D6I@vu(R?2^axMpGePua`+d~K zBIATvdN&k>c)mBVknx~c#7RaqSZ!>SBxUX>XY<`>{$}eEf);ohB!)5T7WIMBnkYw{ zkIKar>&XyN{J%p%Gj*dHA?&nlTK&*laVgeK+D(7HXZ&wJbpUkW(9Z(=G(vk++UAn5 zMw<0j*|p6a!Ew_NdG4#OPTl(&U{R*AhT?A)aS*~DZY%lmm73XA3H#9*2^-_|E4-kL zJrDZMMb6f|sY4J3Y_ibU?wUnHgFs z7RYmVTN#^cOD@JSX}&#R@9as5LQp70g9S561CPI&n(*~^ySg$X_bKL!ByxfsjlURn zPZQk6@%lkSBW*U6f|paj1qpFNc4oG${C=ffoiS8Ga#h|<-D7P05j(bRS+=^KHD2w@ z(7`pHBA#l*4P*L{EJW)oAv|WP--_woeIWu#@T|#+hGGLPXZxtTRs59dImOOS#|e|A zVE5rX3`pQPJTij%rb8SlP(Tzcs7c@HT5_%#Xm4|`MU1c_yPqPMWioe7TuESog+!b8 zvuch>q;HUsWiPp#(l9bVx~nb5_#9;BRbic`G&FUW<@J#7Tj;PJ93w3Z4Zp9&0nX(z zfGe%)(k$Tk_bV8M$mSn=&Z3J)o^<@x7SHq9ap%!a^4}S#qC%u>iz9}GZ;8;x7>oKT z5=$`OZAYw1a3%A66FD(gH1G&50mE_lQUeT%ec%|Q$>6PEZucJ?){R}YXM47C?Y{yD z{s)`qw>)5$;#=F^)eXDFgHQXVuVE{IVtk}z) zXUAs%nkNe}T~@71dRxDuHKrT+AzZ_LczXp$X+n-g!1aq&2CjI^GQ{rmQ#5+K=bC&4-E2l65r78 zg-p2gNB_*;>2N$<>Xjq(AR_hJ%K6OaXa;!#^GDpPf+6``T7Vg$dR|=QC}<)JGL+-c zl>1lnlBVp_^=_P{?hegKT;ew!a(<{4=1L!&&f)ogGa^VHq*9XfGsJoWSa| z03hIvWrYsS1F7`S_+Ba-p33~G<*$KO zI3B(9<^4DTqWhtjKbbz{s7A&>-h&$tGO1g^G!IiJ3?3jAxfXyI3o%z zq*F$8F_)#MQ+}FZPiK%xPiwAV_f$ex!|JeT%cH^%yMv4I1jGOKnbg$I5)8S`vuqg;6)^q6lfG%gieg~yJqQ?1ee?Qf4pC$}P{=mNRfgCgo zAEZ!gf&bi($R(@7#I@rxL9IYnU0nGip0@J&2#9#|EGNpaD$6FFUOt?h-ilLNmBm^y zdTk0v8^jJNB^nkDR%qs^!S9>D!MOH7I$r$MDRm53E*33o$E#>@@&tQ zJZ_MI6MGf9Y?fhLnLr*1K)Jl>S5#lhDHEx=OmB*@si{KTRek|eB9oXefEW9FP^n0Z zKF9la$cmOaM)OOds7$dzuMGqtewe%O@9^a2%q)N@1U@hY$x!O?xkg#R>sqF+(ufk! zLsL_!0w*LC^6>3R{>c8}Xw=_SIZK^XS$6EeTWdT!Y-$2tQ6 zjh0Z(p#AHI8<%bkQ)jJuBUe~9;Y^>OS|-nJRs*0djz=zC<}c07nDeg`iiG+}=Jh|% z5QeiHB(tXqOs!ASynRwaiY>&a=V*<>#oEbqCvW)y?i!kzRUVx z%y6rTs~WyC+aVN7N26r6UDHS!ieoF&JSF5#c7)-8;V({7>-jC=bRZcW&MHKbUf@?7 zXkJDmypu9V)E7Y+*O|!%HuNJ$R@8yK3rEI1jGj^^H7_~vW~2Rs^m(4XnFajovp|ve zMSFQc@a|rxu{Az#=IM2f+eduI+LSER!|Xk*{zEbq-H1lJOC1G+VMh0{p0U1Vmh^@+ z2W#0!-HgD-G@qQslvx5~c!Gb3Pf&+9yw7avJ5NldB^e7!z83{NC)#?q^&uhzSHm$0(Ny68rq06L613tH}xbX{389SaEK&vFDv z89CzeN&f{at&$Kem9L)hb(nT zd5c3teDi3k?cB^n%+sPPjMrY_p7=riLpo+2r%{{w8>?DT=`Y7&<@k*zjy-uHxYzb@ zIZvx%DbYG;@bQyW#Ci*)s@~;HBQ8_V&^(^emmnP>mz-uaBOX9c`LSE^4oZH-ThUv)88RJ@_&H&x20{S95)hL4b9AHNmri-E_ zK%qfVG)^W|#5*1%)z=KC{APP9@dWu$SY3B1#zHV7&0)5LwlX~$L>@dpiN)$K=#d5l zFt_7^2Xf>hS$@_IhnX+e1cwkjSV~3B7u7`_XCaG;Fm*T4ypx8{5`2@qHz&=%mP}7wjE3>!G0JPl_+JFd|8~e0G2knS$t50QZ8Ah6p8<`H! z+NOi)I_iQTW{#}4u-%XKeV%xN4A?wKKk^aFH-tZIh3I-(NU6^WXeCnLMb`w;7nN6D znQPSdzSdXD9SKS$J~E8aI>d&K=(b+iv!pk6dRH&53GFQ)!&@SCUoRKFJ<@Gu-R$8# zJIGrplt6)l0?9cat_j%Gle98?VL^9P2Kk+BSALQ2$9}v&YbU2M^(@lpnGups*K*ED z`)5d#3$U(A4jZ;>xDc=8PJbAuBQM9QhjNfFQ*f=(*EjYfbt z>$0)=0{if*2o~^zLZK?32)w^b8gRO@&&<1%E^4}zU<3VNb-v0uasBG8>;d6~8K$W6 zxi3U5SO)Oc%m4*KVF_~kOGh)?Y9l5^4mC>96xmQo42HSK;#C)>lQcnN9W{WsStnV8 z%KA#wVbhK`A9#2H^phX~LqUjA>%*fkVXu6|jw;zD6mBiyQ0|vkLpy34u`AxH`2XKj z(f5By0pt616NyE|p<5-RWMJB)prJwaK>eoJA7%1AZD7wp|tED^!ZJ@pwHWzlN^B0cfJ_jA0dk0-+iYFxOKnrqp|lX z&vvm^F}vZ_;t%T;a_A$$pN@iwb-(~m4Ld-w{6TRD)*S;R+rJ`qSZ3-r#0OE=l|$sB3}8<$nbB%ljVmvY8GNBniFs3ZONo> zJEHuqA4btm7TCu@xLJ5F1&9mNHbEt5s?(1`8|>?T7|)E$0?!~_ZF^15mKrO76V&NR z78^Kel`MIkye&%RP<1%J=533&pPJ5}S_tH=&iBd))k zBgszqVywb`-M}?rW^!?Ms-^1vjBeOvWVCb=4ZxTIc>?6`o>2N-puY@hI8|GmIIM3!ZPN}Y#3|e+lyhOuG!*P8B42e&8sHg zh)Fpf@3RN6WZDda>_H-9^?p(weGfFQ^kx-V4n#R9yEQ zjoq-BXw4eL;fPUTr(3$l&4^3^V(v5_@_4)JC$#wZVYaPGzt-2Hop!VLFvd0`46}{G z!Ql*qAx`otzo`dB& zZ`3trQTT)A5Ar>hm6STts}B2paQLt}z`DJ6ⅈ8xwUW)Eea|trx0@R7seIx1bpfi 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 Njg8JvPJ+H2R4n<|&hti|aEuHAkvBtDu$egT+ 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

0T6v2ifXSdI4pN!7-{Jk;ymIZc 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 z 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 z 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

h}ILAdaQ1&?$60N=tj@UVL>62;8pUdM-a!c}| zGgb-T0&K%?wgE1?{-0b^u%S7Kh#dcRc0Cr^W7Wx)l33e^GMTQ|9D7bLV6=;#(@UPo zf_pc^$m4fz8X*J)4L%WwT)M|v-t!5Vds>?}6keFWqM?|WUQBMTr#RnB84vq)`j;$% zfS=%R!24J>A|6ivQADa)v~UmI4DK@I$GCUhP6!xo1|iCS(;cMDCoytsx8Q|JFjML< zU!3)i*n}ZW6ZRRY1P4X&simEfKD);>HC?=-Kq=8FN_lEuv;tzoW0 ziiLZOs@*d~g?wJYOs-Pk20lAc@QLwxe9WoDAgXkH0->y^P}RAg-RswMX6^Zb~Z{fX!7RB>6AH;?;tL!o~_XX}Wpz7ax^O* z+O?p8upXZ{!^y{k?w=q;Ro9fCGvYcBIqx@7e(gt3(P^jGfy=1#b)k2ciP4pOdklwe z@q!-(_gC726701j>hP_IQ;GSFiQMF1)(I(FBHH8hW3$*xYs5JhY87R>+N(L z9*BS>UfZC;t@@KcOgwxz1)^o|4+4uLrb2vzFQ$zkw^>@P(e<6HZF^^2ZS`k?fU z_*$NL>x)G5BzrU)Dfa|n91EuAOwp=RU+<;mS9sYj%edvy1m}mHP2kUGZ!agpyhm$B zWfjvBc56`hMRr)PSb7dub`lAi6@lU`T05RB<}_(ioTj0FiHnYG|GA6`Uwg1_1kf+ zC4usA(F_lL#D>%_?rwU}#^bVdvXAy#y-{QXc};Fj8!5tgM@*^7GjM&l$kUjhxoTrEOcSv@Q_=?&?Jcb1CmYuK7roGsxNC$iVG=SaoJ

8QjOMS93w^$&yY9iP0C2=>oPtoYq@QHl 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 - /// Generic client-side UI list popup that allows users to choose from an option of limbs or organs to operate on. + /// Generic client-side UI list popup that allows users to choose from an option + /// of limbs or organs to operate on. /// + [UsedImplicitly] public class GenericSurgeryBoundUserInterface : BoundUserInterface { + private GenericSurgeryWindow? _window; - private GenericSurgeryWindow _window; - - public GenericSurgeryBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) - { - - } + public GenericSurgeryBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) { } protected override void Open() { _window = new GenericSurgeryWindow(); + _window.OpenCentered(); + _window.OnClose += Close; } protected override void ReceiveMessage(BoundUserInterfaceMessage message) @@ -44,40 +45,42 @@ namespace Content.Client.Health.BodySystem.Surgery private void HandleBodyPartRequest(RequestBodyPartSurgeryUIMessage msg) { - _window.BuildDisplay(msg.Targets, BodyPartSelectedCallback); + _window?.BuildDisplay(msg.Targets, BodyPartSelectedCallback); } + private void HandleMechanismRequest(RequestMechanismSurgeryUIMessage msg) { - _window.BuildDisplay(msg.Targets, MechanismSelectedCallback); + _window?.BuildDisplay(msg.Targets, MechanismSelectedCallback); } + private void HandleBodyPartSlotRequest(RequestBodyPartSlotSurgeryUIMessage msg) { - _window.BuildDisplay(msg.Targets, BodyPartSlotSelectedCallback); + _window?.BuildDisplay(msg.Targets, BodyPartSlotSelectedCallback); } - - private void BodyPartSelectedCallback(int selectedOptionData) { SendMessage(new ReceiveBodyPartSurgeryUIMessage(selectedOptionData)); } + private void MechanismSelectedCallback(int selectedOptionData) { SendMessage(new ReceiveMechanismSurgeryUIMessage(selectedOptionData)); } + private void BodyPartSlotSelectedCallback(int selectedOptionData) { SendMessage(new ReceiveBodyPartSlotSurgeryUIMessage(selectedOptionData)); } - - protected override void Dispose(bool disposing) { base.Dispose(disposing); - if (!disposing) - return; - _window.Dispose(); + + if (disposing) + { + _window?.Dispose(); + } } } } diff --git a/Content.Client/Health/BodySystem/Surgery/GenericSurgeryWindow.cs b/Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryWindow.cs similarity index 57% rename from Content.Client/Health/BodySystem/Surgery/GenericSurgeryWindow.cs rename to Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryWindow.cs index baae1b145c..d432c3342a 100644 --- a/Content.Client/Health/BodySystem/Surgery/GenericSurgeryWindow.cs +++ b/Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryWindow.cs @@ -1,58 +1,62 @@ using System; using System.Collections.Generic; -using System.Globalization; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; using Robust.Shared.Localization; using Robust.Shared.Maths; -namespace Content.Client.Health.BodySystem.Surgery +namespace Content.Client.GameObjects.Components.Body.Surgery { public class GenericSurgeryWindow : SS14Window { - public delegate void CloseCallback(); public delegate void OptionSelectedCallback(int selectedOptionData); - private Control _vSplitContainer; - private VBoxContainer _optionsBox; + private readonly VBoxContainer _optionsBox; private OptionSelectedCallback _optionSelectedCallback; - protected override Vector2? CustomSize => (300, 400); public GenericSurgeryWindow() { Title = Loc.GetString("Select surgery target..."); RectClipContent = true; - _vSplitContainer = new VBoxContainer(); - var listScrollContainer = new ScrollContainer - { - SizeFlagsVertical = SizeFlags.FillExpand, - SizeFlagsHorizontal = SizeFlags.FillExpand, - HScrollEnabled = true, - VScrollEnabled = true - }; - _optionsBox = new VBoxContainer - { - SizeFlagsHorizontal = SizeFlags.FillExpand - }; - listScrollContainer.AddChild(_optionsBox); - _vSplitContainer.AddChild(listScrollContainer); - Contents.AddChild(_vSplitContainer); + var vSplitContainer = new VBoxContainer + { + Children = + { + new ScrollContainer + { + SizeFlagsVertical = SizeFlags.FillExpand, + SizeFlagsHorizontal = SizeFlags.FillExpand, + HScrollEnabled = true, + VScrollEnabled = true, + Children = + { + (_optionsBox = new VBoxContainer + { + SizeFlagsHorizontal = SizeFlags.FillExpand + }) + } + } + } + }; + + Contents.AddChild(vSplitContainer); } public void BuildDisplay(Dictionary data, OptionSelectedCallback callback) { _optionsBox.DisposeAllChildren(); _optionSelectedCallback = callback; + foreach (var (displayText, callbackData) in data) { var button = new SurgeryButton(callbackData); - button.SetOnToggleBehavior(OnButtonPressed); - button.SetDisplayText(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(displayText)); + button.SetOnToggleBehavior(OnButtonPressed); + button.SetDisplayText(Loc.GetString(displayText)); _optionsBox.AddChild(button); } @@ -60,17 +64,23 @@ namespace Content.Client.Health.BodySystem.Surgery private void OnButtonPressed(BaseButton.ButtonEventArgs args) { - var pressedButton = (SurgeryButton)args.Button.Parent; - _optionSelectedCallback(pressedButton.CallbackData); + if (args.Button.Parent is SurgeryButton surgery) + { + _optionSelectedCallback(surgery.CallbackData); + } } } class SurgeryButton : PanelContainer { public Button Button { get; } + private SpriteView SpriteView { get; } + private Control EntityControl { get; } + private Label DisplayText { get; } + public int CallbackData { get; } public SurgeryButton(int callbackData) @@ -84,25 +94,28 @@ namespace Content.Client.Health.BodySystem.Surgery ToggleMode = true, MouseFilter = MouseFilterMode.Stop }; + AddChild(Button); - var hBoxContainer = new HBoxContainer(); - SpriteView = new SpriteView + + AddChild(new HBoxContainer { - CustomMinimumSize = new Vector2(32.0f, 32.0f) - }; - DisplayText = new Label - { - SizeFlagsVertical = SizeFlags.ShrinkCenter, - Text = "N/A", - }; - hBoxContainer.AddChild(SpriteView); - hBoxContainer.AddChild(DisplayText); - EntityControl = new Control - { - SizeFlagsHorizontal = SizeFlags.FillExpand - }; - hBoxContainer.AddChild(EntityControl); - AddChild(hBoxContainer); + Children = + { + (SpriteView = new SpriteView + { + CustomMinimumSize = new Vector2(32.0f, 32.0f) + }), + (DisplayText = new Label + { + SizeFlagsVertical = SizeFlags.ShrinkCenter, + Text = "N/A", + }), + (new Control + { + SizeFlagsHorizontal = SizeFlags.FillExpand + }) + } + }); } public void SetDisplayText(string text) diff --git a/Content.Client/GameObjects/Components/DamageableComponent.cs b/Content.Client/GameObjects/Components/DamageableComponent.cs deleted file mode 100644 index 2e42501894..0000000000 --- a/Content.Client/GameObjects/Components/DamageableComponent.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Collections.Generic; -using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.GameObjects; - -namespace Content.Client.GameObjects.Components -{ - /// - /// Fuck I really hate doing this - /// TODO: make sure the client only gets damageable component on the clientside entity for its player mob - /// - [RegisterComponent] - public class DamageableComponent : SharedDamageableComponent - { - /// - public override string Name => "Damageable"; - - public Dictionary CurrentDamage = new Dictionary(); - - public override void HandleComponentState(ComponentState curState, ComponentState nextState) - { - base.HandleComponentState(curState, nextState); - - if(curState is DamageComponentState damagestate) - { - CurrentDamage = damagestate.CurrentDamage; - } - } - } -} diff --git a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerBoundUserInterface.cs b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerBoundUserInterface.cs index 135a55f992..4b2fa2a1fc 100644 --- a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerBoundUserInterface.cs +++ b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerBoundUserInterface.cs @@ -1,9 +1,11 @@ +using JetBrains.Annotations; using Robust.Client.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects.Components.UserInterface; using static Content.Shared.GameObjects.Components.Medical.SharedMedicalScannerComponent; namespace Content.Client.GameObjects.Components.MedicalScanner { + [UsedImplicitly] public class MedicalScannerBoundUserInterface : BoundUserInterface { public MedicalScannerBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) diff --git a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs index 4f6eefb5d9..61adc113f2 100644 --- a/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs +++ b/Content.Client/GameObjects/Components/MedicalScanner/MedicalScannerWindow.cs @@ -1,6 +1,10 @@ using System.Text; +using Content.Shared.Damage; using Robust.Client.UserInterface.Controls; using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Maths; using static Content.Shared.GameObjects.Components.Medical.SharedMedicalScannerComponent; @@ -14,22 +18,36 @@ namespace Content.Client.GameObjects.Components.MedicalScanner { Contents.RemoveAllChildren(); var text = new StringBuilder(); - if (state.MaxHealth == 0) - { - text.Append("No patient data."); - } else - { - text.Append($"Patient's health: {state.CurrentHealth}/{state.MaxHealth}\n"); - if (state.DamageDictionary != null) + if (!state.Entity.HasValue || + !state.HasDamage() || + !IoCManager.Resolve().TryGetEntity(state.Entity.Value, out var entity)) + { + text.Append(Loc.GetString("No patient data.")); + } + else + { + text.Append($"{entity.Name}{Loc.GetString("'s health:")}\n"); + + foreach (var (@class, classAmount) in state.DamageClasses) { - foreach (var (dmgType, amount) in state.DamageDictionary) + text.Append($"\n{Loc.GetString("{0}: {1}", @class, classAmount)}"); + + foreach (var type in @class.ToTypes()) { - text.Append($"\n{dmgType}: {amount}"); + if (!state.DamageTypes.TryGetValue(type, out var typeAmount)) + { + continue; + } + + text.Append($"\n- {Loc.GetString("{0}: {1}", type, typeAmount)}"); } + + text.Append("\n"); } } - Contents.AddChild(new Label(){Text = text.ToString()}); + + Contents.AddChild(new Label() {Text = text.ToString()}); } } } diff --git a/Content.Client/GameObjects/Components/Mobs/HumanoidAppearanceComponent.cs b/Content.Client/GameObjects/Components/Mobs/HumanoidAppearanceComponent.cs index 44b4b7e4ce..0ddf3f175a 100644 --- a/Content.Client/GameObjects/Components/Mobs/HumanoidAppearanceComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/HumanoidAppearanceComponent.cs @@ -44,8 +44,8 @@ namespace Content.Client.GameObjects.Components.Mobs sprite.LayerSetColor(HumanoidVisualLayers.Hair, Appearance.HairColor); sprite.LayerSetColor(HumanoidVisualLayers.FacialHair, Appearance.FacialHairColor); - sprite.LayerSetState(HumanoidVisualLayers.Chest, Sex == Sex.Male ? "human_chest_m" : "human_chest_f"); - sprite.LayerSetState(HumanoidVisualLayers.Head, Sex == Sex.Male ? "human_head_m" : "human_head_f"); + sprite.LayerSetState(HumanoidVisualLayers.Chest, Sex == Sex.Male ? "torso_m" : "torso_f"); + sprite.LayerSetState(HumanoidVisualLayers.Head, Sex == Sex.Male ? "head_m" : "head_f"); sprite.LayerSetVisible(HumanoidVisualLayers.StencilMask, Sex == Sex.Female); diff --git a/Content.Client/GameObjects/Components/Mobs/SpeciesComponent.cs b/Content.Client/GameObjects/Components/Mobs/SpeciesComponent.cs deleted file mode 100644 index 6500134159..0000000000 --- a/Content.Client/GameObjects/Components/Mobs/SpeciesComponent.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Content.Client.GameObjects.Components.Disposal; -using Content.Client.Interfaces.GameObjects.Components.Interaction; -using Content.Shared.GameObjects.Components.Mobs; -using Robust.Shared.GameObjects; - -namespace Content.Client.GameObjects.Components.Mobs -{ - [RegisterComponent] - [ComponentReference(typeof(SharedSpeciesComponent))] - public class SpeciesComponent : SharedSpeciesComponent, IClientDraggable - { - bool IClientDraggable.ClientCanDropOn(CanDropEventArgs eventArgs) - { - return eventArgs.Target.HasComponent(); - } - - bool IClientDraggable.ClientCanDrag(CanDragEventArgs eventArgs) - { - return true; - } - } -} diff --git a/Content.Client/GameObjects/Components/Mobs/SpeciesVisualizer.cs b/Content.Client/GameObjects/Components/Rotation/RotationVisualizer.cs similarity index 81% rename from Content.Client/GameObjects/Components/Mobs/SpeciesVisualizer.cs rename to Content.Client/GameObjects/Components/Rotation/RotationVisualizer.cs index cc2e60b92e..d78cf08a33 100644 --- a/Content.Client/GameObjects/Components/Mobs/SpeciesVisualizer.cs +++ b/Content.Client/GameObjects/Components/Rotation/RotationVisualizer.cs @@ -1,5 +1,6 @@ using System; -using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Rotation; +using JetBrains.Annotations; using Robust.Client.Animations; using Robust.Client.GameObjects; using Robust.Client.GameObjects.Components.Animations; @@ -7,22 +8,23 @@ using Robust.Client.Interfaces.GameObjects.Components; using Robust.Shared.Animations; using Robust.Shared.Maths; -namespace Content.Client.GameObjects.Components.Mobs +namespace Content.Client.GameObjects.Components.Rotation { - public class SpeciesVisualizer : AppearanceVisualizer + [UsedImplicitly] + public class RotationVisualizer : AppearanceVisualizer { public override void OnChangeData(AppearanceComponent component) { base.OnChangeData(component); - if (component.TryGetData(SharedSpeciesComponent.MobVisuals.RotationState, out var state)) + if (component.TryGetData(RotationVisuals.RotationState, out var state)) { switch (state) { - case SharedSpeciesComponent.MobState.Standing: + case RotationState.Vertical: SetRotation(component, 0); break; - case SharedSpeciesComponent.MobState.Down: + case RotationState.Horizontal: SetRotation(component, Angle.FromDegrees(90)); break; } @@ -40,7 +42,9 @@ namespace Content.Client.GameObjects.Components.Mobs } if (animation.HasRunningAnimation("rotate")) + { animation.Stop("rotate"); + } animation.Play(new Animation { diff --git a/Content.Client/Health/BodySystem/BodyScanner/BodyScannerDisplay.cs b/Content.Client/Health/BodySystem/BodyScanner/BodyScannerDisplay.cs deleted file mode 100644 index d997c73216..0000000000 --- a/Content.Client/Health/BodySystem/BodyScanner/BodyScannerDisplay.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System.Collections.Generic; -using System.Globalization; -using Content.Shared.Health.BodySystem.BodyScanner; -using Robust.Client.UserInterface.Controls; -using Robust.Client.UserInterface.CustomControls; -using Robust.Shared.IoC; -using Robust.Shared.Localization; -using Robust.Shared.Maths; -using static Robust.Client.UserInterface.Controls.ItemList; - -namespace Content.Client.Health.BodySystem.BodyScanner -{ - public sealed class BodyScannerDisplay : SS14Window - { - #pragma warning disable 649 - [Dependency] private readonly ILocalizationManager _loc; - #pragma warning restore 649 - - public BodyScannerBoundUserInterface Owner { get; private set; } - protected override Vector2? CustomSize => (800, 600); - private ItemList BodyPartList { get; } - private Label BodyPartLabel { get; } - private Label BodyPartHealth { get; } - private ItemList MechanismList { get; } - private RichTextLabel MechanismInfoLabel { get; } - - - private BodyScannerTemplateData _template; - private Dictionary _parts; - private List _slots; - private BodyScannerBodyPartData _currentBodyPart; - - - public BodyScannerDisplay(BodyScannerBoundUserInterface owner) - { - IoCManager.InjectDependencies(this); - Owner = owner; - Title = _loc.GetString("Body Scanner"); - - var hSplit = new HBoxContainer(); - Contents.AddChild(hSplit); - - //Left half - var scrollBox = new ScrollContainer - { - SizeFlagsHorizontal = SizeFlags.FillExpand, - }; - hSplit.AddChild(scrollBox); - BodyPartList = new ItemList { }; - scrollBox.AddChild(BodyPartList); - BodyPartList.OnItemSelected += BodyPartOnItemSelected; - - //Right half - var vSplit = new VBoxContainer - { - SizeFlagsHorizontal = SizeFlags.FillExpand, - }; - hSplit.AddChild(vSplit); - - //Top half of the right half - var limbBox = new VBoxContainer - { - SizeFlagsVertical = SizeFlags.FillExpand - }; - vSplit.AddChild(limbBox); - BodyPartLabel = new Label(); - limbBox.AddChild(BodyPartLabel); - var limbHealthHBox = new HBoxContainer(); - limbBox.AddChild(limbHealthHBox); - var healthLabel = new Label - { - Text = "Health: " - }; - limbHealthHBox.AddChild(healthLabel); - BodyPartHealth = new Label(); - limbHealthHBox.AddChild(BodyPartHealth); - var limbScroll = new ScrollContainer - { - SizeFlagsVertical = SizeFlags.FillExpand - }; - limbBox.AddChild(limbScroll); - MechanismList = new ItemList(); - limbScroll.AddChild(MechanismList); - MechanismList.OnItemSelected += MechanismOnItemSelected; - - //Bottom half of the right half - MechanismInfoLabel = new RichTextLabel - { - SizeFlagsVertical = SizeFlags.FillExpand - }; - vSplit.AddChild(MechanismInfoLabel); - } - - - public void UpdateDisplay(BodyScannerTemplateData template, Dictionary parts) - { - _template = template; - _parts = parts; - _slots = new List(); - BodyPartList.Clear(); - foreach (var (key, value) in _parts) - { - _slots.Add(key); //We have to do this since ItemLists only return the index of what item is selected and dictionaries don't allow you to explicitly grab things by index. - //So we put the contents of the dictionary into a list so that we can grab the list by index. I don't know either. - BodyPartList.AddItem(CultureInfo.CurrentCulture.TextInfo.ToTitleCase(key)); - } - } - - - public void BodyPartOnItemSelected(ItemListSelectedEventArgs args) - { - if(_parts.TryGetValue(_slots[args.ItemIndex], out _currentBodyPart)) { - UpdateBodyPartBox(_currentBodyPart, _slots[args.ItemIndex]); - } - } - private void UpdateBodyPartBox(BodyScannerBodyPartData part, string slotName) - { - BodyPartLabel.Text = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(slotName) + ": " + CultureInfo.CurrentCulture.TextInfo.ToTitleCase(part.Name); - BodyPartHealth.Text = part.CurrentDurability + "/" + part.MaxDurability; - - MechanismList.Clear(); - foreach (var mechanism in part.Mechanisms) { - MechanismList.AddItem(mechanism.Name); - } - } - - - public void MechanismOnItemSelected(ItemListSelectedEventArgs args) - { - UpdateMechanismBox(_currentBodyPart.Mechanisms[args.ItemIndex]); - } - private void UpdateMechanismBox(BodyScannerMechanismData mechanism) - { - //TODO: Make UI look less shit and clean up whatever the fuck this is lmao - if (mechanism != null) - { - string message = ""; - message += mechanism.Name; - message += "\nHealth: "; - message += mechanism.CurrentDurability; - message += "/"; - message += mechanism.MaxDurability; - message += "\n"; - message += mechanism.Description; - MechanismInfoLabel.SetMessage(message); - } - else - { - MechanismInfoLabel.SetMessage(""); - } - } - - - } -} diff --git a/Content.Client/IgnoredComponents.cs b/Content.Client/IgnoredComponents.cs index 5169e4a189..a032972f02 100644 --- a/Content.Client/IgnoredComponents.cs +++ b/Content.Client/IgnoredComponents.cs @@ -96,7 +96,6 @@ "BarSign", "DroppedBodyPart", "DroppedMechanism", - "BodyManager", "SolarPanel", "BodyScanner", "Stunbaton", @@ -157,6 +156,7 @@ "Vapor", "DamageOnHighSpeedImpact", "Barotrauma", + "MobStateManager", }; } } diff --git a/Content.Server/AI/Utility/AiLogic/UtilityAI.cs b/Content.Server/AI/Utility/AiLogic/UtilityAI.cs index 005a30a9bc..6c15106012 100644 --- a/Content.Server/AI/Utility/AiLogic/UtilityAI.cs +++ b/Content.Server/AI/Utility/AiLogic/UtilityAI.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading; using Content.Server.AI.Operators; @@ -6,10 +6,9 @@ using Content.Server.AI.Utility.Actions; using Content.Server.AI.Utility.BehaviorSets; using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States.Utility; -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems.AI.LoadBalancer; using Content.Server.GameObjects.EntitySystems.JobQueues; +using Content.Shared.GameObjects.Components.Damage; using Robust.Server.AI; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; @@ -114,39 +113,27 @@ namespace Content.Server.AI.Utility.AiLogic _planCooldownRemaining = PlanCooldown; _blackboard = new Blackboard(SelfEntity); _planner = IoCManager.Resolve().GetEntitySystem(); - if (SelfEntity.TryGetComponent(out DamageableComponent damageableComponent)) + if (SelfEntity.TryGetComponent(out IDamageableComponent damageableComponent)) { - damageableComponent.DamageThresholdPassed += DamageThresholdHandle; + damageableComponent.HealthChangedEvent += DeathHandle; } } public override void Shutdown() { // TODO: If DamageableComponent removed still need to unsubscribe? - if (SelfEntity.TryGetComponent(out DamageableComponent damageableComponent)) + if (SelfEntity.TryGetComponent(out IDamageableComponent damageableComponent)) { - damageableComponent.DamageThresholdPassed -= DamageThresholdHandle; + damageableComponent.HealthChangedEvent -= DeathHandle; } var currentOp = CurrentAction?.ActionOperators.Peek(); currentOp?.Shutdown(Outcome.Failed); } - private void DamageThresholdHandle(object sender, DamageThresholdPassedEventArgs eventArgs) + private void DeathHandle(HealthChangedEventArgs eventArgs) { - if (!SelfEntity.TryGetComponent(out SpeciesComponent speciesComponent)) - { - return; - } - - if (speciesComponent.CurrentDamageState is DeadState) - { - _isDead = true; - } - else - { - _isDead = false; - } + _isDead = eventArgs.Damageable.CurrentDamageState == DamageState.Dead || eventArgs.Damageable.CurrentDamageState == DamageState.Critical; } private void ReceivedAction() diff --git a/Content.Server/AI/Utility/Considerations/Combat/TargetHealthCon.cs b/Content.Server/AI/Utility/Considerations/Combat/TargetHealthCon.cs index 8e70bb9200..64fce8bf56 100644 --- a/Content.Server/AI/Utility/Considerations/Combat/TargetHealthCon.cs +++ b/Content.Server/AI/Utility/Considerations/Combat/TargetHealthCon.cs @@ -1,4 +1,4 @@ -using Content.Server.AI.WorldState; +using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; using Content.Server.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Damage; @@ -11,13 +11,12 @@ namespace Content.Server.AI.Utility.Considerations.Combat { var target = context.GetState().GetValue(); - if (target == null || !target.TryGetComponent(out DamageableComponent damageableComponent)) + if (target == null || !target.TryGetComponent(out IDamageableComponent damageableComponent)) { return 0.0f; } - // Just went with max health - return damageableComponent.CurrentDamage[DamageType.Total] / 300.0f; + return damageableComponent.TotalDamage / 300.0f; } } } diff --git a/Content.Server/AI/Utility/Considerations/Combat/TargetIsCritCon.cs b/Content.Server/AI/Utility/Considerations/Combat/TargetIsCritCon.cs index 97ed516326..856a53958d 100644 --- a/Content.Server/AI/Utility/Considerations/Combat/TargetIsCritCon.cs +++ b/Content.Server/AI/Utility/Considerations/Combat/TargetIsCritCon.cs @@ -1,6 +1,6 @@ -using Content.Server.AI.WorldState; +using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; -using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Damage; namespace Content.Server.AI.Utility.Considerations.Combat { @@ -10,12 +10,12 @@ namespace Content.Server.AI.Utility.Considerations.Combat { var target = context.GetState().GetValue(); - if (target == null || !target.TryGetComponent(out SpeciesComponent speciesComponent)) + if (target == null || !target.TryGetComponent(out IDamageableComponent damageableComponent)) { return 0.0f; } - if (speciesComponent.CurrentDamageState is CriticalState) + if (damageableComponent.CurrentDamageState == DamageState.Critical) { return 1.0f; } diff --git a/Content.Server/AI/Utility/Considerations/Combat/TargetIsDeadCon.cs b/Content.Server/AI/Utility/Considerations/Combat/TargetIsDeadCon.cs index e973538e79..d4d582e6b1 100644 --- a/Content.Server/AI/Utility/Considerations/Combat/TargetIsDeadCon.cs +++ b/Content.Server/AI/Utility/Considerations/Combat/TargetIsDeadCon.cs @@ -1,6 +1,6 @@ -using Content.Server.AI.WorldState; +using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; -using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Damage; namespace Content.Server.AI.Utility.Considerations.Combat { @@ -10,12 +10,12 @@ namespace Content.Server.AI.Utility.Considerations.Combat { var target = context.GetState().GetValue(); - if (target == null || !target.TryGetComponent(out SpeciesComponent speciesComponent)) + if (target == null || !target.TryGetComponent(out IDamageableComponent damageableComponent)) { return 0.0f; } - if (speciesComponent.CurrentDamageState is DeadState) + if (damageableComponent.CurrentDamageState == DamageState.Dead) { return 1.0f; } diff --git a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbyPlayerExp.cs b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbyPlayerExp.cs index b54aed6274..cde979be3e 100644 --- a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbyPlayerExp.cs +++ b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbyPlayerExp.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Content.Server.AI.Utility.Actions; using Content.Server.AI.Utility.Actions.Combat.Melee; @@ -7,8 +7,8 @@ using Content.Server.AI.Utility.Considerations.Combat.Melee; using Content.Server.AI.Utils; using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Movement; +using Content.Shared.GameObjects.Components.Damage; using Robust.Server.GameObjects; using Robust.Shared.IoC; @@ -37,7 +37,7 @@ namespace Content.Server.AI.Utility.ExpandableActions.Combat.Melee throw new InvalidOperationException(); } - foreach (var entity in Visibility.GetEntitiesInRange(owner.Transform.GridPosition, typeof(SpeciesComponent), + foreach (var entity in Visibility.GetEntitiesInRange(owner.Transform.GridPosition, typeof(IDamageableComponent), controller.VisionRadius)) { if (entity.HasComponent() && entity != owner) diff --git a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbySpeciesExp.cs b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbySpeciesExp.cs index 29937b0270..bd78ab74ec 100644 --- a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbySpeciesExp.cs +++ b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/MeleeAttackNearbySpeciesExp.cs @@ -15,7 +15,7 @@ namespace Content.Server.AI.Utility.ExpandableActions.Combat.Melee { var owner = context.GetState().GetValue(); - foreach (var entity in context.GetState().GetValue()) + foreach (var entity in context.GetState().GetValue()) { yield return new MeleeWeaponAttackEntity(owner, entity, Bonus); } diff --git a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/UnarmedAttackNearbyPlayerExp.cs b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/UnarmedAttackNearbyPlayerExp.cs index 74696e13e5..46f1f79479 100644 --- a/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/UnarmedAttackNearbyPlayerExp.cs +++ b/Content.Server/AI/Utility/ExpandableActions/Combat/Melee/UnarmedAttackNearbyPlayerExp.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using Content.Server.AI.Utility.Actions; using Content.Server.AI.Utility.Actions.Combat.Melee; @@ -7,8 +7,8 @@ using Content.Server.AI.Utility.Considerations.Combat.Melee; using Content.Server.AI.Utils; using Content.Server.AI.WorldState; using Content.Server.AI.WorldState.States; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Movement; +using Content.Shared.GameObjects.Components.Body; using Robust.Server.GameObjects; using Robust.Shared.IoC; @@ -37,7 +37,7 @@ namespace Content.Server.AI.Utility.ExpandableActions.Combat.Melee throw new InvalidOperationException(); } - foreach (var entity in Visibility.GetEntitiesInRange(owner.Transform.GridPosition, typeof(SpeciesComponent), + foreach (var entity in Visibility.GetEntitiesInRange(owner.Transform.GridPosition, typeof(IBodyManagerComponent), controller.VisionRadius)) { if (entity.HasComponent() && entity != owner) diff --git a/Content.Server/AI/WorldState/States/Mobs/NearbySpeciesState.cs b/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs similarity index 70% rename from Content.Server/AI/WorldState/States/Mobs/NearbySpeciesState.cs rename to Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs index a72786d326..2554c4cf53 100644 --- a/Content.Server/AI/WorldState/States/Mobs/NearbySpeciesState.cs +++ b/Content.Server/AI/WorldState/States/Mobs/NearbyBodiesState.cs @@ -1,16 +1,16 @@ -using System.Collections.Generic; +using System.Collections.Generic; using Content.Server.AI.Utils; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Movement; +using Content.Shared.GameObjects.Components.Body; using JetBrains.Annotations; using Robust.Shared.Interfaces.GameObjects; namespace Content.Server.AI.WorldState.States.Mobs { [UsedImplicitly] - public sealed class NearbySpeciesState : CachedStateData> + public sealed class NearbyBodiesState : CachedStateData> { - public override string Name => "NearbySpecies"; + public override string Name => "NearbyBodies"; protected override List GetTrueValue() { @@ -21,7 +21,7 @@ namespace Content.Server.AI.WorldState.States.Mobs return result; } - foreach (var entity in Visibility.GetEntitiesInRange(Owner.Transform.GridPosition, typeof(SpeciesComponent), controller.VisionRadius)) + foreach (var entity in Visibility.GetEntitiesInRange(Owner.Transform.GridPosition, typeof(IBodyManagerComponent), controller.VisionRadius)) { if (entity == Owner) continue; result.Add(entity); diff --git a/Content.Server/AI/WorldState/States/Mobs/NearbyPlayersState.cs b/Content.Server/AI/WorldState/States/Mobs/NearbyPlayersState.cs index f1c7bbae1a..1ba739e3aa 100644 --- a/Content.Server/AI/WorldState/States/Mobs/NearbyPlayersState.cs +++ b/Content.Server/AI/WorldState/States/Mobs/NearbyPlayersState.cs @@ -1,6 +1,6 @@ -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Mobs; +using System.Collections.Generic; using Content.Server.GameObjects.Components.Movement; +using Content.Shared.GameObjects.Components.Damage; using JetBrains.Annotations; using Robust.Server.Interfaces.Player; using Robust.Shared.Interfaces.GameObjects; @@ -27,7 +27,7 @@ namespace Content.Server.AI.WorldState.States.Mobs foreach (var player in nearbyPlayers) { - if (player.AttachedEntity != Owner && player.AttachedEntity.HasComponent()) + if (player.AttachedEntity != Owner && player.AttachedEntity.HasComponent()) { result.Add(player.AttachedEntity); } diff --git a/Content.Server/Body/BodyCommands.cs b/Content.Server/Body/BodyCommands.cs new file mode 100644 index 0000000000..89d6355203 --- /dev/null +++ b/Content.Server/Body/BodyCommands.cs @@ -0,0 +1,147 @@ +#nullable enable +using System.Linq; +using Content.Server.GameObjects.Components.Body; +using Content.Shared.Body.Part; +using Content.Shared.GameObjects.Components.Body; +using Robust.Server.Interfaces.Console; +using Robust.Server.Interfaces.Player; +using Robust.Shared.Interfaces.Random; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; +using Robust.Shared.Random; + +namespace Content.Server.Body +{ + class AddHandCommand : IClientCommand + { + public string Command => "addhand"; + public string Description => "Adds a hand to your entity."; + public string Help => $"Usage: {Command}"; + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (player == null) + { + shell.SendText(player, "Only a player can run this command."); + return; + } + + if (player.AttachedEntity == null) + { + shell.SendText(player, "You have no entity."); + return; + } + + if (!player.AttachedEntity.TryGetComponent(out BodyManagerComponent body)) + { + var random = IoCManager.Resolve(); + var text = $"You have no body{(random.Prob(0.2f) ? " and you must scream." : ".")}"; + + shell.SendText(player, text); + return; + } + + var prototypeManager = IoCManager.Resolve(); + prototypeManager.TryIndex("bodyPart.Hand.BasicHuman", out BodyPartPrototype prototype); + + var part = new BodyPart(prototype); + var slot = part.GetHashCode().ToString(); + + body.Template.Slots.Add(slot, BodyPartType.Hand); + body.InstallBodyPart(part, slot); + } + } + + class RemoveHandCommand : IClientCommand + { + public string Command => "removehand"; + public string Description => "Removes a hand from your entity."; + public string Help => $"Usage: {Command}"; + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (player == null) + { + shell.SendText(player, "Only a player can run this command."); + return; + } + + if (player.AttachedEntity == null) + { + shell.SendText(player, "You have no entity."); + return; + } + + if (!player.AttachedEntity.TryGetComponent(out BodyManagerComponent body)) + { + var random = IoCManager.Resolve(); + var text = $"You have no body{(random.Prob(0.2f) ? " and you must scream." : ".")}"; + + shell.SendText(player, text); + return; + } + + var hand = body.Parts.FirstOrDefault(x => x.Value.PartType == BodyPartType.Hand); + if (hand.Value == null) + { + shell.SendText(player, "You have no hands."); + } + else + { + body.DisconnectBodyPart(hand.Value, true); + } + } + } + + class DestroyMechanismCommand : IClientCommand + { + public string Command => "destroymechanism"; + public string Description => "Destroys a mechanism from your entity"; + public string Help => $"Usage: {Command} "; + + public void Execute(IConsoleShell shell, IPlayerSession? player, string[] args) + { + if (player == null) + { + shell.SendText(player, "Only a player can run this command."); + return; + } + + if (args.Length == 0) + { + shell.SendText(player, Help); + return; + } + + if (player.AttachedEntity == null) + { + shell.SendText(player, "You have no entity."); + return; + } + + if (!player.AttachedEntity.TryGetComponent(out BodyManagerComponent body)) + { + var random = IoCManager.Resolve(); + var text = $"You have no body{(random.Prob(0.2f) ? " and you must scream." : ".")}"; + + shell.SendText(player, text); + return; + } + + var mechanismName = string.Join(" ", args).ToLowerInvariant(); + + foreach (var part in body.Parts.Values) + foreach (var mechanism in part.Mechanisms) + { + if (mechanism.Name.ToLowerInvariant() == mechanismName) + { + part.DestroyMechanism(mechanism); + shell.SendText(player, $"Mechanism with name {mechanismName} has been destroyed."); + return; + } + } + + shell.SendText(player, $"No mechanism was found with name {mechanismName}."); + } + } +} diff --git a/Content.Server/Body/BodyPart.cs b/Content.Server/Body/BodyPart.cs new file mode 100644 index 0000000000..32121f056a --- /dev/null +++ b/Content.Server/Body/BodyPart.cs @@ -0,0 +1,602 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Server.Body.Mechanisms; +using Content.Server.Body.Surgery; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Metabolism; +using Content.Shared.Body.Mechanism; +using Content.Shared.Body.Part; +using Content.Shared.Body.Part.Properties; +using Content.Shared.Damage.DamageContainer; +using Content.Shared.Damage.ResistanceSet; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Server.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Reflection; +using Robust.Shared.Interfaces.Serialization; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Map; +using Robust.Shared.Maths; +using Robust.Shared.Prototypes; +using Robust.Shared.Utility; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Body +{ + /// + /// Data class representing a singular limb such as an arm or a leg. + /// Typically held within either a , + /// which coordinates functions between BodyParts, or a + /// . + /// + public class BodyPart + { + /// + /// The body that this body part is in, if any. + /// + private BodyManagerComponent? _body; + + /// + /// Set of all currently inside this + /// . + /// To add and remove from this list see and + /// + /// + private readonly HashSet _mechanisms = new HashSet(); + + public BodyPart(BodyPartPrototype data) + { + SurgeryData = null!; + Properties = new HashSet(); + Name = null!; + Plural = null!; + RSIPath = null!; + RSIState = null!; + RSIMap = null!; + Damage = null!; + Resistances = null!; + + LoadFromPrototype(data); + } + + /// + /// The body that this body part is in, if any. + /// + [ViewVariables] + public BodyManagerComponent? Body + { + get => _body; + set + { + var old = _body; + _body = value; + + if (value == null && old != null) + { + foreach (var mechanism in Mechanisms) + { + mechanism.RemovedFromBody(old); + } + } + else + { + foreach (var mechanism in Mechanisms) + { + mechanism.InstalledIntoBody(); + } + } + } + } + + /// + /// The class currently representing this BodyPart's + /// surgery status. + /// + [ViewVariables] private SurgeryData SurgeryData { get; set; } + + /// + /// How much space is currently taken up by Mechanisms in this BodyPart. + /// + [ViewVariables] private int SizeUsed { get; set; } + + /// + /// List of properties, allowing for additional + /// data classes to be attached to a limb, such as a "length" class to an arm. + /// + [ViewVariables] + private HashSet Properties { get; } + + /// + /// The name of this , often displayed to the user. + /// For example, it could be named "advanced robotic arm". + /// + [ViewVariables] + public string Name { get; private set; } + + /// + /// Plural version of this name. + /// + [ViewVariables] + public string Plural { get; private set; } + + /// + /// Path to the RSI that represents this . + /// + [ViewVariables] + public string RSIPath { get; private set; } + + /// + /// RSI state that represents this . + /// + [ViewVariables] + public string RSIState { get; private set; } + + /// + /// RSI map keys that this body part changes on the sprite. + /// + [ViewVariables] + public Enum? RSIMap { get; set; } + + /// + /// RSI color of this body part. + /// + // TODO: SpriteComponent rework + public Color? RSIColor { get; set; } + + /// + /// that this is considered + /// to be. + /// For example, . + /// + [ViewVariables] + public BodyPartType PartType { get; private set; } + + /// + /// Determines many things: how many mechanisms can be fit inside this + /// , whether a body can fit through tiny crevices, etc. + /// + [ViewVariables] + private int Size { get; set; } + + /// + /// Max HP of this . + /// + [ViewVariables] + public int MaxDurability { get; private set; } + + /// + /// Current HP of this based on sum of all damage types. + /// + [ViewVariables] + public int CurrentDurability => MaxDurability - Damage.TotalDamage; + + // TODO: Individual body part damage + /// + /// Current damage dealt to this . + /// + [ViewVariables] + public DamageContainer Damage { get; private set; } + + /// + /// Armor of this against damages. + /// + [ViewVariables] + public ResistanceSet Resistances { get; private set; } + + /// + /// At what HP this destroyed. + /// + [ViewVariables] + public int DestroyThreshold { get; private set; } + + /// + /// What types of BodyParts this can easily attach to. + /// For the most part, most limbs aren't universal and require extra work to + /// attach between types. + /// + [ViewVariables] + public BodyPartCompatibility Compatibility { get; private set; } + + /// + /// Set of all currently inside this + /// . + /// + [ViewVariables] + public IReadOnlyCollection Mechanisms => _mechanisms; + + /// + /// This method is called by + /// before is called. + /// + public void PreMetabolism(float frameTime) + { + foreach (var mechanism in Mechanisms) + { + mechanism.PreMetabolism(frameTime); + } + } + + /// + /// This method is called by + /// after is called. + /// + public void PostMetabolism(float frameTime) + { + foreach (var mechanism in Mechanisms) + { + mechanism.PreMetabolism(frameTime); + } + } + + /// + /// Attempts to add the given . + /// + /// + /// True if a of that type doesn't exist, + /// false otherwise. + /// + public bool TryAddProperty(BodyPartProperty property) + { + if (HasProperty(property.GetType())) + { + return false; + } + + Properties.Add(property); + return true; + } + + /// + /// Attempts to retrieve the given type. + /// The resulting will be null if unsuccessful. + /// + /// The property if found, null otherwise. + /// The type of the property to find. + /// True if successful, false otherwise. + public bool TryGetProperty(out T property) + { + property = (T) Properties.First(x => x.GetType() == typeof(T)); + return property != null; + } + + /// + /// Attempts to retrieve the given type. + /// The resulting will be null if unsuccessful. + /// + /// True if successful, false otherwise. + public bool TryGetProperty(Type propertyType, out BodyPartProperty property) + { + property = (BodyPartProperty) Properties.First(x => x.GetType() == propertyType); + return property != null; + } + + /// + /// Checks if the given type is on this . + /// + /// + /// The subtype of to look for. + /// + /// + /// True if this has a property of type + /// , false otherwise. + /// + public bool HasProperty() where T : BodyPartProperty + { + return Properties.Count(x => x.GetType() == typeof(T)) > 0; + } + + /// + /// Checks if a subtype of is on this + /// . + /// + /// + /// The subtype of to look for. + /// + /// + /// True if this has a property of type + /// , false otherwise. + /// + public bool HasProperty(Type propertyType) + { + return Properties.Count(x => x.GetType() == propertyType) > 0; + } + + /// + /// Checks if another can be connected to this one. + /// + /// The part to connect. + /// True if it can be connected, false otherwise. + public bool CanAttachBodyPart(BodyPart toBeConnected) + { + return SurgeryData.CanAttachBodyPart(toBeConnected); + } + + /// + /// Checks if a can be installed on this + /// . + /// + /// True if it can be installed, false otherwise. + public bool CanInstallMechanism(Mechanism mechanism) + { + return SizeUsed + mechanism.Size <= Size && + SurgeryData.CanInstallMechanism(mechanism); + } + + /// + /// Tries to install a mechanism onto this body part. + /// Call instead if you want to + /// easily install an with a + /// . + /// + /// The mechanism to try to install. + /// + /// True if successful, false if there was an error + /// (e.g. not enough room in ). + /// + private bool TryInstallMechanism(Mechanism mechanism) + { + if (!CanInstallMechanism(mechanism)) + { + return false; + } + + AddMechanism(mechanism); + + return true; + } + + /// + /// Tries to install a into this + /// , potentially deleting the dropped + /// . + /// + /// The mechanism to install. + /// + /// True if successful, false if there was an error + /// (e.g. not enough room in ). + /// + public bool TryInstallDroppedMechanism(DroppedMechanismComponent droppedMechanism) + { + if (!TryInstallMechanism(droppedMechanism.ContainedMechanism)) + { + return false; //Installing the mechanism failed for some reason. + } + + droppedMechanism.Owner.Delete(); + return true; + } + + /// + /// Tries to remove the given reference from + /// this . + /// + /// + /// The newly spawned , or null + /// if there was an error in spawning the entity or removing the mechanism. + /// + public bool TryDropMechanism(IEntity dropLocation, Mechanism mechanismTarget, + [NotNullWhen(true)] out DroppedMechanismComponent dropped) + { + dropped = null!; + + if (!_mechanisms.Remove(mechanismTarget)) + { + return false; + } + + SizeUsed -= mechanismTarget.Size; + + var entityManager = IoCManager.Resolve(); + var position = dropLocation.Transform.GridPosition; + var mechanismEntity = entityManager.SpawnEntity("BaseDroppedMechanism", position); + + dropped = mechanismEntity.GetComponent(); + dropped.InitializeDroppedMechanism(mechanismTarget); + + return true; + } + + /// + /// Tries to destroy the given in this + /// . Does NOT spawn a dropped entity. + /// + /// + /// Tries to destroy the given in this + /// . + /// + /// The mechanism to destroy. + /// True if successful, false otherwise. + public bool DestroyMechanism(Mechanism mechanismTarget) + { + if (!RemoveMechanism(mechanismTarget)) + { + return false; + } + + return true; + } + + /// + /// Checks if the given can be used on + /// the current state of this . + /// + /// True if it can be used, false otherwise. + public bool SurgeryCheck(SurgeryType toolType) + { + return SurgeryData.CheckSurgery(toolType); + } + + /// + /// Attempts to perform surgery on this with the given + /// tool. + /// + /// True if successful, false if there was an error. + public bool AttemptSurgery(SurgeryType toolType, IBodyPartContainer target, ISurgeon surgeon, IEntity performer) + { + return SurgeryData.PerformSurgery(toolType, target, surgeon, performer); + } + + private void AddMechanism(Mechanism mechanism) + { + DebugTools.AssertNotNull(mechanism); + + _mechanisms.Add(mechanism); + SizeUsed += mechanism.Size; + mechanism.Part = this; + + mechanism.EnsureInitialize(); + + if (Body == null) + { + return; + } + + if (!Body.Template.MechanismLayers.TryGetValue(mechanism.Id, out var mapString)) + { + return; + } + + if (!IoCManager.Resolve().TryParseEnumReference(mapString, out var @enum)) + { + Logger.Warning($"Template {Body.Template.Name} has an invalid RSI map key {mapString} for mechanism {mechanism.Id}."); + return; + } + + var message = new MechanismSpriteAddedMessage(@enum); + + Body.Owner.SendNetworkMessage(Body, message); + } + + /// + /// Tries to remove the given from this + /// . + /// + /// The mechanism to remove. + /// True if it was removed, false otherwise. + private bool RemoveMechanism(Mechanism mechanism) + { + DebugTools.AssertNotNull(mechanism); + + if (!_mechanisms.Remove(mechanism)) + { + return false; + } + + SizeUsed -= mechanism.Size; + mechanism.Part = null; + + if (Body == null) + { + return true; + } + + if (!Body.Template.MechanismLayers.TryGetValue(mechanism.Id, out var mapString)) + { + return true; + } + + if (!IoCManager.Resolve().TryParseEnumReference(mapString, out var @enum)) + { + Logger.Warning($"Template {Body.Template.Name} has an invalid RSI map key {mapString} for mechanism {mechanism.Id}."); + return true; + } + + var message = new MechanismSpriteRemovedMessage(@enum); + + Body.Owner.SendNetworkMessage(Body, message); + + return true; + } + + /// + /// Loads the given . + /// Current data on this will be overwritten! + /// + protected virtual void LoadFromPrototype(BodyPartPrototype data) + { + var prototypeManager = IoCManager.Resolve(); + + Name = data.Name; + Plural = data.Plural; + PartType = data.PartType; + RSIPath = data.RSIPath; + RSIState = data.RSIState; + MaxDurability = data.Durability; + + if (!prototypeManager.TryIndex(data.DamageContainerPresetId, + out DamageContainerPrototype damageContainerData)) + { + throw new InvalidOperationException( + $"No {nameof(DamageContainerPrototype)} found with id {data.DamageContainerPresetId}"); + } + + Damage = new DamageContainer(OnHealthChanged, damageContainerData); + + if (!prototypeManager.TryIndex(data.ResistanceSetId, out ResistanceSetPrototype resistancesData)) + { + throw new InvalidOperationException( + $"No {nameof(ResistanceSetPrototype)} found with id {data.ResistanceSetId}"); + } + + Resistances = new ResistanceSet(resistancesData); + Size = data.Size; + Compatibility = data.Compatibility; + + Properties.Clear(); + Properties.UnionWith(data.Properties); + + var surgeryDataType = Type.GetType(data.SurgeryDataName); + + if (surgeryDataType == null) + { + throw new InvalidOperationException($"No {nameof(Surgery.SurgeryData)} found with name {data.SurgeryDataName}"); + } + + if (!surgeryDataType.IsSubclassOf(typeof(SurgeryData))) + { + throw new InvalidOperationException( + $"Class {data.SurgeryDataName} is not a subtype of {nameof(Surgery.SurgeryData)} with id {data.ID}"); + } + + SurgeryData = IoCManager.Resolve().CreateInstance(surgeryDataType, new object[] {this}); + + foreach (var id in data.Mechanisms) + { + if (!prototypeManager.TryIndex(id, out MechanismPrototype mechanismData)) + { + throw new InvalidOperationException($"No {nameof(MechanismPrototype)} found with id {id}"); + } + + var mechanism = new Mechanism(mechanismData); + + AddMechanism(mechanism); + } + } + + private void OnHealthChanged(List changes) + { + // TODO + } + + public bool SpawnDropped([NotNullWhen(true)] out IEntity dropped) + { + dropped = default!; + + if (Body == null) + { + return false; + } + + dropped = IoCManager.Resolve().SpawnEntity("BaseDroppedBodyPart", Body.Owner.Transform.GridPosition); + + dropped.GetComponent().TransferBodyPartData(this); + + return true; + } + } +} diff --git a/Content.Server/Body/BodyPreset.cs b/Content.Server/Body/BodyPreset.cs new file mode 100644 index 0000000000..12e67c53e9 --- /dev/null +++ b/Content.Server/Body/BodyPreset.cs @@ -0,0 +1,36 @@ +using System.Collections.Generic; +using Content.Shared.Body.Part; +using Content.Shared.Body.Preset; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Body +{ + /// + /// Stores data on what should + /// fill a BodyTemplate. + /// Used for loading complete body presets, like a "basic human" with all + /// human limbs. + /// + public class BodyPreset + { + public BodyPreset(BodyPresetPrototype data) + { + LoadFromPrototype(data); + } + + [ViewVariables] public string Name { get; private set; } + + /// + /// Maps a template slot to the ID of the that should + /// fill it. E.g. "right arm" : "BodyPart.arm.basic_human". + /// + [ViewVariables] + public Dictionary PartIDs { get; private set; } + + protected virtual void LoadFromPrototype(BodyPresetPrototype data) + { + Name = data.Name; + PartIDs = data.PartIDs; + } + } +} diff --git a/Content.Server/Body/BodyTemplate.cs b/Content.Server/Body/BodyTemplate.cs new file mode 100644 index 0000000000..ae32c02688 --- /dev/null +++ b/Content.Server/Body/BodyTemplate.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Content.Server.GameObjects.Components.Body; +using Content.Shared.Body.Template; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Body +{ + /// + /// This class is a data capsule representing the standard format of a + /// . + /// For instance, the "humanoid" BodyTemplate defines two arms, each connected to + /// a torso and so on. + /// Capable of loading data from a . + /// + public class BodyTemplate + { + public BodyTemplate() + { + Name = "empty"; + CenterSlot = ""; + Slots = new Dictionary(); + Connections = new Dictionary>(); + Layers = new Dictionary(); + MechanismLayers = new Dictionary(); + } + + public BodyTemplate(BodyTemplatePrototype data) + { + LoadFromPrototype(data); + } + + [ViewVariables] public string Name { get; private set; } + + /// + /// The name of the center BodyPart. For humans, this is set to "torso". + /// Used in many calculations. + /// + [ViewVariables] + public string CenterSlot { get; set; } + + /// + /// Maps all parts on this template to its BodyPartType. + /// For instance, "right arm" is mapped to "BodyPartType.arm" on the humanoid + /// template. + /// + [ViewVariables] + public Dictionary Slots { get; private set; } + + /// + /// Maps limb name to the list of their connections to other limbs. + /// For instance, on the humanoid template "torso" is mapped to a list + /// containing "right arm", "left arm", "left leg", and "right leg". + /// This is mapped both ways during runtime, but in the prototype only one + /// way has to be defined, i.e., "torso" to "left arm" will automatically + /// map "left arm" to "torso". + /// + [ViewVariables] + public Dictionary> Connections { get; private set; } + + [ViewVariables] + public Dictionary Layers { get; private set; } + + [ViewVariables] + public Dictionary MechanismLayers { get; private set; } + + public bool Equals(BodyTemplate other) + { + return GetHashCode() == other.GetHashCode(); + } + + /// + /// Checks if the given slot exists in this . + /// + /// True if it does, false otherwise. + public bool SlotExists(string slotName) + { + return Slots.Keys.Any(slot => slot == slotName); + } + + /// + /// Calculates the hash code for this instance of . + /// It does not matter in which order the Connections or Slots are defined. + /// + /// + /// An integer unique to this 's layout. + /// + public override int GetHashCode() + { + var slotsHash = 0; + var connectionsHash = 0; + + foreach (var (key, value) in Slots) + { + var slot = key.GetHashCode(); + slot = HashCode.Combine(slot, value.GetHashCode()); + slotsHash ^= slot; + } + + var connections = new List(); + foreach (var (key, value) in Connections) + { + foreach (var targetBodyPart in value) + { + var connection = key.GetHashCode() ^ targetBodyPart.GetHashCode(); + if (!connections.Contains(connection)) + { + connections.Add(connection); + } + } + } + + foreach (var connection in connections) + { + connectionsHash ^= connection; + } + + // One of the unit tests considers 0 to be an error, but it will be 0 if + // the BodyTemplate is empty, so let's shift that up to 1. + var hash = HashCode.Combine( + CenterSlot.GetHashCode(), + slotsHash, + connectionsHash); + + if (hash == 0) + { + hash++; + } + + return hash; + } + + protected virtual void LoadFromPrototype(BodyTemplatePrototype data) + { + Name = data.Name; + CenterSlot = data.CenterSlot; + Slots = data.Slots; + Connections = data.Connections; + Layers = data.Layers; + MechanismLayers = data.MechanismLayers; + } + } +} diff --git a/Content.Server/Body/IBodyPartContainer.cs b/Content.Server/Body/IBodyPartContainer.cs new file mode 100644 index 0000000000..fdc4c402e9 --- /dev/null +++ b/Content.Server/Body/IBodyPartContainer.cs @@ -0,0 +1,19 @@ +using Content.Server.Body.Surgery; +using Content.Server.GameObjects.Components.Body; + +namespace Content.Server.Body +{ + /// + /// Making a class inherit from this interface allows you to do many things with + /// it in the class. + /// This includes passing it as an argument to a + /// delegate, as to later typecast it back + /// to the original class type. + /// Every BodyPart also needs an to be its parent + /// (i.e. the holds many , + /// each of which have an upward reference to it). + /// + public interface IBodyPartContainer + { + } +} diff --git a/Content.Server/Body/Mechanisms/Behaviors/BrainBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/BrainBehavior.cs new file mode 100644 index 0000000000..869534803e --- /dev/null +++ b/Content.Server/Body/Mechanisms/Behaviors/BrainBehavior.cs @@ -0,0 +1,9 @@ +namespace Content.Server.Body.Mechanisms.Behaviors +{ + /// + /// The behaviors of a brain, inhabitable by a player. + /// + public class BrainBehavior : MechanismBehavior + { + } +} diff --git a/Content.Server/Body/Mechanisms/Behaviors/HeartBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/HeartBehavior.cs new file mode 100644 index 0000000000..51366583bd --- /dev/null +++ b/Content.Server/Body/Mechanisms/Behaviors/HeartBehavior.cs @@ -0,0 +1,38 @@ +#nullable enable +using System; +using Content.Server.Body.Network; +using Content.Server.GameObjects.Components.Body.Circulatory; +using JetBrains.Annotations; + +namespace Content.Server.Body.Mechanisms.Behaviors +{ + [UsedImplicitly] + public class HeartBehavior : MechanismBehavior + { + private float _accumulatedFrameTime; + + protected override Type? Network => typeof(CirculatoryNetwork); + + public override void PreMetabolism(float frameTime) + { + // TODO do between pre and metabolism + base.PreMetabolism(frameTime); + + if (Mechanism.Body == null || + !Mechanism.Body.Owner.TryGetComponent(out BloodstreamComponent bloodstream)) + { + return; + } + + // Update at most once per second + _accumulatedFrameTime += frameTime; + + // TODO: Move/accept/process bloodstream reagents only when the heart is pumping + if (_accumulatedFrameTime >= 1) + { + // bloodstream.Update(_accumulatedFrameTime); + _accumulatedFrameTime -= 1; + } + } + } +} diff --git a/Content.Server/Body/Mechanisms/Behaviors/LungBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/LungBehavior.cs new file mode 100644 index 0000000000..675cc37e76 --- /dev/null +++ b/Content.Server/Body/Mechanisms/Behaviors/LungBehavior.cs @@ -0,0 +1,27 @@ +#nullable enable +using System; +using Content.Server.Body.Network; +using Content.Server.GameObjects.Components.Body.Respiratory; +using JetBrains.Annotations; + +namespace Content.Server.Body.Mechanisms.Behaviors +{ + [UsedImplicitly] + public class LungBehavior : MechanismBehavior + { + protected override Type? Network => typeof(RespiratoryNetwork); + + public override void PreMetabolism(float frameTime) + { + base.PreMetabolism(frameTime); + + if (Mechanism.Body == null || + !Mechanism.Body.Owner.TryGetComponent(out LungComponent lung)) + { + return; + } + + lung.Update(frameTime); + } + } +} diff --git a/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs new file mode 100644 index 0000000000..77c3d5e982 --- /dev/null +++ b/Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs @@ -0,0 +1,185 @@ +#nullable enable +using System; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Metabolism; + +namespace Content.Server.Body.Mechanisms.Behaviors +{ + /// + /// The behaviors a mechanism performs. + /// + public abstract class MechanismBehavior + { + private bool Initialized { get; set; } + + private bool Removed { get; set; } + + /// + /// The network, if any, that this behavior forms when its mechanism is + /// added and destroys when its mechanism is removed. + /// + protected virtual Type? Network { get; } = null; + + /// + /// Upward reference to the parent that this + /// behavior is attached to. + /// + protected Mechanism Mechanism { get; private set; } = null!; + + /// + /// Called by a to initialize this behavior. + /// + /// The mechanism that owns this behavior. + /// + /// If the mechanism has already been initialized. + /// + public void Initialize(Mechanism mechanism) + { + if (Initialized) + { + throw new InvalidOperationException("This mechanism has already been initialized."); + } + + Mechanism = mechanism; + + Initialize(); + + if (Mechanism.Body != null) + { + OnInstalledIntoBody(); + } + + if (Mechanism.Part != null) + { + OnInstalledIntoPart(); + } + + Initialized = true; + } + + /// + /// Called when a behavior is removed from a . + /// + public void Remove() + { + OnRemove(); + TryRemoveNetwork(Mechanism.Body); + + Mechanism = null!; + Removed = true; + } + + /// + /// Called when the containing is attached to a + /// . + /// For instance, attaching a head to a body will call this on the brain inside. + /// + public void InstalledIntoBody() + { + TryAddNetwork(); + OnInstalledIntoBody(); + } + + /// + /// Called when the parent is + /// installed into a . + /// For instance, putting a brain into an empty head. + /// + public void InstalledIntoPart() + { + TryAddNetwork(); + OnInstalledIntoPart(); + } + + /// + /// Called when the containing is removed from a + /// . + /// For instance, cutting off ones head will call this on the brain inside. + /// + public void RemovedFromBody(BodyManagerComponent old) + { + OnRemovedFromBody(old); + TryRemoveNetwork(old); + } + + /// + /// Called when the parent is removed from a + /// . + /// For instance, taking a brain out of ones head. + /// + public void RemovedFromPart(BodyPart old) + { + OnRemovedFromPart(old); + TryRemoveNetwork(old.Body); + } + + private void TryAddNetwork() + { + if (Network != null) + { + Mechanism.Body?.EnsureNetwork(Network); + } + } + + private void TryRemoveNetwork(BodyManagerComponent? body) + { + if (Network != null) + { + body?.RemoveNetwork(Network); + } + } + + /// + /// Called by when this behavior is first initialized. + /// + protected virtual void Initialize() { } + + protected virtual void OnRemove() { } + + /// + /// Called when the containing is attached to a + /// . + /// For instance, attaching a head to a body will call this on the brain inside. + /// + protected virtual void OnInstalledIntoBody() { } + + /// + /// Called when the parent is + /// installed into a . + /// For instance, putting a brain into an empty head. + /// + protected virtual void OnInstalledIntoPart() { } + + /// + /// Called when the containing is removed from a + /// . + /// For instance, cutting off ones head will call this on the brain inside. + /// + protected virtual void OnRemovedFromBody(BodyManagerComponent old) { } + + /// + /// Called when the parent is removed from a + /// . + /// For instance, taking a brain out of ones head. + /// + protected virtual void OnRemovedFromPart(BodyPart old) { } + + /// + /// Called every update when this behavior is connected to a + /// , but not while in a + /// or + /// , + /// before is called. + /// + public virtual void PreMetabolism(float frameTime) { } + + /// + /// Called every update when this behavior is connected to a + /// , but not while in a + /// or + /// , + /// after is called. + /// + public virtual void PostMetabolism(float frameTime) { } + } +} diff --git a/Content.Server/Body/Mechanisms/Behaviors/StomachBehavior.cs b/Content.Server/Body/Mechanisms/Behaviors/StomachBehavior.cs new file mode 100644 index 0000000000..ae1e17b49b --- /dev/null +++ b/Content.Server/Body/Mechanisms/Behaviors/StomachBehavior.cs @@ -0,0 +1,36 @@ +#nullable enable +using System; +using Content.Server.Body.Network; +using Content.Server.GameObjects.Components.Body.Digestive; +using JetBrains.Annotations; + +namespace Content.Server.Body.Mechanisms.Behaviors +{ + [UsedImplicitly] + public class StomachBehavior : MechanismBehavior + { + private float _accumulatedFrameTime; + + protected override Type? Network => typeof(DigestiveNetwork); + + public override void PreMetabolism(float frameTime) + { + base.PreMetabolism(frameTime); + + if (Mechanism.Body == null || + !Mechanism.Body.Owner.TryGetComponent(out StomachComponent stomach)) + { + return; + } + + // Update at most once per second + _accumulatedFrameTime += frameTime; + + if (_accumulatedFrameTime >= 1) + { + stomach.Update(_accumulatedFrameTime); + _accumulatedFrameTime -= 1; + } + } + } +} diff --git a/Content.Server/Body/Mechanisms/Mechanism.cs b/Content.Server/Body/Mechanisms/Mechanism.cs new file mode 100644 index 0000000000..9c88b0425b --- /dev/null +++ b/Content.Server/Body/Mechanisms/Mechanism.cs @@ -0,0 +1,249 @@ +#nullable enable +using System; +using System.Collections.Generic; +using Content.Server.Body.Mechanisms.Behaviors; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Metabolism; +using Content.Shared.Body.Mechanism; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.IoC; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Body.Mechanisms +{ + /// + /// Data class representing a persistent item inside a . + /// This includes livers, eyes, cameras, brains, explosive implants, + /// binary communicators, and other things. + /// + public class Mechanism + { + private BodyPart? _part; + + public Mechanism(MechanismPrototype data) + { + Data = data; + Id = null!; + Name = null!; + Description = null!; + ExamineMessage = null!; + RSIPath = null!; + RSIState = null!; + Behaviors = new List(); + } + + [ViewVariables] private bool Initialized { get; set; } + + [ViewVariables] private MechanismPrototype Data { get; set; } + + [ViewVariables] public string Id { get; private set; } + + [ViewVariables] public string Name { get; set; } + + /// + /// Professional description of the . + /// + [ViewVariables] + public string Description { get; set; } + + /// + /// The message to display upon examining a mob with this Mechanism installed. + /// If the string is empty (""), no message will be displayed. + /// + [ViewVariables] + public string ExamineMessage { get; set; } + + /// + /// Path to the RSI that represents this . + /// + [ViewVariables] + public string RSIPath { get; set; } + + /// + /// RSI state that represents this . + /// + [ViewVariables] + public string RSIState { get; set; } + + /// + /// Max HP of this . + /// + [ViewVariables] + public int MaxDurability { get; set; } + + /// + /// Current HP of this . + /// + [ViewVariables] + public int CurrentDurability { get; set; } + + /// + /// At what HP this is completely destroyed. + /// + [ViewVariables] + public int DestroyThreshold { get; set; } + + /// + /// Armor of this against attacks. + /// + [ViewVariables] + public int Resistance { get; set; } + + /// + /// Determines a handful of things - mostly whether this + /// can fit into a . + /// + [ViewVariables] + public int Size { get; set; } + + /// + /// What kind of this can be + /// easily installed into. + /// + [ViewVariables] + public BodyPartCompatibility Compatibility { get; set; } + + /// + /// The behaviors that this performs. + /// + [ViewVariables] + private List Behaviors { get; } + + public BodyManagerComponent? Body => Part?.Body; + + public BodyPart? Part + { + get => _part; + set + { + var old = _part; + _part = value; + + if (value == null && old != null) + { + foreach (var behavior in Behaviors) + { + behavior.RemovedFromPart(old); + } + } + else + { + foreach (var behavior in Behaviors) + { + behavior.InstalledIntoPart(); + } + } + } + } + + public void EnsureInitialize() + { + if (Initialized) + { + return; + } + + LoadFromPrototype(Data); + Initialized = true; + } + + /// + /// Loads the given . + /// Current data on this will be overwritten! + /// + private void LoadFromPrototype(MechanismPrototype data) + { + Data = data; + Id = data.ID; + Name = data.Name; + Description = data.Description; + ExamineMessage = data.ExamineMessage; + RSIPath = data.RSIPath; + RSIState = data.RSIState; + MaxDurability = data.Durability; + CurrentDurability = MaxDurability; + DestroyThreshold = data.DestroyThreshold; + Resistance = data.Resistance; + Size = data.Size; + Compatibility = data.Compatibility; + + foreach (var behavior in Behaviors.ToArray()) + { + RemoveBehavior(behavior); + } + + foreach (var mechanismBehaviorName in data.BehaviorClasses) + { + var mechanismBehaviorType = Type.GetType(mechanismBehaviorName); + + if (mechanismBehaviorType == null) + { + throw new InvalidOperationException( + $"No {nameof(MechanismBehavior)} found with name {mechanismBehaviorName}"); + } + + if (!mechanismBehaviorType.IsSubclassOf(typeof(MechanismBehavior))) + { + throw new InvalidOperationException( + $"Class {mechanismBehaviorName} is not a subtype of {nameof(MechanismBehavior)} for mechanism prototype {data.ID}"); + } + + var newBehavior = IoCManager.Resolve().CreateInstance(mechanismBehaviorType); + + AddBehavior(newBehavior); + } + } + + public void InstalledIntoBody() + { + foreach (var behavior in Behaviors) + { + behavior.InstalledIntoBody(); + } + } + + public void RemovedFromBody(BodyManagerComponent old) + { + foreach (var behavior in Behaviors) + { + behavior.RemovedFromBody(old); + } + } + + /// + /// This method is called by before + /// is called. + /// + public void PreMetabolism(float frameTime) + { + foreach (var behavior in Behaviors) + { + behavior.PreMetabolism(frameTime); + } + } + + /// + /// This method is called by after + /// is called. + /// + public void PostMetabolism(float frameTime) + { + foreach (var behavior in Behaviors) + { + behavior.PostMetabolism(frameTime); + } + } + + private void AddBehavior(MechanismBehavior behavior) + { + Behaviors.Add(behavior); + behavior.Initialize(this); + } + + private bool RemoveBehavior(MechanismBehavior behavior) + { + behavior.Remove(); + return Behaviors.Remove(behavior); + } + } +} diff --git a/Content.Server/Body/Network/BodyNetwork.cs b/Content.Server/Body/Network/BodyNetwork.cs new file mode 100644 index 0000000000..911bfbde75 --- /dev/null +++ b/Content.Server/Body/Network/BodyNetwork.cs @@ -0,0 +1,76 @@ +using System; +using Content.Server.GameObjects.Components.Body; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Serialization; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.Body.Network +{ + /// + /// Represents a "network" such as a bloodstream or electrical power that + /// is coordinated throughout an entire . + /// + public abstract class BodyNetwork : IExposeData + { + [ViewVariables] + public abstract string Name { get; } + + protected IEntity Owner { get; private set; } + + public virtual void ExposeData(ObjectSerializer serializer) { } + + public void OnAdd(IEntity entity) + { + Owner = entity; + OnAdd(); + } + + protected virtual void OnAdd() { } + + public virtual void OnRemove() { } + + /// + /// Called every update by . + /// + public virtual void Update(float frameTime) { } + } + + public static class BodyNetworkExtensions + { + public static void TryAddNetwork(this IEntity entity, Type type) + { + if (!entity.TryGetComponent(out BodyManagerComponent body)) + { + return; + } + + body.EnsureNetwork(type); + } + + public static void TryAddNetwork(this IEntity entity) where T : BodyNetwork + { + if (!entity.TryGetComponent(out BodyManagerComponent body)) + { + return; + } + + body.EnsureNetwork(); + } + + public static bool TryGetBodyNetwork(this IEntity entity, Type type, out BodyNetwork network) + { + network = null; + + return entity.TryGetComponent(out BodyManagerComponent body) && + body.TryGetNetwork(type, out network); + } + + public static bool TryGetBodyNetwork(this IEntity entity, out T network) where T : BodyNetwork + { + entity.TryGetBodyNetwork(typeof(T), out var unCastNetwork); + network = (T) unCastNetwork; + return network != null; + } + } +} diff --git a/Content.Server/Body/Network/BodyNetworkFactory.cs b/Content.Server/Body/Network/BodyNetworkFactory.cs new file mode 100644 index 0000000000..8b5ec0cc7f --- /dev/null +++ b/Content.Server/Body/Network/BodyNetworkFactory.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; +using Robust.Shared.Interfaces.Reflection; +using Robust.Shared.IoC; + +namespace Content.Server.Body.Network +{ + public class BodyNetworkFactory : IBodyNetworkFactory + { + [Dependency] private readonly IDynamicTypeFactory _typeFactory = default!; + [Dependency] private readonly IReflectionManager _reflectionManager = default!; + + /// + /// Mapping of body network names to their types. + /// + private readonly Dictionary _names = new Dictionary(); + + private void Register(Type type) + { + if (_names.ContainsValue(type)) + { + throw new InvalidOperationException($"Type is already registered: {type}"); + } + + if (!type.IsSubclassOf(typeof(BodyNetwork))) + { + throw new InvalidOperationException($"{type} is not a subclass of {nameof(BodyNetwork)}"); + } + + var dummy = _typeFactory.CreateInstance(type); + + if (dummy == null) + { + throw new NullReferenceException(); + } + + var name = dummy.Name; + + if (name == null) + { + throw new NullReferenceException($"{type}'s name cannot be null."); + } + + if (_names.ContainsKey(name)) + { + throw new InvalidOperationException($"{name} is already registered."); + } + + _names.Add(name, type); + } + + public void DoAutoRegistrations() + { + var bodyNetwork = typeof(BodyNetwork); + + foreach (var child in _reflectionManager.GetAllChildren(bodyNetwork)) + { + Register(child); + } + } + + public BodyNetwork GetNetwork(string name) + { + Type type; + + try + { + type = _names[name]; + } + catch (KeyNotFoundException) + { + throw new ArgumentException($"No {nameof(BodyNetwork)} exists with name {name}"); + } + + return _typeFactory.CreateInstance(type); + } + + public BodyNetwork GetNetwork(Type type) + { + if (!_names.ContainsValue(type)) + { + throw new ArgumentException($"{type} is not registered."); + } + + return _typeFactory.CreateInstance(type); + } + } +} diff --git a/Content.Server/Body/Network/CirculatoryNetwork.cs b/Content.Server/Body/Network/CirculatoryNetwork.cs new file mode 100644 index 0000000000..c67bc6e201 --- /dev/null +++ b/Content.Server/Body/Network/CirculatoryNetwork.cs @@ -0,0 +1,25 @@ +using Content.Server.GameObjects.Components.Body.Circulatory; +using JetBrains.Annotations; +using Robust.Shared.GameObjects; + +namespace Content.Server.Body.Network +{ + [UsedImplicitly] + public class CirculatoryNetwork : BodyNetwork + { + public override string Name => "Circulatory"; + + protected override void OnAdd() + { + Owner.EnsureComponent(); + } + + public override void OnRemove() + { + if (Owner.HasComponent()) + { + Owner.RemoveComponent(); + } + } + } +} diff --git a/Content.Server/Body/Network/DigestiveNetwork.cs b/Content.Server/Body/Network/DigestiveNetwork.cs new file mode 100644 index 0000000000..6362b55072 --- /dev/null +++ b/Content.Server/Body/Network/DigestiveNetwork.cs @@ -0,0 +1,28 @@ +using Content.Server.GameObjects.Components.Body.Digestive; +using JetBrains.Annotations; +using Robust.Shared.GameObjects; + +namespace Content.Server.Body.Network +{ + /// + /// Represents the system that processes food, liquids, and the reagents inside them. + /// + [UsedImplicitly] + public class DigestiveNetwork : BodyNetwork + { + public override string Name => "Digestive"; + + protected override void OnAdd() + { + Owner.EnsureComponent(); + } + + public override void OnRemove() + { + if (Owner.HasComponent()) + { + Owner.RemoveComponent(); + } + } + } +} diff --git a/Content.Server/Body/Network/IBodyNetworkFactory.cs b/Content.Server/Body/Network/IBodyNetworkFactory.cs new file mode 100644 index 0000000000..29d883f21b --- /dev/null +++ b/Content.Server/Body/Network/IBodyNetworkFactory.cs @@ -0,0 +1,13 @@ +using System; + +namespace Content.Server.Body.Network +{ + public interface IBodyNetworkFactory + { + void DoAutoRegistrations(); + + BodyNetwork GetNetwork(string name); + + BodyNetwork GetNetwork(Type type); + } +} diff --git a/Content.Server/Body/Network/RespiratoryNetwork.cs b/Content.Server/Body/Network/RespiratoryNetwork.cs new file mode 100644 index 0000000000..92c974f2e3 --- /dev/null +++ b/Content.Server/Body/Network/RespiratoryNetwork.cs @@ -0,0 +1,25 @@ +using Content.Server.GameObjects.Components.Body.Respiratory; +using JetBrains.Annotations; +using Robust.Shared.GameObjects; + +namespace Content.Server.Body.Network +{ + [UsedImplicitly] + public class RespiratoryNetwork : BodyNetwork + { + public override string Name => "Respiratory"; + + protected override void OnAdd() + { + Owner.EnsureComponent(); + } + + public override void OnRemove() + { + if (Owner.HasComponent()) + { + Owner.RemoveComponent(); + } + } + } +} diff --git a/Content.Server/Body/Surgery/BiologicalSurgeryData.cs b/Content.Server/Body/Surgery/BiologicalSurgeryData.cs new file mode 100644 index 0000000000..37fbb57b29 --- /dev/null +++ b/Content.Server/Body/Surgery/BiologicalSurgeryData.cs @@ -0,0 +1,250 @@ +#nullable enable +using System.Collections.Generic; +using System.Linq; +using Content.Server.Body.Mechanisms; +using Content.Server.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.Interfaces; +using JetBrains.Annotations; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Localization; + +namespace Content.Server.Body.Surgery +{ + /// + /// Data class representing the surgery state of a biological entity. + /// + [UsedImplicitly] + public class BiologicalSurgeryData : SurgeryData + { + private readonly List _disconnectedOrgans = new List(); + + private bool _skinOpened; + private bool _skinRetracted; + private bool _vesselsClamped; + + public BiologicalSurgeryData(BodyPart parent) : base(parent) { } + + protected override SurgeryAction? GetSurgeryStep(SurgeryType toolType) + { + if (toolType == SurgeryType.Amputation) + { + return RemoveBodyPartSurgery; + } + + if (!_skinOpened) + { + // Case: skin is normal. + if (toolType == SurgeryType.Incision) + { + return OpenSkinSurgery; + } + } + else if (!_vesselsClamped) + { + // Case: skin is opened, but not clamped. + switch (toolType) + { + case SurgeryType.VesselCompression: + return ClampVesselsSurgery; + case SurgeryType.Cauterization: + return CauterizeIncisionSurgery; + } + } + else if (!_skinRetracted) + { + // Case: skin is opened and clamped, but not retracted. + switch (toolType) + { + case SurgeryType.Retraction: + return RetractSkinSurgery; + case SurgeryType.Cauterization: + return CauterizeIncisionSurgery; + } + } + else + { + // Case: skin is fully open. + if (Parent.Mechanisms.Count > 0 && + toolType == SurgeryType.VesselCompression) + { + if (_disconnectedOrgans.Except(Parent.Mechanisms).Count() != 0 || + Parent.Mechanisms.Except(_disconnectedOrgans).Count() != 0) + { + return LoosenOrganSurgery; + } + } + + if (_disconnectedOrgans.Count > 0 && toolType == SurgeryType.Incision) + { + return RemoveOrganSurgery; + } + + if (toolType == SurgeryType.Cauterization) + { + return CauterizeIncisionSurgery; + } + } + + return null; + } + + public override string GetDescription(IEntity target) + { + var toReturn = ""; + + if (_skinOpened && !_vesselsClamped) + { + // Case: skin is opened, but not clamped. + toReturn += Loc.GetString("The skin on {0:their} {1} has an incision, but it is prone to bleeding.\n", + target, Parent.Name); + } + else if (_skinOpened && _vesselsClamped && !_skinRetracted) + { + // Case: skin is opened and clamped, but not retracted. + toReturn += Loc.GetString("The skin on {0:their} {1} has an incision, but it is not retracted.\n", + target, Parent.Name); + } + else if (_skinOpened && _vesselsClamped && _skinRetracted) + { + // Case: skin is fully open. + toReturn += Loc.GetString("There is an incision on {0:their} {1}.\n", target, Parent.Name); + foreach (var mechanism in _disconnectedOrgans) + { + toReturn += Loc.GetString("{0:their} {1} is loose.\n", target, mechanism.Name); + } + } + + return toReturn; + } + + public override bool CanInstallMechanism(Mechanism mechanism) + { + return _skinOpened && _vesselsClamped && _skinRetracted; + } + + public override bool CanAttachBodyPart(BodyPart part) + { + return true; + // TODO: if a bodypart is disconnected, you should have to do some surgery to allow another bodypart to be attached. + } + + private void OpenSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + performer.PopupMessage(performer, Loc.GetString("Cut open the skin...")); + + // TODO do_after: Delay + _skinOpened = true; + } + + private void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + performer.PopupMessage(performer, Loc.GetString("Clamp the vessels...")); + + // TODO do_after: Delay + _vesselsClamped = true; + } + + private void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + performer.PopupMessage(performer, Loc.GetString("Retract the skin...")); + + // TODO do_after: Delay + _skinRetracted = true; + } + + private void CauterizeIncisionSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + performer.PopupMessage(performer, Loc.GetString("Cauterize the incision...")); + + // TODO do_after: Delay + _skinOpened = false; + _vesselsClamped = false; + _skinRetracted = false; + } + + private void LoosenOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + if (Parent.Mechanisms.Count <= 0) + { + return; + } + + var toSend = new List(); + foreach (var mechanism in Parent.Mechanisms) + { + if (!_disconnectedOrgans.Contains(mechanism)) + { + toSend.Add(mechanism); + } + } + + if (toSend.Count > 0) + { + surgeon.RequestMechanism(toSend, LoosenOrganSurgeryCallback); + } + } + + private void LoosenOrganSurgeryCallback(Mechanism target, IBodyPartContainer container, ISurgeon surgeon, + IEntity performer) + { + if (target == null || !Parent.Mechanisms.Contains(target)) + { + return; + } + + performer.PopupMessage(performer, Loc.GetString("Loosen the organ...")); + + // TODO do_after: Delay + _disconnectedOrgans.Add(target); + } + + private void RemoveOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + if (_disconnectedOrgans.Count <= 0) + { + return; + } + + if (_disconnectedOrgans.Count == 1) + { + RemoveOrganSurgeryCallback(_disconnectedOrgans[0], container, surgeon, performer); + } + else + { + surgeon.RequestMechanism(_disconnectedOrgans, RemoveOrganSurgeryCallback); + } + } + + private void RemoveOrganSurgeryCallback(Mechanism target, IBodyPartContainer container, + ISurgeon surgeon, + IEntity performer) + { + if (target == null || !Parent.Mechanisms.Contains(target)) + { + return; + } + + performer.PopupMessage(performer, Loc.GetString("Remove the organ...")); + + // TODO do_after: Delay + Parent.TryDropMechanism(performer, target, out _); + _disconnectedOrgans.Remove(target); + } + + private void RemoveBodyPartSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) + { + // This surgery requires a DroppedBodyPartComponent. + if (!(container is BodyManagerComponent)) + { + return; + } + + var bmTarget = (BodyManagerComponent) container; + performer.PopupMessage(performer, Loc.GetString("Saw off the limb!")); + + // TODO do_after: Delay + bmTarget.DisconnectBodyPart(Parent, true); + } + } +} diff --git a/Content.Server/Body/Surgery/ISurgeon.cs b/Content.Server/Body/Surgery/ISurgeon.cs new file mode 100644 index 0000000000..be2ed1135c --- /dev/null +++ b/Content.Server/Body/Surgery/ISurgeon.cs @@ -0,0 +1,34 @@ +using System.Collections.Generic; +using Content.Server.Body.Mechanisms; +using Content.Server.GameObjects.Components.Body; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.Body.Surgery +{ + /// + /// Interface representing an entity capable of performing surgery (performing operations on an + /// class). + /// For an example see , which inherits from this class. + /// + public interface ISurgeon + { + public delegate void MechanismRequestCallback( + Mechanism target, + IBodyPartContainer container, + ISurgeon surgeon, + IEntity performer); + + /// + /// How long it takes to perform a single surgery step (in seconds). + /// + public float BaseOperationTime { get; set; } + + /// + /// When performing a surgery, the may sometimes require selecting from a set of Mechanisms + /// to operate on. + /// This function is called in that scenario, and it is expected that you call the callback with one mechanism from the + /// provided list. + /// + public void RequestMechanism(IEnumerable options, MechanismRequestCallback callback); + } +} diff --git a/Content.Server/Body/Surgery/SurgeryData.cs b/Content.Server/Body/Surgery/SurgeryData.cs new file mode 100644 index 0000000000..a4274d0042 --- /dev/null +++ b/Content.Server/Body/Surgery/SurgeryData.cs @@ -0,0 +1,91 @@ +#nullable enable +using Content.Server.Body.Mechanisms; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.Body.Surgery +{ + /// + /// This data class represents the state of a in regards to everything surgery related - + /// whether there's an incision on it, whether the bone is broken, etc. + /// + public abstract class SurgeryData + { + protected delegate void SurgeryAction(IBodyPartContainer container, ISurgeon surgeon, IEntity performer); + + /// + /// The this surgeryData is attached to. + /// The class should not exist without a + /// that it represents, and will throw errors if it + /// is null. + /// + protected readonly BodyPart Parent; + + protected SurgeryData(BodyPart parent) + { + Parent = parent; + } + + /// + /// The of the parent . + /// + protected BodyPartType ParentType => Parent.PartType; + + /// + /// Returns the description of this current to be shown + /// upon observing the given entity. + /// + public abstract string GetDescription(IEntity target); + + /// + /// Returns whether a can be installed into the + /// this represents. + /// + public abstract bool CanInstallMechanism(Mechanism mechanism); + + /// + /// Returns whether the given can be connected to the + /// this represents. + /// + public abstract bool CanAttachBodyPart(BodyPart part); + + /// + /// Gets the delegate corresponding to the surgery step using the given + /// . + /// + /// + /// The corresponding surgery action or null if no step can be performed. + /// + protected abstract SurgeryAction? GetSurgeryStep(SurgeryType toolType); + + /// + /// Returns whether the given can be used to perform a surgery on the BodyPart this + /// represents. + /// + public bool CheckSurgery(SurgeryType toolType) + { + return GetSurgeryStep(toolType) != null; + } + + /// + /// Attempts to perform surgery of the given . Returns whether the operation was successful. + /// + /// The used for this surgery. + /// The container where the surgery is being done. + /// The entity being used to perform the surgery. + /// The entity performing the surgery. + public bool PerformSurgery(SurgeryType surgeryType, IBodyPartContainer container, ISurgeon surgeon, + IEntity performer) + { + var step = GetSurgeryStep(surgeryType); + + if (step == null) + { + return false; + } + + step(container, surgeon, performer); + return true; + } + } +} diff --git a/Content.Server/Chat/ChatCommands.cs b/Content.Server/Chat/ChatCommands.cs index a6c5404f59..777bba1fe9 100644 --- a/Content.Server/Chat/ChatCommands.cs +++ b/Content.Server/Chat/ChatCommands.cs @@ -1,6 +1,5 @@ -using System; +using System; using System.Linq; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Observer; @@ -15,6 +14,7 @@ using Robust.Shared.Enums; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.IoC; using Robust.Shared.Localization; +using Content.Shared.Damage; namespace Content.Server.Chat { @@ -107,24 +107,24 @@ namespace Content.Server.Chat "If that fails, it will attempt to use an object in the environment.\n" + "Finally, if neither of the above worked, you will die by biting your tongue."; - private void DealDamage(ISuicideAct suicide, IChatManager chat, DamageableComponent damageableComponent, IEntity source, IEntity target) + private void DealDamage(ISuicideAct suicide, IChatManager chat, IDamageableComponent damageableComponent, IEntity source, IEntity target) { SuicideKind kind = suicide.Suicide(target, chat); if (kind != SuicideKind.Special) { - damageableComponent.TakeDamage(kind switch - { - SuicideKind.Brute => DamageType.Brute, - SuicideKind.Heat => DamageType.Heat, - SuicideKind.Cold => DamageType.Cold, - SuicideKind.Acid => DamageType.Acid, - SuicideKind.Toxic => DamageType.Toxic, - SuicideKind.Electric => DamageType.Electric, - _ => DamageType.Brute - }, - 500, //TODO: needs to be a max damage of some sorts - source, - target); + damageableComponent.ChangeDamage(kind switch + { + SuicideKind.Blunt => DamageType.Blunt, + SuicideKind.Piercing => DamageType.Piercing, + SuicideKind.Heat => DamageType.Heat, + SuicideKind.Disintegration => DamageType.Disintegration, + SuicideKind.Cellular => DamageType.Cellular, + SuicideKind.DNA => DamageType.DNA, + SuicideKind.Asphyxiation => DamageType.Asphyxiation, + _ => DamageType.Blunt + }, + 500, + true, source); } } @@ -135,7 +135,7 @@ namespace Content.Server.Chat var chat = IoCManager.Resolve(); var owner = player.ContentData().Mind.OwnedMob.Owner; - var dmgComponent = owner.GetComponent(); + var dmgComponent = owner.GetComponent(); //TODO: needs to check if the mob is actually alive //TODO: maybe set a suicided flag to prevent ressurection? @@ -169,7 +169,7 @@ namespace Content.Server.Chat } // Default suicide, bite your tongue chat.EntityMe(owner, Loc.GetString("is attempting to bite {0:their} own tongue, looks like {0:theyre} trying to commit suicide!", owner)); //TODO: theyre macro - dmgComponent.TakeDamage(DamageType.Brute, 500, owner, owner); //TODO: dmg value needs to be a max damage of some sorts + dmgComponent.ChangeDamage(DamageType.Piercing, 500, true, owner); // Prevent the player from returning to the body. Yes, this is an ugly hack. var ghost = new Ghost(){CanReturn = false}; diff --git a/Content.Server/EntryPoint.cs b/Content.Server/EntryPoint.cs index e83771204d..120b364352 100644 --- a/Content.Server/EntryPoint.cs +++ b/Content.Server/EntryPoint.cs @@ -1,8 +1,9 @@ -using Content.Server.AI.Utility.Considerations; +using Content.Server.AI.Utility.Considerations; using Content.Server.AI.WorldState; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; +using Content.Server.Body.Network; using Content.Server.Interfaces.GameTicking; using Content.Server.Interfaces.PDA; using Content.Server.Sandbox; @@ -46,6 +47,8 @@ namespace Content.Server IoCManager.BuildGraph(); + IoCManager.Resolve().DoAutoRegistrations(); + _gameTicker = IoCManager.Resolve(); IoCManager.Resolve().Initialize(); diff --git a/Content.Server/Explosions/ExplosionHelper.cs b/Content.Server/Explosions/ExplosionHelper.cs index 277713bf28..1b61f037f3 100644 --- a/Content.Server/Explosions/ExplosionHelper.cs +++ b/Content.Server/Explosions/ExplosionHelper.cs @@ -1,7 +1,7 @@ using System; using System.Linq; using Content.Server.GameObjects.Components.Mobs; -using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Maps; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; diff --git a/Content.Server/GameObjects/Components/Atmos/BarotraumaComponent.cs b/Content.Server/GameObjects/Components/Atmos/BarotraumaComponent.cs index 4beaa374b1..cabaf72d5a 100644 --- a/Content.Server/GameObjects/Components/Atmos/BarotraumaComponent.cs +++ b/Content.Server/GameObjects/Components/Atmos/BarotraumaComponent.cs @@ -1,11 +1,11 @@ using System; using System.Runtime.CompilerServices; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces.GameObjects; using Content.Shared.Atmos; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Mobs; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; @@ -23,7 +23,7 @@ namespace Content.Server.GameObjects.Components.Atmos [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Update(float frameTime) { - if (!Owner.TryGetComponent(out DamageableComponent damageable)) return; + if (!Owner.TryGetComponent(out IDamageableComponent damageable)) return; Owner.TryGetComponent(out ServerStatusEffectsComponent status); var coordinates = Owner.Transform.GridPosition; @@ -52,7 +52,7 @@ namespace Content.Server.GameObjects.Components.Atmos if(pressure > Atmospherics.WarningLowPressure) goto default; - damageable.TakeDamage(DamageType.Brute, Atmospherics.LowPressureDamage, Owner); + damageable.ChangeDamage(DamageType.Blunt, Atmospherics.LowPressureDamage, false, Owner); if (status == null) break; @@ -74,7 +74,7 @@ namespace Content.Server.GameObjects.Components.Atmos var damage = (int) MathF.Min((pressure / Atmospherics.HazardHighPressure) * Atmospherics.PressureDamageCoefficient, Atmospherics.MaxHighPressureDamage); - damageable.TakeDamage(DamageType.Brute, damage, Owner); + damageable.ChangeDamage(DamageType.Blunt, damage, false, Owner); if (status == null) break; diff --git a/Content.Server/GameObjects/Components/Atmos/GasMixtureComponent.cs b/Content.Server/GameObjects/Components/Atmos/GasMixtureComponent.cs index 68e59e0869..c60ad08efa 100644 --- a/Content.Server/GameObjects/Components/Atmos/GasMixtureComponent.cs +++ b/Content.Server/GameObjects/Components/Atmos/GasMixtureComponent.cs @@ -1,6 +1,7 @@ using Content.Server.Atmos; using Robust.Shared.GameObjects; using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Atmos { @@ -8,7 +9,8 @@ namespace Content.Server.GameObjects.Components.Atmos public class GasMixtureComponent : Component { public override string Name => "GasMixture"; - public GasMixture GasMixture { get; set; } = new GasMixture(); + + [ViewVariables] public GasMixture GasMixture { get; set; } = new GasMixture(); public override void ExposeData(ObjectSerializer serializer) { diff --git a/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs b/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs new file mode 100644 index 0000000000..ac2f427299 --- /dev/null +++ b/Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs @@ -0,0 +1,1015 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Server.Body; +using Content.Server.Body.Network; +using Content.Server.GameObjects.Components.Metabolism; +using Content.Server.GameObjects.EntitySystems; +using Content.Server.Interfaces.GameObjects.Components.Interaction; +using Content.Server.Mobs; +using Content.Server.Observer; +using Content.Shared.Body.Part; +using Content.Shared.Body.Part.Properties.Movement; +using Content.Shared.Body.Part.Properties.Other; +using Content.Shared.Body.Preset; +using Content.Shared.Body.Template; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Movement; +using Robust.Server.GameObjects; +using Robust.Server.Interfaces.Player; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Reflection; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Maths; +using Robust.Shared.Players; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.Utility; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Body +{ + /// + /// Component representing a collection of + /// attached to each other. + /// + [RegisterComponent] + [ComponentReference(typeof(IDamageableComponent))] + [ComponentReference(typeof(IBodyManagerComponent))] + public class BodyManagerComponent : SharedBodyManagerComponent, IBodyPartContainer, IRelayMoveInput + { +#pragma warning disable CS0649 + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; + [Dependency] private readonly IBodyNetworkFactory _bodyNetworkFactory = default!; + [Dependency] private readonly IReflectionManager _reflectionManager = default!; +#pragma warning restore + + [ViewVariables] private string _presetName = default!; + + private readonly Dictionary _parts = new Dictionary(); + + [ViewVariables] private readonly Dictionary _networks = new Dictionary(); + + /// + /// All with + /// that are currently affecting move speed, mapped to how big that leg + /// they're on is. + /// + [ViewVariables] + private readonly Dictionary _activeLegs = new Dictionary(); + + /// + /// The that this + /// is adhering to. + /// + [ViewVariables] + public BodyTemplate Template { get; private set; } = default!; + + /// + /// The that this + /// is adhering to. + /// + [ViewVariables] + public BodyPreset Preset { get; private set; } = default!; + + /// + /// Maps slot name to the + /// object filling it (if there is one). + /// + [ViewVariables] + public IReadOnlyDictionary Parts => _parts; + + /// + /// List of all slots in this body, taken from the keys of + /// slots. + /// + public IEnumerable AllSlots => Template.Slots.Keys; + + /// + /// List of all occupied slots in this body, taken from the values of + /// . + /// + public IEnumerable OccupiedSlots => Parts.Keys; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataReadWriteFunction( + "baseTemplate", + "bodyTemplate.Humanoid", + template => + { + if (!_prototypeManager.TryIndex(template, out BodyTemplatePrototype templateData)) + { + // Invalid prototype + throw new InvalidOperationException( + $"No {nameof(BodyTemplatePrototype)} found with name {template}"); + } + + Template = new BodyTemplate(templateData); + }, + () => Template.Name); + + serializer.DataReadWriteFunction( + "basePreset", + "bodyPreset.BasicHuman", + preset => + { + if (!_prototypeManager.TryIndex(preset, out BodyPresetPrototype presetData)) + { + // Invalid prototype + throw new InvalidOperationException( + $"No {nameof(BodyPresetPrototype)} found with name {preset}"); + } + + Preset = new BodyPreset(presetData); + }, + () => _presetName); + } + + public override void Initialize() + { + base.Initialize(); + + LoadBodyPreset(Preset); + + foreach (var behavior in Owner.GetAllComponents()) + { + HealthChangedEvent += behavior.OnHealthChanged; + } + } + + protected override void Startup() + { + base.Startup(); + + // Just in case something activates at default health. + ForceHealthChangedEvent(); + } + + private void LoadBodyPreset(BodyPreset preset) + { + _presetName = preset.Name; + + foreach (var slotName in Template.Slots.Keys) + { + // For each slot in our BodyManagerComponent's template, + // try and grab what the ID of what the preset says should be inside it. + if (!preset.PartIDs.TryGetValue(slotName, out var partId)) + { + // If the preset doesn't define anything for it, continue. + continue; + } + + // Get the BodyPartPrototype corresponding to the BodyPart ID we grabbed. + if (!_prototypeManager.TryIndex(partId, out BodyPartPrototype newPartData)) + { + throw new InvalidOperationException($"No {nameof(BodyPartPrototype)} prototype found with ID {partId}"); + } + + // Try and remove an existing limb if that exists. + RemoveBodyPart(slotName, false); + + // Add a new BodyPart with the BodyPartPrototype as a baseline to our + // BodyComponent. + var addedPart = new BodyPart(newPartData); + AddBodyPart(addedPart, slotName); + } + + OnBodyChanged(); // TODO: Duplicate code + } + + /// + /// Changes the current to the given + /// . + /// Attempts to keep previous if there is a slot for + /// them in both . + /// + public void ChangeBodyTemplate(BodyTemplatePrototype newTemplate) + { + foreach (var part in Parts) + { + // TODO: Make this work. + } + + OnBodyChanged(); + } + + /// + /// This method is called by before + /// is called. + /// + public void PreMetabolism(float frameTime) + { + if (CurrentDamageState == DamageState.Dead) + { + return; + } + + foreach (var part in Parts.Values) + { + part.PreMetabolism(frameTime); + } + + foreach (var network in _networks.Values) + { + network.Update(frameTime); + } + } + + /// + /// This method is called by after + /// is called. + /// + public void PostMetabolism(float frameTime) + { + if (CurrentDamageState == DamageState.Dead) + { + return; + } + + foreach (var part in Parts.Values) + { + part.PostMetabolism(frameTime); + } + + foreach (var network in _networks.Values) + { + network.Update(frameTime); + } + } + + /// + /// Called when the layout of this body changes. + /// + private void OnBodyChanged() + { + // Calculate move speed based on this body. + if (Owner.HasComponent()) + { + _activeLegs.Clear(); + var legParts = Parts.Values.Where(x => x.HasProperty(typeof(LegProperty))); + + foreach (var part in legParts) + { + var footDistance = DistanceToNearestFoot(this, part); + + if (Math.Abs(footDistance - float.MinValue) > 0.001f) + { + _activeLegs.Add(part, footDistance); + } + } + + CalculateSpeed(); + } + } + + private void CalculateSpeed() + { + if (!Owner.TryGetComponent(out MovementSpeedModifierComponent playerMover)) + { + return; + } + + float speedSum = 0; + foreach (var part in _activeLegs.Keys) + { + if (!part.HasProperty()) + { + _activeLegs.Remove(part); + } + } + + foreach (var (key, value) in _activeLegs) + { + if (key.TryGetProperty(out LegProperty legProperty)) + { + // Speed of a leg = base speed * (1+log1024(leg length)) + speedSum += legProperty.Speed * (1 + (float) Math.Log(value, 1024.0)); + } + } + + if (speedSum <= 0.001f || _activeLegs.Count <= 0) + { + // Case: no way of moving. Fall down. + StandingStateHelper.Down(Owner); + playerMover.BaseWalkSpeed = 0.8f; + playerMover.BaseSprintSpeed = 2.0f; + } + else + { + // Case: have at least one leg. Set move speed. + StandingStateHelper.Standing(Owner); + + // Extra legs stack diminishingly. + // Final speed = speed sum/(leg count-log4(leg count)) + playerMover.BaseWalkSpeed = + speedSum / (_activeLegs.Count - (float) Math.Log(_activeLegs.Count, 4.0)); + + playerMover.BaseSprintSpeed = playerMover.BaseWalkSpeed * 1.75f; + } + } + + void IRelayMoveInput.MoveInputPressed(ICommonSession session) + { + if (CurrentDamageState == DamageState.Dead) + { + new Ghost().Execute(null, (IPlayerSession) session, null); + } + } + + #region BodyPart Functions + + /// + /// Recursively searches for if is connected to + /// the center. Not efficient (O(n^2)), but most bodies don't have a ton + /// of s. + /// + /// The body part to find the center for. + /// True if it is connected to the center, false otherwise. + private bool ConnectedToCenterPart(BodyPart target) + { + var searchedSlots = new List(); + + return TryGetSlotName(target, out var result) && + ConnectedToCenterPartRecursion(searchedSlots, result); + } + + private bool ConnectedToCenterPartRecursion(ICollection searchedSlots, string slotName) + { + TryGetBodyPart(slotName, out var part); + + if (part == null) + { + return false; + } + + if (part == GetCenterBodyPart()) + { + return true; + } + + searchedSlots.Add(slotName); + + if (!TryGetBodyPartConnections(slotName, out List connections)) + { + return false; + } + + foreach (var connection in connections) + { + if (!searchedSlots.Contains(connection) && + ConnectedToCenterPartRecursion(searchedSlots, connection)) + { + return true; + } + } + + return false; + } + + /// + /// Finds the central , if any, of this body based on + /// the . For humans, this is the torso. + /// + /// The if one exists, null otherwise. + private BodyPart? GetCenterBodyPart() + { + Parts.TryGetValue(Template.CenterSlot, out var center); + return center!; + } + + /// + /// Returns whether the given slot name exists within the current + /// . + /// + private bool SlotExists(string slotName) + { + return Template.SlotExists(slotName); + } + + /// + /// Finds the in the given if + /// one exists. + /// + /// The slot to search in. + /// The body part in that slot, if any. + /// True if found, false otherwise. + private bool TryGetBodyPart(string slotName, [NotNullWhen(true)] out BodyPart result) + { + return Parts.TryGetValue(slotName, out result!); + } + + /// + /// Finds the slotName that the given resides in. + /// + /// The to find the slot for. + /// The slot found, if any. + /// True if a slot was found, false otherwise + private bool TryGetSlotName(BodyPart part, [NotNullWhen(true)] out string result) + { + // We enforce that there is only one of each value in the dictionary, + // so we can iterate through the dictionary values to get the key from there. + result = Parts.FirstOrDefault(x => x.Value == part).Key; + return result != null; + } + + /// + /// Finds the in the given + /// if one exists. + /// + /// The slot to search in. + /// + /// The of that slot, if any. + /// + /// True if found, false otherwise. + public bool TryGetSlotType(string slotName, out BodyPartType result) + { + return Template.Slots.TryGetValue(slotName, out result); + } + + /// + /// Finds the names of all slots connected to the given + /// for the template. + /// + /// The slot to search in. + /// The connections found, if any. + /// True if the connections are found, false otherwise. + private bool TryGetBodyPartConnections(string slotName, [NotNullWhen(true)] out List connections) + { + return Template.Connections.TryGetValue(slotName, out connections!); + } + + /// + /// Grabs all occupied slots connected to the given slot, + /// regardless of whether the given is occupied. + /// + /// The slot name to find connections from. + /// The connected body parts, if any. + /// + /// True if successful, false if there was an error or no connected + /// s were found. + /// + public bool TryGetBodyPartConnections(string slotName, [NotNullWhen(true)] out List result) + { + result = null!; + + if (!Template.Connections.TryGetValue(slotName, out var connections)) + { + return false; + } + + var toReturn = new List(); + foreach (var connection in connections) + { + if (TryGetBodyPart(connection, out var bodyPartResult)) + { + toReturn.Add(bodyPartResult); + } + } + + if (toReturn.Count <= 0) + { + return false; + } + + result = toReturn; + return true; + } + + /// + /// Grabs all parts connected to the given , regardless + /// of whether the given is occupied. + /// + /// + /// True if successful, false if there was an error or no connected + /// s were found. + /// + private bool TryGetBodyPartConnections(BodyPart part, [NotNullWhen(true)] out List result) + { + result = null!; + + return TryGetSlotName(part, out var slotName) && + TryGetBodyPartConnections(slotName, out result); + } + + /// + /// Grabs all of the given type in this body. + /// + public List GetBodyPartsOfType(BodyPartType type) + { + var toReturn = new List(); + + foreach (var part in Parts.Values) + { + if (part.PartType == type) + { + toReturn.Add(part); + } + } + + return toReturn; + } + + /// + /// Installs the given into the given slot. + /// + /// True if successful, false otherwise. + public bool InstallBodyPart(BodyPart part, string slotName) + { + DebugTools.AssertNotNull(part); + + // Make sure the given slot exists + if (!SlotExists(slotName)) + { + return false; + } + + // And that nothing is in it + if (TryGetBodyPart(slotName, out _)) + { + return false; + } + + AddBodyPart(part, slotName); // TODO: Sort this duplicate out + OnBodyChanged(); + + return true; + } + + /// + /// Installs the given into the + /// given slot, deleting the afterwards. + /// + /// True if successful, false otherwise. + public bool InstallDroppedBodyPart(DroppedBodyPartComponent part, string slotName) + { + DebugTools.AssertNotNull(part); + + if (!InstallBodyPart(part.ContainedBodyPart, slotName)) + { + return false; + } + + part.Owner.Delete(); + return true; + } + + /// + /// Disconnects the given reference, potentially + /// dropping other BodyParts if they were hanging + /// off of it. + /// + /// + /// The representing the dropped + /// , or null if none was dropped. + /// + public IEntity? DropPart(BodyPart part) + { + DebugTools.AssertNotNull(part); + + if (!_parts.ContainsValue(part)) + { + return null; + } + + if (!RemoveBodyPart(part, out var slotName)) + { + return null; + } + + // Call disconnect on all limbs that were hanging off this limb. + if (TryGetBodyPartConnections(slotName, out List connections)) + { + // This loop is an unoptimized travesty. TODO: optimize to be less shit + foreach (var connectionName in connections) + { + if (TryGetBodyPart(connectionName, out var result) && !ConnectedToCenterPart(result)) + { + DisconnectBodyPart(connectionName, true); + } + } + } + + part.SpawnDropped(out var dropped); + + OnBodyChanged(); + return dropped; + } + + /// + /// Disconnects the given reference, potentially + /// dropping other BodyParts if they were hanging + /// off of it. + /// + public void DisconnectBodyPart(BodyPart part, bool dropEntity) + { + DebugTools.AssertNotNull(part); + + if (!_parts.ContainsValue(part)) + { + return; + } + + var slotName = Parts.FirstOrDefault(x => x.Value == part).Key; + RemoveBodyPart(slotName, dropEntity); + + // Call disconnect on all limbs that were hanging off this limb + if (TryGetBodyPartConnections(slotName, out List connections)) + { + // TODO: Optimize + foreach (var connectionName in connections) + { + if (TryGetBodyPart(connectionName, out var result) && !ConnectedToCenterPart(result)) + { + DisconnectBodyPart(connectionName, dropEntity); + } + } + } + + OnBodyChanged(); + } + + /// + /// Disconnects a body part in the given slot if one exists, + /// optionally dropping it. + /// + /// The slot to remove the body part from + /// + /// Whether or not to drop the body part as an entity if it exists. + /// + private void DisconnectBodyPart(string slotName, bool dropEntity) + { + DebugTools.AssertNotNull(slotName); + + if (!TryGetBodyPart(slotName, out var part)) + { + return; + } + + if (part == null) + { + return; + } + + RemoveBodyPart(slotName, dropEntity); + + if (TryGetBodyPartConnections(slotName, out List connections)) + { + foreach (var connectionName in connections) + { + if (TryGetBodyPart(connectionName, out var result) && !ConnectedToCenterPart(result)) + { + DisconnectBodyPart(connectionName, dropEntity); + } + } + } + + OnBodyChanged(); + } + + private void AddBodyPart(BodyPart part, string slotName) + { + DebugTools.AssertNotNull(part); + DebugTools.AssertNotNull(slotName); + + _parts.Add(slotName, part); + + part.Body = this; + + var argsAdded = new BodyPartAddedEventArgs(part, slotName); + + foreach (var component in Owner.GetAllComponents().ToArray()) + { + component.BodyPartAdded(argsAdded); + } + + if (!Template.Layers.TryGetValue(slotName, out var partMap) || + !_reflectionManager.TryParseEnumReference(partMap, out var partEnum)) + { + Logger.Warning($"Template {Template.Name} has an invalid RSI map key {partMap} for body part {part.Name}."); + return; + } + + part.RSIMap = partEnum; + + var partMessage = new BodyPartAddedMessage(part.RSIPath, part.RSIState, partEnum); + + SendNetworkMessage(partMessage); + + foreach (var mechanism in part.Mechanisms) + { + if (!Template.MechanismLayers.TryGetValue(mechanism.Id, out var mechanismMap)) + { + continue; + } + + if (!_reflectionManager.TryParseEnumReference(mechanismMap, out var mechanismEnum)) + { + Logger.Warning($"Template {Template.Name} has an invalid RSI map key {mechanismMap} for mechanism {mechanism.Id}."); + continue; + } + + var mechanismMessage = new MechanismSpriteAddedMessage(mechanismEnum); + + SendNetworkMessage(mechanismMessage); + } + } + + /// + /// Removes the body part in slot from this body, + /// if one exists. + /// + /// The slot to remove it from. + /// + /// Whether or not to drop the removed . + /// + /// + private bool RemoveBodyPart(string slotName, bool drop) + { + DebugTools.AssertNotNull(slotName); + + if (!_parts.Remove(slotName, out var part)) + { + return false; + } + + IEntity? dropped = null; + if (drop) + { + part.SpawnDropped(out dropped); + } + + part.Body = null; + + var args = new BodyPartRemovedEventArgs(part, slotName); + + foreach (var component in Owner.GetAllComponents()) + { + component.BodyPartRemoved(args); + } + + if (part.RSIMap != null) + { + var message = new BodyPartRemovedMessage(part.RSIMap, dropped?.Uid); + SendNetworkMessage(message); + } + + foreach (var mechanism in part.Mechanisms) + { + if (!Template.MechanismLayers.TryGetValue(mechanism.Id, out var mechanismMap)) + { + continue; + } + + if (!_reflectionManager.TryParseEnumReference(mechanismMap, out var mechanismEnum)) + { + Logger.Warning($"Template {Template.Name} has an invalid RSI map key {mechanismMap} for mechanism {mechanism.Id}."); + continue; + } + + var mechanismMessage = new MechanismSpriteRemovedMessage(mechanismEnum); + + SendNetworkMessage(mechanismMessage); + } + + return true; + } + + /// + /// Removes the body part from this body, if one exists. + /// + /// The part to remove from this body. + /// The slot that the part was in, if any. + /// True if was removed, false otherwise. + private bool RemoveBodyPart(BodyPart part, [NotNullWhen(true)] out string slotName) + { + DebugTools.AssertNotNull(part); + + slotName = _parts.FirstOrDefault(pair => pair.Value == part).Key; + + if (slotName == null) + { + return false; + } + + return RemoveBodyPart(slotName, false); + } + + #endregion + + #region BodyNetwork Functions + + private bool EnsureNetwork(BodyNetwork network) + { + DebugTools.AssertNotNull(network); + + if (_networks.ContainsKey(network.GetType())) + { + return false; + } + + _networks.Add(network.GetType(), network); + network.OnAdd(Owner); + + return true; + } + + /// + /// Attempts to add a of the given type to this body. + /// + /// + /// True if successful, false if there was an error + /// (such as passing in an invalid type or a network of that type already + /// existing). + /// + public bool EnsureNetwork(Type networkType) + { + DebugTools.Assert(networkType.IsSubclassOf(typeof(BodyNetwork))); + + var network = _bodyNetworkFactory.GetNetwork(networkType); + return EnsureNetwork(network); + } + + /// + /// Attempts to add a of the given type to + /// this body. + /// + /// The type of network to add. + /// + /// True if successful, false if there was an error + /// (such as passing in an invalid type or a network of that type already + /// existing). + /// + public bool EnsureNetwork() where T : BodyNetwork + { + return EnsureNetwork(typeof(T)); + } + + /// + /// Attempts to add a of the given name to + /// this body. + /// + /// + /// True if successful, false if there was an error + /// (such as passing in an invalid type or a network of that type already + /// existing). + /// + private bool EnsureNetwork(string networkName) + { + DebugTools.AssertNotNull(networkName); + + var network = _bodyNetworkFactory.GetNetwork(networkName); + return EnsureNetwork(network); + } + + /// + /// Removes the of the given type in this body, + /// if there is one. + /// + /// The type of the network to remove. + public void RemoveNetwork(Type type) + { + DebugTools.AssertNotNull(type); + + if (_networks.Remove(type, out var network)) + { + network.OnRemove(); + } + } + + /// + /// Removes the of the given type in this body, + /// if one exists. + /// + /// The type of the network to remove. + public void RemoveNetwork() where T : BodyNetwork + { + RemoveNetwork(typeof(T)); + } + + /// + /// Removes the with the given name in this body, + /// if there is one. + /// + private void RemoveNetwork(string networkName) + { + var type = _bodyNetworkFactory.GetNetwork(networkName).GetType(); + + if (_networks.Remove(type, out var network)) + { + network.OnRemove(); + } + } + + /// + /// Attempts to get the of the given type in this body. + /// + /// The type to search for. + /// + /// The if found, null otherwise. + /// + /// True if found, false otherwise. + public bool TryGetNetwork(Type networkType, [NotNullWhen(true)] out BodyNetwork result) + { + return _networks.TryGetValue(networkType, out result!); + } + + #endregion + + #region Recursion Functions + + /// + /// Returns the combined length of the distance to the nearest with a + /// . Returns + /// if there is no foot found. If you consider a a node map, then it will look for + /// a foot node from the given node. It can + /// only search through BodyParts with . + /// + private static float DistanceToNearestFoot(BodyManagerComponent body, BodyPart source) + { + if (source.HasProperty() && source.TryGetProperty(out var property)) + { + return property.ReachDistance; + } + + return LookForFootRecursion(body, source, new List()); + } + + private static float LookForFootRecursion(BodyManagerComponent body, BodyPart current, + ICollection searchedParts) + { + if (!current.TryGetProperty(out var extProperty)) + { + return float.MinValue; + } + + // Get all connected parts if the current part has an extension property + if (!body.TryGetBodyPartConnections(current, out var connections)) + { + return float.MinValue; + } + + // If a connected BodyPart is a foot, return this BodyPart's length. + foreach (var connection in connections) + { + if (!searchedParts.Contains(connection) && connection.HasProperty()) + { + return extProperty.ReachDistance; + } + } + + // Otherwise, get the recursion values of all connected BodyParts and + // store them in a list. + var distances = new List(); + foreach (var connection in connections) + { + if (!searchedParts.Contains(connection)) + { + continue; + } + + var result = LookForFootRecursion(body, connection, searchedParts); + + if (Math.Abs(result - float.MinValue) > 0.001f) + { + distances.Add(result); + } + } + + // If one or more of the searches found a foot, return the smallest one + // and add this ones length. + if (distances.Count > 0) + { + return distances.Min() + extProperty.ReachDistance; + } + + return float.MinValue; + + // No extension property, no go. + } + + #endregion + } + + public interface IBodyManagerHealthChangeParams + { + BodyPartType Part { get; } + } + + public class BodyManagerHealthChangeParams : HealthChangeParams, IBodyManagerHealthChangeParams + { + public BodyManagerHealthChangeParams(BodyPartType part) + { + Part = part; + } + + public BodyPartType Part { get; } + } +} diff --git a/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs b/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs new file mode 100644 index 0000000000..2c49665757 --- /dev/null +++ b/Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs @@ -0,0 +1,73 @@ +using System.Collections.Generic; +using Content.Server.Body; +using Content.Shared.Body.Scanner; +using Content.Shared.Interfaces.GameObjects.Components; +using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.Interfaces.GameObjects; +using Robust.Shared.GameObjects; + +namespace Content.Server.GameObjects.Components.Body +{ + [RegisterComponent] + [ComponentReference(typeof(IActivate))] + public class BodyScannerComponent : Component, IActivate + { + private BoundUserInterface _userInterface; + public sealed override string Name => "BodyScanner"; + + void IActivate.Activate(ActivateEventArgs eventArgs) + { + if (!eventArgs.User.TryGetComponent(out IActorComponent actor) || + actor.playerSession.AttachedEntity == null) + { + return; + } + + if (actor.playerSession.AttachedEntity.TryGetComponent(out BodyManagerComponent attempt)) + { + var state = InterfaceState(attempt.Template, attempt.Parts); + _userInterface.SetState(state); + } + + _userInterface.Open(actor.playerSession); + } + + public override void Initialize() + { + base.Initialize(); + _userInterface = Owner.GetComponent() + .GetBoundUserInterface(BodyScannerUiKey.Key); + _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + } + + private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage serverMsg) { } + + /// + /// Copy BodyTemplate and BodyPart data into a common data class that the client can read. + /// + private BodyScannerInterfaceState InterfaceState(BodyTemplate template, IReadOnlyDictionary bodyParts) + { + var partsData = new Dictionary(); + + foreach (var (slotName, part) in bodyParts) + { + var mechanismData = new List(); + + foreach (var mechanism in part.Mechanisms) + { + mechanismData.Add(new BodyScannerMechanismData(mechanism.Name, mechanism.Description, + mechanism.RSIPath, + mechanism.RSIState, mechanism.MaxDurability, mechanism.CurrentDurability)); + } + + partsData.Add(slotName, + new BodyScannerBodyPartData(part.Name, part.RSIPath, part.RSIState, part.MaxDurability, + part.CurrentDurability, mechanismData)); + } + + var templateData = new BodyScannerTemplateData(template.Name, template.Slots); + + return new BodyScannerInterfaceState(partsData, templateData); + } + } +} diff --git a/Content.Server/GameObjects/Components/Body/Circulatory/BloodstreamComponent.cs b/Content.Server/GameObjects/Components/Body/Circulatory/BloodstreamComponent.cs new file mode 100644 index 0000000000..9bf5f7e906 --- /dev/null +++ b/Content.Server/GameObjects/Components/Body/Circulatory/BloodstreamComponent.cs @@ -0,0 +1,83 @@ +using Content.Server.Atmos; +using Content.Server.GameObjects.Components.Chemistry; +using Content.Server.GameObjects.Components.Metabolism; +using Content.Server.Interfaces; +using Content.Shared.Chemistry; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Body.Circulatory +{ + [RegisterComponent] + public class BloodstreamComponent : Component, IGasMixtureHolder + { + public override string Name => "Bloodstream"; + + /// + /// Max volume of internal solution storage + /// + [ViewVariables] private ReagentUnit _initialMaxVolume; + + /// + /// Internal solution for reagent storage + /// + [ViewVariables] private SolutionComponent _internalSolution; + + /// + /// Empty volume of internal solution + /// + [ViewVariables] public ReagentUnit EmptyVolume => _internalSolution.EmptyVolume; + + [ViewVariables] public GasMixture Air { get; set; } = new GasMixture(6); + + [ViewVariables] public SolutionComponent Solution => _internalSolution; + + public override void Initialize() + { + base.Initialize(); + + _internalSolution = Owner.EnsureComponent(); + _internalSolution.MaxVolume = _initialMaxVolume; + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(ref _initialMaxVolume, "maxVolume", ReagentUnit.New(250)); + } + + /// + /// Attempt to transfer provided solution to internal solution. + /// Only supports complete transfers + /// + /// Solution to be transferred + /// Whether or not transfer was a success + public bool TryTransferSolution(Solution solution) + { + // For now doesn't support partial transfers + if (solution.TotalVolume + _internalSolution.CurrentVolume > _internalSolution.MaxVolume) + { + return false; + } + + _internalSolution.TryAddSolution(solution, false, true); + return true; + } + + public void PumpToxins(GasMixture into, float pressure) + { + if (!Owner.TryGetComponent(out MetabolismComponent metabolism)) + { + Air.PumpGasTo(into, pressure); + return; + } + + var toxins = metabolism.Clean(this); + + toxins.PumpGasTo(into, pressure); + Air.Merge(toxins); + } + } +} diff --git a/Content.Server/GameObjects/Components/Nutrition/StomachComponent.cs b/Content.Server/GameObjects/Components/Body/Digestive/StomachComponent.cs similarity index 65% rename from Content.Server/GameObjects/Components/Nutrition/StomachComponent.cs rename to Content.Server/GameObjects/Components/Body/Digestive/StomachComponent.cs index db6e16831e..fa6b76caea 100644 --- a/Content.Server/GameObjects/Components/Nutrition/StomachComponent.cs +++ b/Content.Server/GameObjects/Components/Body/Digestive/StomachComponent.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Linq; +using Content.Server.GameObjects.Components.Body.Circulatory; using Content.Server.GameObjects.Components.Chemistry; -using Content.Server.GameObjects.Components.Metabolism; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Nutrition; using Robust.Shared.GameObjects; @@ -11,7 +11,7 @@ using Robust.Shared.Log; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; -namespace Content.Server.GameObjects.Components.Nutrition +namespace Content.Server.GameObjects.Components.Body.Digestive { /// /// Where reagents go when ingested. Tracks ingested reagents over time, and @@ -25,7 +25,7 @@ namespace Content.Server.GameObjects.Components.Nutrition #pragma warning restore 649 /// - /// Max volume of internal solution storage + /// Max volume of internal solution storage /// public ReagentUnit MaxVolume { @@ -34,33 +34,29 @@ namespace Content.Server.GameObjects.Components.Nutrition } /// - /// Internal solution storage + /// Internal solution storage /// [ViewVariables] private SolutionComponent _stomachContents; /// - /// Initial internal solution storage volume + /// Initial internal solution storage volume /// [ViewVariables] private ReagentUnit _initialMaxVolume; /// - /// Time in seconds between reagents being ingested and them being transferred to + /// Time in seconds between reagents being ingested and them being transferred + /// to /// [ViewVariables] private float _digestionDelay; /// - /// Used to track how long each reagent has been in the stomach + /// Used to track how long each reagent has been in the stomach /// private readonly List _reagentDeltas = new List(); - /// - /// Reference to bloodstream where digested reagents are transferred to - /// - private BloodstreamComponent _bloodstream; - public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); @@ -70,14 +66,10 @@ namespace Content.Server.GameObjects.Components.Nutrition protected override void Startup() { + base.Startup(); + _stomachContents = Owner.GetComponent(); _stomachContents.MaxVolume = _initialMaxVolume; - if (!Owner.TryGetComponent(out _bloodstream)) - { - Logger.Warning(_localizationManager.GetString( - "StomachComponent entity does not have a BloodstreamComponent, which is required for it to function. Owner entity name: {0}", - Owner.Name)); - } } public bool TryTransferSolution(Solution solution) @@ -88,9 +80,9 @@ namespace Content.Server.GameObjects.Components.Nutrition return false; } - //Add solution to _stomachContents + // Add solution to _stomachContents _stomachContents.TryAddSolution(solution, false, true); - //Add each reagent to _reagentDeltas. Used to track how long each reagent has been in the stomach + // Add each reagent to _reagentDeltas. Used to track how long each reagent has been in the stomach foreach (var reagent in solution.Contents) { _reagentDeltas.Add(new ReagentDelta(reagent.ReagentId, reagent.Quantity)); @@ -100,23 +92,26 @@ namespace Content.Server.GameObjects.Components.Nutrition } /// - /// Updates digestion status of ingested reagents. Once reagents surpass _digestionDelay - /// they are moved to the bloodstream, where they are then metabolized. + /// Updates digestion status of ingested reagents. + /// Once reagents surpass _digestionDelay they are moved to the bloodstream, + /// where they are then metabolized. /// - /// The time since the last update in seconds. - public void OnUpdate(float tickTime) + /// The time since the last update in seconds. + public void Update(float frameTime) { - if (_bloodstream == null) + if (!Owner.TryGetComponent(out BloodstreamComponent bloodstream)) { return; } - //Add reagents ready for transfer to bloodstream to transferSolution + // Add reagents ready for transfer to bloodstream to transferSolution var transferSolution = new Solution(); - foreach (var delta in _reagentDeltas.ToList()) //Use ToList here to remove entries while iterating + + // Use ToList here to remove entries while iterating + foreach (var delta in _reagentDeltas.ToList()) { //Increment lifetime of reagents - delta.Increment(tickTime); + delta.Increment(frameTime); if (delta.Lifetime > _digestionDelay) { _stomachContents.TryRemoveReagent(delta.ReagentId, delta.Quantity); @@ -124,12 +119,13 @@ namespace Content.Server.GameObjects.Components.Nutrition _reagentDeltas.Remove(delta); } } - //Transfer digested reagents to bloodstream - _bloodstream.TryTransferSolution(transferSolution); + + // Transfer digested reagents to bloodstream + bloodstream.TryTransferSolution(transferSolution); } /// - /// Used to track quantity changes when ingesting & digesting reagents + /// Used to track quantity changes when ingesting & digesting reagents /// private class ReagentDelta { diff --git a/Content.Server/Health/BodySystem/BodyPart/DroppedBodyPartComponent.cs b/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs similarity index 52% rename from Content.Server/Health/BodySystem/BodyPart/DroppedBodyPartComponent.cs rename to Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs index a49ba2c656..431f60e026 100644 --- a/Content.Server/Health/BodySystem/BodyPart/DroppedBodyPartComponent.cs +++ b/Content.Server/GameObjects/Components/Body/DroppedBodyPartComponent.cs @@ -1,10 +1,9 @@ using System.Collections.Generic; -using System.Globalization; using System.Linq; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.Surgery; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; +using Content.Server.Body; +using Content.Shared.Body.Surgery; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.Interfaces.Player; @@ -14,98 +13,114 @@ using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.ViewVariables; -namespace Content.Server.Health.BodySystem.BodyPart +namespace Content.Server.GameObjects.Components.Body { - /// - /// Component representing a dropped, tangible entity. + /// Component representing a dropped, tangible entity. /// [RegisterComponent] public class DroppedBodyPartComponent : Component, IAfterInteract, IBodyPartContainer { - #pragma warning disable 649 [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager; #pragma warning restore 649 - public sealed override string Name => "DroppedBodyPart"; - - [ViewVariables] - public BodyPart ContainedBodyPart { get; set; } + private readonly Dictionary _optionsCache = new Dictionary(); + private BodyManagerComponent _bodyManagerComponentCache; + private int _idHash; + private IEntity _performerCache; private BoundUserInterface _userInterface; - private Dictionary _optionsCache = new Dictionary(); - private IEntity _performerCache; - private BodyManagerComponent _bodyManagerComponentCache; - private int _idHash = 0; - public override void Initialize() - { - base.Initialize(); - _userInterface = Owner.GetComponent().GetBoundUserInterface(GenericSurgeryUiKey.Key); - _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; - } + public sealed override string Name => "DroppedBodyPart"; - public void TransferBodyPartData(BodyPart data) - { - ContainedBodyPart = data; - Owner.Name = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ContainedBodyPart.Name); - if (Owner.TryGetComponent(out SpriteComponent component)) - { - component.LayerSetRSI(0, data.RSIPath); - component.LayerSetState(0, data.RSIState); - } - } + [ViewVariables] public BodyPart ContainedBodyPart { get; private set; } void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { if (eventArgs.Target == null) + { return; + } CloseAllSurgeryUIs(); _optionsCache.Clear(); _performerCache = null; _bodyManagerComponentCache = null; - if (eventArgs.Target.TryGetComponent(out BodyManagerComponent bodyManager)) + if (eventArgs.Target.TryGetComponent(out BodyManagerComponent bodyManager)) { SendBodySlotListToUser(eventArgs, bodyManager); } } - private void SendBodySlotListToUser(AfterInteractEventArgs eventArgs, BodyManagerComponent bodyManager) + public override void Initialize() { - var toSend = new Dictionary(); //Create dictionary to send to client (text to be shown : data sent back if selected) + base.Initialize(); - //Here we are trying to grab a list of all empty BodySlots adjancent to an existing BodyPart that can be attached to. i.e. an empty left hand slot, connected to an occupied left arm slot would be valid. - List unoccupiedSlots = bodyManager.AllSlots.ToList().Except(bodyManager.OccupiedSlots.ToList()).ToList(); - foreach (string slot in unoccupiedSlots) + _userInterface = Owner.GetComponent() + .GetBoundUserInterface(GenericSurgeryUiKey.Key); + _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + } + + public void TransferBodyPartData(BodyPart data) + { + ContainedBodyPart = data; + Owner.Name = Loc.GetString(ContainedBodyPart.Name); + + if (Owner.TryGetComponent(out SpriteComponent component)) { - if (bodyManager.TryGetSlotType(slot, out BodyPartType typeResult) && typeResult == ContainedBodyPart.PartType) + component.LayerSetRSI(0, data.RSIPath); + component.LayerSetState(0, data.RSIState); + + if (data.RSIColor.HasValue) { - if (bodyManager.TryGetBodyPartConnections(slot, out List bodypartResult)) - { - foreach (BodyPart connectedPart in bodypartResult) - { - if (connectedPart.CanAttachBodyPart(ContainedBodyPart)) - { - _optionsCache.Add(_idHash, slot); - toSend.Add(slot, _idHash++); - } - } - } + component.LayerSetColor(0, data.RSIColor.Value); } } + } + + private void SendBodySlotListToUser(AfterInteractEventArgs eventArgs, BodyManagerComponent bodyManager) + { + // Create dictionary to send to client (text to be shown : data sent back if selected) + var toSend = new Dictionary(); + + // Here we are trying to grab a list of all empty BodySlots adjacent to an existing BodyPart that can be + // attached to. i.e. an empty left hand slot, connected to an occupied left arm slot would be valid. + var unoccupiedSlots = bodyManager.AllSlots.ToList().Except(bodyManager.OccupiedSlots.ToList()).ToList(); + foreach (var slot in unoccupiedSlots) + { + if (!bodyManager.TryGetSlotType(slot, out var typeResult) || + typeResult != ContainedBodyPart.PartType || + !bodyManager.TryGetBodyPartConnections(slot, out var parts)) + { + continue; + } + + foreach (var connectedPart in parts) + { + if (!connectedPart.CanAttachBodyPart(ContainedBodyPart)) + { + continue; + } + + _optionsCache.Add(_idHash, slot); + toSend.Add(slot, _idHash++); + } + } + if (_optionsCache.Count > 0) { OpenSurgeryUI(eventArgs.User.GetComponent().playerSession); - UpdateSurgeryUIBodyPartSlotRequest(eventArgs.User.GetComponent().playerSession, toSend); + UpdateSurgeryUIBodyPartSlotRequest(eventArgs.User.GetComponent().playerSession, + toSend); _performerCache = eventArgs.User; _bodyManagerComponentCache = bodyManager; } - else //If surgery cannot be performed, show message saying so. + else // If surgery cannot be performed, show message saying so. { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, Loc.GetString("You see no way to install {0:theName}.", Owner)); + _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, + Loc.GetString("You see no way to install {0:theName}.", Owner)); } } @@ -115,47 +130,50 @@ namespace Content.Server.Health.BodySystem.BodyPart private void HandleReceiveBodyPartSlot(int key) { CloseSurgeryUI(_performerCache.GetComponent().playerSession); - //TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc - if (!_optionsCache.TryGetValue(key, out object targetObject)) + + // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc + if (!_optionsCache.TryGetValue(key, out var targetObject)) { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You see no useful way to attach {0:theName} anymore.", Owner)); - } - string target = targetObject as string; - if (!_bodyManagerComponentCache.InstallDroppedBodyPart(this, target)) - { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You can't attach it!")); - } - else - { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You attach {0:theName}.", ContainedBodyPart)); + _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, + Loc.GetString("You see no useful way to attach {0:theName} anymore.", Owner)); } + + var target = targetObject as string; + + _sharedNotifyManager.PopupMessage( + _bodyManagerComponentCache.Owner, + _performerCache, + !_bodyManagerComponentCache.InstallDroppedBodyPart(this, target) + ? Loc.GetString("You can't attach it!") + : Loc.GetString("You attach {0:theName}.", ContainedBodyPart)); } - - public void OpenSurgeryUI(IPlayerSession session) + private void OpenSurgeryUI(IPlayerSession session) { _userInterface.Open(session); } - public void UpdateSurgeryUIBodyPartSlotRequest(IPlayerSession session, Dictionary options) + + private void UpdateSurgeryUIBodyPartSlotRequest(IPlayerSession session, Dictionary options) { _userInterface.SendMessage(new RequestBodyPartSlotSurgeryUIMessage(options), session); } - public void CloseSurgeryUI(IPlayerSession session) + + private void CloseSurgeryUI(IPlayerSession session) { _userInterface.Close(session); } - public void CloseAllSurgeryUIs() + + private void CloseAllSurgeryUIs() { _userInterface.CloseAll(); } - private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage message) { switch (message.Message) { case ReceiveBodyPartSlotSurgeryUIMessage msg: - HandleReceiveBodyPartSlot(msg.SelectedOptionID); + HandleReceiveBodyPartSlot(msg.SelectedOptionId); break; } } diff --git a/Content.Server/Health/BodySystem/Mechanism/DroppedMechanismComponent.cs b/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs similarity index 60% rename from Content.Server/Health/BodySystem/Mechanism/DroppedMechanismComponent.cs rename to Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs index 788082c0d9..58cab75d74 100644 --- a/Content.Server/Health/BodySystem/Mechanism/DroppedMechanismComponent.cs +++ b/Content.Server/GameObjects/Components/Body/DroppedMechanismComponent.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -using System.Globalization; -using Content.Server.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem.Mechanism; -using Content.Shared.Health.BodySystem.Surgery; +using Content.Server.Body; +using Content.Server.Body.Mechanisms; +using Content.Shared.Body.Mechanism; +using Content.Shared.Body.Surgery; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; @@ -18,15 +18,14 @@ using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; -namespace Content.Server.Health.BodySystem.Mechanism { - +namespace Content.Server.GameObjects.Components.Body +{ /// - /// Component representing a dropped, tangible entity. + /// Component representing a dropped, tangible entity. /// [RegisterComponent] public class DroppedMechanismComponent : Component, IAfterInteract { - #pragma warning disable 649 [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager; [Dependency] private IPrototypeManager _prototypeManager; @@ -34,98 +33,120 @@ namespace Content.Server.Health.BodySystem.Mechanism { public sealed override string Name => "DroppedMechanism"; - [ViewVariables] - public Mechanism ContainedMechanism { get; private set; } + private readonly Dictionary _optionsCache = new Dictionary(); + + private BodyManagerComponent _bodyManagerComponentCache; + + private int _idHash; + + private IEntity _performerCache; private BoundUserInterface _userInterface; - private Dictionary _optionsCache = new Dictionary(); - private IEntity _performerCache; - private BodyManagerComponent _bodyManagerComponentCache; - private int _idHash = 0; - public override void Initialize() - { - base.Initialize(); - _userInterface = Owner.GetComponent().GetBoundUserInterface(GenericSurgeryUiKey.Key); - _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; - } - - public void InitializeDroppedMechanism(Mechanism data) - { - ContainedMechanism = data; - Owner.Name = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(ContainedMechanism.Name); - if (Owner.TryGetComponent(out SpriteComponent component)) - { - component.LayerSetRSI(0, data.RSIPath); - component.LayerSetState(0, data.RSIState); - } - } + [ViewVariables] public Mechanism ContainedMechanism { get; private set; } void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { if (eventArgs.Target == null) + { return; + } CloseAllSurgeryUIs(); _optionsCache.Clear(); _performerCache = null; _bodyManagerComponentCache = null; - if (eventArgs.Target.TryGetComponent(out BodyManagerComponent bodyManager)) + if (eventArgs.Target.TryGetComponent(out var bodyManager)) { SendBodyPartListToUser(eventArgs, bodyManager); } - else if (eventArgs.Target.TryGetComponent(out DroppedBodyPartComponent droppedBodyPart)) + else if (eventArgs.Target.TryGetComponent(out var droppedBodyPart)) { if (droppedBodyPart.ContainedBodyPart == null) { - Logger.Debug("Installing a mechanism was attempted on an IEntity with a DroppedBodyPartComponent that doesn't have a BodyPart in it!"); + Logger.Debug( + "Installing a mechanism was attempted on an IEntity with a DroppedBodyPartComponent that doesn't have a BodyPart in it!"); throw new InvalidOperationException("A DroppedBodyPartComponent exists without a BodyPart in it!"); } + if (!droppedBodyPart.ContainedBodyPart.TryInstallDroppedMechanism(this)) { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, Loc.GetString("You can't fit it in!")); + _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, + Loc.GetString("You can't fit it in!")); } } } + public override void Initialize() + { + base.Initialize(); + + _userInterface = Owner.GetComponent() + .GetBoundUserInterface(GenericSurgeryUiKey.Key); + _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + } + + public void InitializeDroppedMechanism(Mechanism data) + { + ContainedMechanism = data; + Owner.Name = Loc.GetString(ContainedMechanism.Name); + + if (Owner.TryGetComponent(out SpriteComponent component)) + { + component.LayerSetRSI(0, data.RSIPath); + component.LayerSetState(0, data.RSIState); + } + } + public override void ExposeData(ObjectSerializer serializer) { - //This is a temporary way to have spawnable hard-coded DroppedMechanismComponent prototypes - //In the future (when it becomes possible) DroppedMechanismComponent should be auto-generated from the Mechanism prototypes - string debugLoadMechanismData = ""; + // This is a temporary way to have spawnable hard-coded DroppedMechanismComponent prototypes + // In the future (when it becomes possible) DroppedMechanismComponent should be auto-generated from + // the Mechanism prototypes + var debugLoadMechanismData = ""; base.ExposeData(serializer); + serializer.DataField(ref debugLoadMechanismData, "debugLoadMechanismData", ""); + if (serializer.Reading && debugLoadMechanismData != "") { _prototypeManager.TryIndex(debugLoadMechanismData, out MechanismPrototype data); - InitializeDroppedMechanism(new Mechanism(data)); + + var mechanism = new Mechanism(data); + mechanism.EnsureInitialize(); + + InitializeDroppedMechanism(mechanism); } } - - private void SendBodyPartListToUser(AfterInteractEventArgs eventArgs, BodyManagerComponent bodyManager) { - var toSend = new Dictionary(); //Create dictionary to send to client (text to be shown : data sent back if selected) - foreach (var (key, value) in bodyManager.PartDictionary) - { //For each limb in the target, add it to our cache if it is a valid option. + // Create dictionary to send to client (text to be shown : data sent back if selected) + var toSend = new Dictionary(); + + foreach (var (key, value) in bodyManager.Parts) + { + // For each limb in the target, add it to our cache if it is a valid option. if (value.CanInstallMechanism(ContainedMechanism)) { _optionsCache.Add(_idHash, value); toSend.Add(key + ": " + value.Name, _idHash++); } } + if (_optionsCache.Count > 0) { OpenSurgeryUI(eventArgs.User.GetComponent().playerSession); - UpdateSurgeryUIBodyPartRequest(eventArgs.User.GetComponent().playerSession, toSend); + UpdateSurgeryUIBodyPartRequest(eventArgs.User.GetComponent().playerSession, + toSend); _performerCache = eventArgs.User; _bodyManagerComponentCache = bodyManager; } - else //If surgery cannot be performed, show message saying so. + else // If surgery cannot be performed, show message saying so. { - _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, Loc.GetString("You see no way to install the {0}.", Owner.Name)); + _sharedNotifyManager.PopupMessage(eventArgs.Target, eventArgs.User, + Loc.GetString("You see no way to install the {0}.", Owner.Name)); } } @@ -135,52 +156,55 @@ namespace Content.Server.Health.BodySystem.Mechanism { private void HandleReceiveBodyPart(int key) { CloseSurgeryUI(_performerCache.GetComponent().playerSession); - //TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc - if (!_optionsCache.TryGetValue(key, out object targetObject)) + + // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc + if (!_optionsCache.TryGetValue(key, out var targetObject)) { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You see no useful way to use the {0} anymore.", Owner.Name)); - } - BodyPart.BodyPart target = targetObject as BodyPart.BodyPart; - if (!target.TryInstallDroppedMechanism(this)) - { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You can't fit it in!")); - } - else - { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You jam the {1} inside {0:them}.", _performerCache, ContainedMechanism.Name)); + _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, + Loc.GetString("You see no useful way to use the {0} anymore.", Owner.Name)); + return; } + + var target = targetObject as BodyPart; + + _sharedNotifyManager.PopupMessage( + _bodyManagerComponentCache.Owner, + _performerCache, + !target.TryInstallDroppedMechanism(this) + ? Loc.GetString("You can't fit it in!") + : Loc.GetString("You jam the {1} inside {0:them}.", _performerCache, ContainedMechanism.Name)); + + // TODO: {1:theName} } - - - - public void OpenSurgeryUI(IPlayerSession session) + private void OpenSurgeryUI(IPlayerSession session) { _userInterface.Open(session); } - public void UpdateSurgeryUIBodyPartRequest(IPlayerSession session, Dictionary options) + + private void UpdateSurgeryUIBodyPartRequest(IPlayerSession session, Dictionary options) { _userInterface.SendMessage(new RequestBodyPartSurgeryUIMessage(options), session); } - public void CloseSurgeryUI(IPlayerSession session) + + private void CloseSurgeryUI(IPlayerSession session) { _userInterface.Close(session); } - public void CloseAllSurgeryUIs() + + private void CloseAllSurgeryUIs() { _userInterface.CloseAll(); } - private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage message) { switch (message.Message) { case ReceiveBodyPartSurgeryUIMessage msg: - HandleReceiveBodyPart(msg.SelectedOptionID); + HandleReceiveBodyPart(msg.SelectedOptionId); break; } } } } - diff --git a/Content.Server/GameObjects/Components/Body/Respiratory/LungComponent.cs b/Content.Server/GameObjects/Components/Body/Respiratory/LungComponent.cs new file mode 100644 index 0000000000..eb625d7a64 --- /dev/null +++ b/Content.Server/GameObjects/Components/Body/Respiratory/LungComponent.cs @@ -0,0 +1,127 @@ +using System; +using Content.Server.Atmos; +using Content.Server.GameObjects.Components.Body.Circulatory; +using Content.Server.Interfaces; +using Content.Shared.Atmos; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Body.Respiratory +{ + [RegisterComponent] + public class LungComponent : Component, IGasMixtureHolder + { + public override string Name => "Lung"; + + private float _accumulatedFrameTime; + + /// + /// The pressure that this lung exerts on the air around it + /// + [ViewVariables(VVAccess.ReadWrite)] private float Pressure { get; set; } + + [ViewVariables] public GasMixture Air { get; set; } = new GasMixture(); + + [ViewVariables] public LungStatus Status { get; set; } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataReadWriteFunction( + "volume", + 6, + vol => Air.Volume = vol, + () => Air.Volume); + serializer.DataField(this, l => l.Pressure, "pressure", 100); + } + + public void Update(float frameTime) + { + if (Status == LungStatus.None) + { + Status = LungStatus.Inhaling; + } + + _accumulatedFrameTime += Status switch + { + LungStatus.Inhaling => frameTime, + LungStatus.Exhaling => -frameTime, + _ => throw new ArgumentOutOfRangeException() + }; + + var absoluteTime = Math.Abs(_accumulatedFrameTime); + if (absoluteTime < 2) + { + return; + } + + switch (Status) + { + case LungStatus.Inhaling: + Inhale(absoluteTime); + Status = LungStatus.Exhaling; + break; + case LungStatus.Exhaling: + Exhale(absoluteTime); + Status = LungStatus.Inhaling; + break; + default: + throw new ArgumentOutOfRangeException(); + } + + _accumulatedFrameTime = absoluteTime - 2; + } + + public void Inhale(float frameTime) + { + if (!Owner.TryGetComponent(out BloodstreamComponent bloodstream)) + { + return; + } + + if (!Owner.Transform.GridPosition.TryGetTileAir(out var tileAir)) + { + return; + } + + var amount = Atmospherics.BreathPercentage * frameTime; + var volumeRatio = amount / tileAir.Volume; + var temp = tileAir.RemoveRatio(volumeRatio); + + temp.PumpGasTo(Air, Pressure); + Air.PumpGasTo(bloodstream.Air, Pressure); + tileAir.Merge(temp); + } + + public void Exhale(float frameTime) + { + if (!Owner.TryGetComponent(out BloodstreamComponent bloodstream)) + { + return; + } + + if (!Owner.Transform.GridPosition.TryGetTileAir(out var tileAir)) + { + return; + } + + bloodstream.PumpToxins(Air, Pressure); + + var amount = Atmospherics.BreathPercentage * frameTime; + var volumeRatio = amount / tileAir.Volume; + var temp = tileAir.RemoveRatio(volumeRatio); + + temp.PumpGasTo(tileAir, Pressure); + Air.Merge(temp); + } + } + + public enum LungStatus + { + None = 0, + Inhaling, + Exhaling + } +} diff --git a/Content.Server/Health/BodySystem/Surgery/Surgeon/SurgeryToolComponent.cs b/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs similarity index 55% rename from Content.Server/Health/BodySystem/Surgery/Surgeon/SurgeryToolComponent.cs rename to Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs index 42e9e3f2ca..7f4ece43a0 100644 --- a/Content.Server/Health/BodySystem/Surgery/Surgeon/SurgeryToolComponent.cs +++ b/Content.Server/GameObjects/Components/Body/SurgeryToolComponent.cs @@ -1,14 +1,16 @@ using System; using System.Collections.Generic; -using Content.Server.Health.BodySystem.BodyPart; -using Content.Server.Health.BodySystem.Mechanism; +using Content.Server.Body; +using Content.Server.Body.Mechanisms; +using Content.Server.Body.Surgery; +using Content.Shared.Body.Surgery; using Content.Shared.GameObjects; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.Surgery; +using Content.Shared.GameObjects.Components.Body; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; +using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -17,110 +19,136 @@ using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Serialization; -namespace Content.Server.Health.BodySystem.Surgery.Surgeon +namespace Content.Server.GameObjects.Components.Body { - //TODO: add checks to close UI if user walks too far away from tool or target. + // TODO: add checks to close UI if user walks too far away from tool or target. /// - /// Server-side component representing a generic tool capable of performing surgery. For instance, the scalpel. + /// Server-side component representing a generic tool capable of performing surgery. + /// For instance, the scalpel. /// [RegisterComponent] public class SurgeryToolComponent : Component, ISurgeon, IAfterInteract { - public override string Name => "SurgeryTool"; - public override uint? NetID => ContentNetIDs.SURGERY; - #pragma warning disable 649 [Dependency] private readonly ISharedNotifyManager _sharedNotifyManager; #pragma warning restore 649 - public float BaseOperationTime { get => _baseOperateTime; set => _baseOperateTime = value; } + public override string Name => "SurgeryTool"; + public override uint? NetID => ContentNetIDs.SURGERY; + + private readonly Dictionary _optionsCache = new Dictionary(); + private float _baseOperateTime; - private SurgeryType _surgeryType; - private HashSet _subscribedSessions = new HashSet(); - private BoundUserInterface _userInterface; - private Dictionary _optionsCache = new Dictionary(); - private IEntity _performerCache; private BodyManagerComponent _bodyManagerComponentCache; - private ISurgeon.MechanismRequestCallback _callbackCache; - private int _idHash = 0; - public override void Initialize() - { - base.Initialize(); - _userInterface = Owner.GetComponent().GetBoundUserInterface(GenericSurgeryUiKey.Key); - _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; - } + private ISurgeon.MechanismRequestCallback _callbackCache; + + private int _idHash; + + private IEntity _performerCache; + + private SurgeryType _surgeryType; + + private BoundUserInterface _userInterface; void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) { if (eventArgs.Target == null) + { return; + } + + if (!eventArgs.User.TryGetComponent(out IActorComponent actor)) + { + return; + } CloseAllSurgeryUIs(); _optionsCache.Clear(); + _performerCache = null; _bodyManagerComponentCache = null; _callbackCache = null; - if (eventArgs.Target.TryGetComponent(out BodyManagerComponent bodyManager)) //Attempt surgery on a BodyManagerComponent by sending a list of operatable BodyParts to the client to choose from + // Attempt surgery on a BodyManagerComponent by sending a list of operable BodyParts to the client to choose from + if (eventArgs.Target.TryGetComponent(out BodyManagerComponent body)) { - var toSend = new Dictionary(); //Create dictionary to send to client (text to be shown : data sent back if selected) - foreach (var(key, value) in bodyManager.PartDictionary) { //For each limb in the target, add it to our cache if it is a valid option. + // Create dictionary to send to client (text to be shown : data sent back if selected) + var toSend = new Dictionary(); + + foreach (var (key, value) in body.Parts) + { + // For each limb in the target, add it to our cache if it is a valid option. if (value.SurgeryCheck(_surgeryType)) { _optionsCache.Add(_idHash, value); toSend.Add(key + ": " + value.Name, _idHash++); } } + if (_optionsCache.Count > 0) { - OpenSurgeryUI(eventArgs.User.GetComponent().playerSession); - UpdateSurgeryUIBodyPartRequest(eventArgs.User.GetComponent().playerSession, toSend); - _performerCache = eventArgs.User; //Also, cache the data. - _bodyManagerComponentCache = bodyManager; + OpenSurgeryUI(actor.playerSession); + UpdateSurgeryUIBodyPartRequest(actor.playerSession, toSend); + _performerCache = eventArgs.User; // Also, cache the data. + _bodyManagerComponentCache = body; } - else //If surgery cannot be performed, show message saying so. + else // If surgery cannot be performed, show message saying so. { SendNoUsefulWayToUsePopup(); } } - else if (eventArgs.Target.TryGetComponent(out DroppedBodyPartComponent droppedBodyPart)) //Attempt surgery on a DroppedBodyPart - there's only one possible target so no need for selection UI + else if (eventArgs.Target.TryGetComponent(out var droppedBodyPart)) { + // Attempt surgery on a DroppedBodyPart - there's only one possible target so no need for selection UI _performerCache = eventArgs.User; - if (droppedBodyPart.ContainedBodyPart == null) //Throw error if the DroppedBodyPart has no data in it. + + if (droppedBodyPart.ContainedBodyPart == null) { - Logger.Debug("Surgery was attempted on an IEntity with a DroppedBodyPartComponent that doesn't have a BodyPart in it!"); + // Throw error if the DroppedBodyPart has no data in it. + Logger.Debug( + "Surgery was attempted on an IEntity with a DroppedBodyPartComponent that doesn't have a BodyPart in it!"); throw new InvalidOperationException("A DroppedBodyPartComponent exists without a BodyPart in it!"); } - if (droppedBodyPart.ContainedBodyPart.SurgeryCheck(_surgeryType)) //If surgery can be performed... - { - if (!droppedBodyPart.ContainedBodyPart.AttemptSurgery(_surgeryType, droppedBodyPart, this, eventArgs.User)) //...do the surgery. - { - Logger.Debug("Error when trying to perform surgery on bodypart " + eventArgs.User.Name + "!"); //Log error if the surgery fails somehow. - throw new InvalidOperationException(); - } - } - else //If surgery cannot be performed, show message saying so. + + // If surgery can be performed... + if (!droppedBodyPart.ContainedBodyPart.SurgeryCheck(_surgeryType)) { SendNoUsefulWayToUsePopup(); + return; } + + //...do the surgery. + if (droppedBodyPart.ContainedBodyPart.AttemptSurgery(_surgeryType, droppedBodyPart, this, + eventArgs.User)) + { + return; + } + + // Log error if the surgery fails somehow. + Logger.Debug($"Error when trying to perform surgery on ${nameof(BodyPart)} {eventArgs.User.Name}"); + throw new InvalidOperationException(); } } - public void RequestMechanism(List options, ISurgeon.MechanismRequestCallback callback) + public float BaseOperationTime { get => _baseOperateTime; set => _baseOperateTime = value; } + + public void RequestMechanism(IEnumerable options, ISurgeon.MechanismRequestCallback callback) { - var toSend = new Dictionary (); - foreach (Mechanism.Mechanism mechanism in options) + var toSend = new Dictionary(); + foreach (var mechanism in options) { _optionsCache.Add(_idHash, mechanism); toSend.Add(mechanism.Name, _idHash++); } + if (_optionsCache.Count > 0) { OpenSurgeryUI(_performerCache.GetComponent().playerSession); - UpdateSurgeryUIMechanismRequest(_performerCache.GetComponent().playerSession, toSend); + UpdateSurgeryUIMechanismRequest(_performerCache.GetComponent().playerSession, + toSend); _callbackCache = callback; } else @@ -130,95 +158,112 @@ namespace Content.Server.Health.BodySystem.Surgery.Surgeon } } + public override void Initialize() + { + base.Initialize(); + _userInterface = Owner.GetComponent() + .GetBoundUserInterface(GenericSurgeryUiKey.Key); + _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; + } - - - - - public void OpenSurgeryUI(IPlayerSession session) + private void OpenSurgeryUI(IPlayerSession session) { _userInterface.Open(session); } - public void UpdateSurgeryUIBodyPartRequest(IPlayerSession session, Dictionary options) + + private void UpdateSurgeryUIBodyPartRequest(IPlayerSession session, Dictionary options) { _userInterface.SendMessage(new RequestBodyPartSurgeryUIMessage(options), session); } - public void UpdateSurgeryUIMechanismRequest(IPlayerSession session, Dictionary options) + + private void UpdateSurgeryUIMechanismRequest(IPlayerSession session, Dictionary options) { _userInterface.SendMessage(new RequestMechanismSurgeryUIMessage(options), session); } - public void CloseSurgeryUI(IPlayerSession session) + + private void CloseSurgeryUI(IPlayerSession session) { _userInterface.Close(session); } - public void CloseAllSurgeryUIs() + + private void CloseAllSurgeryUIs() { _userInterface.CloseAll(); } - - - private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage message) { switch (message.Message) { case ReceiveBodyPartSurgeryUIMessage msg: - HandleReceiveBodyPart(msg.SelectedOptionID); + HandleReceiveBodyPart(msg.SelectedOptionId); break; case ReceiveMechanismSurgeryUIMessage msg: - HandleReceiveMechanism(msg.SelectedOptionID); + HandleReceiveMechanism(msg.SelectedOptionId); break; } } /// - /// Called after the client chooses from a list of possible BodyParts that can be operated on. + /// Called after the client chooses from a list of possible + /// that can be operated on. /// private void HandleReceiveBodyPart(int key) { CloseSurgeryUI(_performerCache.GetComponent().playerSession); - //TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc - if (!_optionsCache.TryGetValue(key, out object targetObject)) - { - SendNoUsefulWayToUseAnymorePopup(); - } - BodyPart.BodyPart target = targetObject as BodyPart.BodyPart; - if (!target.AttemptSurgery(_surgeryType, _bodyManagerComponentCache, this, _performerCache)) + // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc + if (!_optionsCache.TryGetValue(key, out var targetObject)) { SendNoUsefulWayToUseAnymorePopup(); } - } - /// - /// Called after the client chooses from a list of possible Mechanisms to choose from. - /// - private void HandleReceiveMechanism(int key) - { - //TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc - if (!_optionsCache.TryGetValue(key, out object targetObject)) + var target = targetObject as BodyPart; + + if (!target.AttemptSurgery(_surgeryType, _bodyManagerComponentCache, this, _performerCache)) { SendNoUsefulWayToUseAnymorePopup(); } - Mechanism.Mechanism target = targetObject as Mechanism.Mechanism; + } + + /// + /// Called after the client chooses from a list of possible + /// to choose from. + /// + private void HandleReceiveMechanism(int key) + { + // TODO: sanity checks to see whether user is in range, user is still able-bodied, target is still the same, etc etc + if (!_optionsCache.TryGetValue(key, out var targetObject)) + { + SendNoUsefulWayToUseAnymorePopup(); + } + + var target = targetObject as Mechanism; + CloseSurgeryUI(_performerCache.GetComponent().playerSession); _callbackCache(target, _bodyManagerComponentCache, this, _performerCache); } private void SendNoUsefulWayToUsePopup() { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You see no useful way to use {0:theName}.", Owner)); + _sharedNotifyManager.PopupMessage( + _bodyManagerComponentCache.Owner, + _performerCache, + Loc.GetString("You see no useful way to use {0:theName}.", Owner)); } private void SendNoUsefulWayToUseAnymorePopup() { - _sharedNotifyManager.PopupMessage(_bodyManagerComponentCache.Owner, _performerCache, Loc.GetString("You see no useful way to use {0:theName} anymore.", Owner)); + _sharedNotifyManager.PopupMessage( + _bodyManagerComponentCache.Owner, + _performerCache, + Loc.GetString("You see no useful way to use {0:theName} anymore.", Owner)); } public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); + serializer.DataField(ref _surgeryType, "surgeryType", SurgeryType.Incision); serializer.DataField(ref _baseOperateTime, "baseOperateTime", 5); } diff --git a/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs b/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs index 5c9870c53f..877a0c2727 100644 --- a/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs +++ b/Content.Server/GameObjects/Components/Buckle/BuckleComponent.cs @@ -373,9 +373,9 @@ namespace Content.Server.GameObjects.Components.Buckle StandingStateHelper.Standing(Owner); } - if (Owner.TryGetComponent(out SpeciesComponent species)) + if (Owner.TryGetComponent(out MobStateManagerComponent stateManager)) { - species.CurrentDamageState.EnterState(Owner); + stateManager.CurrentMobState.EnterState(Owner); } BuckleStatus(); diff --git a/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs b/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs index 9f78004304..03ac3855e7 100644 --- a/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/InjectorComponent.cs @@ -1,5 +1,5 @@ using System; -using Content.Server.GameObjects.Components.Metabolism; +using Content.Server.GameObjects.Components.Body.Circulatory; using Content.Server.Interfaces; using Content.Server.Utility; using Content.Shared.Chemistry; @@ -134,7 +134,8 @@ namespace Content.Server.GameObjects.Components.Chemistry } else //Handle injecting into bloodstream { - if (targetEntity.TryGetComponent(out var bloodstream) && _toggleState == InjectorToggleMode.Inject) + if (targetEntity.TryGetComponent(out BloodstreamComponent bloodstream) && + _toggleState == InjectorToggleMode.Inject) { TryInjectIntoBloodstream(bloodstream, eventArgs.User); } diff --git a/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs b/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs index 6d682e594f..7ff05c4398 100644 --- a/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/PillComponent.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Nutrition; +using Content.Server.GameObjects.Components.Body.Digestive; +using Content.Server.GameObjects.Components.Nutrition; using Content.Server.GameObjects.Components.Utensil; using Content.Server.Utility; using Content.Shared.Chemistry; diff --git a/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs b/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs index 5218f996ce..53e3ca2463 100644 --- a/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs +++ b/Content.Server/GameObjects/Components/Chemistry/SolutionComponent.cs @@ -27,7 +27,7 @@ namespace Content.Server.GameObjects.Components.Chemistry /// ECS component that manages a liquid solution of reagents. /// [RegisterComponent] - internal class SolutionComponent : SharedSolutionComponent, IExamine + public class SolutionComponent : SharedSolutionComponent, IExamine { #pragma warning disable 649 [Dependency] private readonly IPrototypeManager _prototypeManager; diff --git a/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs b/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs index 0a9e53e03a..15ad3e8a35 100644 --- a/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs +++ b/Content.Server/GameObjects/Components/Damage/BreakableComponent.cs @@ -1,39 +1,59 @@ using System.Collections.Generic; -using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces.GameObjects; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; using Robust.Shared.Random; -using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Damage { + // TODO: Repair needs to set CurrentDamageState to DamageState.Alive, but it doesn't exist... should be easy enough if it's just an interface you can slap on BreakableComponent + + /// + /// When attached to an , allows it to take damage and sets it to a "broken state" after taking + /// enough damage. + /// [RegisterComponent] - public class BreakableComponent : Component, IOnDamageBehavior, IExAct + [ComponentReference(typeof(IDamageableComponent))] + public class BreakableComponent : RuinableComponent, IExAct { - - #pragma warning disable 649 +#pragma warning disable 649 [Dependency] private readonly IEntitySystemManager _entitySystemManager; - #pragma warning restore 649 - /// - public override string Name => "Breakable"; - public DamageThreshold Threshold { get; private set; } + [Dependency] private readonly IRobustRandom _random; +#pragma warning restore 649 - public DamageType damageType = DamageType.Total; - public int damageValue = 0; - public bool broken = false; + public override string Name => "Breakable"; private ActSystem _actSystem; + private DamageState _currentDamageState; - public override void ExposeData(ObjectSerializer serializer) + public override List SupportedDamageStates => + new List {DamageState.Alive, DamageState.Dead}; + + public override DamageState CurrentDamageState => _currentDamageState; + + void IExAct.OnExplosion(ExplosionEventArgs eventArgs) { - base.ExposeData(serializer); + switch (eventArgs.Severity) + { + case ExplosionSeverity.Destruction: + PerformDestruction(); + break; + case ExplosionSeverity.Heavy: + PerformDestruction(); + break; + case ExplosionSeverity.Light: + if (_random.Prob(0.5f)) + { + PerformDestruction(); + } - serializer.DataField(ref damageValue, "thresholdvalue", 100); - serializer.DataField(ref damageType, "thresholdtype", DamageType.Total); + break; + } } public override void Initialize() @@ -42,38 +62,21 @@ namespace Content.Server.GameObjects.Components.Damage _actSystem = _entitySystemManager.GetEntitySystem(); } - public List GetAllDamageThresholds() + // Might want to move this down and have a more standardized method of revival + public void FixAllDamage() { - Threshold = new DamageThreshold(damageType, damageValue, ThresholdType.Breakage); - return new List() {Threshold}; + Heal(); + _currentDamageState = DamageState.Alive; } - public void OnDamageThresholdPassed(object obj, DamageThresholdPassedEventArgs e) + protected override void DestructionBehavior() { - if (e.Passed && e.DamageThreshold == Threshold && broken == false) + _actSystem.HandleBreakage(Owner); + if (!Owner.Deleted && DestroySound != string.Empty) { - broken = true; - _actSystem.HandleBreakage(Owner); + var pos = Owner.Transform.GridPosition; + EntitySystem.Get().PlayAtCoords(DestroySound, pos); } } - - public void OnExplosion(ExplosionEventArgs eventArgs) - { - var prob = IoCManager.Resolve(); - switch (eventArgs.Severity) - { - case ExplosionSeverity.Destruction: - _actSystem.HandleBreakage(Owner); - break; - case ExplosionSeverity.Heavy: - _actSystem.HandleBreakage(Owner); - break; - case ExplosionSeverity.Light: - if(prob.Prob(0.4f)) - _actSystem.HandleBreakage(Owner); - break; - } - } - } } diff --git a/Content.Server/GameObjects/Components/Damage/DamageOnHighSpeedImpactComponent.cs b/Content.Server/GameObjects/Components/Damage/DamageOnHighSpeedImpactComponent.cs index 0dff2a90f2..756e417e0e 100644 --- a/Content.Server/GameObjects/Components/Damage/DamageOnHighSpeedImpactComponent.cs +++ b/Content.Server/GameObjects/Components/Damage/DamageOnHighSpeedImpactComponent.cs @@ -1,6 +1,7 @@ using System; using Content.Server.GameObjects.Components.Mobs; using Content.Shared.Audio; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; @@ -23,7 +24,7 @@ namespace Content.Server.GameObjects.Components.Damage public override string Name => "DamageOnHighSpeedImpact"; - public DamageType Damage { get; set; } = DamageType.Brute; + public DamageType Damage { get; set; } = DamageType.Blunt; public float MinimumSpeed { get; set; } = 20f; public int BaseDamage { get; set; } = 5; public float Factor { get; set; } = 0.75f; @@ -38,7 +39,7 @@ namespace Content.Server.GameObjects.Components.Damage { base.ExposeData(serializer); - serializer.DataField(this, x => Damage, "damage", DamageType.Brute); + serializer.DataField(this, x => Damage, "damage", DamageType.Blunt); serializer.DataField(this, x => MinimumSpeed, "minimumSpeed", 20f); serializer.DataField(this, x => BaseDamage, "baseDamage", 5); serializer.DataField(this, x => Factor, "factor", 1f); @@ -51,7 +52,7 @@ namespace Content.Server.GameObjects.Components.Damage public void CollideWith(IEntity collidedWith) { - if (!Owner.TryGetComponent(out ICollidableComponent collidable) || !Owner.TryGetComponent(out DamageableComponent damageable)) return; + if (!Owner.TryGetComponent(out ICollidableComponent collidable) || !Owner.TryGetComponent(out IDamageableComponent damageable)) return; var speed = collidable.LinearVelocity.Length; @@ -70,7 +71,7 @@ namespace Content.Server.GameObjects.Components.Damage if (Owner.TryGetComponent(out StunnableComponent stun) && _robustRandom.Prob(StunChance)) stun.Stun(StunSeconds); - damageable.TakeDamage(Damage, damage, collidedWith, Owner); + damageable.ChangeDamage(Damage, damage, false, collidedWith); } } } diff --git a/Content.Server/GameObjects/Components/Damage/DamageOnToolInteractComponent.cs b/Content.Server/GameObjects/Components/Damage/DamageOnToolInteractComponent.cs index 836dd9d000..034d92c9cf 100644 --- a/Content.Server/GameObjects/Components/Damage/DamageOnToolInteractComponent.cs +++ b/Content.Server/GameObjects/Components/Damage/DamageOnToolInteractComponent.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; using Content.Server.GameObjects.Components.Interactable; -using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Interactable; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; @@ -9,7 +9,7 @@ using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Damage { [RegisterComponent] - class DamageOnToolInteractComponent : Component, IInteractUsing + public class DamageOnToolInteractComponent : Component, IInteractUsing { public override string Name => "DamageOnToolInteract"; @@ -29,7 +29,7 @@ namespace Content.Server.GameObjects.Components.Damage public override void Initialize() { base.Initialize(); - Owner.EnsureComponent(); + Owner.EnsureComponent(); } public bool InteractUsing(InteractUsingEventArgs eventArgs) @@ -40,12 +40,12 @@ namespace Content.Server.GameObjects.Components.Damage { if (tool.HasQuality(ToolQuality.Welding) && toolQuality == ToolQuality.Welding) { - if (eventArgs.Using.TryGetComponent(out WelderComponent welder)) - { + if (eventArgs.Using.TryGetComponent(out WelderComponent welder)) + { if (welder.WelderLit) return CallDamage(eventArgs, tool); - } + } break; //If the tool quality is welding and its not lit or its not actually a welder that can be lit then its pointless to continue. - } + } if (tool.HasQuality(toolQuality)) return CallDamage(eventArgs, tool); } @@ -55,14 +55,17 @@ namespace Content.Server.GameObjects.Components.Damage protected bool CallDamage(InteractUsingEventArgs eventArgs, ToolComponent tool) { - if (eventArgs.Target.TryGetComponent(out var damageable)) + if (eventArgs.Target.TryGetComponent(out var damageable)) { - if(tool.HasQuality(ToolQuality.Welding)) damageable.TakeDamage(DamageType.Heat, Damage, eventArgs.Using, eventArgs.User); - else - damageable.TakeDamage(DamageType.Brute, Damage, eventArgs.Using, eventArgs.User); + damageable.ChangeDamage(tool.HasQuality(ToolQuality.Welding) + ? DamageType.Heat + : DamageType.Blunt, + Damage, false, eventArgs.User); + return true; } - return false; + + return false; } } } diff --git a/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs b/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs deleted file mode 100644 index 1efd2ba7a4..0000000000 --- a/Content.Server/GameObjects/Components/Damage/DamageThreshold.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.GameObjects.Components.Damage -{ - /// - /// Triggers an event when values rise above or drop below this threshold - /// - public struct DamageThreshold - { - public DamageType DamageType { get; } - public int Value { get; } - public ThresholdType ThresholdType { get; } - - public DamageThreshold(DamageType damageType, int value, ThresholdType thresholdType) - { - DamageType = damageType; - Value = value; - ThresholdType = thresholdType; - } - - public override bool Equals(Object obj) - { - return obj is DamageThreshold threshold && this == threshold; - } - public override int GetHashCode() - { - return DamageType.GetHashCode() ^ Value.GetHashCode(); - } - public static bool operator ==(DamageThreshold x, DamageThreshold y) - { - return x.DamageType == y.DamageType && x.Value == y.Value; - } - public static bool operator !=(DamageThreshold x, DamageThreshold y) - { - return !(x == y); - } - } - - public enum ThresholdType - { - None, - Destruction, - Death, - Critical, - HUDUpdate, - Breakage, - } - - public class DamageThresholdPassedEventArgs : EventArgs - { - public DamageThreshold DamageThreshold { get; } - public bool Passed { get; } - public int ExcessDamage { get; } - - public DamageThresholdPassedEventArgs(DamageThreshold threshold, bool passed, int excess) - { - DamageThreshold = threshold; - Passed = passed; - ExcessDamage = excess; - } - } - - public class DamageEventArgs : EventArgs - { - /// - /// Type of damage. - /// - public DamageType Type { get; } - - /// - /// Change in damage. - /// - public int Damage { get; } - - /// - /// The entity that damaged this one. - /// Could be null. - /// - public IEntity Source { get; } - - /// - /// The mob entity that damaged this one. - /// Could be null. - /// - public IEntity SourceMob { get; } - - public DamageEventArgs(DamageType type, int damage, IEntity source, IEntity sourceMob) - { - Type = type; - Damage = damage; - Source = source; - SourceMob = sourceMob; - } - } -} - diff --git a/Content.Server/GameObjects/Components/Damage/DamageableComponent.cs b/Content.Server/GameObjects/Components/Damage/DamageableComponent.cs deleted file mode 100644 index 613355bce2..0000000000 --- a/Content.Server/GameObjects/Components/Damage/DamageableComponent.cs +++ /dev/null @@ -1,212 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Content.Server.Interfaces.GameObjects; -using Content.Server.Interfaces.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; - -namespace Content.Server.GameObjects.Components.Damage -{ - //TODO: add support for component add/remove - - /// - /// A component that handles receiving damage and healing, - /// as well as informing other components of it. - /// - [RegisterComponent] - public class DamageableComponent : SharedDamageableComponent, IDamageableComponent - { - /// - public override string Name => "Damageable"; - - /// - /// The resistance set of this object. - /// Affects receiving damage of various types. - /// - [ViewVariables] - public ResistanceSet Resistances { get; private set; } - - [ViewVariables] - public IReadOnlyDictionary CurrentDamage => _currentDamage; - private Dictionary _currentDamage = new Dictionary(); - - [ViewVariables] - public Dictionary> Thresholds = new Dictionary>(); - - public event EventHandler DamageThresholdPassed; - public event EventHandler Damaged; - - public override ComponentState GetComponentState() - { - return new DamageComponentState(_currentDamage); - } - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - serializer.DataField(this, x => Resistances, "resistances", ResistanceSet.DefaultResistanceSet); - } - - public bool IsDead() - { - var currentDamage = _currentDamage[DamageType.Total]; - foreach (var threshold in Thresholds[DamageType.Total]) - { - if (threshold.Value <= currentDamage) - { - if (threshold.ThresholdType != ThresholdType.Death) continue; - return true; - } - } - - return false; - } - - /// - public override void Initialize() - { - base.Initialize(); - InitializeDamageType(DamageType.Total); - - foreach (var damagebehavior in Owner.GetAllComponents()) - { - AddThresholdsFrom(damagebehavior); - Damaged += damagebehavior.OnDamaged; - } - - RecalculateComponentThresholds(); - } - - /// - public void TakeDamage(DamageType damageType, int amount, IEntity source = null, IEntity sourceMob = null) - { - if (damageType == DamageType.Total) - { - foreach (DamageType e in Enum.GetValues(typeof(DamageType))) - { - if (e == damageType) continue; - TakeDamage(e, amount, source, sourceMob); - } - - return; - } - InitializeDamageType(damageType); - - int oldValue = _currentDamage[damageType]; - int oldTotalValue = -1; - - if (amount == 0) - { - return; - } - - amount = Resistances.CalculateDamage(damageType, amount); - _currentDamage[damageType] = Math.Max(0, _currentDamage[damageType] + amount); - UpdateForDamageType(damageType, oldValue); - - Damaged?.Invoke(this, new DamageEventArgs(damageType, amount, source, sourceMob)); - - if (Resistances.AppliesToTotal(damageType)) - { - oldTotalValue = _currentDamage[DamageType.Total]; - _currentDamage[DamageType.Total] = Math.Max(0, _currentDamage[DamageType.Total] + amount); - UpdateForDamageType(DamageType.Total, oldTotalValue); - } - } - - /// - public void TakeHealing(DamageType damageType, int amount, IEntity source = null, IEntity sourceMob = null) - { - if (damageType == DamageType.Total) - { - throw new ArgumentException("Cannot heal for DamageType.Total"); - } - TakeDamage(damageType, -amount, source, sourceMob); - } - - public void HealAllDamage() - { - var values = Enum.GetValues(typeof(DamageType)).Cast(); - foreach (var damageType in values) - { - if (CurrentDamage.ContainsKey(damageType) && damageType != DamageType.Total) - { - TakeHealing(damageType, CurrentDamage[damageType]); - } - } - } - - void UpdateForDamageType(DamageType damageType, int oldValue) - { - int change = _currentDamage[damageType] - oldValue; - - if (change == 0) - { - return; - } - - int changeSign = Math.Sign(change); - - foreach (var threshold in Thresholds[damageType]) - { - var value = threshold.Value; - if (((value * changeSign) > (oldValue * changeSign)) && ((value * changeSign) <= (_currentDamage[damageType] * changeSign))) - { - var excessDamage = change - value; - var typeOfDamage = damageType; - if (change - value < 0) - { - excessDamage = 0; - } - var args = new DamageThresholdPassedEventArgs(threshold, (changeSign > 0), excessDamage); - DamageThresholdPassed?.Invoke(this, args); - } - } - } - - void RecalculateComponentThresholds() - { - foreach (IOnDamageBehavior onDamageBehaviorComponent in Owner.GetAllComponents()) - { - AddThresholdsFrom(onDamageBehaviorComponent); - } - } - - void AddThresholdsFrom(IOnDamageBehavior onDamageBehavior) - { - if (onDamageBehavior == null) - { - throw new ArgumentNullException(nameof(onDamageBehavior)); - } - - List thresholds = onDamageBehavior.GetAllDamageThresholds(); - - if (thresholds == null) - return; - - foreach (DamageThreshold threshold in thresholds) - { - if (!Thresholds[threshold.DamageType].Contains(threshold)) - { - Thresholds[threshold.DamageType].Add(threshold); - } - } - - DamageThresholdPassed += onDamageBehavior.OnDamageThresholdPassed; - } - - void InitializeDamageType(DamageType damageType) - { - if (!_currentDamage.ContainsKey(damageType)) - { - _currentDamage.Add(damageType, 0); - Thresholds.Add(damageType, new List()); - } - } - } -} - diff --git a/Content.Server/GameObjects/Components/Damage/DestructibleComponent.cs b/Content.Server/GameObjects/Components/Damage/DestructibleComponent.cs index 86a7abb03f..b808bc6c76 100644 --- a/Content.Server/GameObjects/Components/Damage/DestructibleComponent.cs +++ b/Content.Server/GameObjects/Components/Damage/DestructibleComponent.cs @@ -1,55 +1,49 @@ -using System.Collections.Generic; -using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces.GameObjects; -using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; -using Robust.Shared.Random; using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Damage { /// - /// Deletes the entity once a certain damage threshold has been reached. + /// When attached to an , allows it to take damage and deletes it after taking enough damage. /// [RegisterComponent] - public class DestructibleComponent : Component, IOnDamageBehavior, IDestroyAct, IExAct + [ComponentReference(typeof(IDamageableComponent))] + public class DestructibleComponent : RuinableComponent, IDestroyAct { - #pragma warning disable 649 +#pragma warning disable 649 [Dependency] private readonly IEntitySystemManager _entitySystemManager; - #pragma warning restore 649 +#pragma warning restore 649 + + protected ActSystem _actSystem; + + protected string _spawnOnDestroy; /// public override string Name => "Destructible"; /// - /// Damage threshold calculated from the values - /// given in the prototype declaration. + /// Entity spawned upon destruction. /// - [ViewVariables] - public DamageThreshold Threshold { get; private set; } + public string SpawnOnDestroy => _spawnOnDestroy; - public DamageType damageType = DamageType.Total; - public int damageValue = 0; - public string spawnOnDestroy = ""; - public string destroySound = ""; - public bool destroyed = false; - - ActSystem _actSystem; + void IDestroyAct.OnDestroy(DestructionEventArgs eventArgs) + { + if (!string.IsNullOrWhiteSpace(_spawnOnDestroy) && eventArgs.IsSpawnWreck) + { + Owner.EntityManager.SpawnEntity(_spawnOnDestroy, Owner.Transform.GridPosition); + } + } public override void ExposeData(ObjectSerializer serializer) { base.ExposeData(serializer); - - serializer.DataField(ref damageValue, "thresholdvalue", 100); - serializer.DataField(ref damageType, "thresholdtype", DamageType.Total); - serializer.DataField(ref spawnOnDestroy, "spawnondestroy", ""); - serializer.DataField(ref destroySound, "destroysound", ""); + serializer.DataField(ref _spawnOnDestroy, "spawnondestroy", string.Empty); } public override void Initialize() @@ -58,57 +52,18 @@ namespace Content.Server.GameObjects.Components.Damage _actSystem = _entitySystemManager.GetEntitySystem(); } - /// - List IOnDamageBehavior.GetAllDamageThresholds() - { - Threshold = new DamageThreshold(damageType, damageValue, ThresholdType.Destruction); - return new List() { Threshold }; - } - /// - void IOnDamageBehavior.OnDamageThresholdPassed(object obj, DamageThresholdPassedEventArgs e) + protected override void DestructionBehavior() { - if (e.Passed && e.DamageThreshold == Threshold && destroyed == false) + if (!Owner.Deleted) { - destroyed = true; var pos = Owner.Transform.GridPosition; - _actSystem.HandleDestruction(Owner, true); - if(destroySound != string.Empty) + _actSystem.HandleDestruction(Owner, + true); //This will call IDestroyAct.OnDestroy on this component (and all other components on this entity) + if (DestroySound != string.Empty) { - EntitySystem.Get().PlayAtCoords(destroySound, pos); + EntitySystem.Get().PlayAtCoords(DestroySound, pos); } - - - } - - } - - void IExAct.OnExplosion(ExplosionEventArgs eventArgs) - { - var prob = IoCManager.Resolve(); - switch (eventArgs.Severity) - { - case ExplosionSeverity.Destruction: - _actSystem.HandleDestruction(Owner, false); - break; - case ExplosionSeverity.Heavy: - var spawnWreckOnHeavy = prob.Prob(0.5f); - _actSystem.HandleDestruction(Owner, spawnWreckOnHeavy); - break; - case ExplosionSeverity.Light: - if (prob.Prob(0.4f)) - _actSystem.HandleDestruction(Owner, true); - break; - } - - } - - - void IDestroyAct.OnDestroy(DestructionEventArgs eventArgs) - { - if (!string.IsNullOrWhiteSpace(spawnOnDestroy) && eventArgs.IsSpawnWreck) - { - Owner.EntityManager.SpawnEntity(spawnOnDestroy, Owner.Transform.GridPosition); } } } diff --git a/Content.Server/GameObjects/Components/Damage/ResistanceSet.cs b/Content.Server/GameObjects/Components/Damage/ResistanceSet.cs deleted file mode 100644 index e9a5e941a1..0000000000 --- a/Content.Server/GameObjects/Components/Damage/ResistanceSet.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; -using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.Interfaces.Serialization; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; - -namespace Content.Server.GameObjects.Components.Damage -{ - /// - /// Resistance set used by damageable objects. - /// For each damage type, has a coefficient, damage reduction and "included in total" value. - /// - public class ResistanceSet : IExposeData - { - public static ResistanceSet DefaultResistanceSet = new ResistanceSet(); - - [ViewVariables] - private readonly Dictionary _resistances = new Dictionary(); - - public ResistanceSet() - { - foreach (DamageType damageType in Enum.GetValues(typeof(DamageType))) - { - _resistances[damageType] = new ResistanceSetSettings(); - } - } - - public void ExposeData(ObjectSerializer serializer) - { - foreach (DamageType damageType in Enum.GetValues(typeof(DamageType))) - { - var resistanceName = damageType.ToString().ToLower(); - serializer.DataReadFunction(resistanceName, new ResistanceSetSettings(), resistanceSetting => - { - _resistances[damageType] = resistanceSetting; - }); - } - } - - /// - /// Adjusts input damage with the resistance set values. - /// - /// Type of the damage. - /// Incoming amount of the damage. - /// Damage adjusted by the resistance set. - public int CalculateDamage(DamageType damageType, int amount) - { - if (amount > 0) //if it's damage, reduction applies - { - amount -= _resistances[damageType].DamageReduction; - - if (amount <= 0) - return 0; - } - - amount = (int)Math.Floor(amount * _resistances[damageType].Coefficient); - - return amount; - } - - public bool AppliesToTotal(DamageType damageType) - { - //Damage that goes straight to total (for whatever reason) never applies twice - - return damageType != DamageType.Total && _resistances[damageType].AppliesToTotal; - } - - /// - /// Settings for a specific damage type in a resistance set. - /// - public class ResistanceSetSettings : IExposeData - { - public float Coefficient { get; private set; } = 1; - public int DamageReduction { get; private set; } = 0; - public bool AppliesToTotal { get; private set; } = true; - - public void ExposeData(ObjectSerializer serializer) - { - serializer.DataField(this, x => Coefficient, "coefficient", 1); - serializer.DataField(this, x => DamageReduction, "damageReduction", 0); - serializer.DataField(this, x => AppliesToTotal, "appliesToTotal", true); - } - } - } -} diff --git a/Content.Server/GameObjects/Components/Damage/RuinableComponent.cs b/Content.Server/GameObjects/Components/Damage/RuinableComponent.cs new file mode 100644 index 0000000000..7137171f34 --- /dev/null +++ b/Content.Server/GameObjects/Components/Damage/RuinableComponent.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Server.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Server.GameObjects.Components.Damage +{ + /// + /// When attached to an , allows it to take damage and + /// "ruins" or "destroys" it after enough damage is taken. + /// + [ComponentReference(typeof(IDamageableComponent))] + public abstract class RuinableComponent : DamageableComponent + { + private DamageState _currentDamageState; + + /// + /// How much HP this component can sustain before triggering + /// . + /// + public int MaxHp { get; private set; } + + /// + /// Sound played upon destruction. + /// + protected string DestroySound { get; private set; } + + public override List SupportedDamageStates => + new List {DamageState.Alive, DamageState.Dead}; + + public override DamageState CurrentDamageState => _currentDamageState; + + public override void Initialize() + { + base.Initialize(); + HealthChangedEvent += OnHealthChanged; + } + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(this, ruinable => ruinable.MaxHp, "maxHP", 100); + serializer.DataField(this, ruinable => ruinable.DestroySound, "destroySound", string.Empty); + } + + public override void OnRemove() + { + base.OnRemove(); + HealthChangedEvent -= OnHealthChanged; + } + + private void OnHealthChanged(HealthChangedEventArgs e) + { + if (CurrentDamageState != DamageState.Dead && TotalDamage >= MaxHp) + { + PerformDestruction(); + } + } + + /// + /// Destroys the Owner , setting + /// to + /// + /// + protected void PerformDestruction() + { + _currentDamageState = DamageState.Dead; + + if (!Owner.Deleted && DestroySound != string.Empty) + { + var pos = Owner.Transform.GridPosition; + EntitySystem.Get().PlayAtCoords(DestroySound, pos); + } + + DestructionBehavior(); + } + + protected abstract void DestructionBehavior(); + } +} diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs index f74eecb284..ee39a57d76 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalHolderComponent.cs @@ -1,7 +1,7 @@ #nullable enable using System.Linq; using Content.Server.GameObjects.Components.Items.Storage; -using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Body; using Robust.Server.GameObjects.Components.Container; using Robust.Shared.Containers; using Robust.Shared.GameObjects; @@ -49,7 +49,7 @@ namespace Content.Server.GameObjects.Components.Disposal } return entity.HasComponent() || - entity.HasComponent(); + entity.HasComponent(); } public bool TryInsert(IEntity entity) diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs index 29d5132925..37b2f2275e 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalTubeComponent.cs @@ -1,9 +1,9 @@ #nullable enable using System; using System.Linq; -using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Disposal; using Content.Shared.GameObjects.Verbs; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces; using Robust.Server.Console; using Robust.Server.GameObjects; diff --git a/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs b/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs index 89a6049b66..3fd51adb20 100644 --- a/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs +++ b/Content.Server/GameObjects/Components/Disposal/DisposalUnitComponent.cs @@ -5,10 +5,10 @@ using System.Linq; using System.Threading; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.Interfaces; using Content.Server.Interfaces.GameObjects.Components.Items; +using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Disposal; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; @@ -122,7 +122,7 @@ namespace Content.Server.GameObjects.Components.Disposal } if (!entity.HasComponent() && - !entity.HasComponent()) + !entity.HasComponent()) { return false; } diff --git a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs index 7f4228b272..ba2bc39377 100644 --- a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs +++ b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs @@ -3,9 +3,10 @@ using System.Linq; using System.Threading; using Content.Server.GameObjects.Components.Access; using Content.Server.GameObjects.Components.Atmos; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.Damage; +using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Doors; using Content.Shared.GameObjects.Components.Movement; @@ -113,7 +114,7 @@ namespace Content.Server.GameObjects.Components.Doors // Disabled because it makes it suck hard to walk through double doors. - if (entity.HasComponent(typeof(SpeciesComponent))) + if (entity.HasComponent()) { if (!entity.TryGetComponent(out var mover)) return; @@ -237,7 +238,7 @@ namespace Content.Server.GameObjects.Components.Doors foreach (var e in collidesWith) { if (!e.TryGetComponent(out StunnableComponent stun) - || !e.TryGetComponent(out DamageableComponent damage) + || !e.TryGetComponent(out IDamageableComponent damage) || !e.TryGetComponent(out ICollidableComponent otherBody) || !Owner.TryGetComponent(out ICollidableComponent body)) continue; @@ -247,7 +248,7 @@ namespace Content.Server.GameObjects.Components.Doors if (percentage < 0.1f) continue; - damage.TakeDamage(DamageType.Brute, DoorCrushDamage); + damage.ChangeDamage(DamageType.Blunt, DoorCrushDamage, false, Owner); stun.Paralyze(DoorStunTime); hitSomeone = true; } diff --git a/Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs b/Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs index f23c611e24..39b49c13fb 100644 --- a/Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs +++ b/Content.Server/GameObjects/Components/Explosion/ExplosiveComponent.cs @@ -1,5 +1,6 @@ using Content.Server.Explosions; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.Serialization; diff --git a/Content.Server/GameObjects/Components/Explosion/FlashExplosiveComponent.cs b/Content.Server/GameObjects/Components/Explosion/FlashExplosiveComponent.cs index a547e5f0b3..c8d6120edd 100644 --- a/Content.Server/GameObjects/Components/Explosion/FlashExplosiveComponent.cs +++ b/Content.Server/GameObjects/Components/Explosion/FlashExplosiveComponent.cs @@ -1,6 +1,7 @@ using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Weapon; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.Containers; using Robust.Shared.GameObjects; diff --git a/Content.Server/GameObjects/Components/GUI/HandsComponent.cs b/Content.Server/GameObjects/Components/GUI/HandsComponent.cs index 6336845970..572e504f53 100644 --- a/Content.Server/GameObjects/Components/GUI/HandsComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/HandsComponent.cs @@ -8,11 +8,11 @@ using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Movement; using Content.Server.GameObjects.EntitySystems.Click; using Content.Server.Interfaces.GameObjects.Components.Interaction; +using Content.Shared.GameObjects.Components.Body; using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Items; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.EntitySystems; -using Content.Shared.Health.BodySystem; using Content.Shared.Physics.Pull; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.Container; diff --git a/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs b/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs index 637933dd06..d47f94fd93 100644 --- a/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs +++ b/Content.Server/GameObjects/Components/Gravity/GravityGeneratorComponent.cs @@ -5,6 +5,7 @@ using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Shared.GameObjects.Components.Gravity; using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.GameObjects.EntitySystems; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.UserInterface; @@ -18,7 +19,7 @@ using Robust.Shared.Serialization; namespace Content.Server.GameObjects.Components.Gravity { [RegisterComponent] - public class GravityGeneratorComponent: SharedGravityGeneratorComponent, IInteractUsing, IBreakAct, IInteractHand + public class GravityGeneratorComponent : SharedGravityGeneratorComponent, IInteractUsing, IBreakAct, IInteractHand { private BoundUserInterface _userInterface; @@ -106,10 +107,8 @@ namespace Content.Server.GameObjects.Components.Gravity return false; // Repair generator - var damageable = Owner.GetComponent(); var breakable = Owner.GetComponent(); - damageable.HealAllDamage(); - breakable.broken = false; + breakable.FixAllDamage(); _intact = true; var notifyManager = IoCManager.Resolve(); @@ -130,13 +129,16 @@ namespace Content.Server.GameObjects.Components.Gravity if (!Intact) { MakeBroken(); - } else if (!Powered) + } + else if (!Powered) { MakeUnpowered(); - } else if (!SwitchedOn) + } + else if (!SwitchedOn) { MakeOff(); - } else + } + else { MakeOn(); } diff --git a/Content.Server/GameObjects/Components/Healing/HealingComponent.cs b/Content.Server/GameObjects/Components/Healing/HealingComponent.cs deleted file mode 100644 index 65bbf4154a..0000000000 --- a/Content.Server/GameObjects/Components/Healing/HealingComponent.cs +++ /dev/null @@ -1,71 +0,0 @@ -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Stack; -using Content.Server.Utility; -using Content.Shared.GameObjects.Components.Damage; -using Content.Shared.Interfaces.GameObjects.Components; -using Robust.Shared.GameObjects; -using Robust.Shared.Serialization; - -namespace Content.Server.GameObjects.Components.Healing -{ - [RegisterComponent] - public class HealingComponent : Component, IAfterInteract, IUse - { - public override string Name => "Healing"; - - public int Heal = 100; - public DamageType Damage = DamageType.Brute; - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - - serializer.DataField(ref Heal, "heal", 100); - serializer.DataField(ref Damage, "damage", DamageType.Brute); - } - - void IAfterInteract.AfterInteract(AfterInteractEventArgs eventArgs) - { - if (!InteractionChecks.InRangeUnobstructed(eventArgs)) return; - - if (eventArgs.Target == null) - { - return; - } - - if (!eventArgs.Target.TryGetComponent(out DamageableComponent damagecomponent)) return; - if (Owner.TryGetComponent(out StackComponent stackComponent)) - { - if (!stackComponent.Use(1)) - { - Owner.Delete(); - return; - } - - damagecomponent.TakeHealing(Damage, Heal); - return; - } - damagecomponent.TakeHealing(Damage, Heal); - Owner.Delete(); - } - - bool IUse.UseEntity(UseEntityEventArgs eventArgs) - { - if (!eventArgs.User.TryGetComponent(out DamageableComponent damagecomponent)) return false; - if (Owner.TryGetComponent(out StackComponent stackComponent)) - { - if (!stackComponent.Use(1)) - { - Owner.Delete(); - return false; - } - - damagecomponent.TakeHealing(Damage, Heal); - return false; - } - damagecomponent.TakeHealing(Damage, Heal); - Owner.Delete(); - return false; - } - } -} diff --git a/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs b/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs index f85e7b64ea..3b96b57733 100644 --- a/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs +++ b/Content.Server/GameObjects/Components/Interactable/WelderComponent.cs @@ -239,8 +239,9 @@ namespace Content.Server.GameObjects.Components.Interactable chat.EntityMe(victim, Loc.GetString("welds {0:their} every orifice closed! It looks like {0:theyre} trying to commit suicide!", victim)); //TODO: theyre macro return SuicideKind.Heat; } + chat.EntityMe(victim, Loc.GetString("bashes {0:themselves} with the {1}!", victim, Owner.Name)); - return SuicideKind.Brute; + return SuicideKind.Blunt; } public void SolutionChanged(SolutionChangeEventArgs eventArgs) diff --git a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs index 73d1fd09ca..df502ee9aa 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs @@ -1,10 +1,12 @@ using System; using System.Linq; +using Content.Server.GameObjects.Components.Body; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Interactable; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems; using Content.Shared.GameObjects.Components.Interactable; +using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Storage; using Content.Shared.GameObjects.EntitySystems; using Content.Shared.GameObjects.Verbs; @@ -168,7 +170,8 @@ namespace Content.Server.GameObjects.Components.Items.Storage continue; // only items that can be stored in an inventory, or a mob, can be eaten by a locker - if (!entity.HasComponent() && !entity.HasComponent()) + if (!entity.HasComponent() && + !entity.HasComponent()) continue; if (!AddToContents(entity)) diff --git a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs index 67eca347f2..a82183da4f 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/ItemComponent.cs @@ -91,7 +91,7 @@ namespace Content.Server.GameObjects.Components.Items.Storage return false; } - if (Owner.TryGetComponent(out CollidableComponent physics) && + if (Owner.TryGetComponent(out ICollidableComponent physics) && physics.Anchored) { return false; diff --git a/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs b/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs index 51b79141f9..672f09c14a 100644 --- a/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs +++ b/Content.Server/GameObjects/Components/Kitchen/MicrowaveComponent.cs @@ -1,18 +1,20 @@ using System; using System.Collections.Generic; using System.Linq; +using Content.Server.GameObjects.Components.Body; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.ViewVariables; using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Health.BodySystem; using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameObjects; using Content.Shared.Chemistry; using Content.Shared.GameObjects.Components.Power; -using Content.Shared.Health.BodySystem; using Content.Shared.Interfaces; using Content.Shared.Interfaces.GameObjects.Components; using Content.Shared.Kitchen; @@ -23,14 +25,12 @@ using Robust.Server.GameObjects.Components.UserInterface; using Robust.Server.GameObjects.EntitySystems; using Robust.Server.Interfaces.GameObjects; using Robust.Shared.Audio; -using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Systems; +using Content.Shared.GameObjects.Components.Body; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Serialization; using Robust.Shared.Timers; -using Robust.Shared.ViewVariables; namespace Content.Server.GameObjects.Components.Kitchen { @@ -456,13 +456,19 @@ namespace Content.Server.GameObjects.Components.Kitchen public SuicideKind Suicide(IEntity victim, IChatManager chat) { - int headCount = 0; + var headCount = 0; if (victim.TryGetComponent(out var bodyManagerComponent)) { var heads = bodyManagerComponent.GetBodyPartsOfType(BodyPartType.Head); foreach (var head in heads) { - var droppedHead = bodyManagerComponent.DropBodyPart(head); + var droppedHead = bodyManagerComponent.DropPart(head); + + if (droppedHead == null) + { + continue; + } + _storage.Insert(droppedHead); headCount++; } diff --git a/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs b/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs index c6a051b2c4..4e36ffed71 100644 --- a/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs +++ b/Content.Server/GameObjects/Components/Medical/MedicalScannerComponent.cs @@ -1,7 +1,5 @@ using System; using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Medical; @@ -15,7 +13,8 @@ using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Maths; -using Robust.Shared.Utility; +using Content.Shared.Damage; +using Robust.Shared.Localization; namespace Content.Server.GameObjects.Components.Medical { @@ -35,19 +34,21 @@ namespace Content.Server.GameObjects.Components.Medical public override void Initialize() { base.Initialize(); + _appearance = Owner.GetComponent(); _userInterface = Owner.GetComponent() .GetBoundUserInterface(MedicalScannerUiKey.Key); _bodyContainer = ContainerManagerComponent.Ensure($"{Name}-bodyContainer", Owner); _powerReceiver = Owner.GetComponent(); + UpdateUserInterface(); } private static readonly MedicalScannerBoundUserInterfaceState EmptyUIState = new MedicalScannerBoundUserInterfaceState( - 0, - 0, - null); + null, + new Dictionary(), + new Dictionary()); private MedicalScannerBoundUserInterfaceState GetUserInterfaceState() { @@ -58,49 +59,36 @@ namespace Content.Server.GameObjects.Components.Medical return EmptyUIState; } - var damageable = body.GetComponent(); - var species = body.GetComponent(); - var deathThreshold = - species.DamageTemplate.DamageThresholds.FirstOrNull(x => x.ThresholdType == ThresholdType.Death); - if (!deathThreshold.HasValue) + if (!body.TryGetComponent(out IDamageableComponent damageable) || + damageable.CurrentDamageState == DamageState.Dead) { return EmptyUIState; } - var deathThresholdValue = deathThreshold.Value.Value; - var currentHealth = damageable.CurrentDamage[DamageType.Total]; + var classes = new Dictionary(damageable.DamageClasses); + var types = new Dictionary(damageable.DamageTypes); - var dmgDict = new Dictionary(); - - foreach (var dmgType in (DamageType[]) Enum.GetValues(typeof(DamageType))) - { - if (damageable.CurrentDamage.TryGetValue(dmgType, out var amount)) - { - dmgDict[dmgType.ToString()] = amount; - } - } - - return new MedicalScannerBoundUserInterfaceState( - deathThresholdValue - currentHealth, - deathThresholdValue, - dmgDict); + return new MedicalScannerBoundUserInterfaceState(body.Uid, classes, types); } private void UpdateUserInterface() { if (!Powered) + { return; + } + var newState = GetUserInterfaceState(); _userInterface.SetState(newState); } - private MedicalScannerStatus GetStatusFromDamageState(IDamageState damageState) + private MedicalScannerStatus GetStatusFromDamageState(DamageState damageState) { switch (damageState) { - case NormalState _: return MedicalScannerStatus.Green; - case CriticalState _: return MedicalScannerStatus.Red; - case DeadState _: return MedicalScannerStatus.Death; + case DamageState.Alive: return MedicalScannerStatus.Green; + case DamageState.Critical: return MedicalScannerStatus.Red; + case DamageState.Dead: return MedicalScannerStatus.Death; default: throw new ArgumentException(nameof(damageState)); } } @@ -109,7 +97,7 @@ namespace Content.Server.GameObjects.Components.Medical var body = _bodyContainer.ContainedEntity; return body == null ? MedicalScannerStatus.Open - : GetStatusFromDamageState(body.GetComponent().CurrentDamageState); + : GetStatusFromDamageState(body.GetComponent().CurrentDamageState); } private void UpdateAppearance() @@ -141,7 +129,7 @@ namespace Content.Server.GameObjects.Components.Medical return; } - data.Text = "Enter"; + data.Text = Loc.GetString("Enter"); data.Visibility = component.IsOccupied ? VerbVisibility.Invisible : VerbVisibility.Visible; } @@ -162,7 +150,7 @@ namespace Content.Server.GameObjects.Components.Medical return; } - data.Text = "Eject"; + data.Text = Loc.GetString("Eject"); data.Visibility = component.IsOccupied ? VerbVisibility.Visible : VerbVisibility.Invisible; } @@ -195,6 +183,7 @@ namespace Content.Server.GameObjects.Components.Medical // There's no need to update if there's no one inside return; } + UpdateUserInterface(); UpdateAppearance(); } diff --git a/Content.Server/GameObjects/Components/Metabolism/BloodstreamComponent.cs b/Content.Server/GameObjects/Components/Metabolism/BloodstreamComponent.cs deleted file mode 100644 index e428c72f17..0000000000 --- a/Content.Server/GameObjects/Components/Metabolism/BloodstreamComponent.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System.Linq; -using Content.Server.GameObjects.Components.Chemistry; -using Content.Server.GameObjects.EntitySystems; -using Content.Shared.Chemistry; -using Robust.Shared.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; - -namespace Content.Server.GameObjects.Components.Metabolism -{ - /// - /// Handles all metabolism for mobs. All delivery methods eventually bring reagents - /// to the bloodstream. For example, injectors put reagents directly into the bloodstream, - /// and the stomach does with some delay. - /// - [RegisterComponent] - public class BloodstreamComponent : Component - { -#pragma warning disable 649 - [Dependency] private readonly IPrototypeManager _prototypeManager; -#pragma warning restore 649 - - public override string Name => "Bloodstream"; - - /// - /// Internal solution for reagent storage - /// - [ViewVariables] - private SolutionComponent _internalSolution; - - /// - /// Max volume of internal solution storage - /// - [ViewVariables] - private ReagentUnit _initialMaxVolume; - - /// - /// Empty volume of internal solution - /// - public ReagentUnit EmptyVolume => _internalSolution.EmptyVolume; - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - serializer.DataField(ref _initialMaxVolume, "maxVolume", ReagentUnit.New(250)); - } - - protected override void Startup() - { - base.Startup(); - _internalSolution = Owner.GetComponent(); - _internalSolution.MaxVolume = _initialMaxVolume; - } - - /// - /// Attempt to transfer provided solution to internal solution. Only supports complete transfers - /// - /// Solution to be transferred - /// Whether or not transfer was a success - public bool TryTransferSolution(Solution solution) - { - //For now doesn't support partial transfers - if (solution.TotalVolume + _internalSolution.CurrentVolume > _internalSolution.MaxVolume) - { - return false; - } - - _internalSolution.TryAddSolution(solution, false, true); - return true; - } - - /// - /// Loops through each reagent in _internalSolution, and calls the IMetabolizable for each of them./> - /// - /// The time since the last metabolism tick in seconds. - private void Metabolize(float tickTime) - { - if (_internalSolution.CurrentVolume == 0) - { - return; - } - - //Run metabolism for each reagent, remove metabolized reagents - foreach (var reagent in _internalSolution.ReagentList.ToList()) //Using ToList here lets us edit reagents while iterating - { - if (!_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype proto)) - { - continue; - } - - //Run metabolism code for each reagent - foreach (var metabolizable in proto.Metabolism) - { - var reagentDelta = metabolizable.Metabolize(Owner, reagent.ReagentId, tickTime); - _internalSolution.TryRemoveReagent(reagent.ReagentId, reagentDelta); - } - } - } - - /// - /// Triggers metabolism of the reagents inside _internalSolution. Called by - /// - /// The time since the last metabolism tick in seconds. - public void OnUpdate(float tickTime) - { - Metabolize(tickTime); - } - } -} diff --git a/Content.Server/GameObjects/Components/Metabolism/MetabolismComponent.cs b/Content.Server/GameObjects/Components/Metabolism/MetabolismComponent.cs new file mode 100644 index 0000000000..913d571dd6 --- /dev/null +++ b/Content.Server/GameObjects/Components/Metabolism/MetabolismComponent.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Content.Server.Atmos; +using Content.Server.GameObjects.Components.Atmos; +using Content.Server.GameObjects.Components.Body.Circulatory; +using Content.Shared.Atmos; +using Content.Shared.Chemistry; +using Content.Shared.Damage; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Interfaces.Chemistry; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Server.GameObjects.Components.Metabolism +{ + [RegisterComponent] + public class MetabolismComponent : Component + { +#pragma warning disable 649 + [Dependency] private readonly IPrototypeManager _prototypeManager; +#pragma warning restore 649 + + public override string Name => "Metabolism"; + + private float _accumulatedFrameTime; + + [ViewVariables(VVAccess.ReadWrite)] private int _suffocationDamage; + + [ViewVariables] public Dictionary NeedsGases { get; set; } + + [ViewVariables] public Dictionary ProducesGases { get; set; } + + [ViewVariables] public Dictionary DeficitGases { get; set; } + + [ViewVariables] public bool Suffocating => SuffocatingPercentage() > 0; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + + serializer.DataField(this, b => b.NeedsGases, "needsGases", new Dictionary()); + serializer.DataField(this, b => b.ProducesGases, "producesGases", new Dictionary()); + serializer.DataField(this, b => b.DeficitGases, "deficitGases", new Dictionary()); + serializer.DataField(ref _suffocationDamage, "suffocationDamage", 1); + } + + private Dictionary NeedsAndDeficit(float frameTime) + { + var needs = new Dictionary(NeedsGases); + foreach (var (gas, amount) in DeficitGases) + { + var newAmount = (needs.GetValueOrDefault(gas) + amount) * frameTime; + needs[gas] = newAmount; + } + + return needs; + } + + private void ClampDeficit() + { + var deficitGases = new Dictionary(DeficitGases); + + foreach (var (gas, deficit) in deficitGases) + { + if (!NeedsGases.TryGetValue(gas, out var need)) + { + DeficitGases.Remove(gas); + continue; + } + + if (deficit > need) + { + DeficitGases[gas] = need; + } + } + } + + private float SuffocatingPercentage() + { + var percentages = new float[Atmospherics.TotalNumberOfGases]; + + foreach (var (gas, deficit) in DeficitGases) + { + if (!NeedsGases.TryGetValue(gas, out var needed)) + { + percentages[(int) gas] = 1; + continue; + } + + percentages[(int) gas] = deficit / needed; + } + + return percentages.Average(); + } + + private float GasProducedMultiplier(Gas gas, float usedAverage) + { + if (!NeedsGases.TryGetValue(gas, out var needs) || + !ProducesGases.TryGetValue(gas, out var produces)) + { + return 0; + } + + return needs * produces * usedAverage; + } + + private Dictionary GasProduced(float usedAverage) + { + return ProducesGases.ToDictionary(pair => pair.Key, pair => GasProducedMultiplier(pair.Key, usedAverage)); + } + + private void ProcessGases(float frameTime) + { + if (!Owner.TryGetComponent(out BloodstreamComponent bloodstream)) + { + return; + } + + var usedPercentages = new float[Atmospherics.TotalNumberOfGases]; + var needs = NeedsAndDeficit(frameTime); + foreach (var (gas, amountNeeded) in needs) + { + var bloodstreamAmount = bloodstream.Air.GetMoles(gas); + var deficit = 0f; + + if (bloodstreamAmount >= amountNeeded) + { + bloodstream.Air.AdjustMoles(gas, -amountNeeded); + } + else + { + deficit = amountNeeded - bloodstreamAmount; + bloodstream.Air.SetMoles(gas, 0); + } + + DeficitGases[gas] = deficit; + + var used = amountNeeded - deficit; + usedPercentages[(int) gas] = used / amountNeeded; + } + + var usedAverage = usedPercentages.Average(); + var produced = GasProduced(usedAverage); + + foreach (var (gas, amountProduced) in produced) + { + bloodstream.Air.AdjustMoles(gas, amountProduced); + } + + ClampDeficit(); + } + + /// + /// Loops through each reagent in _internalSolution, + /// and calls for each of them. + /// + /// The time since the last metabolism tick in seconds. + private void ProcessNutrients(float frameTime) + { + if (!Owner.TryGetComponent(out BloodstreamComponent bloodstream)) + { + return; + } + + if (bloodstream.Solution.CurrentVolume == 0) + { + return; + } + + // Run metabolism for each reagent, remove metabolized reagents + // Using ToList here lets us edit reagents while iterating + foreach (var reagent in bloodstream.Solution.ReagentList.ToList()) + { + if (!_prototypeManager.TryIndex(reagent.ReagentId, out ReagentPrototype prototype)) + { + continue; + } + + // Run metabolism code for each reagent + foreach (var metabolizable in prototype.Metabolism) + { + var reagentDelta = metabolizable.Metabolize(Owner, reagent.ReagentId, frameTime); + bloodstream.Solution.TryRemoveReagent(reagent.ReagentId, reagentDelta); + } + } + } + + /// + /// Processes gases in the bloodstream and triggers metabolism of the + /// reagents inside of it. + /// + /// + /// The time since the last metabolism tick in seconds. + /// + public void Update(float frameTime) + { + _accumulatedFrameTime += frameTime; + + if (_accumulatedFrameTime < 1) + { + return; + } + + _accumulatedFrameTime -= 1; + + ProcessGases(frameTime); + ProcessNutrients(frameTime); + + if (Suffocating && + Owner.TryGetComponent(out IDamageableComponent damageable)) + { + damageable.ChangeDamage(DamageClass.Airloss, _suffocationDamage, false); + } + } + + public void Transfer(BloodstreamComponent @from, GasMixture to, Gas gas, float pressure) + { + var transfer = new GasMixture(); + var molesInBlood = @from.Air.GetMoles(gas); + + transfer.SetMoles(gas, molesInBlood); + transfer.ReleaseGasTo(to, pressure); + + @from.Air.Merge(transfer); + } + + public GasMixture Clean(BloodstreamComponent bloodstream, float pressure = 100) + { + var gasMixture = new GasMixture(bloodstream.Air.Volume); + + for (Gas gas = 0; gas < (Gas) Atmospherics.TotalNumberOfGases; gas++) + { + if (NeedsGases.TryGetValue(gas, out var needed) && + bloodstream.Air.GetMoles(gas) < needed * 1.5f) + { + continue; + } + + Transfer(bloodstream, gasMixture, gas, pressure); + } + + return gasMixture; + } + } +} diff --git a/Content.Server/GameObjects/Components/Mining/AsteroidRockComponent.cs b/Content.Server/GameObjects/Components/Mining/AsteroidRockComponent.cs index a7fee5d76b..ec174cca63 100644 --- a/Content.Server/GameObjects/Components/Mining/AsteroidRockComponent.cs +++ b/Content.Server/GameObjects/Components/Mining/AsteroidRockComponent.cs @@ -1,6 +1,6 @@ -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Weapon.Melee; +using Content.Server.GameObjects.Components.Weapon.Melee; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; @@ -35,7 +35,7 @@ namespace Content.Server.GameObjects.Components.Mining var item = eventArgs.Using; if (!item.TryGetComponent(out MeleeWeaponComponent meleeWeaponComponent)) return false; - Owner.GetComponent().TakeDamage(DamageType.Brute, meleeWeaponComponent.Damage, item, eventArgs.User); + Owner.GetComponent().ChangeDamage(DamageType.Blunt, meleeWeaponComponent.Damage, false, item); if (!item.TryGetComponent(out PickaxeComponent pickaxeComponent)) return true; if (!string.IsNullOrWhiteSpace(pickaxeComponent.MiningSound)) diff --git a/Content.Server/GameObjects/Components/Mobs/DamageStates.cs b/Content.Server/GameObjects/Components/Mobs/DamageStates.cs deleted file mode 100644 index 89aea5beb8..0000000000 --- a/Content.Server/GameObjects/Components/Mobs/DamageStates.cs +++ /dev/null @@ -1,275 +0,0 @@ -using Content.Server.Mobs; -using Content.Shared.GameObjects.Components.Mobs; -using Content.Shared.GameObjects.EntitySystems; -using Robust.Server.GameObjects; -using Robust.Shared.GameObjects.Components; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.GameObjects.Components.Mobs -{ - /// - /// Defines the blocking effect of each damage state, and what effects to apply upon entering or exiting the state - /// - public interface IDamageState : IActionBlocker - { - void EnterState(IEntity entity); - - void ExitState(IEntity entity); - - bool IsConscious { get; } - } - - /// - /// Standard state that a species is at with no damage or negative effect - /// - public struct NormalState : IDamageState - { - public void EnterState(IEntity entity) - { - entity.TryGetComponent(out AppearanceComponent appearanceComponent); - appearanceComponent?.SetData(DamageStateVisuals.State, DamageStateVisualData.Normal); - } - - public void ExitState(IEntity entity) - { - } - - public bool IsConscious => true; - - bool IActionBlocker.CanInteract() - { - return true; - } - - bool IActionBlocker.CanMove() - { - return true; - } - - bool IActionBlocker.CanUse() - { - return true; - } - - bool IActionBlocker.CanThrow() - { - return true; - } - - bool IActionBlocker.CanSpeak() - { - return true; - } - - bool IActionBlocker.CanDrop() - { - return true; - } - - bool IActionBlocker.CanPickup() - { - return true; - } - - bool IActionBlocker.CanEmote() - { - return true; - } - - bool IActionBlocker.CanAttack() - { - return true; - } - - bool IActionBlocker.CanEquip() - { - return true; - } - - bool IActionBlocker.CanUnequip() - { - return true; - } - - bool IActionBlocker.CanChangeDirection() - { - return true; - } - } - - /// - /// A state in which you are disabled from acting due to damage - /// - public struct CriticalState : IDamageState - { - public void EnterState(IEntity entity) - { - if(entity.TryGetComponent(out StunnableComponent stun)) - stun.CancelAll(); - - entity.TryGetComponent(out AppearanceComponent appearanceComponent); - appearanceComponent?.SetData(DamageStateVisuals.State, DamageStateVisualData.Crit); - StandingStateHelper.Down(entity); - } - - public void ExitState(IEntity entity) - { - StandingStateHelper.Standing(entity); - } - - public bool IsConscious => false; - - bool IActionBlocker.CanInteract() - { - return false; - } - - bool IActionBlocker.CanMove() - { - return false; - } - - bool IActionBlocker.CanUse() - { - return false; - } - - bool IActionBlocker.CanThrow() - { - return false; - } - - bool IActionBlocker.CanSpeak() - { - return false; - } - - bool IActionBlocker.CanDrop() - { - return false; - } - - bool IActionBlocker.CanPickup() - { - return false; - } - - bool IActionBlocker.CanEmote() - { - return false; - } - - bool IActionBlocker.CanAttack() - { - return false; - } - - bool IActionBlocker.CanEquip() - { - return false; - } - - bool IActionBlocker.CanUnequip() - { - return false; - } - - bool IActionBlocker.CanChangeDirection() - { - return true; - } - } - - /// - /// A damage state which will allow ghosting out of mobs - /// - public struct DeadState : IDamageState - { - public void EnterState(IEntity entity) - { - if(entity.TryGetComponent(out StunnableComponent stun)) - stun.CancelAll(); - - StandingStateHelper.Down(entity); - entity.TryGetComponent(out AppearanceComponent appearanceComponent); - appearanceComponent?.SetData(DamageStateVisuals.State, DamageStateVisualData.Dead); - - if (entity.TryGetComponent(out ICollidableComponent collidable)) - { - collidable.CanCollide = false; - } - } - - public void ExitState(IEntity entity) - { - StandingStateHelper.Standing(entity); - - if (entity.TryGetComponent(out ICollidableComponent collidable)) - { - collidable.CanCollide = true; - } - } - - public bool IsConscious => false; - - bool IActionBlocker.CanInteract() - { - return false; - } - - bool IActionBlocker.CanMove() - { - return false; - } - - bool IActionBlocker.CanUse() - { - return false; - } - - bool IActionBlocker.CanThrow() - { - return false; - } - - bool IActionBlocker.CanSpeak() - { - return false; - } - - bool IActionBlocker.CanDrop() - { - return false; - } - - bool IActionBlocker.CanPickup() - { - return false; - } - - bool IActionBlocker.CanEmote() - { - return false; - } - - bool IActionBlocker.CanAttack() - { - return false; - } - - bool IActionBlocker.CanEquip() - { - return false; - } - - bool IActionBlocker.CanUnequip() - { - return false; - } - - bool IActionBlocker.CanChangeDirection() - { - return false; - } - } -} diff --git a/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/DamageThresholdTemplates.cs b/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/DamageThresholdTemplates.cs deleted file mode 100644 index 80295df021..0000000000 --- a/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/DamageThresholdTemplates.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Damage; - -namespace Content.Server.GameObjects.Components.Mobs.DamageThresholdTemplates -{ - /// - /// Defines the threshold values for each damage state for any kind of species - /// - public abstract class DamageTemplates - { - public abstract List HealthHudThresholds { get; } - - /// - /// Changes the hud state when a threshold is reached - /// - /// - /// - public abstract void ChangeHudState(DamageableComponent damage); - - //public abstract ResistanceSet resistanceset { get; } - - /// - /// Shows allowed states, ordered by priority, closest to last value to have threshold reached is preferred - /// - public abstract List<(DamageType, int, ThresholdType)> AllowedStates { get; } - - /// - /// Map of ALL POSSIBLE damage states to the threshold enum value that will trigger them, normal state wont be triggered by this value but is a default that is fell back onto - /// - public static Dictionary StateThresholdMap = new Dictionary() - { - { ThresholdType.None, new NormalState() }, - { ThresholdType.Critical, new CriticalState() }, - { ThresholdType.Death, new DeadState() } - }; - - public List DamageThresholds - { - get - { - List thresholds = new List(); - foreach (var element in AllowedStates) - { - thresholds.Add(new DamageThreshold(element.Item1, element.Item2, element.Item3)); - } - return thresholds; - } - } - - public ThresholdType CalculateDamageState(DamageableComponent damage) - { - ThresholdType healthstate = ThresholdType.None; - foreach(var element in AllowedStates) - { - if(damage.CurrentDamage[element.Item1] >= element.Item2) - { - healthstate = element.Item3; - } - } - - return healthstate; - } - } -} diff --git a/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/HumanTemplate.cs b/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/HumanTemplate.cs deleted file mode 100644 index 8045758b89..0000000000 --- a/Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/HumanTemplate.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Mobs; -using JetBrains.Annotations; - -namespace Content.Server.GameObjects.Components.Mobs.DamageThresholdTemplates -{ - [UsedImplicitly] - public class Human : DamageTemplates - { - int critvalue = 200; - int normalstates = 6; - //string startsprite = "human0"; - - public override List<(DamageType, int, ThresholdType)> AllowedStates => new List<(DamageType, int, ThresholdType)>() - { - (DamageType.Total, critvalue-1, ThresholdType.None), - (DamageType.Total, critvalue, ThresholdType.Critical), - (DamageType.Total, 300, ThresholdType.Death), - }; - - public override List HealthHudThresholds - { - get - { - List thresholds = new List(); - thresholds.Add(new DamageThreshold(DamageType.Total, 1, ThresholdType.HUDUpdate)); - for (var i = 1; i <= normalstates; i++) - { - thresholds.Add(new DamageThreshold(DamageType.Total, i * critvalue / normalstates, ThresholdType.HUDUpdate)); - } - return thresholds; //we don't need to respecify the state damage thresholds since we'll update hud on damage state changes as well - } - } - - // for shared string dict, since we don't define these anywhere in content - [UsedImplicitly] - public static readonly string[] _humanStatusImages = - { - "/Textures/Interface/StatusEffects/Human/human0.png", - "/Textures/Interface/StatusEffects/Human/human1.png", - "/Textures/Interface/StatusEffects/Human/human2.png", - "/Textures/Interface/StatusEffects/Human/human3.png", - "/Textures/Interface/StatusEffects/Human/human4.png", - "/Textures/Interface/StatusEffects/Human/human5.png", - "/Textures/Interface/StatusEffects/Human/human6-0.png", - "/Textures/Interface/StatusEffects/Human/human6-1.png", - "/Textures/Interface/StatusEffects/Human/humancrit-0.png", - "/Textures/Interface/StatusEffects/Human/humancrit-1.png", - "/Textures/Interface/StatusEffects/Human/humandead.png", - }; - - public override void ChangeHudState(DamageableComponent damage) - { - ThresholdType healthstate = CalculateDamageState(damage); - damage.Owner.TryGetComponent(out ServerStatusEffectsComponent statusEffectsComponent); - damage.Owner.TryGetComponent(out ServerOverlayEffectsComponent overlayComponent); - switch (healthstate) - { - case ThresholdType.None: - var totaldamage = damage.CurrentDamage[DamageType.Total]; - if (totaldamage > critvalue) - { - throw new InvalidOperationException(); //these should all be below the crit value, possibly going over multiple thresholds at once? - } - var modifier = totaldamage / (critvalue / normalstates); //integer division floors towards zero - statusEffectsComponent?.ChangeStatusEffectIcon(StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); - - overlayComponent?.RemoveOverlay(SharedOverlayID.GradientCircleMaskOverlay); - overlayComponent?.RemoveOverlay(SharedOverlayID.CircleMaskOverlay); - - return; - case ThresholdType.Critical: - statusEffectsComponent?.ChangeStatusEffectIcon( - StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/humancrit-0.png"); - overlayComponent?.AddOverlay(SharedOverlayID.GradientCircleMaskOverlay); - overlayComponent?.RemoveOverlay(SharedOverlayID.CircleMaskOverlay); - - return; - case ThresholdType.Death: - statusEffectsComponent?.ChangeStatusEffectIcon( - StatusEffect.Health, - "/Textures/Interface/StatusEffects/Human/humandead.png"); - overlayComponent?.RemoveOverlay(SharedOverlayID.GradientCircleMaskOverlay); - overlayComponent?.AddOverlay(SharedOverlayID.CircleMaskOverlay); - - return; - default: - throw new InvalidOperationException(); - } - } - } -} diff --git a/Content.Server/GameObjects/Components/Mobs/HeatResistanceComponent.cs b/Content.Server/GameObjects/Components/Mobs/HeatResistanceComponent.cs index 7d21ba3124..b0423e455b 100644 --- a/Content.Server/GameObjects/Components/Mobs/HeatResistanceComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/HeatResistanceComponent.cs @@ -13,10 +13,9 @@ namespace Content.Server.GameObjects.Components.Mobs public int GetHeatResistance() { - if (Owner.GetComponent().TryGetSlotItem(EquipmentSlotDefines.Slots.GLOVES, itemComponent: out ClothingComponent gloves) - | Owner.TryGetComponent(out SpeciesComponent speciesComponent)) + if (Owner.GetComponent().TryGetSlotItem(EquipmentSlotDefines.Slots.GLOVES, itemComponent: out ClothingComponent gloves)) { - return Math.Max(gloves?.HeatResistance ?? int.MinValue, speciesComponent?.HeatResistance ?? int.MinValue); + return gloves?.HeatResistance ?? int.MinValue; } return int.MinValue; } diff --git a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs index fe033e2231..fd2fed7f5f 100644 --- a/Content.Server/GameObjects/Components/Mobs/MindComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/MindComponent.cs @@ -2,6 +2,7 @@ using Content.Server.GameObjects.Components.Observer; using Content.Server.Interfaces.GameTicking; using Content.Server.Mobs; +using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; @@ -126,8 +127,8 @@ namespace Content.Server.GameObjects.Components.Mobs } var dead = - Owner.TryGetComponent(out var species) && - species.CurrentDamageState is DeadState; + Owner.TryGetComponent(out var damageable) && + damageable.CurrentDamageState == DamageState.Dead; if (!HasMind) { diff --git a/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs b/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs new file mode 100644 index 0000000000..acb501a1ea --- /dev/null +++ b/Content.Server/GameObjects/Components/Mobs/MobStateManager.cs @@ -0,0 +1,488 @@ +using System.Collections.Generic; +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Damage; +using Content.Server.Mobs; +using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Components; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Server.GameObjects.Components.Mobs +{ + /// + /// When attacked to an , this component will handle critical and death behaviors + /// for mobs. + /// Additionally, it handles sending effects to clients (such as blur effect for unconsciousness) and managing the + /// health HUD. + /// + [RegisterComponent] + internal class MobStateManagerComponent : Component, IOnHealthChangedBehavior, IActionBlocker + { + private readonly Dictionary _behavior = new Dictionary + { + {DamageState.Alive, new NormalState()}, + {DamageState.Critical, new CriticalState()}, + {DamageState.Dead, new DeadState()} + }; + + public override string Name => "MobStateManager"; + + private DamageState _currentDamageState; + + public IMobState CurrentMobState { get; private set; } = new NormalState(); + + bool IActionBlocker.CanInteract() + { + return CurrentMobState.CanInteract(); + } + + bool IActionBlocker.CanMove() + { + return CurrentMobState.CanMove(); + } + + bool IActionBlocker.CanUse() + { + return CurrentMobState.CanUse(); + } + + bool IActionBlocker.CanThrow() + { + return CurrentMobState.CanThrow(); + } + + bool IActionBlocker.CanSpeak() + { + return CurrentMobState.CanSpeak(); + } + + bool IActionBlocker.CanDrop() + { + return CurrentMobState.CanDrop(); + } + + bool IActionBlocker.CanPickup() + { + return CurrentMobState.CanPickup(); + } + + bool IActionBlocker.CanEmote() + { + return CurrentMobState.CanEmote(); + } + + bool IActionBlocker.CanAttack() + { + return CurrentMobState.CanAttack(); + } + + bool IActionBlocker.CanEquip() + { + return CurrentMobState.CanEquip(); + } + + bool IActionBlocker.CanUnequip() + { + return CurrentMobState.CanUnequip(); + } + + bool IActionBlocker.CanChangeDirection() + { + return CurrentMobState.CanChangeDirection(); + } + + public void OnHealthChanged(HealthChangedEventArgs e) + { + if (e.Damageable.CurrentDamageState != _currentDamageState) + { + _currentDamageState = e.Damageable.CurrentDamageState; + CurrentMobState.ExitState(Owner); + CurrentMobState = _behavior[_currentDamageState]; + CurrentMobState.EnterState(Owner); + } + + CurrentMobState.UpdateState(Owner); + } + + public override void Initialize() + { + base.Initialize(); + + _currentDamageState = DamageState.Alive; + CurrentMobState = _behavior[_currentDamageState]; + CurrentMobState.EnterState(Owner); + CurrentMobState.UpdateState(Owner); + } + + public override void OnRemove() + { + // TODO: Might want to add an OnRemove() to IMobState since those are where these components are being used + base.OnRemove(); + + if (Owner.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.RemoveStatusEffect(StatusEffect.Health); + } + + if (Owner.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + } + + /// + /// Defines the blocking effects of an associated + /// (i.e. Normal, Critical, Dead) and what effects to apply upon entering or + /// exiting the state. + /// + public interface IMobState : IActionBlocker + { + /// + /// Called when this state is entered. + /// + void EnterState(IEntity entity); + + /// + /// Called when this state is left for a different state. + /// + void ExitState(IEntity entity); + + /// + /// Called when this state is updated. + /// + void UpdateState(IEntity entity); + } + + /// + /// The standard state an entity is in; no negative effects. + /// + public struct NormalState : IMobState + { + public void EnterState(IEntity entity) + { + UpdateState(entity); + } + + public void ExitState(IEntity entity) { } + + public void UpdateState(IEntity entity) + { + if (!entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + return; + } + + if (!entity.TryGetComponent(out IDamageableComponent damageable)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human0.png"); + return; + } + + // TODO + switch (damageable) + { + case RuinableComponent ruinable: + { + var modifier = (int) (ruinable.TotalDamage / (ruinable.MaxHp / 7f)); + + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); + + break; + } + case BodyManagerComponent body: + { + // TODO: Declare body max normal damage (currently 100) + var modifier = (int) (body.TotalDamage / (100f / 7f)); + + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human" + modifier + ".png"); + + break; + } + default: + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/human0.png"); + break; + } + } + } + + bool IActionBlocker.CanInteract() + { + return true; + } + + bool IActionBlocker.CanMove() + { + return true; + } + + bool IActionBlocker.CanUse() + { + return true; + } + + bool IActionBlocker.CanThrow() + { + return true; + } + + bool IActionBlocker.CanSpeak() + { + return true; + } + + bool IActionBlocker.CanDrop() + { + return true; + } + + bool IActionBlocker.CanPickup() + { + return true; + } + + bool IActionBlocker.CanEmote() + { + return true; + } + + bool IActionBlocker.CanAttack() + { + return true; + } + + bool IActionBlocker.CanEquip() + { + return true; + } + + bool IActionBlocker.CanUnequip() + { + return true; + } + + bool IActionBlocker.CanChangeDirection() + { + return true; + } + } + + /// + /// A state in which an entity is disabled from acting due to sufficient damage (considered unconscious). + /// + public struct CriticalState : IMobState + { + public void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/humancrit-0.png"); //Todo: combine humancrit-0 and humancrit-1 into a gif and display it + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.AddOverlay(SharedOverlayID.GradientCircleMaskOverlay); + } + + if (entity.TryGetComponent(out StunnableComponent stun)) + { + stun.CancelAll(); + } + + StandingStateHelper.Down(entity); + } + + public void ExitState(IEntity entity) + { + StandingStateHelper.Standing(entity); + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + + public void UpdateState(IEntity entity) + { + } + + bool IActionBlocker.CanInteract() + { + return false; + } + + bool IActionBlocker.CanMove() + { + return false; + } + + bool IActionBlocker.CanUse() + { + return false; + } + + bool IActionBlocker.CanThrow() + { + return false; + } + + bool IActionBlocker.CanSpeak() + { + return false; + } + + bool IActionBlocker.CanDrop() + { + return false; + } + + bool IActionBlocker.CanPickup() + { + return false; + } + + bool IActionBlocker.CanEmote() + { + return false; + } + + bool IActionBlocker.CanAttack() + { + return false; + } + + bool IActionBlocker.CanEquip() + { + return false; + } + + bool IActionBlocker.CanUnequip() + { + return false; + } + + bool IActionBlocker.CanChangeDirection() + { + return false; + } + } + + /// + /// The state representing a dead entity; allows for ghosting. + /// + public struct DeadState : IMobState + { + public void EnterState(IEntity entity) + { + if (entity.TryGetComponent(out ServerStatusEffectsComponent status)) + { + status.ChangeStatusEffectIcon(StatusEffect.Health, + "/Textures/Interface/StatusEffects/Human/humandead.png"); + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlayComponent)) + { + overlayComponent.AddOverlay(SharedOverlayID.CircleMaskOverlay); + } + + if (entity.TryGetComponent(out StunnableComponent stun)) + { + stun.CancelAll(); + } + + StandingStateHelper.Down(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = false; + } + } + + public void ExitState(IEntity entity) + { + StandingStateHelper.Standing(entity); + + if (entity.TryGetComponent(out CollidableComponent collidable)) + { + collidable.CanCollide = true; + } + + if (entity.TryGetComponent(out ServerOverlayEffectsComponent overlay)) + { + overlay.ClearOverlays(); + } + } + + public void UpdateState(IEntity entity) + { + } + + bool IActionBlocker.CanInteract() + { + return false; + } + + bool IActionBlocker.CanMove() + { + return false; + } + + bool IActionBlocker.CanUse() + { + return false; + } + + bool IActionBlocker.CanThrow() + { + return false; + } + + bool IActionBlocker.CanSpeak() + { + return false; + } + + bool IActionBlocker.CanDrop() + { + return false; + } + + bool IActionBlocker.CanPickup() + { + return false; + } + + bool IActionBlocker.CanEmote() + { + return false; + } + + bool IActionBlocker.CanAttack() + { + return false; + } + + bool IActionBlocker.CanEquip() + { + return false; + } + + bool IActionBlocker.CanUnequip() + { + return false; + } + + bool IActionBlocker.CanChangeDirection() + { + return false; + } + } +} diff --git a/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs b/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs deleted file mode 100644 index 61e1f671fe..0000000000 --- a/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs +++ /dev/null @@ -1,247 +0,0 @@ -using System; -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Mobs.DamageThresholdTemplates; -using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces.GameObjects; -using Content.Server.Observer; -using Content.Shared.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Mobs; -using Content.Shared.GameObjects.Components.Movement; -using Content.Shared.GameObjects.EntitySystems; -using Robust.Server.GameObjects; -using Robust.Server.Interfaces.Player; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Players; -using Robust.Shared.Serialization; - -namespace Content.Server.GameObjects.Components.Mobs -{ - [RegisterComponent] - [ComponentReference(typeof(SharedSpeciesComponent))] - public class SpeciesComponent : SharedSpeciesComponent, IActionBlocker, IOnDamageBehavior, IExAct, IRelayMoveInput - { - /// - /// Damagestates are reached by reaching a certain damage threshold, they will block actions after being reached - /// - public IDamageState CurrentDamageState { get; private set; } = new NormalState(); - - /// - /// Damage state enum for current health, set only via change damage state //TODO: SETTER - /// - private ThresholdType currentstate = ThresholdType.None; - - /// - /// Holds the damage template which controls the threshold and resistance settings for this species type - /// - public DamageTemplates DamageTemplate { get; private set; } - - /// - /// Variable for serialization - /// - private string templatename; - - private int _heatResistance; - public int HeatResistance => _heatResistance; - - public override void ExposeData(ObjectSerializer serializer) - { - base.ExposeData(serializer); - - serializer.DataField(ref templatename, "Template", "Human"); - - var type = typeof(SpeciesComponent).Assembly.GetType("Content.Server.GameObjects.Components.Mobs.DamageThresholdTemplates." + templatename); - DamageTemplate = (DamageTemplates) Activator.CreateInstance(type); - serializer.DataFieldCached(ref _heatResistance, "HeatResistance", 323); - } - - public override void HandleMessage(ComponentMessage message, IComponent component) - { - base.HandleMessage(message, component); - - switch (message) - { - case PlayerAttachedMsg _: - if (CanReceiveStatusEffect(Owner)) { - DamageableComponent damage = Owner.GetComponent(); - DamageTemplate.ChangeHudState(damage); - } - break; - case PlayerDetachedMsg _: - break; - } - } - - public override void OnRemove() - { - base.OnRemove(); - Owner.TryGetComponent(out ServerStatusEffectsComponent statusEffectsComponent); - statusEffectsComponent?.RemoveStatusEffect(StatusEffect.Health); - - Owner.TryGetComponent(out ServerOverlayEffectsComponent overlayEffectsComponent); - overlayEffectsComponent?.ClearOverlays(); - } - - bool IActionBlocker.CanMove() - { - return CurrentDamageState.CanMove(); - } - - bool IActionBlocker.CanInteract() - { - return CurrentDamageState.CanInteract(); - } - - bool IActionBlocker.CanUse() - { - return CurrentDamageState.CanUse(); - } - - bool IActionBlocker.CanThrow() - { - return CurrentDamageState.CanThrow(); - } - - bool IActionBlocker.CanSpeak() - { - return CurrentDamageState.CanSpeak(); - } - - bool IActionBlocker.CanDrop() - { - return CurrentDamageState.CanDrop(); - } - - bool IActionBlocker.CanPickup() - { - return CurrentDamageState.CanPickup(); - } - - bool IActionBlocker.CanEmote() - { - return CurrentDamageState.CanEmote(); - } - - bool IActionBlocker.CanAttack() - { - return CurrentDamageState.CanAttack(); - } - - bool IActionBlocker.CanEquip() - { - return CurrentDamageState.CanEquip(); - } - - bool IActionBlocker.CanUnequip() - { - return CurrentDamageState.CanUnequip(); - } - - bool IActionBlocker.CanChangeDirection() - { - return CurrentDamageState.CanChangeDirection(); - } - - List IOnDamageBehavior.GetAllDamageThresholds() - { - var thresholdlist = DamageTemplate.DamageThresholds; - thresholdlist.AddRange(DamageTemplate.HealthHudThresholds); - return thresholdlist; - } - - void IOnDamageBehavior.OnDamageThresholdPassed(object damageable, DamageThresholdPassedEventArgs e) - { - DamageableComponent damage = (DamageableComponent) damageable; - - if (e.DamageThreshold.ThresholdType != ThresholdType.HUDUpdate) - { - ChangeDamageState(DamageTemplate.CalculateDamageState(damage)); - } - - //specifies if we have a client to update the hud for - if (CanReceiveStatusEffect(Owner)) - { - DamageTemplate.ChangeHudState(damage); - } - } - - private bool CanReceiveStatusEffect(IEntity user) - { - if (!user.HasComponent() && - !user.HasComponent()) - { - return false; - } - if (user.HasComponent()) - { - return true; - } - - return false; - } - - private void ChangeDamageState(ThresholdType threshold) - { - if (threshold == currentstate) - { - return; - } - - CurrentDamageState.ExitState(Owner); - CurrentDamageState = DamageTemplates.StateThresholdMap[threshold]; - CurrentDamageState.EnterState(Owner); - - currentstate = threshold; - - var toRaise = new MobDamageStateChangedMessage(this); - Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, toRaise); - } - - void IExAct.OnExplosion(ExplosionEventArgs eventArgs) - { - var burnDamage = 0; - var bruteDamage = 0; - switch(eventArgs.Severity) - { - case ExplosionSeverity.Destruction: - bruteDamage += 250; - burnDamage += 250; - break; - case ExplosionSeverity.Heavy: - bruteDamage += 60; - burnDamage += 60; - break; - case ExplosionSeverity.Light: - bruteDamage += 30; - break; - } - Owner.GetComponent().TakeDamage(DamageType.Brute, bruteDamage, null); - Owner.GetComponent().TakeDamage(DamageType.Heat, burnDamage, null); - } - - void IRelayMoveInput.MoveInputPressed(ICommonSession session) - { - if (CurrentDamageState is DeadState) - { - new Ghost().Execute(null, (IPlayerSession) session, null); - } - } - } - - /// - /// Fired when changes. - /// - public sealed class MobDamageStateChangedMessage : EntitySystemMessage - { - public MobDamageStateChangedMessage(SpeciesComponent species) - { - Species = species; - } - - /// - /// The species component that was changed. - /// - public SpeciesComponent Species { get; } - } -} diff --git a/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs b/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs index 482d460886..a52ebc1d48 100644 --- a/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/DrinkComponent.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Chemistry; +using Content.Server.GameObjects.Components.Body.Digestive; +using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.Components.Fluids; using Content.Server.GameObjects.EntitySystems; using Content.Shared.Audio; diff --git a/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs b/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs index 3354839430..e4440aefa9 100644 --- a/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/FoodComponent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Content.Server.GameObjects.Components.Body.Digestive; using Content.Server.GameObjects.Components.Chemistry; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; diff --git a/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs b/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs index 47643417bb..0633289de8 100644 --- a/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/HungerComponent.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Movement; @@ -180,11 +180,11 @@ namespace Content.Server.GameObjects.Components.Nutrition } if (_currentHungerThreshold == HungerThreshold.Dead) { - if (Owner.TryGetComponent(out DamageableComponent damage)) + if (Owner.TryGetComponent(out IDamageableComponent damageable)) { - if (!damage.IsDead()) + if (damageable.CurrentDamageState != DamageState.Dead) { - damage.TakeDamage(DamageType.Brute, 2); + damageable.ChangeDamage(DamageType.Blunt, 2, true, null); } } } diff --git a/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs b/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs index 94f7b5e022..379432e4f1 100644 --- a/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs +++ b/Content.Server/GameObjects/Components/Nutrition/ThirstComponent.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Movement; @@ -181,11 +181,11 @@ namespace Content.Server.GameObjects.Components.Nutrition if (_currentThirstThreshold == ThirstThreshold.Dead) { - if (Owner.TryGetComponent(out DamageableComponent damage)) + if (Owner.TryGetComponent(out IDamageableComponent damageable)) { - if (!damage.IsDead()) + if (damageable.CurrentDamageState != DamageState.Dead) { - damage.TakeDamage(DamageType.Brute, 2); + damageable.ChangeDamage(DamageType.Blunt, 2, true, null); } } } diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs index a8d60ea43d..a6d81eed88 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs @@ -1,11 +1,11 @@ using System; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.EntitySystems; using Content.Server.Interfaces; using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; using Robust.Server.GameObjects.Components.Container; @@ -76,7 +76,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece public bool InteractHand(InteractHandEventArgs eventArgs) { - if (!eventArgs.User.TryGetComponent(out DamageableComponent damageableComponent)) + if (!eventArgs.User.TryGetComponent(out IDamageableComponent damageableComponent)) { Eject(); return false; @@ -99,7 +99,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece void Burn() { - damageableComponent.TakeDamage(DamageType.Heat, 20, Owner); + damageableComponent.ChangeDamage(DamageType.Heat, 20, false, Owner); var audioSystem = EntitySystem.Get(); audioSystem.PlayFromEntity("/Audio/Effects/lightburn.ogg", Owner); } diff --git a/Content.Server/GameObjects/Components/Power/PowerNetComponents/SolarPanelComponent.cs b/Content.Server/GameObjects/Components/Power/PowerNetComponents/SolarPanelComponent.cs index a86dff1b87..6f63859193 100644 --- a/Content.Server/GameObjects/Components/Power/PowerNetComponents/SolarPanelComponent.cs +++ b/Content.Server/GameObjects/Components/Power/PowerNetComponents/SolarPanelComponent.cs @@ -1,5 +1,6 @@ using System; using Content.Server.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems; using Robust.Server.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.Timing; diff --git a/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs b/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs index 4d0bde9372..509de63d73 100644 --- a/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/HitscanComponent.cs @@ -1,5 +1,5 @@ using System; -using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.Physics; using Robust.Server.GameObjects.EntitySystems; using Robust.Shared.GameObjects; diff --git a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs index 9b633dc688..d3395a5ca2 100644 --- a/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/ProjectileComponent.cs @@ -1,6 +1,6 @@ using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Projectiles; using Robust.Server.GameObjects.EntitySystems; @@ -71,9 +71,11 @@ namespace Content.Server.GameObjects.Components.Projectiles return; } else + { _deleteOnCollide = true; + } - if (_soundHitSpecies != null && entity.HasComponent()) + if (_soundHitSpecies != null && entity.HasComponent()) { EntitySystem.Get().PlayAtCoords(_soundHitSpecies, entity.Transform.GridPosition); } else if (_soundHit != null) @@ -81,13 +83,13 @@ namespace Content.Server.GameObjects.Components.Projectiles EntitySystem.Get().PlayAtCoords(_soundHit, entity.Transform.GridPosition); } - if (entity.TryGetComponent(out DamageableComponent damage)) + if (entity.TryGetComponent(out IDamageableComponent damage)) { Owner.EntityManager.TryGetEntity(_shooter, out var shooter); foreach (var (damageType, amount) in _damages) { - damage.TakeDamage(damageType, amount, Owner, shooter); + damage.ChangeDamage(damageType, amount, false, shooter); } } diff --git a/Content.Server/GameObjects/Components/Projectiles/ThrownItemComponent.cs b/Content.Server/GameObjects/Components/Projectiles/ThrownItemComponent.cs index b072072bc5..df97af93e8 100644 --- a/Content.Server/GameObjects/Components/Projectiles/ThrownItemComponent.cs +++ b/Content.Server/GameObjects/Components/Projectiles/ThrownItemComponent.cs @@ -1,5 +1,5 @@ -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.EntitySystems.Click; +using Content.Server.GameObjects.EntitySystems.Click; +using Content.Shared.Damage; using Content.Shared.GameObjects; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.Physics; @@ -40,9 +40,9 @@ namespace Content.Server.GameObjects.Components.Projectiles _shouldStop = true; // hit something hard => stop after this collision } - if (entity.TryGetComponent(out DamageableComponent damage)) + if (entity.TryGetComponent(out IDamageableComponent damage)) { - damage.TakeDamage(DamageType.Brute, 10, Owner, User); + damage.ChangeDamage(DamageType.Blunt, 10, false, Owner); } // Stop colliding with mobs, this mimics not having enough velocity to do damage diff --git a/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs b/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs index 8b2f31c6c4..124911e98d 100644 --- a/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs +++ b/Content.Server/GameObjects/Components/Recycling/RecyclerComponent.cs @@ -5,7 +5,10 @@ using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using Content.Server.GameObjects.EntitySystems; using Content.Shared.Construction; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Mobs; using Content.Shared.GameObjects.Components.Recycling; +using Content.Shared.GameObjects.Components.Rotation; using Content.Shared.Physics; using Robust.Server.GameObjects; using Robust.Shared.Containers; @@ -65,9 +68,7 @@ namespace Content.Server.GameObjects.Components.Recycling private bool CanGib(IEntity entity) { - return entity.HasComponent() && - !_safe && - Powered; + return entity.HasComponent() && !_safe && Powered; } private bool CanRecycle(IEntity entity, [MaybeNullWhen(false)] out ConstructionPrototype prototype) diff --git a/Content.Server/GameObjects/Components/Suspicion/SuspicionRoleComponent.cs b/Content.Server/GameObjects/Components/Suspicion/SuspicionRoleComponent.cs index 833169a223..d982130afa 100644 --- a/Content.Server/GameObjects/Components/Suspicion/SuspicionRoleComponent.cs +++ b/Content.Server/GameObjects/Components/Suspicion/SuspicionRoleComponent.cs @@ -1,5 +1,6 @@ using Content.Server.GameObjects.Components.Mobs; using Content.Server.Mobs.Roles; +using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.EntitySystems; using Robust.Shared.GameObjects; using Robust.Shared.Localization; @@ -14,8 +15,8 @@ namespace Content.Server.GameObjects.Components.Suspicion public bool IsDead() { - return Owner.TryGetComponent(out SpeciesComponent species) && - species.CurrentDamageState is DeadState; + return Owner.TryGetComponent(out IDamageableComponent damageable) && + damageable.CurrentDamageState == DamageState.Dead; } public bool IsTraitor() diff --git a/Content.Server/GameObjects/Components/Temperature/TemperatureComponent.cs b/Content.Server/GameObjects/Components/Temperature/TemperatureComponent.cs index 4e7e901ff2..3c80f17bca 100644 --- a/Content.Server/GameObjects/Components/Temperature/TemperatureComponent.cs +++ b/Content.Server/GameObjects/Components/Temperature/TemperatureComponent.cs @@ -1,5 +1,5 @@ using System; -using Content.Server.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.Maths; using Robust.Shared.GameObjects; @@ -44,16 +44,16 @@ namespace Content.Server.GameObjects.Components.Temperature /// public void OnUpdate(float frameTime) { - int fireDamage = + var fireDamage = (int) Math.Floor(Math.Max(0, CurrentTemperature - _fireDamageThreshold) / _fireDamageCoefficient); _secondsSinceLastDamageUpdate += frameTime; - Owner.TryGetComponent(out DamageableComponent component); + Owner.TryGetComponent(out IDamageableComponent component); while (_secondsSinceLastDamageUpdate >= 1) { - component?.TakeDamage(DamageType.Heat, fireDamage); + component?.ChangeDamage(DamageType.Heat, fireDamage, false, null); _secondsSinceLastDamageUpdate -= 1; } } diff --git a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs index e0dc32b98f..5d055f8d4a 100644 --- a/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Melee/MeleeWeaponComponent.cs @@ -1,10 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.EntitySystems; -using Content.Server.Interfaces.GameObjects.Components.Interaction; -using Content.Shared.GameObjects; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Items; using Robust.Server.GameObjects.EntitySystems; @@ -18,6 +15,7 @@ using Robust.Shared.IoC; using Robust.Shared.Maths; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; +using Content.Shared.Damage; using Content.Shared.Interfaces.GameObjects.Components; namespace Content.Server.GameObjects.Components.Weapon.Melee @@ -116,9 +114,9 @@ namespace Content.Server.GameObjects.Components.Weapon.Melee if (!entity.Transform.IsMapTransform || entity == eventArgs.User) continue; - if (entity.TryGetComponent(out DamageableComponent damageComponent)) + if (entity.TryGetComponent(out IDamageableComponent damageComponent)) { - damageComponent.TakeDamage(DamageType.Brute, Damage, Owner, eventArgs.User); + damageComponent.ChangeDamage(DamageType.Blunt, Damage, false, Owner); hitEntities.Add(entity); } } diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs index bdb9b88761..f68aa0758c 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerBatteryBarrelComponent.cs @@ -4,7 +4,7 @@ using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Power; using Content.Server.GameObjects.Components.Projectiles; -using Content.Shared.GameObjects.Components.Damage; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Weapons.Ranged.Barrels; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Server.GameObjects; diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs index 4b0553fe2b..0d1188505b 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/Barrels/ServerRangedBarrelComponent.cs @@ -1,7 +1,6 @@ using System; using System.Collections.Generic; using System.Linq; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Projectiles; using Content.Server.GameObjects.Components.Weapon.Ranged.Ammunition; @@ -15,7 +14,6 @@ using Robust.Shared.Audio; using Robust.Shared.GameObjects.Components; using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Physics; using Robust.Shared.Interfaces.Random; using Robust.Shared.Interfaces.Timing; @@ -28,6 +26,7 @@ using Robust.Shared.Prototypes; using Robust.Shared.Random; using Robust.Shared.Serialization; using Robust.Shared.Utility; +using Content.Shared.GameObjects.Components.Damage; namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels { @@ -430,16 +429,12 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged.Barrels var distance = result.HitEntity != null ? result.Distance : hitscan.MaxLength; hitscan.FireEffects(shooter, distance, angle, result.HitEntity); - if (result.HitEntity == null || !result.HitEntity.TryGetComponent(out DamageableComponent damageable)) + if (result.HitEntity == null || !result.HitEntity.TryGetComponent(out IDamageableComponent damageable)) { return; } - damageable.TakeDamage( - hitscan.DamageType, - (int)Math.Round(hitscan.Damage, MidpointRounding.AwayFromZero), - Owner, - shooter); + damageable.ChangeDamage(hitscan.DamageType, (int)Math.Round(hitscan.Damage, MidpointRounding.AwayFromZero), false, Owner); //I used Math.Round over Convert.toInt32, as toInt32 always rounds to //even numbers if halfway between two numbers, rather than rounding to nearest } diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs index e87bacbe71..5c8370b7e8 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/ServerRangedWeaponComponent.cs @@ -1,9 +1,8 @@ using System; -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Weapon.Ranged.Barrels; -using Content.Shared.GameObjects; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Weapons.Ranged; using Content.Shared.GameObjects.EntitySystems; @@ -168,10 +167,10 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged soundSystem.PlayAtCoords("/Audio/Weapons/Guns/Gunshots/bang.ogg", Owner.Transform.GridPosition, AudioParams.Default, 5); - if (user.TryGetComponent(out DamageableComponent health)) + if (user.TryGetComponent(out IDamageableComponent health)) { - health.TakeDamage(DamageType.Brute, 10); - health.TakeDamage(DamageType.Heat, 5); + health.ChangeDamage(DamageType.Blunt, 10, false, user); + health.ChangeDamage(DamageType.Heat, 5, false, user); } if (user.TryGetComponent(out StunnableComponent stun)) diff --git a/Content.Server/GameObjects/EntitySystems/BloodstreamSystem.cs b/Content.Server/GameObjects/EntitySystems/BloodstreamSystem.cs deleted file mode 100644 index fc6a69f325..0000000000 --- a/Content.Server/GameObjects/EntitySystems/BloodstreamSystem.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.GameObjects.Components.Metabolism; -using JetBrains.Annotations; -using Robust.Shared.GameObjects.Systems; - -namespace Content.Server.GameObjects.EntitySystems -{ - /// - /// Triggers metabolism updates for - /// - [UsedImplicitly] - internal sealed class BloodstreamSystem : EntitySystem - { - private float _accumulatedFrameTime; - - public override void Update(float frameTime) - { - //Trigger metabolism updates at most once per second - _accumulatedFrameTime += frameTime; - if (_accumulatedFrameTime > 1.0f) - { - foreach (var component in ComponentManager.EntityQuery()) - { - component.OnUpdate(_accumulatedFrameTime); - } - _accumulatedFrameTime -= 1.0f; - } - } - } -} diff --git a/Content.Server/GameObjects/EntitySystems/BodySystem.cs b/Content.Server/GameObjects/EntitySystems/BodySystem.cs new file mode 100644 index 0000000000..32467e1844 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/BodySystem.cs @@ -0,0 +1,29 @@ +using Content.Server.GameObjects.Components.Body; +using Content.Server.GameObjects.Components.Metabolism; +using JetBrains.Annotations; +using Robust.Shared.GameObjects.Systems; + +namespace Content.Server.GameObjects.EntitySystems +{ + [UsedImplicitly] + public class BodySystem : EntitySystem + { + public override void Update(float frameTime) + { + foreach (var body in ComponentManager.EntityQuery()) + { + body.PreMetabolism(frameTime); + } + + foreach (var metabolism in ComponentManager.EntityQuery()) + { + metabolism.Update(frameTime); + } + + foreach (var body in ComponentManager.EntityQuery()) + { + body.PostMetabolism(frameTime); + } + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs index 2a409d0bfe..3e00f334fd 100644 --- a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs +++ b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfter.cs @@ -5,6 +5,7 @@ using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.GUI; using Content.Server.GameObjects.Components.Items.Storage; using Content.Server.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Damage; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; using Robust.Shared.Map; @@ -63,7 +64,7 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter AsTask = Tcs.Task; } - public void HandleDamage(object? sender, DamageEventArgs eventArgs) + public void HandleDamage(HealthChangedEventArgs args) { _tookDamage = true; } diff --git a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterSystem.cs b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterSystem.cs index 1c01a789a0..1383dfa8e8 100644 --- a/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/DoAfter/DoAfterSystem.cs @@ -3,7 +3,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; using Content.Server.GameObjects.Components; -using Content.Server.GameObjects.Components.Damage; +using Content.Shared.GameObjects.Components.Damage; using JetBrains.Annotations; using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects.Systems; @@ -73,19 +73,19 @@ namespace Content.Server.GameObjects.EntitySystems.DoAfter // Caller's gonna be responsible for this I guess var doAfterComponent = eventArgs.User.GetComponent(); doAfterComponent.Add(doAfter); - DamageableComponent? damageableComponent = null; + IDamageableComponent? damageableComponent = null; // TODO: If the component's deleted this may not get unsubscribed? if (eventArgs.BreakOnDamage && eventArgs.User.TryGetComponent(out damageableComponent)) { - damageableComponent.Damaged += doAfter.HandleDamage; + damageableComponent.HealthChangedEvent += doAfter.HandleDamage; } await doAfter.AsTask; if (damageableComponent != null) { - damageableComponent.Damaged -= doAfter.HandleDamage; + damageableComponent.HealthChangedEvent -= doAfter.HandleDamage; } return doAfter.Status; diff --git a/Content.Server/GameObjects/EntitySystems/HungerSystem.cs b/Content.Server/GameObjects/EntitySystems/HungerSystem.cs index cddc2b76dd..bd8cd6a866 100644 --- a/Content.Server/GameObjects/EntitySystems/HungerSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/HungerSystem.cs @@ -5,20 +5,21 @@ using Robust.Shared.GameObjects.Systems; namespace Content.Server.GameObjects.EntitySystems { [UsedImplicitly] - internal sealed class HungerSystem : EntitySystem + public class HungerSystem : EntitySystem { private float _accumulatedFrameTime; - + public override void Update(float frameTime) { _accumulatedFrameTime += frameTime; - if (_accumulatedFrameTime > 1.0f) + + if (_accumulatedFrameTime > 1) { foreach (var comp in ComponentManager.EntityQuery()) { comp.OnUpdate(_accumulatedFrameTime); } - _accumulatedFrameTime -= 1.0f; + _accumulatedFrameTime -= 1; } } } diff --git a/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs b/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs index 2e48bf7120..a40029da44 100644 --- a/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/StationEvents/RadiationPulseSystem.cs @@ -2,7 +2,9 @@ using System.Collections.Generic; using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.StationEvents; +using Content.Shared.Damage; using Content.Shared.GameObjects; +using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Damage; using JetBrains.Annotations; using Robust.Shared.GameObjects; @@ -28,13 +30,13 @@ namespace Content.Server.GameObjects.EntitySystems.StationEvents private const int DamageThreshold = 10; private Dictionary _accumulatedDamage = new Dictionary(); - + public override void Initialize() { base.Initialize(); - _speciesQuery = new TypeEntityQuery(typeof(SpeciesComponent)); + _speciesQuery = new TypeEntityQuery(typeof(IBodyManagerComponent)); } - + public override void Update(float frameTime) { base.Update(frameTime); @@ -72,7 +74,7 @@ namespace Content.Server.GameObjects.EntitySystems.StationEvents var damageMultiple = (int) (totalDamage / DamageThreshold); _accumulatedDamage[species] = totalDamage % DamageThreshold; - damageableComponent.TakeDamage(DamageType.Heat, damageMultiple * DamageThreshold, comp.Owner, comp.Owner); + damageableComponent.ChangeDamage(DamageType.Heat, damageMultiple * DamageThreshold, false, comp.Owner); } } @@ -80,10 +82,10 @@ namespace Content.Server.GameObjects.EntitySystems.StationEvents { return; } - + // probably don't need to worry about clearing this at roundreset unless you have a radiation pulse at roundstart // (which is currently not possible) _accumulatedDamage.Clear(); } } -} \ No newline at end of file +} diff --git a/Content.Server/GameObjects/EntitySystems/StomachSystem.cs b/Content.Server/GameObjects/EntitySystems/StomachSystem.cs deleted file mode 100644 index ffc16af206..0000000000 --- a/Content.Server/GameObjects/EntitySystems/StomachSystem.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Content.Server.GameObjects.Components.Nutrition; -using JetBrains.Annotations; -using Robust.Shared.GameObjects.Systems; - -namespace Content.Server.GameObjects.EntitySystems -{ - /// - /// Triggers digestion updates on - /// - [UsedImplicitly] - internal sealed class StomachSystem : EntitySystem - { - private float _accumulatedFrameTime; - - public override void Update(float frameTime) - { - //Update at most once per second - _accumulatedFrameTime += frameTime; - if (_accumulatedFrameTime > 1.0f) - { - foreach (var component in ComponentManager.EntityQuery()) - { - component.OnUpdate(_accumulatedFrameTime); - } - _accumulatedFrameTime -= 1.0f; - } - } - } -} diff --git a/Content.Server/GameObjects/EntitySystems/ThirstSystem.cs b/Content.Server/GameObjects/EntitySystems/ThirstSystem.cs index b6047a273c..dbb8816a49 100644 --- a/Content.Server/GameObjects/EntitySystems/ThirstSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/ThirstSystem.cs @@ -5,20 +5,21 @@ using Robust.Shared.GameObjects.Systems; namespace Content.Server.GameObjects.EntitySystems { [UsedImplicitly] - internal sealed class ThirstSystem : EntitySystem + public class ThirstSystem : EntitySystem { private float _accumulatedFrameTime; public override void Update(float frameTime) { _accumulatedFrameTime += frameTime; - if (_accumulatedFrameTime > 1.0f) + + if (_accumulatedFrameTime > 1) { foreach (var component in ComponentManager.EntityQuery()) { component.OnUpdate(_accumulatedFrameTime); } - _accumulatedFrameTime -= 1.0f; + _accumulatedFrameTime -= 1; } } } diff --git a/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs b/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs index 05b84f8a1b..cd108324e0 100644 --- a/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs +++ b/Content.Server/GameTicking/GameRules/RuleDeathMatch.cs @@ -1,8 +1,8 @@ using System; using System.Threading; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameTicking; +using Content.Shared.GameObjects.Components.Damage; using Robust.Server.Interfaces.Player; using Robust.Server.Player; using Robust.Shared.Enums; @@ -34,7 +34,7 @@ namespace Content.Server.GameTicking.GameRules { _chatManager.DispatchServerAnnouncement("The game is now a death match. Kill everybody else to win!"); - _entityManager.EventBus.SubscribeEvent(EventSource.Local, this, _onMobDamageStateChanged); + _entityManager.EventBus.SubscribeEvent(EventSource.Local, this, OnHealthChanged); _playerManager.PlayerStatusChanged += PlayerManagerOnPlayerStatusChanged; } @@ -42,11 +42,11 @@ namespace Content.Server.GameTicking.GameRules { base.Removed(); - _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); + _entityManager.EventBus.UnsubscribeEvent(EventSource.Local, this); _playerManager.PlayerStatusChanged -= PlayerManagerOnPlayerStatusChanged; } - private void _onMobDamageStateChanged(MobDamageStateChangedMessage message) + private void OnHealthChanged(HealthChangedEventArgs message) { _runDelayedCheck(); } @@ -59,12 +59,12 @@ namespace Content.Server.GameTicking.GameRules foreach (var playerSession in _playerManager.GetAllPlayers()) { if (playerSession.AttachedEntity == null - || !playerSession.AttachedEntity.TryGetComponent(out SpeciesComponent species)) + || !playerSession.AttachedEntity.TryGetComponent(out IDamageableComponent damageable)) { continue; } - if (!species.CurrentDamageState.IsConscious) + if (damageable.CurrentDamageState != DamageState.Alive) { continue; } diff --git a/Content.Server/GameTicking/GameRules/RuleSuspicion.cs b/Content.Server/GameTicking/GameRules/RuleSuspicion.cs index a3d830412e..553df745a2 100644 --- a/Content.Server/GameTicking/GameRules/RuleSuspicion.cs +++ b/Content.Server/GameTicking/GameRules/RuleSuspicion.cs @@ -1,10 +1,10 @@ using System; using System.Threading; -using Content.Server.GameObjects.Components.Mobs; using Content.Server.Interfaces.Chat; using Content.Server.Interfaces.GameTicking; using Content.Server.Mobs.Roles; using Content.Server.Players; +using Content.Shared.GameObjects.Components.Damage; using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.IoC; @@ -30,6 +30,8 @@ namespace Content.Server.GameTicking.GameRules public override void Added() { + _chatManager.DispatchServerAnnouncement("There are traitors on the station! Find them, and kill them!"); + Timer.SpawnRepeating(DeadCheckDelay, _checkWinConditions, _checkTimerCancel.Token); } @@ -48,12 +50,12 @@ namespace Content.Server.GameTicking.GameRules foreach (var playerSession in _playerManager.GetAllPlayers()) { if (playerSession.AttachedEntity == null - || !playerSession.AttachedEntity.TryGetComponent(out SpeciesComponent species)) + || !playerSession.AttachedEntity.TryGetComponent(out IDamageableComponent damageable)) { continue; } - if (!species.CurrentDamageState.IsConscious) + if (damageable.CurrentDamageState != DamageState.Alive) { continue; } diff --git a/Content.Server/GameTicking/GameTickerCommands.cs b/Content.Server/GameTicking/GameTickerCommands.cs index 1d37695a78..a43f2d9498 100644 --- a/Content.Server/GameTicking/GameTickerCommands.cs +++ b/Content.Server/GameTicking/GameTickerCommands.cs @@ -1,12 +1,7 @@ using System; using System.Collections.Generic; -using System.Linq; -using Content.Server.Health.BodySystem; -using Content.Server.Health.BodySystem.BodyPart; using Content.Server.Interfaces.GameTicking; using Content.Server.Players; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.BodyPart; using Content.Shared.Maps; using Content.Shared.Roles; using Robust.Server.Interfaces.Console; @@ -14,12 +9,10 @@ using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects.Components.Transform; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Map; -using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; using Robust.Shared.Map; using Robust.Shared.Network; using Robust.Shared.Prototypes; -using Robust.Shared.Random; using Robust.Shared.Utility; namespace Content.Server.GameTicking @@ -334,80 +327,6 @@ namespace Content.Server.GameTicking } } - class AddHandCommand : IClientCommand - { - public string Command => "addhand"; - public string Description => "Adds a hand to your entity."; - public string Help => $"Usage: {Command}"; - - public void Execute(IConsoleShell shell, IPlayerSession player, string[] args) - { - if (player == null) - { - shell.SendText((IPlayerSession) null, "Only a player can run this command."); - return; - } - - if (player.AttachedEntity == null) - { - shell.SendText(player, "You have no entity."); - return; - } - - if (!player.AttachedEntity.TryGetComponent(out BodyManagerComponent body)) - { - var random = IoCManager.Resolve(); - var text = $"You have no body{(random.Prob(0.2f) ? " and you must scream." : ".")}"; - - shell.SendText(player, text); - return; - } - - var prototypeManager = IoCManager.Resolve(); - prototypeManager.TryIndex("bodyPart.Hand.BasicHuman", out BodyPartPrototype prototype); - - var part = new BodyPart(prototype); - var slot = part.GetHashCode().ToString(); - - body.Template.Slots.Add(slot, BodyPartType.Hand); - body.InstallBodyPart(part, slot); - } - } - - class RemoveHandCommand : IClientCommand - { - public string Command => "removehand"; - public string Description => "Removes a hand from your entity."; - public string Help => $"Usage: {Command}"; - - public void Execute(IConsoleShell shell, IPlayerSession player, string[] args) - { - if (player == null) - { - shell.SendText((IPlayerSession) null, "Only a player can run this command."); - return; - } - - if (player.AttachedEntity == null) - { - shell.SendText(player, "You have no entity."); - return; - } - - var manager = player.AttachedEntity.GetComponent(); - var hand = manager.PartDictionary.FirstOrDefault(x => x.Value.PartType == BodyPartType.Hand); - if (hand.Value == null) - { - shell.SendText(player, "You have no hands."); - return; - } - else - { - manager.DisconnectBodyPart(hand.Value, true); - } - } - } - class TileWallsCommand : IClientCommand { // ReSharper disable once StringLiteralTypo diff --git a/Content.Server/GlobalVerbs/RejuvenateVerb.cs b/Content.Server/GlobalVerbs/RejuvenateVerb.cs index 5f074e085b..8d49222da8 100644 --- a/Content.Server/GlobalVerbs/RejuvenateVerb.cs +++ b/Content.Server/GlobalVerbs/RejuvenateVerb.cs @@ -1,6 +1,6 @@ -using Content.Server.GameObjects.Components.Damage; -using Content.Server.GameObjects.Components.Mobs; +using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Nutrition; +using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Verbs; using Robust.Server.Console; using Robust.Server.Interfaces.GameObjects; @@ -28,7 +28,7 @@ namespace Content.Server.GlobalVerbs if (user.TryGetComponent(out var player)) { - if (!target.HasComponent() && !target.HasComponent() && + if (!target.HasComponent() && !target.HasComponent() && !target.HasComponent()) { return; @@ -50,20 +50,24 @@ namespace Content.Server.GlobalVerbs PerformRejuvenate(target); } } + public static void PerformRejuvenate(IEntity target) { - if (target.TryGetComponent(out DamageableComponent damage)) + if (target.TryGetComponent(out IDamageableComponent damage)) { - damage.HealAllDamage(); + damage.Heal(); } + if (target.TryGetComponent(out HungerComponent hunger)) { hunger.ResetFood(); } + if (target.TryGetComponent(out ThirstComponent thirst)) { thirst.ResetThirst(); } + if (target.TryGetComponent(out StunnableComponent stun)) { stun.ResetStuns(); diff --git a/Content.Server/Health/BodySystem/BodyManagerComponent.cs b/Content.Server/Health/BodySystem/BodyManagerComponent.cs deleted file mode 100644 index c60ed9091c..0000000000 --- a/Content.Server/Health/BodySystem/BodyManagerComponent.cs +++ /dev/null @@ -1,402 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Content.Server.Health.BodySystem.BodyPart; -using Content.Server.Health.BodySystem.BodyPreset; -using Content.Server.Health.BodySystem.BodyTemplate; -using Content.Server.Interfaces.GameObjects.Components.Interaction; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem.BodyPreset; -using Content.Shared.Health.BodySystem.BodyTemplate; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; - -namespace Content.Server.Health.BodySystem { - - /// - /// Component representing a collection of BodyParts attached to each other. - /// - [RegisterComponent] - public class BodyManagerComponent : Component, IBodyPartContainer { - - public sealed override string Name => "BodyManager"; -#pragma warning disable CS0649 - [Dependency] private IPrototypeManager _prototypeManager; -#pragma warning restore - - [ViewVariables] - private BodyTemplate.BodyTemplate _template; - - [ViewVariables] - private string _presetName; - - [ViewVariables] - private Dictionary _partDictionary = new Dictionary(); - - /// - /// The that this BodyManagerComponent is adhering to. - /// - public BodyTemplate.BodyTemplate Template => _template; - - /// - /// Maps slot name to the object filling it (if there is one). - /// - public Dictionary PartDictionary => _partDictionary; - - /// - /// List of all occupied slots in this body, taken from the values of _parts. - /// - public IEnumerable AllSlots - { - get - { - return _template.Slots.Keys; - } - } - - /// - /// List of all occupied slots in this body, taken from the values of _parts. - /// - public IEnumerable OccupiedSlots - { - get - { - return _partDictionary.Keys; - } - } - - /// - /// List of all BodyParts in this body, taken from the keys of _parts. - /// - public IEnumerable Parts { - get { - return _partDictionary.Values; - } - } - - /// - /// Recursive search that returns whether a given is connected to the center . - /// Not efficient (O(n^2)), but most bodies don't have a ton of BodyParts. - /// - public bool ConnectedToCenterPart(BodyPart.BodyPart target) { - List searchedSlots = new List { }; - if (TryGetSlotName(target, out string result)) - return false; - return ConnectedToCenterPartRecursion(searchedSlots, result); - } - private bool ConnectedToCenterPartRecursion(List searchedSlots, string slotName) { - TryGetBodyPart(slotName, out BodyPart.BodyPart part); - if (part != null && part == GetCenterBodyPart()) - return true; - searchedSlots.Add(slotName); - if (TryGetBodyPartConnections(slotName, out List connections)) { - foreach (string connection in connections) { - if (!searchedSlots.Contains(connection) && ConnectedToCenterPartRecursion(searchedSlots, connection)) - return true; - } - } - return false; - - } - - /// - /// Returns the central of this body based on the . For humans, this is the torso. Returns null if not found. - /// - public BodyPart.BodyPart GetCenterBodyPart() { - _partDictionary.TryGetValue(_template.CenterSlot, out BodyPart.BodyPart center); - return center; - } - - /// - /// Returns whether the given slot name exists within the current . - /// - public bool SlotExists(string slotName) - { - return _template.SlotExists(slotName); - } - - - /// - /// Grabs the in the given slotName if there is one. Returns true if a is found, - /// false otherwise. If false, result will be null. - /// - public bool TryGetBodyPart(string slotName, out BodyPart.BodyPart result) { - return _partDictionary.TryGetValue(slotName, out result); - } - - /// - /// Grabs the slotName that the given resides in. Returns true if the is - /// part of this body and a slot is found, false otherwise. If false, result will be null. - /// - public bool TryGetSlotName(BodyPart.BodyPart part, out string result) { - result = _partDictionary.FirstOrDefault(x => x.Value == part).Key; //We enforce that there is only one of each value in the dictionary, so we can iterate through the dictionary values to get the key from there. - return result == null; - } - - /// - /// Grabs the of the given slotName if there is one. Returns true if the slot is found, false otherwise. If false, result will be null. - /// - public bool TryGetSlotType(string slotName, out BodyPartType result) - { - return _template.Slots.TryGetValue(slotName, out result); - } - - /// - /// Grabs the names of all connected slots to the given slotName from the template. Returns true if connections are found to the slotName, false otherwise. If false, connections will be null. - /// - public bool TryGetBodyPartConnections(string slotName, out List connections) { - return _template.Connections.TryGetValue(slotName, out connections); - } - - /// - /// Grabs all occupied slots connected to the given slot, regardless of whether the target slot is occupied. Returns true if successful, false if there was an error or no connected BodyParts were found. - /// - public bool TryGetBodyPartConnections(string slotName, out List result) - { - result = null; - if (!_template.Connections.TryGetValue(slotName, out List connections)) - return false; - List toReturn = new List(); - foreach (string connection in connections) - { - if (TryGetBodyPart(connection, out BodyPart.BodyPart bodyPartResult)) - { - toReturn.Add(bodyPartResult); - } - } - if (toReturn.Count <= 0) - return false; - result = toReturn; - return true; - } - - - - - - - - ///////// - ///////// Server-specific stuff - ///////// - - public override void ExposeData(ObjectSerializer serializer) { - base.ExposeData(serializer); - - serializer.DataReadWriteFunction( - "BaseTemplate", - "bodyTemplate.Humanoid", - template => - { - if (!_prototypeManager.TryIndex(template, out BodyTemplatePrototype templateData)) - { - throw new InvalidOperationException("No BodyTemplatePrototype was found with the name " + template + " while loading a BodyTemplate!"); //Should never happen unless you fuck up the prototype. - } - - _template = new BodyTemplate.BodyTemplate(templateData); - }, - () => _template.Name); - - serializer.DataReadWriteFunction( - "BasePreset", - "bodyPreset.BasicHuman", - preset => - { - if (!_prototypeManager.TryIndex(preset, out BodyPresetPrototype presetData)) - { - throw new InvalidOperationException("No BodyPresetPrototype was found with the name " + preset + " while loading a BodyPreset!"); //Should never happen unless you fuck up the prototype. - } - - LoadBodyPreset(new BodyPreset.BodyPreset(presetData)); - }, - () => _presetName); - } - - /// - /// Loads the given - forcefully changes all limbs found in both the preset and this template! - /// - public void LoadBodyPreset(BodyPreset.BodyPreset preset) - { - _presetName = preset.Name; - - foreach (var (slotName, type) in _template.Slots) { - if (!preset.PartIDs.TryGetValue(slotName, out string partID)) { //For each slot in our BodyManagerComponent's template, try and grab what the ID of what the preset says should be inside it. - continue; //If the preset doesn't define anything for it, continue. - } - if (!_prototypeManager.TryIndex(partID, out BodyPartPrototype newPartData)) { //Get the BodyPartPrototype corresponding to the BodyPart ID we grabbed. - throw new InvalidOperationException("BodyPart prototype with ID " + partID + " could not be found!"); - } - - //Try and remove an existing limb if that exists. - if (_partDictionary.Remove(slotName, out var removedPart)) - { - BodyPartRemoved(removedPart, slotName); - } - - var addedPart = new BodyPart.BodyPart(newPartData); - _partDictionary.Add(slotName, addedPart); //Add a new BodyPart with the BodyPartPrototype as a baseline to our BodyComponent. - BodyPartAdded(addedPart, slotName); - } - } - - /// - /// Changes the current to the given . Attempts to keep previous BodyParts - /// if there is a slot for them in both . - /// - public void ChangeBodyTemplate(BodyTemplatePrototype newTemplate) { - foreach (KeyValuePair part in _partDictionary) { - //TODO: Make this work. - } - } - - /// - /// Grabs all BodyParts of the given type in this body. - /// - public List GetBodyPartsOfType(BodyPartType type) { - List toReturn = new List(); - foreach (var (slotName, bodyPart) in _partDictionary) { - if (bodyPart.PartType == type) - toReturn.Add(bodyPart); - } - return toReturn; - } - - - - /// - /// Installs the given into the given slot. Returns true if successful, false otherwise. - /// - public bool InstallBodyPart(BodyPart.BodyPart part, string slotName) - { - if (!SlotExists(slotName)) //Make sure the given slot exists - return false; - if (TryGetBodyPart(slotName, out BodyPart.BodyPart result)) //And that nothing is in it - return false; - _partDictionary.Add(slotName, part); - BodyPartAdded(part, slotName); - - return true; - } - /// - /// Installs the given into the given slot, deleting the afterwards. Returns true if successful, false otherwise. - /// - public bool InstallDroppedBodyPart(DroppedBodyPartComponent part, string slotName) - { - if (!InstallBodyPart(part.ContainedBodyPart, slotName)) - return false; - part.Owner.Delete(); - return true; - } - - - - /// - /// Disconnects the given reference, potentially dropping other BodyParts - /// if they were hanging off it. Returns the IEntity representing the dropped BodyPart. - /// - public IEntity DropBodyPart(BodyPart.BodyPart part) - { - if (!_partDictionary.ContainsValue(part)) - return null; - if (part != null) - { - string slotName = _partDictionary.FirstOrDefault(x => x.Value == part).Key; - _partDictionary.Remove(slotName); - if (TryGetBodyPartConnections(slotName, out List connections)) //Call disconnect on all limbs that were hanging off this limb. - { - foreach (string connectionName in connections) //This loop is an unoptimized travesty. TODO: optimize to be less shit - { - if (TryGetBodyPart(connectionName, out BodyPart.BodyPart result) && !ConnectedToCenterPart(result)) - { - DisconnectBodyPartByName(connectionName, true); - } - } - } - var partEntity = Owner.EntityManager.SpawnEntity("BaseDroppedBodyPart", Owner.Transform.GridPosition); - partEntity.GetComponent().TransferBodyPartData(part); - return partEntity; - } - return null; - } - - /// - /// Disconnects the given reference, potentially dropping other BodyParts if they were hanging off it. - /// - public void DisconnectBodyPart(BodyPart.BodyPart part, bool dropEntity) { - if (!_partDictionary.ContainsValue(part)) - return; - if (part != null) { - string slotName = _partDictionary.FirstOrDefault(x => x.Value == part).Key; - if (_partDictionary.Remove(slotName, out var partRemoved)) - { - BodyPartRemoved(partRemoved, slotName); - } - - if (TryGetBodyPartConnections(slotName, out List connections)) //Call disconnect on all limbs that were hanging off this limb. - { - foreach (string connectionName in connections) //This loop is an unoptimized travesty. TODO: optimize to be less shit - { - if (TryGetBodyPart(connectionName, out BodyPart.BodyPart result) && !ConnectedToCenterPart(result)) { - DisconnectBodyPartByName(connectionName, dropEntity); - } - } - } - if (dropEntity) { - var partEntity = Owner.EntityManager.SpawnEntity("BaseDroppedBodyPart", Owner.Transform.GridPosition); - partEntity.GetComponent().TransferBodyPartData(part); - } - } - } - - /// - /// Internal string version of DisconnectBodyPart for performance purposes. Yes, it is actually more performant. - /// - private void DisconnectBodyPartByName(string name, bool dropEntity) { - if (!TryGetBodyPart(name, out BodyPart.BodyPart part)) - return; - if (part != null) { - if (_partDictionary.Remove(name, out var partRemoved)) - { - BodyPartRemoved(partRemoved, name); - } - - if (TryGetBodyPartConnections(name, out List connections)) { - foreach (string connectionName in connections) { - if (TryGetBodyPart(connectionName, out BodyPart.BodyPart result) && !ConnectedToCenterPart(result)) { - DisconnectBodyPartByName(connectionName, dropEntity); - } - } - } - if (dropEntity) { - var partEntity = Owner.EntityManager.SpawnEntity("BaseDroppedBodyPart", Owner.Transform.GridPosition); - partEntity.GetComponent().TransferBodyPartData(part); - } - } - } - - private void BodyPartAdded(BodyPart.BodyPart part, string slotName) - { - var argsAdded = new BodyPartAddedEventArgs(part, slotName); - - foreach (var component in Owner.GetAllComponents().ToArray()) - { - component.BodyPartAdded(argsAdded); - } - } - - private void BodyPartRemoved(BodyPart.BodyPart part, string slotName) - { - var args = new BodyPartRemovedEventArgs(part, slotName); - - foreach (var component in Owner.GetAllComponents()) - { - component.BodyPartRemoved(args); - } - } - } -} diff --git a/Content.Server/Health/BodySystem/BodyPart/BodyPart.cs b/Content.Server/Health/BodySystem/BodyPart/BodyPart.cs deleted file mode 100644 index 92addbbebd..0000000000 --- a/Content.Server/Health/BodySystem/BodyPart/BodyPart.cs +++ /dev/null @@ -1,260 +0,0 @@ -using System; -using System.Collections.Generic; -using Content.Server.Health.BodySystem.Mechanism; -using Content.Server.Health.BodySystem.Surgery.Surgeon; -using Content.Server.Health.BodySystem.Surgery.SurgeryData; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem.Mechanism; -using Content.Shared.Health.DamageContainer; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Serialization; -using Robust.Shared.IoC; -using Robust.Shared.Prototypes; -using Robust.Shared.ViewVariables; - -namespace Content.Server.Health.BodySystem.BodyPart -{ - - - /// - /// Data class representing a singular limb such as an arm or a leg. Typically held within either a , - /// which coordinates functions between BodyParts, or a . - /// - public class BodyPart - { - - [ViewVariables] - private ISurgeryData _surgeryData; - - [ViewVariables] - private List _mechanisms = new List(); - - [ViewVariables] - private int _sizeUsed = 0; - - /// - /// The name of this BodyPart, often displayed to the user. For example, it could be named "advanced robotic arm". - /// - [ViewVariables] - public string Name { get; set; } - - /// - /// Plural version of this BodyPart name. - /// - [ViewVariables] - public string Plural { get; set; } - - /// - /// Path to the RSI that represents this BodyPart. - /// - [ViewVariables] - public string RSIPath { get; set; } - - /// - /// RSI state that represents this BodyPart. - /// - [ViewVariables] - public string RSIState { get; set; } - - /// - /// that this BodyPart is considered to be. For example, BodyPartType.Arm. - /// - [ViewVariables] - public BodyPartType PartType { get; set; } - - /// - /// Max HP of this BodyPart. - /// - [ViewVariables] - public int MaxDurability { get; set; } - - /// - /// Current HP of this BodyPart based on sum of all damage types. - /// - [ViewVariables] - public int CurrentDurability => MaxDurability - CurrentDamages.Damage; - - /// - /// Current damage dealt to this BodyPart. - /// - [ViewVariables] - public AbstractDamageContainer CurrentDamages { get; set; } - - /// - /// At what HP this BodyPartis completely destroyed. - /// - [ViewVariables] - public int DestroyThreshold { get; set; } - - /// - /// Armor of this BodyPart against attacks. - /// - [ViewVariables] - public float Resistance { get; set; } - - /// - /// Determines many things: how many mechanisms can be fit inside this BodyPart, whether a body can fit through tiny crevices, etc. - /// - [ViewVariables] - public int Size { get; set; } - - /// - /// What types of BodyParts this BodyPart can easily attach to. For the most part, most limbs aren't universal and require extra work to attach between types. - /// - [ViewVariables] - public BodyPartCompatibility Compatibility { get; set; } - - /// - /// List of properties, allowing for additional data classes to be attached to a limb, such as a "length" class to an arm. - /// - [ViewVariables] - public List Properties { get; set; } - - /// - /// List of all Mechanisms currently inside this BodyPart. - /// - [ViewVariables] - public List Mechanisms => _mechanisms; - - public BodyPart() { } - - public BodyPart(BodyPartPrototype data) - { - LoadFromPrototype(data); - } - - - - - - - public bool CanAttachBodyPart(BodyPart toBeConnected) - { - return _surgeryData.CanAttachBodyPart(toBeConnected); - } - - - - - - - /// - /// Returns whether the given can be installed on this BodyPart. - /// - public bool CanInstallMechanism(Mechanism.Mechanism mechanism) - { - if (_sizeUsed + mechanism.Size > Size) - return false; //No space - return _surgeryData.CanInstallMechanism(mechanism); - } - - /// - /// Attempts to add a . Returns true if successful, false if there was an error (e.g. not enough room in BodyPart). Call InstallDroppedMechanism instead if you want to easily install an IEntity with a DroppedMechanismComponent. - /// - public bool TryInstallMechanism(Mechanism.Mechanism mechanism) - { - if (CanInstallMechanism(mechanism)) - { - _mechanisms.Add(mechanism); - _sizeUsed += mechanism.Size; - return true; - } - return false; - } - - /// - /// Attempts to install a into the given limb, potentially deleting the dropped . Returns true if successful, false if there was an error (e.g. not enough room in BodyPart). - /// - public bool TryInstallDroppedMechanism(DroppedMechanismComponent droppedMechanism) - { - if (!TryInstallMechanism(droppedMechanism.ContainedMechanism)) - return false; //Installing the mechanism failed for some reason. - droppedMechanism.Owner.Delete(); - return true; - } - - /// - /// Tries to remove the given reference from this BodyPart. Returns null if there was an error in spawning the entity or removing the mechanism, otherwise returns a reference to the on the newly spawned entity. - /// - public DroppedMechanismComponent DropMechanism(IEntity dropLocation, Mechanism.Mechanism mechanismTarget) - { - if (!_mechanisms.Contains(mechanismTarget)) - return null; - _mechanisms.Remove(mechanismTarget); - _sizeUsed -= mechanismTarget.Size; - IEntityManager entityManager = IoCManager.Resolve(); - var mechanismEntity = entityManager.SpawnEntity("BaseDroppedMechanism", dropLocation.Transform.GridPosition); - var droppedMechanism = mechanismEntity.GetComponent(); - droppedMechanism.InitializeDroppedMechanism(mechanismTarget); - return droppedMechanism; - } - - /// - /// Tries to destroy the given in the given BodyPart. Returns false if there was an error, true otherwise. Does NOT spawn a dropped entity. - /// - public bool DestroyMechanism(BodyPart bodyPartTarget, Mechanism.Mechanism mechanismTarget) - { - if (!_mechanisms.Contains(mechanismTarget)) - return false; - _mechanisms.Remove(mechanismTarget); - _sizeUsed -= mechanismTarget.Size; - return true; - } - - - - - - /// - /// Returns whether the given can be used on the current state of this BodyPart. - /// - public bool SurgeryCheck(SurgeryType toolType) - { - return _surgeryData.CheckSurgery(toolType); - } - - /// - /// Attempts to perform surgery on this BodyPart with the given tool. Returns false if there was an error, true if successful. - /// - public bool AttemptSurgery(SurgeryType toolType, IBodyPartContainer target, ISurgeon surgeon, IEntity performer) - { - return _surgeryData.PerformSurgery(toolType, target, surgeon, performer); - } - - - - - - /// - /// Loads the given - current data on this will be overwritten! - /// - public virtual void LoadFromPrototype(BodyPartPrototype data) - { - Name = data.Name; - Plural = data.Plural; - PartType = data.PartType; - RSIPath = data.RSIPath; - RSIState = data.RSIState; - MaxDurability = data.Durability; - CurrentDamages = new BiologicalDamageContainer(); - Resistance = data.Resistance; - Size = data.Size; - Compatibility = data.Compatibility; - Properties = data.Properties; - //_surgeryData = (ISurgeryData) Activator.CreateInstance(null, data.SurgeryDataName); - //TODO: figure out a way to convert a string name in the YAML to the proper class (reflection won't work for reasons) - _surgeryData = new BiologicalSurgeryData(this); - IPrototypeManager prototypeManager = IoCManager.Resolve(); - foreach (string mechanismPrototypeID in data.Mechanisms) - { - if (!prototypeManager.TryIndex(mechanismPrototypeID, out MechanismPrototype mechanismData)) - { - throw new InvalidOperationException("No MechanismPrototype was found with the name " + mechanismPrototypeID + " while loading a BodyPartPrototype!"); - } - _mechanisms.Add(new Mechanism.Mechanism(mechanismData)); - } - - } - } -} diff --git a/Content.Server/Health/BodySystem/BodyPreset/BodyPreset.cs b/Content.Server/Health/BodySystem/BodyPreset/BodyPreset.cs deleted file mode 100644 index 83bd17a1b8..0000000000 --- a/Content.Server/Health/BodySystem/BodyPreset/BodyPreset.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Collections.Generic; -using Content.Server.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem.BodyPreset; -using Robust.Shared.ViewVariables; - -namespace Content.Server.Health.BodySystem.BodyPreset { - - /// - /// Stores data on what BodyPartPrototypes should fill a BodyTemplate. Used for loading complete body presets, like a "basic human" with all human limbs. - /// - public class BodyPreset { - private string _name; - private Dictionary _partIDs; - - [ViewVariables] - public string Name => _name; - - /// - /// Maps a template slot to the ID of the that should fill it. E.g. "right arm" : "BodyPart.arm.basic_human". - /// - [ViewVariables] - public Dictionary PartIDs => _partIDs; - - public BodyPreset(BodyPresetPrototype data) - { - LoadFromPrototype(data); - } - - public virtual void LoadFromPrototype(BodyPresetPrototype data) - { - _name = data.Name; - _partIDs = data.PartIDs; - } - } -} diff --git a/Content.Server/Health/BodySystem/BodyScanner/BodyScannerComponent.cs b/Content.Server/Health/BodySystem/BodyScanner/BodyScannerComponent.cs deleted file mode 100644 index ee0f7a34c6..0000000000 --- a/Content.Server/Health/BodySystem/BodyScanner/BodyScannerComponent.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Collections.Generic; -using Content.Shared.Health.BodySystem.BodyScanner; -using Content.Shared.Interfaces.GameObjects.Components; -using Robust.Server.GameObjects.Components.UserInterface; -using Robust.Server.Interfaces.GameObjects; -using Robust.Shared.GameObjects; - -namespace Content.Server.Health.BodySystem.BodyScanner -{ - [RegisterComponent] - [ComponentReference(typeof(IActivate))] - public class BodyScannerComponent : Component, IActivate - { - public sealed override string Name => "BodyScanner"; - - private BoundUserInterface _userInterface; - - public override void Initialize() - { - base.Initialize(); - _userInterface = Owner.GetComponent().GetBoundUserInterface(BodyScannerUiKey.Key); - _userInterface.OnReceiveMessage += UserInterfaceOnOnReceiveMessage; - } - - private void UserInterfaceOnOnReceiveMessage(ServerBoundUserInterfaceMessage serverMsg) - { - - } - - void IActivate.Activate(ActivateEventArgs eventArgs) - { - if (!eventArgs.User.TryGetComponent(out IActorComponent actor)) - { - return; - } - - if (actor.playerSession.AttachedEntity.TryGetComponent(out BodyManagerComponent attempt)) - { - _userInterface.SetState(PrepareBodyScannerInterfaceState(attempt.Template, attempt.PartDictionary)); - } - _userInterface.Open(actor.playerSession); - } - - - /// - /// Copy BodyTemplate and BodyPart data into a common data class that the client can read. - /// - private BodyScannerInterfaceState PrepareBodyScannerInterfaceState(BodyTemplate.BodyTemplate template, Dictionary bodyParts) - { - Dictionary partsData = new Dictionary(); - foreach (var(slotname, bpart) in bodyParts) { - List mechanismData = new List(); - foreach (var mech in bpart.Mechanisms) - { - mechanismData.Add(new BodyScannerMechanismData(mech.Name, mech.Description, mech.RSIPath, mech.RSIState, mech.MaxDurability, mech.CurrentDurability)); - } - partsData.Add(slotname, new BodyScannerBodyPartData(bpart.Name, bpart.RSIPath, bpart.RSIState, bpart.MaxDurability, bpart.CurrentDurability, mechanismData)); - } - BodyScannerTemplateData templateData = new BodyScannerTemplateData(template.Name, template.Slots); - return new BodyScannerInterfaceState(partsData, templateData); - } - - } -} diff --git a/Content.Server/Health/BodySystem/BodyTemplate/BodyTemplate.cs b/Content.Server/Health/BodySystem/BodyTemplate/BodyTemplate.cs deleted file mode 100644 index a5a7498543..0000000000 --- a/Content.Server/Health/BodySystem/BodyTemplate/BodyTemplate.cs +++ /dev/null @@ -1,113 +0,0 @@ -using System; -using System.Collections.Generic; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.BodyTemplate; -using Robust.Shared.ViewVariables; - -namespace Content.Server.Health.BodySystem.BodyTemplate { - - /// - /// This class is a data capsule representing the standard format of a . For instance, the "humanoid" BodyTemplate - /// defines two arms, each connected to a torso and so on. Capable of loading data from a . - /// - public class BodyTemplate { - - [ViewVariables] - public string Name; - - /// - /// The name of the center BodyPart. For humans, this is set to "torso". Used in many calculations. - /// - [ViewVariables] - public string CenterSlot { get; set; } - - /// - /// Maps all parts on this template to its BodyPartType. For instance, "right arm" is mapped to "BodyPartType.arm" on the humanoid template. - /// - [ViewVariables] - public Dictionary Slots { get; set; } - - /// - /// Maps limb name to the list of their connections to other limbs. For instance, on the humanoid template "torso" is mapped to a list containing "right arm", "left arm", - /// "left leg", and "right leg". This is mapped both ways during runtime, but in the prototype only one way has to be defined, i.e., "torso" to "left arm" will automatically - /// map "left arm" to "torso". - /// - [ViewVariables] - public Dictionary> Connections { get; set; } - - public BodyTemplate() - { - Name = "empty"; - Slots = new Dictionary(); - Connections = new Dictionary>(); - CenterSlot = ""; - } - - public BodyTemplate(BodyTemplatePrototype data) - { - LoadFromPrototype(data); - } - - public bool Equals(BodyTemplate other) - { - return GetHashCode() == other.GetHashCode(); - } - - /// - /// Returns whether the given slot exists in this BodyTemplate. - /// - public bool SlotExists(string slotName) - { - foreach (string slot in Slots.Keys) - { - if (slot == slotName) //string comparison xd - return true; - } - return false; - } - - /// - /// Returns an integer unique to this BodyTemplate's layout. It does not matter in which order the Connections or Slots are defined. - /// - public override int GetHashCode() - { - int slotsHash = 0; - int connectionsHash = 0; - - foreach (var(key, value) in Slots) - { - int slot = key.GetHashCode(); - slot = HashCode.Combine(slot, value.GetHashCode()); - slotsHash = slotsHash ^ slot; - } - - List connections = new List(); - foreach (var (key, value) in Connections) - { - foreach (var targetBodyPart in value) - { - int connection = key.GetHashCode() ^ targetBodyPart.GetHashCode(); - if (!connections.Contains(connection)) - connections.Add(connection); - } - } - foreach (int connection in connections) - { - connectionsHash = connectionsHash ^ connection; - } - - int hash = HashCode.Combine(slotsHash, connectionsHash, CenterSlot.GetHashCode()); - if (hash == 0) //One of the unit tests considers 0 to be an error, but it will be 0 if the BodyTemplate is empty, so let's shift that up to 1. - hash++; - return hash; - } - - public virtual void LoadFromPrototype(BodyTemplatePrototype data) - { - Name = data.Name; - CenterSlot = data.CenterSlot; - Slots = data.Slots; - Connections = data.Connections; - } - } -} diff --git a/Content.Server/Health/BodySystem/IBodyPartContainer.cs b/Content.Server/Health/BodySystem/IBodyPartContainer.cs deleted file mode 100644 index c23b8ec1f5..0000000000 --- a/Content.Server/Health/BodySystem/IBodyPartContainer.cs +++ /dev/null @@ -1,16 +0,0 @@ -using Content.Server.Health.BodySystem.Surgery.SurgeryData; - -namespace Content.Server.Health.BodySystem -{ - - /// - /// Making a class inherit from this interface allows you to do many things with it in the class. This includes passing - /// it as an argument to a delegate, as to later typecast it back to the original class type. Every BodyPart also needs an - /// IBodyPartContainer to be its parent (i.e. the BodyManagerComponent holds many BodyParts, each of which have an upward reference to it). - /// - - public interface IBodyPartContainer - { - - } -} diff --git a/Content.Server/Health/BodySystem/Mechanism/Mechanism.cs b/Content.Server/Health/BodySystem/Mechanism/Mechanism.cs deleted file mode 100644 index 1ea508a782..0000000000 --- a/Content.Server/Health/BodySystem/Mechanism/Mechanism.cs +++ /dev/null @@ -1,105 +0,0 @@ -using Content.Server.Health.BodySystem.BodyPart; -using Content.Shared.Health.BodySystem; -using Content.Shared.Health.BodySystem.Mechanism; -using Robust.Shared.ViewVariables; - -namespace Content.Server.Health.BodySystem.Mechanism { - - /// - /// Data class representing a persistent item inside a . This includes livers, eyes, cameras, brains, explosive implants, binary communicators, and other things. - /// - public class Mechanism { - - [ViewVariables] - public string Name { get; set; } - - /// - /// Professional description of the Mechanism. - /// - [ViewVariables] - public string Description { get; set; } - - /// - /// The message to display upon examining a mob with this Mechanism installed. If the string is empty (""), no message will be displayed. - /// - [ViewVariables] - public string ExamineMessage { get; set; } - - /// - /// Path to the RSI that represents this Mechanism. - /// - [ViewVariables] - public string RSIPath { get; set; } - - /// - /// RSI state that represents this Mechanism. - /// - [ViewVariables] - public string RSIState { get; set; } - - /// - /// Max HP of this Mechanism. - /// - [ViewVariables] - public int MaxDurability { get; set; } - - /// - /// Current HP of this Mechanism. - /// - [ViewVariables] - public int CurrentDurability { get; set; } - - /// - /// At what HP this Mechanism is completely destroyed. - /// - [ViewVariables] - public int DestroyThreshold { get; set; } - - /// - /// Armor of this Mechanism against attacks. - /// - [ViewVariables] - public int Resistance { get; set; } - - /// - /// Determines a handful of things - mostly whether this Mechanism can fit into a BodyPart. - /// - [ViewVariables] - public int Size { get; set; } - - /// - /// What kind of BodyParts this Mechanism can be easily installed into. - /// - [ViewVariables] - public BodyPartCompatibility Compatibility { get; set; } - - public Mechanism(MechanismPrototype data) - { - LoadFromPrototype(data); - } - - - - - - - /// - /// Loads the given - current data on this Mechanism will be overwritten! - /// - public void LoadFromPrototype(MechanismPrototype data) - { - Name = data.Name; - Description = data.Description; - ExamineMessage = data.ExamineMessage; - RSIPath = data.RSIPath; - RSIState = data.RSIState; - MaxDurability = data.Durability; - CurrentDurability = MaxDurability; - DestroyThreshold = data.DestroyThreshold; - Resistance = data.Resistance; - Size = data.Size; - Compatibility = data.Compatibility; - } - } -} - diff --git a/Content.Server/Health/BodySystem/Surgery/Surgeon/ISurgeon.cs b/Content.Server/Health/BodySystem/Surgery/Surgeon/ISurgeon.cs deleted file mode 100644 index 6d586b01e5..0000000000 --- a/Content.Server/Health/BodySystem/Surgery/Surgeon/ISurgeon.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System.Collections.Generic; -using Content.Server.Health.BodySystem.Surgery.SurgeryData; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.Health.BodySystem.Surgery.Surgeon -{ - - /// - /// Interface representing an entity capable of performing surgery (performing operations on an class). - /// For an example see , which inherits from this class. - /// - public interface ISurgeon - { - /// - /// How long it takes to perform a single surgery step (in seconds). - /// - public float BaseOperationTime { get; set; } - - - public delegate void MechanismRequestCallback(Mechanism.Mechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer); - - /// - /// When performing a surgery, the may sometimes require selecting from a set of Mechanisms to operate on. - /// This function is called in that scenario, and it is expected that you call the callback with one mechanism from the provided list. - /// - public void RequestMechanism(List options, MechanismRequestCallback callback); - } - -} diff --git a/Content.Server/Health/BodySystem/Surgery/SurgeryData/BiologicalSurgeryData.cs b/Content.Server/Health/BodySystem/Surgery/SurgeryData/BiologicalSurgeryData.cs deleted file mode 100644 index bb3917a7dc..0000000000 --- a/Content.Server/Health/BodySystem/Surgery/SurgeryData/BiologicalSurgeryData.cs +++ /dev/null @@ -1,193 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Content.Server.Health.BodySystem.Surgery.Surgeon; -using Content.Shared.Health.BodySystem; -using Content.Shared.Interfaces; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Localization; - -namespace Content.Server.Health.BodySystem.Surgery.SurgeryData -{ - - /// - /// Data class representing the surgery state of a biological entity. - /// - public class BiologicalSurgeryData : ISurgeryData - { - - protected bool _skinOpened = false; - protected bool _vesselsClamped = false; - protected bool _skinRetracted = false; - protected List _disconnectedOrgans = new List(); - - public BiologicalSurgeryData(BodyPart.BodyPart parent) : base(parent) { } - - public override SurgeryAction GetSurgeryStep(SurgeryType toolType) - { - if (toolType == SurgeryType.Amputation) - { - return RemoveBodyPartSurgery; - } - if (!_skinOpened) //Case: skin is normal. - { - if (toolType == SurgeryType.Incision) - return OpenSkinSurgery; - } - else if (!_vesselsClamped) //Case: skin is opened, but not clamped. - { - if (toolType == SurgeryType.VesselCompression) - return ClampVesselsSurgery; - else if (toolType == SurgeryType.Cauterization) - return CautizerizeIncisionSurgery; - } - else if (!_skinRetracted) //Case: skin is opened and clamped, but not retracted. - { - if (toolType == SurgeryType.Retraction) - return RetractSkinSurgery; - else if (toolType == SurgeryType.Cauterization) - return CautizerizeIncisionSurgery; - } - else //Case: skin is fully open. - { - if (_parent.Mechanisms.Count > 0 && toolType == SurgeryType.VesselCompression && (_disconnectedOrgans.Except(_parent.Mechanisms).Count() != 0 || _parent.Mechanisms.Except(_disconnectedOrgans).Count() != 0)) - return LoosenOrganSurgery; - else if (_disconnectedOrgans.Count > 0 && toolType == SurgeryType.Incision) - return RemoveOrganSurgery; - else if (toolType == SurgeryType.Cauterization) - return CautizerizeIncisionSurgery; - } - return null; - } - - public override string GetDescription(IEntity target) - { - string toReturn = ""; - if (_skinOpened && !_vesselsClamped) //Case: skin is opened, but not clamped. - { - toReturn += Loc.GetString("The skin on {0:their} {1} has an incision, but it is prone to bleeding.\n", target, _parent.Name); - } - else if (_skinOpened && _vesselsClamped && !_skinRetracted) //Case: skin is opened and clamped, but not retracted. - { - toReturn += Loc.GetString("The skin on {0:their} {1} has an incision, but it is not retracted.\n", target, _parent.Name); - } - else if (_skinOpened && _vesselsClamped && _skinRetracted) //Case: skin is fully open. - { - toReturn += Loc.GetString("There is an incision on {0:their} {1}.\n", target, _parent.Name); - foreach (Mechanism.Mechanism mechanism in _disconnectedOrgans) - { - toReturn += Loc.GetString("{0:their} {1} is loose.\n", target, mechanism.Name); - } - } - return toReturn; - } - - public override bool CanInstallMechanism(Mechanism.Mechanism toBeInstalled) - { - return _skinOpened && _vesselsClamped && _skinRetracted; - } - - public override bool CanAttachBodyPart(BodyPart.BodyPart toBeConnected) - { - return true; - //TODO: if a bodypart is disconnected, you should have to do some surgery to allow another bodypart to be attached. - } - - - - - - - protected void OpenSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - performer.PopupMessage(performer, Loc.GetString("Cut open the skin...")); - //Delay? - _skinOpened = true; - } - - - protected void ClampVesselsSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - performer.PopupMessage(performer, Loc.GetString("Clamp the vessels...")); - //Delay? - _vesselsClamped = true; - } - - - protected void RetractSkinSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - performer.PopupMessage(performer, Loc.GetString("Retract the skin...")); - //Delay? - _skinRetracted = true; - } - - - protected void CautizerizeIncisionSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - performer.PopupMessage(performer, Loc.GetString("Cauterize the incision...")); - //Delay? - _skinOpened = false; - _vesselsClamped = false; - _skinRetracted = false; - } - - - protected void LoosenOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - if (_parent.Mechanisms.Count <= 0) - return; - List toSend = new List(); - foreach (Mechanism.Mechanism mechanism in _parent.Mechanisms) - { - if (!_disconnectedOrgans.Contains(mechanism)) - toSend.Add(mechanism); - } - if (toSend.Count > 0) - surgeon.RequestMechanism(toSend, LoosenOrganSurgeryCallback); - } - public void LoosenOrganSurgeryCallback(Mechanism.Mechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - if (target != null && _parent.Mechanisms.Contains(target)) - { - performer.PopupMessage(performer, Loc.GetString("Loosen the organ...")); - //Delay? - _disconnectedOrgans.Add(target); - } - } - - - protected void RemoveOrganSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - if (_disconnectedOrgans.Count <= 0) - return; - if (_disconnectedOrgans.Count == 1) - RemoveOrganSurgeryCallback(_disconnectedOrgans[0], container, surgeon, performer); - else - surgeon.RequestMechanism(_disconnectedOrgans, RemoveOrganSurgeryCallback); - - - } - public void RemoveOrganSurgeryCallback(Mechanism.Mechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - if (target != null && _parent.Mechanisms.Contains(target)) - { - performer.PopupMessage(performer, Loc.GetString("Remove the organ...")); - //Delay? - _parent.DropMechanism(performer, target); - _disconnectedOrgans.Remove(target); - } - } - - - protected void RemoveBodyPartSurgery(IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - if (!(container is BodyManagerComponent)) //This surgery requires a DroppedBodyPartComponent. - return; - BodyManagerComponent bmTarget = (BodyManagerComponent) container; - performer.PopupMessage(performer, Loc.GetString("Saw off the limb!")); - //Delay? - bmTarget.DisconnectBodyPart(_parent, true); - } - - - } -} diff --git a/Content.Server/Health/BodySystem/Surgery/SurgeryData/ISurgeryData.cs b/Content.Server/Health/BodySystem/Surgery/SurgeryData/ISurgeryData.cs deleted file mode 100644 index 47a0aba4c1..0000000000 --- a/Content.Server/Health/BodySystem/Surgery/SurgeryData/ISurgeryData.cs +++ /dev/null @@ -1,81 +0,0 @@ -using Content.Server.Health.BodySystem.BodyPart; -using Content.Server.Health.BodySystem.Mechanism; -using Content.Server.Health.BodySystem.Surgery.Surgeon; -using Content.Shared.Health.BodySystem; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.Health.BodySystem.Surgery.SurgeryData -{ - - - - /// - /// This data class represents the state of a in regards to everything surgery related - whether there's an incision on it, whether the bone is broken, etc. - /// - public abstract class ISurgeryData - { - - /// - /// The this surgeryData is attached to. The ISurgeryData class should not exist without a that it - /// represents, and will throw errors if it is null. - /// - protected BodyPart.BodyPart _parent; - - /// - /// The of the parent . - /// - protected BodyPartType _parentType => _parent.PartType; - - public delegate void SurgeryAction(IBodyPartContainer container, ISurgeon surgeon, IEntity performer); - - - - public ISurgeryData(BodyPart.BodyPart parent) - { - _parent = parent; - } - - /// - /// Returns the description of this current to be shown upon observing the given entity. - /// - public abstract string GetDescription(IEntity target); - - /// - /// Returns whether a can be installed into the this ISurgeryData represents. - /// - public abstract bool CanInstallMechanism(Mechanism.Mechanism toBeInstalled); - - /// - /// Returns whether the given can be connected to the this ISurgeryData represents. - /// - public abstract bool CanAttachBodyPart(BodyPart.BodyPart toBeConnected); - - /// - /// Gets the delegate corresponding to the surgery step using the given . Returns null if no surgery step can be performed. - /// - public abstract SurgeryAction GetSurgeryStep(SurgeryType toolType); - - /// - /// Returns whether the given can be used to perform a surgery on the BodyPart this represents. - /// - public bool CheckSurgery(SurgeryType toolType) - { - return GetSurgeryStep(toolType) != null; - } - - /// - /// Attempts to perform surgery of the given . Returns whether the operation was successful. - /// - /// The used for this surgery. - /// The entity performing the surgery. - public bool PerformSurgery(SurgeryType surgeryType, IBodyPartContainer container, ISurgeon surgeon, IEntity performer) - { - SurgeryAction step = GetSurgeryStep(surgeryType); - if (step == null) - return false; - step(container, surgeon, performer); - return true; - } - - } -} diff --git a/Content.Server/Interfaces/GameObjects/Components/Damage/IDamageableComponent.cs b/Content.Server/Interfaces/GameObjects/Components/Damage/IDamageableComponent.cs deleted file mode 100644 index ad88349bdd..0000000000 --- a/Content.Server/Interfaces/GameObjects/Components/Damage/IDamageableComponent.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using Content.Server.GameObjects.Components.Damage; -using Content.Shared.GameObjects.Components.Damage; -using Robust.Shared.Interfaces.GameObjects; - -namespace Content.Server.Interfaces.GameObjects.Components.Damage -{ - public interface IDamageableComponent : IComponent - { - event EventHandler DamageThresholdPassed; - ResistanceSet Resistances { get; } - - /// - /// The function that handles receiving damage. - /// Converts damage via the resistance set then applies it - /// and informs components of thresholds passed as necessary. - /// - /// Type of damage being received. - /// Amount of damage being received. - /// Entity that damaged this entity. - /// Mob that damaged this entity. - void TakeDamage(DamageType damageType, int amount, IEntity source, IEntity sourceMob); - - /// - /// Handles receiving healing. - /// Converts healing via the resistance set then applies it - /// and informs components of thresholds passed as necessary. - /// - /// Type of healing being received. - /// Amount of healing being received. - /// Entity that healed this entity. - /// Mob that healed this entity. - void TakeHealing(DamageType damageType, int amount, IEntity source, IEntity sourceMob); - } -} diff --git a/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs b/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs index 0cca658e90..f261d6edc5 100644 --- a/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs +++ b/Content.Server/Interfaces/GameObjects/Components/Interaction/IBodyPartAdded.cs @@ -1,5 +1,5 @@ using System; -using Content.Server.Health.BodySystem.BodyPart; +using Content.Server.Body; namespace Content.Server.Interfaces.GameObjects.Components.Interaction { diff --git a/Content.Server/Interfaces/GameObjects/IOnDamageBehavior.cs b/Content.Server/Interfaces/GameObjects/IOnDamageBehavior.cs deleted file mode 100644 index 911d30b031..0000000000 --- a/Content.Server/Interfaces/GameObjects/IOnDamageBehavior.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System.Collections.Generic; -using Content.Server.GameObjects.Components.Damage; - -namespace Content.Server.Interfaces.GameObjects -{ - /// - /// Any component/entity that has behaviour linked to taking damage should implement this interface. - /// TODO: Don't know how to work around this currently, but due to how events work - /// you need to hook it up to the DamageableComponent via Initialize(). - /// See DestructibleComponent.Initialize() for an example. - /// - interface IOnDamageBehavior - { - /// - /// Gets a list of all DamageThresholds this component/entity are interested in. - /// - /// List of DamageThresholds to be added to DamageableComponent for watching. - List GetAllDamageThresholds() => null; - - /// - /// Damage threshold passed event hookup. - /// - /// Damageable component. - /// Damage threshold and whether it's passed in one way or another. - void OnDamageThresholdPassed(object obj, DamageThresholdPassedEventArgs e) { } - - /// - /// Called when the entity is damaged. - /// - /// Damageable component. - /// DamageEventArgs - void OnDamaged(object obj, DamageEventArgs e) { } - } -} diff --git a/Content.Server/Interfaces/GameObjects/ISuicideAct.cs b/Content.Server/Interfaces/GameObjects/ISuicideAct.cs index fb6ed4ade5..78d0d9974f 100644 --- a/Content.Server/Interfaces/GameObjects/ISuicideAct.cs +++ b/Content.Server/Interfaces/GameObjects/ISuicideAct.cs @@ -13,11 +13,13 @@ namespace Content.Server.Interfaces.GameObjects Special, //Doesn't damage the mob, used for "weird" suicides like gibbing //Damage type suicides - Brute, + Blunt, + Piercing, Heat, - Cold, - Acid, - Toxic, - Electric + Disintegration, + Cellular, + DNA, + Asphyxiation + } } diff --git a/Content.Server/Mobs/StandingStateHelper.cs b/Content.Server/Mobs/StandingStateHelper.cs index 1f6f692a0f..f008b6ccc9 100644 --- a/Content.Server/Mobs/StandingStateHelper.cs +++ b/Content.Server/Mobs/StandingStateHelper.cs @@ -1,6 +1,6 @@ using Content.Server.Interfaces.GameObjects.Components.Items; using Content.Shared.Audio; -using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Rotation; using Content.Shared.GameObjects.EntitySystems; using Robust.Server.GameObjects; using Robust.Server.GameObjects.EntitySystems; @@ -31,12 +31,12 @@ namespace Content.Server.Mobs return false; } - var newState = SharedSpeciesComponent.MobState.Down; - appearance.TryGetData(SharedSpeciesComponent.MobVisuals.RotationState, out var oldState); + var newState = RotationState.Horizontal; + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); if (newState != oldState) { - appearance.SetData(SharedSpeciesComponent.MobVisuals.RotationState, newState); + appearance.SetData(RotationVisuals.RotationState, newState); } if (playSound) @@ -61,12 +61,12 @@ namespace Content.Server.Mobs public static bool Standing(IEntity entity) { if (!entity.TryGetComponent(out AppearanceComponent appearance)) return false; - appearance.TryGetData(SharedSpeciesComponent.MobVisuals.RotationState, out var oldState); - var newState = SharedSpeciesComponent.MobState.Standing; + appearance.TryGetData(RotationVisuals.RotationState, out var oldState); + var newState = RotationState.Vertical; if (newState == oldState) return false; - appearance.SetData(SharedSpeciesComponent.MobVisuals.RotationState, newState); + appearance.SetData(RotationVisuals.RotationState, newState); return true; } diff --git a/Content.Server/Observer/Ghost.cs b/Content.Server/Observer/Ghost.cs index 004f5951ee..6c71882c9e 100644 --- a/Content.Server/Observer/Ghost.cs +++ b/Content.Server/Observer/Ghost.cs @@ -1,8 +1,8 @@ -using Content.Server.GameObjects.Components.Damage; using Content.Server.GameObjects.Components.Mobs; using Content.Server.GameObjects.Components.Observer; using Content.Server.Interfaces.GameTicking; using Content.Server.Players; +using Content.Shared.Damage; using Content.Shared.GameObjects.Components.Damage; using Content.Shared.GameObjects.Components.Mobs; using Robust.Server.Interfaces.Console; @@ -42,19 +42,16 @@ namespace Content.Server.Observer var position = player.AttachedEntity?.Transform.GridPosition ?? IoCManager.Resolve().GetObserverSpawnPoint(); - - - if (canReturn && player.AttachedEntity.TryGetComponent(out SpeciesComponent species)) + if (canReturn && player.AttachedEntity.TryGetComponent(out IDamageableComponent damageable)) { - switch (species.CurrentDamageState) + switch (damageable.CurrentDamageState) { - case DeadState _: + case DamageState.Dead: canReturn = true; break; - case CriticalState _: + case DamageState.Critical: canReturn = true; - if (!player.AttachedEntity.TryGetComponent(out DamageableComponent damageable)) break; - damageable.TakeDamage(DamageType.Total, 100); // TODO: Use airloss/oxyloss instead + damageable.ChangeDamage(DamageType.Asphyxiation, 100, true, null); //todo: what if they dont breathe lol break; default: canReturn = false; diff --git a/Content.Server/ServerContentIoC.cs b/Content.Server/ServerContentIoC.cs index c9d618b004..0083b4c8bd 100644 --- a/Content.Server/ServerContentIoC.cs +++ b/Content.Server/ServerContentIoC.cs @@ -1,5 +1,6 @@ using Content.Server.AI.Utility.Considerations; using Content.Server.AI.WorldState; +using Content.Server.Body.Network; using Content.Server.Cargo; using Content.Server.Chat; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; @@ -39,6 +40,7 @@ namespace Content.Server IoCManager.Register(); IoCManager.Register(); IoCManager.Register(); + IoCManager.Register(); } } } diff --git a/Content.Shared/Atmos/Atmospherics.cs b/Content.Shared/Atmos/Atmospherics.cs index 2b1e2a5dc6..6872999f85 100644 --- a/Content.Shared/Atmos/Atmospherics.cs +++ b/Content.Shared/Atmos/Atmospherics.cs @@ -58,6 +58,12 @@ namespace Content.Shared.Atmos ///

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 zop�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 P00000NkvXXu0mjfv?IPx diff --git a/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png b/Resources/Textures/Mobs/Animals/unusuallylargefunnyrabbit.rsi/dead.png deleted file mode 100644 index 25dd2ead4b9bc7b31d9cfc2df9ceb14b71301d56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 848 zcmV-W1F!svP)!L}$WL6R;)l!}?P9y+ud1)-v~WQ$O!WDpg~D(#XWbTCp3VzbPm z4Ix>xg9raBsbF}C17%PLPYPCeYTnDVYRH> zBSowQb)9z`hK&}uTI+>Hgd|ljRyTplzY=1npW7`#G+(a3#N-GQkv*<+hb1wC>VuER z`Mt1GiMnbGUIpO-94)~w-aotExb^7v^&tJG5 zFA=u6*F(CML{8Y1b^^t>a(N> zms<-J3|mOnXBQ$;gf%a?pPZv{#_*DpG|z4v-7N-;rYGY~UI9*z4VYGw4oM+|jG_|w z%RPAdq!W?eknV;QNsdXhR~4Gp^E5nwQh2hMmC{Zi>p$*x@XMZ`pZIANu^yx_nI}YU zCB4-4Qhq(RO%5#1zd}!50oT1>lMqZ*`d7jxtN2d>kRPUOW|+E$i?#$979B1C!)m@@g)CMSX^ zA_P$^Cm{``ZiFU>xqbfa6#M|5PmQn>L_*}9{tHoqMmb;#0VPt|*Z^LLFhqkmwmAVM z9`4Tq@Q5A2pDahF=bCBPNUX|%1BZ@cW?K82%4IuN=KJ-*gMCf0?{8Vm a0Pq{pbWqA!(o**T0000 Date: Mon, 17 Aug 2020 01:42:42 +0200 Subject: [PATCH 08/10] Bodysystem and damagesystem rework (#1544) * Things and stuff with grids, unfinished w/ code debug changes. * Updated submodule and also lost some progress cause I fucked it up xd * First unfinished draft of the BodySystem. Doesn't compile. * More changes to make it compile, but still just a framework. Doesn't do anything at the moment. * Many cleanup changes. * Revert "Merge branch 'master' of https://github.com/GlassEclipse/space-station-14 into body_system" This reverts commit ddd4aebbc76cf2a0b7b102f72b93d55a0816c88c, reversing changes made to 12d0dd752706bdda8879393bd8191a1199a0c978. * Commit human.yml * Updated a lot of things to be more classy, more progress overall, etc. etc. * Latest update with many changes * Minor changes * Fixed Travis build bug * Adds first draft of Body Scanner console, apparently I also forgot to tie Mechanisms into body parts so now a heart just sits in the Torso like a good boy :) * Commit rest of stuff * Latest changes * Latest changes again * 14 naked cowboys * Yay! * Latest changes (probably doesnt compile) * Surgery!!!!!!!!!~1116y * Cleaned some stuff up * More cleanup * Refactoring of code. Basic surgery path now done. * Removed readme, has been added to HackMD * Fixes typo (and thus test errors) * WIP changes, committing so I can pull latest master changes * Still working on that god awful merge * Latest changes * Latest changes!! * Beginning of refactor to BoundUserInterface * Surgery! * Latest changes - fixes pr change requests and random fixes * oops * Fixes bodypart recursion * Beginning of work on revamping the damage system. * More latest changes * Latest changes * Finished merge * Commit before removing old healthcode * Almost done with removing speciescomponent... * It compiles!!! * yahoo more work * Fixes to make it work * Merge conflict fixes * Deleting species visualizer was a mistake * IDE warnings are VERBOTEN * makes the server not kill itself on startup, some cleanup (#1) * Namespaces, comments and exception fixes * Fix conveyor and conveyor switch serialization SS14 in reactive when * Move damage, acts and body to shared Damage cleanup Comment cleanup * Rename SpeciesComponent to RotationComponent and cleanup Damage cleanup Comment cleanup * Fix nullable warnings * Address old reviews Fix off welder suicide damage type, deathmatch and suspicion * Fix new test fail with units being able to accept items when unpowered * Remove RotationComponent, change references to IBodyManagerComponent * Add a bloodstream to humans * More cleanups * Add body conduits, connections, connectors substances and valves * Revert "Add body conduits, connections, connectors substances and valves" This reverts commit 9ab0b50e6b15fe98852d7b0836c0cdbf4bd76d20. * Implement the heart mechanism behavior with the circulatory network * Added network property to mechanism behaviors * Changed human organ sprites and added missing ones * Fix tests * Add individual body part sprite rendering * Fix error where dropped mechanisms are not initialized * Implement client/server body damage * Make DamageContainer take care of raising events * Reimplement medical scanner with the new body system * Improve the medical scanner ui * Merge conflict fixes * Fix crash when colliding with something * Fix microwave suicides and eyes sprite rendering * Fix nullable reference error * Fix up surgery client side * Fix missing using from merge conflict * Add breathing *inhale * Merge conflict fixes * Fix accumulatedframetime being reset to 0 instead of decreased by the threshold https://github.com/space-wizards/space-station-14/pull/1617 * Use and add to the new AtmosHelpers * Fix feet * Add proper coloring to dropped body parts * Fix Urist's lungs being too strong * Merge conflict fixes * Merge conflict fixes * Merge conflict fixes Co-authored-by: GlassEclipse Co-authored-by: Pieter-Jan Briers Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com> --- .../Components/Body/BodyManagerComponent.cs | 71 ++ .../Scanner}/BodyScannerBoundUserInterface.cs | 20 +- .../Body/Scanner/BodyScannerDisplay.cs | 164 +++ .../GenericSurgeryBoundUserInterface.cs | 45 +- .../Body}/Surgery/GenericSurgeryWindow.cs | 97 +- .../Components/DamageableComponent.cs | 29 - .../MedicalScannerBoundUserInterface.cs | 2 + .../MedicalScanner/MedicalScannerWindow.cs | 38 +- .../Mobs/HumanoidAppearanceComponent.cs | 4 +- .../Components/Mobs/SpeciesComponent.cs | 22 - .../RotationVisualizer.cs} | 16 +- .../BodyScanner/BodyScannerDisplay.cs | 155 --- Content.Client/IgnoredComponents.cs | 2 +- .../AI/Utility/AiLogic/UtilityAI.cs | 29 +- .../Considerations/Combat/TargetHealthCon.cs | 7 +- .../Considerations/Combat/TargetIsCritCon.cs | 8 +- .../Considerations/Combat/TargetIsDeadCon.cs | 8 +- .../Melee/MeleeAttackNearbyPlayerExp.cs | 6 +- .../Melee/MeleeAttackNearbySpeciesExp.cs | 2 +- .../Melee/UnarmedAttackNearbyPlayerExp.cs | 6 +- ...bySpeciesState.cs => NearbyBodiesState.cs} | 10 +- .../States/Mobs/NearbyPlayersState.cs | 6 +- Content.Server/Body/BodyCommands.cs | 147 +++ Content.Server/Body/BodyPart.cs | 602 ++++++++++ Content.Server/Body/BodyPreset.cs | 36 + Content.Server/Body/BodyTemplate.cs | 145 +++ Content.Server/Body/IBodyPartContainer.cs | 19 + .../Mechanisms/Behaviors/BrainBehavior.cs | 9 + .../Mechanisms/Behaviors/HeartBehavior.cs | 38 + .../Body/Mechanisms/Behaviors/LungBehavior.cs | 27 + .../Mechanisms/Behaviors/MechanismBehavior.cs | 185 +++ .../Mechanisms/Behaviors/StomachBehavior.cs | 36 + Content.Server/Body/Mechanisms/Mechanism.cs | 249 ++++ Content.Server/Body/Network/BodyNetwork.cs | 76 ++ .../Body/Network/BodyNetworkFactory.cs | 88 ++ .../Body/Network/CirculatoryNetwork.cs | 25 + .../Body/Network/DigestiveNetwork.cs | 28 + .../Body/Network/IBodyNetworkFactory.cs | 13 + .../Body/Network/RespiratoryNetwork.cs | 25 + .../Body/Surgery/BiologicalSurgeryData.cs | 250 ++++ Content.Server/Body/Surgery/ISurgeon.cs | 34 + Content.Server/Body/Surgery/SurgeryData.cs | 91 ++ Content.Server/Chat/ChatCommands.cs | 36 +- Content.Server/EntryPoint.cs | 5 +- Content.Server/Explosions/ExplosionHelper.cs | 2 +- .../Components/Atmos/BarotraumaComponent.cs | 8 +- .../Components/Atmos/GasMixtureComponent.cs | 4 +- .../Components/Body/BodyManagerComponent.cs | 1015 +++++++++++++++++ .../Components/Body/BodyScannerComponent.cs | 73 ++ .../Body/Circulatory/BloodstreamComponent.cs | 83 ++ .../Digestive}/StomachComponent.cs | 58 +- .../Body}/DroppedBodyPartComponent.cs | 160 +-- .../Body}/DroppedMechanismComponent.cs | 162 +-- .../Body/Respiratory/LungComponent.cs | 127 +++ .../Components/Body}/SurgeryToolComponent.cs | 207 ++-- .../Components/Buckle/BuckleComponent.cs | 4 +- .../Components/Chemistry/InjectorComponent.cs | 5 +- .../Components/Chemistry/PillComponent.cs | 3 +- .../Components/Chemistry/SolutionComponent.cs | 2 +- .../Components/Damage/BreakableComponent.cs | 89 +- .../DamageOnHighSpeedImpactComponent.cs | 9 +- .../Damage/DamageOnToolInteractComponent.cs | 27 +- .../Components/Damage/DamageThreshold.cs | 98 -- .../Components/Damage/DamageableComponent.cs | 212 ---- .../Damage/DestructibleComponent.cs | 99 +- .../Components/Damage/ResistanceSet.cs | 86 -- .../Components/Damage/RuinableComponent.cs | 84 ++ .../Disposal/DisposalHolderComponent.cs | 4 +- .../Disposal/DisposalTubeComponent.cs | 2 +- .../Disposal/DisposalUnitComponent.cs | 4 +- .../Components/Doors/ServerDoorComponent.cs | 9 +- .../Explosion/ExplosiveComponent.cs | 1 + .../Explosion/FlashExplosiveComponent.cs | 1 + .../Components/GUI/HandsComponent.cs | 2 +- .../Gravity/GravityGeneratorComponent.cs | 16 +- .../Components/Healing/HealingComponent.cs | 71 -- .../Interactable/WelderComponent.cs | 3 +- .../Items/Storage/EntityStorageComponent.cs | 5 +- .../Components/Items/Storage/ItemComponent.cs | 2 +- .../Components/Kitchen/MicrowaveComponent.cs | 20 +- .../Medical/MedicalScannerComponent.cs | 57 +- .../Metabolism/BloodstreamComponent.cs | 111 -- .../Metabolism/MetabolismComponent.cs | 249 ++++ .../Mining/AsteroidRockComponent.cs | 6 +- .../Components/Mobs/DamageStates.cs | 275 ----- .../DamageThresholdTemplates.cs | 65 -- .../DamageThresholdTemplates/HumanTemplate.cs | 97 -- .../Mobs/HeatResistanceComponent.cs | 5 +- .../Components/Mobs/MindComponent.cs | 5 +- .../Components/Mobs/MobStateManager.cs | 488 ++++++++ .../Components/Mobs/SpeciesComponent.cs | 247 ---- .../Components/Nutrition/DrinkComponent.cs | 3 +- .../Components/Nutrition/FoodComponent.cs | 1 + .../Components/Nutrition/HungerComponent.cs | 8 +- .../Components/Nutrition/ThirstComponent.cs | 8 +- .../PoweredLightComponent.cs | 6 +- .../PowerNetComponents/SolarPanelComponent.cs | 1 + .../Projectiles/HitscanComponent.cs | 2 +- .../Projectiles/ProjectileComponent.cs | 10 +- .../Projectiles/ThrownItemComponent.cs | 8 +- .../Components/Recycling/RecyclerComponent.cs | 7 +- .../Suspicion/SuspicionRoleComponent.cs | 5 +- .../Temperature/TemperatureComponent.cs | 8 +- .../Weapon/Melee/MeleeWeaponComponent.cs | 8 +- .../Barrels/ServerBatteryBarrelComponent.cs | 2 +- .../Barrels/ServerRangedBarrelComponent.cs | 11 +- .../Ranged/ServerRangedWeaponComponent.cs | 9 +- .../EntitySystems/BloodstreamSystem.cs | 29 - .../GameObjects/EntitySystems/BodySystem.cs | 29 + .../EntitySystems/DoAfter/DoAfter.cs | 3 +- .../EntitySystems/DoAfter/DoAfterSystem.cs | 8 +- .../GameObjects/EntitySystems/HungerSystem.cs | 9 +- .../StationEvents/RadiationPulseSystem.cs | 14 +- .../EntitySystems/StomachSystem.cs | 29 - .../GameObjects/EntitySystems/ThirstSystem.cs | 7 +- .../GameTicking/GameRules/RuleDeathMatch.cs | 12 +- .../GameTicking/GameRules/RuleSuspicion.cs | 8 +- .../GameTicking/GameTickerCommands.cs | 81 -- Content.Server/GlobalVerbs/RejuvenateVerb.cs | 14 +- .../Health/BodySystem/BodyManagerComponent.cs | 402 ------- .../Health/BodySystem/BodyPart/BodyPart.cs | 260 ----- .../BodySystem/BodyPreset/BodyPreset.cs | 36 - .../BodyScanner/BodyScannerComponent.cs | 64 -- .../BodySystem/BodyTemplate/BodyTemplate.cs | 113 -- .../Health/BodySystem/IBodyPartContainer.cs | 16 - .../Health/BodySystem/Mechanism/Mechanism.cs | 105 -- .../BodySystem/Surgery/Surgeon/ISurgeon.cs | 29 - .../SurgeryData/BiologicalSurgeryData.cs | 193 ---- .../Surgery/SurgeryData/ISurgeryData.cs | 81 -- .../Components/Damage/IDamageableComponent.cs | 35 - .../Components/Interaction/IBodyPartAdded.cs | 2 +- .../GameObjects/IOnDamageBehavior.cs | 34 - .../Interfaces/GameObjects/ISuicideAct.cs | 12 +- Content.Server/Mobs/StandingStateHelper.cs | 14 +- Content.Server/Observer/Ghost.cs | 15 +- Content.Server/ServerContentIoC.cs | 2 + Content.Shared/Atmos/Atmospherics.cs | 6 + .../Mechanism/MechanismPrototype.cs | 59 +- Content.Shared/Body/Part/BodyPartPrototype.cs | 100 ++ .../Body/Part/Properties/BodyPartProperty.cs | 23 + .../Part/Properties/Movement/FootProperty.cs | 11 + .../Part/Properties/Movement/LegProperty.cs | 23 + .../Properties/Other/ExtensionProperty.cs | 21 + .../Part/Properties/Other/GraspProperty.cs | 10 + .../Preset}/BodyPresetPrototype.cs | 25 +- .../Scanner}/BodyScannerSharedValues.cs | 42 +- .../Surgery/GenericSurgeryUIMessages.cs | 59 +- .../Body/Template/BodyTemplatePrototype.cs | 87 ++ Content.Shared/Damage/DamageClass.cs | 41 + .../Damage/DamageContainer/DamageContainer.cs | 293 +++++ .../DamageContainerPrototype.cs | 32 + Content.Shared/Damage/DamageType.cs | 66 ++ .../Damage/ResistanceSet/ResistanceSet.cs | 73 ++ .../ResistanceSet/ResistanceSetPrototype.cs | 46 + .../Components/Body/IBodyManagerComponent.cs | 9 + .../Body/SharedBodyManagerComponent.cs | 120 ++ .../Components/Damage/DamageState.cs | 20 + .../Components/Damage/DamageableComponent.cs | 239 +++- .../Components/Damage/IDamageableComponent.cs | 223 ++++ .../Damage/IOnHealthChangedBehavior.cs | 22 + .../Medical/SharedMedicalScannerComponent.cs | 24 +- .../Components/Mobs/SharedSpeciesComponent.cs | 31 - .../MovementSpeedModifierComponent.cs | 3 +- .../SharedPlayerInputMoverComponent.cs | 4 +- .../Components/Rotation/RotationComponent.cs | 26 + Content.Shared/GameObjects/ContentNetIDs.cs | 3 +- .../GameObjects/EntitySystems/ActSystem.cs | 3 +- .../EntitySystems/ActionBlockerSystem.cs | 3 + .../BodyPart/BodyPartProperties/ArmLength.cs | 15 - .../BodySystem/BodyPart/BodyPartPrototype.cs | 94 -- .../BodyTemplate/BodyTemplatePrototype.cs | 71 -- .../Health/BodySystem/BodysystemValues.cs | 20 - .../AbstractDamageContainer.cs | 109 -- .../BiologicalDamageContainer.cs | 15 - .../Appearance/HumanoidCharacterAppearance.cs | 7 + .../{ => BodySystem}/BodyTemplateTest.cs | 19 +- Resources/Groups/groups.yml | 2 + .../Mechanisms/basic_human_organs.yml | 53 +- .../Mechanisms/basic_tests.yml | 6 +- .../Prototypes/Body/Parts/humanoid_parts.yml | 192 ++++ .../Prototypes/Body/Presets/basic_human.yml | 14 + .../Prototypes/Body/Templates/humanoid.yml | 44 + .../Templates}/quadrupedal.yml | 20 +- .../BodySystem/BodyParts/humanoid_parts.yml | 95 -- .../BodySystem/BodyPresets/basic_human.yml | 15 - .../BodySystem/BodyTemplates/humanoid.yml | 33 - .../Prototypes/Damage/damage_containers.yml | 13 + .../Prototypes/Damage/resistance_sets.yml | 56 + .../Constructible/Ground/instruments.yml | 3 +- .../Constructible/Ground/pilot_chair.yml | 2 +- .../Entities/Constructible/Ground/table.yml | 10 +- .../Constructible/Power/gravity_generator.yml | 3 +- .../Constructible/Power/medical_scanner.yml | 3 +- .../Entities/Constructible/Power/power.yml | 6 +- .../Constructible/Power/vending_machines.yml | 2 +- .../Constructible/Storage/Closets/closet.yml | 3 +- .../Storage/StorageTanks/storage_tank.yml | 5 +- .../Constructible/Storage/crate_base.yml | 3 +- .../Entities/Constructible/Walls/asteroid.yml | 3 +- .../Entities/Constructible/Walls/girder.yml | 5 +- .../Entities/Constructible/Walls/low_wall.yml | 3 +- .../Entities/Constructible/Walls/walls.yml | 79 +- .../Entities/Constructible/Walls/windows.yml | 3 +- .../Prototypes/Entities/Mobs/NPCs/mimic.yml | 9 +- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 10 +- .../Entities/Mobs/Species/human.yml | 134 +-- .../Mobs}/body_system_dropped_abstract.yml | 6 +- .../Entities/Objects/Specific/medical.yml | 14 +- .../Objects/Tools}/surgery_tools.yml | 28 +- .../Ammunition/AntiMaterial/projectiles.yml | 2 +- .../Guns/Ammunition/ClRifle/projectiles.yml | 10 +- .../Guns/Ammunition/LRifle/projectiles.yml | 10 +- .../Guns/Ammunition/Magnum/projectiles.yml | 10 +- .../Guns/Ammunition/Pistol/projectiles.yml | 10 +- .../Guns/Ammunition/SRifle/projectiles.yml | 10 +- .../Guns/Ammunition/Shotgun/projectiles.yml | 12 +- .../Guns/Ammunition/Toy/projectiles.yml | 4 +- .../Weapons/Guns/Explosives/grenades.yml | 9 +- .../Weapons/Guns/Projectiles/hitscan.yml | 3 + .../Weapons/Guns/Projectiles/projectiles.yml | 12 +- .../Human/{human6-0.png => human6.png} | Bin .../Human/{human6-1.png => human7.png} | Bin .../Mobs/Parts/body_human.rsi/head_m.png | Bin 573 -> 0 bytes .../Mobs/Parts/body_human.rsi/l_arm.png | Bin 307 -> 0 bytes .../Mobs/Parts/body_human.rsi/l_foot.png | Bin 211 -> 0 bytes .../Mobs/Parts/body_human.rsi/l_hand.png | Bin 294 -> 0 bytes .../Mobs/Parts/body_human.rsi/l_leg.png | Bin 275 -> 0 bytes .../Mobs/Parts/body_human.rsi/meta.json | 81 -- .../Mobs/Parts/body_human.rsi/r_arm.png | Bin 327 -> 0 bytes .../Mobs/Parts/body_human.rsi/r_foot.png | Bin 276 -> 0 bytes .../Mobs/Parts/body_human.rsi/r_hand.png | Bin 266 -> 0 bytes .../Mobs/Parts/body_human.rsi/r_leg.png | Bin 275 -> 0 bytes .../Mobs/Parts/body_human.rsi/torso_m.png | Bin 1195 -> 0 bytes .../Textures/Mobs/Parts/eyes_advanced.png | Bin 163 -> 0 bytes Resources/Textures/Mobs/Parts/eyes_grey.png | Bin 165 -> 0 bytes .../Textures/Mobs/Parts/kidneys_advanced.png | Bin 197 -> 0 bytes .../Textures/Mobs/Parts/lungs_advanced.png | Bin 336 -> 0 bytes Resources/Textures/Mobs/Parts/lungs_vox.png | Bin 233 -> 0 bytes .../Parts/organs_human.rsi/brain_human.png | Bin 708 -> 0 bytes .../Parts/organs_human.rsi/eyes_human.png | Bin 160 -> 0 bytes .../Parts/organs_human.rsi/heart_human.png | Bin 155 -> 0 bytes .../Parts/organs_human.rsi/kidneys_human.png | Bin 193 -> 0 bytes .../Parts/organs_human.rsi/liver_human.png | Bin 174 -> 0 bytes .../Parts/organs_human.rsi/lungs_human.png | Bin 233 -> 0 bytes .../Mobs/Parts/organs_human.rsi/meta.json | 53 - .../Species/Human/organs.rsi/appendix.png | Bin 0 -> 258 bytes .../Human/organs.rsi/appendixinflamed.png | Bin 0 -> 282 bytes .../Mobs/Species/Human/organs.rsi/brain.png | Bin 0 -> 461 bytes .../Mobs/Species/Human/organs.rsi/ears.png | Bin 0 -> 619 bytes .../Species/Human/organs.rsi/eyeballs.png | Bin 0 -> 574 bytes .../Species/Human/organs.rsi/heart-off.png | Bin 0 -> 242 bytes .../Species/Human/organs.rsi/heart-on.png | Bin 0 -> 436 bytes .../Mobs/Species/Human/organs.rsi/kidneys.png | Bin 0 -> 351 bytes .../Mobs/Species/Human/organs.rsi/liver.png | Bin 0 -> 290 bytes .../Mobs/Species/Human/organs.rsi/lungs.png | Bin 0 -> 359 bytes .../Mobs/Species/Human/organs.rsi/meta.json | 121 ++ .../Mobs/Species/Human/organs.rsi/stomach.png | Bin 0 -> 370 bytes .../Species/Human/organs.rsi/tonguenormal.png | Bin 0 -> 375 bytes .../parts.rsi/full.png} | Bin .../parts.rsi/head_f.png} | Bin .../parts.rsi/head_m.png} | Bin .../parts.rsi/l_arm.png} | Bin .../Mobs/Species/Human/parts.rsi/l_foot.png | Bin 0 -> 398 bytes .../parts.rsi/l_hand.png} | Bin .../Mobs/Species/Human/parts.rsi/l_leg.png | Bin 0 -> 6361 bytes .../Mobs/Species/Human/parts.rsi/meta.json | 236 ++++ .../parts.rsi/r_arm.png} | Bin .../Mobs/Species/Human/parts.rsi/r_foot.png | Bin 0 -> 398 bytes .../parts.rsi/r_hand.png} | Bin .../Mobs/Species/Human/parts.rsi/r_leg.png | Bin 0 -> 6343 bytes .../parts.rsi/torso_f.png} | Bin .../parts.rsi/torso_m.png} | Bin .../Mobs/Species/human.rsi/human_l_leg.png | Bin 354 -> 0 bytes .../Mobs/Species/human.rsi/human_r_leg.png | Bin 349 -> 0 bytes .../Textures/Mobs/Species/human.rsi/meta.json | 1 - SpaceStation14.sln.DotSettings | 6 +- 276 files changed, 7853 insertions(+), 4737 deletions(-) create mode 100644 Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs rename Content.Client/{Health/BodySystem/BodyScanner => GameObjects/Components/Body/Scanner}/BodyScannerBoundUserInterface.cs (76%) create mode 100644 Content.Client/GameObjects/Components/Body/Scanner/BodyScannerDisplay.cs rename Content.Client/{Health/BodySystem => GameObjects/Components/Body}/Surgery/GenericSurgeryBoundUserInterface.cs (72%) rename Content.Client/{Health/BodySystem => GameObjects/Components/Body}/Surgery/GenericSurgeryWindow.cs (57%) delete mode 100644 Content.Client/GameObjects/Components/DamageableComponent.cs delete mode 100644 Content.Client/GameObjects/Components/Mobs/SpeciesComponent.cs rename Content.Client/GameObjects/Components/{Mobs/SpeciesVisualizer.cs => Rotation/RotationVisualizer.cs} (81%) delete mode 100644 Content.Client/Health/BodySystem/BodyScanner/BodyScannerDisplay.cs rename Content.Server/AI/WorldState/States/Mobs/{NearbySpeciesState.cs => NearbyBodiesState.cs} (70%) create mode 100644 Content.Server/Body/BodyCommands.cs create mode 100644 Content.Server/Body/BodyPart.cs create mode 100644 Content.Server/Body/BodyPreset.cs create mode 100644 Content.Server/Body/BodyTemplate.cs create mode 100644 Content.Server/Body/IBodyPartContainer.cs create mode 100644 Content.Server/Body/Mechanisms/Behaviors/BrainBehavior.cs create mode 100644 Content.Server/Body/Mechanisms/Behaviors/HeartBehavior.cs create mode 100644 Content.Server/Body/Mechanisms/Behaviors/LungBehavior.cs create mode 100644 Content.Server/Body/Mechanisms/Behaviors/MechanismBehavior.cs create mode 100644 Content.Server/Body/Mechanisms/Behaviors/StomachBehavior.cs create mode 100644 Content.Server/Body/Mechanisms/Mechanism.cs create mode 100644 Content.Server/Body/Network/BodyNetwork.cs create mode 100644 Content.Server/Body/Network/BodyNetworkFactory.cs create mode 100644 Content.Server/Body/Network/CirculatoryNetwork.cs create mode 100644 Content.Server/Body/Network/DigestiveNetwork.cs create mode 100644 Content.Server/Body/Network/IBodyNetworkFactory.cs create mode 100644 Content.Server/Body/Network/RespiratoryNetwork.cs create mode 100644 Content.Server/Body/Surgery/BiologicalSurgeryData.cs create mode 100644 Content.Server/Body/Surgery/ISurgeon.cs create mode 100644 Content.Server/Body/Surgery/SurgeryData.cs create mode 100644 Content.Server/GameObjects/Components/Body/BodyManagerComponent.cs create mode 100644 Content.Server/GameObjects/Components/Body/BodyScannerComponent.cs create mode 100644 Content.Server/GameObjects/Components/Body/Circulatory/BloodstreamComponent.cs rename Content.Server/GameObjects/Components/{Nutrition => Body/Digestive}/StomachComponent.cs (65%) rename Content.Server/{Health/BodySystem/BodyPart => GameObjects/Components/Body}/DroppedBodyPartComponent.cs (52%) rename Content.Server/{Health/BodySystem/Mechanism => GameObjects/Components/Body}/DroppedMechanismComponent.cs (60%) create mode 100644 Content.Server/GameObjects/Components/Body/Respiratory/LungComponent.cs rename Content.Server/{Health/BodySystem/Surgery/Surgeon => GameObjects/Components/Body}/SurgeryToolComponent.cs (55%) delete mode 100644 Content.Server/GameObjects/Components/Damage/DamageThreshold.cs delete mode 100644 Content.Server/GameObjects/Components/Damage/DamageableComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Damage/ResistanceSet.cs create mode 100644 Content.Server/GameObjects/Components/Damage/RuinableComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Healing/HealingComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Metabolism/BloodstreamComponent.cs create mode 100644 Content.Server/GameObjects/Components/Metabolism/MetabolismComponent.cs delete mode 100644 Content.Server/GameObjects/Components/Mobs/DamageStates.cs delete mode 100644 Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/DamageThresholdTemplates.cs delete mode 100644 Content.Server/GameObjects/Components/Mobs/DamageThresholdTemplates/HumanTemplate.cs create mode 100644 Content.Server/GameObjects/Components/Mobs/MobStateManager.cs delete mode 100644 Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs delete mode 100644 Content.Server/GameObjects/EntitySystems/BloodstreamSystem.cs create mode 100644 Content.Server/GameObjects/EntitySystems/BodySystem.cs delete mode 100644 Content.Server/GameObjects/EntitySystems/StomachSystem.cs delete mode 100644 Content.Server/Health/BodySystem/BodyManagerComponent.cs delete mode 100644 Content.Server/Health/BodySystem/BodyPart/BodyPart.cs delete mode 100644 Content.Server/Health/BodySystem/BodyPreset/BodyPreset.cs delete mode 100644 Content.Server/Health/BodySystem/BodyScanner/BodyScannerComponent.cs delete mode 100644 Content.Server/Health/BodySystem/BodyTemplate/BodyTemplate.cs delete mode 100644 Content.Server/Health/BodySystem/IBodyPartContainer.cs delete mode 100644 Content.Server/Health/BodySystem/Mechanism/Mechanism.cs delete mode 100644 Content.Server/Health/BodySystem/Surgery/Surgeon/ISurgeon.cs delete mode 100644 Content.Server/Health/BodySystem/Surgery/SurgeryData/BiologicalSurgeryData.cs delete mode 100644 Content.Server/Health/BodySystem/Surgery/SurgeryData/ISurgeryData.cs delete mode 100644 Content.Server/Interfaces/GameObjects/Components/Damage/IDamageableComponent.cs delete mode 100644 Content.Server/Interfaces/GameObjects/IOnDamageBehavior.cs rename Content.Shared/{Health/BodySystem => Body}/Mechanism/MechanismPrototype.cs (60%) create mode 100644 Content.Shared/Body/Part/BodyPartPrototype.cs create mode 100644 Content.Shared/Body/Part/Properties/BodyPartProperty.cs create mode 100644 Content.Shared/Body/Part/Properties/Movement/FootProperty.cs create mode 100644 Content.Shared/Body/Part/Properties/Movement/LegProperty.cs create mode 100644 Content.Shared/Body/Part/Properties/Other/ExtensionProperty.cs create mode 100644 Content.Shared/Body/Part/Properties/Other/GraspProperty.cs rename Content.Shared/{Health/BodySystem/BodyPreset => Body/Preset}/BodyPresetPrototype.cs (56%) rename Content.Shared/{Health/BodySystem/BodyScanner => Body/Scanner}/BodyScannerSharedValues.cs (79%) rename Content.Shared/{Health/BodySystem => Body}/Surgery/GenericSurgeryUIMessages.cs (71%) create mode 100644 Content.Shared/Body/Template/BodyTemplatePrototype.cs create mode 100644 Content.Shared/Damage/DamageClass.cs create mode 100644 Content.Shared/Damage/DamageContainer/DamageContainer.cs create mode 100644 Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs create mode 100644 Content.Shared/Damage/DamageType.cs create mode 100644 Content.Shared/Damage/ResistanceSet/ResistanceSet.cs create mode 100644 Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs create mode 100644 Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Damage/DamageState.cs create mode 100644 Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Damage/IOnHealthChangedBehavior.cs delete mode 100644 Content.Shared/GameObjects/Components/Mobs/SharedSpeciesComponent.cs create mode 100644 Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs rename {Content.Server => Content.Shared}/GameObjects/EntitySystems/ActSystem.cs (98%) delete mode 100644 Content.Shared/Health/BodySystem/BodyPart/BodyPartProperties/ArmLength.cs delete mode 100644 Content.Shared/Health/BodySystem/BodyPart/BodyPartPrototype.cs delete mode 100644 Content.Shared/Health/BodySystem/BodyTemplate/BodyTemplatePrototype.cs delete mode 100644 Content.Shared/Health/BodySystem/BodysystemValues.cs delete mode 100644 Content.Shared/Health/DamageContainer/AbstractDamageContainer.cs delete mode 100644 Content.Shared/Health/DamageContainer/BiologicalDamageContainer.cs rename Content.Tests/Shared/{ => BodySystem}/BodyTemplateTest.cs (80%) rename Resources/Prototypes/{BodySystem => Body}/Mechanisms/basic_human_organs.yml (58%) rename Resources/Prototypes/{BodySystem => Body}/Mechanisms/basic_tests.yml (95%) create mode 100644 Resources/Prototypes/Body/Parts/humanoid_parts.yml create mode 100644 Resources/Prototypes/Body/Presets/basic_human.yml create mode 100644 Resources/Prototypes/Body/Templates/humanoid.yml rename Resources/Prototypes/{BodySystem/BodyTemplates => Body/Templates}/quadrupedal.yml (69%) delete mode 100644 Resources/Prototypes/BodySystem/BodyParts/humanoid_parts.yml delete mode 100644 Resources/Prototypes/BodySystem/BodyPresets/basic_human.yml delete mode 100644 Resources/Prototypes/BodySystem/BodyTemplates/humanoid.yml create mode 100644 Resources/Prototypes/Damage/damage_containers.yml create mode 100644 Resources/Prototypes/Damage/resistance_sets.yml rename Resources/Prototypes/{BodySystem => Entities/Mobs}/body_system_dropped_abstract.yml (79%) rename Resources/Prototypes/{BodySystem/Surgery => Entities/Objects/Tools}/surgery_tools.yml (98%) rename Resources/Textures/Interface/StatusEffects/Human/{human6-0.png => human6.png} (100%) rename Resources/Textures/Interface/StatusEffects/Human/{human6-1.png => human7.png} (100%) delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/head_m.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/l_arm.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/l_foot.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/l_hand.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/l_leg.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/meta.json delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/r_arm.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/r_foot.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/r_hand.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/r_leg.png delete mode 100644 Resources/Textures/Mobs/Parts/body_human.rsi/torso_m.png delete mode 100644 Resources/Textures/Mobs/Parts/eyes_advanced.png delete mode 100644 Resources/Textures/Mobs/Parts/eyes_grey.png delete mode 100644 Resources/Textures/Mobs/Parts/kidneys_advanced.png delete mode 100644 Resources/Textures/Mobs/Parts/lungs_advanced.png delete mode 100644 Resources/Textures/Mobs/Parts/lungs_vox.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/brain_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/eyes_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/heart_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/kidneys_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/liver_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/lungs_human.png delete mode 100644 Resources/Textures/Mobs/Parts/organs_human.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/appendix.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/appendixinflamed.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/ears.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/eyeballs.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/heart-off.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/heart-on.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/kidneys.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/liver.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/lungs.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/meta.json create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/stomach.png create mode 100644 Resources/Textures/Mobs/Species/Human/organs.rsi/tonguenormal.png rename Resources/Textures/Mobs/Species/{human.rsi/human_basic.png => Human/parts.rsi/full.png} (100%) rename Resources/Textures/Mobs/Species/{human.rsi/human_head_f.png => Human/parts.rsi/head_f.png} (100%) rename Resources/Textures/Mobs/Species/{human.rsi/human_head_m.png => Human/parts.rsi/head_m.png} (100%) rename Resources/Textures/Mobs/Species/{human.rsi/human_l_arm.png => Human/parts.rsi/l_arm.png} (100%) create mode 100644 Resources/Textures/Mobs/Species/Human/parts.rsi/l_foot.png rename Resources/Textures/Mobs/Species/{human.rsi/human_l_hand.png => Human/parts.rsi/l_hand.png} (100%) create mode 100644 Resources/Textures/Mobs/Species/Human/parts.rsi/l_leg.png create mode 100644 Resources/Textures/Mobs/Species/Human/parts.rsi/meta.json rename Resources/Textures/Mobs/Species/{human.rsi/human_r_arm.png => Human/parts.rsi/r_arm.png} (100%) create mode 100644 Resources/Textures/Mobs/Species/Human/parts.rsi/r_foot.png rename Resources/Textures/Mobs/Species/{human.rsi/human_r_hand.png => Human/parts.rsi/r_hand.png} (100%) create mode 100644 Resources/Textures/Mobs/Species/Human/parts.rsi/r_leg.png rename Resources/Textures/Mobs/Species/{human.rsi/human_chest_f.png => Human/parts.rsi/torso_f.png} (100%) rename Resources/Textures/Mobs/Species/{human.rsi/human_chest_m.png => Human/parts.rsi/torso_m.png} (100%) delete mode 100644 Resources/Textures/Mobs/Species/human.rsi/human_l_leg.png delete mode 100644 Resources/Textures/Mobs/Species/human.rsi/human_r_leg.png delete mode 100644 Resources/Textures/Mobs/Species/human.rsi/meta.json diff --git a/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs b/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs new file mode 100644 index 0000000000..2948c9191e --- /dev/null +++ b/Content.Client/GameObjects/Components/Body/BodyManagerComponent.cs @@ -0,0 +1,71 @@ +#nullable enable +using Content.Client.GameObjects.Components.Disposal; +using Content.Client.Interfaces.GameObjects.Components.Interaction; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Client.Interfaces.GameObjects.Components; +using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Network; +using Robust.Shared.IoC; +using Robust.Shared.Players; + +namespace Content.Client.GameObjects.Components.Body +{ + [RegisterComponent] + [ComponentReference(typeof(IDamageableComponent))] + [ComponentReference(typeof(IBodyManagerComponent))] + public class BodyManagerComponent : SharedBodyManagerComponent, IClientDraggable + { +#pragma warning disable 649 + [Dependency] private readonly IEntityManager _entityManager = default!; +#pragma warning restore 649 + + public bool ClientCanDropOn(CanDropEventArgs eventArgs) + { + return eventArgs.Target.HasComponent(); + } + + public bool ClientCanDrag(CanDragEventArgs eventArgs) + { + return true; + } + + public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession? session = null) + { + if (!Owner.TryGetComponent(out ISpriteComponent sprite)) + { + return; + } + + switch (message) + { + case BodyPartAddedMessage partAdded: + sprite.LayerSetVisible(partAdded.RSIMap, true); + sprite.LayerSetRSI(partAdded.RSIMap, partAdded.RSIPath); + sprite.LayerSetState(partAdded.RSIMap, partAdded.RSIState); + break; + case BodyPartRemovedMessage partRemoved: + sprite.LayerSetVisible(partRemoved.RSIMap, false); + + if (!partRemoved.Dropped.HasValue || + !_entityManager.TryGetEntity(partRemoved.Dropped.Value, out var entity) || + !entity.TryGetComponent(out ISpriteComponent droppedSprite)) + { + break; + } + + var color = sprite[partRemoved.RSIMap].Color; + + droppedSprite.LayerSetColor(0, color); + break; + case MechanismSpriteAddedMessage mechanismAdded: + sprite.LayerSetVisible(mechanismAdded.RSIMap, true); + break; + case MechanismSpriteRemovedMessage mechanismRemoved: + sprite.LayerSetVisible(mechanismRemoved.RSIMap, false); + break; + } + } + } +} diff --git a/Content.Client/Health/BodySystem/BodyScanner/BodyScannerBoundUserInterface.cs b/Content.Client/GameObjects/Components/Body/Scanner/BodyScannerBoundUserInterface.cs similarity index 76% rename from Content.Client/Health/BodySystem/BodyScanner/BodyScannerBoundUserInterface.cs rename to Content.Client/GameObjects/Components/Body/Scanner/BodyScannerBoundUserInterface.cs index 5bf9bec18b..5b2f5b7abc 100644 --- a/Content.Client/Health/BodySystem/BodyScanner/BodyScannerBoundUserInterface.cs +++ b/Content.Client/GameObjects/Components/Body/Scanner/BodyScannerBoundUserInterface.cs @@ -1,11 +1,13 @@ using System.Collections.Generic; -using Content.Shared.Health.BodySystem.BodyScanner; +using Content.Shared.Body.Scanner; +using JetBrains.Annotations; using Robust.Client.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.ViewVariables; -namespace Content.Client.Health.BodySystem.BodyScanner +namespace Content.Client.GameObjects.Components.Body.Scanner { + [UsedImplicitly] public class BodyScannerBoundUserInterface : BoundUserInterface { [ViewVariables] @@ -17,9 +19,7 @@ namespace Content.Client.Health.BodySystem.BodyScanner [ViewVariables] private Dictionary _parts; - public BodyScannerBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) - { - } + public BodyScannerBoundUserInterface(ClientUserInterfaceComponent owner, object uiKey) : base(owner, uiKey) { } protected override void Open() { @@ -34,7 +34,9 @@ namespace Content.Client.Health.BodySystem.BodyScanner base.UpdateState(state); if (!(state is BodyScannerInterfaceState scannerState)) + { return; + } _template = scannerState.Template; _parts = scannerState.Parts; @@ -45,7 +47,13 @@ namespace Content.Client.Health.BodySystem.BodyScanner protected override void Dispose(bool disposing) { base.Dispose(disposing); - } + if (disposing) + { + _display.Dispose(); + _template = null; + _parts.Clear(); + } + } } } diff --git a/Content.Client/GameObjects/Components/Body/Scanner/BodyScannerDisplay.cs b/Content.Client/GameObjects/Components/Body/Scanner/BodyScannerDisplay.cs new file mode 100644 index 0000000000..c5dfe18f44 --- /dev/null +++ b/Content.Client/GameObjects/Components/Body/Scanner/BodyScannerDisplay.cs @@ -0,0 +1,164 @@ +using System.Collections.Generic; +using System.Globalization; +using Content.Shared.Body.Scanner; +using Robust.Client.UserInterface.Controls; +using Robust.Client.UserInterface.CustomControls; +using Robust.Shared.IoC; +using Robust.Shared.Localization; +using Robust.Shared.Maths; +using static Robust.Client.UserInterface.Controls.ItemList; + +namespace Content.Client.GameObjects.Components.Body.Scanner +{ + public sealed class BodyScannerDisplay : SS14Window + { + private BodyScannerTemplateData _template; + + private Dictionary _parts; + + private List _slots; + + private BodyScannerBodyPartData _currentBodyPart; + + public BodyScannerDisplay(BodyScannerBoundUserInterface owner) + { + IoCManager.InjectDependencies(this); + Owner = owner; + Title = Loc.GetString("Body Scanner"); + + var hSplit = new HBoxContainer + { + Children = + { + // Left half + new ScrollContainer + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + Children = + { + (BodyPartList = new ItemList()) + } + }, + // Right half + new VBoxContainer + { + SizeFlagsHorizontal = SizeFlags.FillExpand, + Children = + { + // Top half of the right half + new VBoxContainer + { + SizeFlagsVertical = SizeFlags.FillExpand, + Children = + { + (BodyPartLabel = new Label()), + new HBoxContainer + { + Children = + { + new Label + { + Text = "Health: " + }, + (BodyPartHealth = new Label()) + } + }, + new ScrollContainer + { + SizeFlagsVertical = SizeFlags.FillExpand, + Children = + { + (MechanismList = new ItemList()) + } + } + } + }, + // Bottom half of the right half + (MechanismInfoLabel = new RichTextLabel + { + SizeFlagsVertical = SizeFlags.FillExpand + }) + } + } + } + }; + + Contents.AddChild(hSplit); + + BodyPartList.OnItemSelected += BodyPartOnItemSelected; + MechanismList.OnItemSelected += MechanismOnItemSelected; + } + + public BodyScannerBoundUserInterface Owner { get; } + + protected override Vector2? CustomSize => (800, 600); + + private ItemList BodyPartList { get; } + + private Label BodyPartLabel { get; } + + private Label BodyPartHealth { get; } + + private ItemList MechanismList { get; } + + private RichTextLabel MechanismInfoLabel { get; } + + public void UpdateDisplay(BodyScannerTemplateData template, Dictionary parts) + { + _template = template; + _parts = parts; + _slots = new List(); + BodyPartList.Clear(); + + foreach (var slotName in _parts.Keys) + { + // We have to do this since ItemLists only return the index of what item is + // selected and dictionaries don't allow you to explicitly grab things by index. + // So we put the contents of the dictionary into a list so + // that we can grab the list by index. I don't know either. + _slots.Add(slotName); + + BodyPartList.AddItem(Loc.GetString(slotName)); + } + } + + public void BodyPartOnItemSelected(ItemListSelectedEventArgs args) + { + if (_parts.TryGetValue(_slots[args.ItemIndex], out _currentBodyPart)) { + UpdateBodyPartBox(_currentBodyPart, _slots[args.ItemIndex]); + } + } + + private void UpdateBodyPartBox(BodyScannerBodyPartData part, string slotName) + { + BodyPartLabel.Text = $"{Loc.GetString(slotName)}: {Loc.GetString(part.Name)}"; + BodyPartHealth.Text = $"{part.CurrentDurability}/{part.MaxDurability}"; + + MechanismList.Clear(); + foreach (var mechanism in part.Mechanisms) { + MechanismList.AddItem(mechanism.Name); + } + } + + public void MechanismOnItemSelected(ItemListSelectedEventArgs args) + { + UpdateMechanismBox(_currentBodyPart.Mechanisms[args.ItemIndex]); + } + + private void UpdateMechanismBox(BodyScannerMechanismData mechanism) + { + // TODO: Improve UI + if (mechanism == null) + { + MechanismInfoLabel.SetMessage(""); + return; + } + + var message = + Loc.GetString( + $"{mechanism.Name}\nHealth: {mechanism.CurrentDurability}/{mechanism.MaxDurability}\n{mechanism.Description}"); + + MechanismInfoLabel.SetMessage(message); + } + } +} diff --git a/Content.Client/Health/BodySystem/Surgery/GenericSurgeryBoundUserInterface.cs b/Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryBoundUserInterface.cs similarity index 72% rename from Content.Client/Health/BodySystem/Surgery/GenericSurgeryBoundUserInterface.cs rename to Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryBoundUserInterface.cs index 04c0246e83..e44f368221 100644 --- a/Content.Client/Health/BodySystem/Surgery/GenericSurgeryBoundUserInterface.cs +++ b/Content.Client/GameObjects/Components/Body/Surgery/GenericSurgeryBoundUserInterface.cs @@ -1,29 +1,30 @@ -using Content.Shared.Health.BodySystem.Surgery; +#nullable enable +using Content.Shared.Body.Surgery; +using JetBrains.Annotations; using Robust.Client.GameObjects.Components.UserInterface; using Robust.Shared.GameObjects.Components.UserInterface; -namespace Content.Client.Health.BodySystem.Surgery +namespace Content.Client.GameObjects.Components.Body.Surgery { - - //TODO : Make window close if target or surgery tool gets too far away from user. + // TODO : Make window close if target or surgery tool gets too far away from user. ///

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 zop�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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/cardborg.png b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/cardborg.png new file mode 100644 index 0000000000000000000000000000000000000000..f0c14cb8362285cb8a7cc8b93dcf72b65890bb28 GIT binary patch literal 792 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 ig+^2xr)hJazWfCo?31~RP}Lp)00006 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/meta.json b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/meta.json new file mode 100644 index 0000000000..157fe60c95 --- /dev/null +++ b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/meta.json @@ -0,0 +1 @@ +{"version": 1, "size": {"x": 32, "y": 32}, "license": "CC-BY-SA-3.0", "copyright": "https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b", "states": [{"name": "armor", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "cardborg", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "deathsquad", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fire_extinguisher0", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "fire_extinguisher1", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "ian", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "oxygen", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "petcollar", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "walkietalkie", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file diff --git a/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/oxygen.png b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/oxygen.png new file mode 100644 index 0000000000000000000000000000000000000000..4e1ba4acbb032bda948e73fcfd5f1bd9db97eed0 GIT binary patch literal 585 zcmV-P0=E5$P)Q{Y>G#NACOk@p2j71Bi%-h=_=Yh;A4o z>i~nWY*&KMr(5q5)pBcianfbkuK1IWU_YJ%0DJ=^NfXRr2TOz2S^!{au7X+X0JGLX zX#85!TCV}X^7^J23ooU-vLWS_4Ow2_l=Jf!mD_hf@DrGsyaxc-`T8-@dmwiW2)6l$ z!`tu+MaXyw#;S04zRV!0R{fLt{ygrU%uXFDe_*J74UCWxMih?G*rEd+!kK zW*twb@8HwU@6fu&&mS;5t<;-f*{=A7B4!>u42=gF$EM0C-JbveynV46n=kTyfKp1n z7mEK1??uK-@RL+9px|6EPPy;-2s=cVIXFw1s?_)f9{4Sx-vF)_hEKgh$`jrrqP}qG4@n@?Tw3eQ&)`$d5cRMun=p(#xx6NqnNisC{p2Ad5si*B XhNsCThrCTx00000NkvXXu0mjf>GKa< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/petcollar.png b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/petcollar.png new file mode 100644 index 0000000000000000000000000000000000000000..a41aa29918d7bb4307ea5df5f113324bb25039ad GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Cp}#pLn`LHy|tJ3kbywk!_7xT z65FQmOt3s8!}HMcgVc`GO!FAm7m5gK{Nc!PZW7t=FYI0R>F1J?awVW{AXw4;^E+!- z<@)WVJ&!lP-~9S!O8c=Nb{bE8R%Tx`>?*nY`TO$Uoj+5j&tYl(9Cz!kXHj#wV#H#r z4z}zspI=U0wW|VR43J!4c5k)C_L%+)mV0OO|2UK%eUtU?&y;g3P0sG9GnEd=*cbQj zG0#EA&6}D`Z{_tHxnJzQ?6|4^`lNE8-i8wKNG|^)hnUm*LFRe7`njxgN@xNAniXwi literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/walkietalkie.png b/Resources/Textures/Clothing/Mobs/Back/corgi_back.rsi/walkietalkie.png new file mode 100644 index 0000000000000000000000000000000000000000..5a5ff60380bfda086048ed24a728de09676ad958 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEV65X>&B>g7 z>HAHlop-9^^&19lh!TaYQ9T?ocdK$|&34exuXk`;*nz-c@dzxB6zNg!_Ey)ZeRZ_r2OA#=ozA z2P1>cL&@BVP4AUNy7h}}-7KwUFlFETc)I(ZMa}7OCWh(94kt}`{Kf0xU)Kpesq0xY zetLE3xSBECJ}ug|P$D_&dcFCvj?+6C@}(2`I)fQ6nXI)szJF($R&0Zc=Nz?LtkZMc z|8q{UQ{5J$m%Woa#(3&I#>i<0qh6cbG>gohm>T)Aa4C1daruOW=Wcean75DN`rp>q UCbxB^flFVdQ&MBb@0B3r-6aWAK literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/beret.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/beret.png new file mode 100644 index 0000000000000000000000000000000000000000..5c2725e910f0853309cd66afe7b0fe342237fc63 GIT binary patch literal 354 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVAS+O?sSP{)^QlsAB)7`h|7dau3S5);B)BkPv?3Nc20s z@Sq((W6r*K$P9Ei6x1K}y|-lB;sY+(JpM7O6IXtg4R%WLnskq2>yq%~wN)X`uj0>| zA5-z@d(E`u;?$*j!7@ve6qKvpnCEpr*v7EB^Tnxq0r~nbEsJv!S4@ArjbW;u{vPRV v)2z7_?610O#Y z$?DpEwPEpp?;LR1Kl`j{cj4sQdmA#oefh6#I+I@^ibn~k83+zU8y;JRe4IFxl>9sQd{0W76f`R;d7Fo(@2aSftt|p6kz$6MP4^eC(~SGf zWFw`cq_mYm&~oX|T;5etMdw}{8^7+l8oOcDw9RFEm(Hu4H#_U+E8icUXWw7k%Me~T zlND&r-usPu?*HGNE1D?`aRiY3XOgmRyX+(xTWy)S+2svyTUnmpxx8mzY0z)4+*{TA zpRM@zOk!8`)(ZknPv(^SPuQ;fjZla~Cpsm|`nTQ|I2+POEYXU^vj&-e?E*)E)z pXD_q&FB8xA`F;C2)EOAwy=8aloMy{)L|77Jqo=E%%Q~loCIC$nm0|z@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/bunny.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/bunny.png new file mode 100644 index 0000000000000000000000000000000000000000..63dd9d103adbda1697d8a40b7d6698c05ab8115e GIT binary patch literal 508 zcmV2WN7zgmjb>K-TE1rtIt{3U2@Kfhg6ffC17pYK$I*JF$4qb-Y)y?>%FZTa~Vm+8V zd6M`VB7mpn*&HOL)aL(sy|yZY)0lW(Z7Y47&uL#2X93s*F~p_1n(++r!V}gh0P_<< z=)aE`PD-hp^>DCGKv>tU{e4mV^uQ*L&w6Ss(|A)C7waj|^&SNDaX7FB*X5#Ywgeci z=6|zX&e3H(1-#|b>)U@6gM*e*>TYlJ?Q{E2?+>Ye^c1+oeL!EG+$UcE0DuX5$h$Wq z&vWhjK2=pkVHjGqh5cFJntb1jPYs%eFv* z=oDlWMVv*pY~q-G@daxFnxvGP<2&6h%k(bGoPFK1(GE3OcKUWN|Egdx;i05?|dD50+Uj* zUkRLzfZyC>PhK?v_vq;pz|PewQP*VyJgL@YDbI6VmL<(*Gg_@ycX!De<5JsN&jPxx yX|Y&L@^ka0wzU%Qc|5kZQ!?eY0RR91fQ>I($K`)xTBH^L00004%P)8uy*U)fIs7RS{0P+(ThRLg@B!vY_yP!Q^+H1kvI+eJQ}c7PQ(_xKY4@B3*E?7LD71NG zhgyy^Nz!thDYC=jrJ81J?4oW@QMac}XDWXl(m&_}cu8t>f4ftXnp4VzYqj@}0eij31 zyFUN`000000001h<4y@M{6+ZUvZ=y;hc-#Kl6FBglGMo9fs>jGU!0T=_=&NxI}A{S zY?u3I%HfM9w%u!;0e;|~4^XV~A*R~{TDN-f8P&KqrXDt8#000000N;E96IGzTPa`p@00000NkvXX Hu0mjfo20vq literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cardborg_h.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cardborg_h.png new file mode 100644 index 0000000000000000000000000000000000000000..2a8fd7fcf755e93347d644d0973b4b512f97ff02 GIT binary patch literal 505 zcmVIw_5g;7EM2`sx2QYdBqakGh8y9?phR_?-g(;RY({}1q zZ2bRLEgjyQdF3n21Bi%-h^RQv?L~RVb;)m)N$z>q%Im(rfIpjR$30j6OO4zS080n~ z-(M&P2_fLmribww@z0W9rvMg!XtUWM?+z4AuBnpz7bPYE02qxY7>y?<$LVo~6^&cT zTj0o`Ka?KVjdlUTaF6-?0|4;${(7kN?af`Z+wBmBdxO)<&ab+zL-#FkkX*d%ye>)= zK(*L97NK?%?zFqPKXz8@W$o5QL_|bHL_|bHL`3upjQxL}Y)(k-&&QAJ_6*3Lr^@jY zMuOxuEdY9r3#Q{`DZM+K6gMsSvnf2cryldwxKKErOq@d}UKS$-h?^FK5O{uh!sEmJ z$(XFJ4pqFg(RhMEe+b8EXvND?dUsgHaT*x(hv{aClk*~EG2+FWWV8UlcM+1xG*HN5 zm|i?!=tHp6?nbTFmGXKJY_)f6tB5IM{1uQ^cA~5G(h7oY6;nD=c>(@9Bi{nH-Gu48 v<+;5m4EM^ow%x>Py)>GWh=_=Yi2jdHX4u&1uk<<&00000NkvXXu0mjfjT7sl literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cargosoft.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/cargosoft.png new file mode 100644 index 0000000000000000000000000000000000000000..a64e36d6f2e405a5413873331deb93573515f732 GIT binary patch literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU`+OOaSW-L^Y)gZ_hAPKwg=|h zrj@NSbH2m%DB#SM{SV(vGyNg$rMCRie1%IF^YnrWic5J#CaEfgu$;Xxt!c(0-RDy# z9ntVDx^nP)B$N2Nv(tA^cxuDNN+ zuk`L5XVq$*X1sg%Z*!AZsy@%POxl2{Kn5DEUoPL-P`L2+_o*4e&ew{6Ke>~!ZcWtE%|5<7Rc9lfw^`?KmfsM{ zl$G88wB_@n$IWrZ!ROS!Wa>mRte zQj6iir>aT6lpg+_DE{D;+TUXTYBoU_$bG|oNuu@PpBTxRz))xKboFyt=akR{0AA_6 AsQ>@~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/chef.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/chef.png new file mode 100644 index 0000000000000000000000000000000000000000..edd84cbd84ea341477463c530f36a177e58ac4da GIT binary patch literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=J)SO(Ar*7p-ZJDnWWeKaQK|5T z%*pVRnX_iM^se-H5Vf%B`!v6)y6Jy!voY+^R(iJYeet=>6q&UHl~D3lU}Vgr9|PQ pSE}WvMNXRb4yij7nm|e#iuh&KerYXbRXz#gdb;|#taD0e0svyDOBVnD literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/christmasscarf.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/christmasscarf.png new file mode 100644 index 0000000000000000000000000000000000000000..e179cc20691e98ba90beada6a3187b7006159c36 GIT binary patch literal 366 zcmV-!0g?WRP)9APeNctZ4gU^h~L6SO2 zUsK#UekbWQAcv@A=PH|48ve$$;YS)i%0K)vhb7ZWzwd=#fHYR2X4UVpQ$BCCa;fpX zhlu(9lk6pDwVoGXCAY7c&)RN)bp3y!2)m-{r)Xk-__^KY%mV-b00000005MirIF}& zWJ-64bH_?P!0*Ss=)7N_t5a*I7#lCfEHy^fYWZ^mr=!$7r_BvCz1)0;X~(tGG4CzQ zeqF6MH{h*B#jzLqkFjS}v&OD*Rco6YsP5r!fPLiZOO>ZI003$J0oP_@(`K!;EdT%j M07*qoM6N<$g6$}#^8f$< literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/clown.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/clown.png new file mode 100644 index 0000000000000000000000000000000000000000..50f6fc3854b670b194bc2c20941f0ceb95eecc20 GIT binary patch literal 547 zcmV+;0^I$HP)3-(4ts#||1FT~^}D<8S{UvFh=_>jP$|=n(}$|W-@VpId!K1PTdu}8nqWF;T6zGJ zKAUnme&OVFfrpLGO54TDO>T_eBtbWRHm+&EtYg~=O~$k2d(9632mpmaFG{YRouAl- zwU%9!*BYsHNzgem9cVJ1B@3K2-v9tgEf&A{{Ao}3E%SFEj;)L7wMHtvK_&_l5C_h- z)qEc!3V=XFq2~KW_u0zZfFd>ter54mBlUiJ znmpd^c3ZmL?sc|by6anjb(!w1=B{r8h1)c>+wTO0q;m79}_OVu(NW3KUh9 ztlDm=P0YGT%Er2?l2wuXr&i@ l6$E=TFCro$A|m>qz5$ggP_AceLInT-002ovPDHLkV1le={dE8U literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/detective.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/detective.png new file mode 100644 index 0000000000000000000000000000000000000000..f3b40d19da9f56d0e42d6539405cb52e0a4bfd87 GIT binary patch literal 245 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=dpunnLn`LHy=BOC$Uubc!HWlK z7MyWMohw-MA3S^a;T1}H5JWIH%lA&zktJ(TK+ROV#e8#4|;!F$^lDEf& zeJt+y>Ym$u{M&NxvbgxKo6TzMa#kHr`S-c@*Phm^-){W$*NEJI@lkzvuHnA+*V*4H z-#;?@5-Sh19tav1zFN{Mvwh?3Z7aRgu4+oncy<4I-ky@Uxk-*ISM~~gQZx5@zEp(M pb8g7HD{gbX&lNOgWdiBz-OG5&AtIu++Ta0*>*?y}vd$@?2>?2ZX~O^j literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/festive.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/festive.png new file mode 100644 index 0000000000000000000000000000000000000000..dc3dccf6c9b23aea492fb63668a65c09ccfec49c GIT binary patch literal 362 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU^Mh}aSW-L^Y+$8FJ?!P)`!jl zJqh|Zo-@ALcJtUd_D_mIQIW@|ZxD7A*rd?3#AxZe0|`Axd<=ZLvM1)uoFMy%>sS5R z17gqb?fp6tXs~SAyqPMoH$I*Hl{V?h`DyR{S3e6WUTwQ-@2iZZIuD$tOkF*Hd-UWb zHpbGf(}lusYgj$KDj4>8?U^&J5!TuIsf_l~9&xigE`9tIJ;OF@j?lD(Js-HZ*VoSV zn53q6>gUxsQ&rgo(H5oaZhczb{;Oig^m+DQP4%wK<_~_9^?K*Jd$(m}@9g!eTOfY6 zq*B;K=UML=cA!V0;7|7MoII1OPM%pEYc{Xk8TjnyweIPadA?f%CUFV9&dJK#)4HLw zuRkzrMeC-^%s~E}t$o|hRnGD&jr|dyyAWzh{T1_b_paPbULl|c67h8Pb6Mw<&;$TC C!JwxA literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_cakehat.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_cakehat.png new file mode 100644 index 0000000000000000000000000000000000000000..b521d905f73aea773855a938d468aab0eb79dd77 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=FFaiwLn`LHy|q!W$w8p?Vd=30 zOd5?F8MPO%{8Cidk>#P$$dz+oVT<;GH#!F<-agto`Qv{fp^ECw6F#~yFueYHX?guT zeWjpZ4Dn~}Bjqc~V#^+=vJ}5le6~E%!|>RWopP!BGJ_4>N((|m-{mKE|4cv4=)@6p zz4Y6@%6YmQU7xSMe<^p?rDU0_2d{6NT77v(E$h3o29?aazeg4v+d8|C!eX~w+-@4S49@e)~VWUcT+=eM)Hk*rLwyn_B&+y`& e7YQ}z-W~?Vh0lIY`LReFB;x7n=d#Wzp$PzYYIukM literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_reindeer.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_reindeer.png new file mode 100644 index 0000000000000000000000000000000000000000..635cc731f1651f086f3d9c9b4a323a355c681e84 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Up!qLLn`LHz2(T&L)&i>Y@{(?pBz-E@XRoNcq0=L*Ex^Qb}MQMtv@miTY{l8tN{reN)xvl;z3?F7b zOGt=m?4 z4_1Es8dhz4TfFFu{-#?wvU7LszqDV7bzax=%gfaT&o9^FvQd7&FZVCwgZwR4dQ&{U zUM-Ef_A9bq5$IwtxDXuc*EwUBh2TY*2|wJAF}*1AIdYU6bA55aqopv3I&H+=o^#_+EHE9-NBb=(+2GmM5{01;I1y}QqT^iZxCop5QK{q znlaOLkQ=V}uZ=fd{C;qUn}l;tPA-`aKtx28TC?G*f0@78a8;=QTVk&)C`B1^|@H<>XqmTD4NUl_1~!=-OTj v#bWVKIi!@z9KA7d42Fn^h=_=Yh$w|OK7#nsmL36N00000NkvXXu0mjflw0Q> literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_yellow.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat0_yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..90c5a20b5ea5f72aafcd829ca0b02dd675605af8 GIT binary patch literal 527 zcmV+q0`UEbP)cfQbA=EL?T05cK1|L8ZTPyC0sr}AshULA}leyfQkUCjEC z#UVCVcPnB2$dc~pE1?)a>5?D5@x4ERYY$T9XWgpL&${tA4ffMNj?e0^%B7gy^);x? z)FJx`!374%9`~LeJv)k0EXKdSICbp)yWYV_0Gy?Y}Lv4zGm)e7wFx;X%9(-BLJY^b`* zP+B$*Uu^ZpMP9u9HgxaN^9-K~czl0&eTs9JRSBgh0N~c8D*)Vl`RUkmr~MzC)Z_E! z&Q$zu4yT+vTHCMV5ms77e){ktkpANO&6sZkHL_|bHL_|cy!!NxRx+yor RK1~1s002ovPDHLkV1m+%0Q>*| literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_cakehat.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_cakehat.png new file mode 100644 index 0000000000000000000000000000000000000000..12296b1d4615cc7c820d8e55d93f0a5b50cb5c9e GIT binary patch literal 459 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrV4URX;uumf=k1-1xlD#44T5!&fY!w<4>*ctS5Ei`cJDB85nF7 z-j!|qBCVma&S}q_e#3Q68x?oV>0ipe;cMMT_80sgCjDl=fBWs-2hrD4>%;dq)!liU zbpN~I)8%!tf7f`v{B8I1aQD%qFPc~6_y3>uxnbSwLq$9H{H|VpS@ZekU#!1R2LCFw zII{jPP}%$0zCU8tyZ_d|pnsbk=mQu?J5k%vwv%7LX+@1~4Ilpn`2)2Ke@lw*^ylw= zZ|Cs1_B*50``!Et_+jcn^nMGOiw5n=P8?J3^UgTT{6)BDmrcd%ii1EDKb8Nm~a_9S#I=KOW|S0uYq-p=wp39G=o#Xc#oJ~plF6MHfJEi;n2{%6+JAAa+z zT|g`H>%7m*U(`RnpBHg?_q(;p#unG^{s%Y1 a<_UWb`~FkKo~ti_#5`U7T-G@yGywof8_+cX literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_white.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/hardhat1_white.png new file mode 100644 index 0000000000000000000000000000000000000000..adc52987b43d8b858c8def7ac96c5c5b6cc2f849 GIT binary patch literal 496 zcmVYU6bA55mx4=+kR?m$(g$$K;35STf;zZa5V{sRB~ht;0{>1vgQJ6rpe_Y<^#Sf+ z>6k^@LE%ov>4sEWO=DUVz8~D--dxT(Igm^TAR;14&G!QN&-rJ6li0Q(@2}6WEy%PR zVe&sdJxo8p?*-yGj?`-vk+&DA*DB&T&eV!9`P=Pww5FEd_X5#ci`H6f3sSFD#I_Kf zO}Yr*3nUCf(OOFwhS4(nar3AC1ooRPY;6aan_s}zc7Xk6D{ZJ$dcEGa`=n;Zxg78A z?%oaxg~C7qhX+T|{^ay{tk~n`U*A~!^8D)ZdZPJ>h=_=Yh=_=Yh=_=Yh$v1eC1(9* zUcmPPiO0&aMkDonz$i*7$>;Mh3jk~j(x|$LU!YNS#kL>-5RWyfCS*n_H88EAloIpu z{eC}D6XJJm3odM9a4cbp?;5;6? zTrOu)d*%%QfKI0a0Jyuo|8noA$&F$EjFr`806?i!iq8I214jMm%ot5BmrIpLYb~Eg mZ{j!xLqtSGL_|bHl)?w2(;YzD&S*XW0000*OFP>eeENjxOR* z+#D*j3c;;|y5%^8)YQ*5ra|F-;0{SH_q{zNUG4#hh=>9+4ak4aSAG+$sgQx81T+;A zbs@a`ijC;=O#?ElLo$mAk*Bg`785e8N4E(tKWBB;M`Zb?0g)SBq!bfPb&H^>5Gln( zZuGWq!ZaY2f}2+A3_5$%i_c}_|d;8n#W_7eO*7<;T6|u3}_=5V^4(oFWy#N3(-!lpTnA^MhFz=`TgU@<=4j0A%00$4(^?QG+ z0ADpG<<@|{-WWPY>_9nEib?g}ZfL#nV;c++5fKp)5fM=UuX9x6co9qH6aWAK07*qo IM6N<$g21Tl)Bpeg literal 0 HcmV?d00001 diff --git a/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/helmet.png b/Resources/Textures/Clothing/Mobs/Hats/corgi_hats.rsi/helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..f75f4365f71c68bd9ab432afedee080f17441626 GIT binary patch literal 632 zcmV-;0*C#HP)lAX(b0U{zI`d{5KJy8guT*pa{`-1^G zosMz6ztz8B+Pq$`BM5?IERJIUP^(x3-5&sgAke*y`rkEa?m7;nlu6?_jv=Ll>o^cX zsJu1v_7B4lQp%(^07xkjhGFjhxqmI+E336N7xxO;Q-9tn^m=`qb-yp|U+{c?UjabL z^D^I^ce?<9k4Hyy_cwY3uC6Yz{^rZO%=pWv2d;bHq-1XTW*3!v0s8$PL&vR#e^`Bg z_IA?uww+&GKyQBi!5|qQH?}nE4<3$v&L)l9?k$8+qtCh?Tg5db7c%X5mAx0ahJ`jO z-zz5#m$~r~5fKp)5fKp)5fKsDVEtvrXm9~A3oqEJGmFvN;YrfLiBxDon>)Oa4nSzB znpQ&?xdRfDj0;YrMNu?YctHrEqA1FYFDry$Z6$YVHC3rrQ7je#{7!7NTdmBzZzm^H zd+yX~nVTC|cUGNwS$zbw<7PAYeEaIdaFC+mPd#^Ze&O|t1HF)scXusa;UCr>0Ub;@ zZZ=Wc+(2n_1J^gbp*gLFe>kho=$z}DUQ$mltj!RF)g4vu1CJ^d0Kn%@Ul)FD?t5kR zZ0`vG;I!Rdc^uD(@0FF#4x}>#CUr*Z{gbvT+iI(_J@*adolitWL_|bHl+Q0IjRS#b SI?A2^0000Lm^9CvNSuE%AOG@ z5Sl9R%Btzmf8A|9@<=5~mKeh5T)oUc2{&XhLQ5vbf#*PwZd8 z_PIY>HC~f(^P>Mz)(i|Yvjusc%kN=eD5z#z^PYj>&t+wc-|c}ls}`6(by&Chz>$>t zJ=a;^_;Y<`eH(rt_i7*)ljtf=#{67y3wz0x;STj1rzr={;C%10o_miSqyE2)`jE~J zB=F+=srLq#i!S*WT;>Zbtut2HJo%Wp!G4Ktv#Yg2EXxAVorq*i`FWt5Dg5e&T(d

public const float CellVolume = 2500f; + // Liters in a normal breath + public const float BreathVolume = 0.5f; + + // Amount of air to take from a tile + public const float BreathPercentage = BreathVolume / CellVolume; + /// /// Moles in a 2.5 m^3 cell at 101.325 kPa and 20ºC /// diff --git a/Content.Shared/Health/BodySystem/Mechanism/MechanismPrototype.cs b/Content.Shared/Body/Mechanism/MechanismPrototype.cs similarity index 60% rename from Content.Shared/Health/BodySystem/Mechanism/MechanismPrototype.cs rename to Content.Shared/Body/Mechanism/MechanismPrototype.cs index acf2711f28..fc84807182 100644 --- a/Content.Shared/Health/BodySystem/Mechanism/MechanismPrototype.cs +++ b/Content.Shared/Body/Mechanism/MechanismPrototype.cs @@ -1,63 +1,56 @@ using System; +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Body; using Robust.Shared.Prototypes; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using YamlDotNet.RepresentationModel; -namespace Content.Shared.Health.BodySystem.Mechanism +namespace Content.Shared.Body.Mechanism { - /// - /// Prototype for the Mechanism class. + /// Prototype for the Mechanism class. /// [Prototype("mechanism")] - [NetSerializable, Serializable] + [Serializable, NetSerializable] public class MechanismPrototype : IPrototype, IIndexedPrototype { + private List _behaviorClasses; + private BodyPartCompatibility _compatibility; + private string _description; + private int _destroyThreshold; + private int _durability; + private string _examineMessage; private string _id; private string _name; - private string _description; - private string _examineMessage; + private int _resistance; private string _rsiPath; private string _rsiState; - private int _durability; - private int _destroyThreshold; - private int _resistance; private int _size; - private BodyPartCompatibility _compatibility; - [ViewVariables] - public string ID => _id; + [ViewVariables] public string Name => _name; - [ViewVariables] - public string Name => _name; + [ViewVariables] public string Description => _description; - [ViewVariables] - public string Description => _description; + [ViewVariables] public string ExamineMessage => _examineMessage; - [ViewVariables] - public string ExamineMessage => _examineMessage; + [ViewVariables] public string RSIPath => _rsiPath; - [ViewVariables] - public string RSIPath => _rsiPath; + [ViewVariables] public string RSIState => _rsiState; - [ViewVariables] - public string RSIState => _rsiState; + [ViewVariables] public int Durability => _durability; - [ViewVariables] - public int Durability => _durability; + [ViewVariables] public int DestroyThreshold => _destroyThreshold; - [ViewVariables] - public int DestroyThreshold => _destroyThreshold; + [ViewVariables] public int Resistance => _resistance; - [ViewVariables] - public int Resistance => _resistance; + [ViewVariables] public int Size => _size; - [ViewVariables] - public int Size => _size; + [ViewVariables] public BodyPartCompatibility Compatibility => _compatibility; - [ViewVariables] - public BodyPartCompatibility Compatibility => _compatibility; + [ViewVariables] public List BehaviorClasses => _behaviorClasses; + + [ViewVariables] public string ID => _id; public virtual void LoadFrom(YamlMappingNode mapping) { @@ -74,7 +67,7 @@ namespace Content.Shared.Health.BodySystem.Mechanism serializer.DataField(ref _resistance, "resistance", 0); serializer.DataField(ref _size, "size", 2); serializer.DataField(ref _compatibility, "compatibility", BodyPartCompatibility.Universal); + serializer.DataField(ref _behaviorClasses, "behaviors", new List()); } } } - diff --git a/Content.Shared/Body/Part/BodyPartPrototype.cs b/Content.Shared/Body/Part/BodyPartPrototype.cs new file mode 100644 index 0000000000..7d6158dce3 --- /dev/null +++ b/Content.Shared/Body/Part/BodyPartPrototype.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.Interfaces.Serialization; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.Body.Part +{ + /// + /// Prototype for the BodyPart class. + /// + [Prototype("bodyPart")] + [Serializable, NetSerializable] + public class BodyPartPrototype : IPrototype, IIndexedPrototype + { + private BodyPartCompatibility _compatibility; + private string _damageContainerPresetId; + private int _destroyThreshold; + private int _durability; + private string _id; + private List _mechanisms; + private string _name; + private BodyPartType _partType; + private string _plural; + private List _properties; + private float _resistance; + private string _resistanceSetId; + private string _rsiPath; + private string _rsiState; + private int _size; + private string _surgeryDataName; + + [ViewVariables] public string Name => _name; + + [ViewVariables] public string Plural => _plural; + + [ViewVariables] public string RSIPath => _rsiPath; + + [ViewVariables] public string RSIState => _rsiState; + + [ViewVariables] public BodyPartType PartType => _partType; + + [ViewVariables] public int Durability => _durability; + + [ViewVariables] public int DestroyThreshold => _destroyThreshold; + + [ViewVariables] public float Resistance => _resistance; + + [ViewVariables] public int Size => _size; + + [ViewVariables] public BodyPartCompatibility Compatibility => _compatibility; + + [ViewVariables] public string DamageContainerPresetId => _damageContainerPresetId; + + [ViewVariables] public string ResistanceSetId => _resistanceSetId; + + [ViewVariables] public string SurgeryDataName => _surgeryDataName; + + [ViewVariables] public List Properties => _properties; + + [ViewVariables] public List Mechanisms => _mechanisms; + + [ViewVariables] public string ID => _id; + + public virtual void LoadFrom(YamlMappingNode mapping) + { + var serializer = YamlObjectSerializer.NewReader(mapping); + + serializer.DataField(ref _name, "name", string.Empty); + serializer.DataField(ref _id, "id", string.Empty); + serializer.DataField(ref _plural, "plural", string.Empty); + serializer.DataField(ref _rsiPath, "rsiPath", string.Empty); + serializer.DataField(ref _rsiState, "rsiState", string.Empty); + serializer.DataField(ref _partType, "partType", BodyPartType.Other); + serializer.DataField(ref _surgeryDataName, "surgeryDataType", "BiologicalSurgeryData"); + serializer.DataField(ref _durability, "durability", 50); + serializer.DataField(ref _destroyThreshold, "destroyThreshold", -50); + serializer.DataField(ref _resistance, "resistance", 0f); + serializer.DataField(ref _size, "size", 0); + serializer.DataField(ref _compatibility, "compatibility", BodyPartCompatibility.Universal); + serializer.DataField(ref _damageContainerPresetId, "damageContainer", string.Empty); + serializer.DataField(ref _resistanceSetId, "resistances", string.Empty); + serializer.DataField(ref _properties, "properties", new List()); + serializer.DataField(ref _mechanisms, "mechanisms", new List()); + + foreach (var property in _properties) + { + if (_properties.Count(x => x.GetType() == property.GetType()) > 1) + { + throw new InvalidOperationException( + $"Multiple {nameof(BodyPartPrototype)} of the same type were defined in prototype {ID}"); + } + } + } + } +} diff --git a/Content.Shared/Body/Part/Properties/BodyPartProperty.cs b/Content.Shared/Body/Part/Properties/BodyPartProperty.cs new file mode 100644 index 0000000000..8da251a565 --- /dev/null +++ b/Content.Shared/Body/Part/Properties/BodyPartProperty.cs @@ -0,0 +1,23 @@ +using Robust.Shared.Interfaces.Serialization; +using Robust.Shared.Serialization; + +namespace Content.Shared.Body.Part.Properties +{ + /// + /// Property attachable to a . + /// For example, this is used to define the speed capabilities of a + /// leg. The movement system will look for a LegProperty on all BodyParts. + /// + public abstract class BodyPartProperty : IExposeData + { + /// + /// Whether this property is currently active. + /// + public bool Active; + + public virtual void ExposeData(ObjectSerializer serializer) + { + serializer.DataField(ref Active, "active", true); + } + } +} diff --git a/Content.Shared/Body/Part/Properties/Movement/FootProperty.cs b/Content.Shared/Body/Part/Properties/Movement/FootProperty.cs new file mode 100644 index 0000000000..95432cbfe6 --- /dev/null +++ b/Content.Shared/Body/Part/Properties/Movement/FootProperty.cs @@ -0,0 +1,11 @@ +namespace Content.Shared.Body.Part.Properties.Movement +{ + /// + /// Defines the leg-based locomotion ability of a BodyPart. Required for humanoid-like movement. Must be connected to a + /// with + /// and to work. + /// + public class FootProperty : BodyPartProperty + { + } +} diff --git a/Content.Shared/Body/Part/Properties/Movement/LegProperty.cs b/Content.Shared/Body/Part/Properties/Movement/LegProperty.cs new file mode 100644 index 0000000000..77ba06f888 --- /dev/null +++ b/Content.Shared/Body/Part/Properties/Movement/LegProperty.cs @@ -0,0 +1,23 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Body.Part.Properties.Movement +{ + /// + /// Defines the speed of humanoid-like movement. Must be connected to a + /// with and have + /// on the same organ and down to the foot to work. + /// + public class LegProperty : BodyPartProperty + { + /// + /// Speed (in tiles per second). + /// + public float Speed; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref Speed, "speed", 1f); + } + } +} diff --git a/Content.Shared/Body/Part/Properties/Other/ExtensionProperty.cs b/Content.Shared/Body/Part/Properties/Other/ExtensionProperty.cs new file mode 100644 index 0000000000..52d5965083 --- /dev/null +++ b/Content.Shared/Body/Part/Properties/Other/ExtensionProperty.cs @@ -0,0 +1,21 @@ +using Robust.Shared.Serialization; + +namespace Content.Shared.Body.Part.Properties.Other +{ + /// + /// Defines the extension ability of a BodyPart. Used to determine things like reach distance and running speed. + /// + public class ExtensionProperty : BodyPartProperty + { + /// + /// Current reach distance (in tiles). + /// + public float ReachDistance; + + public override void ExposeData(ObjectSerializer serializer) + { + base.ExposeData(serializer); + serializer.DataField(ref ReachDistance, "reachDistance", 2f); + } + } +} diff --git a/Content.Shared/Body/Part/Properties/Other/GraspProperty.cs b/Content.Shared/Body/Part/Properties/Other/GraspProperty.cs new file mode 100644 index 0000000000..b3a774918e --- /dev/null +++ b/Content.Shared/Body/Part/Properties/Other/GraspProperty.cs @@ -0,0 +1,10 @@ +namespace Content.Shared.Body.Part.Properties.Other +{ + /// + /// Defines the item grasping ability of a BodyPart. Distance is determined by the + /// ExtensionProperties of the current BodyPart or attached BodyParts. + /// + public class GraspProperty : BodyPartProperty + { + } +} diff --git a/Content.Shared/Health/BodySystem/BodyPreset/BodyPresetPrototype.cs b/Content.Shared/Body/Preset/BodyPresetPrototype.cs similarity index 56% rename from Content.Shared/Health/BodySystem/BodyPreset/BodyPresetPrototype.cs rename to Content.Shared/Body/Preset/BodyPresetPrototype.cs index f36202a5a4..6fb56cc3ba 100644 --- a/Content.Shared/Health/BodySystem/BodyPreset/BodyPresetPrototype.cs +++ b/Content.Shared/Body/Preset/BodyPresetPrototype.cs @@ -5,32 +5,31 @@ using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using YamlDotNet.RepresentationModel; -namespace Content.Shared.Health.BodySystem.BodyPreset { - +namespace Content.Shared.Body.Preset +{ /// /// Prototype for the BodyPreset class. /// [Prototype("bodyPreset")] - [NetSerializable, Serializable] - public class BodyPresetPrototype : IPrototype, IIndexedPrototype { + [Serializable, NetSerializable] + public class BodyPresetPrototype : IPrototype, IIndexedPrototype + { private string _id; private string _name; - private Dictionary _partIDs; + private Dictionary _partIDs; - [ViewVariables] - public string ID => _id; + [ViewVariables] public string ID => _id; - [ViewVariables] - public string Name => _name; + [ViewVariables] public string Name => _name; - [ViewVariables] - public Dictionary PartIDs => _partIDs; + [ViewVariables] public Dictionary PartIDs => _partIDs; - public virtual void LoadFrom(YamlMappingNode mapping){ + public virtual void LoadFrom(YamlMappingNode mapping) + { var serializer = YamlObjectSerializer.NewReader(mapping); serializer.DataField(ref _id, "id", string.Empty); serializer.DataField(ref _name, "name", string.Empty); - serializer.DataField(ref _partIDs, "partIDs", new Dictionary()); + serializer.DataField(ref _partIDs, "partIDs", new Dictionary()); } } } diff --git a/Content.Shared/Health/BodySystem/BodyScanner/BodyScannerSharedValues.cs b/Content.Shared/Body/Scanner/BodyScannerSharedValues.cs similarity index 79% rename from Content.Shared/Health/BodySystem/BodyScanner/BodyScannerSharedValues.cs rename to Content.Shared/Body/Scanner/BodyScannerSharedValues.cs index 0f9f83cf6c..83b11556ba 100644 --- a/Content.Shared/Health/BodySystem/BodyScanner/BodyScannerSharedValues.cs +++ b/Content.Shared/Body/Scanner/BodyScannerSharedValues.cs @@ -1,40 +1,43 @@ using System; using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Body; using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.Serialization; -namespace Content.Shared.Health.BodySystem.BodyScanner +namespace Content.Shared.Body.Scanner { - - - [NetSerializable, Serializable] + [Serializable, NetSerializable] public enum BodyScannerUiKey { Key } - [NetSerializable, Serializable] + [Serializable, NetSerializable] public class BodyScannerInterfaceState : BoundUserInterfaceState { public readonly Dictionary Parts; public readonly BodyScannerTemplateData Template; - public BodyScannerInterfaceState(Dictionary parts, BodyScannerTemplateData template) + + public BodyScannerInterfaceState(Dictionary parts, + BodyScannerTemplateData template) { Template = template; Parts = parts; } } - [NetSerializable, Serializable] + [Serializable, NetSerializable] public class BodyScannerBodyPartData { + public readonly int CurrentDurability; + public readonly int MaxDurability; + public readonly List Mechanisms; public readonly string Name; public readonly string RSIPath; public readonly string RSIState; - public readonly int MaxDurability; - public readonly int CurrentDurability; - public readonly List Mechanisms; - public BodyScannerBodyPartData(string name, string rsiPath, string rsiState, int maxDurability, int currentDurability, List mechanisms) + + public BodyScannerBodyPartData(string name, string rsiPath, string rsiState, int maxDurability, + int currentDurability, List mechanisms) { Name = name; RSIPath = rsiPath; @@ -45,16 +48,18 @@ namespace Content.Shared.Health.BodySystem.BodyScanner } } - [NetSerializable, Serializable] + [Serializable, NetSerializable] public class BodyScannerMechanismData { - public readonly string Name; + public readonly int CurrentDurability; public readonly string Description; + public readonly int MaxDurability; + public readonly string Name; public readonly string RSIPath; public readonly string RSIState; - public readonly int MaxDurability; - public readonly int CurrentDurability; - public BodyScannerMechanismData(string name, string description, string rsiPath, string rsiState, int maxDurability, int currentDurability) + + public BodyScannerMechanismData(string name, string description, string rsiPath, string rsiState, + int maxDurability, int currentDurability) { Name = name; Description = description; @@ -65,11 +70,12 @@ namespace Content.Shared.Health.BodySystem.BodyScanner } } - [NetSerializable, Serializable] + [Serializable, NetSerializable] public class BodyScannerTemplateData { public readonly string Name; public readonly Dictionary Slots; + public BodyScannerTemplateData(string name, Dictionary slots) { Name = name; @@ -77,5 +83,3 @@ namespace Content.Shared.Health.BodySystem.BodyScanner } } } - - diff --git a/Content.Shared/Health/BodySystem/Surgery/GenericSurgeryUIMessages.cs b/Content.Shared/Body/Surgery/GenericSurgeryUIMessages.cs similarity index 71% rename from Content.Shared/Health/BodySystem/Surgery/GenericSurgeryUIMessages.cs rename to Content.Shared/Body/Surgery/GenericSurgeryUIMessages.cs index eee26afde0..6a6f224bb1 100644 --- a/Content.Shared/Health/BodySystem/Surgery/GenericSurgeryUIMessages.cs +++ b/Content.Shared/Body/Surgery/GenericSurgeryUIMessages.cs @@ -3,31 +3,38 @@ using System.Collections.Generic; using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.Serialization; -namespace Content.Shared.Health.BodySystem.Surgery +namespace Content.Shared.Body.Surgery { - - [Serializable, NetSerializable] + [Serializable] + [NetSerializable] public class RequestBodyPartSurgeryUIMessage : BoundUserInterfaceMessage { public Dictionary Targets; + public RequestBodyPartSurgeryUIMessage(Dictionary targets) { Targets = targets; } } - [Serializable, NetSerializable] + + [Serializable] + [NetSerializable] public class RequestMechanismSurgeryUIMessage : BoundUserInterfaceMessage { public Dictionary Targets; + public RequestMechanismSurgeryUIMessage(Dictionary targets) { Targets = targets; } } - [Serializable, NetSerializable] + + [Serializable] + [NetSerializable] public class RequestBodyPartSlotSurgeryUIMessage : BoundUserInterfaceMessage { public Dictionary Targets; + public RequestBodyPartSlotSurgeryUIMessage(Dictionary targets) { Targets = targets; @@ -35,43 +42,47 @@ namespace Content.Shared.Health.BodySystem.Surgery } - - - - [Serializable, NetSerializable] + [Serializable] + [NetSerializable] public class ReceiveBodyPartSurgeryUIMessage : BoundUserInterfaceMessage { - public int SelectedOptionID; - public ReceiveBodyPartSurgeryUIMessage(int selectedOptionID) + public int SelectedOptionId; + + public ReceiveBodyPartSurgeryUIMessage(int selectedOptionId) { - SelectedOptionID = selectedOptionID; + SelectedOptionId = selectedOptionId; } } - [Serializable, NetSerializable] + + [Serializable] + [NetSerializable] public class ReceiveMechanismSurgeryUIMessage : BoundUserInterfaceMessage { - public int SelectedOptionID; - public ReceiveMechanismSurgeryUIMessage(int selectedOptionID) + public int SelectedOptionId; + + public ReceiveMechanismSurgeryUIMessage(int selectedOptionId) { - SelectedOptionID = selectedOptionID; + SelectedOptionId = selectedOptionId; } } - [Serializable, NetSerializable] + + [Serializable] + [NetSerializable] public class ReceiveBodyPartSlotSurgeryUIMessage : BoundUserInterfaceMessage { - public int SelectedOptionID; - public ReceiveBodyPartSlotSurgeryUIMessage(int selectedOptionID) + public int SelectedOptionId; + + public ReceiveBodyPartSlotSurgeryUIMessage(int selectedOptionId) { - SelectedOptionID = selectedOptionID; + SelectedOptionId = selectedOptionId; } } - - - [NetSerializable, Serializable] + [NetSerializable] + [Serializable] public enum GenericSurgeryUiKey { - Key, + Key } } diff --git a/Content.Shared/Body/Template/BodyTemplatePrototype.cs b/Content.Shared/Body/Template/BodyTemplatePrototype.cs new file mode 100644 index 0000000000..d899432cdd --- /dev/null +++ b/Content.Shared/Body/Template/BodyTemplatePrototype.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Content.Shared.GameObjects.Components.Body; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.Body.Template +{ + /// + /// Prototype for the BodyTemplate class. + /// + [Prototype("bodyTemplate")] + [Serializable, NetSerializable] + public class BodyTemplatePrototype : IPrototype, IIndexedPrototype + { + private string _id; + private string _name; + private string _centerSlot; + private Dictionary _slots; + private Dictionary> _connections; + private Dictionary _layers; + private Dictionary _mechanismLayers; + + [ViewVariables] public string ID => _id; + + [ViewVariables] public string Name => _name; + + [ViewVariables] public string CenterSlot => _centerSlot; + + [ViewVariables] public Dictionary Slots => new Dictionary(_slots); + + [ViewVariables] + public Dictionary> Connections => + _connections.ToDictionary(x => x.Key, x => x.Value.ToList()); + + [ViewVariables] public Dictionary Layers => new Dictionary(_layers); + + [ViewVariables] public Dictionary MechanismLayers => new Dictionary(_mechanismLayers); + + public virtual void LoadFrom(YamlMappingNode mapping) + { + var serializer = YamlObjectSerializer.NewReader(mapping); + serializer.DataField(ref _id, "id", string.Empty); + serializer.DataField(ref _name, "name", string.Empty); + serializer.DataField(ref _centerSlot, "centerSlot", string.Empty); + serializer.DataField(ref _slots, "slots", new Dictionary()); + serializer.DataField(ref _connections, "connections", new Dictionary>()); + serializer.DataField(ref _layers, "layers", new Dictionary()); + serializer.DataField(ref _mechanismLayers, "mechanismLayers", new Dictionary()); + + //Our prototypes don't force the user to define a BodyPart connection twice. E.g. Head: Torso v.s. Torso: Head. + //The user only has to do one. We want it to be that way in the code, though, so this cleans that up. + var cleanedConnections = new Dictionary>(); + foreach (var targetSlotName in _slots.Keys) + { + var tempConnections = new List(); + foreach (var (slotName, slotConnections) in _connections) + { + if (slotName == targetSlotName) + { + foreach (var connection in slotConnections) + { + if (!tempConnections.Contains(connection)) + { + tempConnections.Add(connection); + } + } + } + else if (slotConnections.Contains(targetSlotName)) + { + tempConnections.Add(slotName); + } + } + + if (tempConnections.Count > 0) + { + cleanedConnections.Add(targetSlotName, tempConnections); + } + } + + _connections = cleanedConnections; + } + } +} diff --git a/Content.Shared/Damage/DamageClass.cs b/Content.Shared/Damage/DamageClass.cs new file mode 100644 index 0000000000..393b999486 --- /dev/null +++ b/Content.Shared/Damage/DamageClass.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using Robust.Shared.Serialization; + +namespace Content.Shared.Damage +{ + [Serializable, NetSerializable] + public enum DamageClass + { + Brute, + Burn, + Toxin, + Airloss + } + + public static class DamageClassExtensions + { + private static readonly ImmutableDictionary> ClassToType = + new Dictionary> + { + {DamageClass.Brute, new List {DamageType.Blunt, DamageType.Piercing}}, + {DamageClass.Burn, new List {DamageType.Heat, DamageType.Disintegration}}, + {DamageClass.Toxin, new List {DamageType.Cellular, DamageType.DNA}}, + {DamageClass.Airloss, new List {DamageType.Asphyxiation}} + }.ToImmutableDictionary(); + + public static List ToTypes(this DamageClass @class) + { + return ClassToType[@class]; + } + + public static Dictionary ToDictionary() + { + return Enum.GetValues(typeof(DamageClass)) + .Cast() + .ToDictionary(@class => @class, type => 0); + } + } +} diff --git a/Content.Shared/Damage/DamageContainer/DamageContainer.cs b/Content.Shared/Damage/DamageContainer/DamageContainer.cs new file mode 100644 index 0000000000..1f185a7c38 --- /dev/null +++ b/Content.Shared/Damage/DamageContainer/DamageContainer.cs @@ -0,0 +1,293 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Shared.Damage.DamageContainer +{ + /// + /// Holds the information regarding the various forms of damage an object has + /// taken (i.e. brute, burn, or toxic damage). + /// + [Serializable, NetSerializable] + public class DamageContainer + { + private Dictionary _damageList = DamageTypeExtensions.ToDictionary(); + + public delegate void HealthChangedDelegate(List changes); + + [NonSerialized] public readonly HealthChangedDelegate OnHealthChanged; + + public DamageContainer(HealthChangedDelegate onHealthChanged, DamageContainerPrototype data) + { + OnHealthChanged = onHealthChanged; + SupportedClasses = data.ActiveDamageClasses; + } + + public DamageContainer(HealthChangedDelegate onHealthChanged, List supportedClasses) + { + OnHealthChanged = onHealthChanged; + SupportedClasses = supportedClasses; + } + + public DamageContainer(HealthChangedDelegate onHealthChanged) + { + OnHealthChanged = onHealthChanged; + } + + [ViewVariables] public virtual List SupportedClasses { get; } + + [ViewVariables] + public virtual List SupportedTypes + { + get + { + var toReturn = new List(); + foreach (var @class in SupportedClasses) + { + toReturn.AddRange(@class.ToTypes()); + } + + return toReturn; + } + } + + /// + /// Sum of all damages kept on record. + /// + [ViewVariables] + public int TotalDamage => _damageList.Values.Sum(); + + public IReadOnlyDictionary DamageClasses => + DamageTypeExtensions.ToClassDictionary(DamageTypes); + + public IReadOnlyDictionary DamageTypes => _damageList; + + public bool SupportsDamageClass(DamageClass @class) + { + return SupportedClasses.Contains(@class); + } + + public bool SupportsDamageType(DamageType type) + { + return SupportedClasses.Contains(type.ToClass()); + } + + /// + /// Attempts to grab the damage value for the given . + /// + /// + /// False if the container does not support that type, true otherwise. + /// + public bool TryGetDamageValue(DamageType type, [NotNullWhen(true)] out int damage) + { + return _damageList.TryGetValue(type, out damage); + } + + /// + /// Grabs the damage value for the given . + /// + public int GetDamageValue(DamageType type) + { + return TryGetDamageValue(type, out var damage) ? damage : 0; + } + + /// + /// Attempts to grab the sum of damage values for the given + /// . + /// + /// The class to get the sum for. + /// The resulting amount of damage, if any. + /// + /// True if the class is supported in this container, false otherwise. + /// + public bool TryGetDamageClassSum(DamageClass @class, [NotNullWhen(true)] out int damage) + { + damage = 0; + + if (SupportsDamageClass(@class)) + { + foreach (var type in @class.ToTypes()) + { + damage += GetDamageValue(type); + } + + return true; + } + + return false; + } + + /// + /// Grabs the sum of damage values for the given . + /// + public int GetDamageClassSum(DamageClass damageClass) + { + var sum = 0; + + foreach (var type in damageClass.ToTypes()) + { + sum += GetDamageValue(type); + } + + return sum; + } + + /// + /// Attempts to change the damage value for the given + /// + /// + /// + /// True if successful, false if this container does not support that type. + /// + public bool TryChangeDamageValue(DamageType type, int delta) + { + var damageClass = type.ToClass(); + + if (SupportsDamageClass(damageClass)) + { + var current = _damageList[type]; + current = _damageList[type] = current + delta; + + if (_damageList[type] < 0) + { + _damageList[type] = 0; + delta = -current; + current = 0; + } + + var datum = new HealthChangeData(type, current, delta); + var data = new List {datum}; + + OnHealthChanged(data); + + return true; + } + + return false; + } + + /// + /// Changes the damage value for the given . + /// + /// The type of damage to change. + /// The amount to change it by. + /// + /// Whether or not to suppress the health change event. + /// + /// + /// True if successful, false if this container does not support that type. + /// + public bool ChangeDamageValue(DamageType type, int delta, bool quiet = false) + { + if (!_damageList.TryGetValue(type, out var current)) + { + return false; + } + + _damageList[type] = current + delta; + + if (_damageList[type] < 0) + { + _damageList[type] = 0; + delta = -current; + } + + current = _damageList[type]; + + var datum = new HealthChangeData(type, current, delta); + var data = new List {datum}; + + OnHealthChanged(data); + + return true; + } + + /// + /// Attempts to set the damage value for the given . + /// + /// + /// True if successful, false if this container does not support that type. + /// + public bool TrySetDamageValue(DamageType type, int newValue) + { + if (newValue < 0) + { + return false; + } + + var damageClass = type.ToClass(); + + if (SupportedClasses.Contains(damageClass)) + { + var old = _damageList[type] = newValue; + _damageList[type] = newValue; + + var delta = newValue - old; + var datum = new HealthChangeData(type, newValue, delta); + var data = new List {datum}; + + OnHealthChanged(data); + + return true; + } + + return false; + } + + /// + /// Tries to set the damage value for the given . + /// + /// The type of damage to set. + /// The value to set it to. + /// + /// Whether or not to suppress the health changed event. + /// + /// True if successful, false otherwise. + public bool SetDamageValue(DamageType type, int newValue, bool quiet = false) + { + if (newValue < 0) + { + return false; + } + + if (!_damageList.ContainsKey(type)) + { + return false; + } + + var old = _damageList[type]; + _damageList[type] = newValue; + + if (!quiet) + { + var delta = newValue - old; + var datum = new HealthChangeData(type, 0, delta); + var data = new List {datum}; + + OnHealthChanged(data); + } + + return true; + } + + public void Heal() + { + var data = new List(); + + foreach (var type in SupportedTypes) + { + var delta = -GetDamageValue(type); + var datum = new HealthChangeData(type, 0, delta); + + data.Add(datum); + SetDamageValue(type, 0, true); + } + + OnHealthChanged(data); + } + } +} diff --git a/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs b/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs new file mode 100644 index 0000000000..cde45fb999 --- /dev/null +++ b/Content.Shared/Damage/DamageContainer/DamageContainerPrototype.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.Damage.DamageContainer +{ + /// + /// Prototype for the DamageContainer class. + /// + [Prototype("damageContainer")] + [NetSerializable] + [Serializable] + public class DamageContainerPrototype : IPrototype, IIndexedPrototype + { + private List _activeDamageClasses; + private string _id; + + [ViewVariables] public List ActiveDamageClasses => _activeDamageClasses; + + [ViewVariables] public string ID => _id; + + public virtual void LoadFrom(YamlMappingNode mapping) + { + var serializer = YamlObjectSerializer.NewReader(mapping); + serializer.DataField(ref _id, "id", string.Empty); + serializer.DataField(ref _activeDamageClasses, "activeDamageClasses", new List()); + } + } +} diff --git a/Content.Shared/Damage/DamageType.cs b/Content.Shared/Damage/DamageType.cs new file mode 100644 index 0000000000..96cfb2eecb --- /dev/null +++ b/Content.Shared/Damage/DamageType.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Linq; +using Robust.Shared.Serialization; + +namespace Content.Shared.Damage +{ + [Serializable, NetSerializable] + public enum DamageType + { + Blunt, + Piercing, + Heat, + Disintegration, + Cellular, + DNA, + Asphyxiation + } + + public static class DamageTypeExtensions + { + // TODO: Automatically generate this + private static readonly ImmutableDictionary TypeToClass = + new Dictionary + { + {DamageType.Blunt, DamageClass.Brute}, + {DamageType.Piercing, DamageClass.Brute}, + {DamageType.Heat, DamageClass.Burn}, + {DamageType.Disintegration, DamageClass.Burn}, + {DamageType.Cellular, DamageClass.Toxin}, + {DamageType.DNA, DamageClass.Toxin}, + {DamageType.Asphyxiation, DamageClass.Airloss} + }.ToImmutableDictionary(); + + public static DamageClass ToClass(this DamageType type) + { + return TypeToClass[type]; + } + + public static Dictionary ToDictionary() + { + return Enum.GetValues(typeof(DamageType)) + .Cast() + .ToDictionary(type => type, type => 0); + } + + public static Dictionary ToClassDictionary(IReadOnlyDictionary types) + { + var classes = DamageClassExtensions.ToDictionary(); + + foreach (var @class in classes.Keys.ToList()) + foreach (var type in @class.ToTypes()) + { + if (!types.TryGetValue(type, out var damage)) + { + continue; + } + + classes[@class] += damage; + } + + return classes; + } + } +} diff --git a/Content.Shared/Damage/ResistanceSet/ResistanceSet.cs b/Content.Shared/Damage/ResistanceSet/ResistanceSet.cs new file mode 100644 index 0000000000..8aa29edf3d --- /dev/null +++ b/Content.Shared/Damage/ResistanceSet/ResistanceSet.cs @@ -0,0 +1,73 @@ +using System; +using System.Collections.Generic; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; + +namespace Content.Shared.Damage.ResistanceSet +{ + /// + /// Set of resistances used by damageable objects. Each DamageType has a multiplier and flat damage reduction value. + /// + [NetSerializable] + [Serializable] + public class ResistanceSet + { + [ViewVariables] + private Dictionary _resistances = + new Dictionary(); + + public ResistanceSet() + { + foreach (var damageType in (DamageType[]) Enum.GetValues(typeof(DamageType))) + { + _resistances.Add(damageType, new ResistanceSetSettings(1f, 0)); + } + } + + public ResistanceSet(ResistanceSetPrototype data) + { + _resistances = data.Resistances; + } + + /// + /// Adjusts input damage with the resistance set values. Only applies reduction if the amount is damage (positive), not + /// healing (negative). + /// + /// Type of damage. + /// Incoming amount of damage. + public int CalculateDamage(DamageType damageType, int amount) + { + if (amount > 0) //Only apply reduction if it's healing, not damage. + { + amount -= _resistances[damageType].FlatReduction; + + if (amount <= 0) + { + return 0; + } + } + + amount = (int) Math.Ceiling(amount * _resistances[damageType].Coefficient); + + return amount; + } + } + + /// + /// Settings for a specific damage type in a resistance set. Flat reduction is applied before the coefficient. + /// + [NetSerializable] + [Serializable] + public struct ResistanceSetSettings + { + [ViewVariables] public float Coefficient { get; private set; } + + [ViewVariables] public int FlatReduction { get; private set; } + + public ResistanceSetSettings(float coefficient, int flatReduction) + { + Coefficient = coefficient; + FlatReduction = flatReduction; + } + } +} diff --git a/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs b/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs new file mode 100644 index 0000000000..27ae9a0db7 --- /dev/null +++ b/Content.Shared/Damage/ResistanceSet/ResistanceSetPrototype.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; +using YamlDotNet.RepresentationModel; + +namespace Content.Shared.Damage.ResistanceSet +{ + /// + /// Prototype for the BodyPart class. + /// + [Prototype("resistanceSet")] + [NetSerializable] + [Serializable] + public class ResistanceSetPrototype : IPrototype, IIndexedPrototype + { + private Dictionary _coefficients; + private Dictionary _flatReductions; + private string _id; + + [ViewVariables] public Dictionary Coefficients => _coefficients; + + [ViewVariables] public Dictionary FlatReductions => _flatReductions; + + [ViewVariables] public Dictionary Resistances { get; private set; } + + [ViewVariables] public string ID => _id; + + public virtual void LoadFrom(YamlMappingNode mapping) + { + var serializer = YamlObjectSerializer.NewReader(mapping); + + serializer.DataField(ref _id, "id", string.Empty); + serializer.DataField(ref _coefficients, "coefficients", null); + serializer.DataField(ref _flatReductions, "flatReductions", null); + + Resistances = new Dictionary(); + foreach (var damageType in (DamageType[]) Enum.GetValues(typeof(DamageType))) + { + Resistances.Add(damageType, + new ResistanceSetSettings(_coefficients[damageType], _flatReductions[damageType])); + } + } + } +} diff --git a/Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs b/Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs new file mode 100644 index 0000000000..bc3ee631f2 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Body/IBodyManagerComponent.cs @@ -0,0 +1,9 @@ +using Content.Shared.GameObjects.Components.Damage; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Body +{ + public interface IBodyManagerComponent : IDamageableComponent + { + } +} diff --git a/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs b/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs new file mode 100644 index 0000000000..dcc3ae7dc5 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Body/SharedBodyManagerComponent.cs @@ -0,0 +1,120 @@ +using System; +using System.Collections.Generic; +using Content.Shared.GameObjects.Components.Damage; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Body +{ + public abstract class SharedBodyManagerComponent : DamageableComponent, IBodyManagerComponent + { + public override string Name => "BodyManager"; + + public override uint? NetID => ContentNetIDs.BODY_MANAGER; + + public override List SupportedDamageStates => new List {DamageState.Alive, DamageState.Critical, DamageState.Dead}; + + public override DamageState CurrentDamageState => + CurrentDamageState = TotalDamage > 200 + ? DamageState.Dead + : TotalDamage > 100 + ? DamageState.Critical + : DamageState.Alive; + } + + [Serializable, NetSerializable] + public sealed class BodyPartAddedMessage : ComponentMessage + { + public readonly string RSIPath; + public readonly string RSIState; + public readonly Enum RSIMap; + + public BodyPartAddedMessage(string rsiPath, string rsiState, Enum rsiMap) + { + Directed = true; + RSIPath = rsiPath; + RSIState = rsiState; + RSIMap = rsiMap; + } + } + + [Serializable, NetSerializable] + public sealed class BodyPartRemovedMessage : ComponentMessage + { + public readonly Enum RSIMap; + public readonly EntityUid? Dropped; + + public BodyPartRemovedMessage(Enum rsiMap, EntityUid? dropped = null) + { + Directed = true; + RSIMap = rsiMap; + Dropped = dropped; + } + } + + [Serializable, NetSerializable] + public sealed class MechanismSpriteAddedMessage : ComponentMessage + { + public readonly Enum RSIMap; + + public MechanismSpriteAddedMessage(Enum rsiMap) + { + Directed = true; + RSIMap = rsiMap; + } + } + + [Serializable, NetSerializable] + public sealed class MechanismSpriteRemovedMessage : ComponentMessage + { + public readonly Enum RSIMap; + + public MechanismSpriteRemovedMessage(Enum rsiMap) + { + Directed = true; + RSIMap = rsiMap; + } + } + + /// + /// Used to determine whether a BodyPart can connect to another BodyPart. + /// + [Serializable, NetSerializable] + public enum BodyPartCompatibility + { + Universal = 0, + Biological, + Mechanical + } + + /// + /// Each BodyPart has a BodyPartType used to determine a variety of things. + /// For instance, what slots it can fit into. + /// + [Serializable, NetSerializable] + public enum BodyPartType + { + Other = 0, + Torso, + Head, + Arm, + Hand, + Leg, + Foot + } + + /// + /// Defines a surgery operation that can be performed. + /// + [Serializable, NetSerializable] + public enum SurgeryType + { + None = 0, + Incision, + Retraction, + Cauterization, + VesselCompression, + Drilling, + Amputation + } +} diff --git a/Content.Shared/GameObjects/Components/Damage/DamageState.cs b/Content.Shared/GameObjects/Components/Damage/DamageState.cs new file mode 100644 index 0000000000..843c97be57 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Damage/DamageState.cs @@ -0,0 +1,20 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Damage +{ + // TODO: Fix summary + /// + /// Defines what state an with a + /// is in. + /// Not all states must be supported - for instance, the + /// only supports + /// and , + /// as inanimate objects don't go into crit. + /// + public enum DamageState + { + Alive, + Critical, + Dead + } +} diff --git a/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs b/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs index 13cf0b0e93..614bf90abd 100644 --- a/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs +++ b/Content.Shared/GameObjects/Components/Damage/DamageableComponent.cs @@ -1,40 +1,227 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; +using Content.Shared.Damage; +using Content.Shared.Damage.DamageContainer; +using Content.Shared.Damage.ResistanceSet; using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Prototypes; using Robust.Shared.Serialization; +using Robust.Shared.ViewVariables; namespace Content.Shared.GameObjects.Components.Damage { - public abstract class SharedDamageableComponent : Component + /// + /// Component that allows attached entities to take damage. + /// This basic version never dies (thus can take an indefinite amount of damage). + /// + [ComponentReference(typeof(IDamageableComponent))] + public class DamageableComponent : Component, IDamageableComponent { +#pragma warning disable 649 + [Dependency] private readonly IPrototypeManager _prototypeManager = default!; +#pragma warning restore 649 + public override string Name => "Damageable"; - public sealed override uint? NetID => ContentNetIDs.DAMAGEABLE; - } - // The IDs of the items get synced over the network. - [Serializable, NetSerializable] - public class DamageComponentState : ComponentState - { - public Dictionary CurrentDamage = new Dictionary(); + public event Action HealthChangedEvent = default!; - public DamageComponentState(Dictionary damage) : base(ContentNetIDs.DAMAGEABLE) + [ViewVariables] private ResistanceSet Resistance { get; set; } = default!; + + [ViewVariables] private DamageContainer Damage { get; set; } = default!; + + public virtual List SupportedDamageStates => new List {DamageState.Alive}; + + public virtual DamageState CurrentDamageState { get; protected set; } = DamageState.Alive; + + [ViewVariables] public int TotalDamage => Damage.TotalDamage; + + public IReadOnlyDictionary DamageClasses => Damage.DamageClasses; + + public IReadOnlyDictionary DamageTypes => Damage.DamageTypes; + + public override void ExposeData(ObjectSerializer serializer) { - CurrentDamage = damage; + base.ExposeData(serializer); + + if (serializer.Reading) + { + // Doesn't write to file, TODO? + // Yes, TODO + var containerId = "biologicalDamageContainer"; + var resistanceId = "defaultResistances"; + + serializer.DataField(ref containerId, "damageContainer", "biologicalDamageContainer"); + serializer.DataField(ref resistanceId, "resistances", "defaultResistances"); + + if (!_prototypeManager.TryIndex(containerId!, out DamageContainerPrototype damage)) + { + throw new InvalidOperationException( + $"No {nameof(DamageContainerPrototype)} found with name {containerId}"); + } + + Damage = new DamageContainer(OnHealthChanged, damage); + + if (!_prototypeManager.TryIndex(resistanceId!, out ResistanceSetPrototype resistance)) + { + throw new InvalidOperationException( + $"No {nameof(ResistanceSetPrototype)} found with name {resistanceId}"); + } + + Resistance = new ResistanceSet(resistance); + } + } + + public bool TryGetDamage(DamageType type, out int damage) + { + return Damage.TryGetDamageValue(type, out damage); + } + + public bool ChangeDamage(DamageType type, int amount, bool ignoreResistances, + IEntity? source = null, + HealthChangeParams? extraParams = null) + { + if (Damage.SupportsDamageType(type)) + { + var finalDamage = amount; + if (!ignoreResistances) + { + finalDamage = Resistance.CalculateDamage(type, amount); + } + + Damage.ChangeDamageValue(type, finalDamage); + + return true; + } + + return false; + } + + public bool ChangeDamage(DamageClass @class, int amount, bool ignoreResistances, + IEntity? source = null, + HealthChangeParams? extraParams = null) + { + if (Damage.SupportsDamageClass(@class)) + { + var types = @class.ToTypes(); + + if (amount < 0) + { + // Changing multiple types is a bit more complicated. Might be a better way (formula?) to do this, + // but essentially just loops between each damage category until all healing is used up. + var healingLeft = amount; + var healThisCycle = 1; + + // While we have healing left... + while (healingLeft > 0 && healThisCycle != 0) + { + // Infinite loop fallback, if no healing was done in a cycle + // then exit + healThisCycle = 0; + + int healPerType; + if (healingLeft > -types.Count && healingLeft < 0) + { + // Say we were to distribute 2 healing between 3 + // this will distribute 1 to each (and stop after 2 are given) + healPerType = -1; + } + else + { + // Say we were to distribute 62 healing between 3 + // this will distribute 20 to each, leaving 2 for next loop + healPerType = healingLeft / types.Count; + } + + foreach (var type in types) + { + var healAmount = + Math.Max(Math.Max(healPerType, -Damage.GetDamageValue(type)), + healingLeft); + + Damage.ChangeDamageValue(type, healAmount); + healThisCycle += healAmount; + healingLeft -= healAmount; + } + } + + return true; + } + + var damageLeft = amount; + + while (damageLeft > 0) + { + int damagePerType; + + if (damageLeft < types.Count && damageLeft > 0) + { + damagePerType = 1; + } + else + { + damagePerType = damageLeft / types.Count; + } + + foreach (var type in types) + { + var damageAmount = Math.Min(damagePerType, damageLeft); + Damage.ChangeDamageValue(type, damageAmount); + damageLeft -= damageAmount; + } + } + + return true; + } + + return false; + } + + public bool SetDamage(DamageType type, int newValue, IEntity? source = null, + HealthChangeParams? extraParams = null) + { + if (Damage.SupportsDamageType(type)) + { + Damage.SetDamageValue(type, newValue); + + return true; + } + + return false; + } + + public void Heal() + { + Damage.Heal(); + } + + public void ForceHealthChangedEvent() + { + var data = new List(); + + foreach (var type in Damage.SupportedTypes) + { + var damage = Damage.GetDamageValue(type); + var datum = new HealthChangeData(type, damage, 0); + data.Add(datum); + } + + OnHealthChanged(data); + } + + private void OnHealthChanged(List changes) + { + var args = new HealthChangedEventArgs(this, changes); + OnHealthChanged(args); + } + + protected virtual void OnHealthChanged(HealthChangedEventArgs e) + { + Owner.EntityManager.EventBus.RaiseEvent(EventSource.Local, e); + HealthChangedEvent?.Invoke(e); + Dirty(); } } - - /// - /// Damage types used in-game. - /// Total should never be used directly - it's a derived value. - /// - public enum DamageType - { - Total, - Brute, - Heat, - Cold, - Acid, - Toxic, - Electric - } } diff --git a/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs b/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs new file mode 100644 index 0000000000..f979d326c6 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Damage/IDamageableComponent.cs @@ -0,0 +1,223 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using Content.Shared.Damage; +using Content.Shared.GameObjects.Components.Body; +using Content.Shared.GameObjects.EntitySystems; +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Damage +{ + public interface IDamageableComponent : IComponent, IExAct + { + /// + /// Called when the entity's values change. + /// Of note is that a "deal 0 damage" call will still trigger this event + /// (including both damage negated by resistance or simply inputting 0 as + /// the amount of damage to deal). + /// + event Action HealthChangedEvent; + + /// + /// List of all DamageStates that + /// can be. + /// + List SupportedDamageStates { get; } + + /// + /// The currently representing this component. + /// + DamageState CurrentDamageState { get; } + + /// + /// Sum of all damages taken. + /// + int TotalDamage { get; } + + /// + /// The amount of damage mapped by . + /// + IReadOnlyDictionary DamageClasses { get; } + + /// + /// The amount of damage mapped by . + /// + IReadOnlyDictionary DamageTypes { get; } + + /// + /// Gets the amount of damage of a type. + /// + /// The type to get the damage of. + /// The amount of damage of that type. + /// + /// True if the given is supported, false otherwise. + /// + bool TryGetDamage(DamageType type, [NotNullWhen(true)] out int damage); + + /// + /// Changes the specified , applying + /// resistance values only if it is damage. + /// + /// Type of damage being changed. + /// + /// Amount of damage being received (positive for damage, negative for heals). + /// + /// + /// Whether or not to ignore resistances. + /// Healing always ignores resistances, regardless of this input. + /// + /// + /// The entity that dealt or healed the damage, if any. + /// + /// + /// Extra parameters that some components may require, such as a specific limb to target. + /// + /// + /// False if the given type is not supported or improper + /// were provided; true otherwise. + /// + bool ChangeDamage(DamageType type, int amount, bool ignoreResistances, IEntity? source = null, + HealthChangeParams? extraParams = null); + + /// + /// Changes the specified , applying + /// resistance values only if it is damage. + /// Spreads amount evenly between the s + /// represented by that class. + /// + /// Class of damage being changed. + /// + /// Amount of damage being received (positive for damage, negative for heals). + /// + /// + /// Whether to ignore resistances. + /// Healing always ignores resistances, regardless of this input. + /// + /// Entity that dealt or healed the damage, if any. + /// + /// Extra parameters that some components may require, + /// such as a specific limb to target. + /// + /// + /// Returns false if the given class is not supported or improper + /// were provided; true otherwise. + /// + bool ChangeDamage(DamageClass @class, int amount, bool ignoreResistances, IEntity? source = null, + HealthChangeParams? extraParams = null); + + /// + /// Forcefully sets the specified to the given + /// value, ignoring resistance values. + /// + /// Type of damage being changed. + /// New damage value to be set. + /// Entity that set the new damage value. + /// + /// Extra parameters that some components may require, + /// such as a specific limb to target. + /// + /// + /// Returns false if the given type is not supported or improper + /// were provided; true otherwise. + /// + bool SetDamage(DamageType type, int newValue, IEntity? source = null, HealthChangeParams? extraParams = null); + + /// + /// Sets all damage values to zero. + /// + void Heal(); + + /// + /// Invokes the HealthChangedEvent with the current values of health. + /// + void ForceHealthChangedEvent(); + + void IExAct.OnExplosion(ExplosionEventArgs eventArgs) + { + var damage = eventArgs.Severity switch + { + ExplosionSeverity.Light => 20, + ExplosionSeverity.Heavy => 60, + ExplosionSeverity.Destruction => 250, + _ => throw new ArgumentOutOfRangeException() + }; + + ChangeDamage(DamageType.Piercing, damage, false, null); + ChangeDamage(DamageType.Heat, damage, false, null); + } + } + + /// + /// Data class with information on how to damage a + /// . + /// While not necessary to damage for all instances, classes such as + /// may require it for extra data + /// (such as selecting which limb to target). + /// + public class HealthChangeParams : EventArgs + { + } + + /// + /// Data class with information on how the + /// values of a have changed. + /// + public class HealthChangedEventArgs : EventArgs + { + /// + /// Reference to the that invoked the event. + /// + public readonly IDamageableComponent Damageable; + + /// + /// List containing data on each that was changed. + /// + public readonly List Data; + + public HealthChangedEventArgs(IDamageableComponent damageable, List data) + { + Damageable = damageable; + Data = data; + } + + public HealthChangedEventArgs(IDamageableComponent damageable, DamageType type, int newValue, int delta) + { + Damageable = damageable; + + var datum = new HealthChangeData(type, newValue, delta); + var data = new List {datum}; + + Data = data; + } + } + + /// + /// Data class with information on how the value of a + /// single has changed. + /// + public struct HealthChangeData + { + /// + /// Type of damage that changed. + /// + public DamageType Type; + + /// + /// The new current value for that damage. + /// + public int NewValue; + + /// + /// How much the health value changed from its last value (negative is heals, positive is damage). + /// + public int Delta; + + public HealthChangeData(DamageType type, int newValue, int delta) + { + Type = type; + NewValue = newValue; + Delta = delta; + } + } +} diff --git a/Content.Shared/GameObjects/Components/Damage/IOnHealthChangedBehavior.cs b/Content.Shared/GameObjects/Components/Damage/IOnHealthChangedBehavior.cs new file mode 100644 index 0000000000..64d31971c9 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Damage/IOnHealthChangedBehavior.cs @@ -0,0 +1,22 @@ +using Robust.Shared.Interfaces.GameObjects; + +namespace Content.Shared.GameObjects.Components.Damage +{ + // TODO + /// + /// Component interface that gets triggered after the values of a + /// on the same change. + /// + public interface IOnHealthChangedBehavior + { + /// + /// Called when the entity's + /// is healed or hurt. + /// Of note is that a "deal 0 damage" call will still trigger + /// this function (including both damage negated by resistance or + /// simply inputting 0 as the amount of damage to deal). + /// + /// Details of how the health changed. + public void OnHealthChanged(HealthChangedEventArgs e); + } +} diff --git a/Content.Shared/GameObjects/Components/Medical/SharedMedicalScannerComponent.cs b/Content.Shared/GameObjects/Components/Medical/SharedMedicalScannerComponent.cs index ee0a4f029a..8573a50c63 100644 --- a/Content.Shared/GameObjects/Components/Medical/SharedMedicalScannerComponent.cs +++ b/Content.Shared/GameObjects/Components/Medical/SharedMedicalScannerComponent.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Content.Shared.Damage; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components.UserInterface; using Robust.Shared.Serialization; @@ -13,18 +14,23 @@ namespace Content.Shared.GameObjects.Components.Medical [Serializable, NetSerializable] public class MedicalScannerBoundUserInterfaceState : BoundUserInterfaceState { - public readonly int CurrentHealth; - public readonly int MaxHealth; - public readonly Dictionary DamageDictionary; + public readonly EntityUid? Entity; + public readonly Dictionary DamageClasses; + public readonly Dictionary DamageTypes; public MedicalScannerBoundUserInterfaceState( - int currentHealth, - int maxHealth, - Dictionary damageDictionary) + EntityUid? entity, + Dictionary damageClasses, + Dictionary damageTypes) { - CurrentHealth = currentHealth; - MaxHealth = maxHealth; - DamageDictionary = damageDictionary; + Entity = entity; + DamageClasses = damageClasses; + DamageTypes = damageTypes; + } + + public bool HasDamage() + { + return DamageClasses.Count > 0 || DamageTypes.Count > 0; } } diff --git a/Content.Shared/GameObjects/Components/Mobs/SharedSpeciesComponent.cs b/Content.Shared/GameObjects/Components/Mobs/SharedSpeciesComponent.cs deleted file mode 100644 index 0f23bbda31..0000000000 --- a/Content.Shared/GameObjects/Components/Mobs/SharedSpeciesComponent.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using Robust.Shared.GameObjects; -using Robust.Shared.Serialization; - -namespace Content.Shared.GameObjects.Components.Mobs -{ - public abstract class SharedSpeciesComponent : Component - { - public sealed override string Name => "Species"; - - [Serializable, NetSerializable] - public enum MobVisuals - { - RotationState - } - - [Serializable, NetSerializable] - public enum MobState - { - /// - /// Mob is standing up - /// - Standing, - - /// - /// Mob is laying down - /// - Down, - } - } -} diff --git a/Content.Shared/GameObjects/Components/Movement/MovementSpeedModifierComponent.cs b/Content.Shared/GameObjects/Components/Movement/MovementSpeedModifierComponent.cs index cdc70f8435..dd9a1e391a 100644 --- a/Content.Shared/GameObjects/Components/Movement/MovementSpeedModifierComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/MovementSpeedModifierComponent.cs @@ -1,4 +1,4 @@ -using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -10,6 +10,7 @@ namespace Content.Shared.GameObjects.Components.Movement public const float DefaultBaseWalkSpeed = 4.0f; public const float DefaultBaseSprintSpeed = 7.0f; + public override string Name => "MovementSpeedModifier"; private float _cachedWalkSpeedModifier = 1.0f; diff --git a/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs b/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs index 9c74d666bc..6d47299c4d 100644 --- a/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs +++ b/Content.Shared/GameObjects/Components/Movement/SharedPlayerInputMoverComponent.cs @@ -1,6 +1,8 @@ #nullable enable using System; +using Content.Shared.GameObjects.Components.Body; using Content.Shared.GameObjects.Components.Mobs; +using Content.Shared.GameObjects.Components.Rotation; using Robust.Shared.GameObjects; using Robust.Shared.GameObjects.Components; using Robust.Shared.Interfaces.Configuration; @@ -268,7 +270,7 @@ namespace Content.Shared.GameObjects.Components.Movement bool ICollideSpecial.PreventCollide(IPhysBody collidedWith) { // Don't collide with other mobs - return collidedWith.Entity.HasComponent(); + return collidedWith.Entity.HasComponent(); } [Serializable, NetSerializable] diff --git a/Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs b/Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs new file mode 100644 index 0000000000..150ed62a30 --- /dev/null +++ b/Content.Shared/GameObjects/Components/Rotation/RotationComponent.cs @@ -0,0 +1,26 @@ +using System; +using Robust.Shared.GameObjects; +using Robust.Shared.Serialization; + +namespace Content.Shared.GameObjects.Components.Rotation +{ + [Serializable, NetSerializable] + public enum RotationVisuals + { + RotationState + } + + [Serializable, NetSerializable] + public enum RotationState + { + /// + /// Standing up + /// + Vertical, + + /// + /// Laying down + /// + Horizontal, + } +} diff --git a/Content.Shared/GameObjects/ContentNetIDs.cs b/Content.Shared/GameObjects/ContentNetIDs.cs index 9ecd4a918b..337a543627 100644 --- a/Content.Shared/GameObjects/ContentNetIDs.cs +++ b/Content.Shared/GameObjects/ContentNetIDs.cs @@ -3,7 +3,7 @@ // Starting from 1000 to avoid crossover with engine. public static class ContentNetIDs { - public const uint DAMAGEABLE = 1000; + // 1000 public const uint DESTRUCTIBLE = 1001; public const uint MAGAZINE_BARREL = 1002; public const uint HANDS = 1003; @@ -64,6 +64,7 @@ public const uint GAS_ANALYZER = 1057; public const uint DO_AFTER = 1058; public const uint RADIATION_PULSE = 1059; + public const uint BODY_MANAGER = 1060; // Net IDs for integration tests. public const uint PREDICTION_TEST = 10001; diff --git a/Content.Server/GameObjects/EntitySystems/ActSystem.cs b/Content.Shared/GameObjects/EntitySystems/ActSystem.cs similarity index 98% rename from Content.Server/GameObjects/EntitySystems/ActSystem.cs rename to Content.Shared/GameObjects/EntitySystems/ActSystem.cs index 56be8389ea..a5e6aea7e7 100644 --- a/Content.Server/GameObjects/EntitySystems/ActSystem.cs +++ b/Content.Shared/GameObjects/EntitySystems/ActSystem.cs @@ -5,7 +5,7 @@ using Robust.Shared.GameObjects.Systems; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Map; -namespace Content.Server.GameObjects.EntitySystems +namespace Content.Shared.GameObjects.EntitySystems { /// private const int SpeechBubbleCap = 4; + /// + /// The max amount of characters an entity can send in one message + /// + private int _maxMessageLength = 1000; + private const char ConCmdSlash = '/'; private const char OOCAlias = '['; private const char MeAlias = '@'; @@ -89,11 +98,15 @@ namespace Content.Client.Chat public void Initialize() { _netManager.RegisterNetMessage(MsgChatMessage.NAME, _onChatMessage); + _netManager.RegisterNetMessage(ChatMaxMsgLengthMessage.NAME, _onMaxLengthReceived); _speechBubbleRoot = new LayoutContainer(); LayoutContainer.SetAnchorPreset(_speechBubbleRoot, LayoutContainer.LayoutPreset.Wide); _userInterfaceManager.StateRoot.AddChild(_speechBubbleRoot); _speechBubbleRoot.SetPositionFirst(); + + // When connexion is achieved, request the max chat message length + _netManager.Connected += new EventHandler(RequestMaxLength); } public void FrameUpdate(FrameEventArgs delta) @@ -213,6 +226,15 @@ namespace Content.Client.Chat if (string.IsNullOrWhiteSpace(text)) return; + // Check if message is longer than the character limit + if (text.Length > _maxMessageLength) + { + string locWarning = Loc.GetString("Your message exceeds {0} character limit", _maxMessageLength); + _currentChatBox?.AddLine(locWarning, ChatChannel.Server, Color.Orange); + _currentChatBox.ClearOnEnter = false; // The text shouldn't be cleared if it hasn't been sent + return; + } + switch (text[0]) { case ConCmdSlash: @@ -345,6 +367,17 @@ namespace Content.Client.Chat } } + private void _onMaxLengthReceived(ChatMaxMsgLengthMessage msg) + { + _maxMessageLength = msg.MaxMessageLength; + } + + private void RequestMaxLength(object sender, NetChannelArgs args) + { + ChatMaxMsgLengthMessage msg = _netManager.CreateNetMessage(); + _netManager.ClientSendMessage(msg); + } + private void AddSpeechBubble(MsgChatMessage msg, SpeechBubble.SpeechType speechType) { if (!_entityManager.TryGetEntity(msg.SenderEntity, out var entity)) diff --git a/Content.Server/Chat/ChatManager.cs b/Content.Server/Chat/ChatManager.cs index 1a035fbb5c..a6e0296b04 100644 --- a/Content.Server/Chat/ChatManager.cs +++ b/Content.Server/Chat/ChatManager.cs @@ -5,7 +5,9 @@ using Content.Server.Interfaces; using Content.Server.Interfaces.Chat; using Content.Shared.Chat; using Content.Shared.GameObjects.EntitySystems; +using NFluidsynth; using Robust.Server.Console; +using Robust.Server.Interfaces.GameObjects; using Robust.Server.Interfaces.Player; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; @@ -19,8 +21,18 @@ namespace Content.Server.Chat /// /// This interface gives components behavior on getting destoyed. @@ -100,6 +100,7 @@ namespace Content.Server.GameObjects.EntitySystems } } } + public enum ExplosionSeverity { Light, diff --git a/Content.Shared/GameObjects/EntitySystems/ActionBlockerSystem.cs b/Content.Shared/GameObjects/EntitySystems/ActionBlockerSystem.cs index b5e1b50281..c06963d53f 100644 --- a/Content.Shared/GameObjects/EntitySystems/ActionBlockerSystem.cs +++ b/Content.Shared/GameObjects/EntitySystems/ActionBlockerSystem.cs @@ -26,8 +26,11 @@ namespace Content.Shared.GameObjects.EntitySystems bool CanEmote() => true; bool CanAttack() => true; + bool CanEquip() => true; + bool CanUnequip() => true; + bool CanChangeDirection() => true; } diff --git a/Content.Shared/Health/BodySystem/BodyPart/BodyPartProperties/ArmLength.cs b/Content.Shared/Health/BodySystem/BodyPart/BodyPartProperties/ArmLength.cs deleted file mode 100644 index 617bd45050..0000000000 --- a/Content.Shared/Health/BodySystem/BodyPart/BodyPartProperties/ArmLength.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using Robust.Shared.Interfaces.Serialization; -using Robust.Shared.Serialization; - -namespace Content.Shared.Health.BodySystem.BodyPart.BodyPartProperties { - - [NetSerializable, Serializable] - class ArmLength : IExposeData { - private float _length; - - public void ExposeData(ObjectSerializer serializer){ - serializer.DataField(ref _length, "length", 2f); - } - } -} diff --git a/Content.Shared/Health/BodySystem/BodyPart/BodyPartPrototype.cs b/Content.Shared/Health/BodySystem/BodyPart/BodyPartPrototype.cs deleted file mode 100644 index d400501f6d..0000000000 --- a/Content.Shared/Health/BodySystem/BodyPart/BodyPartPrototype.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Collections.Generic; -using Robust.Shared.Interfaces.Serialization; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; -using YamlDotNet.RepresentationModel; - -namespace Content.Shared.Health.BodySystem.BodyPart { - - - /// - /// Prototype for the BodyPart class. - /// - [Prototype("bodyPart")] - [NetSerializable, Serializable] - public class BodyPartPrototype : IPrototype, IIndexedPrototype { - private string _id; - private string _name; - private string _plural; - private string _rsiPath; - private string _rsiState; - private BodyPartType _partType; - private int _durability; - private int _destroyThreshold; - private float _resistance; - private int _size; - private BodyPartCompatibility _compatibility; - private string _surgeryDataName; - private List _properties; - private List _mechanisms; - - [ViewVariables] - public string ID => _id; - - [ViewVariables] - public string Name => _name; - - [ViewVariables] - public string Plural => _plural; - - [ViewVariables] - public string RSIPath => _rsiPath; - - [ViewVariables] - public string RSIState => _rsiState; - - [ViewVariables] - public BodyPartType PartType => _partType; - - [ViewVariables] - public int Durability => _durability; - - [ViewVariables] - public int DestroyThreshold => _destroyThreshold; - - [ViewVariables] - public float Resistance => _resistance; - - [ViewVariables] - public int Size => _size; - - [ViewVariables] - public BodyPartCompatibility Compatibility => _compatibility; - - [ViewVariables] - public string SurgeryDataName => _surgeryDataName; - - [ViewVariables] - public List Properties => _properties; - - [ViewVariables] - public List Mechanisms => _mechanisms; - - public virtual void LoadFrom(YamlMappingNode mapping){ - var serializer = YamlObjectSerializer.NewReader(mapping); - - serializer.DataField(ref _name, "name", string.Empty); - serializer.DataField(ref _id, "id", string.Empty); - serializer.DataField(ref _plural, "plural", string.Empty); - serializer.DataField(ref _rsiPath, "rsiPath", string.Empty); - serializer.DataField(ref _rsiState, "rsiState", string.Empty); - serializer.DataField(ref _partType, "partType", BodyPartType.Other); - serializer.DataField(ref _surgeryDataName, "surgeryDataType", "BiologicalSurgeryData"); - serializer.DataField(ref _durability, "durability", 50); - serializer.DataField(ref _destroyThreshold, "destroyThreshold", -50); - serializer.DataField(ref _resistance, "resistance", 0f); - serializer.DataField(ref _size, "size", 0); - serializer.DataField(ref _compatibility, "compatibility", BodyPartCompatibility.Universal); - serializer.DataField(ref _properties, "properties", new List()); - serializer.DataField(ref _mechanisms, "mechanisms", new List()); - } - } -} diff --git a/Content.Shared/Health/BodySystem/BodyTemplate/BodyTemplatePrototype.cs b/Content.Shared/Health/BodySystem/BodyTemplate/BodyTemplatePrototype.cs deleted file mode 100644 index 50ac37c065..0000000000 --- a/Content.Shared/Health/BodySystem/BodyTemplate/BodyTemplatePrototype.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using Robust.Shared.Prototypes; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; -using YamlDotNet.RepresentationModel; - -namespace Content.Shared.Health.BodySystem.BodyTemplate { - - /// - /// Prototype for the BodyTemplate class. - /// - [Prototype("bodyTemplate")] - [NetSerializable, Serializable] - public class BodyTemplatePrototype : IPrototype, IIndexedPrototype { - private string _id; - private string _name; - private string _centerSlot; - private Dictionary _slots; - private Dictionary> _connections; - - [ViewVariables] - public string ID => _id; - - [ViewVariables] - public string Name => _name; - - [ViewVariables] - public string CenterSlot => _centerSlot; - - [ViewVariables] - public Dictionary Slots => _slots; - - [ViewVariables] - public Dictionary> Connections => _connections; - - public virtual void LoadFrom(YamlMappingNode mapping){ - var serializer = YamlObjectSerializer.NewReader(mapping); - serializer.DataField(ref _name, "name", string.Empty); - serializer.DataField(ref _id, "id", string.Empty); - serializer.DataField(ref _centerSlot, "centerSlot", string.Empty); - serializer.DataField(ref _slots, "slots", new Dictionary()); - serializer.DataField(ref _connections, "connections", new Dictionary>()); - - - //Our prototypes don't force the user to define a BodyPart connection twice. E.g. Head: Torso v.s. Torso: Head. - //The user only has to do one. We want it to be that way in the code, though, so this cleans that up. - Dictionary> cleanedConnections = new Dictionary>(); - foreach (var (targetSlotName, slotType) in _slots) - { - List tempConnections = new List(); - foreach (var (slotName, slotConnections) in _connections) - { - if (slotName == targetSlotName){ - foreach (string connection in slotConnections) { - if (!tempConnections.Contains(connection)) - tempConnections.Add(connection); - } - } - else if (slotConnections.Contains(targetSlotName)) - { - tempConnections.Add(slotName); - } - } - if(tempConnections.Count > 0) - cleanedConnections.Add(targetSlotName, tempConnections); - } - _connections = cleanedConnections; - } - } -} diff --git a/Content.Shared/Health/BodySystem/BodysystemValues.cs b/Content.Shared/Health/BodySystem/BodysystemValues.cs deleted file mode 100644 index ce16122f8d..0000000000 --- a/Content.Shared/Health/BodySystem/BodysystemValues.cs +++ /dev/null @@ -1,20 +0,0 @@ - -namespace Content.Shared.Health.BodySystem -{ - /// - /// Used to determine whether a BodyPart can connect to another BodyPart. - /// - public enum BodyPartCompatibility { Universal, Biological, Mechanical }; - - /// - /// Each BodyPart has a BodyPartType used to determine a variety of things - for instance, what slots it can fit into. - /// - public enum BodyPartType { Other, Torso, Head, Arm, Hand, Leg, Foot }; - - /// - /// Defines a surgery operation that can be performed. - /// - public enum SurgeryType { Incision, Retraction, Cauterization, VesselCompression, Drilling, Amputation } - - -} diff --git a/Content.Shared/Health/DamageContainer/AbstractDamageContainer.cs b/Content.Shared/Health/DamageContainer/AbstractDamageContainer.cs deleted file mode 100644 index fb146adf46..0000000000 --- a/Content.Shared/Health/DamageContainer/AbstractDamageContainer.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Robust.Shared.Serialization; -using Robust.Shared.ViewVariables; - -namespace Content.Shared.Health.DamageContainer -{ - public enum DamageClass { Brute, Burn, Toxin, Airloss } - public enum DamageType { Blunt, Piercing, Heat, Disintegration, Cellular, DNA, Airloss } - - public static class DamageContainerValues - { - public static readonly Dictionary> DamageClassToType = new Dictionary> - { - { DamageClass.Brute, new List{ DamageType.Blunt, DamageType.Piercing }}, - { DamageClass.Burn, new List{ DamageType.Heat, DamageType.Disintegration }}, - { DamageClass.Toxin, new List{ DamageType.Cellular, DamageType.DNA}}, - { DamageClass.Airloss, new List{ DamageType.Airloss }} - }; - - //TODO: autogenerate this lol - public static readonly Dictionary DamageTypeToClass = new Dictionary - { - { DamageType.Blunt, DamageClass.Brute }, - { DamageType.Piercing, DamageClass.Brute }, - { DamageType.Heat, DamageClass.Burn }, - { DamageType.Disintegration, DamageClass.Burn }, - { DamageType.Cellular, DamageClass.Toxin }, - { DamageType.DNA, DamageClass.Toxin }, - { DamageType.Airloss, DamageClass.Airloss } - }; - } - - /// - /// Abstract class for all damage container classes. - /// - [NetSerializable, Serializable] - public abstract class AbstractDamageContainer - { - [ViewVariables] - abstract public List SupportedDamageClasses { get; } - - private Dictionary _damageList = new Dictionary(); - [ViewVariables] - public Dictionary DamageList => _damageList; - - /// - /// Sum of all damages kept on record. - /// - [ViewVariables] - public int Damage - { - get - { - return _damageList.Sum(x => x.Value); - } - } - - public AbstractDamageContainer() - { - foreach(DamageClass damageClass in SupportedDamageClasses){ - DamageContainerValues.DamageClassToType.TryGetValue(damageClass, out List childrenDamageTypes); - foreach (DamageType damageType in childrenDamageTypes) - { - _damageList.Add(damageType, 0); - } - } - } - - - - /// - /// Attempts to grab the damage value for the given DamageType - returns false if the container does not support that type. - /// - public bool TryGetDamageValue(DamageType type, out int damage) - { - return _damageList.TryGetValue(type, out damage); - } - - /// - /// Attempts to set the damage value for the given DamageType - returns false if the container does not support that type. - /// - public bool TrySetDamageValue(DamageType type, int target) - { - DamageContainerValues.DamageTypeToClass.TryGetValue(type, out DamageClass classType); - if (SupportedDamageClasses.Contains(classType)) - { - _damageList[type] = target; - return true; - } - return false; - } - - /// - /// Attempts to change the damage value for the given DamageType - returns false if the container does not support that type. - /// - public bool TryChangeDamageValue(DamageType type, int delta) - { - DamageContainerValues.DamageTypeToClass.TryGetValue(type, out DamageClass classType); - if (SupportedDamageClasses.Contains(classType)) - { - _damageList[type] = _damageList[type] + delta; - return true; - } - return false; - } - } -} diff --git a/Content.Shared/Health/DamageContainer/BiologicalDamageContainer.cs b/Content.Shared/Health/DamageContainer/BiologicalDamageContainer.cs deleted file mode 100644 index e2b26b04e5..0000000000 --- a/Content.Shared/Health/DamageContainer/BiologicalDamageContainer.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using Robust.Shared.Serialization; - -namespace Content.Shared.Health.DamageContainer -{ - [NetSerializable, Serializable] - public class BiologicalDamageContainer : AbstractDamageContainer - { - public override List SupportedDamageClasses { - get { return new List { DamageClass.Brute, DamageClass.Burn, DamageClass.Toxin, DamageClass.Airloss }; } - } - } -} - diff --git a/Content.Shared/Preferences/Appearance/HumanoidCharacterAppearance.cs b/Content.Shared/Preferences/Appearance/HumanoidCharacterAppearance.cs index 265803fb5e..72b53675c1 100644 --- a/Content.Shared/Preferences/Appearance/HumanoidCharacterAppearance.cs +++ b/Content.Shared/Preferences/Appearance/HumanoidCharacterAppearance.cs @@ -1,17 +1,24 @@ +using System; +using Robust.Shared.Serialization; + namespace Content.Shared.Preferences.Appearance { + [Serializable, NetSerializable] public enum HumanoidVisualLayers { Hair, FacialHair, Chest, Head, + Eyes, RArm, LArm, RHand, LHand, RLeg, LLeg, + RFoot, + LFoot, StencilMask } } diff --git a/Content.Tests/Shared/BodyTemplateTest.cs b/Content.Tests/Shared/BodySystem/BodyTemplateTest.cs similarity index 80% rename from Content.Tests/Shared/BodyTemplateTest.cs rename to Content.Tests/Shared/BodySystem/BodyTemplateTest.cs index 87b3455989..df0240b8d4 100644 --- a/Content.Tests/Shared/BodyTemplateTest.cs +++ b/Content.Tests/Shared/BodySystem/BodyTemplateTest.cs @@ -1,23 +1,22 @@ using System.Collections.Generic; -using Content.Server.Health.BodySystem.BodyTemplate; -using Content.Shared.Health.BodySystem; +using Content.Server.Body; +using Content.Shared.GameObjects.Components.Body; using NUnit.Framework; using Robust.UnitTesting; -namespace Content.Tests.Shared +namespace Content.Tests.Shared.BodySystem { [TestFixture, Parallelizable, TestOf(typeof(BodyTemplate))] public class BodyTemplateTest : RobustUnitTest { [Test] - public void CheckBodyTemplateHashingWorks() + public void BodyTemplateHashCodeTest() { - - BodyTemplate a = new BodyTemplate(); - BodyTemplate b = new BodyTemplate(); - BodyTemplate c = new BodyTemplate(); - BodyTemplate d = new BodyTemplate(); - BodyTemplate e = new BodyTemplate(); + var a = new BodyTemplate(); + var b = new BodyTemplate(); + var c = new BodyTemplate(); + var d = new BodyTemplate(); + var e = new BodyTemplate(); a.Slots.Add("torso", BodyPartType.Torso); a.Slots.Add("left arm", BodyPartType.Arm); diff --git a/Resources/Groups/groups.yml b/Resources/Groups/groups.yml index 1cf921b5f8..ea45d9a588 100644 --- a/Resources/Groups/groups.yml +++ b/Resources/Groups/groups.yml @@ -95,6 +95,7 @@ - tubeconnections - tilewalls - events + - destroymechanism CanViewVar: true CanAdminPlace: true @@ -184,6 +185,7 @@ - setatmostemp - tilewalls - events + - destroymechanism CanViewVar: true CanAdminPlace: true CanScript: true diff --git a/Resources/Prototypes/BodySystem/Mechanisms/basic_human_organs.yml b/Resources/Prototypes/Body/Mechanisms/basic_human_organs.yml similarity index 58% rename from Resources/Prototypes/BodySystem/Mechanisms/basic_human_organs.yml rename to Resources/Prototypes/Body/Mechanisms/basic_human_organs.yml index 86a6df972f..49a4c025ce 100644 --- a/Resources/Prototypes/BodySystem/Mechanisms/basic_human_organs.yml +++ b/Resources/Prototypes/Body/Mechanisms/basic_human_organs.yml @@ -4,32 +4,33 @@ name: "human heart (debug)" components: - type: Sprite - sprite: Mobs/Parts/organs_human.rsi - state: heart_human + sprite: Mobs/Species/Human/organs.rsi + state: heart-on - type: Icon - sprite: Mobs/Parts/organs_human.rsi - state: heart_human + sprite: Mobs/Species/Human/organs.rsi + state: heart-on - type: DroppedMechanism debugLoadMechanismData: mechanism.Heart.BasicHuman - - - + behaviors: + - Content.Server.Body.Mechanisms.Behaviors.HeartBehavior - type: mechanism id: mechanism.Brain.BasicHuman name: "human brain" - rsiPath: Mobs/Parts/organs_human.rsi + rsiPath: Mobs/Species/Human/organs.rsi rsiState: "brain_human" description: "The source of incredible, unending intelligence. Honk." durability: 10 size: 1 compatibility: Biological + behaviors: + - Content.Server.Body.Mechanisms.Behaviors.BrainBehavior - type: mechanism id: mechanism.Eyes.BasicHuman name: "human eyes" - rsiPath: Mobs/Parts/organs_human.rsi - rsiState: "eyes_human" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "eyeballs" description: "Ocular organ capable of turning light into a colorful visual." durability: 10 size: 1 @@ -38,28 +39,44 @@ - type: mechanism id: mechanism.Heart.BasicHuman name: "human heart" - rsiPath: Mobs/Parts/organs_human.rsi - rsiState: "heart_human" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "heart-on" description: "Pumps blood throughout a body. Essential for any entity with blood." durability: 10 size: 1 compatibility: Biological + behaviors: + - Content.Server.Body.Mechanisms.Behaviors.HeartBehavior - type: mechanism id: mechanism.Lungs.BasicHuman name: "human lungs" - rsiPath: Mobs/Parts/organs_human.rsi - rsiState: "lungs_human" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "lungs" description: "Filters oxygen from an atmosphere, which is then sent into the bloodstream to be used as an electron carrier." durability: 13 size: 1 compatibility: Biological + behaviors: + - Content.Server.Body.Mechanisms.Behaviors.LungBehavior + +- type: mechanism + id: mechanism.Stomach.BasicHuman + name: "human stomach" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "stomach" + description: "Gross. This is hard to stomach." + durability: 13 + size: 1 + compatibility: Biological + behaviors: + - Content.Server.Body.Mechanisms.Behaviors.StomachBehavior - type: mechanism id: mechanism.Liver.BasicHuman name: "human liver" - rsiPath: Mobs/Parts/organs_human.rsi - rsiState: "liver_human" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "liver" description: "Filters impurities out of a bloodstream and provides other important functionality to a human." durability: 15 size: 1 @@ -68,8 +85,8 @@ - type: mechanism id: mechanism.Kidneys.BasicHuman name: "human kidneys" - rsiPath: Mobs/Parts/organs_human.rsi - rsiState: "kidneys_human" + rsiPath: Mobs/Species/Human/organs.rsi + rsiState: "kidneys" description: "Filters toxins out of a bloodstream." durability: 20 size: 1 diff --git a/Resources/Prototypes/BodySystem/Mechanisms/basic_tests.yml b/Resources/Prototypes/Body/Mechanisms/basic_tests.yml similarity index 95% rename from Resources/Prototypes/BodySystem/Mechanisms/basic_tests.yml rename to Resources/Prototypes/Body/Mechanisms/basic_tests.yml index 4114a322f6..2c591bbfcd 100644 --- a/Resources/Prototypes/BodySystem/Mechanisms/basic_tests.yml +++ b/Resources/Prototypes/Body/Mechanisms/basic_tests.yml @@ -6,9 +6,8 @@ size: 4 compatibility: Universal implantableParts: - - Arm - - Hand - + - Arm + - Hand - type: mechanism id: mechanism.HonkModule @@ -17,4 +16,3 @@ durability: 50 size: 3 compatibility: Universal - diff --git a/Resources/Prototypes/Body/Parts/humanoid_parts.yml b/Resources/Prototypes/Body/Parts/humanoid_parts.yml new file mode 100644 index 0000000000..5437b3e6a3 --- /dev/null +++ b/Resources/Prototypes/Body/Parts/humanoid_parts.yml @@ -0,0 +1,192 @@ +- type: bodyPart + id: bodyPart.Torso.BasicHuman + name: "human torso" + plural: "human torsos" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: "torso_m" + partType: Torso + durability: 100 + destroyThreshold: -150 + size: 14 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + mechanisms: + - mechanism.Heart.BasicHuman + - mechanism.Lungs.BasicHuman + - mechanism.Stomach.BasicHuman + - mechanism.Liver.BasicHuman + - mechanism.Kidneys.BasicHuman + +- type: bodyPart + id: bodyPart.Head.BasicHuman + name: "human head" + plural: "human heads" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: head_m + partType: Head + durability: 50 + destroyThreshold: -120 + size: 7 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + mechanisms: + - mechanism.Brain.BasicHuman + - mechanism.Eyes.BasicHuman + +- type: bodyPart + id: bodyPart.LArm.BasicHuman + name: "left human arm" + plural: "left human arms" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: l_arm + partType: Arm + durability: 40 + destroyThreshold: -80 + size: 5 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:ExtensionProperty + active: true + reachDistance: 2.4 + +- type: bodyPart + id: bodyPart.RArm.BasicHuman + name: "right human arm" + plural: "right human arms" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: r_arm + partType: Arm + durability: 40 + destroyThreshold: -80 + size: 5 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:ExtensionProperty + active: true + reachDistance: 2.4 + +- type: bodyPart + id: bodyPart.LHand.BasicHuman + name: "left human hand" + plural: "left human hands" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: l_hand + partType: Hand + durability: 30 + destroyThreshold: -60 + size: 3 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:GraspProperty + active: true + +- type: bodyPart + id: bodyPart.RHand.BasicHuman + name: "right human hand" + plural: "right human hands" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: r_hand + partType: Hand + durability: 30 + destroyThreshold: -60 + size: 3 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:GraspProperty + active: true + +- type: bodyPart + id: bodyPart.LLeg.BasicHuman + name: "left human leg" + plural: "left human legs" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: l_leg + partType: Leg + durability: 45 + destroyThreshold: -90 + size: 6 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:ExtensionProperty + active: true + reachDistance: 3.0 + - !type:LegProperty + active: true + speed: 2.6 + +- type: bodyPart + id: bodyPart.RLeg.BasicHuman + name: "right human leg" + plural: "right human legs" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: r_leg + partType: Leg + durability: 45 + destroyThreshold: -90 + size: 6 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:ExtensionProperty + active: true + reachDistance: 3.0 + - !type:LegProperty + active: true + speed: 2.6 + +- type: bodyPart + id: bodyPart.LFoot.BasicHuman + name: "left human foot" + plural: "left human feet" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: l_foot + partType: Foot + durability: 30 + destroyThreshold: -60 + size: 2 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:FootProperty + active: true + +- type: bodyPart + id: bodyPart.RFoot.BasicHuman + name: "right human foot" + plural: "right human feet" + rsiPath: Mobs/Species/Human/parts.rsi + rsiState: r_foot + partType: Foot + durability: 30 + destroyThreshold: -60 + size: 2 + compatibility: Biological + damageContainer: biologicalDamageContainer + resistances: defaultResistances + surgeryDataType: Content.Server.Body.Surgery.BiologicalSurgeryData + properties: + - !type:FootProperty + active: true diff --git a/Resources/Prototypes/Body/Presets/basic_human.yml b/Resources/Prototypes/Body/Presets/basic_human.yml new file mode 100644 index 0000000000..38e65813df --- /dev/null +++ b/Resources/Prototypes/Body/Presets/basic_human.yml @@ -0,0 +1,14 @@ +- type: bodyPreset + name: "basic human" + id: bodyPreset.BasicHuman + partIDs: + head: bodyPart.Head.BasicHuman + torso: bodyPart.Torso.BasicHuman + right arm: bodyPart.RArm.BasicHuman + left arm: bodyPart.LArm.BasicHuman + right hand: bodyPart.RHand.BasicHuman + left hand: bodyPart.LHand.BasicHuman + right leg: bodyPart.RLeg.BasicHuman + left leg: bodyPart.LLeg.BasicHuman + right foot: bodyPart.RFoot.BasicHuman + left foot: bodyPart.LFoot.BasicHuman diff --git a/Resources/Prototypes/Body/Templates/humanoid.yml b/Resources/Prototypes/Body/Templates/humanoid.yml new file mode 100644 index 0000000000..856c995139 --- /dev/null +++ b/Resources/Prototypes/Body/Templates/humanoid.yml @@ -0,0 +1,44 @@ +- type: bodyTemplate + id: bodyTemplate.Humanoid + name: "humanoid" + centerSlot: "torso" + slots: + head: Head + torso: Torso + left arm: Arm + left hand: Hand + right arm: Arm + right hand: Hand + left leg: Leg + left foot: Foot + right leg: Leg + right foot: Foot + connections: + head: + - torso + torso: + - left arm + - right arm + - left leg + - right leg + left arm: + - left hand + right arm: + - right hand + left leg: + - left foot + right leg: + - right foot + layers: + head: "enum.HumanoidVisualLayers.Head" + torso: "enum.HumanoidVisualLayers.Chest" + left arm: "enum.HumanoidVisualLayers.LArm" + left hand: "enum.HumanoidVisualLayers.LHand" + right arm: "enum.HumanoidVisualLayers.RArm" + right hand: "enum.HumanoidVisualLayers.RHand" + left leg: "enum.HumanoidVisualLayers.LLeg" + left foot: "enum.HumanoidVisualLayers.LFoot" + right leg: "enum.HumanoidVisualLayers.RLeg" + right foot: "enum.HumanoidVisualLayers.RFoot" + mechanismLayers: + mechanism.Eyes.BasicHuman: "enum.HumanoidVisualLayers.Eyes" diff --git a/Resources/Prototypes/BodySystem/BodyTemplates/quadrupedal.yml b/Resources/Prototypes/Body/Templates/quadrupedal.yml similarity index 69% rename from Resources/Prototypes/BodySystem/BodyTemplates/quadrupedal.yml rename to Resources/Prototypes/Body/Templates/quadrupedal.yml index 6229e57c69..2eec9a12b6 100644 --- a/Resources/Prototypes/BodySystem/BodyTemplates/quadrupedal.yml +++ b/Resources/Prototypes/Body/Templates/quadrupedal.yml @@ -15,19 +15,17 @@ right hind paw: Foot connections: head: - - torso + - torso torso: - - left front leg - - right front leg - - left hind leg - - right hind paw + - left front leg + - right front leg + - left hind leg + - right hind paw left front leg: - - left front paw + - left front paw right front leg: - - right front paw + - right front paw left hind leg: - - left hind paw + - left hind paw right hind leg: - - right hind paw - - + - right hind paw diff --git a/Resources/Prototypes/BodySystem/BodyParts/humanoid_parts.yml b/Resources/Prototypes/BodySystem/BodyParts/humanoid_parts.yml deleted file mode 100644 index 6af6e71493..0000000000 --- a/Resources/Prototypes/BodySystem/BodyParts/humanoid_parts.yml +++ /dev/null @@ -1,95 +0,0 @@ -- type: bodyPart - id: bodyPart.Torso.BasicHuman - name: "human torso" - plural: "human torsos" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: "torso_m" - partType: Torso - durability: 100 - destroyThreshold: -150 - resistance: 4.0 - size: 14 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - mechanisms: - - mechanism.Heart.BasicHuman - - mechanism.Lungs.BasicHuman - - mechanism.Liver.BasicHuman - - mechanism.Kidneys.BasicHuman - -- type: bodyPart - id: bodyPart.Head.BasicHuman - name: "human head" - plural: "human heads" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: head_m - partType: Head - durability: 50 - destroyThreshold: -120 - resistance: 7.0 - size: 7 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - mechanisms: - - mechanism.Brain.BasicHuman - - mechanism.Eyes.BasicHuman - -- type: bodyPart - id: bodyPart.Arm.BasicHuman - name: "human arm" - plural: "human arms" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: r_arm - partType: Arm - durability: 40 - destroyThreshold: -80 - resistance: 3.0 - size: 5 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - properties: - - !type:ArmLength - length: 2.4 - -- type: bodyPart - id: bodyPart.Hand.BasicHuman - name: "human hand" - plural: "human hands" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: r_hand - partType: Hand - durability: 30 - destroyThreshold: -60 - resistance: 2.0 - size: 3 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - -- type: bodyPart - id: bodyPart.Leg.BasicHuman - name: "human leg" - plural: "human legs" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: r_leg - partType: Leg - durability: 45 - destroyThreshold: -90 - resistance: 2.0 - size: 6 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - -- type: bodyPart - id: bodyPart.Foot.BasicHuman - name: "human foot" - plural: "human feet" - rsiPath: Mobs/Parts/body_human.rsi - rsiState: r_foot - partType: Foot - durability: 30 - destroyThreshold: -60 - resistance: 3.0 - size: 2 - compatibility: Biological - surgeryDataType: BiologicalsurgeryDataType - diff --git a/Resources/Prototypes/BodySystem/BodyPresets/basic_human.yml b/Resources/Prototypes/BodySystem/BodyPresets/basic_human.yml deleted file mode 100644 index 032a315804..0000000000 --- a/Resources/Prototypes/BodySystem/BodyPresets/basic_human.yml +++ /dev/null @@ -1,15 +0,0 @@ -- type: bodyPreset - name: "basic human" - id: bodyPreset.BasicHuman - partIDs: - head: bodyPart.Head.BasicHuman - torso: bodyPart.Torso.BasicHuman - right arm: bodyPart.Arm.BasicHuman - left arm: bodyPart.Arm.BasicHuman - right hand: bodyPart.Hand.BasicHuman - left hand: bodyPart.Hand.BasicHuman - right leg: bodyPart.Leg.BasicHuman - left leg: bodyPart.Leg.BasicHuman - right foot: bodyPart.Foot.BasicHuman - left foot: bodyPart.Foot.BasicHuman - diff --git a/Resources/Prototypes/BodySystem/BodyTemplates/humanoid.yml b/Resources/Prototypes/BodySystem/BodyTemplates/humanoid.yml deleted file mode 100644 index f583a7781a..0000000000 --- a/Resources/Prototypes/BodySystem/BodyTemplates/humanoid.yml +++ /dev/null @@ -1,33 +0,0 @@ -- type: bodyTemplate - id: bodyTemplate.Humanoid - name: "humanoid" - centerSlot: "torso" - slots: - head: Head - torso: Torso - left arm: Arm - left hand: Hand - right arm: Arm - right hand: Hand - left leg: Leg - left foot: Foot - right leg: Leg - right foot: Foot - connections: - head: - - torso - torso: - - left arm - - right arm - - left leg - - right leg - left arm: - - left hand - right arm: - - right hand - left leg: - - left foot - right leg: - - right foot - - diff --git a/Resources/Prototypes/Damage/damage_containers.yml b/Resources/Prototypes/Damage/damage_containers.yml new file mode 100644 index 0000000000..bb950b47f1 --- /dev/null +++ b/Resources/Prototypes/Damage/damage_containers.yml @@ -0,0 +1,13 @@ +- type: damageContainer + id: biologicalDamageContainer + activeDamageClasses: + - Brute + - Burn + - Toxin + - Airloss + +- type: damageContainer + id: metallicDamageContainer + activeDamageClasses: + - Brute + - Burn diff --git a/Resources/Prototypes/Damage/resistance_sets.yml b/Resources/Prototypes/Damage/resistance_sets.yml new file mode 100644 index 0000000000..5b829d48df --- /dev/null +++ b/Resources/Prototypes/Damage/resistance_sets.yml @@ -0,0 +1,56 @@ +- type: resistanceSet + id: defaultResistances + coefficients: + Blunt: 1.0 + Piercing: 1.0 + Heat: 1.0 + Disintegration: 1.0 + Cellular: 1.0 + DNA: 1.0 + Asphyxiation: 1.0 + flatReductions: + Blunt: 0 + Piercing: 0 + Heat: 0 + Disintegration: 0 + Cellular: 0 + DNA: 0 + Asphyxiation: 0 + +- type: resistanceSet + id: dionaResistances + coefficients: + Blunt: 0.5 + Piercing: 0.7 + Heat: 1.8 + Disintegration: 1.8 + Cellular: 1.0 + DNA: 1.0 + Asphyxiation: 1.0 + flatReductions: + Blunt: 0 + Piercing: 0 + Heat: 0 + Disintegration: 0 + Cellular: 0 + DNA: 0 + Asphyxiation: 0 + +- type: resistanceSet + id: metallicResistances + coefficients: + Blunt: 0.7 + Piercing: 0.7 + Heat: 1.0 + Disintegration: 1.0 + Cellular: 0.0 + DNA: 0.0 + Asphyxiation: 0.0 + flatReductions: + Blunt: 0 + Piercing: 0 + Heat: 0 + Disintegration: 0 + Cellular: 0 + DNA: 0 + Asphyxiation: 0 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Constructible/Ground/instruments.yml b/Resources/Prototypes/Entities/Constructible/Ground/instruments.yml index 2b2c34f589..2d4fb5b564 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/instruments.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/instruments.yml @@ -17,9 +17,8 @@ - VaultImpassable - type: SnapGrid offset: Center - - type: Damageable - type: Destructible - thresholdvalue: 50 + maxHP: 50 - type: UserInterface interfaces: - key: enum.InstrumentUiKey.Key diff --git a/Resources/Prototypes/Entities/Constructible/Ground/pilot_chair.yml b/Resources/Prototypes/Entities/Constructible/Ground/pilot_chair.yml index 2789e1ce21..1a9307108f 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/pilot_chair.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/pilot_chair.yml @@ -15,7 +15,7 @@ - type: InteractionOutline - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: Physics - type: ShuttleController - type: Strap diff --git a/Resources/Prototypes/Entities/Constructible/Ground/table.yml b/Resources/Prototypes/Entities/Constructible/Ground/table.yml index 8c28f0aef9..568a1f958d 100644 --- a/Resources/Prototypes/Entities/Constructible/Ground/table.yml +++ b/Resources/Prototypes/Entities/Constructible/Ground/table.yml @@ -22,10 +22,9 @@ - type: IconSmooth key: generic base: solid_ - - type: Damageable - type: Destructible - thresholdvalue: 50 - spawnondestroy: SteelSheet1 + maxHP: 50 + spawnOnDestroy: SteelSheet1 # TODO: drop wood instead of steel when destroyed when that's added - type: entity @@ -39,7 +38,6 @@ - type: IconSmooth key: wood base: wood_ - - type: Damageable - type: Destructible - thresholdvalue: 50 - spawnondestroy: SteelSheet1 + maxHP: 50 + spawnOnDestroy: SteelSheet1 diff --git a/Resources/Prototypes/Entities/Constructible/Power/gravity_generator.yml b/Resources/Prototypes/Entities/Constructible/Power/gravity_generator.yml index 35c0b773cf..4163f5dfdd 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/gravity_generator.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/gravity_generator.yml @@ -28,9 +28,8 @@ - VaultImpassable - type: Clickable - type: InteractionOutline - - type: Damageable - type: Breakable - threshold: 150 + maxHP: 150 - type: GravityGenerator - type: UserInterface interfaces: diff --git a/Resources/Prototypes/Entities/Constructible/Power/medical_scanner.yml b/Resources/Prototypes/Entities/Constructible/Power/medical_scanner.yml index 481080a288..390cdca4d0 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/medical_scanner.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/medical_scanner.yml @@ -34,9 +34,8 @@ - type: SnapGrid offset: Center - type: MedicalScanner - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: Appearance visuals: - type: MedicalScannerVisualizer diff --git a/Resources/Prototypes/Entities/Constructible/Power/power.yml b/Resources/Prototypes/Entities/Constructible/Power/power.yml index dde2124bad..3c7b740fbd 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/power.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/power.yml @@ -50,9 +50,8 @@ nodeGroupID: HVPower - type: PowerConsumer drawRate: 50 - - type: Damageable - type: Breakable - thresholdvalue: 100 + maxHP: 100 - type: Anchorable - type: entity @@ -290,9 +289,8 @@ supply: 1500 - type: SnapGrid offset: Center - - type: Damageable - type: Breakable - thresholdvalue: 100 + maxHP: 100 #Depriciated, to be removed from maps diff --git a/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml b/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml index 83b0f92fa1..3042c86ce9 100644 --- a/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml +++ b/Resources/Prototypes/Entities/Constructible/Power/vending_machines.yml @@ -30,8 +30,8 @@ - SmallImpassable - type: SnapGrid offset: Center - - type: Damageable - type: Breakable + maxHP: 50 - type: UserInterface interfaces: - key: enum.VendingMachineUiKey.Key diff --git a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml index 2833854a0d..21f2f49e97 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/Closets/closet.yml @@ -41,9 +41,8 @@ anchored: false - type: EntityStorage - type: PlaceableSurface - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: Appearance visuals: - type: StorageVisualizer diff --git a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/storage_tank.yml b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/storage_tank.yml index 87a316a0b1..44f8c3180f 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/storage_tank.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/StorageTanks/storage_tank.yml @@ -24,10 +24,9 @@ IsScrapingFloor: true - type: Physics mass: 15 - anchored: false - - type: Damageable + Anchored: false - type: Destructible - thresholdvalue: 10 + maxHP: 10 - type: Solution maxVol: 1500 caps: 2 diff --git a/Resources/Prototypes/Entities/Constructible/Storage/crate_base.yml b/Resources/Prototypes/Entities/Constructible/Storage/crate_base.yml index 711f2f4ac9..6c4047f99c 100644 --- a/Resources/Prototypes/Entities/Constructible/Storage/crate_base.yml +++ b/Resources/Prototypes/Entities/Constructible/Storage/crate_base.yml @@ -36,9 +36,8 @@ capacity: 60 CanWeldShut: false - type: PlaceableSurface - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: Appearance visuals: - type: StorageVisualizer diff --git a/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml b/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml index 448ff223d6..73437dc525 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/asteroid.yml @@ -16,9 +16,8 @@ shapes: - !type:PhysShapeAabb layer: [MobMask] - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: Occluder sizeX: 32 sizeY: 32 diff --git a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml index c19ff0eb6e..50a4dfa3f2 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/girder.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/girder.yml @@ -14,10 +14,9 @@ shapes: - !type:PhysShapeAabb layer: [MobMask, Opaque] - - type: Damageable - type: Destructible - thresholdvalue: 50 - spawnondestroy: SteelSheet1 + maxHP: 50 + spawnOnDestroy: SteelSheet1 - type: SnapGrid offset: Edge diff --git a/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml b/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml index c381fae699..7c1bb1e5a4 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/low_wall.yml @@ -24,9 +24,8 @@ layer: - VaultImpassable - SmallImpassable - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: SnapGrid offset: Center - type: LowWall diff --git a/Resources/Prototypes/Entities/Constructible/Walls/walls.yml b/Resources/Prototypes/Entities/Constructible/Walls/walls.yml index 7f82a01ce2..9e8d69252f 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/walls.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/walls.yml @@ -25,10 +25,9 @@ - MobImpassable - VaultImpassable - SmallImpassable - - type: Damageable - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + maxHP: 100 + spawnOnDestroy: Girder - type: Occluder sizeX: 32 sizeY: 32 @@ -50,8 +49,8 @@ - type: Icon sprite: Constructible/Structures/Walls/brick.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: brick @@ -66,8 +65,8 @@ - type: Icon sprite: Constructible/Structures/Walls/clock.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: clock @@ -82,8 +81,8 @@ - type: Icon sprite: Constructible/Structures/Walls/clown.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: clown @@ -99,8 +98,8 @@ - type: Icon sprite: Constructible/Structures/Walls/cult.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: cult @@ -115,8 +114,8 @@ - type: Icon sprite: Constructible/Structures/Walls/debug.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: debug @@ -131,8 +130,8 @@ - type: Icon sprite: Constructible/Structures/Walls/diamond.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: diamond @@ -148,8 +147,8 @@ - type: Icon sprite: Constructible/Structures/Walls/gold.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: gold @@ -164,8 +163,8 @@ - type: Icon sprite: Constructible/Structures/Walls/ice.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: ice @@ -180,8 +179,8 @@ - type: Icon sprite: Constructible/Structures/Walls/metal.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: metal @@ -196,8 +195,8 @@ - type: Icon sprite: Constructible/Structures/Walls/plasma.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: plasma @@ -212,8 +211,8 @@ - type: Icon sprite: Constructible/Structures/Walls/plastic.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: plastic @@ -230,8 +229,8 @@ sprite: Constructible/Structures/Walls/solid.rsi state: rgeneric - type: Destructible - thresholdvalue: 300 - spawnondestroy: Girder + health: 300 + spawnOnDestroy: Girder - type: ReinforcedWall key: walls base: solid @@ -248,8 +247,8 @@ - type: Icon sprite: Constructible/Structures/Walls/riveted.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: riveted @@ -264,8 +263,8 @@ - type: Icon sprite: Constructible/Structures/Walls/sandstone.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: sandstone @@ -280,8 +279,8 @@ - type: Icon sprite: Constructible/Structures/Walls/silver.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: silver @@ -297,9 +296,9 @@ - type: Icon sprite: Constructible/Structures/Walls/solid.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder - destroysound: /Audio/Effects/metalbreak.ogg + health: 100 + spawnOnDestroy: Girder + destroySound: /Audio/effects/metalbreak.ogg - type: IconSmooth key: walls base: solid @@ -314,8 +313,8 @@ - type: Icon sprite: Constructible/Structures/Walls/uranium.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: uranium @@ -330,8 +329,8 @@ - type: Icon sprite: Constructible/Structures/Walls/wood.rsi - type: Destructible - thresholdvalue: 100 - spawnondestroy: Girder + health: 100 + spawnOnDestroy: Girder - type: IconSmooth key: walls base: wood diff --git a/Resources/Prototypes/Entities/Constructible/Walls/windows.yml b/Resources/Prototypes/Entities/Constructible/Walls/windows.yml index 280139d3e6..e0f231f161 100644 --- a/Resources/Prototypes/Entities/Constructible/Walls/windows.yml +++ b/Resources/Prototypes/Entities/Constructible/Walls/windows.yml @@ -27,9 +27,8 @@ - MobImpassable - VaultImpassable - SmallImpassable - - type: Damageable - type: Destructible - thresholdvalue: 100 + maxHP: 100 - type: SnapGrid offset: Center - type: Airtight diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml index 1b3fecdafb..9f34c6b0a8 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/mimic.yml @@ -34,14 +34,11 @@ layer: - Opaque - MobImpassable - - type: Species - Template: Human - HeatResistance: 323 - type: BodyManager - BaseTemplate: bodyTemplate.Humanoid - BasePreset: bodyPreset.BasicHuman + baseTemplate: bodyTemplate.Humanoid + basePreset: bodyPreset.BasicHuman + - type: MobStateManager - type: HeatResistance - - type: Damageable - type: CombatMode - type: Teleportable - type: CharacterInfo diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index ff041ce591..f048fefc25 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -36,14 +36,12 @@ layer: - Opaque - MobImpassable - - type: Species - Template: Human - HeatResistance: 323 - type: BodyManager - BaseTemplate: bodyTemplate.Humanoid - BasePreset: bodyPreset.BasicHuman + baseTemplate: bodyTemplate.Humanoid + basePreset: bodyPreset.BasicHuman + - type: Metabolism + - type: MobStateManager - type: HeatResistance - - type: Damageable - type: CombatMode - type: Teleportable - type: FootstepSound diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 9259c28043..040ff8e983 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -28,7 +28,7 @@ digestionDelay: 20 # StatusEffects - type: Stunnable - # EndStatusEffects + # Other - type: Inventory - type: Clickable - type: InteractionOutline @@ -38,34 +38,35 @@ layers: - map: ["enum.HumanoidVisualLayers.Chest"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_chest_m + sprite: Mobs/Species/Human/parts.rsi + state: torso_m - map: ["enum.HumanoidVisualLayers.Head"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_head_m - - sprite: Mobs/Customization/eyes.rsi - state: eyes + sprite: Mobs/Species/Human/parts.rsi + state: head_m + - map: ["enum.HumanoidVisualLayers.Eyes"] color: "#008800" + sprite: Mobs/Customization/eyes.rsi + state: eyes - map: ["enum.HumanoidVisualLayers.RArm"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_arm + sprite: Mobs/Species/Human/parts.rsi + state: r_arm - map: ["enum.HumanoidVisualLayers.LArm"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_arm + sprite: Mobs/Species/Human/parts.rsi + state: l_arm - map: ["enum.HumanoidVisualLayers.RLeg"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_leg + sprite: Mobs/Species/Human/parts.rsi + state: r_leg - map: ["enum.HumanoidVisualLayers.LLeg"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_leg + sprite: Mobs/Species/Human/parts.rsi + state: l_leg - shader: StencilClear - sprite: Mobs/Species/human.rsi - state: human_l_leg + sprite: Mobs/Species/Human/parts.rsi + state: l_leg - shader: StencilMask map: ["enum.HumanoidVisualLayers.StencilMask"] sprite: Mobs/Customization/masking_helpers.rsi @@ -75,12 +76,20 @@ shader: StencilDraw - map: ["enum.HumanoidVisualLayers.LHand"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_hand + sprite: Mobs/Species/Human/parts.rsi + state: l_hand - map: ["enum.HumanoidVisualLayers.RHand"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_hand + sprite: Mobs/Species/Human/parts.rsi + state: r_hand + - map: ["enum.HumanoidVisualLayers.LFoot"] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: l_foot + - map: ["enum.HumanoidVisualLayers.RFoot"] + color: "#e8b59b" + sprite: Mobs/Species/Human/parts.rsi + state: r_foot - map: ["enum.Slots.IDCARD"] - map: ["enum.Slots.GLOVES"] - map: ["enum.Slots.SHOES"] @@ -101,8 +110,8 @@ - map: ["hand-left"] - map: ["hand-right"] - type: Icon - sprite: Mobs/Species/human.rsi - state: human_basic + sprite: Mobs/Species/Human/parts.rsi + state: full - type: Physics mass: 85 - type: Collidable @@ -116,17 +125,20 @@ layer: - Opaque - MobImpassable - - type: Species - Template: Human - HeatResistance: 323 - type: BodyManager - BaseTemplate: bodyTemplate.Humanoid - BasePreset: bodyPreset.BasicHuman + baseTemplate: bodyTemplate.Humanoid + basePreset: bodyPreset.BasicHuman + - type: Metabolism + needsGases: + Oxygen: 0.006365740 + producesGases: + Oxygen: 0.004774305 + CarbonDioxide: 0.001591435 + - type: MobStateManager - type: HeatResistance - - type: Damageable - type: Appearance visuals: - - type: SpeciesVisualizer + - type: RotationVisualizer - type: BuckleVisualizer - type: CombatMode - type: Teleportable @@ -163,55 +175,51 @@ - type: Sprite netsync: false drawdepth: Mobs - layers: - map: ["enum.HumanoidVisualLayers.Chest"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_chest_m + sprite: Mobs/Species/Human/parts.rsi + state: torso_m - map: ["enum.HumanoidVisualLayers.Head"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_head_m - - sprite: Mobs/Customization/eyes.rsi - state: eyes + sprite: Mobs/Species/Human/parts.rsi + state: head_m + - map: ["enum.HumanoidVisualLayers.Eyes"] color: "#008800" + sprite: Mobs/Customization/eyes.rsi + state: eyes - map: ["enum.HumanoidVisualLayers.RArm"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_arm + sprite: Mobs/Species/Human/parts.rsi + state: r_arm - map: ["enum.HumanoidVisualLayers.LArm"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_arm + sprite: Mobs/Species/Human/parts.rsi + state: l_arm - map: ["enum.HumanoidVisualLayers.RLeg"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_leg + sprite: Mobs/Species/Human/parts.rsi + state: r_leg - map: ["enum.HumanoidVisualLayers.LLeg"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_leg - + sprite: Mobs/Species/Human/parts.rsi + state: l_leg - shader: StencilClear - shader: StencilMask map: ["enum.HumanoidVisualLayers.StencilMask"] sprite: Mobs/Customization/masking_helpers.rsi state: female_full visible: false - - map: ["enum.Slots.INNERCLOTHING"] shader: StencilDraw - - map: ["enum.HumanoidVisualLayers.LHand"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_l_hand + sprite: Mobs/Species/Human/parts.rsi + state: l_hand - map: ["enum.HumanoidVisualLayers.RHand"] color: "#e8b59b" - sprite: Mobs/Species/human.rsi - state: human_r_hand - + sprite: Mobs/Species/Human/parts.rsi + state: r_hand - map: ["enum.Slots.IDCARD"] - map: ["enum.Slots.GLOVES"] - map: ["enum.Slots.SHOES"] @@ -231,14 +239,11 @@ - map: ["enum.Slots.HEAD"] - map: ["hand-left"] - map: ["hand-right"] - - type: Icon - sprite: Mobs/Species/human.rsi - state: human_basic - + sprite: Mobs/Species/Human/parts.rsi + state: full - type: Physics mass: 85 - - type: Collidable shapes: - !type:PhysShapeAabb @@ -250,17 +255,14 @@ - SmallImpassable layer: - MobImpassable - - - type: Species - Template: Human - HeatResistance: 323 + - type: BodyManager + baseTemplate: bodyTemplate.Humanoid + basePreset: bodyPreset.BasicHuman + - type: MobStateManager - type: Damageable - - type: Appearance visuals: - - type: SpeciesVisualizer - + - type: RotationVisualizer - type: HumanoidAppearance - - type: Grammar proper: true diff --git a/Resources/Prototypes/BodySystem/body_system_dropped_abstract.yml b/Resources/Prototypes/Entities/Mobs/body_system_dropped_abstract.yml similarity index 79% rename from Resources/Prototypes/BodySystem/body_system_dropped_abstract.yml rename to Resources/Prototypes/Entities/Mobs/body_system_dropped_abstract.yml index 4ebfd084ef..2ba5ab2934 100644 --- a/Resources/Prototypes/BodySystem/body_system_dropped_abstract.yml +++ b/Resources/Prototypes/Entities/Mobs/body_system_dropped_abstract.yml @@ -6,7 +6,7 @@ components: - type: DroppedBodyPart - type: Sprite - texture: Mobs/Parts/Organs/eyes_grey.png + texture: Mobs/Species/Human/parts.rsi/torso_m.png - type: Icon - type: UserInterface interfaces: @@ -21,9 +21,9 @@ components: - type: DroppedMechanism - type: Sprite - texture: Mobs/Parts/Organs/eyes_grey.png + texture: Mobs/Parts/Organs/eyeballs.png - type: Icon - type: UserInterface interfaces: - key: enum.GenericSurgeryUiKey.Key - type: GenericSurgeryBoundUserInterface \ No newline at end of file + type: GenericSurgeryBoundUserInterface diff --git a/Resources/Prototypes/Entities/Objects/Specific/medical.yml b/Resources/Prototypes/Entities/Objects/Specific/medical.yml index f004518590..5e7b8af68c 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/medical.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/medical.yml @@ -27,7 +27,7 @@ components: - type: Stack - type: Item - - type: Healing + #- type: Healing - type: entity name: ointment @@ -39,9 +39,9 @@ texture: Objects/Specific/Medical/ointment.png - type: Icon texture: Objects/Specific/Medical/ointment.png - - type: Healing - heal: 10 - damage: Heat + #- type: Healing + # heal: 10 + # damage: Heat - type: Stack max: 5 count: 5 @@ -57,9 +57,9 @@ texture: Objects/Specific/Medical/brutepack.png - type: Icon texture: Objects/Specific/Medical/brutepack.png - - type: Healing - heal: 10 - damage: Brute + #- type: Healing + # heal: 10 + # damage: Brute - type: Stack max: 5 count: 5 diff --git a/Resources/Prototypes/BodySystem/Surgery/surgery_tools.yml b/Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml similarity index 98% rename from Resources/Prototypes/BodySystem/Surgery/surgery_tools.yml rename to Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml index 3e490290df..5e1ecf0b39 100644 --- a/Resources/Prototypes/BodySystem/Surgery/surgery_tools.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/surgery_tools.yml @@ -11,9 +11,6 @@ - key: enum.GenericSurgeryUiKey.Key type: GenericSurgeryBoundUserInterface - - - - type: entity name: scalpel parent: BaseSurgeryTool @@ -23,19 +20,15 @@ - type: SurgeryTool surgeryType: Incision baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: scalpel - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: scalpel - - type: ItemCooldown - type: MeleeWeapon - - - type: entity name: retractor parent: BaseSurgeryTool @@ -45,19 +38,15 @@ - type: SurgeryTool surgeryType: Retraction baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: retractor - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: retractor - - type: ItemCooldown - type: MeleeWeapon - - - type: entity name: cautery parent: BaseSurgeryTool @@ -67,19 +56,15 @@ - type: SurgeryTool surgeryType: Cauterization baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: cautery - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: cautery - - type: ItemCooldown - type: MeleeWeapon - - - type: entity name: drill parent: BaseSurgeryTool @@ -89,19 +74,15 @@ - type: SurgeryTool surgeryType: Drilling baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: drill - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: drill - - type: ItemCooldown - type: MeleeWeapon - - - type: entity name: bone saw parent: BaseSurgeryTool @@ -111,19 +92,15 @@ - type: SurgeryTool surgeryType: Amputation baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: bone_saw - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: bone_saw - - type: ItemCooldown - type: MeleeWeapon - - - type: entity name: hemostat parent: BaseSurgeryTool @@ -133,14 +110,11 @@ - type: SurgeryTool surgeryType: VesselCompression baseOperateTime: 3 - - type: Sprite sprite: Objects/Specific/Medical/surgery_tools.rsi state: hemostat - type: Icon sprite: Objects/Specific/Medical/surgery_tools.rsi state: hemostat - - type: ItemCooldown - - type: MeleeWeapon - + - type: MeleeWeapon \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/AntiMaterial/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/AntiMaterial/projectiles.yml index 8459ae653d..1cef82866c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/AntiMaterial/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/AntiMaterial/projectiles.yml @@ -6,4 +6,4 @@ components: - type: Projectile damages: - Brute: 70 + Piercing: 70 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/ClRifle/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/ClRifle/projectiles.yml index b1f01dcc2b..3eae35edfa 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/ClRifle/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/ClRifle/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 27 + Piercing: 27 - type: entity id: BulletClRifleFlash @@ -16,7 +16,7 @@ components: - type: Projectile damages: - Brute: 27 + Piercing: 27 - type: entity id: BulletClRifleHV @@ -26,7 +26,7 @@ components: - type: Projectile damages: - Brute: 32 + Piercing: 32 - type: entity id: BulletClRiflePractice @@ -36,7 +36,7 @@ components: - type: Projectile damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletClRifleRubber @@ -46,4 +46,4 @@ components: - type: Projectile damages: - Brute: 3 + Blunt: 3 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/LRifle/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/LRifle/projectiles.yml index 5752d74505..082f492862 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/LRifle/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/LRifle/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 28 + Piercing: 28 - type: entity id: BulletLRifleFlash @@ -16,7 +16,7 @@ components: - type: Projectile damages: - Brute: 28 + Piercing: 28 - type: entity id: BulletLRifleHV @@ -26,7 +26,7 @@ components: - type: Projectile damages: - Brute: 30 + Piercing: 30 - type: entity id: BulletLRiflePractice @@ -36,7 +36,7 @@ components: - type: Projectile damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletLRifleRubber @@ -46,4 +46,4 @@ components: - type: Projectile damages: - Brute: 3 + Blunt: 3 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magnum/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magnum/projectiles.yml index 63b79a8161..041120110e 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magnum/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Magnum/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 32 + Piercing: 32 - type: entity id: BulletMagnumFlash @@ -16,7 +16,7 @@ components: - type: Projectile damages: - Brute: 32 + Piercing: 32 - type: entity id: BulletMagnumHV @@ -26,7 +26,7 @@ components: - type: Projectile damages: - Brute: 35 + Piercing: 35 - type: entity id: BulletMagnumPractice @@ -36,7 +36,7 @@ components: - type: Projectile damages: - Brute: 1 + Blunt: 1 - type: entity id: BulletMagnumRubber @@ -46,4 +46,4 @@ components: - type: Projectile damages: - Brute: 3 + Blunt: 3 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Pistol/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Pistol/projectiles.yml index 3af7a3e30a..47394893de 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Pistol/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Pistol/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 24 + Piercing: 24 - type: entity id: BulletPistolFlash @@ -16,7 +16,7 @@ components: - type: Projectile damages: - Brute: 24 + Piercing: 24 - type: entity id: BulletPistolHV @@ -26,7 +26,7 @@ components: - type: Projectile damages: - Brute: 28 + Piercing: 28 - type: entity id: BulletPistolPractice @@ -36,7 +36,7 @@ components: - type: Projectile damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletPistolRubber @@ -46,4 +46,4 @@ components: - type: Projectile damages: - Brute: 3 + Blunt: 3 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SRifle/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SRifle/projectiles.yml index a5f687aad9..a86bde78ba 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SRifle/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/SRifle/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 25 + Piercing: 25 - type: entity id: BulletSRifleFlash @@ -16,7 +16,7 @@ components: - type: Projectile damages: - Brute: 25 + Piercing: 25 - type: entity id: BulletSRifleHV @@ -26,7 +26,7 @@ components: - type: Projectile damages: - Brute: 30 + Piercing: 30 - type: entity id: BulletSRiflePractice @@ -36,7 +36,7 @@ components: - type: Projectile damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletSRifleRubber @@ -46,4 +46,4 @@ components: - type: Projectile damages: - Brute: 3 + Blunt: 3 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Shotgun/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Shotgun/projectiles.yml index 9b5fb5fef3..238d47d201 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Shotgun/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Shotgun/projectiles.yml @@ -9,7 +9,7 @@ state: base - type: Projectile damages: - Brute: 13 + Piercing: 13 - type: entity id: PelletShotgunBeanbag @@ -22,7 +22,7 @@ state: base - type: Projectile damages: - Brute: 10 + Blunt: 10 - type: StunnableProjectile - type: entity @@ -36,7 +36,7 @@ state: base - type: Projectile damages: - Brute: 13 + Piercing: 13 - type: entity id: PelletShotgunFlash @@ -49,7 +49,7 @@ state: base - type: Projectile damages: - Brute: 13 + Blunt: 13 - type: entity id: PelletShotgunIncendiary @@ -62,7 +62,7 @@ state: base - type: Projectile damages: - Brute: 13 + Blunt: 13 - type: entity id: PelletShotgunPractice @@ -75,4 +75,4 @@ state: base - type: Projectile damages: - Brute: 1 + Blunt: 1 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Toy/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Toy/projectiles.yml index 4f5a5c3267..4951cc008a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Toy/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Toy/projectiles.yml @@ -6,7 +6,7 @@ components: - type: Projectile damages: - Brute: 1 + Blunt: 1 - type: entity id: BulletDonkSoft @@ -27,4 +27,4 @@ state: foamdart - type: Projectile damages: - Brute: 1 + Blunt: 1 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Explosives/grenades.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Explosives/grenades.yml index 3e945ab5aa..e8b4a9dd96 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Explosives/grenades.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Explosives/grenades.yml @@ -21,9 +21,8 @@ heavyImpactRange: 2 lightImpactRange: 4 flashRange: 7 - - type: Damageable - type: Destructible - thresholdvalue: 10 + maxHP: 10 - type: Appearance visuals: - type: TimerTriggerVisualizer @@ -48,9 +47,8 @@ - type: OnUseTimerTrigger delay: 3.5 - type: FlashExplosive - - type: Damageable - type: Destructible - thresholdvalue: 10 + maxHP: 10 - type: Appearance visuals: - type: TimerTriggerVisualizer @@ -79,9 +77,8 @@ heavyImpactRange: 5 lightImpactRange: 7 flashRange: 10 - - type: Damageable - type: Destructible - thresholdvalue: 10 + maxHP: 10 - type: Appearance visuals: - type: TimerTriggerVisualizer diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml index a2778f7e50..f3513ded94 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/hitscan.yml @@ -7,6 +7,7 @@ spriteName: Objects/Weapons/Guns/Projectiles/laser.png muzzleFlash: Objects/Weapons/Guns/Projectiles/laser_muzzle.png impactFlash: Objects/Weapons/Guns/Projectiles/laser_impact.png + damageType: Heat damage: 10 - type: entity @@ -18,6 +19,7 @@ spriteName: Objects/Weapons/Guns/Projectiles/heavy_laser.png muzzleFlash: Objects/Weapons/Guns/Projectiles/heavy_laser_muzzle.png impactFlash: Objects/Weapons/Guns/Projectiles/heavy_laser_impact.png + damageType: Heat damage: 30 - type: entity @@ -29,4 +31,5 @@ spriteName: Objects/Weapons/Guns/Projectiles/xray.png muzzleFlash: Objects/Weapons/Guns/Projectiles/xray_muzzle.png impactFlash: Objects/Weapons/Guns/Projectiles/xray_impact.png + damageType: Heat damage: 60 diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 0aac56f67c..a0eeec12a4 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -28,7 +28,7 @@ - type: Projectile soundHit: /Audio/Weapons/Guns/Hits/bullet_hit.ogg damages: - Brute: 20 + Piercing: 20 - type: entity id: BulletBaseFlash @@ -39,7 +39,7 @@ - type: Projectile soundHit: /Audio/Weapons/Guns/Hits/snap.ogg damages: - Brute: 10 + Piercing: 10 - type: FlashProjectile range: 1 @@ -51,7 +51,7 @@ components: - type: Projectile damages: - Brute: 12 + Piercing: 12 - type: entity id: BulletBasePractice @@ -61,7 +61,7 @@ components: - type: Projectile damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletBaseRubber @@ -72,7 +72,7 @@ - type: Projectile soundHit: /Audio/Weapons/Guns/Hits/snap.ogg damages: - Brute: 3 + Blunt: 3 - type: StunnableProjectile paralyzeAmount: 2 @@ -222,7 +222,7 @@ deleteOnCollide: true soundHit: /Audio/Guns/Hits/snap.ogg damages: - Brute: 2 + Blunt: 2 - type: entity id: BulletCap diff --git a/Resources/Textures/Interface/StatusEffects/Human/human6-0.png b/Resources/Textures/Interface/StatusEffects/Human/human6.png similarity index 100% rename from Resources/Textures/Interface/StatusEffects/Human/human6-0.png rename to Resources/Textures/Interface/StatusEffects/Human/human6.png diff --git a/Resources/Textures/Interface/StatusEffects/Human/human6-1.png b/Resources/Textures/Interface/StatusEffects/Human/human7.png similarity index 100% rename from Resources/Textures/Interface/StatusEffects/Human/human6-1.png rename to Resources/Textures/Interface/StatusEffects/Human/human7.png diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/head_m.png b/Resources/Textures/Mobs/Parts/body_human.rsi/head_m.png deleted file mode 100644 index 51661693b29ad61c87eb19fe5ee728a5ed73bbcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU}EufaSW-L^Y)fu{w)Uywg=bC zJY=LcyJUR~>1^YZl~_}e>?OXd?DesZEB7a824A&*u<^g5^X3#TX`!h`lQe?V6oSO$ z1-MM#1F!!I9{j%{ZlO=v^ zd~7Zz^l!gk+p_aF8-sz}?^QDP#mk>QQH^aDV5{2`{F@~?`E~x|?r?$h z_$iNOM>d~+^1Z&sFIIN_%vsYaIhgIYX|un4!kA#w5^EXIH9wPqAwi3cq2b%T#8+Ck zKZ_ka;KL*M|JTf#w4@G?LhIltrq(Rx?u)!#kEDd3o1U3FeMbD8jA*9TQ`IxBrCr+A zkv1cKuGZ1;do0{n-HO(0|NQ-N`~A8DN^CyNJ6_k;PpMZz0*n5iiaN*6@asIs8tr{W znP-Y@MeasjTK2i;Kv8GiC42WP@1MoXO+Pq&GJAv5)```XF~|1DPiJXZ6y5x^s_N9^ z)jmfVzMfuOYV&IT75)BeVSV=lUW$C(J%iz-&W5>0x2oHLLDYT@rU#yCf&+yFgjzMePdSMb71`Z%c$O;l92=M{Mso(MSJpzkhlC@@2i{N(0jRc-E>ZinLepp z@BII#7_H6lzalN5_WIb(C96!&t4%eCG!N+x+vCHaCAGdGOblc&2sG>u&%VEH?zfzD zgGpf*_Q}fi?S1q5)uz=mMFlmxW6EYPEm6ODdS}*qHvQwZca`NIPdZy^`6@g9{iC@$ ze!LppcYZeQ+mTk3b>Oe`2j3XukM&?fAMnRAS~B<_VD7&b2NLjf^>bP0l+XkKsB3_@ diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/l_foot.png b/Resources/Textures/Mobs/Parts/body_human.rsi/l_foot.png deleted file mode 100644 index ace230831a46fdcf3a5ff34c3b16ec646e91cb12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=vpiiKLn`LHy|j_@P=G}1#nl=& zj@)96aoAA6e0)R6k}22x9`H4B?`T-NQ84I;SI!YNeixhchWB=LaZEtnK=6T`t(Mt$ z@0(+vOVzIGY`?7MX>?bvy8QlI70<0Vp49DLVk_VErstRa+oe%ClT>`?u6rUltLmoh z?WLlY4%K!`bOnDs__-Tm6vKnl>wbrR&z3$sX=D5shDm`c$^WkX>jX)9y85}Sb4q9e E02h!|d;kCd diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/l_hand.png b/Resources/Textures/Mobs/Parts/body_human.rsi/l_hand.png deleted file mode 100644 index 0981260733ce090e3b63ef9d699084a224fac3ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Z#`WcLn`LHy}2>#uz`r%L;JGj z$5^&XN(iGkrj>CDJuP34i3PNglqowoAk<I?(S(i0AF7RsC)y2<9R;#1FNUHK)w*z(-2^Y^SO1GCDz mCcpc^&-$M2??0f{9clKFE*>ZNpD9cR8RY5e=d#Wzp$P!a4S=iw diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/l_leg.png b/Resources/Textures/Mobs/Parts/body_human.rsi/l_leg.png deleted file mode 100644 index 362a0eb9438880d579c31cc409d8cb6aa108feb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn`LHy|tICDL~@bNB8Mc zS9D)mF}1&2rkn5aLF(46UCj>Lx4mF0^3`l;4YNH*AiTqd^wsNHABtrfYe`k$Xa?HCwUcI)Ixh9%`3ldhPBu79e!k9U{s zfyY%+F^9bvw%`4={y&Fj(3EL$rFM0D*>@HFViLRP^SQusMcZXY28lPUX$2OGFXRZ6 Pg6!~g^>bP0l+XkKk+X1> diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/meta.json b/Resources/Textures/Mobs/Parts/body_human.rsi/meta.json deleted file mode 100644 index d0c6866a45..0000000000 --- a/Resources/Textures/Mobs/Parts/body_human.rsi/meta.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/vgstation-coders/vgstation13", - "states": [ - { - "name": "head_m", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "torso_m", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "l_arm", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "r_arm", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "l_hand", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "r_hand", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "l_leg", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "r_leg", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "l_foot", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - }, - { - "name": "r_foot", - "directions": 4, - "delays": [ - [1.0], [1.0], [1.0], [1.0] - ] - } - ] -} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/r_arm.png b/Resources/Textures/Mobs/Parts/body_human.rsi/r_arm.png deleted file mode 100644 index f9024dbdba443e738232116f666420f29984625b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 327 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEVC3_3aSW-L^Y)f~UsHg<@sAgC zb2h}~zST8&XZnq6n%eE^j<>!#dz-Fb@NmrEE#Yl=%x&Y1fK{K{?3?QBP5JA1m__^TE>%#j!zB-e#W*ws`$!-IQV|`amTAthi2>>Ex9RFU=Qtt(keRt{!aW1KC){ XH#`Ax6BcoN0||J#`njxgN@xNA1x}FZ diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/r_foot.png b/Resources/Textures/Mobs/Parts/body_human.rsi/r_foot.png deleted file mode 100644 index 8e93a2e157a86dad6a5c49c1f4bd11862999eab4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>@1PLn`LHy|tICDM8}sM`6*H zgyJ}d)y)rVOC+vne`x1p(??{_l+O-a_D@c8H4Z=yZN zANyXloO-8K=KOS<{a1bVt$w!8snl=n{Y`og>MU37kXdX0?p5$_F8&W?9@4D4rM81i N^>p=fS?83{1OO&}aufgn diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/r_hand.png b/Resources/Textures/Mobs/Parts/body_human.rsi/r_hand.png deleted file mode 100644 index b73ac3dd0b7261e4d6c7ab358925316ab0bc6d28..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=7d>4ZLn`LHy=BOC$U&g>p{ulF zgofCy$|jCO^G*g=G=6E^+s6KZNmJ(ybD5_ihx8&xj%58=9ueWp|HJjI`xAFbE(Mwb z1P#;ITukbn7XLislIr6HZyQxM-uV_Ssdw$}g3M1hhNygPELau2O{g$dYv@Or6;O<+t=W;_(J90Yrh-R z_T{ssoj&k${#@yTvwipS+0HG$l)ZQRC5@E-d_YIct7fR37g)_)9kmZ+f~TvW%Q~lo FCIHM}Xd3_k diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/r_leg.png b/Resources/Textures/Mobs/Parts/body_human.rsi/r_leg.png deleted file mode 100644 index cc7fc1a1447061cadde06fe17df7f0510135562b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=w>(`OLn`LHy=BPPWFXP@FkVQR zd4uPU2KN^ac=vS1bu3xDdG>OHgGUaY6+V&Gd2Fp8pPJ5=jL>`ODnCyjpT5jnkP&DI z2y8Kqij1CWR?=s-O>6DNRmIy*JWaj+_S0&w4<{doI81r+=+ZZ9iM2UXo}Bya$NEQ@ zi$hky1V}(MgGhO!S5^sIHa))i=xO8}u}d=7CawK8_d54k%@3PfEOcF5>b^a8-68!& z|3R7Ew~5LU>zUs9>VC}>Px&2h_BpQZ;zun7Kkk`nlkJLFjDHw2NbF!wa57r_{A9W< O$Z$_rKbLh*2~7YH!*8Pi diff --git a/Resources/Textures/Mobs/Parts/body_human.rsi/torso_m.png b/Resources/Textures/Mobs/Parts/body_human.rsi/torso_m.png deleted file mode 100644 index 556a567143c51271aead12adc240ac1e85eb211d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1195 zcmV;c1XTNpP)9w=%A&;yX;k}Azc4|bsMO0j9GJBo4*+z${$9?9?j@#DS7`v8GJ zAP@)y0!9u2$NN7?zVc}92h^8%E;7mmN69YX&+mT(07O1>kXqm4vc;=EweUIq`0jpS zeWr_ya=`%rCA)+{r$x&ni5YaCxz2L z$^|ExU#0uD*`V8MGDEk`+D<4zAo{l1gsjA&sA+nv|Jp*YYaxE=IntXYgRy zrkc#qpO?V{Y3%*N$x4yxtI1h<^QXtZ0s!QghWMrH0DxqEmDZF|7%2b*?^A!<@l6(^ zBk;UZMY>Xz{Q6Pt+8g!9UIR7(q$^d4w0ooW!_aZEKj^fOu2iKvoSo~x@yVGzqTm1h z$UWc;hV}=Y7R=fXlkMmzCy^WK*K4o<#IiSrj>ob$VAT)Muh*EwS?Sknup<)G*$>?U z$&Isoc^-E27xe2j=KhDN2@w44-oGCz+BDsiBGEUNv%nRA{|kfHR$vIZ?ud6436&mYyULXIU6)vgYevl1u(nw|@Cd0@uz0GI=y>A8OhTlIs9 z1*6}7!c_iWFbx^|fb(&6iw=3o{3^`a4rD!#C(GM(ybcTU=J)>Y8US}#l=VCS_kEQ=R zJaPm4`ayl*`Y39Y3sm@Ir8w~*5dGPeA^=x&^=u0I=A&(qKFYBGbH#S)GdH=tyf@ZwgE$p_{pFzB@C z`v22niIz`tk;JP-eAonr(so9Lxd{NkZC{(S%?1XY*4a1uJsy)IBkOrs^#eo_Gfb^v?aouG1M9?F$@0B$vmBxWYk5A^Fbdh>oico^I2@Fa5t#;L^>fbQLg=)Q8( zQo8mDE$^g07>iSH!>d8GyRVMWz59^M9#a6OQ*kQva(Nr}<9jq?%QhQG7>~G|U?E{V zqRCK-nuh)O9$qeQ18^VAbSlndkGTf4i#D2-DgZYnj=<9c^WxPaJ~S&;w2L;gEv`|3 z%)-2AdJg74P6+GYc4GJ`I&bTG(N9QZp3-Dmg1%N6!>`qQ@#8IGP7OL%VrxdC1d0f)Sd z*=7S%iyPr*i~AiQ+mpU|zy5jo0N{MS2Y9v5Q(qtu2m}|MzX0&>!~L*{AXa8$#BNW$;rUL zfPo>6;mm&r2ZvX8n%jVC7)yfuf*Bm1-ADs+EInNuLo_BPCrI3JXxPxfq$t|s^@6F1 z>sW@;sdbDin9eNZJW-S8%od`%@MuO`8|z}u4N?oNb2yk7Qg*ULJl2|$0yKod)78&q Iol`;+06#!6wEzGB diff --git a/Resources/Textures/Mobs/Parts/eyes_grey.png b/Resources/Textures/Mobs/Parts/eyes_grey.png deleted file mode 100644 index 2d2e8472ef26a691c2a4ea12feb6e9bb83e89e99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv(Ey(i*8>L*{AXa8$#BNO!C~35 zWu2X!+1c513-%TO6)=_r`2{mLJiCzwVS)*8>L*I5;@y=;#Co2OA{i zGo1PV@Z_NnH!l8v{(vPp&K9VQu_VYZn8D%MjWi%9!qdeuL}Oxdf<&4_fPjYq7uSIw zKF7{EY}>S1F~&iKMPq@G5{I||%jyCbApx=EgkZ52ZUYU?jm8^{H8mA(9zGb*m}O|~ r%)E-h-H~zDZK(?(1_EJ*7Z@1AlQ{MCAKZBaw1dIZ)z4*}Q$iB}d_O&d diff --git a/Resources/Textures/Mobs/Parts/lungs_advanced.png b/Resources/Textures/Mobs/Parts/lungs_advanced.png deleted file mode 100644 index 2186b3fe032dbeedb1a70973d277f84081a39930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyX#qYVt_Kbr`2YODhZ`5e!^3TC zYzzzx%+1Zcy}ixM%-r4G9UL5Vb#?Xi_3iBJ^z`&}baWgY9gU2P9-cg8VPRowYinX+ z;^E<8l3r|(ly6s1Ym`#RaOS^aaDqW{espwnaBy&Ze7v)>bN+9?LqHoDOM?7@862M7 zNCR?ac)B=-SoA)f5Y69Yz|(qMCeG>s16SOPMgRZ%-_moDzjoAJICt8Xmp{w4U7I1_ z^GG;h|LYA!PiM)Roy!fabzizZC-F5~K;t&%3$yFad#dvJhTKwQ?@oU&#C8*A5 zQ}9fSRWEo((-*-dUX8!B_?Qa9WR6Kc;TKe}yfxvow8!%u_8v{EXJq=_`w;Ptai;5@ fTRUCL*{D1!7!;OpUw%ROM zX1?p7%fpk0_8$#uXw{i8&2Xz<_zs{-#*!evU3NZ5RHk+2@BK(9K-__ zM6hmdZZhs_*f@DYF~g>&0CThJK`M-wKM9CkE>cll_Hf~uWe*uWtehN~IBeHEJjlp% zY#|5Zv~JtXaX@q7u>$8=&CbjcR&!$?GRYiV=Fq5ltUy=hn5;w6Ce}l; fvb+XK9~c<8CP=)TW$xt)bOeK^tDnm{r-UW|5&c!F diff --git a/Resources/Textures/Mobs/Parts/organs_human.rsi/brain_human.png b/Resources/Textures/Mobs/Parts/organs_human.rsi/brain_human.png deleted file mode 100644 index ba49b3e5e6646bec209b37b9e53b902e5f4da896..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 708 zcmV;#0z3VQP)DJ$>i^Mj{eBw>UE3SFjDJvjD8z0+b~l7tkmUlh}JGp)h3SI77u^b+{-+w5 zUU0r&aj_;su_r>XCqu9&La-)6uqH#kUU0D|L#ib}t0h3TTWq&mZMR!&q$ED0BtE1h zJ+D}3uvclYSZJdpJ+D`2uvlrHB0H&6WvEnSs8nU0B0H&6WS1d1m?1f%QDCA`V4_iB zk{~yoPF<5AH(Ee8Y)wL%aAS{XTW3l?W=TGXVpdy0H<4*v7#~C000001bW%=J06^y0 zW&i*IMoC0LR5*>zk!w?eP!NV)yAU1kq?S^lnb=JX$}lrjgt9tjfdOn1QT}|kRqg02(c__Sn{UX)TjaL8=G7vi@2>Em(3Bl z%y!Nt+f9l#jhcJUp? z_qaR0D8n#J029n!&+HoyeRE>hmSx-INCVpt{+fo~@AAL*{AXa8$#CZXnKS>F zE&KofzcB-Yywm0gpaRB{AirP+hi5m^fE-It7sn8diOC5PcN`ivbTBE3_ISNuYT`PU zp>%2;;|iuT3pr2Jq&c&N=q@~$(bmSgm~(^F0_z+OCI-uyEE*D@-oFMK!rL*)GxUFRxBtyaZMhZ z@)saN+blaDmbHfQiV| z^RrfnG-xHPTGF5;Ak~uAk*%?7rCx=MWe+36(l0EBq7^Pq1nOt-boFyt=akR{00|#3 AEdT%j diff --git a/Resources/Textures/Mobs/Parts/organs_human.rsi/kidneys_human.png b/Resources/Textures/Mobs/Parts/organs_human.rsi/kidneys_human.png deleted file mode 100644 index 0b324e81bab1a52f0fddbfd17bff6c3103e8e046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=>VS)*8>L*oLp9ZV{6;$j>uip zGyXq+FsIV%!;Om%Pac|Mes2;`8DmM1UoeBivm0qZPKc+AV~EDY?%I@k;hTCBJZum;H-mb`J;M}R4Z^9|1$p3D>9HW-C0h&pphpg}F5 oLG8eW20eib4eOX<6BaNs6ghKxZJe`_6KFnzr>mdKI;Vst051+gg8%>k diff --git a/Resources/Textures/Mobs/Parts/organs_human.rsi/liver_human.png b/Resources/Textures/Mobs/Parts/organs_human.rsi/liver_human.png deleted file mode 100644 index efa7e75f768b607f33c743455be129c28b9266f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 174 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$Dv*8>L*e7JG(TyD|+xa1A~ zA$MyU|3825@Z_QYiE8XXHH;-ee!&b5&u*jvIWC?qjv*QolM^Hu9RdWVo?oJ~rbp?4 z)D)3d4M)-gdHuqI9Ih=~rSqm~P4iKYn=(f^#FB+Wyd!*MF0fqq!NViL)XdMoFsF_6 U=raZuYoK`yp00i_>zopr0Igd*E&u=k diff --git a/Resources/Textures/Mobs/Parts/organs_human.rsi/lungs_human.png b/Resources/Textures/Mobs/Parts/organs_human.rsi/lungs_human.png deleted file mode 100644 index 6e644517a7d5a8f960c4e5e62753bff86fb7b7ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvxd5LK*8>L*{D1!7!;Om{Y8xNs z75(p-@bKiJ|Fh>G4hXpvpB&3A@einyu_VYZn8D%MjWi&q($mE;L}Oxd!UA;x2l0Rf z5v-e=n~b{}Hcp;U%&@5`z})P5kP74FPXc0>i&RvXJzRKZ*+WJTDIx` zTgbsU?LrVc+w%(nI~E6|lWChL&2iS>}I fEU!V*2L=YN2@)@7nR~ec9l_w~>gTe~DWM4f=U`Ub diff --git a/Resources/Textures/Mobs/Parts/organs_human.rsi/meta.json b/Resources/Textures/Mobs/Parts/organs_human.rsi/meta.json deleted file mode 100644 index 46bbb3c601..0000000000 --- a/Resources/Textures/Mobs/Parts/organs_human.rsi/meta.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "version": 1, - "size": { - "x": 32, - "y": 32 - }, - "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/vgstation-coders/vgstation13", - "states": [ - { - "name": "brain_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - { - "name": "eyes_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - { - "name": "heart_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - { - "name": "kidneys_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - { - "name": "liver_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - { - "name": "lungs_human", - "directions": 1, - "delays": [ - [1.0] - ] - }, - ] -} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/appendix.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/appendix.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4fa1293a08c4f55d37b1818558ed8e2e599357 GIT binary patch literal 258 zcmV+d0sa1oP)dK@L!FCoxEZz^M7?^L~d(40kLJ0BCRMy~b9ofhIYjc$8F6Yp09obsyv3)t92A>$u zQ0evvE*55_UGG~|0&#Uv|g zsYhWFvHxhGZHbdD{!Ie_!8pbwD{^xPE**S>QteQkY?1q_xB5=c>U4PXHMRb=d<(Y2 g%pX_?A%u7;zxkaUiFf&c&j07*qoM6N<$f<3``CjbBd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/brain.png new file mode 100644 index 0000000000000000000000000000000000000000..04d04890f6b4a831e8889c40f264d284b61fca71 GIT binary patch literal 461 zcmV;;0W$uHP)amXX`z%|4S0FqahNyry%`1+3WY+UxM#Gm55By4E0N*uU$OPw zz0h^~3Q=;Krc@ z`VyZs&EKtvFrAEISOq%2CK!p>=m{OC?t~J!_5A{Dq>?f>^MEVw3O%7?l`O2Y4qHWY z@K^9Jwu+`^6fOb$=3%+h1o~{GlKyJK{9d6@C;)x~p-rXfm=&9b00000NkvXXu0mjf DKDXCd literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/ears.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/ears.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9ab068ebcd284332fdf3905f688d2d3b56dfa8 GIT binary patch literal 619 zcmV-x0+juUP)&VUCG9{xw%Wz)`GHtoE{ zSw6RkHyO(T2nB-t`P%~E!+V2|Uw^nhV`JQ8EGGfJ1o-kP(~)sLWp3?+wodYOHZ86S z_gc#yZ@VhoueE;>-Yr|mr%Y9uB$Ujpm5+lqt?rrU3X> zyw&!@2Q-=^3|(O8f<$zWZS98@&+zi}#DR(Zjpm4WEJ7#{1fVw@(6TkY6mQiT*H%*X z&Gh_60_KHC@||5jFV7=-!vU3Qhl^U>Cy5PRsC}|=UlZa=<>l##6OTmzW<>ld{boOW zfT0UD5AgClZs0{O&BOIO?sPk9ED7SV2>ouGP#{S8;fYe&rc}1+4F~M(`UwSs^tfQwq) z_h`?G0F;PCbPq!pO2mB5)&drZkXIs!E7gfONh)8;n+RAYqEhXsCurz`O0`2g7MW?> zW!U%|mH)$`K8_#l$=abliC0y>m4JC6^LUNeg9i^1{{ZSoB6z)o*qQ(U002ovPDHLk FV1iDUAwU2C literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/eyeballs.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/eyeballs.png new file mode 100644 index 0000000000000000000000000000000000000000..301158f76bb6b306a14f6c71d3a3ca4c4d8faea9 GIT binary patch literal 574 zcmV-E0>S->P)+l{v~p)`Va?;pH)rZf_- z&dzu(D6#+SNt~D%!;y0%O+oMIBKp&ae%EMQ_cN&}o*z90`~4ceeyL-9(L!N*7Pm_I zW?s@TS)&Z>gkJ}u?ZmHKo&>px-rgQmm)<}-dKkkK7opt)Z~ib569RfmnWSMdCIsA; zT9SmHNnh8Av_$}TG};fa0om9D>(lF^2t5K?G2h*2YU?TmRl$$KSe8N(3-gn`u`8lpFmsrg| zr0QY<3fFKZHAMh8cqoq3XU2XR|M|lrck4aP=Z2KHdi;X&743>bHbcr)Cejwg-B;{O zRp@+MVL3Oa)P=zBKoA21aR9($yAE78@oCFNBocuh->;P4wE=7S9ROfYOvB#WPcd>} z7XV=8t=(;Db#mDZUB@QnDqY8BKAY+IAJUbHj~f-{{)Tu+NXS3UcabXmbdP+@AOHXW M07*qoM6N<$f*J?{;{X5v literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/heart-off.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/heart-off.png new file mode 100644 index 0000000000000000000000000000000000000000..b2c6562c8ffd731b5d34aa7e101ce61523a9537a GIT binary patch literal 242 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJot`d^Ar*6y6C_v{Cy4YkEo6Ho z9`o;in9d9Pt!I*zLJ#*gn@dXB$D~wfi@AulPk6(?1_TEqr6oXu0(D#a3LRt?giJo3 zprdwtL%^|#`xJrX$Nyemd3nA^sTuzGBb4&tr>e(BWe>i_53?D0yi6+#_MO*v^m?Oy zmoaYlaw7vE$Vsd|e*g$B{CKGJS4QA}iv8o8;r$P4W+=0BfFy!`|#GSrjI zbF^7sDoB=`xS{C(AWFt-TF*lL2e(`~oaQTBSQ;$LywqYxDMxJs-=(FJw-%;wvCNIl zYfsuRvub_V&WHcaSpW7PUwzt^K@bT3p8fOC_syD4i)nv^Z*t#@zt+*kW1W4;Tlv3IwcGrn^!QaXI|Tjqr=4f{S%m3q*^cma4kHF_Wvk);GNT#pNgQrvLAyoJsm?Px<%mnL1tJZo}#4)(j3=PZ%0j zoCw)GHRR`4skrU&r@l|lI*_wj>dN6&OuLF^#9!T@VLzq5?UXoMn>K?9SH99V+d$LB z>!msnpfC3RXU5#id3FnOqt3B!@qER&?0P@bkDCj=cnhzbn7l1A^DfIv(SZB&-&ff^ zu=g-cu=Fyp-~ZE8eu4GMr`12U{k`N8k`nd)oR_$q#5#%S!+$rv`_GWt_^>O>tpQ?- chyMM~n^rnpzA$Y8Fg6%GUHx3vIVCg!0E67gmjD0& literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/kidneys.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/kidneys.png new file mode 100644 index 0000000000000000000000000000000000000000..4296d5d33a4eac02c7ff79f6398ef91f2bb02ce9 GIT binary patch literal 351 zcmV-l0igbgP)XA0f)y^c}3cL*Az9BXqGm6(Q822`B_rYUOU2q1bg1 z$R-pjq5GC7_UZ2b?=Ardf*^>7WO1b3XH#0ok<*;B(7-%Nt<&*z!oGX|6+wY{lIp?j zEBc)t0AMy>p{`1BAz2nj`s(@yqhS{S@Vt4!qG$z+@Qxr)Qtc);nBrVWTgcpxhTVgX z{78VCxZmkn_wMqIrxP}tuWW~0p+16lz{R-E;z<9=SFql!0qmT8Y%dp*nH@0BP5e;= z)Kv+!RrdYiaRFfG-t2*U4ghMaP*-J;0PhI6kSs%_fhV*t+waNMK}=nhxH#VzUl#i@ x`3M>T7m_Ut;O_qON*Fo{3aju&wTFy4BgIweGJR(Pjf8@{h;_7U*FcVJR`jf0O)q^ zHq9}ig8~-Y0x5L40rvLx|07*qoM6N<$f)QGJ-2eap literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/lungs.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/lungs.png new file mode 100644 index 0000000000000000000000000000000000000000..7a2a48e218af19c09c1e6ae91590829df903b261 GIT binary patch literal 359 zcmV-t0hs=YP)YE0LFh22N9%%mXP!n6qkle%lunihkaf1 z>zgZp65zdf+t6+hM%<6GG8d9tZ#-m|N*F`Bn zqhdr7WAz72XAuC?S%lReAd(nBy9MP2N|_;&7|(Hu0v~|z>GKXmfsg07h$Pl-K`DSt z1&c7KO+3d%rh>`bw`3|>`XUUFsn~6Ripr#_`zKum!AE;+?}4ZZuVsETPkw~gTe6U`2fTbp|vl{WuO26002ovPDHLk FV1fr-ryKwP literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/meta.json b/Resources/Textures/Mobs/Species/Human/organs.rsi/meta.json new file mode 100644 index 0000000000..13310de52c --- /dev/null +++ b/Resources/Textures/Mobs/Species/Human/organs.rsi/meta.json @@ -0,0 +1,121 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from https://github.com/tgstation/tgstation/blob/7489d8e74693f9ca811e4f8a921de10ed96c619e/icons/obj/surgery.dmi", + "states": [ + { + "name": "appendix", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "appendixinflamed", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "brain", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "ears", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "eyeballs", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "heart-off", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "heart-on", + "directions": 1, + "delays": [ + [ + 0.6, + 0.1, + 0.1 + ] + ] + }, + { + "name": "kidneys", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "liver", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "lungs", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "stomach", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "tonguenormal", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Mobs/Species/Human/organs.rsi/stomach.png b/Resources/Textures/Mobs/Species/Human/organs.rsi/stomach.png new file mode 100644 index 0000000000000000000000000000000000000000..0d7be9bfe42b6030736154d907c1e527e3dd8e54 GIT binary patch literal 370 zcmV-&0ge8NP)1t`JXt{D5s+nOKjCOHHM=>~Fzi2UQ?nDr5dHuLfg)KZku%Ez0?#$=F3T+D z5agOd3G{kRmXSWH{o4E9_uBU^2Ne|+4g|v2TNQu5ztyfL_FM*QwQ?EmZlDZy*MN#8 zG77)c0^wU{V!xh)V38`(!|)tB*xg(3Kl`6)GtI(3U#qMcpJqVa1;b_RPYv@9D5Cdiy*qFR2Msy z;!ui|8e0ss$H~r#i_7_K2j27W^6-KrNs=T<|4fPd;c#U`qzxNQ)9LqnD2W7yp>uS1 z9Xks^i!*$-z9SYqfAoG2hq&1cSIDNj2wTK#Z@OZT-+=LE*?N2c=9a+CIG`2w@ofiy!rVN??JcTTRnnHj-hLSs zMARl?)pfAABn)MYT*}3=EPUG`p{OJslhmX|v)*8+D%2Wv&R^~$WyiXK%ePkrppq{L zz1L_1ORb002ovPDHLkV1gRrsQ>@~ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_basic.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/full.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_basic.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/full.png diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_head_f.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/head_f.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_head_f.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/head_f.png diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_head_m.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/head_m.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_head_m.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/head_m.png diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_l_arm.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/l_arm.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_l_arm.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/l_arm.png diff --git a/Resources/Textures/Mobs/Species/Human/parts.rsi/l_foot.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..c448837af238a4f9dcce79ddc7fb56b1b59efd93 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)2IAwlHkEYZvhvD8gCb z5n0T@pr;JNj1^1m%YcIHC7!;n>`yp&xQ&f#Jl}LNFfdAcx;TbZ+vKC literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_l_hand.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/l_hand.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_l_hand.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/l_hand.png diff --git a/Resources/Textures/Mobs/Species/Human/parts.rsi/l_leg.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..b3ce27ba862cd732dd30ee70688b6ab071e3a10d GIT binary patch literal 6361 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/Human/parts.rsi/meta.json b/Resources/Textures/Mobs/Species/Human/parts.rsi/meta.json new file mode 100644 index 0000000000..33281d6f3e --- /dev/null +++ b/Resources/Textures/Mobs/Species/Human/parts.rsi/meta.json @@ -0,0 +1,236 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "https://github.com/tgstation/tgstation/blob/8024397cc81c5f47f74cf4279e35728487d0a1a7/icons/mob/human_parts_greyscale.dmi and modified by DrSmugleaf", + "states": [ + { + "name": "full", + "directions": 1, + "delays": [ + [ + 1.0 + ] + ] + }, + { + "name": "head_f", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "head_m", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "l_arm", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "l_foot", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "l_hand", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "l_leg", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "r_arm", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "r_foot", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "r_hand", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "r_leg", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "torso_f", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + }, + { + "name": "torso_m", + "directions": 4, + "delays": [ + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ], + [ + 1.0 + ] + ] + } + ] +} diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_r_arm.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/r_arm.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_r_arm.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/r_arm.png diff --git a/Resources/Textures/Mobs/Species/Human/parts.rsi/r_foot.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..8d51a591a454f47a7336b4d8457b511d9a242d57 GIT binary patch literal 398 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE)2IAwlHkEYZvhvD8gCb z5n0T@pr;JNj1^1m%YcIHC7!;n>`yp&xJ}qnckjz%U|^K?ba4!+xb^n-#;ijDBF8?y z_j;lBLcl7G!+b&i1kLIbr>EIDsJn01a+8%g>X^A*Z@IVC6s04#C%Jw4zl~>l@sGRC zMt7vc?d>y9NM=4@1loZg)E!Zosjuz*>Cmj_c1I@dF^CU~x4nBM{K~ct{nc^rpWH56 zemqCb)9PCG%s%&eVQc4n?Q=o3bMBW$>|wdiKd<5Gv(QN*=__aLW{!=W0dz>$<}cCm l3kw_fpa1{7w$Xm=Urzs9=9On}eUJy)=jrO_vd$@?2>`*Fj9LHy literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_r_hand.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/r_hand.png similarity index 100% rename from Resources/Textures/Mobs/Species/human.rsi/human_r_hand.png rename to Resources/Textures/Mobs/Species/Human/parts.rsi/r_hand.png diff --git a/Resources/Textures/Mobs/Species/Human/parts.rsi/r_leg.png b/Resources/Textures/Mobs/Species/Human/parts.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..67917397a1e5bec83352b90b0e214c940d42832d GIT binary patch literal 6343 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 diff --git a/Resources/Textures/Mobs/Species/human.rsi/human_r_leg.png b/Resources/Textures/Mobs/Species/human.rsi/human_r_leg.png deleted file mode 100644 index 941b96e032ebaea72e0063ca9185840c2ba7e397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU{vvRaSW-L^Y+$WzrzM1Z4a59 z0;h+q?7E`up<1Q=Cnkr(I@q?5nU7~p$d(CyXNx3Oc?c?8y^-0o==;suKQE;x9du^_ z8U_Y`j*0DDwd$Su)LTl|Z&bSQ&9uvXIrrrsk%dVf%aYd@H)|x6Sbn#&?qG5XaCpP8 z(Ng?F{Jvku|Cl~+eSP80uWR~&{;NJkKI_&Nw0shK=g!=nbBeVbT$a@A_})`iwSM*S z8-g&4By^&m?7AOvtK(zVm8 za~3d7dKodvQ%dI0>vx{7_KICTX0A};FiW@kzU&6qb(!1Vd_FawvB&V%wQ$a}@7E{x saPGQYY5!pN&EHnH&N=+P7x`d~zOv=)H;Y(w4}l!u>FVdQ&MBb@0N4SYvH$=8 diff --git a/Resources/Textures/Mobs/Species/human.rsi/meta.json b/Resources/Textures/Mobs/Species/human.rsi/meta.json deleted file mode 100644 index 99a7d1ab13..0000000000 --- a/Resources/Textures/Mobs/Species/human.rsi/meta.json +++ /dev/null @@ -1 +0,0 @@ -{"version": 1, "size": {"x": 32, "y": 32}, "states": [{"name": "human_basic", "directions": 1, "delays": [[1.0]]}, {"name": "human_chest_f", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_chest_m", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_head_f", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_head_m", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_l_arm", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_l_hand", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_l_leg", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_r_arm", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_r_hand", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}, {"name": "human_r_leg", "directions": 4, "delays": [[1.0], [1.0], [1.0], [1.0]]}]} \ No newline at end of file diff --git a/SpaceStation14.sln.DotSettings b/SpaceStation14.sln.DotSettings index 14abc1df09..9a0e2799ef 100644 --- a/SpaceStation14.sln.DotSettings +++ b/SpaceStation14.sln.DotSettings @@ -52,6 +52,7 @@ True True True + True True True True @@ -59,6 +60,7 @@ True True True + True True True True @@ -68,9 +70,11 @@ True True True + True True True True + True True True True @@ -79,7 +83,7 @@ True True True + True True True True - \ No newline at end of file From 0e6f55a23db07b0a188e6d54a322957ba0d2781e Mon Sep 17 00:00:00 2001 From: Clement-O Date: Mon, 17 Aug 2020 14:45:02 +0200 Subject: [PATCH 09/10] Added character limit for chat (#1586) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added character limit for chat * Changed buffer reading from Int16 to Int32 Co-authored-by: Clément --- Content.Client/Chat/ChatBox.cs | 10 ++- Content.Client/Chat/ChatManager.cs | 35 +++++++++- Content.Server/Chat/ChatManager.cs | 70 ++++++++++++++++++- .../Chat/ChatMaxMsgLengthMessage.cs | 39 +++++++++++ 4 files changed, 151 insertions(+), 3 deletions(-) create mode 100644 Content.Shared/Chat/ChatMaxMsgLengthMessage.cs diff --git a/Content.Client/Chat/ChatBox.cs b/Content.Client/Chat/ChatBox.cs index eb37c86703..dbe24f1d76 100644 --- a/Content.Client/Chat/ChatBox.cs +++ b/Content.Client/Chat/ChatBox.cs @@ -35,6 +35,8 @@ namespace Content.Client.Chat public bool ReleaseFocusOnEnter { get; set; } = true; + public bool ClearOnEnter { get; set; } = true; + public ChatBox() { /*MarginLeft = -475.0f; @@ -166,12 +168,18 @@ namespace Content.Client.Chat private void Input_OnTextEntered(LineEdit.LineEditEventArgs args) { + // We set it there to true so it's set to false by TextSubmitted.Invoke if necessary + ClearOnEnter = true; + if (!string.IsNullOrWhiteSpace(args.Text)) { TextSubmitted?.Invoke(this, args.Text); } - Input.Clear(); + if (ClearOnEnter) + { + Input.Clear(); + } if (ReleaseFocusOnEnter) { diff --git a/Content.Client/Chat/ChatManager.cs b/Content.Client/Chat/ChatManager.cs index 21be7769ae..61dbdc28f1 100644 --- a/Content.Client/Chat/ChatManager.cs +++ b/Content.Client/Chat/ChatManager.cs @@ -1,17 +1,21 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Content.Client.Interfaces.Chat; using Content.Shared.Chat; using Robust.Client.Console; using Robust.Client.Interfaces.Graphics.ClientEye; using Robust.Client.Interfaces.UserInterface; +using Robust.Client.Player; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; +using Robust.Shared.Localization; using Robust.Shared.Log; using Robust.Shared.Maths; +using Robust.Shared.Network; using Robust.Shared.Timing; using Robust.Shared.Utility; @@ -45,6 +49,11 @@ namespace Content.Client.Chat ///

internal sealed class ChatManager : IChatManager { + /// + /// The maximum length a player-sent message can be sent + /// + public int MaxMessageLength = 1000; + private const int VoiceRange = 7; // how far voice goes in world units + /// + /// The message displayed to the player when it exceeds the chat character limit + /// + private const string MaxLengthExceededMessage = "Your message exceeded {0} character limit"; + #pragma warning disable 649 [Dependency] private readonly IEntitySystemManager _entitySystemManager; [Dependency] private readonly IServerNetManager _netManager; @@ -33,6 +45,12 @@ namespace Content.Server.Chat public void Initialize() { _netManager.RegisterNetMessage(MsgChatMessage.NAME); + _netManager.RegisterNetMessage(ChatMaxMsgLengthMessage.NAME, _onMaxLengthRequest); + + // Tell all the connected players the chat's character limit + var msg = _netManager.CreateNetMessage(); + msg.MaxMessageLength = MaxMessageLength; + _netManager.ServerSendToAll(msg); } public void DispatchServerAnnouncement(string message) @@ -69,6 +87,17 @@ namespace Content.Server.Chat return; } + // Get entity's PlayerSession + IPlayerSession playerSession = source.GetComponent().playerSession; + + // Check if message exceeds the character limit if the sender is a player + if (playerSession != null) + if (message.Length > MaxMessageLength) + { + DispatchServerMessage(playerSession, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); + return; + } + var pos = source.Transform.GridPosition; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); @@ -90,6 +119,17 @@ namespace Content.Server.Chat return; } + // Check if entity is a player + IPlayerSession playerSession = source.GetComponent().playerSession; + + // Check if message exceeds the character limit + if (playerSession != null) + if (action.Length > MaxMessageLength) + { + DispatchServerMessage(playerSession, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); + return; + } + var pos = source.Transform.GridPosition; var clients = _playerManager.GetPlayersInRange(pos, VoiceRange).Select(p => p.ConnectedClient); @@ -103,6 +143,13 @@ namespace Content.Server.Chat public void SendOOC(IPlayerSession player, string message) { + // Check if message exceeds the character limi + if (message.Length > MaxMessageLength) + { + DispatchServerMessage(player, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); + return; + } + var msg = _netManager.CreateNetMessage(); msg.Channel = ChatChannel.OOC; msg.Message = message; @@ -114,6 +161,13 @@ namespace Content.Server.Chat public void SendDeadChat(IPlayerSession player, string message) { + // Check if message exceeds the character limit + if (message.Length > MaxMessageLength) + { + DispatchServerMessage(player, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); + return; + } + var clients = _playerManager.GetPlayersBy(x => x.AttachedEntity != null && x.AttachedEntity.HasComponent()).Select(p => p.ConnectedClient);; var msg = _netManager.CreateNetMessage(); @@ -126,7 +180,14 @@ namespace Content.Server.Chat public void SendAdminChat(IPlayerSession player, string message) { - if(!_conGroupController.CanCommand(player, "asay")) + // Check if message exceeds the character limit + if (message.Length > MaxMessageLength) + { + DispatchServerMessage(player, Loc.GetString(MaxLengthExceededMessage, MaxMessageLength)); + return; + } + + if (!_conGroupController.CanCommand(player, "asay")) { SendOOC(player, message); return; @@ -149,5 +210,12 @@ namespace Content.Server.Chat msg.MessageWrap = $"OOC: (D){sender}: {{0}}"; _netManager.ServerSendToAll(msg); } + + private void _onMaxLengthRequest(ChatMaxMsgLengthMessage msg) + { + var response = _netManager.CreateNetMessage(); + response.MaxMessageLength = MaxMessageLength; + _netManager.ServerSendMessage(response, msg.MsgChannel); + } } } diff --git a/Content.Shared/Chat/ChatMaxMsgLengthMessage.cs b/Content.Shared/Chat/ChatMaxMsgLengthMessage.cs new file mode 100644 index 0000000000..6e183ebca6 --- /dev/null +++ b/Content.Shared/Chat/ChatMaxMsgLengthMessage.cs @@ -0,0 +1,39 @@ +using Lidgren.Network; +using Robust.Shared.Interfaces.Network; +using Robust.Shared.Network; +using System; +using System.Collections.Generic; +using System.Text; + +namespace Content.Shared.Chat +{ + /// + /// This message is sent by the server to let clients know what is the chat's character limit for this server. + /// It is first sent by the client as a request + /// + public sealed class ChatMaxMsgLengthMessage : NetMessage + { + #region REQUIRED + + public const MsgGroups GROUP = MsgGroups.Command; + public const string NAME = nameof(ChatMaxMsgLengthMessage); + public ChatMaxMsgLengthMessage(INetChannel channel) : base(NAME, GROUP) { } + + #endregion + + /// + /// The max length a player-sent message can get + /// + public int MaxMessageLength { get; set; } + + public override void ReadFromBuffer(NetIncomingMessage buffer) + { + MaxMessageLength = buffer.ReadInt32(); + } + + public override void WriteToBuffer(NetOutgoingMessage buffer) + { + buffer.Write(MaxMessageLength); + } + } +} From f54ba4b6d574074f396f5cb12d3c625cd67933cf Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Tue, 18 Aug 2020 00:12:21 +1000 Subject: [PATCH 10/10] Gas overlay chunking (#1678) Co-authored-by: Metal Gear Sloth --- Content.Client/Atmos/GasTileOverlay.cs | 7 +- .../Components/Atmos/CanSeeGasesComponent.cs | 35 -- .../EntitySystems/GasTileOverlaySystem.cs | 111 ++-- Content.Server/Atmos/Hotspot.cs | 2 +- Content.Server/Atmos/TileAtmosphere.cs | 3 +- .../Atmos/GasTileOverlaySystem.cs | 475 ++++++++++++++++++ .../EntitySystems/GasTileOverlaySystem.cs | 145 ------ Content.Server/GameTicking/GameTicker.cs | 4 +- Content.Server/IgnoredComponents.cs | 1 - Content.Shared/Atmos/Atmospherics.cs | 17 +- Content.Shared/Atmos/GasPrototype.cs | 17 - .../EntitySystems/Atmos/GasOverlayChunk.cs | 103 ++++ .../Atmos/SharedGasTileOverlaySystem.cs | 98 ++++ .../SharedGasTileOverlaySystem.cs | 72 --- .../Entities/Mobs/Player/observer.yml | 1 - .../Entities/Mobs/Species/human.yml | 1 - 16 files changed, 786 insertions(+), 306 deletions(-) delete mode 100644 Content.Client/GameObjects/Components/Atmos/CanSeeGasesComponent.cs create mode 100644 Content.Server/GameObjects/EntitySystems/Atmos/GasTileOverlaySystem.cs delete mode 100644 Content.Server/GameObjects/EntitySystems/GasTileOverlaySystem.cs create mode 100644 Content.Shared/GameObjects/EntitySystems/Atmos/GasOverlayChunk.cs create mode 100644 Content.Shared/GameObjects/EntitySystems/Atmos/SharedGasTileOverlaySystem.cs delete mode 100644 Content.Shared/GameObjects/EntitySystems/SharedGasTileOverlaySystem.cs diff --git a/Content.Client/Atmos/GasTileOverlay.cs b/Content.Client/Atmos/GasTileOverlay.cs index 8f852d0ed1..16a55249e4 100644 --- a/Content.Client/Atmos/GasTileOverlay.cs +++ b/Content.Client/Atmos/GasTileOverlay.cs @@ -40,7 +40,12 @@ namespace Content.Client.Atmos foreach (var mapGrid in _mapManager.FindGridsIntersecting(mapId, worldBounds)) { - foreach (var tile in mapGrid.GetTilesIntersecting(worldBounds)) + if (!_gasTileOverlaySystem.HasData(mapGrid.Index)) + continue; + + var gridBounds = new Box2(mapGrid.WorldToLocal(worldBounds.BottomLeft), mapGrid.WorldToLocal(worldBounds.TopRight)); + + foreach (var tile in mapGrid.GetTilesIntersecting(gridBounds)) { foreach (var (texture, color) in _gasTileOverlaySystem.GetOverlays(mapGrid.Index, tile.GridIndices)) { diff --git a/Content.Client/GameObjects/Components/Atmos/CanSeeGasesComponent.cs b/Content.Client/GameObjects/Components/Atmos/CanSeeGasesComponent.cs deleted file mode 100644 index d95748f72b..0000000000 --- a/Content.Client/GameObjects/Components/Atmos/CanSeeGasesComponent.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Content.Client.Atmos; -using Robust.Client.GameObjects; -using Robust.Client.Interfaces.Graphics.Overlays; -using Robust.Shared.GameObjects; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.IoC; - -namespace Content.Client.GameObjects.Components.Atmos -{ - [RegisterComponent] - public class CanSeeGasesComponent : Component - { - [Dependency] private readonly IOverlayManager _overlayManager = default!; - - public override string Name => "CanSeeGases"; - - public override void HandleMessage(ComponentMessage message, IComponent component) - { - base.HandleMessage(message, component); - - switch (message) - { - case PlayerAttachedMsg _: - if(!_overlayManager.HasOverlay(nameof(GasTileOverlay))) - _overlayManager.AddOverlay(new GasTileOverlay()); - break; - - case PlayerDetachedMsg _: - if(!_overlayManager.HasOverlay(nameof(GasTileOverlay))) - _overlayManager.RemoveOverlay(nameof(GasTileOverlay)); - break; - } - } - } -} diff --git a/Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs b/Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs index a3eeadd0d3..253563f527 100644 --- a/Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs +++ b/Content.Client/GameObjects/EntitySystems/GasTileOverlaySystem.cs @@ -1,13 +1,19 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; +using Content.Client.Atmos; +using Content.Client.GameObjects.Components.Atmos; using Content.Shared.Atmos; -using Content.Shared.GameObjects.EntitySystems; +using Content.Shared.GameObjects.EntitySystems.Atmos; using JetBrains.Annotations; +using Robust.Client.GameObjects; +using Robust.Client.GameObjects.EntitySystems; using Robust.Client.Graphics; +using Robust.Client.Interfaces.Graphics.Overlays; using Robust.Client.Interfaces.ResourceManagement; using Robust.Client.ResourceManagement; using Robust.Client.Utility; -using Robust.Shared.GameObjects; +using Robust.Shared.Interfaces.Map; using Robust.Shared.IoC; using Robust.Shared.Map; using Robust.Shared.Maths; @@ -16,8 +22,9 @@ using Robust.Shared.Utility; namespace Content.Client.GameObjects.EntitySystems { [UsedImplicitly] - public sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem + internal sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem { + [Dependency] private readonly IMapManager _mapManager = default!; [Dependency] private readonly IResourceCache _resourceCache = default!; private readonly Dictionary _fireCache = new Dictionary(); @@ -36,19 +43,20 @@ namespace Content.Client.GameObjects.EntitySystems private readonly float[][] _fireFrameDelays = new float[FireStates][]; private readonly int[] _fireFrameCounter = new int[FireStates]; private readonly Texture[][] _fireFrames = new Texture[FireStates][]; - - private Dictionary> _overlay = new Dictionary>(); + + private Dictionary> _tileData = + new Dictionary>(); public override void Initialize() { base.Initialize(); - - SubscribeNetworkEvent(new EntityEventHandler(OnTileOverlayMessage)); + SubscribeNetworkEvent(HandleGasOverlayMessage); + _mapManager.OnGridRemoved += OnGridRemoved; for (var i = 0; i < Atmospherics.TotalNumberOfGases; i++) { - var gas = Atmospherics.GetGas(i); - switch (gas.GasOverlay) + var overlay = Atmospherics.GetOverlay(i); + switch (overlay) { case SpriteSpecifier.Rsi animated: var rsi = _resourceCache.GetResource(animated.RsiPath).RSI; @@ -82,13 +90,77 @@ namespace Content.Client.GameObjects.EntitySystems _fireFrameDelays[i] = state.GetDelays(); _fireFrameCounter[i] = 0; } + + var overlayManager = IoCManager.Resolve(); + if(!overlayManager.HasOverlay(nameof(GasTileOverlay))) + overlayManager.AddOverlay(new GasTileOverlay()); + } + + private void HandleGasOverlayMessage(GasOverlayMessage message) + { + foreach (var (indices, data) in message.OverlayData) + { + var chunk = GetOrCreateChunk(message.GridId, indices); + chunk.Update(data, indices); + } + } + + // Slightly different to the server-side system version + private GasOverlayChunk GetOrCreateChunk(GridId gridId, MapIndices indices) + { + if (!_tileData.TryGetValue(gridId, out var chunks)) + { + chunks = new Dictionary(); + _tileData[gridId] = chunks; + } + + var chunkIndices = GetGasChunkIndices(indices); + + if (!chunks.TryGetValue(chunkIndices, out var chunk)) + { + chunk = new GasOverlayChunk(gridId, chunkIndices); + chunks[chunkIndices] = chunk; + } + + return chunk; + } + + public override void Shutdown() + { + base.Shutdown(); + _mapManager.OnGridRemoved -= OnGridRemoved; + var overlayManager = IoCManager.Resolve(); + if(!overlayManager.HasOverlay(nameof(GasTileOverlay))) + overlayManager.RemoveOverlay(nameof(GasTileOverlay)); + } + + private void OnGridRemoved(GridId gridId) + { + if (_tileData.ContainsKey(gridId)) + { + _tileData.Remove(gridId); + } + } + + public bool HasData(GridId gridId) + { + return _tileData.ContainsKey(gridId); } public (Texture, Color color)[] GetOverlays(GridId gridIndex, MapIndices indices) { - if (!_overlay.TryGetValue(gridIndex, out var tiles) || !tiles.TryGetValue(indices, out var overlays)) + if (!_tileData.TryGetValue(gridIndex, out var chunks)) return Array.Empty<(Texture, Color)>(); + + var chunkIndex = GetGasChunkIndices(indices); + if (!chunks.TryGetValue(chunkIndex, out var chunk)) + return Array.Empty<(Texture, Color)>(); + + var overlays = chunk.GetData(indices); + if (overlays.Gas == null) + return Array.Empty<(Texture, Color)>(); + var fire = overlays.FireState != 0; var length = overlays.Gas.Length + (fire ? 1 : 0); @@ -112,23 +184,6 @@ namespace Content.Client.GameObjects.EntitySystems return list; } - private void OnTileOverlayMessage(GasTileOverlayMessage ev) - { - if(ev.ClearAllOtherOverlays) - _overlay.Clear(); - - foreach (var data in ev.OverlayData) - { - if (!_overlay.TryGetValue(data.GridIndex, out var gridOverlays)) - { - gridOverlays = new Dictionary(); - _overlay.Add(data.GridIndex, gridOverlays); - } - - gridOverlays[data.GridIndices] = data.Data; - } - } - public override void FrameUpdate(float frameTime) { base.FrameUpdate(frameTime); diff --git a/Content.Server/Atmos/Hotspot.cs b/Content.Server/Atmos/Hotspot.cs index 2178a6bea8..4597813c6f 100644 --- a/Content.Server/Atmos/Hotspot.cs +++ b/Content.Server/Atmos/Hotspot.cs @@ -23,7 +23,7 @@ namespace Content.Server.Atmos /// State for the fire sprite. /// [ViewVariables] - public int State; + public byte State; public void Start() { diff --git a/Content.Server/Atmos/TileAtmosphere.cs b/Content.Server/Atmos/TileAtmosphere.cs index cddfc3ee96..b1ad2df3cf 100644 --- a/Content.Server/Atmos/TileAtmosphere.cs +++ b/Content.Server/Atmos/TileAtmosphere.cs @@ -5,6 +5,7 @@ using System.Runtime.CompilerServices; using Content.Server.Atmos.Reactions; using Content.Server.GameObjects.Components.Atmos; using Content.Server.GameObjects.EntitySystems; +using Content.Server.GameObjects.EntitySystems.Atmos; using Content.Server.Interfaces; using Content.Shared.Atmos; using Content.Shared.Audio; @@ -745,7 +746,7 @@ namespace Content.Server.Atmos } else { - Hotspot.State = Hotspot.Volume > Atmospherics.CellVolume * 0.4f ? 2 : 1; + Hotspot.State = (byte) (Hotspot.Volume > Atmospherics.CellVolume * 0.4f ? 2 : 1); } if (Hotspot.Temperature > MaxFireTemperatureSustained) diff --git a/Content.Server/GameObjects/EntitySystems/Atmos/GasTileOverlaySystem.cs b/Content.Server/GameObjects/EntitySystems/Atmos/GasTileOverlaySystem.cs new file mode 100644 index 0000000000..456bb14293 --- /dev/null +++ b/Content.Server/GameObjects/EntitySystems/Atmos/GasTileOverlaySystem.cs @@ -0,0 +1,475 @@ +#nullable enable +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using Content.Server.GameObjects.Components.Atmos; +using Content.Server.Interfaces.GameTicking; +using Content.Shared.Atmos; +using Content.Shared.GameObjects.EntitySystems.Atmos; +using JetBrains.Annotations; +using Robust.Server.Interfaces.Player; +using Robust.Server.Player; +using Robust.Shared.Enums; +using Robust.Shared.Interfaces.Configuration; +using Robust.Shared.Interfaces.GameObjects; +using Robust.Shared.Interfaces.Map; +using Robust.Shared.Interfaces.Timing; +using Robust.Shared.IoC; +using Robust.Shared.Log; +using Robust.Shared.Map; +using Robust.Shared.Maths; +using Robust.Shared.Timing; + +namespace Content.Server.GameObjects.EntitySystems.Atmos +{ + [UsedImplicitly] + internal sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem + { + [Robust.Shared.IoC.Dependency] private readonly IGameTiming _gameTiming = default!; + [Robust.Shared.IoC.Dependency] private readonly IPlayerManager _playerManager = default!; + [Robust.Shared.IoC.Dependency] private readonly IMapManager _mapManager = default!; + [Robust.Shared.IoC.Dependency] private readonly IConfigurationManager _configManager = default!; + + /// + /// The tiles that have had their atmos data updated since last tick + /// + private Dictionary> _invalidTiles = new Dictionary>(); + + private Dictionary _knownPlayerChunks = + new Dictionary(); + + /// + /// Gas data stored in chunks to make PVS / bubbling easier. + /// + private Dictionary> _overlay = + new Dictionary>(); + + /// + /// How far away do we update gas overlays (minimum; due to chunking further away tiles may also be updated). + /// + private float _updateRange; + // Because the gas overlay updates aren't run every tick we need to avoid the pop-in that might occur with + // the regular PVS range. + private const float RangeOffset = 6.0f; + + /// + /// Overlay update ticks per second. + /// + private float _updateCooldown; + + public override void Initialize() + { + base.Initialize(); + + _playerManager.PlayerStatusChanged += OnPlayerStatusChanged; + _mapManager.OnGridRemoved += OnGridRemoved; + _configManager.RegisterCVar("net.gasoverlaytickrate", 3.0f); + } + + public override void Shutdown() + { + base.Shutdown(); + _playerManager.PlayerStatusChanged -= OnPlayerStatusChanged; + _mapManager.OnGridRemoved -= OnGridRemoved; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Invalidate(GridId gridIndex, MapIndices indices) + { + if (!_invalidTiles.TryGetValue(gridIndex, out var existing)) + { + existing = new HashSet(); + _invalidTiles[gridIndex] = existing; + } + + existing.Add(indices); + } + + private GasOverlayChunk GetOrCreateChunk(GridId gridIndex, MapIndices indices) + { + if (!_overlay.TryGetValue(gridIndex, out var chunks)) + { + chunks = new Dictionary(); + _overlay[gridIndex] = chunks; + } + + var chunkIndices = GetGasChunkIndices(indices); + + if (!chunks.TryGetValue(chunkIndices, out var chunk)) + { + chunk = new GasOverlayChunk(gridIndex, chunkIndices); + chunks[chunkIndices] = chunk; + } + + return chunk; + } + + private void OnGridRemoved(GridId gridId) + { + if (_overlay.ContainsKey(gridId)) + { + _overlay.Remove(gridId); + } + } + + public void ResettingCleanup() + { + _invalidTiles.Clear(); + _overlay.Clear(); + + foreach (var (_, data) in _knownPlayerChunks) + { + data.Reset(); + } + } + + private void OnPlayerStatusChanged(object? sender, SessionStatusEventArgs e) + { + if (e.NewStatus != SessionStatus.InGame) + { + if (_knownPlayerChunks.ContainsKey(e.Session)) + { + _knownPlayerChunks.Remove(e.Session); + } + + return; + } + + if (!_knownPlayerChunks.ContainsKey(e.Session)) + { + _knownPlayerChunks[e.Session] = new PlayerGasOverlay(); + } + } + + /// + /// Checks whether the overlay-relevant data for a gas tile has been updated. + /// + /// + /// + /// + /// + /// true if updated + private bool TryRefreshTile(GridAtmosphereComponent gam, GasOverlayData oldTile, MapIndices indices, out GasOverlayData overlayData) + { + var tile = gam.GetTile(indices); + var tileData = new List(); + + for (byte i = 0; i < Atmospherics.TotalNumberOfGases; i++) + { + var gas = Atmospherics.GetGas(i); + var overlay = Atmospherics.GetOverlay(i); + if (overlay == null || tile.Air == null) continue; + + var moles = tile.Air.Gases[i]; + + if (moles < gas.GasMolesVisible) continue; + + var data = new GasData(i, (byte) (FloatMath.Clamp01(moles / gas.GasMolesVisibleMax) * 255)); + tileData.Add(data); + } + + overlayData = new GasOverlayData(tile.Hotspot.State, tile.Hotspot.Temperature, tileData.Count == 0 ? null : tileData.ToArray()); + + if (overlayData.Equals(oldTile)) + { + return false; + } + + return true; + } + + /// + /// Get every chunk in range of our entity that exists, including on other grids. + /// + /// + /// + private List GetChunksInRange(IEntity entity) + { + var inRange = new List(); + + // This is the max in any direction that we can get a chunk (e.g. max 2 chunks away of data). + var (maxXDiff, maxYDiff) = ((int) (_updateRange / ChunkSize) + 1, (int) (_updateRange / ChunkSize) + 1); + + var worldBounds = Box2.CenteredAround(entity.Transform.WorldPosition, + new Vector2(_updateRange, _updateRange)); + + foreach (var grid in _mapManager.FindGridsIntersecting(entity.Transform.MapID, worldBounds)) + { + if (!_overlay.TryGetValue(grid.Index, out var chunks)) + { + continue; + } + + var entityTile = grid.GetTileRef(entity.Transform.GridPosition).GridIndices; + + for (var x = -maxXDiff; x <= maxXDiff; x++) + { + for (var y = -maxYDiff; y <= maxYDiff; y++) + { + var chunkIndices = GetGasChunkIndices(new MapIndices(entityTile.X + x * ChunkSize, entityTile.Y + y * ChunkSize)); + + if (!chunks.TryGetValue(chunkIndices, out var chunk)) continue; + + // Now we'll check if it's in range and relevant for us + // (e.g. if we're on the very edge of a chunk we may need more chunks). + + var (xDiff, yDiff) = (chunkIndices.X - entityTile.X, chunkIndices.Y - entityTile.Y); + if (xDiff > 0 && xDiff > _updateRange || + yDiff > 0 && yDiff > _updateRange || + xDiff < 0 && Math.Abs(xDiff + ChunkSize) > _updateRange || + yDiff < 0 && Math.Abs(yDiff + ChunkSize) > _updateRange) continue; + + inRange.Add(chunk); + } + } + } + + return inRange; + } + + public override void Update(float frameTime) + { + AccumulatedFrameTime += frameTime; + _updateCooldown = 1 / _configManager.GetCVar("net.gasoverlaytickrate"); + + if (AccumulatedFrameTime < _updateCooldown) + { + return; + } + + _updateRange = _configManager.GetCVar("net.maxupdaterange") + RangeOffset; + + // TODO: So in the worst case scenario we still have to send a LOT of tile data per tick if there's a fire. + // If we go with say 15 tile radius then we have up to 900 tiles to update per tick. + // In a saltern fire the worst you'll normally see is around 650 at the moment. + // Need a way to fake this more because sending almost 2,000 tile updates per second to even 50 players is... yikes + // I mean that's as big as it gets so larger maps will have the same but still, that's a lot of data. + + // Some ways to do this are potentially: splitting fire and gas update data so they don't update at the same time + // (gives the illusion of more updates happening), e.g. if gas updates are 3 times a second and fires are 1.6 times a second or something. + // Could also look at updating tiles close to us more frequently (e.g. within 1 chunk every tick). + // Stuff just out of our viewport we need so when we move it doesn't pop in but it doesn't mean we need to update it every tick. + + AccumulatedFrameTime -= _updateCooldown; + + var gridAtmosComponents = new Dictionary(); + var updatedTiles = new Dictionary>(); + + // So up to this point we've been caching the updated tiles for multiple ticks. + // Now we'll go through and check whether the update actually matters for the overlay or not, + // and if not then we won't bother sending the data. + foreach (var (gridId, indices) in _invalidTiles) + { + var gridEntityId = _mapManager.GetGrid(gridId).GridEntityId; + + if (!EntityManager.GetEntity(gridEntityId).TryGetComponent(out GridAtmosphereComponent gam)) + { + continue; + } + + // If it's being invalidated it should have this right? + // At any rate we'll cache it for here + the AddChunk + if (!gridAtmosComponents.ContainsKey(gridId)) + { + gridAtmosComponents[gridId] = gam; + } + + foreach (var invalid in indices) + { + var chunk = GetOrCreateChunk(gridId, invalid); + + if (!TryRefreshTile(gam, chunk.GetData(invalid), invalid, out var data)) continue; + + if (!updatedTiles.TryGetValue(chunk, out var tiles)) + { + tiles = new HashSet(); + updatedTiles[chunk] = tiles; + } + + updatedTiles[chunk].Add(invalid); + chunk.Update(data, invalid); + } + } + + var currentTick = _gameTiming.CurTick; + + // Set the LastUpdate for chunks. + foreach (var (chunk, _) in updatedTiles) + { + chunk.Dirty(currentTick); + } + + // Now we'll go through each player, then through each chunk in range of that player checking if the player is still in range + // If they are, check if they need the new data to send (i.e. if there's an overlay for the gas). + // Afterwards we reset all the chunk data for the next time we tick. + foreach (var (session, overlay) in _knownPlayerChunks) + { + if (session.AttachedEntity == null) continue; + + // Get chunks in range and update if we've moved around or the chunks have new overlay data + var chunksInRange = GetChunksInRange(session.AttachedEntity); + var knownChunks = overlay.GetKnownChunks(); + var chunksToRemove = new List(); + var chunksToAdd = new List(); + + foreach (var chunk in chunksInRange) + { + if (!knownChunks.Contains(chunk)) + { + chunksToAdd.Add(chunk); + } + } + + foreach (var chunk in knownChunks) + { + if (!chunksInRange.Contains(chunk)) + { + chunksToRemove.Add(chunk); + } + } + + foreach (var chunk in chunksToAdd) + { + var message = overlay.AddChunk(currentTick, chunk); + if (message != null) + { + RaiseNetworkEvent(message, session.ConnectedClient); + } + } + + foreach (var chunk in chunksToRemove) + { + overlay.RemoveChunk(chunk); + } + + var clientInvalids = new Dictionary>(); + + // Check for any dirty chunks in range and bundle the data to send to the client. + foreach (var chunk in chunksInRange) + { + if (!updatedTiles.TryGetValue(chunk, out var invalids)) continue; + + if (!clientInvalids.TryGetValue(chunk.GridIndices, out var existingData)) + { + existingData = new List<(MapIndices, GasOverlayData)>(); + clientInvalids[chunk.GridIndices] = existingData; + } + + chunk.GetData(existingData, invalids); + } + + foreach (var (grid, data) in clientInvalids) + { + RaiseNetworkEvent(overlay.UpdateClient(grid, data), session.ConnectedClient); + } + } + + // Cleanup + _invalidTiles.Clear(); + } + private sealed class PlayerGasOverlay + { + private readonly Dictionary> _data = + new Dictionary>(); + + private readonly Dictionary _lastSent = + new Dictionary(); + + public GasOverlayMessage UpdateClient(GridId grid, List<(MapIndices, GasOverlayData)> data) + { + return new GasOverlayMessage(grid, data); + } + + public void Reset() + { + _data.Clear(); + _lastSent.Clear(); + } + + public List GetKnownChunks() + { + var known = new List(); + + foreach (var (_, chunks) in _data) + { + foreach (var (_, chunk) in chunks) + { + known.Add(chunk); + } + } + + return known; + } + + public GasOverlayMessage? AddChunk(GameTick currentTick, GasOverlayChunk chunk) + { + if (!_data.TryGetValue(chunk.GridIndices, out var chunks)) + { + chunks = new Dictionary(); + _data[chunk.GridIndices] = chunks; + } + + if (_lastSent.TryGetValue(chunk, out var last) && last >= chunk.LastUpdate) + { + return null; + } + + _lastSent[chunk] = currentTick; + var message = ChunkToMessage(chunk); + + return message; + } + + public void RemoveChunk(GasOverlayChunk chunk) + { + // Don't need to sync to client as they can manage it themself. + if (!_data.TryGetValue(chunk.GridIndices, out var chunks)) + { + return; + } + + if (chunks.ContainsKey(chunk.MapIndices)) + { + chunks.Remove(chunk.MapIndices); + } + } + + /// + /// Retrieve a whole chunk as a message, only getting the relevant tiles for the gas overlay. + /// + /// + /// + private GasOverlayMessage? ChunkToMessage(GasOverlayChunk chunk) + { + // Chunk data should already be up to date. + // Only send relevant tiles to client. + + var tileData = new List<(MapIndices, GasOverlayData)>(); + + for (var x = 0; x < ChunkSize; x++) + { + for (var y = 0; y < ChunkSize; y++) + { + // TODO: Check could be more robust I think. + var data = chunk.TileData[x, y]; + if ((data.Gas == null || data.Gas.Length == 0) && data.FireState == 0 && data.FireTemperature == 0.0f) + { + continue; + } + + var indices = new MapIndices(chunk.MapIndices.X + x, chunk.MapIndices.Y + y); + tileData.Add((indices, data)); + } + } + + if (tileData.Count == 0) + { + return null; + } + + return new GasOverlayMessage(chunk.GridIndices, tileData); + } + } + } +} diff --git a/Content.Server/GameObjects/EntitySystems/GasTileOverlaySystem.cs b/Content.Server/GameObjects/EntitySystems/GasTileOverlaySystem.cs deleted file mode 100644 index 493ef068ed..0000000000 --- a/Content.Server/GameObjects/EntitySystems/GasTileOverlaySystem.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Runtime.CompilerServices; -using Content.Server.GameObjects.Components.Atmos; -using Content.Shared.Atmos; -using Content.Shared.GameObjects.EntitySystems; -using JetBrains.Annotations; -using Robust.Server.Interfaces.Player; -using Robust.Server.Player; -using Robust.Shared.Enums; -using Robust.Shared.Interfaces.GameObjects; -using Robust.Shared.Interfaces.Map; -using Robust.Shared.IoC; -using Robust.Shared.Map; - -namespace Content.Server.GameObjects.EntitySystems -{ - [UsedImplicitly] - public sealed class GasTileOverlaySystem : SharedGasTileOverlaySystem - { - private int _tickTimer = 0; - private HashSet _queue = new HashSet(); - private Dictionary> _invalid = new Dictionary>(); - - private Dictionary> _overlay = - new Dictionary>(); - - [Robust.Shared.IoC.Dependency] private IPlayerManager _playerManager = default!; - - public override void Initialize() - { - base.Initialize(); - - _playerManager.PlayerStatusChanged += OnPlayerStatusChanged; - } - - [MethodImpl(MethodImplOptions.AggressiveInlining)] - public void Invalidate(GridId gridIndex, MapIndices indices) - { - if (!_invalid.TryGetValue(gridIndex, out var set) || set == null) - { - set = new HashSet(); - _invalid.Add(gridIndex, set); - } - - set.Add(indices); - } - - public void SetTileOverlay(GridId gridIndex, MapIndices indices, GasData[] gasData, int fireState = 0, float fireTemperature = 0f) - { - if(!_overlay.TryGetValue(gridIndex, out var _)) - _overlay[gridIndex] = new Dictionary(); - - _overlay[gridIndex][indices] = new GasOverlayData(fireState, fireTemperature, gasData); - _queue.Add(GetData(gridIndex, indices)); - } - - private void OnPlayerStatusChanged(object sender, SessionStatusEventArgs e) - { - if (e.NewStatus != SessionStatus.InGame) return; - - RaiseNetworkEvent(new GasTileOverlayMessage(GetData(), true), e.Session.ConnectedClient); - } - - private GasTileOverlayData[] GetData() - { - var list = new List(); - - foreach (var (gridId, tiles) in _overlay) - { - foreach (var (indices, _) in tiles) - { - var data = GetData(gridId, indices); - if(data.Data.Gas.Length > 0) - list.Add(data); - } - } - - return list.ToArray(); - } - - private GasTileOverlayData GetData(GridId gridIndex, MapIndices indices) - { - return new GasTileOverlayData(gridIndex, indices, _overlay[gridIndex][indices]); - } - - private void Revalidate() - { - var mapMan = IoCManager.Resolve(); - var entityMan = IoCManager.Resolve(); - var list = new List(); - - foreach (var (gridId, indices) in _invalid) - { - if (!mapMan.GridExists(gridId)) - { - _invalid.Remove(gridId); - return; - } - var grid = entityMan.GetEntity(mapMan.GetGrid(gridId).GridEntityId); - if (!grid.TryGetComponent(out GridAtmosphereComponent gam)) continue; - - foreach (var index in indices) - { - var tile = gam.GetTile(index); - - if (tile?.Air == null) continue; - - list.Clear(); - - for(var i = 0; i < Atmospherics.TotalNumberOfGases; i++) - { - var gas = Atmospherics.GetGas(i); - var overlay = gas.GasOverlay; - if (overlay == null) continue; - var moles = tile.Air.Gases[i]; - if(moles == 0f || moles < gas.GasMolesVisible) continue; - list.Add(new GasData(i, MathF.Max(MathF.Min(1, moles / gas.GasMolesVisibleMax), 0f))); - } - - if (list.Count == 0) continue; - - SetTileOverlay(gridId, index, list.ToArray(), tile.Hotspot.State, tile.Hotspot.Temperature); - } - - indices.Clear(); - } - } - - public override void Update(float frameTime) - { - _tickTimer++; - - Revalidate(); - - if (_tickTimer < 10) return; - - _tickTimer = 0; - if(_queue.Count > 0) - RaiseNetworkEvent(new GasTileOverlayMessage(_queue.ToArray())); - _queue.Clear(); - } - } -} diff --git a/Content.Server/GameTicking/GameTicker.cs b/Content.Server/GameTicking/GameTicker.cs index 42bd24d44c..839844f61f 100644 --- a/Content.Server/GameTicking/GameTicker.cs +++ b/Content.Server/GameTicking/GameTicker.cs @@ -13,6 +13,7 @@ using Content.Server.GameObjects.Components.PDA; using Content.Server.GameObjects.EntitySystems; using Content.Server.GameObjects.EntitySystems.AI.Pathfinding; using Content.Server.GameObjects.EntitySystems.AI.Pathfinding.Accessible; +using Content.Server.GameObjects.EntitySystems.Atmos; using Content.Server.GameObjects.EntitySystems.StationEvents; using Content.Server.GameTicking.GamePresets; using Content.Server.Interfaces; @@ -633,7 +634,8 @@ namespace Content.Server.GameTicking _playerJoinLobby(player); } - + + EntitySystem.Get().ResettingCleanup(); EntitySystem.Get().ResettingCleanup(); EntitySystem.Get().ResettingCleanup(); EntitySystem.Get().ResetLayouts(); diff --git a/Content.Server/IgnoredComponents.cs b/Content.Server/IgnoredComponents.cs index 4aa536c30d..cd9713f35d 100644 --- a/Content.Server/IgnoredComponents.cs +++ b/Content.Server/IgnoredComponents.cs @@ -19,7 +19,6 @@ "Marker", "EmergencyLight", "Clickable", - "CanSeeGases", "RadiatingLight", }; diff --git a/Content.Shared/Atmos/Atmospherics.cs b/Content.Shared/Atmos/Atmospherics.cs index 6872999f85..c39b6b7d5d 100644 --- a/Content.Shared/Atmos/Atmospherics.cs +++ b/Content.Shared/Atmos/Atmospherics.cs @@ -1,6 +1,7 @@ using System.Collections.Generic; using Robust.Shared.IoC; using Robust.Shared.Prototypes; +using Robust.Shared.Utility; namespace Content.Shared.Atmos { @@ -14,10 +15,18 @@ namespace Content.Shared.Atmos var protoMan = IoCManager.Resolve(); GasPrototypes = new GasPrototype[TotalNumberOfGases]; + GasOverlays = new SpriteSpecifier[TotalNumberOfGases]; for (var i = 0; i < TotalNumberOfGases; i++) { - GasPrototypes[i] = protoMan.Index(i.ToString()); + var gasPrototype = protoMan.Index(i.ToString()); + GasPrototypes[i] = gasPrototype; + + if(string.IsNullOrEmpty(gasPrototype.GasOverlaySprite) && !string.IsNullOrEmpty(gasPrototype.GasOverlayTexture)) + GasOverlays[i] = new SpriteSpecifier.Texture(new ResourcePath(gasPrototype.GasOverlayTexture)); + + if(!string.IsNullOrEmpty(gasPrototype.GasOverlaySprite) && !string.IsNullOrEmpty(gasPrototype.GasOverlayState)) + GasOverlays[i] = new SpriteSpecifier.Rsi(new ResourcePath(gasPrototype.GasOverlaySprite), gasPrototype.GasOverlayState); } } @@ -27,6 +36,10 @@ namespace Content.Shared.Atmos public static GasPrototype GetGas(Gas gasId) => GasPrototypes[(int) gasId]; public static IEnumerable Gases => GasPrototypes; + private static readonly SpriteSpecifier[] GasOverlays; + + public static SpriteSpecifier GetOverlay(int overlayId) => GasOverlays[overlayId]; + #region ATMOS /// /// The universal gas constant, in kPa*L/(K*mol) @@ -166,7 +179,7 @@ namespace Content.Shared.Atmos /// /// Total number of gases. Increase this if you want to add more! /// - public const int TotalNumberOfGases = 6; + public const byte TotalNumberOfGases = 6; /// /// Amount of heat released per mole of burnt hydrogen or tritium (hydrogen isotope) diff --git a/Content.Shared/Atmos/GasPrototype.cs b/Content.Shared/Atmos/GasPrototype.cs index 8a71811760..31827d2447 100644 --- a/Content.Shared/Atmos/GasPrototype.cs +++ b/Content.Shared/Atmos/GasPrototype.cs @@ -45,23 +45,6 @@ namespace Content.Shared.Atmos /// public string GasOverlaySprite { get; set; } - /// - /// Sprite specifier for the gas overlay. - /// - public SpriteSpecifier GasOverlay - { - get - { - if(string.IsNullOrEmpty(GasOverlaySprite) && !string.IsNullOrEmpty(GasOverlayTexture)) - return new SpriteSpecifier.Texture(new ResourcePath(GasOverlayTexture)); - - if(!string.IsNullOrEmpty(GasOverlaySprite) && !string.IsNullOrEmpty(GasOverlayState)) - return new SpriteSpecifier.Rsi(new ResourcePath(GasOverlaySprite), GasOverlayState); - - return null; - } - } - /// /// Path to the tile overlay used when this gas appears visible. /// diff --git a/Content.Shared/GameObjects/EntitySystems/Atmos/GasOverlayChunk.cs b/Content.Shared/GameObjects/EntitySystems/Atmos/GasOverlayChunk.cs new file mode 100644 index 0000000000..cc4ce2988c --- /dev/null +++ b/Content.Shared/GameObjects/EntitySystems/Atmos/GasOverlayChunk.cs @@ -0,0 +1,103 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using Robust.Shared.Interfaces.Timing; +using Robust.Shared.IoC; +using Robust.Shared.Map; +using Robust.Shared.Timing; +using Robust.Shared.Utility; + +namespace Content.Shared.GameObjects.EntitySystems.Atmos +{ + public sealed class GasOverlayChunk + { + /// + /// Grid for this chunk + /// + public GridId GridIndices { get; } + + /// + /// Origin of this chunk + /// + public MapIndices MapIndices { get; } + + public SharedGasTileOverlaySystem.GasOverlayData[,] TileData = new SharedGasTileOverlaySystem.GasOverlayData[SharedGasTileOverlaySystem.ChunkSize, SharedGasTileOverlaySystem.ChunkSize]; + + public GameTick LastUpdate { get; private set; } + + public GasOverlayChunk(GridId gridIndices, MapIndices mapIndices) + { + GridIndices = gridIndices; + MapIndices = mapIndices; + } + + public void Dirty(GameTick currentTick) + { + LastUpdate = currentTick; + } + + /// + /// Flags Dirty if the data is different. + /// + /// + /// + public void Update(SharedGasTileOverlaySystem.GasOverlayData data, MapIndices indices) + { + DebugTools.Assert(InBounds(indices)); + var (offsetX, offsetY) = (indices.X - MapIndices.X, + indices.Y - MapIndices.Y); + + TileData[offsetX, offsetY] = data; + } + + public void Update(SharedGasTileOverlaySystem.GasOverlayData data, byte x, byte y) + { + DebugTools.Assert(x < SharedGasTileOverlaySystem.ChunkSize && y < SharedGasTileOverlaySystem.ChunkSize); + + TileData[x, y] = data; + } + + public IEnumerable GetAllData() + { + for (var x = 0; x < SharedGasTileOverlaySystem.ChunkSize; x++) + { + for (var y = 0; y < SharedGasTileOverlaySystem.ChunkSize; y++) + { + yield return TileData[x, y]; + } + } + } + + public void GetData(List<(MapIndices, SharedGasTileOverlaySystem.GasOverlayData)> existingData, HashSet indices) + { + foreach (var index in indices) + { + existingData.Add((index, GetData(index))); + } + } + + public IEnumerable GetAllIndices() + { + for (var x = 0; x < SharedGasTileOverlaySystem.ChunkSize; x++) + { + for (var y = 0; y < SharedGasTileOverlaySystem.ChunkSize; y++) + { + yield return new MapIndices(MapIndices.X + x, MapIndices.Y + y); + } + } + } + + public SharedGasTileOverlaySystem.GasOverlayData GetData(MapIndices indices) + { + DebugTools.Assert(InBounds(indices)); + return TileData[indices.X - MapIndices.X, indices.Y - MapIndices.Y]; + } + + private bool InBounds(MapIndices indices) + { + if (indices.X < MapIndices.X || indices.Y < MapIndices.Y) return false; + if (indices.X >= MapIndices.X + SharedGasTileOverlaySystem.ChunkSize || indices.Y >= MapIndices.Y + SharedGasTileOverlaySystem.ChunkSize) return false; + return true; + } + } +} \ No newline at end of file diff --git a/Content.Shared/GameObjects/EntitySystems/Atmos/SharedGasTileOverlaySystem.cs b/Content.Shared/GameObjects/EntitySystems/Atmos/SharedGasTileOverlaySystem.cs new file mode 100644 index 0000000000..6ff74584d0 --- /dev/null +++ b/Content.Shared/GameObjects/EntitySystems/Atmos/SharedGasTileOverlaySystem.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Robust.Shared.GameObjects; +using Robust.Shared.GameObjects.Systems; +using Robust.Shared.Map; +using Robust.Shared.Serialization; +using Robust.Shared.Utility; + +namespace Content.Shared.GameObjects.EntitySystems.Atmos +{ + public abstract class SharedGasTileOverlaySystem : EntitySystem + { + public const byte ChunkSize = 8; + protected float AccumulatedFrameTime; + + public static MapIndices GetGasChunkIndices(MapIndices indices) + { + return new MapIndices((int) Math.Floor((float) indices.X / ChunkSize) * ChunkSize, (int) MathF.Floor((float) indices.Y / ChunkSize) * ChunkSize); + } + + [Serializable, NetSerializable] + public struct GasData + { + public byte Index { get; set; } + public byte Opacity { get; set; } + + public GasData(byte gasId, byte opacity) + { + Index = gasId; + Opacity = opacity; + } + } + + [Serializable, NetSerializable] + public readonly struct GasOverlayData : IEquatable + { + public readonly byte FireState; + public readonly float FireTemperature; + public readonly GasData[] Gas; + + public GasOverlayData(byte fireState, float fireTemperature, GasData[] gas) + { + FireState = fireState; + FireTemperature = fireTemperature; + Gas = gas; + } + + public bool Equals(GasOverlayData other) + { + // TODO: Moony had a suggestion on how to do this faster with the hash + // https://discordapp.com/channels/310555209753690112/310555209753690112/744080145219846204 + // Aside from that I can't really see any low-hanging fruit CPU perf wise. + if (Gas?.Length != other.Gas?.Length) return false; + if (FireState != other.FireState) return false; + if (FireTemperature != other.FireTemperature) return false; + + if (Gas == null) + { + return true; + } + + DebugTools.Assert(other.Gas != null); + + for (var i = 0; i < Gas.Length; i++) + { + var thisGas = Gas[i]; + var otherGas = other.Gas[i]; + + if (!thisGas.Equals(otherGas)) + { + return false; + } + } + + return true; + } + } + + /// + /// Invalid tiles for the gas overlay. + /// No point re-sending every tile if only a subset might have been updated. + /// + [Serializable, NetSerializable] + public sealed class GasOverlayMessage : EntitySystemMessage + { + public GridId GridId { get; } + + public List<(MapIndices, GasOverlayData)> OverlayData { get; } + + public GasOverlayMessage(GridId gridIndices, List<(MapIndices,GasOverlayData)> overlayData) + { + GridId = gridIndices; + OverlayData = overlayData; + } + } + } +} diff --git a/Content.Shared/GameObjects/EntitySystems/SharedGasTileOverlaySystem.cs b/Content.Shared/GameObjects/EntitySystems/SharedGasTileOverlaySystem.cs deleted file mode 100644 index 346f44d733..0000000000 --- a/Content.Shared/GameObjects/EntitySystems/SharedGasTileOverlaySystem.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using Robust.Shared.GameObjects; -using Robust.Shared.GameObjects.Systems; -using Robust.Shared.Map; -using Robust.Shared.Serialization; - -namespace Content.Shared.GameObjects.EntitySystems -{ - public abstract class SharedGasTileOverlaySystem : EntitySystem - { - [Serializable, NetSerializable] - public struct GasData - { - public int Index { get; set; } - public float Opacity { get; set; } - - public GasData(int gasId, float opacity) - { - Index = gasId; - Opacity = opacity; - } - } - - [Serializable, NetSerializable] - public readonly struct GasOverlayData - { - public readonly int FireState; - public readonly float FireTemperature; - public readonly GasData[] Gas; - - public GasOverlayData(int fireState, float fireTemperature, GasData[] gas) - { - FireState = fireState; - FireTemperature = fireTemperature; - Gas = gas; - } - } - - [Serializable, NetSerializable] - public readonly struct GasTileOverlayData - { - public readonly GridId GridIndex; - public readonly MapIndices GridIndices; - public readonly GasOverlayData Data; - - public GasTileOverlayData(GridId gridIndex, MapIndices gridIndices, GasOverlayData data) - { - GridIndex = gridIndex; - GridIndices = gridIndices; - Data = data; - } - - public override int GetHashCode() - { - return GridIndex.GetHashCode() ^ GridIndices.GetHashCode() ^ Data.GetHashCode(); - } - } - - [Serializable, NetSerializable] - public class GasTileOverlayMessage : EntitySystemMessage - { - public GasTileOverlayData[] OverlayData { get; } - public bool ClearAllOtherOverlays { get; } - - public GasTileOverlayMessage(GasTileOverlayData[] overlayData, bool clearAllOtherOverlays = false) - { - OverlayData = overlayData; - ClearAllOtherOverlays = clearAllOtherOverlays; - } - } - } -} diff --git a/Resources/Prototypes/Entities/Mobs/Player/observer.yml b/Resources/Prototypes/Entities/Mobs/Player/observer.yml index 4b6fea353d..ef8f085f0c 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/observer.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/observer.yml @@ -22,7 +22,6 @@ DoRangeCheck: false - type: IgnorePause - type: Ghost - - type: CanSeeGases - type: Sprite netsync: false drawdepth: Ghosts diff --git a/Resources/Prototypes/Entities/Mobs/Species/human.yml b/Resources/Prototypes/Entities/Mobs/Species/human.yml index 040ff8e983..d12d5fd9f0 100644 --- a/Resources/Prototypes/Entities/Mobs/Species/human.yml +++ b/Resources/Prototypes/Entities/Mobs/Species/human.yml @@ -154,7 +154,6 @@ - type: Grammar proper: true - type: Pullable - - type: CanSeeGases - type: DoAfter - type: Strippable - type: UserInterface