From fd11cee0e0b4b7377daa0207e62b842687e95dbb Mon Sep 17 00:00:00 2001 From: gluesniffler <159397573+gluesniffler@users.noreply.github.com> Date: Sun, 24 Nov 2024 21:02:23 -0400 Subject: [PATCH] Shitmed Update 2 - bottom text (#956) * full fucking send * ope forgot to remove the EE scripts * fix test * fix shitcode fail * DELTA THAT VALUE IS NULLABLE * whoopsie daysie * fixed??? * chat is this real --- Content.Client/Input/ContentContexts.cs | 4 + .../Options/UI/Tabs/KeyRebindTab.xaml.cs | 14 +- .../_Shitmed/Targeting/TargetingSystem.cs | 16 +- .../Body/Components/BrainComponent.cs | 5 + Content.Server/Body/Systems/BodySystem.cs | 10 + Content.Server/Body/Systems/BrainSystem.cs | 55 +++- .../Thresholds/Behaviors/BurnBodyBehavior.cs | 15 +- .../_Shitmed/Body/Systems/DebrainedSystem.cs | 62 ++++ .../_Shitmed/Body/Systems/EyesSystem.cs | 87 ++++++ .../_Shitmed/Cybernetics/CyberneticsSystem.cs | 55 ++++ .../_Shitmed/Medical/Surgery/SurgerySystem.cs | 5 +- Content.Shared/Body/Organ/OrganComponent.cs | 32 +- Content.Shared/Body/Part/BodyPartComponent.cs | 39 ++- .../Body/Systems/SharedBodySystem.Body.cs | 25 +- .../Body/Systems/SharedBodySystem.Organs.cs | 79 ++++- .../Body/Systems/SharedBodySystem.Parts.cs | 47 ++- .../Body/Systems/SharedBodySystem.cs | 3 +- .../Damage/Systems/DamageableSystem.cs | 44 ++- .../Damage/Systems/SharedGodmodeSystem.cs | 9 + .../Eye/Blinding/Systems/BlindableSystem.cs | 13 + Content.Shared/Input/ContentKeyFunctions.cs | 6 +- .../Overlays/ShowHealthBarsComponent.cs | 8 + .../Overlays/ShowHealthIconsComponent.cs | 9 + .../Prying/Components/PryingComponent.cs | 6 +- .../_Shitmed/Body/Events/BodyPartEvents.cs | 2 + .../_Shitmed/Body/Organ/OrganEvents.cs | 13 + .../Systems/SharedBodySystem.Targeting.cs | 5 +- .../BodyEffects/BodyPartEffectComponent.cs | 26 ++ .../BodyEffects/BodyPartEffectSystem.cs | 96 ++++++ .../BodyEffects/OrganEffectComponent.cs | 27 ++ .../_Shitmed/BodyEffects/OrganEffectSystem.cs | 110 +++++++ .../Subsystems/GenerateChildPartComponent.cs | 18 ++ .../Subsystems/GenerateChildPartSystem.cs | 69 +++++ .../Cybernetics/CyberneticsComponent.cs | 16 + .../SurgeryComponentConditionComponent.cs | 17 ++ .../Surgery/SharedSurgerySystem.Steps.cs | 45 ++- .../_Shitmed/Surgery/SharedSurgerySystem.cs | 18 +- .../Surgery/Steps/SurgeryStepComponent.cs | 6 + .../Surgery/Tools/BoneSetterComponent.cs | 8 +- ...calDrillComponent.cs => DrillComponent.cs} | 6 +- .../Surgery/Tools/SurgeryToolExamineSystem.cs | 2 +- .../_White/Standing/SharedLayingDownSystem.cs | 4 +- .../Locale/en-US/_Shitmed/surgery-popup.ftl | 1 + .../Locale/en-US/research/technologies.ftl | 5 + .../Prototypes/DeltaV/Body/Organs/harpy.yml | 2 + .../DeltaV/Body/Parts/vulpkanin.yml | 2 +- .../DeltaV/Body/Prototypes/harpy.yml | 1 + .../DeltaV/Body/Prototypes/rodentia.yml | 1 + .../DeltaV/Body/Prototypes/vulpkanin.yml | 1 + .../Entities/Mobs/Cyborgs/borg_chassis.yml | 2 +- .../Prototypes/Entities/Objects/Misc/pen.yml | 14 +- .../Objects/Specific/Medical/surgery.yml | 275 ++++++++++-------- .../Specific/Robotics/borg_modules.yml | 41 +++ .../Entities/Structures/Machines/lathe.yml | 20 ++ .../Entities/Body/Prototypes/felinid.yml | 1 + .../Prototypes/Recipes/Lathes/medical.yml | 55 +++- .../Prototypes/Recipes/Lathes/robotics.yml | 83 ++++++ .../Prototypes/Recipes/Lathes/security.yml | 14 + .../Prototypes/Research/civilianservices.yml | 32 +- .../_Shitmed/Body/Organs/Animal/space.yml | 12 +- .../_Shitmed/Body/Organs/cybernetic.yml | 51 ++++ .../_Shitmed/Body/Organs/generic.yml | 23 ++ .../_Shitmed/Body/Parts/cybernetic.yml | 169 +++++++++++ .../_Shitmed/Body/Parts/generic.yml | 79 +++++ .../_Shitmed/Entities/Surgery/surgeries.yml | 36 ++- .../Entities/Surgery/surgery_steps.yml | 110 +++++-- .../_Shitmed/Species/cybernetics.yml | 47 +++ .../actions_borg.rsi/adv-surgery-module.png | Bin 0 -> 509 bytes .../Actions/actions_borg.rsi/meta.json | 6 + .../actions_borg.rsi/surgery-module.png | Bin 0 -> 475 bytes .../borgmodule.rsi/icon-advanced-surgery.png | Bin 0 -> 254 bytes .../Robotics/borgmodule.rsi/icon-surgery.png | Bin 0 -> 258 bytes .../Robotics/borgmodule.rsi/meta.json | 6 + .../bishop/bishop_alt1.rsi/head.png | Bin 0 -> 1059 bytes .../bishop/bishop_alt1.rsi/meta.json | 15 + .../bishop/bishop_main.rsi/head.png | Bin 0 -> 645 bytes .../bishop/bishop_main.rsi/l_arm-combined.png | Bin 0 -> 388 bytes .../bishop/bishop_main.rsi/l_arm-primary.png | Bin 0 -> 456 bytes .../bishop_main.rsi/l_arm-secondary.png | Bin 0 -> 348 bytes .../bishop/bishop_main.rsi/l_arm-tertiary.png | Bin 0 -> 217 bytes .../bishop/bishop_main.rsi/l_foot.png | Bin 0 -> 325 bytes .../bishop/bishop_main.rsi/l_hand.png | Bin 0 -> 385 bytes .../bishop/bishop_main.rsi/l_leg-combined.png | Bin 0 -> 523 bytes .../bishop/bishop_main.rsi/l_leg-primary.png | Bin 0 -> 620 bytes .../bishop_main.rsi/l_leg-secondary.png | Bin 0 -> 478 bytes .../bishop/bishop_main.rsi/meta.json | 95 ++++++ .../bishop/bishop_main.rsi/r_arm-combined.png | Bin 0 -> 401 bytes .../bishop/bishop_main.rsi/r_arm-primary.png | Bin 0 -> 473 bytes .../bishop_main.rsi/r_arm-secondary.png | Bin 0 -> 353 bytes .../bishop/bishop_main.rsi/r_arm-tertiary.png | Bin 0 -> 219 bytes .../bishop/bishop_main.rsi/r_foot.png | Bin 0 -> 328 bytes .../bishop/bishop_main.rsi/r_hand.png | Bin 0 -> 380 bytes .../bishop/bishop_main.rsi/r_leg-combined.png | Bin 0 -> 525 bytes .../bishop/bishop_main.rsi/r_leg-primary.png | Bin 0 -> 611 bytes .../bishop_main.rsi/r_leg-secondary.png | Bin 0 -> 319 bytes .../bishop/bishop_main.rsi/torso-primary.png | Bin 0 -> 1281 bytes .../bishop_main.rsi/torso-secondary.png | Bin 0 -> 481 bytes .../bishop/bishop_monitor.rsi/head-2.png | Bin 0 -> 371 bytes .../bishop/bishop_monitor.rsi/head.png | Bin 0 -> 630 bytes .../bishop/bishop_monitor.rsi/meta.json | 19 ++ .../hesphiastos_alt1.rsi/head-1.png | Bin 0 -> 6948 bytes .../hesphiastos_alt1.rsi/head-2.png | Bin 0 -> 6871 bytes .../hesphiastos_alt1.rsi/head-3.png | Bin 0 -> 6916 bytes .../hesphiastos_alt1.rsi/meta.json | 23 ++ .../hesphiastos_main.rsi/l_arm-1.png | Bin 0 -> 487 bytes .../hesphiastos_main.rsi/l_arm-2.png | Bin 0 -> 258 bytes .../hesphiastos_main.rsi/l_foot-1.png | Bin 0 -> 390 bytes .../hesphiastos_main.rsi/l_foot-2.png | Bin 0 -> 392 bytes .../hesphiastos_main.rsi/l_hand-1.png | Bin 0 -> 379 bytes .../hesphiastos_main.rsi/l_hand-2.png | Bin 0 -> 380 bytes .../hesphiastos_main.rsi/l_leg-1.png | Bin 0 -> 535 bytes .../hesphiastos_main.rsi/l_leg-2.png | Bin 0 -> 538 bytes .../hesphiastos_main.rsi/meta.json | 83 ++++++ .../hesphiastos_main.rsi/r_arm-1.png | Bin 0 -> 491 bytes .../hesphiastos_main.rsi/r_arm-2.png | Bin 0 -> 248 bytes .../hesphiastos_main.rsi/r_foot-1.png | Bin 0 -> 390 bytes .../hesphiastos_main.rsi/r_foot-2.png | Bin 0 -> 391 bytes .../hesphiastos_main.rsi/r_hand-1.png | Bin 0 -> 382 bytes .../hesphiastos_main.rsi/r_hand-2.png | Bin 0 -> 381 bytes .../hesphiastos_main.rsi/r_leg-1.png | Bin 0 -> 536 bytes .../hesphiastos_main.rsi/r_leg-2.png | Bin 0 -> 538 bytes .../hesphiastos_main.rsi/torso-1.png | Bin 0 -> 813 bytes .../hesphiastos_main.rsi/torso-2.png | Bin 0 -> 807 bytes .../hesphiastos_monitor.rsi/head-1.png | Bin 0 -> 330 bytes .../hesphiastos_monitor.rsi/head-2.png | Bin 0 -> 565 bytes .../hesphiastos_monitor.rsi/meta.json | 19 ++ .../morpheus/morpheus_alt1.rsi/head.png | Bin 0 -> 871 bytes .../morpheus/morpheus_alt1.rsi/meta.json | 15 + .../morpheus/morpheus_main.rsi/head.png | Bin 0 -> 679 bytes .../morpheus/morpheus_main.rsi/l_arm.png | Bin 0 -> 594 bytes .../morpheus/morpheus_main.rsi/l_foot.png | Bin 0 -> 383 bytes .../morpheus/morpheus_main.rsi/l_hand.png | Bin 0 -> 444 bytes .../morpheus/morpheus_main.rsi/l_leg.png | Bin 0 -> 612 bytes .../morpheus/morpheus_main.rsi/meta.json | 51 ++++ .../morpheus/morpheus_main.rsi/r_arm.png | Bin 0 -> 557 bytes .../morpheus/morpheus_main.rsi/r_foot.png | Bin 0 -> 387 bytes .../morpheus/morpheus_main.rsi/r_hand.png | Bin 0 -> 444 bytes .../morpheus/morpheus_main.rsi/r_leg.png | Bin 0 -> 611 bytes .../morpheus/morpheus_main.rsi/torso.png | Bin 0 -> 758 bytes .../shellguard/shellguard_alt1.rsi/head-1.png | Bin 0 -> 6405 bytes .../shellguard/shellguard_alt1.rsi/head-2.png | Bin 0 -> 6791 bytes .../shellguard/shellguard_alt1.rsi/meta.json | 19 ++ .../shellguard_main.rsi/l_arm-1.png | Bin 0 -> 453 bytes .../shellguard_main.rsi/l_arm-2.png | Bin 0 -> 455 bytes .../shellguard_main.rsi/l_foot-1.png | Bin 0 -> 359 bytes .../shellguard_main.rsi/l_foot-2.png | Bin 0 -> 359 bytes .../shellguard_main.rsi/l_hand-1.png | Bin 0 -> 365 bytes .../shellguard_main.rsi/l_hand-2.png | Bin 0 -> 363 bytes .../shellguard_main.rsi/l_leg-1.png | Bin 0 -> 475 bytes .../shellguard_main.rsi/l_leg-2.png | Bin 0 -> 459 bytes .../shellguard/shellguard_main.rsi/meta.json | 83 ++++++ .../shellguard_main.rsi/r_arm-1.png | Bin 0 -> 455 bytes .../shellguard_main.rsi/r_arm-2.png | Bin 0 -> 452 bytes .../shellguard_main.rsi/r_foot-1.png | Bin 0 -> 359 bytes .../shellguard_main.rsi/r_foot-2.png | Bin 0 -> 359 bytes .../shellguard_main.rsi/r_hand-1.png | Bin 0 -> 367 bytes .../shellguard_main.rsi/r_hand-2.png | Bin 0 -> 368 bytes .../shellguard_main.rsi/r_leg-1.png | Bin 0 -> 461 bytes .../shellguard_main.rsi/r_leg-2.png | Bin 0 -> 449 bytes .../shellguard_main.rsi/torso-1.png | Bin 0 -> 707 bytes .../shellguard_main.rsi/torso-2.png | Bin 0 -> 708 bytes .../shellguard_monitor.rsi/head-1.png | Bin 0 -> 466 bytes .../shellguard_monitor.rsi/head-2.png | Bin 0 -> 500 bytes .../shellguard_monitor.rsi/meta.json | 19 ++ .../wardtakahashi_alt1.rsi/head.png | Bin 0 -> 6829 bytes .../wardtakahashi_alt1.rsi/meta.json | 15 + .../wardtakahashi_main.rsi/head.png | Bin 0 -> 6426 bytes .../wardtakahashi_main.rsi/l_arm.png | Bin 0 -> 505 bytes .../wardtakahashi_main.rsi/l_foot.png | Bin 0 -> 340 bytes .../wardtakahashi_main.rsi/l_hand.png | Bin 0 -> 372 bytes .../wardtakahashi_main.rsi/l_leg.png | Bin 0 -> 572 bytes .../wardtakahashi_main.rsi/meta.json | 51 ++++ .../wardtakahashi_main.rsi/r_arm.png | Bin 0 -> 507 bytes .../wardtakahashi_main.rsi/r_foot.png | Bin 0 -> 337 bytes .../wardtakahashi_main.rsi/r_hand.png | Bin 0 -> 378 bytes .../wardtakahashi_main.rsi/r_leg.png | Bin 0 -> 553 bytes .../wardtakahashi_main.rsi/torso.png | Bin 0 -> 961 bytes .../wardtakahashi_monitor.rsi/head.png | Bin 0 -> 773 bytes .../wardtakahashi_monitor.rsi/meta.json | 15 + .../Cybernetics/xion/xion_alt1.rsi/head-1.png | Bin 0 -> 6832 bytes .../Cybernetics/xion/xion_alt1.rsi/head-2.png | Bin 0 -> 6889 bytes .../Cybernetics/xion/xion_alt1.rsi/meta.json | 19 ++ .../xion/xion_main.rsi/l_arm-1.png | Bin 0 -> 474 bytes .../xion/xion_main.rsi/l_arm-2.png | Bin 0 -> 467 bytes .../xion/xion_main.rsi/l_foot-1.png | Bin 0 -> 370 bytes .../xion/xion_main.rsi/l_foot-2.png | Bin 0 -> 370 bytes .../xion/xion_main.rsi/l_hand-1.png | Bin 0 -> 391 bytes .../xion/xion_main.rsi/l_hand-2.png | Bin 0 -> 388 bytes .../xion/xion_main.rsi/l_leg-1.png | Bin 0 -> 537 bytes .../xion/xion_main.rsi/l_leg-2.png | Bin 0 -> 535 bytes .../Cybernetics/xion/xion_main.rsi/meta.json | 82 ++++++ .../xion/xion_main.rsi/r_arm-1.png | Bin 0 -> 466 bytes .../xion/xion_main.rsi/r_arm-2.png | Bin 0 -> 460 bytes .../xion/xion_main.rsi/r_foot-1.png | Bin 0 -> 368 bytes .../xion/xion_main.rsi/r_foot-2.png | Bin 0 -> 367 bytes .../xion/xion_main.rsi/r_hand-1.png | Bin 0 -> 388 bytes .../xion/xion_main.rsi/r_hand-2.png | Bin 0 -> 387 bytes .../xion/xion_main.rsi/r_leg-1.png | Bin 0 -> 536 bytes .../xion/xion_main.rsi/r_leg-2.png | Bin 0 -> 533 bytes .../xion/xion_main.rsi/torso-1.png | Bin 0 -> 843 bytes .../xion/xion_main.rsi/torso-2.png | Bin 0 -> 841 bytes .../xion/xion_monitor.rsi/head-1.png | Bin 0 -> 6857 bytes .../xion/xion_monitor.rsi/head-2.png | Bin 0 -> 6466 bytes .../xion/xion_monitor.rsi/meta.json | 19 ++ .../zenghu/zenghu_main.rsi/groin.png | Bin 0 -> 5522 bytes .../zenghu/zenghu_main.rsi/head-1.png | Bin 0 -> 6588 bytes .../zenghu/zenghu_main.rsi/head-2.png | Bin 0 -> 6535 bytes .../zenghu/zenghu_main.rsi/l_arm-1.png | Bin 0 -> 5779 bytes .../zenghu/zenghu_main.rsi/l_arm-2.png | Bin 0 -> 5670 bytes .../zenghu/zenghu_main.rsi/l_foot-1.png | Bin 0 -> 5646 bytes .../zenghu/zenghu_main.rsi/l_foot-2.png | Bin 0 -> 5256 bytes .../zenghu/zenghu_main.rsi/l_hand-1.png | Bin 0 -> 5434 bytes .../zenghu/zenghu_main.rsi/l_hand-2.png | Bin 0 -> 5337 bytes .../zenghu/zenghu_main.rsi/l_leg-1.png | Bin 0 -> 5949 bytes .../zenghu/zenghu_main.rsi/l_leg-2.png | Bin 0 -> 5845 bytes .../zenghu/zenghu_main.rsi/meta.json | 95 ++++++ .../zenghu/zenghu_main.rsi/r_arm-1.png | Bin 0 -> 5824 bytes .../zenghu/zenghu_main.rsi/r_arm-2.png | Bin 0 -> 5666 bytes .../zenghu/zenghu_main.rsi/r_foot-1.png | Bin 0 -> 5688 bytes .../zenghu/zenghu_main.rsi/r_foot-2.png | Bin 0 -> 5256 bytes .../zenghu/zenghu_main.rsi/r_hand-1.png | Bin 0 -> 5597 bytes .../zenghu/zenghu_main.rsi/r_hand-2.png | Bin 0 -> 5349 bytes .../zenghu/zenghu_main.rsi/r_leg-1.png | Bin 0 -> 5899 bytes .../zenghu/zenghu_main.rsi/r_leg-2.png | Bin 0 -> 5805 bytes .../zenghu/zenghu_main.rsi/torso-1.png | Bin 0 -> 7778 bytes .../zenghu/zenghu_main.rsi/torso-2.png | Bin 0 -> 7157 bytes .../Mobs/Species/IPC/organs.rsi/ears.png | Bin 0 -> 418 bytes .../Mobs/Species/IPC/organs.rsi/eyeball-l.png | Bin 0 -> 4215 bytes .../Mobs/Species/IPC/organs.rsi/eyeball-r.png | Bin 0 -> 4202 bytes .../Mobs/Species/IPC/organs.rsi/eyes.png | Bin 0 -> 1047 bytes .../Mobs/Species/IPC/organs.rsi/heart-off.png | Bin 0 -> 260 bytes .../Mobs/Species/IPC/organs.rsi/heart-on.png | Bin 0 -> 491 bytes .../Mobs/Species/IPC/organs.rsi/meta.json | 50 ++++ .../Mobs/Species/IPC/organs.rsi/microcell.png | Bin 0 -> 334 bytes .../Mobs/Species/IPC/organs.rsi/tongue.png | Bin 0 -> 516 bytes .../Mobs/Species/IPC/parts.rsi/full.png | Bin 0 -> 2437 bytes .../Mobs/Species/IPC/parts.rsi/head_f.png | Bin 0 -> 885 bytes .../Mobs/Species/IPC/parts.rsi/head_m.png | Bin 0 -> 885 bytes .../Mobs/Species/IPC/parts.rsi/l_arm.png | Bin 0 -> 657 bytes .../Mobs/Species/IPC/parts.rsi/l_foot.png | Bin 0 -> 572 bytes .../Mobs/Species/IPC/parts.rsi/l_hand.png | Bin 0 -> 679 bytes .../Mobs/Species/IPC/parts.rsi/l_leg.png | Bin 0 -> 628 bytes .../Mobs/Species/IPC/parts.rsi/meta.json | 62 ++++ .../Mobs/Species/IPC/parts.rsi/r_arm.png | Bin 0 -> 737 bytes .../Mobs/Species/IPC/parts.rsi/r_foot.png | Bin 0 -> 562 bytes .../Mobs/Species/IPC/parts.rsi/r_hand.png | Bin 0 -> 780 bytes .../Mobs/Species/IPC/parts.rsi/r_leg.png | Bin 0 -> 636 bytes .../Mobs/Species/IPC/parts.rsi/torso_f.png | Bin 0 -> 1306 bytes .../Mobs/Species/IPC/parts.rsi/torso_m.png | Bin 0 -> 1232 bytes .../adv-retractor.rsi/adv-retractor-on.png | Bin 0 -> 220 bytes .../adv-retractor.rsi/adv-retractor.png | Bin 0 -> 254 bytes .../adv-retractor.rsi/inhand-left-on.png | Bin 0 -> 397 bytes .../Surgery/adv-retractor.rsi/inhand-left.png | Bin 0 -> 400 bytes .../adv-retractor.rsi/inhand-right-on.png | Bin 0 -> 421 bytes .../adv-retractor.rsi/inhand-right.png | Bin 0 -> 405 bytes .../Surgery/adv-retractor.rsi/meta.json | 33 +++ .../Medical/Surgery/bone-gel.rsi/bone-gel.png | Bin 0 -> 258 bytes .../Surgery/bone-gel.rsi/inhand-left.png | Bin 0 -> 418 bytes .../Surgery/bone-gel.rsi/inhand-right.png | Bin 0 -> 431 bytes .../Medical/Surgery/bone-gel.rsi/meta.json | 22 ++ .../Medical/Surgery/bone_gel.rsi/bone-gel.png | Bin 432 -> 0 bytes .../Surgery/bone_gel.rsi/bone-gel_0.png | Bin 391 -> 0 bytes .../Surgery/bone_gel.rsi/bone-gel_25.png | Bin 444 -> 0 bytes .../Surgery/bone_gel.rsi/bone-gel_50.png | Bin 456 -> 0 bytes .../Surgery/bone_gel.rsi/bone-gel_75.png | Bin 444 -> 0 bytes .../Medical/Surgery/bone_gel.rsi/meta.json | 29 -- .../bone_gel.rsi/predator_bone-gel.png | Bin 585 -> 0 bytes .../Surgery/bonesetter.rsi/bonesetter.png | Bin 581 -> 287 bytes .../Surgery/bonesetter.rsi/inhand-left.png | Bin 0 -> 486 bytes .../Surgery/bonesetter.rsi/inhand-right.png | Bin 0 -> 474 bytes .../Medical/Surgery/bonesetter.rsi/meta.json | 35 ++- .../bonesetter.rsi/predator_bonesetter.png | Bin 489 -> 0 bytes .../Medical/Surgery/cautery.rsi/cautery.png | Bin 0 -> 238 bytes .../Surgery/cautery.rsi/inhand-left.png | Bin 0 -> 420 bytes .../Surgery/cautery.rsi/inhand-right.png | Bin 0 -> 430 bytes .../Medical/Surgery/cautery.rsi/meta.json | 22 ++ .../Surgery/circular-saw.rsi/circular-saw.png | Bin 0 -> 273 bytes .../Surgery/circular-saw.rsi/inhand-left.png | Bin 0 -> 666 bytes .../Surgery/circular-saw.rsi/inhand-right.png | Bin 0 -> 668 bytes .../Surgery/circular-saw.rsi/meta.json | 22 ++ .../Medical/Surgery/drapes.rsi/drapes.png | Bin 0 -> 228 bytes .../Surgery/drapes.rsi/inhand-left.png | Bin 0 -> 460 bytes .../Surgery/drapes.rsi/inhand-right.png | Bin 0 -> 462 bytes .../Medical/Surgery/drapes.rsi/meta.json | 22 ++ .../Medical/Surgery/drill.rsi/drill.png | Bin 0 -> 702 bytes .../Medical/Surgery/drill.rsi/inhand-left.png | Bin 0 -> 685 bytes .../Surgery/drill.rsi/inhand-right.png | Bin 0 -> 689 bytes .../Medical/Surgery/drill.rsi/meta.json | 22 ++ .../Surgery/e-cautery.rsi/e-cautery-on.png | Bin 0 -> 234 bytes .../Surgery/e-cautery.rsi/e-cautery.png | Bin 0 -> 244 bytes .../Surgery/e-cautery.rsi/inhand-left-on.png | Bin 0 -> 481 bytes .../Surgery/e-cautery.rsi/inhand-left.png | Bin 0 -> 462 bytes .../Surgery/e-cautery.rsi/inhand-right-on.png | Bin 0 -> 496 bytes .../Surgery/e-cautery.rsi/inhand-right.png | Bin 0 -> 475 bytes .../Medical/Surgery/e-cautery.rsi/meta.json | 33 +++ .../Surgery/e-scalpel.rsi/e-scalpel-on.png | Bin 0 -> 537 bytes .../Surgery/e-scalpel.rsi/e-scalpel.png | Bin 0 -> 218 bytes .../Surgery/e-scalpel.rsi/inhand-left-on.png | Bin 0 -> 503 bytes .../Surgery/e-scalpel.rsi/inhand-left.png | Bin 0 -> 487 bytes .../Surgery/e-scalpel.rsi/inhand-right-on.png | Bin 0 -> 505 bytes .../Surgery/e-scalpel.rsi/inhand-right.png | Bin 0 -> 480 bytes .../Medical/Surgery/e-scalpel.rsi/meta.json | 39 +++ .../Medical/Surgery/hemostat.rsi/hemostat.png | Bin 0 -> 261 bytes .../Surgery/hemostat.rsi/inhand-left.png | Bin 0 -> 374 bytes .../Surgery/hemostat.rsi/inhand-right.png | Bin 0 -> 385 bytes .../Medical/Surgery/hemostat.rsi/meta.json | 22 ++ .../Surgery/omnimed.rsi/inhand-left.png | Bin 0 -> 593 bytes .../Surgery/omnimed.rsi/inhand-right.png | Bin 0 -> 585 bytes .../Medical/Surgery/omnimed.rsi/meta.json | 22 ++ .../Medical/Surgery/omnimed.rsi/omnimed.png | Bin 0 -> 271 bytes .../Surgery/retractor.rsi/inhand-left.png | Bin 0 -> 480 bytes .../Surgery/retractor.rsi/inhand-right.png | Bin 0 -> 486 bytes .../Medical/Surgery/retractor.rsi/meta.json | 22 ++ .../Surgery/retractor.rsi/retractor.png | Bin 0 -> 304 bytes .../Surgery/scalpel.rsi/inhand-left.png | Bin 0 -> 424 bytes .../Surgery/scalpel.rsi/inhand-right.png | Bin 0 -> 433 bytes .../Medical/Surgery/scalpel.rsi/meta.json | 22 ++ .../Medical/Surgery/scalpel.rsi/scalpel.png | Bin 0 -> 194 bytes Resources/keybinds.yml | 8 - 319 files changed, 3155 insertions(+), 294 deletions(-) create mode 100644 Content.Server/_Shitmed/Body/Systems/DebrainedSystem.cs create mode 100644 Content.Server/_Shitmed/Body/Systems/EyesSystem.cs create mode 100644 Content.Server/_Shitmed/Cybernetics/CyberneticsSystem.cs create mode 100644 Content.Shared/_Shitmed/Body/Organ/OrganEvents.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/BodyPartEffectComponent.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/BodyPartEffectSystem.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/OrganEffectComponent.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/OrganEffectSystem.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartComponent.cs create mode 100644 Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartSystem.cs create mode 100644 Content.Shared/_Shitmed/Cybernetics/CyberneticsComponent.cs create mode 100644 Content.Shared/_Shitmed/Surgery/Conditions/SurgeryComponentConditionComponent.cs rename Content.Shared/_Shitmed/Surgery/Tools/{SurgicalDrillComponent.cs => DrillComponent.cs} (63%) create mode 100644 Resources/Prototypes/_Shitmed/Body/Organs/cybernetic.yml create mode 100644 Resources/Prototypes/_Shitmed/Body/Organs/generic.yml create mode 100644 Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml create mode 100644 Resources/Prototypes/_Shitmed/Body/Parts/generic.yml create mode 100644 Resources/Prototypes/_Shitmed/Species/cybernetics.yml create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png create mode 100644 Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png create mode 100644 Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png create mode 100644 Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-combined.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-combined.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-tertiary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-primary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-primary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_monitor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/torso-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/head.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-l.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyeball-r.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-off.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/full.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_hand.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_f.png create mode 100644 Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel_0.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel_25.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel_50.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel_75.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/meta.json delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/predator_bone-gel.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png delete mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi/predator_bonesetter.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/cautery.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/circular-saw.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/drapes.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/omnimed.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-left.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json create mode 100644 Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png diff --git a/Content.Client/Input/ContentContexts.cs b/Content.Client/Input/ContentContexts.cs index 5261229c51..09123267f4 100644 --- a/Content.Client/Input/ContentContexts.cs +++ b/Content.Client/Input/ContentContexts.cs @@ -89,9 +89,13 @@ namespace Content.Client.Input human.AddFunction(ContentKeyFunctions.TargetHead); human.AddFunction(ContentKeyFunctions.TargetTorso); human.AddFunction(ContentKeyFunctions.TargetLeftArm); + human.AddFunction(ContentKeyFunctions.TargetLeftHand); human.AddFunction(ContentKeyFunctions.TargetRightArm); + human.AddFunction(ContentKeyFunctions.TargetRightHand); human.AddFunction(ContentKeyFunctions.TargetLeftLeg); + human.AddFunction(ContentKeyFunctions.TargetLeftFoot); human.AddFunction(ContentKeyFunctions.TargetRightLeg); + human.AddFunction(ContentKeyFunctions.TargetRightFoot); // Shitmed Change End // actions should be common (for ghosts, mobs, etc) diff --git a/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs b/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs index 4bbf2c279b..3bd6ab01fa 100644 --- a/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs +++ b/Content.Client/Options/UI/Tabs/KeyRebindTab.xaml.cs @@ -243,11 +243,15 @@ namespace Content.Client.Options.UI.Tabs AddButton(ContentKeyFunctions.TargetHead); AddButton(ContentKeyFunctions.TargetTorso); AddButton(ContentKeyFunctions.TargetLeftArm); + AddButton(ContentKeyFunctions.TargetLeftHand); AddButton(ContentKeyFunctions.TargetRightArm); + AddButton(ContentKeyFunctions.TargetRightHand); AddButton(ContentKeyFunctions.TargetLeftLeg); + AddButton(ContentKeyFunctions.TargetLeftFoot); AddButton(ContentKeyFunctions.TargetRightLeg); + AddButton(ContentKeyFunctions.TargetRightFoot); // Shitmed Change End - + AddHeader("ui-options-header-misc"); AddButton(ContentKeyFunctions.TakeScreenshot); AddButton(ContentKeyFunctions.TakeScreenshotNoUI); @@ -258,6 +262,14 @@ namespace Content.Client.Options.UI.Tabs { AddButton(boundKey); } +<<<<<<< HEAD +======= + // goobstation + foreach (var boundKey in ContentKeyFunctions.GetLoadoutBoundKeys()) + { + AddButton(boundKey); + } +>>>>>>> a3b45e4bd6 (Shitmed Update 2 - bottom text (#956)) AddHeader("ui-options-header-shuttle"); AddButton(ContentKeyFunctions.ShuttleStrafeUp); diff --git a/Content.Client/_Shitmed/Targeting/TargetingSystem.cs b/Content.Client/_Shitmed/Targeting/TargetingSystem.cs index f0e4d07b4c..6b4bcbfbb4 100644 --- a/Content.Client/_Shitmed/Targeting/TargetingSystem.cs +++ b/Content.Client/_Shitmed/Targeting/TargetingSystem.cs @@ -32,20 +32,20 @@ public sealed class TargetingSystem : SharedTargetingSystem InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.Torso))) .Bind(ContentKeyFunctions.TargetLeftArm, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftArm))) -/* .Bind(ContentKeyFunctions.TargetLeftHand, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftHand))) SOON :TM: */ + .Bind(ContentKeyFunctions.TargetLeftHand, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftHand))) .Bind(ContentKeyFunctions.TargetRightArm, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightArm))) -/* .Bind(ContentKeyFunctions.TargetRightHand, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightHand)))*/ + .Bind(ContentKeyFunctions.TargetRightHand, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightHand))) .Bind(ContentKeyFunctions.TargetLeftLeg, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftLeg))) -/* .Bind(ContentKeyFunctions.TargetLeftFoot, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftFoot)))*/ + .Bind(ContentKeyFunctions.TargetLeftFoot, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.LeftFoot))) .Bind(ContentKeyFunctions.TargetRightLeg, InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightLeg))) -/* .Bind(ContentKeyFunctions.TargetRightFoot, - InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightFoot)))*/ + .Bind(ContentKeyFunctions.TargetRightFoot, + InputCmdHandler.FromDelegate((session) => HandleTargetChange(session, TargetBodyPart.RightFoot))) .Register(); } diff --git a/Content.Server/Body/Components/BrainComponent.cs b/Content.Server/Body/Components/BrainComponent.cs index 004ff24eaf..441bcd3154 100644 --- a/Content.Server/Body/Components/BrainComponent.cs +++ b/Content.Server/Body/Components/BrainComponent.cs @@ -5,5 +5,10 @@ namespace Content.Server.Body.Components [RegisterComponent, Access(typeof(BrainSystem))] public sealed partial class BrainComponent : Component { + /// + /// Shitmed Change: Is this brain currently controlling the entity? + /// + [DataField] + public bool Active = true; } } diff --git a/Content.Server/Body/Systems/BodySystem.cs b/Content.Server/Body/Systems/BodySystem.cs index a2ef54c613..9014d3fe23 100644 --- a/Content.Server/Body/Systems/BodySystem.cs +++ b/Content.Server/Body/Systems/BodySystem.cs @@ -171,6 +171,16 @@ public sealed class BodySystem : SharedBodySystem return gibs; } + public override bool BurnPart(EntityUid partId, BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false) + || TerminatingOrDeleted(partId) + || EntityManager.IsQueuedForDeletion(partId)) + return false; + + return base.BurnPart(partId, part); + } + protected override void ApplyPartMarkings(EntityUid target, BodyPartAppearanceComponent component) { return; diff --git a/Content.Server/Body/Systems/BrainSystem.cs b/Content.Server/Body/Systems/BrainSystem.cs index f68ce386b2..d62f884650 100644 --- a/Content.Server/Body/Systems/BrainSystem.cs +++ b/Content.Server/Body/Systems/BrainSystem.cs @@ -27,29 +27,34 @@ namespace Content.Server.Body.Systems SubscribeLocalEvent(OnPointAttempt); } - private void HandleRemoval(EntityUid uid, BrainComponent _, ref OrganRemovedFromBodyEvent args) + private void HandleRemoval(EntityUid uid, BrainComponent brain, ref OrganRemovedFromBodyEvent args) { if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.OldBody)) return; - // Prevents revival, should kill the user within a given timespan too. - EnsureComp(args.OldBody); - EnsureComp(args.OldBody); - HandleMind(uid, args.OldBody); + brain.Active = false; + if (!CheckOtherBrains(args.OldBody)) + { + // Prevents revival, should kill the user within a given timespan too. + EnsureComp(args.OldBody); + HandleMind(uid, args.OldBody); + } } - private void HandleAddition(EntityUid uid, BrainComponent _, ref OrganAddedToBodyEvent args) + + private void HandleAddition(EntityUid uid, BrainComponent brain, ref OrganAddedToBodyEvent args) { if (TerminatingOrDeleted(uid) || TerminatingOrDeleted(args.Body)) return; - RemComp(args.Body); - if (_bodySystem.TryGetBodyOrganEntityComps(args.Body, out var _)) - RemComp(args.Body); - HandleMind(args.Body, uid); + if (!CheckOtherBrains(args.Body)) + { + RemComp(args.Body); + HandleMind(args.Body, uid, brain); + } } - // Shitmed Change End - private void HandleMind(EntityUid newEntity, EntityUid oldEntity) + + private void HandleMind(EntityUid newEntity, EntityUid oldEntity, BrainComponent? brain = null) { if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) return; @@ -65,8 +70,34 @@ namespace Content.Server.Body.Systems return; _mindSystem.TransferTo(mindId, newEntity, mind: mind); + if (brain != null) + brain.Active = true; } + private bool CheckOtherBrains(EntityUid entity) + { + var hasOtherBrains = false; + if (TryComp(entity, out var body)) + { + if (TryComp(entity, out var bodyBrain)) + hasOtherBrains = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(entity, body)) + { + if (TryComp(organ, out var brain) && brain.Active) + { + hasOtherBrains = true; + break; + } + } + } + } + + return hasOtherBrains; + } + + // Shitmed Change End private void OnPointAttempt(Entity ent, ref PointAttemptEvent args) { args.Cancel(); diff --git a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs index f0499dc6a2..4a2a3d1f73 100644 --- a/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs +++ b/Content.Server/Destructible/Thresholds/Behaviors/BurnBodyBehavior.cs @@ -1,4 +1,5 @@ using Content.Shared.Body.Components; +using Content.Shared.Body.Part; // Shitmed Change using Content.Shared.Inventory; using Content.Shared.Popups; using JetBrains.Annotations; @@ -25,8 +26,16 @@ public sealed partial class BurnBodyBehavior : IThresholdBehavior } } - sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); - - system.EntityManager.QueueDeleteEntity(bodyId); + if (system.EntityManager.TryGetComponent(bodyId, out var bodyPart)) + { + if (bodyPart.CanSever + && system.BodySystem.BurnPart(bodyId, bodyPart)) + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + } + else + { + sharedPopupSystem.PopupCoordinates(Loc.GetString("bodyburn-text-others", ("name", bodyId)), transformSystem.GetMoverCoordinates(bodyId), PopupType.LargeCaution); + system.EntityManager.QueueDeleteEntity(bodyId); + } } } diff --git a/Content.Server/_Shitmed/Body/Systems/DebrainedSystem.cs b/Content.Server/_Shitmed/Body/Systems/DebrainedSystem.cs new file mode 100644 index 0000000000..8b3ccba079 --- /dev/null +++ b/Content.Server/_Shitmed/Body/Systems/DebrainedSystem.cs @@ -0,0 +1,62 @@ +using Content.Server._Shitmed.DelayedDeath; +using Content.Shared._Shitmed.Body.Organ; +using Content.Shared.Body.Systems; +using Content.Shared.Mind; +using Content.Server.Popups; +using Content.Shared.Speech; +using Content.Shared.Standing; +using Content.Shared.Stunnable; + +namespace Content.Server._Shitmed.Body.Systems; + +/// +/// This system handles behavior on entities when they lose their head or their brains are removed. +/// MindComponent fuckery should still be mainly handled on BrainSystem as usual. +/// +public sealed class DebrainedSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly PopupSystem _popupSystem = default!; + [Dependency] private readonly StandingStateSystem _standingSystem = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnComponentInit); + SubscribeLocalEvent(OnComponentRemove); + SubscribeLocalEvent(OnSpeakAttempt); + SubscribeLocalEvent(OnStandAttempt); + } + + private void OnComponentInit(EntityUid uid, DebrainedComponent _, ComponentInit args) + { + if (TerminatingOrDeleted(uid)) + return; + + EnsureComp(uid); + EnsureComp(uid); + _standingSystem.Down(uid); + } + + private void OnComponentRemove(EntityUid uid, DebrainedComponent _, ComponentRemove args) + { + if (TerminatingOrDeleted(uid)) + return; + + RemComp(uid); + RemComp(uid); + if (_bodySystem.TryGetBodyOrganEntityComps(uid, out var _)) + RemComp(uid); + } + + private void OnSpeakAttempt(EntityUid uid, DebrainedComponent _, SpeakAttemptEvent args) + { + _popupSystem.PopupEntity(Loc.GetString("speech-muted"), uid, uid); + args.Cancel(); + } + + private void OnStandAttempt(EntityUid uid, DebrainedComponent _, StandAttemptEvent args) + { + args.Cancel(); + } +} diff --git a/Content.Server/_Shitmed/Body/Systems/EyesSystem.cs b/Content.Server/_Shitmed/Body/Systems/EyesSystem.cs new file mode 100644 index 0000000000..9a10e875b7 --- /dev/null +++ b/Content.Server/_Shitmed/Body/Systems/EyesSystem.cs @@ -0,0 +1,87 @@ +using Content.Server.Body.Components; +using Content.Shared.Body.Components; +using Content.Shared.Body.Events; +using Content.Shared._Shitmed.Body.Organ; +using Content.Shared.Eye.Blinding.Components; +using Content.Shared.Eye.Blinding.Systems; + +namespace Content.Server.Body.Systems +{ + public sealed class EyesSystem : EntitySystem + { + [Dependency] private readonly IEntityManager _entityManager = default!; + [Dependency] private readonly BlindableSystem _blindableSystem = default!; + [Dependency] private readonly BodySystem _bodySystem = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganEnabled); + SubscribeLocalEvent(OnOrganDisabled); + } + + private void HandleSight(EntityUid newEntity, EntityUid oldEntity) + { + if (TerminatingOrDeleted(newEntity) || TerminatingOrDeleted(oldEntity)) + return; + + BlindableComponent? newSight; + BlindableComponent? oldSight; + //transfer existing component to organ + if (!TryComp(newEntity, out newSight)) + newSight = EnsureComp(newEntity); + + if (!TryComp(oldEntity, out oldSight)) + oldSight = EnsureComp(oldEntity); + + //give new sight all values of old sight + _blindableSystem.TransferBlindness(newSight, oldSight, newEntity); + + var hasOtherEyes = false; + //check for other eye components on owning body and owning body organs (if old entity has a body) + if (TryComp(oldEntity, out var body)) + { + if (TryComp(oldEntity, out var bodyEyes)) //some bodies see through their skin!!! (slimes) + hasOtherEyes = true; + else + { + foreach (var (organ, _) in _bodySystem.GetBodyOrgans(oldEntity, body)) + { + if (TryComp(organ, out var eyes)) + { + hasOtherEyes = true; + break; + } + } + //TODO (MS14): Should we do this for body parts too? might be a little overpowered but could be funny/interesting + } + } + + //if there are no existing eye components for the old entity - set old sight to be blind otherwise leave it as is + if (!hasOtherEyes && !TryComp(oldEntity, out var self)) + _blindableSystem.AdjustEyeDamage((oldEntity, oldSight), oldSight.MaxDamage); + + } + + private void OnOrganEnabled(EntityUid uid, EyesComponent component, OrganEnabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + RemComp(body); + HandleSight(uid, body); + } + + private void OnOrganDisabled(EntityUid uid, EyesComponent component, OrganDisabledEvent args) + { + if (TerminatingOrDeleted(uid) + || args.Organ.Comp.Body is not { Valid: true } body) + return; + + EnsureComp(body); + HandleSight(body, uid); + } + } +} diff --git a/Content.Server/_Shitmed/Cybernetics/CyberneticsSystem.cs b/Content.Server/_Shitmed/Cybernetics/CyberneticsSystem.cs new file mode 100644 index 0000000000..386bfc9de8 --- /dev/null +++ b/Content.Server/_Shitmed/Cybernetics/CyberneticsSystem.cs @@ -0,0 +1,55 @@ +using Content.Server.Emp; +using Content.Shared.Body.Part; +using Content.Shared.Body.Organ; +using Content.Shared._Shitmed.Body.Organ; +using Content.Shared._Shitmed.Body.Events; +using Content.Shared._Shitmed.Cybernetics; + +namespace Content.Server._Shitmed.Cybernetics; + +internal sealed class CyberneticsSystem : EntitySystem +{ + public override void Initialize() + { + SubscribeLocalEvent(OnEmpPulse); + SubscribeLocalEvent(OnEmpDisabledRemoved); + } + private void OnEmpPulse(Entity cyberEnt, ref EmpPulseEvent ev) + { + if (!cyberEnt.Comp.Disabled) + { + ev.Affected = true; + ev.Disabled = true; + cyberEnt.Comp.Disabled = true; + + if (HasComp(cyberEnt)) + { + var disableEvent = new OrganEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + else if (HasComp(cyberEnt)) + { + var disableEvent = new BodyPartEnableChangedEvent(false); + RaiseLocalEvent(cyberEnt, ref disableEvent); + } + } + } + + private void OnEmpDisabledRemoved(Entity cyberEnt, ref EmpDisabledRemoved ev) + { + if (cyberEnt.Comp.Disabled) + { + cyberEnt.Comp.Disabled = false; + if (HasComp(cyberEnt)) + { + var enableEvent = new OrganEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + else if (HasComp(cyberEnt)) + { + var enableEvent = new BodyPartEnableChangedEvent(true); + RaiseLocalEvent(cyberEnt, ref enableEvent); + } + } + } +} diff --git a/Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs b/Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs index 34e02772c0..8538b407f6 100644 --- a/Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs +++ b/Content.Server/_Shitmed/Medical/Surgery/SurgerySystem.cs @@ -142,12 +142,13 @@ public sealed class SurgerySystem : SharedSurgerySystem private void OnSurgerySpecialDamageChange(Entity ent, ref SurgeryStepDamageChangeEvent args) { + // Im killing this shit soon too, inshallah. if (ent.Comp.DamageType == "Rot") _rot.ReduceAccumulator(args.Body, TimeSpan.FromSeconds(2147483648)); // BEHOLD, SHITCODE THAT I JUST COPY PASTED. I'll redo it at some point, pinky swear :) - else if (ent.Comp.DamageType == "Eye" + /*else if (ent.Comp.DamageType == "Eye" && TryComp(ent, out BlindableComponent? blindComp) && blindComp.EyeDamage > 0) - _blindableSystem.AdjustEyeDamage((args.Body, blindComp), -blindComp!.EyeDamage); + _blindableSystem.AdjustEyeDamage((args.Body, blindComp), -blindComp!.EyeDamage);*/ } private void OnStepScreamComplete(Entity ent, ref SurgeryStepEvent args) diff --git a/Content.Shared/Body/Organ/OrganComponent.cs b/Content.Shared/Body/Organ/OrganComponent.cs index 4a1847120a..34dc4abf1a 100644 --- a/Content.Shared/Body/Organ/OrganComponent.cs +++ b/Content.Shared/Body/Organ/OrganComponent.cs @@ -1,6 +1,7 @@ using Content.Shared.Body.Systems; using Robust.Shared.Containers; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; // Shitmed Change using Content.Shared._Shitmed.Medical.Surgery.Tools; // Shitmed Change namespace Content.Shared.Body.Organ; @@ -28,13 +29,13 @@ public sealed partial class OrganComponent : Component, ISurgeryToolComponent // /// without referencing the prototype or hardcoding. /// - [DataField] + [DataField, AlwaysPushInheritance] public string SlotId = ""; - [DataField] + [DataField, AlwaysPushInheritance] public string ToolName { get; set; } = "An organ"; - [DataField] + [DataField, AlwaysPushInheritance] public float Speed { get; set; } = 1f; /// @@ -42,5 +43,30 @@ public sealed partial class OrganComponent : Component, ISurgeryToolComponent // /// [DataField, AutoNetworkedField] public bool? Used { get; set; } + + + /// + /// When attached, the organ will ensure these components on the entity, and delete them on removal. + /// + [DataField] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the organ will ensure these components on the entity, and add them on removal. + /// + [DataField] + public ComponentRegistry? OnRemove; + + /// + /// Is this organ working or not? + /// + [DataField, AutoNetworkedField] + public bool Enabled = true; + + /// + /// Can this organ be enabled or disabled? Used mostly for prop, damaged or useless organs. + /// + [DataField] + public bool CanEnable = true; // Shitmed Change End } diff --git a/Content.Shared/Body/Part/BodyPartComponent.cs b/Content.Shared/Body/Part/BodyPartComponent.cs index f7ef8e0966..ec260399f0 100644 --- a/Content.Shared/Body/Part/BodyPartComponent.cs +++ b/Content.Shared/Body/Part/BodyPartComponent.cs @@ -11,6 +11,7 @@ using Content.Shared.Damage; using Content.Shared.FixedPoint; using Content.Shared._Shitmed.Medical.Surgery.Tools; using Content.Shared._Shitmed.Targeting; +using Robust.Shared.Prototypes; namespace Content.Shared.Body.Part; @@ -40,13 +41,13 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent [DataField, AutoNetworkedField] public FixedPoint2 VitalDamage = 100; - [DataField] + [DataField, AlwaysPushInheritance] public string ToolName { get; set; } = "A body part"; [DataField, AutoNetworkedField] public bool? Used { get; set; } = null; - [DataField] + [DataField, AlwaysPushInheritance] public float Speed { get; set; } = 1f; /// @@ -55,6 +56,12 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent [DataField] public float MinIntegrity; + /// + /// Whether this body part can be severed or not + /// + [DataField, AutoNetworkedField] + public bool CanSever = true; + /// /// Shitmed Change: Whether this body part is enabled or not. /// @@ -67,6 +74,12 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent [DataField] public bool CanEnable = true; + /// + /// Whether this body part can attach children or not. + /// + [DataField] + public bool CanAttachChildren = true; + /// /// Shitmed Change: How long it takes to run another self heal tick on the body part. /// @@ -113,7 +126,7 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent /// /// Shitmed Change: The ID of the base layer for this body part. /// - [DataField, AutoNetworkedField] + [DataField, AutoNetworkedField, AlwaysPushInheritance] public string? BaseLayerId; /// @@ -133,11 +146,11 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent { TargetIntegrity.Healthy, 10 }, }; - // Shitmed Change End - [DataField, AutoNetworkedField] + [DataField, AutoNetworkedField, AlwaysPushInheritance] public BodyPartType PartType = BodyPartType.Other; + // TODO BODY Replace with a simulation of organs /// /// Whether or not the owning will die if all @@ -146,9 +159,23 @@ public sealed partial class BodyPartComponent : Component, ISurgeryToolComponent [DataField("vital"), AutoNetworkedField] public bool IsVital; - [DataField, AutoNetworkedField] + [DataField, AutoNetworkedField, AlwaysPushInheritance] public BodyPartSymmetry Symmetry = BodyPartSymmetry.None; + /// + /// When attached, the part will ensure these components on the entity, and delete them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnAdd; + + /// + /// When removed, the part will ensure these components on the entity, and add them on removal. + /// + [DataField, AlwaysPushInheritance] + public ComponentRegistry? OnRemove; + + // Shitmed Change End + /// /// Child body parts attached to this body part. /// diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs index f246c381b7..9f54aacdd6 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Body.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Body.cs @@ -27,7 +27,6 @@ using Content.Shared.Rejuvenate; using Content.Shared.Standing; using Content.Shared._Shitmed.Targeting; using Robust.Shared.Timing; - namespace Content.Shared.Body.Systems; public partial class SharedBodySystem @@ -366,7 +365,7 @@ public partial class SharedBodySystem // Shitmed Change Start - public virtual HashSet GibPart( + public virtual HashSet GibPart( EntityUid partId, BodyPartComponent? part = null, bool launchGibs = true, @@ -382,7 +381,7 @@ public partial class SharedBodySystem if (part.Body is { } bodyEnt) { - if (IsPartRoot(bodyEnt, partId, part: part)) + if (IsPartRoot(bodyEnt, partId, part: part) || !part.CanSever) return gibs; ChangeSlotState((partId, part), true); @@ -414,6 +413,26 @@ public partial class SharedBodySystem return gibs; } + public virtual bool BurnPart(EntityUid partId, + BodyPartComponent? part = null) + { + if (!Resolve(partId, ref part, logMissing: false)) + return false; + + if (part.Body is { } bodyEnt) + { + if (IsPartRoot(bodyEnt, partId, part: part)) + return false; + + ChangeSlotState((partId, part), true); + RemovePartChildren((partId, part), bodyEnt); + QueueDel(partId); + return true; + } + + return false; + } + private void OnProfileLoadFinished(EntityUid uid, BodyComponent component, ProfileLoadFinishedEvent args) { if (!HasComp(uid) diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs index d1c4049e1c..cc892e0e77 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Organs.cs @@ -3,13 +3,35 @@ using Content.Shared.Body.Components; using Content.Shared.Body.Events; using Content.Shared.Body.Organ; using Content.Shared.Body.Part; -using Content.Shared.Damage; // Shitmed Change using Robust.Shared.Containers; +// Shitmed Change + +using Content.Shared.Damage; +using Content.Shared._Shitmed.BodyEffects; +using Content.Shared._Shitmed.Body.Events; +using Content.Shared._Shitmed.Body.Organ; + namespace Content.Shared.Body.Systems; public partial class SharedBodySystem { + // Shitmed Change Start + + private void InitializeOrgans() + { + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnOrganEnableChanged); + } + + private void OnMapInit(Entity ent, ref MapInitEvent args) + { + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + } + + // Shitmed Change End + private void AddOrgan( Entity organEnt, EntityUid bodyUid, @@ -21,11 +43,14 @@ public partial class SharedBodySystem if (organEnt.Comp.Body is not null) { + // Shitmed Change Start + organEnt.Comp.OriginalBody = organEnt.Comp.Body; var addedInBodyEv = new OrganAddedToBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref addedInBodyEv); + var organEnabledEv = new OrganEnableChangedEvent(true); + RaiseLocalEvent(organEnt, ref organEnabledEv); } - // Shitmed Change Start if (TryComp(parentPartUid, out DamageableComponent? damageable) && damageable.TotalDamage > 200) TrySetOrganUsed(organEnt, true, organEnt.Comp); @@ -41,7 +66,11 @@ public partial class SharedBodySystem if (organEnt.Comp.Body is { Valid: true } bodyUid) { - organEnt.Comp.OriginalBody = organEnt.Comp.Body; // Shitmed Change + // Shitmed Change Start + organEnt.Comp.OriginalBody = organEnt.Comp.Body; + var organDisabledEv = new OrganEnableChangedEvent(false); + RaiseLocalEvent(organEnt, ref organDisabledEv); + // Shitmed Change End var removedInBodyEv = new OrganRemovedFromBodyEvent(bodyUid, parentPartUid); RaiseLocalEvent(organEnt, ref removedInBodyEv); } @@ -231,5 +260,49 @@ public partial class SharedBodySystem return true; } + private void OnOrganEnableChanged(Entity organEnt, ref OrganEnableChangedEvent args) + { + if (!organEnt.Comp.CanEnable && args.Enabled) + return; + + organEnt.Comp.Enabled = args.Enabled; + + if (args.Enabled) + EnableOrgan(organEnt); + else + DisableOrgan(organEnt); + + if (organEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(organEnt, new OrganComponentsModifyEvent(bodyEnt, args.Enabled)); + + Dirty(organEnt, organEnt.Comp); + } + + private void EnableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganEnabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } + + private void DisableOrgan(Entity organEnt) + { + if (!TryComp(organEnt.Comp.Body, out BodyComponent? body)) + return; + + // I hate having to hardcode these checks so much. + if (HasComp(organEnt)) + { + var ev = new OrganDisabledEvent(organEnt); + RaiseLocalEvent(organEnt, ref ev); + } + } + // Shitmed Change End } diff --git a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs index be7041865e..1dcc1cbd86 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.Parts.cs @@ -11,12 +11,13 @@ using Robust.Shared.Containers; using Robust.Shared.Utility; // Shitmed Change Start -using Content.Shared.Humanoid; using Content.Shared._Shitmed.Body.Events; using Content.Shared._Shitmed.Body.Part; +using Content.Shared._Shitmed.BodyEffects; +using Content.Shared._Shitmed.Targeting.Events; +using Content.Shared.Humanoid; using Content.Shared.Inventory; using Content.Shared.Random; -using Content.Shared._Shitmed.Targeting.Events; namespace Content.Shared.Body.Systems; @@ -50,12 +51,14 @@ public partial class SharedBodySystem _slots.AddItemSlot(ent, ent.Comp.ContainerName, ent.Comp.ItemInsertionSlot); Dirty(ent, ent.Comp); } - // Shitmed Change Start + + if (ent.Comp.OnAdd is not null || ent.Comp.OnRemove is not null) + EnsureComp(ent); + foreach (var connection in ent.Comp.Children.Keys) { Containers.EnsureContainer(ent, GetPartSlotContainerId(connection)); } - // Shitmed Change End } private void OnBodyPartRemove(Entity ent, ref ComponentRemove args) @@ -70,12 +73,21 @@ public partial class SharedBodySystem return; partEnt.Comp.Enabled = args.Enabled; - Dirty(partEnt, partEnt.Comp); if (args.Enabled) + { EnablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, true)); + } else + { DisablePart(partEnt); + if (partEnt.Comp.Body is { Valid: true } bodyEnt) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(bodyEnt, false)); + } + + Dirty(partEnt, partEnt.Comp); } private void EnablePart(Entity partEnt) @@ -301,6 +313,9 @@ public partial class SharedBodySystem Dirty(partEnt, partEnt.Comp); partEnt.Comp.Body = bodyEnt; + if (partEnt.Comp.Enabled && partEnt.Comp.Body is { Valid: true } body) // Shitmed Change + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, true)); + var ev = new BodyPartAddedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); @@ -314,8 +329,14 @@ public partial class SharedBodySystem { Resolve(bodyEnt, ref bodyEnt.Comp, logMissing: false); Dirty(partEnt, partEnt.Comp); - partEnt.Comp.OriginalBody = partEnt.Comp.Body; // Shitmed Change - partEnt.Comp.ParentSlot = null; // Shitmed Change + + // Shitmed Change Start + partEnt.Comp.OriginalBody = partEnt.Comp.Body; + if (partEnt.Comp.Body is { Valid: true } body) + RaiseLocalEvent(partEnt, new BodyPartComponentsModifyEvent(body, false)); + partEnt.Comp.ParentSlot = null; + // Shitmed Change End + var ev = new BodyPartRemovedEvent(slotId, partEnt); RaiseLocalEvent(bodyEnt, ref ev); @@ -975,8 +996,8 @@ public partial class SharedBodySystem { containerNames = partType switch { - BodyPartType.Arm => new() { "gloves" }, - BodyPartType.Leg => new() { "shoes" }, + BodyPartType.Hand => new() { "gloves" }, + BodyPartType.Foot => new() { "shoes" }, BodyPartType.Head => new() { "eyes", "ears", "head", "mask" }, _ => new() }; @@ -997,6 +1018,14 @@ public partial class SharedBodySystem return count; } + public string GetSlotFromBodyPart(BodyPartComponent part) + { + if (part.Symmetry != BodyPartSymmetry.None) + return $"{part.Symmetry.ToString().ToLower()} {part.PartType.ToString().ToLower()}"; + else + return part.PartType.ToString().ToLower(); + } + // Shitmed Change End /// diff --git a/Content.Shared/Body/Systems/SharedBodySystem.cs b/Content.Shared/Body/Systems/SharedBodySystem.cs index f31b20b0ad..96951a3ef6 100644 --- a/Content.Shared/Body/Systems/SharedBodySystem.cs +++ b/Content.Shared/Body/Systems/SharedBodySystem.cs @@ -1,3 +1,4 @@ +using Content.Shared.Body.Part; // Shitmed Change using Content.Shared.Damage; using Content.Shared.Movement.Systems; using Content.Shared.Standing; @@ -42,7 +43,7 @@ public abstract partial class SharedBodySystem : EntitySystem InitializeBody(); InitializeParts(); - + InitializeOrgans(); // Shitmed Change Start // To try and mitigate the server load due to integrity checks, we set up a Job Queue. InitializeIntegrityQueue(); diff --git a/Content.Shared/Damage/Systems/DamageableSystem.cs b/Content.Shared/Damage/Systems/DamageableSystem.cs index 9a64426e1f..5ea893e37b 100644 --- a/Content.Shared/Damage/Systems/DamageableSystem.cs +++ b/Content.Shared/Damage/Systems/DamageableSystem.cs @@ -24,7 +24,7 @@ namespace Content.Shared.Damage [Dependency] private readonly IPrototypeManager _prototypeManager = default!; [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly INetManager _netMan = default!; - [Dependency] private readonly SharedBodySystem _body = default!; // Shitmed Change + [Dependency] private readonly SharedBodySystem _body = default!; // Shitmed Change [Dependency] private readonly IRobustRandom _random = default!; // Shitmed Change [Dependency] private readonly MobThresholdSystem _mobThreshold = default!; @@ -146,13 +146,21 @@ namespace Content.Shared.Damage return damage; } - var before = new BeforeDamageChangedEvent(damage, origin, targetPart, canSever ?? true, canEvade ?? false, partMultiplier ?? 1.00f); // Shitmed Change + var before = new BeforeDamageChangedEvent(damage, origin, targetPart); // Shitmed Change RaiseLocalEvent(uid.Value, ref before); - if (before.Cancelled - || before.Evaded) // Shitmed Change + if (before.Cancelled) return null; + // Shitmed Change Start + var partDamage = new TryChangePartDamageEvent(damage, origin, targetPart, canSever ?? true, canEvade ?? false, partMultiplier ?? 1.00f); + RaiseLocalEvent(uid.Value, ref partDamage); + + if (partDamage.Evaded || partDamage.Cancelled) + return null; + + // Shitmed Change End + // Apply resistances if (!ignoreResistances) { @@ -224,6 +232,19 @@ namespace Content.Shared.Damage // Setting damage does not count as 'dealing' damage, even if it is set to a larger value, so we pass an // empty damage delta. DamageChanged(uid, component, new DamageSpecifier()); + + // Shitmed Change Start + if (HasComp(uid)) + { + foreach (var (part, _) in _body.GetBodyChildren(uid)) + { + if (!TryComp(part, out DamageableComponent? damageComp)) + continue; + + SetAllDamage(part, damageComp, newValue); + } + } + // Shitmed Change End } public void SetDamageModifierSetId(EntityUid uid, string damageModifierSetId, DamageableComponent? comp = null) @@ -267,11 +288,6 @@ namespace Content.Shared.Damage TryComp(uid, out var thresholds); _mobThreshold.SetAllowRevives(uid, true, thresholds); // do this so that the state changes when we set the damage SetAllDamage(uid, component, 0); - // Shitmed Start - if (HasComp(uid)) - foreach (var part in _body.GetBodyChildren(uid)) - RaiseLocalEvent(part.Id, new RejuvenateEvent()); - // Shitmed End _mobThreshold.SetAllowRevives(uid, false, thresholds); } @@ -303,6 +319,16 @@ namespace Content.Shared.Damage /// [ByRefEvent] public record struct BeforeDamageChangedEvent( + DamageSpecifier Damage, + EntityUid? Origin = null, + TargetBodyPart? TargetPart = null, // Shitmed Change + bool Cancelled = false); + + /// + /// Shitmed Change: Raised on parts before damage is done so we can cancel the damage if they evade. + /// + [ByRefEvent] + public record struct TryChangePartDamageEvent( DamageSpecifier Damage, EntityUid? Origin = null, // Shitmed Change diff --git a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs index 20e29ef434..e5ce90eca2 100644 --- a/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs +++ b/Content.Shared/Damage/Systems/SharedGodmodeSystem.cs @@ -2,6 +2,7 @@ using Content.Shared.Damage.Components; using Content.Shared.Rejuvenate; using Content.Shared.Slippery; using Content.Shared.StatusEffect; +using Content.Shared.Body.Systems; // Shitmed Change namespace Content.Shared.Damage.Systems; @@ -9,6 +10,8 @@ public abstract class SharedGodmodeSystem : EntitySystem { [Dependency] private readonly DamageableSystem _damageable = default!; + [Dependency] private readonly SharedBodySystem _bodySystem = default!; // Shitmed Change + public override void Initialize() { base.Initialize(); @@ -50,6 +53,9 @@ public abstract class SharedGodmodeSystem : EntitySystem // Rejuv to cover other stuff RaiseLocalEvent(uid, new RejuvenateEvent()); + + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) // Shitmed Change + EnableGodmode(id); } public virtual void DisableGodmode(EntityUid uid, GodmodeComponent? godmode = null) @@ -63,6 +69,9 @@ public abstract class SharedGodmodeSystem : EntitySystem } RemComp(uid); + + foreach (var (id, _) in _bodySystem.GetBodyChildren(uid)) // Shitmed Change + DisableGodmode(id); } /// diff --git a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs index 24eed3adcf..e6bd075cff 100644 --- a/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs +++ b/Content.Shared/Eye/Blinding/Systems/BlindableSystem.cs @@ -87,6 +87,19 @@ public sealed class BlindableSystem : EntitySystem blindable.Comp.MinDamage = amount; UpdateEyeDamage(blindable, false); } + + // Shitmed Change Start + public void TransferBlindness(BlindableComponent newSight, BlindableComponent oldSight, EntityUid newEntity) + { + newSight.IsBlind = oldSight.IsBlind; + newSight.EyeDamage = oldSight.EyeDamage; + newSight.LightSetup = oldSight.LightSetup; + newSight.GraceFrame = oldSight.GraceFrame; + newSight.MinDamage = oldSight.MinDamage; + newSight.MaxDamage = oldSight.MaxDamage; + UpdateEyeDamage((newEntity, newSight), true); + } + // Shitmed Change End } /// diff --git a/Content.Shared/Input/ContentKeyFunctions.cs b/Content.Shared/Input/ContentKeyFunctions.cs index a7093119d4..9ae5f9e17d 100644 --- a/Content.Shared/Input/ContentKeyFunctions.cs +++ b/Content.Shared/Input/ContentKeyFunctions.cs @@ -65,11 +65,15 @@ namespace Content.Shared.Input public static readonly BoundKeyFunction TargetHead = "TargetHead"; public static readonly BoundKeyFunction TargetTorso = "TargetTorso"; public static readonly BoundKeyFunction TargetLeftArm = "TargetLeftArm"; + public static readonly BoundKeyFunction TargetLeftHand = "TargetLeftHand"; public static readonly BoundKeyFunction TargetRightArm = "TargetRightArm"; + public static readonly BoundKeyFunction TargetRightHand = "TargetRightHand"; public static readonly BoundKeyFunction TargetLeftLeg = "TargetLeftLeg"; + public static readonly BoundKeyFunction TargetLeftFoot = "TargetLeftFoot"; public static readonly BoundKeyFunction TargetRightLeg = "TargetRightLeg"; - + public static readonly BoundKeyFunction TargetRightFoot = "TargetRightFoot"; // Shitmed Change End + public static readonly BoundKeyFunction ArcadeUp = "ArcadeUp"; public static readonly BoundKeyFunction ArcadeDown = "ArcadeDown"; public static readonly BoundKeyFunction ArcadeLeft = "ArcadeLeft"; diff --git a/Content.Shared/Overlays/ShowHealthBarsComponent.cs b/Content.Shared/Overlays/ShowHealthBarsComponent.cs index 3f27885db1..8344686d2d 100644 --- a/Content.Shared/Overlays/ShowHealthBarsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthBarsComponent.cs @@ -8,15 +8,23 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health bars above damageable mobs. /// +<<<<<<< HEAD [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState(true)] +======= +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // Shitmed Change +>>>>>>> a3b45e4bd6 (Shitmed Update 2 - bottom text (#956)) public sealed partial class ShowHealthBarsComponent : Component { /// /// Displays health bars of the damage containers. /// +<<<<<<< HEAD [DataField] [AutoNetworkedField] +======= + [DataField, AutoNetworkedField] // Shitmed Change +>>>>>>> a3b45e4bd6 (Shitmed Update 2 - bottom text (#956)) public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Overlays/ShowHealthIconsComponent.cs b/Content.Shared/Overlays/ShowHealthIconsComponent.cs index bc8b5419d2..5f32614b7e 100644 --- a/Content.Shared/Overlays/ShowHealthIconsComponent.cs +++ b/Content.Shared/Overlays/ShowHealthIconsComponent.cs @@ -7,15 +7,24 @@ namespace Content.Shared.Overlays; /// /// This component allows you to see health status icons above damageable mobs. /// +<<<<<<< HEAD [RegisterComponent, NetworkedComponent] [AutoGenerateComponentState(true)] +======= +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // Shitmed Change + +>>>>>>> a3b45e4bd6 (Shitmed Update 2 - bottom text (#956)) public sealed partial class ShowHealthIconsComponent : Component { /// /// Displays health status icons of the damage containers. /// +<<<<<<< HEAD [DataField] [AutoNetworkedField] +======= + [DataField, AutoNetworkedField] // Shitmed Change +>>>>>>> a3b45e4bd6 (Shitmed Update 2 - bottom text (#956)) public List> DamageContainers = new() { "Biological" diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 93713e52c6..ed6a2818c5 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -3,13 +3,13 @@ using Robust.Shared.GameStates; namespace Content.Shared.Prying.Components; -[RegisterComponent, NetworkedComponent] +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] // Shitmed Change public sealed partial class PryingComponent : Component { /// /// Whether the entity can pry open powered doors /// - [DataField] + [DataField, AutoNetworkedField] // Shitmed Change public bool PryPowered; /// @@ -22,7 +22,7 @@ public sealed partial class PryingComponent : Component /// Modifier on the prying time. /// Lower values result in more time. /// - [DataField] + [DataField, AutoNetworkedField] // Shitmed Change public float SpeedModifier = 1.0f; /// diff --git a/Content.Shared/_Shitmed/Body/Events/BodyPartEvents.cs b/Content.Shared/_Shitmed/Body/Events/BodyPartEvents.cs index 4a97049882..3f65fc37b1 100644 --- a/Content.Shared/_Shitmed/Body/Events/BodyPartEvents.cs +++ b/Content.Shared/_Shitmed/Body/Events/BodyPartEvents.cs @@ -26,3 +26,5 @@ public readonly record struct BodyPartEnabledEvent(Entity Par [ByRefEvent] public readonly record struct BodyPartDisabledEvent(Entity Part); + +public readonly record struct BodyPartComponentsModifyEvent(EntityUid Body, bool Add); diff --git a/Content.Shared/_Shitmed/Body/Organ/OrganEvents.cs b/Content.Shared/_Shitmed/Body/Organ/OrganEvents.cs new file mode 100644 index 0000000000..4126b4d13a --- /dev/null +++ b/Content.Shared/_Shitmed/Body/Organ/OrganEvents.cs @@ -0,0 +1,13 @@ +using Content.Shared.Body.Organ; +namespace Content.Shared._Shitmed.Body.Organ; + +public readonly record struct OrganComponentsModifyEvent(EntityUid Body, bool Add); + +[ByRefEvent] +public readonly record struct OrganEnableChangedEvent(bool Enabled); + +[ByRefEvent] +public readonly record struct OrganEnabledEvent(Entity Organ); + +[ByRefEvent] +public readonly record struct OrganDisabledEvent(Entity Organ); diff --git a/Content.Shared/_Shitmed/Body/Systems/SharedBodySystem.Targeting.cs b/Content.Shared/_Shitmed/Body/Systems/SharedBodySystem.Targeting.cs index 89bf2a0232..b13ca80a97 100644 --- a/Content.Shared/_Shitmed/Body/Systems/SharedBodySystem.Targeting.cs +++ b/Content.Shared/_Shitmed/Body/Systems/SharedBodySystem.Targeting.cs @@ -64,7 +64,7 @@ public partial class SharedBodySystem private void InitializeIntegrityQueue() { _queryTargeting = GetEntityQuery(); - SubscribeLocalEvent(OnBeforeDamageChanged); + SubscribeLocalEvent(OnTryChangePartDamage); SubscribeLocalEvent(OnBodyDamageModify); SubscribeLocalEvent(OnPartDamageModify); SubscribeLocalEvent(OnDamageChanged); @@ -106,7 +106,7 @@ public partial class SharedBodySystem } } - private void OnBeforeDamageChanged(Entity ent, ref BeforeDamageChangedEvent args) + private void OnTryChangePartDamage(Entity ent, ref TryChangePartDamageEvent args) { // If our target has a TargetingComponent, that means they will take limb damage // And if their attacker also has one, then we use that part. @@ -223,6 +223,7 @@ public partial class SharedBodySystem var delta = args.DamageDelta; if (args.CanSever + && partEnt.Comp.CanSever && partIdSlot is not null && delta != null && !HasComp(partEnt) diff --git a/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectComponent.cs b/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectComponent.cs new file mode 100644 index 0000000000..be6ab40a2d --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectComponent.cs @@ -0,0 +1,26 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared._Shitmed.BodyEffects; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class BodyPartEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectSystem.cs b/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectSystem.cs new file mode 100644 index 0000000000..96cdae1d78 --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/BodyPartEffectSystem.cs @@ -0,0 +1,96 @@ +using Content.Shared._Shitmed.Body.Events; +using Content.Shared.Body.Part; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; + +namespace Content.Shared._Shitmed.BodyEffects; +public partial class BodyPartEffectSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnPartComponentsModify(Entity partEnt, + ref BodyPartComponentsModifyEvent ev) + { + if (partEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnAdd); + } + + if (partEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, partEnt, partEnt.Comp.OnRemove); + } + + Dirty(partEnt, partEnt.Comp); + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + EntityManager.AddComponent(body, newComp, true); + + effectComp.Active[key] = comp; + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + BodyPartEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/BodyEffects/OrganEffectComponent.cs b/Content.Shared/_Shitmed/BodyEffects/OrganEffectComponent.cs new file mode 100644 index 0000000000..c0c627b8f0 --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/OrganEffectComponent.cs @@ -0,0 +1,27 @@ +// We keep this clone of the other component since I don't know yet if I'll need organ specific functions in the future. +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; + +namespace Content.Shared._Shitmed.BodyEffects; + +[RegisterComponent, NetworkedComponent] +[AutoGenerateComponentPause] +public sealed partial class OrganEffectComponent : Component +{ + /// + /// The components that are active on the part and will be refreshed every 5s + /// + [DataField] + public ComponentRegistry Active = new(); + + /// + /// How long to wait between each refresh. + /// Effects can only last at most this long once the organ is removed. + /// + [DataField] + public TimeSpan Delay = TimeSpan.FromSeconds(5); + + [DataField(customTypeSerializer: typeof(TimeOffsetSerializer)), AutoPausedField] + public TimeSpan NextUpdate = TimeSpan.Zero; +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/BodyEffects/OrganEffectSystem.cs b/Content.Shared/_Shitmed/BodyEffects/OrganEffectSystem.cs new file mode 100644 index 0000000000..6b290f1955 --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/OrganEffectSystem.cs @@ -0,0 +1,110 @@ +// We keep this clone of the other system since I don't know yet if I'll need organ specific functions in the future. +// will delete or refactor as time goes on. +using Content.Shared._Shitmed.Body.Organ; +using Content.Shared.Body.Organ; +using Robust.Shared.Prototypes; +using Robust.Shared.Serialization.Manager; +using Robust.Shared.Timing; +using System.Linq; +using Robust.Shared.Network; + + +namespace Content.Shared._Shitmed.BodyEffects; +public partial class OrganEffectSystem : EntitySystem +{ + [Dependency] private readonly IComponentFactory _compFactory = default!; + [Dependency] private readonly ISerializationManager _serManager = default!; + [Dependency] private readonly IGameTiming _gameTiming = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnOrganComponentsModify); + } + + // While I would love to kill this function, problem is that if we happen to have two parts that add the same + // effect, removing one will remove both of them, since we cant tell what the source of a Component is. + public override void Update(float frameTime) + { + base.Update(frameTime); + + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + var query = EntityQueryEnumerator(); + var now = _gameTiming.CurTime; + while (query.MoveNext(out var uid, out var comp, out var part)) + { + if (now < comp.NextUpdate || !comp.Active.Any() || part.Body is not { } body) + continue; + + comp.NextUpdate = now + comp.Delay; + AddComponents(body, uid, comp.Active); + } + } + + private void OnOrganComponentsModify(Entity organEnt, + ref OrganComponentsModifyEvent ev) + { + if (!_net.IsServer) // TODO: Kill this once I figure out whats breaking the Diagnostic Cybernetics. + return; + + if (organEnt.Comp.OnAdd != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnAdd); + } + + if (organEnt.Comp.OnRemove != null) + { + if (ev.Add) + AddComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + else + RemoveComponents(ev.Body, organEnt, organEnt.Comp.OnRemove); + } + } + + private void AddComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + var compType = comp.Component.GetType(); + if (HasComp(body, compType)) + continue; + + var newComp = (Component) _serManager.CreateCopy(comp.Component, notNullableOverride: true); + newComp.Owner = body; + EntityManager.AddComponent(body, newComp, true); + effectComp.Active[key] = comp; + if (newComp.NetSyncEnabled) + { + Dirty(body, newComp); + Dirty(part, effectComp); + } + } + } + + private void RemoveComponents(EntityUid body, + EntityUid part, + ComponentRegistry reg, + OrganEffectComponent? effectComp = null) + { + if (!Resolve(part, ref effectComp, logMissing: false)) + return; + + foreach (var (key, comp) in reg) + { + RemComp(body, comp.Component.GetType()); + effectComp.Active.Remove(key); + } + } +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartComponent.cs b/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartComponent.cs new file mode 100644 index 0000000000..e581867fc3 --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartComponent.cs @@ -0,0 +1,18 @@ +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Shitmed.BodyEffects.Subsystems; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class GenerateChildPartComponent : Component +{ + + [DataField(required: true)] + public EntProtoId Id = ""; + + [DataField, AutoNetworkedField] + public EntityUid? ChildPart; + + [DataField] + public bool Active = false; +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartSystem.cs b/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartSystem.cs new file mode 100644 index 0000000000..00215048e7 --- /dev/null +++ b/Content.Shared/_Shitmed/BodyEffects/Subsystems/GenerateChildPartSystem.cs @@ -0,0 +1,69 @@ +using Content.Shared.Body.Part; +using Content.Shared.Body.Systems; +using Content.Shared._Shitmed.Body.Events; +using Robust.Shared.Map; +using Robust.Shared.Timing; +using Robust.Shared.Network; +using System.Numerics; + +namespace Content.Shared._Shitmed.BodyEffects.Subsystems; + +public sealed class GenerateChildPartSystem : EntitySystem +{ + [Dependency] private readonly SharedBodySystem _bodySystem = default!; + [Dependency] private readonly IGameTiming _timing = default!; + [Dependency] private readonly INetManager _net = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnPartComponentsModify); + } + + private void OnPartComponentsModify(EntityUid uid, GenerateChildPartComponent component, ref BodyPartComponentsModifyEvent args) + { + if (args.Add) + CreatePart(uid, component); + //else + //DeletePart(uid, component); + } + + private void CreatePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp) + || partComp.Body is null + || component.Active) + return; + + // I pinky swear to also move this to the server side properly next update :) + if (_net.IsServer) + { + var childPart = Spawn(component.Id, new EntityCoordinates(partComp.Body.Value, Vector2.Zero)); + + if (!TryComp(childPart, out BodyPartComponent? childPartComp)) + return; + + var slotName = _bodySystem.GetSlotFromBodyPart(childPartComp); + _bodySystem.TryCreatePartSlot(uid, slotName, childPartComp.PartType, out var _); + _bodySystem.AttachPart(uid, slotName, childPart, partComp, childPartComp); + component.ChildPart = childPart; + component.Active = true; + Dirty(childPart, childPartComp); + } + + _bodySystem.ChangeSlotState((uid, partComp), false); + } + + // Still unusued, gotta figure out what I want to do with this function outside of fuckery with mantis blades. + private void DeletePart(EntityUid uid, GenerateChildPartComponent component) + { + if (!TryComp(uid, out BodyPartComponent? partComp)) + return; + + _bodySystem.ChangeSlotState((uid, partComp), true); + var ev = new BodyPartDroppedEvent((uid, partComp)); + RaiseLocalEvent(uid, ref ev); + QueueDel(uid); + } +} + diff --git a/Content.Shared/_Shitmed/Cybernetics/CyberneticsComponent.cs b/Content.Shared/_Shitmed/Cybernetics/CyberneticsComponent.cs new file mode 100644 index 0000000000..43c1588c2a --- /dev/null +++ b/Content.Shared/_Shitmed/Cybernetics/CyberneticsComponent.cs @@ -0,0 +1,16 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared._Shitmed.Cybernetics; + +/// +/// Component for cybernetic implants that can be installed in entities +/// +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class CyberneticsComponent : Component +{ + /// + /// Is the cybernetic implant disabled by EMPs, etc? + /// + [DataField, AutoNetworkedField] + public bool Disabled = false; +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/Surgery/Conditions/SurgeryComponentConditionComponent.cs b/Content.Shared/_Shitmed/Surgery/Conditions/SurgeryComponentConditionComponent.cs new file mode 100644 index 0000000000..af03fbf912 --- /dev/null +++ b/Content.Shared/_Shitmed/Surgery/Conditions/SurgeryComponentConditionComponent.cs @@ -0,0 +1,17 @@ +using Content.Shared.Body.Part; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared._Shitmed.Medical.Surgery.Conditions; + +// Quite the redundant name eh? +[RegisterComponent, NetworkedComponent] +public sealed partial class SurgeryComponentConditionComponent : Component +{ + [DataField] + public ComponentRegistry Component; + + [DataField] + public bool Inverse; + +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs b/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs index f08b83ca87..ea7d184f2e 100644 --- a/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs +++ b/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.Steps.cs @@ -104,6 +104,17 @@ public abstract partial class SharedSurgerySystem } } + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + var compType = reg.Component.GetType(); + if (HasComp(args.Body, compType)) + continue; + AddComp(args.Body, _compFactory.GetComponent(compType)); + } + } + if (ent.Comp.BodyRemove != null) { foreach (var reg in ent.Comp.BodyRemove.Values) @@ -151,6 +162,18 @@ public abstract partial class SharedSurgerySystem } } + if (ent.Comp.BodyAdd != null) + { + foreach (var reg in ent.Comp.BodyAdd.Values) + { + if (!HasComp(args.Body, reg.Component.GetType())) + { + args.Cancelled = true; + return; + } + } + } + if (ent.Comp.BodyRemove != null) { foreach (var reg in ent.Comp.BodyRemove.Values) @@ -253,12 +276,9 @@ public abstract partial class SharedSurgerySystem bonus *= 0.2; var adjustedDamage = new DamageSpecifier(ent.Comp.Damage); - var bonusPerType = bonus / group.Length; foreach (var type in group) - { - adjustedDamage.DamageDict[type] -= bonusPerType; - } + adjustedDamage.DamageDict[type] -= bonus; var ev = new SurgeryStepDamageEvent(args.User, args.Body, args.Part, args.Surgery, adjustedDamage, 0.5f); RaiseLocalEvent(args.Body, ref ev); @@ -619,7 +639,7 @@ public abstract partial class SharedSurgerySystem foreach (var tool in validTools.Keys) { if (TryComp(tool, out SurgeryToolComponent? toolComp) && - toolComp.EndSound != null) + toolComp.StartSound != null) { _audio.PlayEntity(toolComp.StartSound, user, tool); } @@ -632,7 +652,8 @@ public abstract partial class SharedSurgerySystem var ev = new SurgeryDoAfterEvent(args.Surgery, args.Step); // TODO: Move 2 seconds to a field of SurgeryStepComponent - var duration = 2f / speed; + var duration = GetSurgeryDuration(step, user, body, speed); + if (TryComp(user, out SurgerySpeedModifierComponent? surgerySpeedMod) && surgerySpeedMod is not null) duration = duration / surgerySpeedMod.SpeedModifier; @@ -664,6 +685,18 @@ public abstract partial class SharedSurgerySystem } } + private float GetSurgeryDuration(EntityUid surgeryStep, EntityUid user, EntityUid target, float toolSpeed) + { + if (!TryComp(surgeryStep, out SurgeryStepComponent? stepComp)) + return 2f; // Shouldnt really happen but just a failsafe. + + var speed = toolSpeed; + + if (TryComp(user, out SurgerySpeedModifierComponent? surgerySpeedMod)) + speed *= surgerySpeedMod.SpeedModifier; + + return stepComp.Duration / speed; + } private (Entity Surgery, int Step)? GetNextStep(EntityUid body, EntityUid part, Entity surgery, List requirements) { if (!Resolve(surgery, ref surgery.Comp)) diff --git a/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs b/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs index e07630e8d7..f5f58789d1 100644 --- a/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs +++ b/Content.Shared/_Shitmed/Surgery/SharedSurgerySystem.cs @@ -58,6 +58,7 @@ public abstract partial class SharedSurgerySystem : EntitySystem SubscribeLocalEvent(OnTargetDoAfter); SubscribeLocalEvent(OnCloseIncisionValid); //SubscribeLocalEvent(OnLarvaValid); + SubscribeLocalEvent(OnComponentConditionValid); SubscribeLocalEvent(OnPartConditionValid); SubscribeLocalEvent(OnOrganConditionValid); SubscribeLocalEvent(OnWoundedValid); @@ -127,6 +128,21 @@ public abstract partial class SharedSurgerySystem : EntitySystem if (infected != null && infected.SpawnedLarva != null) args.Cancelled = true; }*/ + + private void OnComponentConditionValid(Entity ent, ref SurgeryValidEvent args) + { + var present = true; + foreach (var reg in ent.Comp.Component.Values) + { + var compType = reg.Component.GetType(); + if (!HasComp(args.Part, compType)) + present = false; + } + + if (ent.Comp.Inverse ? present : !present) + args.Cancelled = true; + } + private void OnPartConditionValid(Entity ent, ref SurgeryValidEvent args) { if (!TryComp(args.Part, out var part)) @@ -177,7 +193,7 @@ public abstract partial class SharedSurgerySystem : EntitySystem return; } - var results = _body.GetBodyChildrenOfType(args.Body, ent.Comp.Part, symmetry: ent.Comp.Symmetry); + var results = _body.GetBodyChildrenOfType(args.Body, ent.Comp.Part, symmetry: ent.Comp.Symmetry).ToList(); if (results is not { } || !results.Any()) return; diff --git a/Content.Shared/_Shitmed/Surgery/Steps/SurgeryStepComponent.cs b/Content.Shared/_Shitmed/Surgery/Steps/SurgeryStepComponent.cs index b9f092cc20..7f1eed7864 100644 --- a/Content.Shared/_Shitmed/Surgery/Steps/SurgeryStepComponent.cs +++ b/Content.Shared/_Shitmed/Surgery/Steps/SurgeryStepComponent.cs @@ -14,9 +14,15 @@ public sealed partial class SurgeryStepComponent : Component [DataField] public ComponentRegistry? Add; + [DataField] + public ComponentRegistry? BodyAdd; + [DataField] public ComponentRegistry? Remove; [DataField] public ComponentRegistry? BodyRemove; + + [DataField] + public float Duration = 2f; } diff --git a/Content.Shared/_Shitmed/Surgery/Tools/BoneSetterComponent.cs b/Content.Shared/_Shitmed/Surgery/Tools/BoneSetterComponent.cs index 0fde03958a..8d2dda0cb1 100644 --- a/Content.Shared/_Shitmed/Surgery/Tools/BoneSetterComponent.cs +++ b/Content.Shared/_Shitmed/Surgery/Tools/BoneSetterComponent.cs @@ -3,4 +3,10 @@ using Robust.Shared.GameStates; namespace Content.Shared._Shitmed.Medical.Surgery.Tools; [RegisterComponent, NetworkedComponent] -public sealed partial class BoneSetterComponent : Component; \ No newline at end of file +public sealed partial class BoneSetterComponent : Component, ISurgeryToolComponent +{ + public string ToolName => "a bone setter"; + public bool? Used { get; set; } = null; + [DataField] + public float Speed { get; set; } = 1f; +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/Surgery/Tools/SurgicalDrillComponent.cs b/Content.Shared/_Shitmed/Surgery/Tools/DrillComponent.cs similarity index 63% rename from Content.Shared/_Shitmed/Surgery/Tools/SurgicalDrillComponent.cs rename to Content.Shared/_Shitmed/Surgery/Tools/DrillComponent.cs index c47c7e2834..919307e898 100644 --- a/Content.Shared/_Shitmed/Surgery/Tools/SurgicalDrillComponent.cs +++ b/Content.Shared/_Shitmed/Surgery/Tools/DrillComponent.cs @@ -3,10 +3,10 @@ using Robust.Shared.GameStates; namespace Content.Shared._Shitmed.Medical.Surgery.Tools; [RegisterComponent, NetworkedComponent] -public sealed partial class SurgicalDrillComponent : Component, ISurgeryToolComponent +public sealed partial class DrillComponent : Component, ISurgeryToolComponent { - public string ToolName => "a surgical drill"; + public string ToolName => "a drill"; public bool? Used { get; set; } = null; [DataField] public float Speed { get; set; } = 1f; -} +} \ No newline at end of file diff --git a/Content.Shared/_Shitmed/Surgery/Tools/SurgeryToolExamineSystem.cs b/Content.Shared/_Shitmed/Surgery/Tools/SurgeryToolExamineSystem.cs index 753623127b..5d4b7a9fdf 100644 --- a/Content.Shared/_Shitmed/Surgery/Tools/SurgeryToolExamineSystem.cs +++ b/Content.Shared/_Shitmed/Surgery/Tools/SurgeryToolExamineSystem.cs @@ -23,7 +23,7 @@ public sealed class SurgeryToolExamineSystem : EntitySystem SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnExamined); - SubscribeLocalEvent(OnExamined); + SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnExamined); SubscribeLocalEvent(OnExamined); diff --git a/Content.Shared/_White/Standing/SharedLayingDownSystem.cs b/Content.Shared/_White/Standing/SharedLayingDownSystem.cs index 94d1032276..ea17c23881 100644 --- a/Content.Shared/_White/Standing/SharedLayingDownSystem.cs +++ b/Content.Shared/_White/Standing/SharedLayingDownSystem.cs @@ -1,3 +1,4 @@ +using Content.Shared._Shitmed.Body.Organ; // Shitmed Change using Content.Shared.Body.Components; // Shitmed Change using Content.Shared.DoAfter; using Content.Shared.Gravity; @@ -120,7 +121,8 @@ public abstract class SharedLayingDownSystem : EntitySystem TerminatingOrDeleted(uid) || // Shitmed Change !TryComp(uid, out var body) || - body.LegEntities.Count == 0) + body.LegEntities.Count == 0 || + HasComp(uid)) return false; var args = new DoAfterArgs(EntityManager, uid, layingDown.StandingUpTime, new StandingUpDoAfterEvent(), uid) diff --git a/Resources/Locale/en-US/_Shitmed/surgery-popup.ftl b/Resources/Locale/en-US/_Shitmed/surgery-popup.ftl index 8ded2fcaec..dd49176148 100644 --- a/Resources/Locale/en-US/_Shitmed/surgery-popup.ftl +++ b/Resources/Locale/en-US/_Shitmed/surgery-popup.ftl @@ -50,3 +50,4 @@ surgery-popup-step-SurgeryStepInsertHeart = {$user} is inserting a heart into {$ surgery-popup-step-SurgeryStepInsertStomach = {$user} is inserting a stomach into {$target}'s {$part}! surgery-popup-step-SurgeryStepSealOrganWound = {$user} is sealing the wounds on {$target}'s {$part}. +surgery-popup-step-SurgeryStepLobotomize = {$user} is drilling a hole into {$target}'s {$part}. \ No newline at end of file diff --git a/Resources/Locale/en-US/research/technologies.ftl b/Resources/Locale/en-US/research/technologies.ftl index 91a803da6e..9387ce7c62 100644 --- a/Resources/Locale/en-US/research/technologies.ftl +++ b/Resources/Locale/en-US/research/technologies.ftl @@ -71,3 +71,8 @@ research-technology-advanced-spray = Advanced Spray research-technology-bluespace-cargo-transport = Bluespace Cargo Transport research-technology-quantum-fiber-weaving = Quantum Fiber Weaving research-technology-bluespace-chemistry = Bluespace Chemistry + +## Shitmed Change +research-technology-advanced-treatment = Advanced Treatment +research-technology-high-end-surgery = High End Surgical Tools +research-technology-cybernetic-enhancements = Cybernetic Enhancements \ No newline at end of file diff --git a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml index adc626bc11..d573ce0dfb 100644 --- a/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Organs/harpy.yml @@ -9,6 +9,8 @@ - state: lung-l - state: lung-r - type: Lung + - type: Organ + slotId: lungs - type: Metabolizer updateInterval: 2.0 removeEmpty: true diff --git a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml index 7ac267b6be..e0413ce9b0 100644 --- a/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Body/Parts/vulpkanin.yml @@ -7,7 +7,7 @@ abstract: true components: - type: Damageable - damageContainer: Biological + damageContainer: OrganicPart # Shitmed Change - type: BodyPart - type: ContainerContainer containers: diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml index 25988f4a3a..057a0e65ad 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/harpy.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head # Shitmed Change organs: heart: OrganHumanHeart lungs: OrganHarpyLungs diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/rodentia.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/rodentia.yml index 0e62f39794..726db8632e 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/rodentia.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/rodentia.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head # Shitmed Change right arm: part: RightArmRodentia connections: diff --git a/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml b/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml index cdf787e473..b4ca82231d 100644 --- a/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml +++ b/Resources/Prototypes/DeltaV/Body/Prototypes/vulpkanin.yml @@ -23,6 +23,7 @@ - left arm - right leg - left leg + - head # Shitmed Change right arm: part: RightArmVulpkanin connections: diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index 87b8d54a97..208b8eb4eb 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -218,4 +218,4 @@ interactSuccessString: petting-success-derelict-cyborg interactFailureString: petting-failure-derelict-cyborg interactSuccessSound: - path: /Audio/Ambience/Objects/periodic_beep.ogg \ No newline at end of file + path: /Audio/Ambience/Objects/periodic_beep.ogg diff --git a/Resources/Prototypes/Entities/Objects/Misc/pen.yml b/Resources/Prototypes/Entities/Objects/Misc/pen.yml index 45f90f9603..6e02f4be24 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/pen.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/pen.yml @@ -42,13 +42,13 @@ damage: types: Piercing: 3 - - type: Tending # Shitmed - speed: 0.55 - - type: SurgeryTool # Shitmed - startSound: - path: /Audio/_Shitmed/Medical/Surgery/retractor1.ogg - endSound: - path: /Audio/_Shitmed/Medical/Surgery/hemostat1.ogg +# - type: Tending # Shitmed TODO: Uncomment this when surgeries arent tied to interaction events, but verbs. +# speed: 0.55 +# - type: SurgeryTool # Shitmed +# startSound: +# path: /Audio/_Shitmed/Medical/Surgery/retractor1.ogg +# endSound: +# path: /Audio/_Shitmed/Medical/Surgery/hemostat1.ogg #TODO: I want the luxury pen to write a cool font like Merriweather in the future. diff --git a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml index e3c358b47a..8a1198d776 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Medical/surgery.yml @@ -1,3 +1,5 @@ +# Im not even gonna bother marking this file with Shitmed Change(s), I'm fucking with almost everything. + # Base - type: entity @@ -11,7 +13,7 @@ - type: Tag tags: - SurgeryTool - - type: SurgeryTool # Shitmed Change + - type: SurgeryTool # Cautery @@ -22,10 +24,10 @@ description: A surgical tool used to cauterize open wounds. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: Item - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi storedRotation: 90 - type: MeleeWeapon damage: @@ -50,10 +52,10 @@ description: A surgical drill for making holes into hard material. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/drill.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi state: drill - type: Item - sprite: Objects/Specific/Medical/Surgery/drill.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi shape: - 0,0,1,0 - 1,1,1,1 @@ -69,7 +71,7 @@ - type: SurgeryTool startSound: path: /Audio/_Shitmed/Medical/Surgery/saw.ogg - - type: SurgicalDrill + - type: Drill # Scalpel @@ -89,10 +91,10 @@ types: - Knife - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: Item - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi storedRotation: 90 - type: MeleeWeapon wideAnimationRotation: 90 @@ -118,8 +120,11 @@ description: A pointy piece of glass, abraded to an edge and wrapped in tape for a handle. # Could become a decent tool or weapon with right tool mods. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: shiv - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: shiv - type: entity @@ -129,8 +134,11 @@ description: Made of more expensive materials, sharper and generally more reliable. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: advanced - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: advanced - type: MeleeWeapon damage: @@ -146,14 +154,17 @@ description: A scalpel which uses a directed laser to slice instead of a blade, for more precise surgery while also cauterizing as it cuts. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi state: laser - type: Item + sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + storedRotation: 90 heldPrefix: laser - type: Scalpel # Shitmed speed: 1.5 # TODO: prevent bleeding from incisions -# Scissors +# Retractor - type: entity name: retractor @@ -162,10 +173,10 @@ description: A surgical tool used to hold open incisions. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: Item - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi storedRotation: 90 # Shitmed Change - type: SurgeryTool @@ -175,6 +186,8 @@ path: /Audio/_Shitmed/Medical/Surgery/retractor2.ogg - type: Retractor +# Hemostat + - type: entity name: hemostat id: Hemostat @@ -182,11 +195,11 @@ description: A surgical tool used to compress blood vessels to prevent bleeding. components: - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi # Shitmed Change + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi # Shitmed Change state: hemostat - type: Item heldPrefix: hemostat - sprite: Objects/Specific/Medical/Surgery/scissors.rsi # Shitmed Change + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi # Shitmed Change storedRotation: 90 # Shitmed Change - type: SurgeryTool @@ -220,7 +233,7 @@ description: A container for bone gel that often needs to be refilled from a specialized machine. components: - type: Sprite - sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi state: bone-gel - type: BoneGel @@ -282,9 +295,11 @@ description: For heavy duty cutting. components: - type: Sprite - state: electric + sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: Item - heldPrefix: electric + size: Normal + sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi - type: MeleeWeapon damage: groups: @@ -303,8 +318,12 @@ description: You think you can cut anything with it. components: - type: Sprite + sprite: Objects/Specific/Medical/Surgery/saw.rsi state: advanced - type: Item + size: Normal + sprite: Objects/Specific/Medical/Surgery/saw.rsi + storedRotation: 90 heldPrefix: advanced - type: MeleeWeapon attackRate: 1.5 @@ -313,111 +332,135 @@ - type: BoneSaw # Shitmed speed: 2 -# ORGANS - SHITMED +# Shitmed Tools - type: entity - parent: OrganHumanHeart - id: BioSynthHeart - name: bio-synthetic heart - description: This heart can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanLiver - id: BioSynthLiver - name: bio-synthetic liver - description: This liver can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanLungs - id: BioSynthLungs - name: bio-synthetic lungs - description: These lungs can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: OrganHumanEyes - id: BioSynthEyes - name: bio-synthetic eyes - description: These eyes can be transplanted into any living organism and it will adapt to its recipient. - - -# PARTS - SHITMED - -- type: entity - parent: LeftArmHuman - id: BioSynthLeftArm - name: bio-synthetic left arm - description: This left arm can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightArmHuman - id: BioSynthRightArm - name: bio-synthetic right arm - description: This right arm can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftHandHuman - id: BioSynthLeftHand - name: bio-synthetic left hand - description: This left hand can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightHandHuman - id: BioSynthRightHand - name: bio-synthetic right hand - description: This right hand can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftLegHuman - id: BioSynthLeftLeg - name: bio-synthetic left leg - description: This left leg can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightLegHuman - id: BioSynthRightLeg - name: bio-synthetic right leg - description: This right leg can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: LeftFootHuman - id: BioSynthLeftFoot - name: bio-synthetic left foot - description: This left foot can be transplanted into any living organism and it will adapt to its recipient. - -- type: entity - parent: RightFootHuman - id: BioSynthRightFoot - name: bio-synthetic right foot - description: This right foot can be transplanted into any living organism and it will adapt to its recipient. - -# JOKE ITEMS - SHITMED - -- type: entity - parent: LeftArmHuman - id: PizzaLeftArm - name: pizza left arm - description: For when you want to turn someone into a Space John's. + name: searing tool + id: EnergyCautery + parent: Cautery + description: A cautery with an energy tip, also serves as a drill in its powered state. components: - - type: BodyPart - partType: Arm - symmetry: Left - toolName: "a left arm" - baseLayerId: MobPizzaLArm - type: Sprite - sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi - state: "l_arm" + sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi + state: e-cautery-on + - type: Item + sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_Shitmed/Medical/Surgery/cautery1.ogg + endSound: + path: /Audio/_Shitmed/Medical/Surgery/cautery2.ogg + - type: MeleeWeapon + damage: + types: + Piercing: 10 + Heat: 1 + - type: Cautery + speed: 1.5 + - type: Drill + speed: 1.5 - type: entity - parent: RightArmHuman - id: PizzaRightArm - name: pizza right arm - description: For when you want to turn someone into a Space John's. + name: energy scalpel + id: EnergyScalpel + parent: Scalpel + description: A scalpel which uses an energy blade, also serves as a saw in its powered state. components: - - type: BodyPart - partType: Arm - symmetry: Right - toolName: "a right arm" - baseLayerId: MobPizzaRArm - type: Sprite - sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi - state: "r_arm" + sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on + - type: Item + sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_Shitmed/Medical/Surgery/scalpel1.ogg + endSound: + path: /Audio/_Shitmed/Medical/Surgery/scalpel2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 10 + Heat: 1 + - type: Scalpel + speed: 1.5 + - type: BoneSaw + speed: 1.5 + +- type: entity + name: mechanical pinches + id: AdvancedRetractor + parent: Retractor + description: A retractor with mechanical pinches, also serves as a hemostat in its powered state. + components: + - type: Sprite + sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi + state: adv-retractor-on + - type: Item + sprite: _Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi + inhandVisuals: + left: + - state: inhand-left-on + right: + - state: inhand-right-on + - type: SurgeryTool + startSound: + path: /Audio/_Shitmed/Medical/Surgery/retractor1.ogg + endSound: + path: /Audio/_Shitmed/Medical/Surgery/retractor2.ogg + - type: MeleeWeapon + damage: + types: + Slash: 6.5 + Heat: 1 + - type: Hemostat + speed: 1.5 + - type: Retractor + speed: 1.5 + - type: Tweezers + speed: 1.5 + - type: Tending + speed: 1.5 + +- type: entity + name: medical multitool + id: OmnimedTool + parent: BaseToolSurgery + components: + - type: Sprite + sprite: _Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi + state: omnimed + - type: Item + sprite: _Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi + - type: SurgeryTool + startSound: + path: /Audio/_Shitmed/Medical/Surgery/saw.ogg + - type: Hemostat + speed: 2 + - type: Scalpel + speed: 2 + - type: Drill + speed: 2 + - type: BoneSetter + speed: 2 + - type: Retractor + speed: 2 + - type: Cautery + speed: 2 + - type: BoneGel + speed: 2 + - type: BoneSaw + speed: 2 + - type: Tweezers + speed: 2 + - type: Tending + speed: 2 \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index b179c7aa04..644bac105e 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -654,3 +654,44 @@ - type: Construction # DeltaV: construction for adding explosive payload to the dud version graph: BorgModuleMartyr node: live + +# Shitmed Modules + +- type: entity + id: BorgModuleSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-surgery + - type: ItemBorgModule + items: + - Scalpel + - Drill + - Hemostat + - Retractor + - Cautery + - SawElectric + - BoneGel + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: surgery-module } + +- type: entity + id: BorgModuleAdvancedSurgery + parent: [ BaseBorgModuleMedical, BaseProviderBorgModule ] + name: advanced surgery cyborg module + components: + - type: Sprite + layers: + - state: medical + - state: icon-advanced-surgery + - type: ItemBorgModule + items: + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BoneGel + - type: BorgModuleIcon + icon: { sprite: Interface/Actions/actions_borg.rsi, state: adv-surgery-module } diff --git a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml index 6d70c4538b..f217e2ba77 100644 --- a/Resources/Prototypes/Entities/Structures/Machines/lathe.yml +++ b/Resources/Prototypes/Entities/Structures/Machines/lathe.yml @@ -377,6 +377,9 @@ - PowerCellHyper - FireExtinguisherBluespace # End DeltaV additions + - EnergyScalpel # Shitmed Change + - EnergyCautery # Shitmed Change + - AdvancedRetractor # Shitmed Change - type: EmagLatheRecipes emagDynamicRecipes: - BorgModuleFauna @@ -649,6 +652,7 @@ - RightLegBorg - LightHeadBorg - TorsoBorg + - BorgModuleSurgery # Shitmed Change dynamicRecipes: - ProximitySensor - BorgModuleAdvancedCleaning @@ -687,6 +691,14 @@ - BorgModuleSecurityChase - BorgModuleSecurityEscalate - JetpackVoid + # Shitmed Change + - BorgModuleAdvancedSurgery + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes + # Shitmed End - type: EmagLatheRecipes emagDynamicRecipes: - ClothingOuterHardsuitJuggernautReverseEngineered @@ -912,6 +924,8 @@ - WeaponColdCannon - WeaponBeamCannon # End DeltaV additions + - SecurityCyberneticEyes # Shitmed Change + - MedicalCyberneticEyes # Shitmed Change - type: MaterialStorage whitelist: tags: @@ -1048,6 +1062,12 @@ - ClothingEyesHudMedical # Nyano - ChemicalPayload # Nyano - SyringeCryostasis + # Shitmed Change + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - OmnimedTool + - MedicalCyberneticEyes - type: Machine board: MedicalTechFabCircuitboard - type: StealTarget diff --git a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml index a09f3b6ab7..f7c4276d53 100644 --- a/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml +++ b/Resources/Prototypes/Nyanotrasen/Entities/Body/Prototypes/felinid.yml @@ -17,6 +17,7 @@ - left arm - right leg - left leg + - head # Shitmed Change organs: heart: OrganAnimalHeart lungs: OrganHumanLungs diff --git a/Resources/Prototypes/Recipes/Lathes/medical.yml b/Resources/Prototypes/Recipes/Lathes/medical.yml index ea3414a87e..da8564dac1 100644 --- a/Resources/Prototypes/Recipes/Lathes/medical.yml +++ b/Resources/Prototypes/Recipes/Lathes/medical.yml @@ -226,11 +226,62 @@ Steel: 100 Plastic: 100 -# Shitmed Change +# Shitmed Recipes + - type: latheRecipe id: BoneGel result: BoneGel completetime: 2 materials: Plastic: 200 - Plasma: 200 \ No newline at end of file + Plasma: 200 + +- type: latheRecipe + id: MedicalCyberneticEyes + result: MedicalCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: EnergyScalpel + result: EnergyScalpel + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + +- type: latheRecipe + id: AdvancedRetractor + result: AdvancedRetractor + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Silver: 150 + +- type: latheRecipe + id: EnergyCautery + result: EnergyCautery + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Plasma: 150 + +- type: latheRecipe + id: OmnimedTool + result: OmnimedTool + completetime: 2 + materials: + Steel: 600 + Glass: 150 + Gold: 150 + Silver: 150 + Plasma: 150 \ No newline at end of file diff --git a/Resources/Prototypes/Recipes/Lathes/robotics.yml b/Resources/Prototypes/Recipes/Lathes/robotics.yml index 36ceff065b..b761ed54e7 100644 --- a/Resources/Prototypes/Recipes/Lathes/robotics.yml +++ b/Resources/Prototypes/Recipes/Lathes/robotics.yml @@ -202,3 +202,86 @@ parent: BaseBorgModuleRecipe id: BorgModuleHarvesting result: BorgModuleHarvesting + +# Shitmed Recipes + +- type: latheRecipe + id: BorgModuleSurgery + result: BorgModuleSurgery + category: Robotics + completetime: 3 + materials: + Steel: 250 + Glass: 250 + Plastic: 250 + +- type: latheRecipe + id: BorgModuleAdvancedSurgery + result: BorgModuleAdvancedSurgery + category: Robotics + completetime: 3 + materials: + Steel: 500 + Glass: 500 + Plastic: 250 + Gold: 50 + +- type: latheRecipe + id: JawsOfLifeLeftArm + result: JawsOfLifeLeftArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: JawsOfLifeRightArm + result: JawsOfLifeRightArm + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedLeftLeg + result: SpeedLeftLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: SpeedRightLeg + result: SpeedRightLeg + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 + +- type: latheRecipe + id: BasicCyberneticEyes + result: BasicCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Recipes/Lathes/security.yml b/Resources/Prototypes/Recipes/Lathes/security.yml index ac695f314a..d850691584 100644 --- a/Resources/Prototypes/Recipes/Lathes/security.yml +++ b/Resources/Prototypes/Recipes/Lathes/security.yml @@ -714,3 +714,17 @@ Plastic: 1000 Plasma: 500 Glass: 500 + +# Shitmed Recipes + +- type: latheRecipe + id: SecurityCyberneticEyes + result: SecurityCyberneticEyes + category: Robotics + completetime: 5 + materials: + Steel: 1000 + Glass: 500 + Plastic: 500 + Gold: 300 + Silver: 300 diff --git a/Resources/Prototypes/Research/civilianservices.yml b/Resources/Prototypes/Research/civilianservices.yml index fd2fa5a206..b4cf857cd9 100644 --- a/Resources/Prototypes/Research/civilianservices.yml +++ b/Resources/Prototypes/Research/civilianservices.yml @@ -130,18 +130,42 @@ - CryostasisBeaker - SyringeCryostasis +# Shitmed Change Start - type: technology - id: MechanizedTreatment - name: research-technology-mechanized-treatment + id: AdvancedTreatment + name: research-technology-advanced-treatment icon: - sprite: Mobs/Silicon/chassis.rsi - state: medical + sprite: _Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi + state: e-scalpel-on discipline: CivilianServices tier: 2 cost: 5000 recipeUnlocks: - BorgModuleAdvancedTreatment - BorgModuleDefibrillator + - EnergyScalpel + - EnergyCautery + - AdvancedRetractor + - BorgModuleAdvancedSurgery + +- type: technology + id: CyberneticEnhancements + name: research-technology-cybernetic-enhancements + icon: + sprite: _Shitmed/Mobs/Species/IPC/organs.rsi + state: eyes + discipline: CivilianServices + tier: 2 + cost: 15000 + recipeUnlocks: + - JawsOfLifeLeftArm + - JawsOfLifeRightArm + - SpeedLeftLeg + - SpeedRightLeg + - BasicCyberneticEyes + - SecurityCyberneticEyes + - MedicalCyberneticEyes +# Shitmed Change End - type: technology id: AdvancedCleaning diff --git a/Resources/Prototypes/_Shitmed/Body/Organs/Animal/space.yml b/Resources/Prototypes/_Shitmed/Body/Organs/Animal/space.yml index d565a7f2e7..1c9777d587 100644 --- a/Resources/Prototypes/_Shitmed/Body/Organs/Animal/space.yml +++ b/Resources/Prototypes/_Shitmed/Body/Organs/Animal/space.yml @@ -3,15 +3,15 @@ id: OrganSpaceAnimalLungs name: space animal lungs components: - - type: StatusEffectOrgan - refresh: - BreathingImmunity: BreathingImmunity + - type: Organ + onAdd: + - type: BreathingImmunity - type: entity parent: OrganAnimalHeart id: OrganSpaceAnimalHeart name: space animal heart components: - - type: StatusEffectOrgan - refresh: - PressureImmunity: PressureImmunity + - type: Organ + onAdd: + - type: PressureImmunity \ No newline at end of file diff --git a/Resources/Prototypes/_Shitmed/Body/Organs/cybernetic.yml b/Resources/Prototypes/_Shitmed/Body/Organs/cybernetic.yml new file mode 100644 index 0000000000..514920257c --- /dev/null +++ b/Resources/Prototypes/_Shitmed/Body/Organs/cybernetic.yml @@ -0,0 +1,51 @@ +- type: entity + parent: OrganHumanEyes + abstract: true + id: BaseCyberneticEyes + components: + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/IPC/organs.rsi + state: "eyes" + +- type: entity + parent: BaseCyberneticEyes + id: BasicCyberneticEyes + name: cybernetic eyes + description: A pair of cybernetic eyes that enhance your vision, and protect you from eye damage. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + +- type: entity + parent: BaseCyberneticEyes + id: SecurityCyberneticEyes + name: cybernetic security eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated SecHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowJobIcons + - type: ShowMindShieldIcons + - type: ShowCriminalRecordIcons + +- type: entity + parent: BaseCyberneticEyes + id: MedicalCyberneticEyes + name: cybernetic diagnostic eyes + description: A pair of cybernetic eyes that enhance your vision, featuring an integrated MedHUD. + components: + - type: Organ + onAdd: + - type: FlashImmunity + - type: EyeProtection + - type: ShowHealthBars + damageContainers: + - Biological + - type: ShowHealthIcons + damageContainers: + - Biological \ No newline at end of file diff --git a/Resources/Prototypes/_Shitmed/Body/Organs/generic.yml b/Resources/Prototypes/_Shitmed/Body/Organs/generic.yml new file mode 100644 index 0000000000..68dc80b3ab --- /dev/null +++ b/Resources/Prototypes/_Shitmed/Body/Organs/generic.yml @@ -0,0 +1,23 @@ +- type: entity + parent: OrganHumanHeart + id: BioSynthHeart + name: bio-synthetic heart + description: This heart can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLiver + id: BioSynthLiver + name: bio-synthetic liver + description: This liver can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanLungs + id: BioSynthLungs + name: bio-synthetic lungs + description: These lungs can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: OrganHumanEyes + id: BioSynthEyes + name: bio-synthetic eyes + description: These eyes can be transplanted into any living organism and it will adapt to its recipient. \ No newline at end of file diff --git a/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml b/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml new file mode 100644 index 0000000000..6e85a42b87 --- /dev/null +++ b/Resources/Prototypes/_Shitmed/Body/Parts/cybernetic.yml @@ -0,0 +1,169 @@ +- type: entity + id: LeftArmCybernetic + parent: LeftArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLArm + - type: GenerateChildPart + id: LeftHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: entity + id: RightArmCybernetic + parent: RightArmHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRArm + - type: GenerateChildPart + id: RightHandCybernetic + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: entity + id: LeftLegCybernetic + parent: LeftLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLLeg + - type: GenerateChildPart + id: LeftFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: entity + id: RightLegCybernetic + parent: RightLegHuman + abstract: true + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRLeg + - type: GenerateChildPart + id: RightFootCybernetic + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: entity + id: LeftHandCybernetic + parent: LeftHandHuman + name: cybernetic left hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLHand + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_hand" + +- type: entity + id: RightHandCybernetic + parent: RightHandHuman + name: cybernetic right hand + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRHand + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_hand" + +- type: entity + id: LeftFootCybernetic + parent: LeftFootHuman + name: cybernetic left foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopLFoot + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_foot" + +- type: entity + id: RightFootCybernetic + parent: RightFootHuman + name: cybernetic right foot + components: + - type: Damageable + damageContainer: Silicon + - type: BodyPart + baseLayerId: MobCyberneticBishopRFoot + - type: Cybernetics + - type: Sprite + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_foot" + +- type: entity + parent: LeftArmCybernetic + id: JawsOfLifeLeftArm + name: J.W.L left arm + description: A cybernetic left arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: RightArmCybernetic + id: JawsOfLifeRightArm + name: J.W.L right arm + description: A cybernetic right arm with the ability to pry doors open. + components: + - type: BodyPart + onAdd: + - type: Prying + speedModifier: 1.5 + pryPowered: true + +- type: entity + parent: LeftLegCybernetic + id: SpeedLeftLeg + name: S.P.E.E.D left leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip + +- type: entity + parent: RightLegCybernetic + id: SpeedRightLeg + name: S.P.E.E.D right leg + description: A cybernetic left leg that allows its wearer to run faster. + components: + - type: MovementBodyPart + walkSpeed: 3.125 + sprintSpeed: 5.625 + - type: BodyPart + onAdd: + - type: NoSlip \ No newline at end of file diff --git a/Resources/Prototypes/_Shitmed/Body/Parts/generic.yml b/Resources/Prototypes/_Shitmed/Body/Parts/generic.yml new file mode 100644 index 0000000000..d01c105fd6 --- /dev/null +++ b/Resources/Prototypes/_Shitmed/Body/Parts/generic.yml @@ -0,0 +1,79 @@ +- type: entity + parent: LeftArmHuman + id: BioSynthLeftArm + name: bio-synthetic left arm + description: This left arm can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightArmHuman + id: BioSynthRightArm + name: bio-synthetic right arm + description: This right arm can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftHandHuman + id: BioSynthLeftHand + name: bio-synthetic left hand + description: This left hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightHandHuman + id: BioSynthRightHand + name: bio-synthetic right hand + description: This right hand can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftLegHuman + id: BioSynthLeftLeg + name: bio-synthetic left leg + description: This left leg can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightLegHuman + id: BioSynthRightLeg + name: bio-synthetic right leg + description: This right leg can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: LeftFootHuman + id: BioSynthLeftFoot + name: bio-synthetic left foot + description: This left foot can be transplanted into any living organism and it will adapt to its recipient. + +- type: entity + parent: RightFootHuman + id: BioSynthRightFoot + name: bio-synthetic right foot + description: This right foot can be transplanted into any living organism and it will adapt to its recipient. + +# JOKE ITEMS + +- type: entity + parent: LeftArmHuman + id: PizzaLeftArm + name: pizza left arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Left + toolName: "a left arm" + baseLayerId: MobPizzaLArm + - type: Sprite + sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi + state: "l_arm" + +- type: entity + parent: RightArmHuman + id: PizzaRightArm + name: pizza right arm + description: For when you want to turn someone into a Space John's. + components: + - type: BodyPart + partType: Arm + symmetry: Right + toolName: "a right arm" + baseLayerId: MobPizzaRArm + - type: Sprite + sprite: _Shitmed/Mobs/Species/Misc/Pizza/parts.rsi + state: "r_arm" diff --git a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml index 6e24499c2f..a547f17ae9 100644 --- a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml +++ b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgeries.yml @@ -398,7 +398,6 @@ inverse: true reattaching: true - - type: entity parent: SurgeryBase id: SurgeryRemoveHeart @@ -589,6 +588,41 @@ inverse: true reattaching: true +- type: entity + parent: SurgeryBase + id: SurgeryLobotomize + name: Lobotomize + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepLobotomize + - SurgeryStepCloseIncision + - type: SurgeryComponentCondition + component: + - type: OhioAccent + inverse: true + - type: SurgeryPartCondition + part: Head + +- type: entity + parent: SurgeryBase + id: SurgeryMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: Surgery + requirement: SurgeryOpenIncision + steps: + - SurgeryStepMendBrainTissue + - SurgeryStepCloseIncision + - type: SurgeryComponentCondition + component: + - type: OhioAccent + - type: SurgeryPartCondition + part: Head + # Fluff/Joke Surgeries #- type: entity diff --git a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgery_steps.yml b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgery_steps.yml index 5dffe53713..1b655968dd 100644 --- a/Resources/Prototypes/_Shitmed/Entities/Surgery/surgery_steps.yml +++ b/Resources/Prototypes/_Shitmed/Entities/Surgery/surgery_steps.yml @@ -15,8 +15,9 @@ - type: Scalpel add: - type: IncisionOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: SurgeryDamageChangeEffect damage: @@ -36,8 +37,9 @@ - type: Hemostat add: - type: BleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryDamageChangeEffect damage: @@ -56,8 +58,9 @@ - type: Retractor add: - type: SkinRetracted + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: entity @@ -71,9 +74,10 @@ - type: BoneSaw add: - type: RibcageSawed + duration: 4 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryStepEmoteEffect - type: entity @@ -87,8 +91,9 @@ - type: Retractor add: - type: RibcageOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor #- type: entity @@ -137,8 +142,9 @@ - type: Retractor remove: - type: RibcageOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi state: retractor - type: entity @@ -152,8 +158,9 @@ - type: BoneGel remove: - type: RibcageSawed + duration: 2 - type: Sprite - sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi state: bone-gel - type: entity @@ -173,8 +180,9 @@ - type: IncisionOpen - type: BodyPartReattached - type: InternalBleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryDamageChangeEffect damage: @@ -194,6 +202,7 @@ - type: SurgeryStep tool: - type: BodyPart + duration: 6 - type: Sprite sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -213,9 +222,10 @@ - type: BleedersClamped - type: IncisionOpen - type: InternalBleedersClamped + duration: 2 - type: SurgeryAffixPartStep - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryStepEmoteEffect - type: SurgeryDamageChangeEffect @@ -237,9 +247,10 @@ - type: BoneSaw add: - type: BodyPartSawed + duration: 4 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryStepEmoteEffect - type: entity @@ -253,8 +264,9 @@ - type: Hemostat add: - type: InternalBleedersClamped + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryDamageChangeEffect damage: @@ -277,9 +289,10 @@ - type: BleedersClamped - type: InternalBleedersClamped - type: IncisionOpen + duration: 8 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/saw.rsi - state: saw + sprite: _Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi + state: circular-saw - type: SurgeryRemovePartStep - type: SurgeryStepEmoteEffect @@ -296,8 +309,9 @@ - type: Scalpel add: - type: IncisionOpen + duration: 3 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scalpel.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi state: scalpel - type: SurgeryStepEmoteEffect @@ -310,8 +324,9 @@ - type: SurgeryStep tool: - type: Tending + duration: 1 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryTendWoundsEffect damage: @@ -328,8 +343,9 @@ - type: SurgeryStep tool: - type: Tending + duration: 1 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryTendWoundsEffect mainGroup: Burn @@ -349,8 +365,9 @@ - type: Cautery remove: - type: IncisionOpen + duration: 2 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryDamageChangeEffect damage: @@ -368,6 +385,7 @@ categories: [ HideSpawnMenu ] components: - type: SurgeryStep + duration: 4 - type: Sprite sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -382,6 +400,7 @@ categories: [ HideSpawnMenu ] components: - type: SurgeryStep + duration: 4 - type: Sprite sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -400,8 +419,9 @@ - type: SurgeryStep tool: - type: Tweezers + duration: 8 - type: Sprite - sprite: Objects/Specific/Medical/Surgery/scissors.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi state: hemostat - type: SurgeryRemoveOrganStep - type: SurgeryStepEmoteEffect @@ -415,6 +435,7 @@ - type: SurgeryStep tool: - type: Organ + duration: 6 - type: Sprite sprite: _Shitmed/Objects/Specific/Medical/Surgery/manipulation.rsi state: insertion @@ -459,10 +480,6 @@ id: SurgeryStepInsertEyes name: Add eyes categories: [ HideSpawnMenu ] - components: - - type: SurgerySpecialDamageChangeEffect - damageType: Eye - isConsumable: true - type: entity parent: SurgeryStepInsertOrgan @@ -483,9 +500,10 @@ - type: SurgeryStep tool: - type: Cautery + duration: 2 - type: SurgeryAffixOrganStep - type: Sprite - sprite: Objects/Specific/Medical/Surgery/cautery.rsi + sprite: _Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi state: cautery - type: SurgeryStepEmoteEffect - type: SurgeryDamageChangeEffect @@ -494,6 +512,48 @@ Heat: -5 sleepModifier: 2 +- type: entity + parent: SurgeryStepBase + id: SurgeryStepLobotomize + name: Lobotomize patient + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Drill + bodyAdd: + - type: OhioAccent + - type: RatvarianLanguage + - type: SlurredAccent + duration: 5 + - type: Sprite + sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi + state: drill + - type: SurgeryStepEmoteEffect + - type: SurgeryDamageChangeEffect + damage: + types: + Piercing: 10 + +- type: entity + parent: SurgeryStepBase + id: SurgeryStepMendBrainTissue + name: Mend brain tissue + categories: [ HideSpawnMenu ] + components: + - type: SurgeryStep + tool: + - type: Hemostat + duration: 5 + bodyRemove: + - type: OhioAccent + - type: RatvarianLanguage + - type: SlurredAccent + - type: Sprite + sprite: _Shitmed/Objects/Specific/Medical/Surgery/drill.rsi + state: drill + - type: SurgeryStepEmoteEffect + # The lengths I go to just for a joke... I HATE HARDCODING AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA # Maybe I should modify species prototypes to include tails and ears properly... diff --git a/Resources/Prototypes/_Shitmed/Species/cybernetics.yml b/Resources/Prototypes/_Shitmed/Species/cybernetics.yml new file mode 100644 index 0000000000..4b945e4089 --- /dev/null +++ b/Resources/Prototypes/_Shitmed/Species/cybernetics.yml @@ -0,0 +1,47 @@ +- type: humanoidBaseSprite + id: MobCyberneticBishopLArm + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRArm + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_arm-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLLeg + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRLeg + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_leg-combined" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLHand + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRHand + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_hand" + +- type: humanoidBaseSprite + id: MobCyberneticBishopLFoot + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "l_foot" + +- type: humanoidBaseSprite + id: MobCyberneticBishopRFoot + baseSprite: + sprite: _Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi + state: "r_foot" \ No newline at end of file diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/adv-surgery-module.png new file mode 100644 index 0000000000000000000000000000000000000000..df4b715569b0841f37f1362d89e47718ebaa4cc1 GIT binary patch literal 509 zcmVQBw!-qe#^ql&cOfgH?y-d@ZS-iE753F(gtF&n5asi99%WhN>rSRBn&DugWd?O zq!^=|L{$PM!h^IF+p4HmCy;uiodgB~1A&3RVPGgSj?e^BzOUU zlBb6lhCx9+GfYF3P0WrCQc0UWT`<~jvL8>fd$``5f%L@@V~fkUS{I3(P5i{Idd&jT zm-xO%{^}9^If0wYLMVjeILM5$AU=Muo+=B^}jz&el7y|Kpd>^!{_Q=~7g zqF4N!jkULmWv#43uniTiW>Qq00000NkvXXu0mjf&qm!x literal 0 HcmV?d00001 diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json index 7fb1027c9e..cabb9fda52 100644 --- a/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json +++ b/Resources/Textures/Interface/Actions/actions_borg.rsi/meta.json @@ -61,6 +61,12 @@ { "name":"treatment-module" }, + { + "name":"surgery-module" + }, + { + "name":"adv-surgery-module" + }, { "name":"adv-diagnosis-module" }, diff --git a/Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png b/Resources/Textures/Interface/Actions/actions_borg.rsi/surgery-module.png new file mode 100644 index 0000000000000000000000000000000000000000..4b333eba52a1a9436835e2df5a05841588a47ff3 GIT binary patch literal 475 zcmV<10VMv3P)?gjz+k1u1B4T63@e zqy!BiYQe-s=Rg+2|7Xt0$0U;hCSC07K-07#Qc$&8Wsv}ZITewl$R`v+K{y#OHHRd{ zJ%SLC0KQ5yNK|j_&@dW6?;uSH0)l`bAPB?~D3=%MT0llsVc9kmS;orJ2Bv4rFii); zq38GUy6w176bUl*IJOH(VlXWWgT4-%?yX&)q1Lz<&Hq~h+dI2hUEe~nki|<^hb+lx z+%{nvCJe(sux;9wfn2@>#$@U(fbVbIoKe5)@{k5R$BHEzOW^2uA8I}aZEcfG2lP}5 z@`WPqn|FA4x`OAqqX`rheZ5Da-XRfzY$i*_j$gAV2v@iF{JFNqSp$a$dpMo1V7a0} zVhr{ACEAZS_)Gox7PMYFXq}(L*2k9k4hRB*fFST40sg<9*1;suzaPznJ^<`Osq>c9 RpDh3Y002ovPDHLkV1l-*#X|r9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-advanced-surgery.png new file mode 100644 index 0000000000000000000000000000000000000000..291a889e4c196d0d2367f1828dd9b7bc28c5732f GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}J3L(+Ln2y} z6C_v{Cy4Yk1sZU%Nf=C8<>=}8(w>=_`S9@oTb`ZU=Sq8+^>>Ew8XVaFOK4|QAOpAM ztQnj64M2cnzV(?8VQHqWd7M>@|HL%MAD$YuvIl_R!@E$q!ykV(h7_`# zyH0xwbDkR`&{@n3v6EGA*53V_4)gmdKI;Vst0H|4Ah5!Hn literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png b/Resources/Textures/Objects/Specific/Robotics/borgmodule.rsi/icon-surgery.png new file mode 100644 index 0000000000000000000000000000000000000000..8147a74b761d6cfc353859aab5531fd960172694 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}dpunnLn2z= zURua?C_v=c$Nh^=rfuwSZ22uxeo*6D>+EZ59!anH#iq3>%am)A=-Sevo%)yzj}TBYUz8wS&uGd zbSRw3_Mm9zkw=e|PMtm-7#Nt?Jl*wQaB%R7_3OW%xG&PMcCD_UoLt|WIWji(_Q}P? z!B3t)ujXa?>FVN=P*O7Gujafxdu)RLU1CsES3mmkqv5%8=N>$M+*PetuzH-M{Pq|Nfo(I4dJ#!nf&61~xW2mo8ua_~S>%jvW?XzJE_HC=gh_ zeEEqJCm#HqH&5=gg2i0FiIXNBk}k85;o#$Y#`EIs+f<3on>QcI+wT3-oAJiYn~oV7 z8jl`7{%Jo``qu5+k1MseZrapz-fG%1h8G0ns?;Omo1w0FO3^~?zGS6 z;N)~nPgiGSV=E{xPyhLB|F7Npi+1mxZSGgt)7v}qoB3C<1tI6po_+f9@87*oSN_+Z zsK508)2B<_U(aAlNMY>VzJ2@NvhQGBTegUtK7Cs5=j?w1Mt;9rTUr0KWL$nX|M=?{ z{)rlTybN95%ngq&F)Y|&!hnlw#JXVFGPi)tI|8C^dt#-3tdm&6IAP=6yyr}sp{aIu zb^!qa4#9__1vJ{OT?@0Zu{m)4y7w4fTX*c}QP%$+AuG?GI`v74 zrK@qziRq_4IdRCy%6^nNswUkm((vX@&a$^9R{y`Tm6VhyXlQWEoH;WiFV8J8abZS& z{&tq8!w&^~eSIUMqm$1sS)%ez$S~>U>(`GZQnlPJ^)r|%m6Vo#+_7{itE#GMM0|Yv z{Q2_bT{~j*B2=SxuU*@_7Z@uye?NWN`dmY;%Qq~Dp{%@IP*jxlmC!)P;Ns%q zX?6TN_@kuvvaVXS>IbhwI%DeH{x9qk_N{jNKY8A-U?GM<@W#p literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json new file mode 100644 index 0000000000..9f87381cd8 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_alt1.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/head.png new file mode 100644 index 0000000000000000000000000000000000000000..a89de820f47b7fe179103b15e1ac71035fec8be0 GIT binary patch literal 645 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|S$} zr;B4q#hkaZ_Ioiq3LLXPsKu4Z${l}z-9uPcWYP5uxIdq4^6XE=oWo~Ne*U>&ySeE}OY;9Gp6}``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBIZ00!$B+ufx3?7YS{($Aee?{D?mt$*z{CEK zCp4zbdP0>9=R5_E4NI7M8Q80CudJGOJST42zxuj;6B3z|>;-`)GKihpRPv~CeN6FX zlbwq+eB{GEn}j=E*tS->?O+b)ti_eHwB`16Z``#`wM%K^6_Z|_(@J)GI@x2dznndJ z^>T;jrtY7c7V)oJwQAQEhPmO_?oV-#^Emz~;g~2LoBA?5c8$zQxtcWD1c$Pjx=m z9awF1+k3}Z&Kb`mKiN#*oVU5bqEFRR=;Wq1SMKDBCEWDn==<&C+a2j>^immQ+z<0Q Y29E!;8{FnRx&z{Sy85}Sb4q9e0AszG+yDRo literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-primary.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6b133523baaee7428621568d8281fd76caa594 GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_s6| zPZ!6KinzD8Hu|+V2ps#kv%7QZ->W8JYHE9$`WyNei0V5(GLG<8XkP`zVi+}@^;BHj$bnBjTUvgj3+3K~gt9l;a z5OMr$a(z#vd}HOj{?y1>iZ7m-`WM%JsZNxgwQS{^GV9AXbWShHjlO)w`NlQ(tUwW? zxpVCNmM{A{YjI`z)-4}r|K0MvU3~k#)qo%2hk1Hs5<-SQ&f$qyf+IJ-;5ye*W2TR8~UtPq|*AX}rT_6Cu}& zN$0LIusAAwzy12`<>z-7&3y2h&c7bNSOdGZB+D74ul|1cjbd>_d85Ak%Jzu- Tua+NyQN!Tr>gTe~DWM4fe1XGS literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..de40773897f6704157d83b8086179c8cbe353e66 GIT binary patch literal 348 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_nkx zPZ!6KinzD44hl9Ih_Eh>b;!QrD0;=wScFNmz^#Z~{q+ff{ilCU{Ik9Oc=wVg%8Z;I z4opH58dy{mpv(jN1uJ4gD{jv(lnK87UH-ly&*5vOv01mp=5EySE?k>lD8zQXv^8Jm z`2Ny!Hw`*;GOw8McJ4oW?(-a74ZHPR%%3h?HWB5o6*=?%@~1C{<{LCjTXl%R>Pzg; z({(KGwOrndGN_8_u4lYx=Jh*+Y-U(--GAlM)AvOtNIFXveBI8%vL+JUCo5(i;AUet Vn8)VO1`I6*22WQ%mvv4FO#qHZe9r&? literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_arm-tertiary.png new file mode 100644 index 0000000000000000000000000000000000000000..7b83ecf161b3b2c235fb638276713a2982e673c1 GIT binary patch literal 217 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMpkTMB zi(^Pd+}m3lc@HS?xH^_4E%%u{m&a?W+SGc-CB^3_mu`_eETG`fz`)4F!hv99a9=T9 zEnCTYY44M~`D=HXA6g@Kr0#zS52`9meF`5=|8D%U-SwT|CGVGl2>F6F2bfL@i3hAZ SbF>HOECx?kKbLh*2~7Y(8$VV6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..534085a97c31ddaa896b6e69d1efdcdeac7bfa07 GIT binary patch literal 325 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAQ1H8_ zi(^Q|oVT|&@-{mNuwLAl63DSu;37Ath?5JWiIaASgNIAf;nrz$e|+=!S1%-_vPNQV z$G1)kc85943g;LFo-=e5GaRvGcqGG6$k%`=yotFa_PdpSTcXGL(pY2P%gqVb=aj}? z{%g^9y=Q`@qI$yp@?ZO&TlAI8jhiUAu0MZP+qT@5tF+E`3kfC6OZSSNw)8~xX67jt z@5;}8@E5>p1%}PPtq;UjGwx4wf6J9Jx8YJX<9(O+Tq&$S?r`7O)_ZB4?V9cuxQT literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..771cd025a865b938f010cfe3539816c6bbad58e4 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TS6 zr;B4q#hkad6xTI7h_pVu9N=%Trjd04$LRwbxUL;y+aMvNqwTPffrXRX;ep|v51*ng zZdr8ZjPRV#KkrSm-|l$kj-wx=0}hnKf97+I|0I?`5k(HBBZW2A*4YwmwXxwnk306g z54`^MW#oK|n+>_Q=h@$KxnBCA_J8?2Z9k?npL=vp8~9GXI43o7!ZOWS%Nn(>G0S8} zi5$JRP50C$lc<~f&%dAd+%oci^JHFw+Jf-S_bx^=JP{!V9r$+Oab3ge<}?2HzwhV| z2)%l}eZ}+}4aaL+jMuPp92WS0_K987SB7={o8xERbKh|!{(#CaRi+sM3=@K3=r^O~ XwOIMn{ZWO$FlF#`^>bP0l+XkKAAy`p literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-combined.png new file mode 100644 index 0000000000000000000000000000000000000000..915b2af4d37aa4cd5b55f573c7c67326925572d6 GIT binary patch literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBxdomsjv*C{Z*OhvV+@pFeXx0UZ&*oIzT;w1 z{sjRqUv60>(C@JRl6Hs7(uE%xw4!8LSzC8onqTxWn|-(b-JQFSYC3(M|1o}-agM(O z4o%EV z?KDC7K>X9P-HL3_Y~=V`CjGK+*mYM=s+TS4#@n(LVXH0V`Z*L&a6ZsBkl<;OJ^lW} zv+J)-U66p$@i4LfQ&P=>O^+=o+ua+Z*Y32i;bh9A*B|57Pv5ofU+2Su7ZDRTtJ=*! zzfW7H|M&(2-ZSh0D?@7h&r3fqHIZ`N`BOZvd(WoIRNMTU;s(pP_n zhy5n~V9@b-s^NX%`De*eeTB}MXP)uQIU03l*6oMC|H_r>KhOpXochCMVDc=^;Zlj! zSNVNR(@(R8JrjN~r+b(9gd;v_#cb!4l+@;*jNIkA&+6A6VB9fyy85}Sb4q9e07Eb1 A^Z)<= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-primary.png new file mode 100644 index 0000000000000000000000000000000000000000..05f568654e6829574e3315245bdc121ee767f18c GIT binary patch literal 620 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_mZM zPZ!6KinzD4Y`d5o1zJz18j2bx=P&GB`9k%~)e|8+N0c+(iSmdXJmKPKbHGK|->j2u z)|YqE+YU~>`tn_7`t+xwCQ4V%zh0lcNJ~(Pa{>cy)L`4Fz!9?kdhoZ2&je5OTRjte zIWPaE-b=aJXWi!dEiZBBms`TVj~)%8yHfJOj>8k1THpy1#q<{r9IcOeQ@onz_eq;e?-o z^X{z;TYa)_|MaY_uUZ?Y^Bq|IB=z~{$aU9OZ!fyW@Zr#Qb}zQ(#x1vVTOa%0Y<4;R zI8ds$ZM)GmhPqWf{s}g6)!C=hw;z7G{q|aO1|JtD6$b){pEE)0clgI08Jp$$9(~fd z^0sVggpSwFm}x(2=JgzJKm0ITeR2E~^~s%wI%I+$S@cbge3)ZaTqUl4kRf3G^~sjD zdVTj_mb{vB+Vg9=z&6*C+&@V+?>Ff`xWXuKH^)r)?F{aJZHeNH?8crF3{R47@H6~9 z{BXeq&L8#Fak`K8$(cBCo7{b`HzT8P9$&nk_{n1Z2NzQpFh<3km1?-h;CS)&UWUEK z544V$_+7vFo8!U)#vM7!BbYBZUCgU|$9jkPP#4d>`iz3i+TaIYlpE{)9x%7Rxx!n> SU|9xCJ`A3&elF{r5}E)b{|Q|H literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/l_leg-secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..a96f9eb3854571d6e9017bc38ff670b71213b2b3 GIT binary patch literal 478 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_s6n zo-U3d6>)E88RoSZ2)MRu#4sM@&B(~KU}rtP;DO8?#?G#623B2O^975RFrDlS@7xll z8TFn=@x)J$kk{{L{(n|2?cBo7;=n)v{o`bGf3-O`TB@z_lTCPOY;d5+Bis5{D>J3M zCbdiny7Jw2X{Og_n{J&womb+M?tjmWy{^2?=vMOm^2McU-S>ROY@;WqN={AvnLT;` z`u(}mJJ)?M^1LVk7Wc1*Zao+J&$#BCzLM1w zj+i6dt9cm`5;uFautb>nOcPaUXg#YWD3ox~ATn$MgP2*ji${a&;gm>6ridFlLW+!H zypvN|Ingyt{E_4mA5s?Uo+uF{;<|i+``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBIW+1k!xm2i?Yhd;vd#PNc@vppO@QyWwhCHj&M z?0>@3l(1&iDHmpw<@O;qNr}16=_I4fdCR?w%Ukc=>EKQ)=X_+2a4w zE?4~7z3=_f*H$~b?(%NfqP^khtCAn;_rEV)m%XzqmiL2=f6R5!zopr0FLCVg8%>k literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-primary.png new file mode 100644 index 0000000000000000000000000000000000000000..c8087d3fc19c55b867a9f3b6c28020a6279977f5 GIT binary patch literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_s7% zPZ!6KinzD8HhLWn5IOeovXaHl^mmU`IBHqt7uq?^{ba;C|KLp@wntAUXihRMc`-*d z<>jN2vw~cUX3SfbIZOLL_uQ&?C(G-7mlwN6a40k|FhPk6Y8#@~&f#}bKPlO^P`m38 zH^bSLmDRsDZi$?hs^>ZB->h%b-jyo@#ny6&Ptz%s@s6A}?b7D!E`chJ0yBzzZfk{Z z{OK`k*|WA}jVpU*-To!^XKv+B9rNt#&WjTxzdV=~J?qc!u-DQHW}h~nxN6n6uaZ~4 z&k8S&4*MPd;M3K;clPaGzWVEtOF25GK+$&Je~*pM&fSqy7t?S2_TQ+utErRc?Bn~X!%_R1I z@8yT{eZ{(4bIhc@^Yyd%m@5A4n0?28z53>xXSxqZI?1st;H}-GpU`M<{f(aQPImj_ m&z?00b-;rP&t;ucLK6UM!Ovp= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_arm-secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf2346bd8402df7b3ab688de95085780abd5250 GIT binary patch literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_nl9 zPZ!6KinzBoH}W<+2)JC_yqm!>^@3ooL#o1x28rJ~ik1%L&B_w>L1s59t(6p6ALfnjS_SvNM_)EssB`+s9np)=D(|%=a^&7tE3bbxE&jTxdC|%5ukLxyU8G_6 z@ZPMAtkZd_wp{tX@AM{>?|w`@k0n;E+7C_w( z+=^!g^S;=X*Zu$QTn9hKBM)BHm#eF6QfOdc;y@5PIQKB@Hq+NHzT0XJ3^N8#S3j3^ HP6anMpkS}3 zi(^Pd+}m3lc@HS?xH^_4E%%u{cMgZ9C@b&8AD0Xde%@)awvvTIK*6DbfsqNpP;1;( zrMmIW>$jn$>Ae4Svr6{=_3Xavg{lZc+i}h}yAR5n-%`@}ao#~{YaEh+|AZ?TTm;1f UB*It>fevHvboFyt=akR{0JRA`w*UYD literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..a8fbe8635ea509fb178f489345fd83302fa00872 GIT binary patch literal 328 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAQ1F+h zi(^Q|oVT|Oxta|a+#ZH&$Q@a2Q7JBN+cBB_gHqg4VGFCB5sxD@mUM18^uJ!wxUGU+O!vKl=;dwhGw=-dq!^)#_VUztdKE-!RAcXH59La1Xu@b!z){xc3V^+x2SS aA#M|$=*+@9%C^8zVDNPHb6Mw<&;$VKczSFA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..db11be34056caa261ef3119fdf034b840280accd GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TR; zr;B4q#hkad7VE z{r7)!G|OxDHa&Q!u$%!GTE~C9@XqwqgC@QbZH&3M?|pdQwdlrX9cP*29ESxmXIVXe z!xM1b^i9g`Z3orO;(uSfR%&Z=O;VvtNyW2i-RlRFE9XsoZux7UJy38#rc|_DwE#<; zPJQy{HLJ3=ch{f0|MG*{k8_^?&d#)at;tZtMGPwV#{KQzUY*n4-*|4^xG(p9v1o$$ z``hyx!~NKI6rFGA{hPa-Ic8`21M&5*?0<3p*pdD~)Rxu3j}eOc><%z*F$miebYuTK QU~n>cy85}Sb4q9e0O5I)y8r+H literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-combined.png new file mode 100644 index 0000000000000000000000000000000000000000..a035dd862652e2af236f707e6e8aad17567c2b84 GIT binary patch literal 525 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBxka8Xjv*C{Z*MK^JLDk2@?hs_R_}t0drUmj zJ}_{I$jMAo;OJ+NYjt<<2#_$aVc_azW^C$umui;TWU;w^N7>OD&)}Oc=jWcaZ|H!7 zKe+}HJ3jw>BcS*!$&Tfh+k)ed8}H_cUlo|qzEh`8AY=F4M^$?l-Oby5Htln3li~5K ztxj8`T3s)2?ugN|kl}mrwW@>j^OV!65iGn5Zof_18<%V&w>WIIBHNil8@a&s*AoT* z@K@N)f0p@wx{7CwUiShPv$@&T-th-Zm{wfP`dJ-V?NlaOQ5fzi)8P7{ zYR(Q7-^*9_+x%vF!~5jz-qianM1_mZk zPZ!6KinzD4_GU2!3bY;<$T{lg@!WdJg=1mYrf=|Ce0STX)*lR-TQ+{;Wa-vvnyR_w zBjcJJrvz)>jD@Y{^H?1_T8$&?yNnfX-bT&*Z@Y8nA`hGM#fcKjw*2&*-`;mHL1Aai zxsWJR#_pp|YLh!dR)+>}&Q^8wSDS1&HJp(n{$5c0d-;_L94hnA&z4e~%OZREWe8Vm z)5Va&s233hSg@To%{wtS@yn%hYrE_$M8Jn56cI(wU5)oYCUYeYB_KNeS5&=f%t;9-HJ*tx3dCM4TGnvpUXO@ GgeCyqUi{|( literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/r_leg-secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..7a406c931877e43e809f8b57ded0ca46a6918e63 GIT binary patch literal 319 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anMpx{SO z7srr_xVN`9@*XzeaS2q7_E?>%vVP&sC7dDJ1v5)n8b34sTzOXJZ^g?XE_oIK2L?tQ z!~=hpxQX9olIPs3&RpC2OiA)$`t_)b6W2e#fAQts@{%LJeqK<`UR$QGoZm3lp=jX; ze}$Rp=6nrzJ&$l-WH8(jE5p0Ny0b!2N`Y;A_hQB}bwPa><|7Zv3QZ2YQ+d>y(I9b0 zuaE7pJvq?ljRCr$PnoVe&MHt7QH?b*1F^A9)Fev21Ui4VZCH0^XOu-bP zXdp)wmjnZW-U=a*TOgPch#z;?B1j@6OQ0v?A<|<#1UCuPMpzPZh-jc_eBIyBXFFK} z`#!VX6?F!dcjuj%=l_5H^ZCw4zO};LRu(7dG!2$F}%jM+ohgB(FEL!k0=LH|UGV-|rMB&U@0yXCaU^FLvA7+MJW;1>Tcx#W$0k zoSaOT9=(|?zVg5gMzn;fA766fSi!S8@8<)*wYAlC!TfXYCS$+dN$G;8r>AD;v75OC z_#|+i+TY#Xb*+GSh%@z+!D)5A9y_KMfcgUi1J3DdD}N-HUKCVoM>wk@G z1>l!TrHa2pLqoE;xmk&KcXyldgIa(hG7bF`0mtX&=G=75lXz$_3qYUm>+5rPItml_ zXN6EQS<0Q9oVZ$7Jf6gP9}>(0=oCc1zxDg=RQrGR+#EtCOBryebplIZ0`X9MvjBk3 z&dydA9Lxm7l}r{V>dEu8@iQ-klr#g~`1rV6juL2s6B83sC=}}P%T#t|X66h&tH5S; z!3xolkr6lb>C@yvotgRY(vLF#f1PGy@u)ylASw_Qhzdjnq5@HYs6bR8Di9Tj3Pc5> z0{;&MOy>ef^6RHpTHgEi(y1@c`ue)r&eM>$dN=B;w+~yN|LERd7TaOOKUk5GUp{w7 zW9-dyM$fKnKA#V>XJK5<%Ql!|vPsH*AjjnL#dV`45%Z>~l%0R|=BNx89ynkrzD`FMFwk`hH`S%OAQ@x_Xlf%)6pR6U#*dPT1EHHfzaH3+UAWJZ} z08WFn*;g(jY~4xo^OBU_SxcnB!@<2W#$ov=o`X?6i=Y+2sr2l}7T;Z7TMKw>o+hZx z&quuS&9#P~5?5nr*Hcbb1xx}k@NpWfHLv#r0Bz;h5nhO&#jgnO*aWJ z|MJgg22CH3Gy2dI+N@;B2ZnzipxWtbjT>>cJ(b17`XQ+I4$F+*jUf*f>AP5FnV1f+? zLZ}F)E>IqUF8~gx0#h407h69>thGgc#n8nM@01VR;ApXH{&+d>YY@O@e-WOy><;-F rw1^e+Mg^h*QGuvHR3Iww-%{XjDa=i7S5~3G00000NkvXXu0mjfnxA9f literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_main.rsi/torso-secondary.png new file mode 100644 index 0000000000000000000000000000000000000000..4e61c144a95ad7eedfc9f805a421bce36392ee5e GIT binary patch literal 481 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_s8- zo-U3d6>)E8IrcRh@VH*S_{M_qjiu=G2O@KtZNDe-t0$a&;q96wsbNv*aktJav~%PB z`ExfIocpN6D5L;GKm3@?J#SUc^FFiq_P1L5>8U^U+Y4pmG{h8M0d-+V{G|NA2 z9>R8-r@L`>*+^b#3>SkZB=Kp_tTj}@G z&eKn}DKP}>cBlyHI~70o&mv`$buYIci2EJ$N$kMO?rZ$Et-%KnWt2Rf& zG0izr3g;WHh-yRabRCcE{4qOT@fHZw!Cd{}wUn$Nk$w9}fQan-6%55>MpW_)T?VA`M( zFLLy<4deIk$DSE(a$8fn>B19cM;qCDv)JDDo=sNypC$6%c%@M3fk3C|`>$nem1D2> zDa!RO{OXkc>C%$(xAbqRJpQn+l&9JB!F?o;OXk;vd$@? F2>{%v%)9^q literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head-2.png new file mode 100644 index 0000000000000000000000000000000000000000..ca3cb6e9e36d48f65477bec2129e69b4c19b861b GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_nk| zPZ!6KinzD84)Qe_@H9M3+9NQp;d}e>2gi07JYl--yZT_yQSZot!+*Se=Db|+`eskE@XZFv)`#T0TmH>U zUh;+g&RS0X!wRLb-j_|HCSElvy>@ENJSVTx8+Q~8eSWbkzLb6Mw<&;$UMYm{LC literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/head.png new file mode 100644 index 0000000000000000000000000000000000000000..a175f4dfcec5179babaf11fdfc901aa32596ec42 GIT binary patch literal 630 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5he4R}c>anM1_mY# zPZ!6KinzD4^j9-EiX1(De6`!`t4lm*U-eJeberYic_j|B-6#DMt|;ALIjCkfS>no; z{PTxmul=7l(e>fn#?=_{0wtdkLN<@7-yeUq0==+HSUG zl3|4XR|$n(F?!86bHtu}{`td6{_*w$8#wJ|@&E5Ws?=mZ*Kcw9or}je_y5xueo(i+ ze8;P=yKd*0ZPfg=_@YMD^t9&xck{$OW%$}RTOX_aQh%etfB9wK$<>e7{7?U^`%$Ik z^z(GPN$*$cCv1({8MLxQoZ;T`yVqWCmF_?8xHhc&yUZ8Ecb7F7)C^?!Vi#ZR_LFLzgxDuG;!^O zPrqM17r3U}9HaLHK5Ws^5b7}d{By^hF@52`10PO0_pQ+}NZ9a3h_%hZjKFw? zy5y@_Ur*V;`n*HpVfnLrmz{Io*f}sdTv&6!x^vSuyN#9kVc+e(Z#mCV<25~&=d3s$ fZ#J%1`M{p*A$^ClQ8f~nkQh8&{an^LB{Ts5mMjqA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json new file mode 100644 index 0000000000..ea5456fea1 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/bishop/bishop_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-1.png new file mode 100644 index 0000000000000000000000000000000000000000..51a3c40058f8894b6c959dbecc8626d926e679a1 GIT binary patch literal 6948 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/head-3.png new file mode 100644 index 0000000000000000000000000000000000000000..e59e1c1d38299df73afea368dde37d6c84aaf76e GIT binary patch literal 6916 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json new file mode 100644 index 0000000000..5e35e7226f --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_alt1.rsi/meta.json @@ -0,0 +1,23 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + }, + { + "name": "head-3", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..54ecbe2832103864ec199ae58cdd5506734c9210 GIT binary patch literal 487 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op+}xBjv*QM-rm^Qd&ohc_2K;vzM4=A zrz0UuCo^5&bQr}jF>>ZQu&+DvB&B~s#@k4h=<-LkFZ|n!U&l-EUUm#1baTRx|Cqt^stPXSExJffXpmup$N{sG|9=rQ> z?z5gRclA-voG%+G?y=zcxruh0qYRGM&2!+7F)sef#Cc#^c3JL3=0Bezl4i?PW|$jq z-v5?$VWIom4_6IqfWB2Nag8WRNi0dVN-jzTQVd20MkcxjX1a#PA%><_CPr4qCfWuD zRt5&T&cRhE8glbfGSez?YlxA1eGI5U18ze}W^QV6Nn&mRLXSy^p{13vk(D9T685l} QnLs@Zp00i_>zopr0DEVu6aWAK literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_arm-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a529d9ebb60d80e91cb18c0ed73aaa3086c603 GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAP;iT< zi(^Pd+}oRuTrCDXtQQ_l-E;ZQ7VG>guE)5VcC7Z3)YezH;p+UU?&-G-^;;peROa89>-v9iUUC7j+S?YFrG4H>#&8X@)mYx^4=eSJ$TglU12KWD` zZ@240=!F}C#87Y4p7>|AK(z8ty^lXuySPWB^MBZ*OcAY&H;Zx%mE!?gb{l zkQH6Z2SZo17e7i=Xf!r*{uIAv@6Nz7?nx@1lT_}$Dg2^P!PweaUiHEwk?Gmvk24c{ z7YG?H6BeAhV50Av{|CYss|iotw&dT&Mv!_>@!OUU&YLht&$T_cOS0l$O$PtPyTWT` zHyU$4scPcic+*`qMQrw0pkq`^Tq8nXaL6h@q*KiIJ7D ziMD}(m4Sh-b8r=khTQy=%(P0}8e-&L9|LO8fZI@#nVVW%l9*e7&|?x}XlZ3^WMv4o UggtC#CQuK9r>mdKI;Vst07Qy^6951J literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..6be2024018bd9bac40ed11789decda14a2c67b6f GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op=M7P$B>MBZ*OemZ8i{bz34t&bQ4pi z#FfJrTQv6^_7zsi=xJ2yD(R2juYdY(eW!}&Bo$A4Gnv?i@JX7*(+=-mJyElGQhD1u zpX3Nuu9PL_j$8pReYeyiPajJf~v>~E8A+aBB| zx#LsAzIhLrqt^z@2LGG%0_Yso64!{5l*E!$tK_0oAjM#0U}U0eV5Vzm9Aao{WnyGy zY@%&oU}a#S>l|E#q9HdwB{QuOw}u$G*T;YwG~hOrWag$8mn7yEAoQ4o7+P8x8(A4b VEnyFvnF-Xx;OXk;vd$@?2>|UKe>4C9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-1.png new file mode 100644 index 0000000000000000000000000000000000000000..87466284b3b0e5d79be803608eff7b55ea7f64bd GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op)yYw$B>MBZ*LsrZBP(!xp=W?1FN%T z&}7?7ha(y}SbTc^&sE>eJtu;bf#HGmp$9R=zjaRQEzi+5@7-|CeQ}Vhmgc!#jn3aL z-)wr5d{6m`$U1LEps5W1QZK}B+fr3#<2pS0pyXF5jM7H$OUuhhf1RriHxX z&L2LqfE=Y-;u=wsl30>zm0Xkxq!^40j7)S5%ybQnLkvx=OpL6IO|%URtPBivor9}T zH00)|WTsW()(|82`WR4y2Hb{{%-q!ClEmBsgdUR+LrW`TBP&CwCG24{Gl6;-JYD@< J);T3K0RTI?cYFW< literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b871a17933379e4aa2af10587051df8f69f64522 GIT binary patch literal 380 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op>j_b$B>MBZ*N@WZBXE8dHBj=M^mB9 zjFYlAAKqbzYLa^V-!|UsviUh428IXLlb$_0bUxg3?@gnXTAL2N>X!?XS($WPmwm$$ zoznBORZcJDZVCIq^KB{6Tn2{!MlaV}SS`D*&GM@;@NL|~M%FUx>2J^KTlX?DY>EAK zL0jL0+2j~dp=yb1L`h0wNvc(HQ7VvPFfuSQ(KRsBH8c(}G_^7@vNAT&HZZUk0qV`&?3Gy&$!I?Y*q|QWwcv8k3Xw#^VH4t2dB;Qi2ha^rDS^hP_Pmh)R%lu zKVUff{>}3>cWl?3^l@usRK9ss^5BjMXC(F{S3SSO`)A*wT<;61S(`Q|J~#&hEO|a*?TL5nHM<*6exG*WF5~^Yghjds zy?-!esQVpFUF%l?3^3Ia*NBpo#FA92AvZrIGp!Q0h8Vfm$AB6%;5L+G=B5^xB<2<%^q7PgT3Q(!Ss6ktVGo;` Q3Dm>j>FVdQ&MBb@00)}KG5`Po literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/l_leg-2.png new file mode 100644 index 0000000000000000000000000000000000000000..90b10eb4be5ca5fe2ca3551817781542555569e8 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS@v42+_lE{-7?_uk$xEIQ=C!+K%AWLicM zpLq1!fafZH&JPzpQL$q(J-*-pOWrrJWyi1jJ2p*bstjM4_-ucaP*ks`ih~OfJP~zy z7cqTfvd)SsDiV*UrO6g`=`b!vyU`?m8L4~|SLF>%;t zW1G%&(XuhZr15Id0k-!y6a+)%AE~p~EI3$bSoAS|gKKlkx*{f7A*meg%^*8mT>ib- ze|=TNeu;Y@_sM_f&z6`S_{77gox4VNg7_1MzIm%lgr@SAhHwqt&XLHXepW3}tG zPt@8w(^ZU*sFDdCZ&VYd2Oi?Yn)z zC%kF;2Ub1*in&iuSkDKBnQDn^L`h0wNvc(HQ7VvPFfuSQ(KRsBH8c(}G_^7@vNAT& zHZZUBQ;SOya|;l9OhODTt&EMV455~= Tht13c>S6G7^>bP0l+XkKhFZZt literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json new file mode 100644 index 0000000000..9f4ca1ee51 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/meta.json @@ -0,0 +1,83 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5e770056ed95b2be02fcbb0d7613006849cc9abc GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op=X{hjv*QM-d^9hu_-{H^`ZPRz71ST z$BRq~-$_VEvZ+eUxY4$r`LK8d^Ru+$A*?kv?XJzAQ+3Lx-QBCgotE~k*Q?efePy-- zWBAtT6YSZw&fehpUu$+|#V?bv*DGddTdc}EXOmtU~I|)5%V+OjnqP zOq#WF{wqQ8gC?(MevZ#_yeQ%DSp81$5uS#ozxUfGH9g~R@R<1W>=_`)Nk~1>b;~4^ zf4bKk$Nh@lQT$WIx}t;MKYja9IJ?fG_d?e3j-x>a>C$zqmDjtOKMVe<4?NI%RfDx8 z=)wMplMU VOW4C^W&-svc)I$ztaD0e0syVctYug4O8oM+kA+`2PDW_93>(~krd92yuHnOHak zpo}_}V-iz&imd<7F_u~|x&Cd;4!dZPBgK{5SKZn?Z9iYtGrLdad^v3>df=KNjK=!L z+oi=;8O!thZf^|jU#|N#>)z@zzqM!MkAAd7wkwEb->pM>-Q`-hB7v@E@O1TaS?83{ F1OQqJQR4sr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8994994011cfefe211374497fa902ea729f1135b GIT binary patch literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op+-*^$B>MBZ*OemJ!Bx_dhxVGB$jClkZcu{rMWZkA0Gg=OmTCH*?=_Fxbq{|M#`?A=w#`72oVM zRi<9h5dX8`0>{)P)lo|)ZvV(?H(Bay(|Zq)jxWsdTn)k}>ykI5N2vdPSr9Pa=#KH4 z$$w|E{;FydZ;NwxH$Kk#8R!_*64!{5l*E!$tK_0oAjM#0U}U0eV5Vzm9Aao{WnyGy zY@%&oU}a#S>l|E#q9HdwB{QuOw}u$G*T;YwG~hOrWag$8mn7yEAoQ4o7+P8x8(A4b VEnyFvnF-Xx;OXk;vd$@?2>`20frkJ9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..9ca884025fd3c36feb1979700a5936c746cf279f GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op(alk$B>MBZ*OemJ!HV(a`Cf7f?}09~V6;u=wsl30>zm0Xkxq!^40j7)S5%ybQnLkvx=OpL6I zO|%URtPBivor9}TH00)|WTsW()(|82`WR4y2Hb{{%-q!ClEmBsgdUR+LrW`TBP&Cw VCG24{Gl6;-JYD@<);T3K0RWh)f^Pr- literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-1.png new file mode 100644 index 0000000000000000000000000000000000000000..13a46c2e09224bbaf474425dc80ec05ae3bd87a6 GIT binary patch literal 382 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op-N8|$B>MBZ*LsrZBXE8eYm_(D(0X; z-$&yv*fY=NQH3Mt7E4?cvRM!1&vSp{I~p zdZGB~ZH29lK&7fBt`Q|Ei6yC4$wjF^iowXh$VAt`OxMsj#L(2r#K_9nMBBi?%D_O^ zIk*Z%LvDUbW?Cg~4KZ@Bj{!Akz-=hW%uOvWNz5%k=rIW~w6rodvND8P!X7p=6R3y5 M)78&qol`;+0O1UHCjbBd literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d203e571fca443a39a9168e1ff8fdccc6294f559 GIT binary patch literal 381 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS^Op$bnI$B>MBZ*LsrZBXE8edslZE!?1o z*?4FF;|+&DuRAzlMpOHL>q`M%mZHWC3=RJ~XUzy#3$2_Y5UOe`-2U5Xo>zOmq#*bPbI|3{9;}jI4}Jv<(cb3=DLg zgR4+9|rxAfqED` MUHx3vIVCg!0F;z@p8x;= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..bb762db0c49173c4d6e14939e3a4a896dde6ceec GIT binary patch literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS@v42;5_E{-7?_uk$x%xg9fIrh^*Nle8*WvS``a4U;=S;E(m) zKP7ACua$q3zVBUA_Nfog`xp=3wl!=jJU-iSN#D=dS2_P*bKKv~6Pw~Id3(XLV<9Sc z^3Uw?J=$xvOHFFQ(=&EI|1eaa<8ID0InX*UGq|C1o_EPny|9>BZ>QVjNlvofP`d4W z`Dq3JFRW*t`yI`WxRVYHG1U^+h?11Vl2ohYqEsNoU}RuqqHAELYiJx|Xli9*WMyok zZD3$!V4&+9T!o?`H$NpatrE9}7`fNSfEqO5Hk4%MrWThZ<`y9In1mQwS{WNz8A2^# T51W|@)WhKE>gTe~DWM4fT3*sB literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/r_leg-2.png new file mode 100644 index 0000000000000000000000000000000000000000..16f0ee16471f110c804c23e9fd2a66de7521f018 GIT binary patch literal 538 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVFf-@hNS@v42+_lE{-7?_uk&HUDxCw!ur7Y*pXwU z0Y0W1>$D%5inUytx`8Eodg4Q_j5P5Z&ZRnkI$L=j8mZ}5KG*)aQzmc04siiNAow{u ztLoY6XOaD3(Y5 z!t&y!ap?hd>ka>EeoWV`3wW@_;s9Ut8-b3A{Dn{SR|o_o?BBz9W3hw7)P<8eK;Vz{ z+2mQD+77o>|%>D8VHrA6a#wK<<#0kpYj6D9Q?bywKZ$;llx2XjtPSp}9IGAuV z-^RuKL(_ykYLW{MF-pI_%*Y@uqsDeQr9nB0r<;i!C8<`)MX5lF!N|bKMAyJf*U&h`(A3Jr$jaD6 z+rYrez(ChIxC%u>ZhlH;S|x4`F>9ZF$poWv@$lbGK5;f T9yT)*sE5JR)z4*}Q$iB}rB=o3 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/hesphiastos/hesphiastos_main.rsi/torso-1.png new file mode 100644 index 0000000000000000000000000000000000000000..45fb93052e45ded9eb7fd6f376db6c0cd0306672 GIT binary patch literal 813 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 F1OPHk_Sygd literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..468d4f38989f23dee11211ac4e86d1baf6529a0d GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TR> zr;B4q#hkaZ4sx~_2)ORw#O^KNy@5x1Lzwgi9&dqzN@>EL4&S!THmv^fzwyPL57pTQi!2Qh2e<@1BOH#la39qmf`u$x~CsaI`7=j`?w?b zc9!Rcb+6ZLcek4^df|JmNJHkVoY?EfRhIm)IDc7pS$o4X3qJ0nielfVwAlQZq5fp| zr>Y~Rk&KDok`1qic^us-{P@`q&H3DU%Nx=IO&`COV8LxYs=HYKNBxs%WBk1@JbS{4 zC(@6lXm#Pz41hx~;DcCpSf_@Q$!Yi&#QdWVw_l=FCna&OyRlm2jW fZ#YA1uTVb2zJdsb`BuQdV_@)f^>bP0l+XkKvgVHW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/l_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..05df57f392f65c0bc4a3ee49cfc12139662f24dc GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R58 zr;B4q#hkaZ47*w#c-sEA>aJn6&OUfaxPIow$~jyoH;7u;R+*q(>^-7}rq|8v=bmN&#Y2(Wlu7RkN6NknH- zz_g{ycL;6Zw&>HWUixg(PhtNZY_5ikcwC1p6~^cq_+#DcBfBhwHgGLC8f+Y#G~pp{ z`sXjNY?!LKjuh&co%tXg8mh>1*!wfb8>U4XhvJ>P_gnRU=y>&eSN})ScsLr@q_c8T+9?Mu9%AhJp}=mc>j8GNKF*S1@q6vpQI4F(9OZ zWj05x-4M4v+N0-ea*o`tl#@pl59mzy7MbkD_jF;+?YGw&9GTi1#C(^nU|6zj%JXck z1Amo{KNgIfHuLq@Sw+$_f><}OqzF1pKKWVZ_g}e{kvd{8O004|-nhqf{<*Mk!T$Rf z-$tc0EuTEoM@>(E-xI}-y8ZmthFbocZ@-=7sqyIX$BGR{ zQ!2S{Y%{a~<;T%rxm#>MmThnN`!&-jPg`Via{HrSKV0p^ZpbywnVe;`@1HmU zFSZD49|(CjS-wBKI6d-Np3`}iWR@8>bK0)IZaw|f>ASDqz30Y@FP@k$$|ifpEwmy2 zPl3f3A*rMDg)U2YO=q(_I-czx0-p+ z)t2ciMjS{ma9DpmdyW1BdyW4kR;7zYgMR-$$dtEz_HTi(wvE?&!x`sFh}Uu+bO~kP z{P0-)!||t2H|iZ^dNE^{(m|2rPhJ||xk9SgvV?UW{H@!4tfOrA+eyDSa-Q1Dw9%G% Z|F00XiyyiDIDyHA!PC{xWt~$(69BkT1;zjX literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json new file mode 100644 index 0000000000..118c3f613c --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..27ba8e0d26357c9cd54b49afee0af39e0b6bd72d GIT binary patch literal 557 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|VoI zPZ!6KiaBp*ZOl7lAkbF7c*`R}iG-C}Y}@uQCcQay;@ZUJFK#SPcynyVQfWc|g8~az z1zqRrYJ%^9LI|G&QcQsi!)c+d8p z-P^dbSf_N0D%-qUYvwU&$qja`kJlarF{Yoq{NwINV-7+8xi8G8)%5*-EWTW=|9WIo zFzcD;#cQr-|K3pRsBv<#O=9re;1iGE^6p5~7vo-T8e`@-SwHQw`oWv5&PzJdTDH$K{0O}|=HYUj4; z4Z-sd)a^gMU}^ItwaM!DL=QaSZ)d)>=;V{m?F?%3RXCSB&KKVGNVUON$mibkKei=% zST?Y>uGM(6hhwFGLyS~E&;WVAt%iysdcDWDGj(-OnJe+1saCKF(>ae=YnTh=_FPHv ST=p3l{|uh4elF{r5}E*Bx9Y|K literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..e0b3dd55b59026035583a8bfd48f79ac1ea367ef GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TR} zr;B4q#hkaZF0O1b5OHy@l%J+BEkV*OVXaw$L57pTQi!2Qg#le+P7tG5AKO%e^P6=~2TfV-($M?3 zBlmXJ#Dv)EM+I3c^EhWLJ9(|t_5OD~hOGtj(q)48MGNV1pE%ksc)ajO2=D6mCW`%) z>!!S))^eI@PsaUUc5PSJFa6e3O5SdG87$0w+qn0){Gsr>mdKI;Vst0C~`p2><{9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/r_hand.png new file mode 100644 index 0000000000000000000000000000000000000000..716f604b4f387a9b358ce1ac595529e3a544b54f GIT binary patch literal 444 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R58 zr;B4q#hkaZ4A;3jh_wBmzQ;-T;!07jPT3A#jkjm{RHURg@U*(FD19fhb5eNh;n~L@ z+s7*{o*{Gm`3%ixHO(@j3`HRfCjuE2+*uotIS*!@dG>45%pVqvfg)!kr!8EirOheN z>R}++o;aaea_yS9&L^{$y_~c@@!qM*%}hs@u}pof=W}_B$BNfg#qX9i6v|BBsN=o5 zA$;>Q$>STZ{^@7B_teWH|?R?qKPlpzAO_!%62~}Zf3pnzWm6s#~%-TtxBCM zt+GI)>&U({DMpUdQZL?NS;>@RQ}X9-JY#fP+o?78-~Z-Z{Ge?2&W%0qt-mwOx2e5; zs;E2hYv++;$$xAWLJr+#(#X`Rm3sT?_@q6HdyfD3;ZzarkmGs%;j!iaS#fv_?&l4x z0rMvuTcq*FeSb|xR@VEQ#hY0IK4s3@H7!K*!FB(hyU8CuR=oMubo}weyGxV88C3mc zA8oTbI;Cdb^Sm6U=m!6PHFk@6b3S$Y-kZ>(wt;oa%st1$9fUb^7^l?i3}3Ld?_!SG z;ky0#CA`xb9u{=Ot-t;&j&WAK)!bbli*{~UcTgzcZs);F&-$i=2?>77gCD=%z!DO5 zaZRq~{D!bQUKNs-8(0Fkcc~rx{(OHN=ax@jpX|Jy%rUK@%6{JE>Cc@$msri6{_$tc crlbFv%PuooIrTjj1g07WPgg&ebxsLQ0P@TVYXATM literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/morpheus/morpheus_main.rsi/torso.png new file mode 100644 index 0000000000000000000000000000000000000000..49afe13d65a365fe22ea3cf4c557e16fb93ced6f GIT binary patch literal 758 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|V0v zPZ!6KinzD4e6x%k1=>zOI5bybN3re;rw?q8SnqJ$JK$W&e6Uyi1J^r|lGlC$M|yYv ze6}{f>V=PxN4UBzXQi~$ZKJQ>LrVLXM71=tcr?J!gM6WkKi4+={#*B~#(u8fGmBY* z3|{O-vT5u+-!@;&2P$ zqj~93v(7H_SsrXT|NJgD*CkSVAJ%UW=UT8aZvEz?Ns2$$eB*C#u6X@GXbTG?!&Tjc zi^9sx92(z?`U2A?oSk-h>8^wOiC>v?cUA)l`R*pFWA+!MwwZm zU-I=7=9%(*?OF21*G{@k%&dR^^7#}|gV|@}ZmwT5dE<)90bd_|_6A=0F6Rp=_e(gM>eeJq-u|9r zr%S}`&&wuXj-7Z=o8xe`@{BK%2`}FBPOpr)?pf!{F0kebFJryNr{F(7PR&@+4NFQ5 eERzI&uwOXuwqf-uCP!dGX7F_Nb6Mw<&;$UDQd#N% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/head-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d89df4071be0d30eeea7a57f83e7371d4d68c478 GIT binary patch literal 6405 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 GV*UqI>d~A4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json new file mode 100644 index 0000000000..576edfc9c5 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f5694178c58933a862b04536be83366913290b86 GIT binary patch literal 453 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKrvi*LB%Ip#z>Sjv*QM-d^9x+iW1fdf~ms)O(Lk z)G;Xf&*hffw%(zwmF?NOfDJK;=UmqLPvl}SSh{v5?~96=>Yv{UarRrMhKWmD(BHHE zxqyzqr6d+55Gd;Sy>tI7bE(~8zc)?anCw`d*4Wha=kb?Y`wmQzn|e8H_MhYCGrDC8 zuZN#M^~d@3ScwaHO8U0s$uV~sf;=yqe@mKi|5sFt`!l%yn~>+L*o!bQ!5iAD`OLF0|P4q16}9fDijU5`6-!cmAEy;$h|%W)Sv;kp(HamwYVfP jw*aBXB*f6t%Gkonz!+kQWTp8ApdJQKS3j3^P6v%V8m z_cU~$nOGRJtf*{5wf;obD~7GJO(vF1VpU{_*Jg5$yecUmIPw36Lo%6%Z*6v3{Ben* z!CW4b3GLwq5^B#xXJo8nKfO+1#<~sZHjn-1aWQNNP1iDb%voe~bXv2~{d4m^^cWWI zpICgD|H6Mx7Z6x-MY*Uf)Bazdcpk&Oz3=iR1T4Nt?brX-c)7p#<*j`O+R~p~`B=Z; zne-diU7c&+toynrq-t%xkM{14jw3Y;-WkrF$_u9%0DYrc;u=wsl30>zm0Xkxq!^40 zj7)S5%ybQnLkvx=OpL6IO|%URtPBivor9}TH00)|WTsW()(|82`WR4y2Hb{{%-q!C llEmBsgdUR+LrW`T3o8StC3o&|+5z=2c)I$ztaD0e0svMBpm_iQ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ee57febec2d28c0e8f13b90d9bbc3537c230e8e GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLP?%3jv*QM-ri8;JD|YBdLgd)xAeP1 ztp#&$up}`VZSvhSU7=q1)h}hB(g**&rqyVdE>2B5EoJ*FWs!S-)zfW%_CNjkDrFJh zOkHcBk_La<{h#E0Bi^&QNmn&}%}X%3E-bVEtb1i&=XndDylRPSL`h0wNvc(HQ7VvP zFfuSQ(KRsBH8c(}G_^7@vNAT&HZZUB nQ;SOya|;l9OhODTt&AgTe~DWM4fwZd?_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..fcdf5bf6504450677c875fc392fc0fe47a0e3dac GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLP?%3jv*QM-rm^AdBA|jC2;M-ztV3P zwO)zsVtJ(0+T*+7p?yK+A+6FhpjrloH|ryR>wZ=A;VNDlwADrH>8@h$Z~f0JKQgZ~ zX9me1`1x%8pOu`C?>gi=`WxKi{gP#SkX1~?xL4gZpbaRmTH+c}l9E`GYL#4+3Zxi} z42(>44a{^6jYAAgtxSxpj7_u+46FPv9 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-1.png new file mode 100644 index 0000000000000000000000000000000000000000..381573480ff6d90351ae0af543bddb3e9fce2159 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLK&Vejv*QM-riU!c))jzs4e5DN?Po4sDLDOO!(2OYkJ}dm73XaG{Nc;&Oicye z@M+QBj6hWkA672C8~gB;ocy$R_Ww_B-R-2U$HuVXJ3~R5A$OnR5l u8Z_WGlw{_n7MCRE79jMPgcw>{8CzHxKrOj*kJApQhr!d;&t;ucLK6UTb#hMt literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c502e77a18f8d3cbdda261fb671b01f55e2a062d GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLTR2Zjv*QM-ri6YI-nrnd~wTmhwFt! z?>31aTDnN?nvUuJmuGSu+?arNMP2{!#mdG$vz)X#+BNi zckUDcn#RE3?z_IMb@#8D$zNjZ_t|gPo|0t9(6Cj!ZJM%FrasGipbFIz*NBpo#FA92 zAvZrIGp!Q0h8Vfm$AB6% s;5L+G=B5^xB<2<%^q7PgT3Q)fSQ$VqxpR-x4ycF0)78&qol`;+05H#TLI3~& literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/l_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4bee8acb480870cfb33dffe1e0a276e229de035 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLf1T9978hhy`AC6b=ZK1<*A+f|Ci-W z^MzmdPnz?4+LJA|Q=FJGQ#>_IHWYt6s=c;VUt7?LL$O7`X&u7{>$7L~1sQf(>1w#G zWW2q5smSIpdfZ)cX@M2F^_tIe_irmW#UoJFx#+F9$)85e44YNAD?Lk?ba%CJ>MYg% zXMbVp(k*vP^lPK+XPQWTlB+4u#rnI|pt=&%b6IImA0u zAFpM7P#196<9K??A5Xc99a49BE3zbnJKnHud%M=w(Q?}U^A)F_&pYspb;8qv=}v`a z*MUA%Epd$~Nl7e8wMs5Z1yT$~21X{j24=d3#vz8LRwhPP#wOYZ237_Jy3WB>C>nC} zQ!>*kachW?dwmS3K?80>NoHtS|DP}`=-#~3Jpa%=2hVj6*!X;om>c{I{F3r* zR@~zEQ@IT^K?Vx`^nJLya+!38={FW1^9j$StDClc{K#eU?z~0p!P+N}vy0CrMcm%@ zzK}UQJ>?hUGHH+F&#RgqTKzln|LJP=6V(h8qx}7>8q$9QeWY6A8c~vxSdwa$T$Bo= z7>o>zOmq#*bPbI|3{9;}jI4}Jv<(cb3=DLggR4+9AvZrIGp!Q0h8Vfm$AB6%;5L+G=B5^x kB<2<%^q7PgT3Q)fSQ$VqxpR-x4ycF0)78&qol`;+0KkVsn>+iN=5ER_0bU0?`BcAM=|3X@Pm?QtQ zc{nfAc33obr-690;zdCPW5dm5zf}(f?T&eWDw*K}AIF1rzUQs~o(TOddcA&o+5W#W zmaJ?u4C?kbKl4{m0)f@;r=PVkwpH(DU^Z%h<@}4Y(=x+H|8Aezybh_$+jsqadg4Dz z-o)l#tL$%e$XmdKI;Vst0H{ct4FCWD literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..da79cffbc9ba45c8d060d1bc1ce9cde58b8df52e GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLP?%3jv*QM-rg|eI$*%#92l$oJ-$Xf z{={sn7N_F@?aL0=Pq?Tgr^^Xc%FwW1O3rRdh*s;Rvb-OM&Tvl6DpfI=GcW)6zw)pz zK#PFjN6dcZ4Anh5-pHG6;n{n-Zfoie2KEs5%A<_CPr4qCfWuDRt5&T&cRhE8glbfGSez?YlxA1eGI5U18ze}W^QV6 lNn&mRLXSy^p{13vg_Qx+k~{Y}?SOh1JYD@<);T3K0RVN%Z65#t literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..90b5deb87c4f8e2843cc28b6ee6204d88595d703 GIT binary patch literal 359 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLP?%3jv*QM-rm^AdqhEizv z_i8miP)P&-&G#JJgyM3(@v}#@?LAw!HT4Ih=K|y2O?O$Y0_9apTq8nXaL6h@q*KiIJ7DiMD}(m4Sh-b8r=khTQy=%(P0}8e-&L9|LO8fZI@# onVVW%l9*e7&|?x}XlZ3^VPycdn|8N9+vRX0k5zQm+Yg%@ZuBi;DldDq z=+(RhT9QCD3?G7nJ5Bc={8(2KwMycZXQ@4F=9@}}AIDfDxD2@yytjfJqFUk_QIe8a zl4_M)lnSI6j0}uSbPddO4UIz#O|49ftc*>x4GgRd40N4?t57uL=BH$)RpQnVBlr3k vP=f~ChLX(O)Z&uF+yaCilMq8oD`N{Q1E?i;?s3`y^)Pt4`njxgN@xNAZ##1j literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..a2cc6b71a6792ccfb7e68aa9b429132e47a62c4a GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLfM`!jv*QM-ri6YYB1n&x!4*V^0?~L zJyr2l(JWjCO_~&D{Le|BG&d|)6{z@*5C8W?H)9W9KFy%GTXaqSCTAeSIz;%vthqZ@ z>{4GbiwCHP;m69CF0<! zC8<`)MX5lF!N|bKMAyJf*U&h`(A3Jr$jaD6+rYrez(ChIxC%u>ZhlH;S|x4`F>9ZF$poWv@*7^GJslg=N_jWP!EHrtDnm{r-UW|!~b$? literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5d1bc5a60daabe0bfa7b3e84e9e99e45e4e6efad GIT binary patch literal 461 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLMJ?3978hhy`8a<_pkvEi)Qa(Mc&@W zk#DZdJi5-VRq%kT%T1MuOMYatc>H+Y9N^p~;KZTWBJgQF!~Kt|=C2oBy=4gp@9Gz} z`bTwUYvi4>itF-C%Wvsn==;=e@LK%9o0PZqwneY1YehVMF|Xs(Shi{U9KJWHT7Nm_ zD&-$EmQgz22{ll9k#beQ{S7V0jE^=suslzxzr? z;)Xzv?HRrslmAZr^jOz<w7FGsOOYYp`v;*p4@O1TaS?83{1OV-er8xiq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_main.rsi/r_leg-2.png new file mode 100644 index 0000000000000000000000000000000000000000..b2b85c3213d4cba71eed8143258bd0d9d531c8a2 GIT binary patch literal 449 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVKtWK{?{jfLVG-2978hhy`5pm*J8lK;yZ7$`y!k6 z?Fw1}jvZqKrTt3_rp{+N)9{m$Dock5t{?8~^3PpRllx zr;1)IIwz>aR&XT#(2Dp4X*H|tbA!(?_|3mF!{(Iw)s)Ti47n!+rzN+Xs@m6No4_3C z2QrJnpv@@k{f;;FFLEU3O#kb9|EAHGqxanlF4xO%k8Vq`bu(d+l@sK3ynXmiL+wrb z&iw5>lU4VBi2qi??Eiz|w}9VjIe%?epgF1~t`Q|Ei6yC4$wjF^iowXh$VAt`OxMsj z#L(2r#K_9nMBBi?%D_O^Ik*Z%LvDUbW?Cg~4KZ@Bj{!Akz-=hW%uOvWNz5%k=rIW~ cw6rp|urh#Ja_1hW9Z(O0r>mdKI;Vst0N#FOrqfn|5uv{(tw5I?Kh&3|XtW zq=F~2ipm=${65R3dV$F_Kqgmuh6DGLEnBucnfzy>dGggyg}b(gxn=Mln8x(tt;Btw zof^Cc+*sP)|71S&Gs2R0f5NZ3e~$iGD|4T@vf_*Thr5LpD%#?KjWcWPckgScn^r%q z|Eiy;tgNi)?hck`AJ50QT-vzm!=EnAe@`UL(pDbRS$w?UoP@dx6g()uGlTi3>Ku{X zGyeSg{CnxCQ>(f^U3hp?FHir&k$*Yz(;Mz{Een>2J-_|Qo1Z2O+7C=E_JoT)@U^V& znz;C927g8Ak;Q$h9BPkVzAO6T`)|i(75qH$vTvi}=5faP>V5yMHR0^byYAXN-!)?V zzZ!(gS2VOI?(gU1mlfS^dnd!G;nJF>_6zD8Y`A4EwoH2RWXTErMA!54Uo~EQf8Zd` zt2EiE2cC(Pc%{zK@tI$~W{<)2`4c95u>ZjNczgXq?WdW?fsw0P;u=wsl30>zm0Xkx zq!^40j7)S5%ybQnLkumfOpUFK4YdsntPBjqq*uhEXvob^$xN%nts&h_;2}_h2Hb{{ q%-q!ClEmBsgdUR+LrW`T3o8Q?h$VOKaoPd(FnGH9xvXSy!*yulGG4sLOu2 zDCGRD6xN2Vjen2MdU`Hb|?yCT;7UYgl&foZQc z?zwdG^y$@?vm2RDe=!zrEz+6Ww9otAqLW58S;>93M5aHSWV9|s3+Vcwl?Q&r?G|z0 zwK*;}_vQEb_9mfX-TJR`|5!+KgmG=R-+OzyrNFMHE!-Es)%Y)Nt`t9@Trl5q(TB$^ zjB-AUn=_TyKf5Tyae1OcyikLu>GqOR7QerLD}6rBk!;Mf*|xmUX7b%xHSgZVjp)`RBWH8Q^Q)h&D{nT8)mNLniMcehEFuksrthySQw$|anM1_s6! zPZ!6KinzD89P^qD1RMgFuM#=O6#Z`c0ndm@Yj&`EtCZboo_jiER@aik(>(!~yzWmD zm9#PbX8h_HZ(|z+lUQTrJm*!>pDLbvz1{czaTTxCw`X@`mb>2G#v3`!^{vsh^4XIu z)v|hbY%x7h^~Phjt&7>J+3|}Ol{H={zrFcpx>m_6?g`(oeM{r5`1)tvYp2L*=BFoY zwE1o#>=1js=+((@x2w-H$sZMQ6>LlFIR4o1)cT&iXIU1w&RS-vGk@T6|;Crm3sLqA4J@4FtERe!kd*wsBRr_AWVWpBfQ`@%mM ZLe@V!_)Bk(1u&8rJYD@<);T3K0RU%m%I5$8 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/shellguard/shellguard_monitor.rsi/head-2.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5ffd6c10e8c2025bcab45baf913d4a4d4be840 GIT binary patch literal 500 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 E0WeuTx&QzG literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..1c5f646e36e93793a6792a6fef2f4ece375e2a3b GIT binary patch literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vn~ zPZ!6KiaBp*ZCu;zz|&U0WV=&X2g}VS){F@&A{qpZ7^DpxwM3-c5}33cl2|t#w(Zfl zWP7)8TE&fcX5MQ*4&X)n;n)ld+^(6X3GK}M9};R*(h`nqEurTst~D zbCy8c!r}?*YtK)zIjGdow`P+L|MAS*VxE&O=$;nz*zlLbR*t{wce|MH`SqbGWt=)2 zI2LR#UGinWrPfFNFX0l00vR!V;m+z{p~ZlZ(ql3Wc#(D6eMc9Avu@=pw}~9moZ*5E z*I&2VoL~D~Xq}Qm#_h7(Oxq@__%Y2|X1F@@+Pt~Uvst9hY*@*p&S>(d!0nO6v-?a} ze!u@Mm)?9WRD^Zas!dX-3RW?!OKe@d-D^wV%d!2BEiQCEwm6slzb0o=u&#pLzo^Lj?LE7ecHAkR_uN|f+P?Q6 z*I6w-DZfGI^xj7ax3^uKb;r24>BOmBZCQ-h726gqV^4K^trOqWk<3UG3RZm(U(D#A za@%It@%d6K?guD8I5Vwc{musUQ2ceJ+57?Zau}t%H43KlqRqT1v;#&W|CvSbuy?rcO&*;P_p)WCS zcCCvvtGl?L;e;kJsNwkr0VkQ`hNmt6&AsxQV;$qPRL96^H_v^t_uSk6Kdh(*I3k3$k>7rvQVI!PC{xWt~$( F697Rp}uaMJo=P_%3{39k;6Ef`C9$(91_Pc8gUm**$jUWaJVuVKL}D@FXed=&AV| zYQqjV-#NR&r}6U3mctJNQh66-9J}n~dcfwqr^8y!0~Jv#I3CQo^ZvVr<*z51Tq_oA z;`r3PIJk;y!{<#8^a}qURXQ=zGc=%zYr^TLi*C(36}#Z|u9Ez|{eN0!EU6OR5Gz@G z>|)o#AV!}y&P7bK=Bj7)A5wMO>-PI!ItNytAUt_ajnVh=67z%GZ~OkueH*W{{{Bqn zX)>FV(zz3!w&7xzu3Y3%Y-?8HB))miB) su&b%e->G=dQ~xthZ+UjyT#$1XFgY-Iy85}Sb4q9e0Q9H#)&Kwi literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json new file mode 100644 index 0000000000..f30906990a --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "torso", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..24e15d419add82acb47ad75991fcaa480bb302a6 GIT binary patch literal 507 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vn) zPZ!6KiaBp*9qc`1AmD0$X`2K0#7Rag7+v%=6?zN09yl?3gdEUxIb~`7;^6E3QQp-z zN^Ra8O?wvmh>TtB^Y3 zPQq5bvo#0$4uKu)!!RY8X@QI|1EycVQcGkHxq5bfXWg$TBrr+7tx@L7X;1lK=`(hMoDWuW+f8$5JNf%miJe(tj1r?y-R7GQigqfP_Z@%i z{dYHd=ZnkUv*vBT?d|__Nq54w_pCE2DkKygYxqu7{;yxE^;U%g%`H`o^WR>c Wf9zw^$#1~eWbkzLb6Mw<&;$VP)YIVr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..f04c2fd7a6452ea43d42a3d9ec057485521fcc10 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|O(o zr;B4q#hkadE^;;-h`2oreqm(Qrft#oc}HKih2Jf0UY7ZjZnPixUmu{e?@1L){3P>7 zG7N=$4HoPUbC?y*F$z3q=qP45V#$ChoXu4*FTLw^p-j&0Z%H!OWA6W)v211Lx>XE6 z4_+_rWlz8V{l`*Ar6rZ~*6&Q(XOo@Vv5Mj2F=w4g%sonJn$J&dzP5_1p#Jj48ycr> zRz3UVEQGMo&SLJUPJ3{N~5PE2H&pv(xAxE9BEIN{em_i3pdO$?7M z>?zZ+5)ib#{)q_5(fc|4*j3>c0@dVlj3XRofTbG){Q` z@ARfE8~wX?MmL_tfiVFY$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..653101e63afc2dba2c588d7a13c3c68741ed8d73 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vo2 zPZ!6KiaBp*8TK_B2)No`l53XglxbEHe;^?;r?shhiSI$frX#5l`%;ysaPhO~oZXZ3 zQS8kbn;iAiKlo1>G6wW; z6R$4*BIj`W{dZ~2gEjNcKY#zd!Qg1zdhwv9p8*F{y&I}6bRF8;I(OO2Pv%D-n*Nx?T*LS1h7zOBzTD{RTI&Dy z97x^pqfqAVjI*=Wy-r)nGLb>-|Iw@K&s?8ok!W`*Z)yeShnL>FHl_srD@l22Q7rzL8a89xytY%_^&H1~gIZfq)%j`ctTs{$K4BOh*w_@L0S#7sn zUGP)RVaMxDvbEQZEMBi^@@V+~=y6lA%(Ck220-~Rp8 V{3{I=8-Q`o;OXk;vd$@?2>>Xg?}`8b literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_main.rsi/torso.png new file mode 100644 index 0000000000000000000000000000000000000000..ad1bd42ca6cf6a01b57ef981fb9b2d359ff22b4d GIT binary patch literal 961 zcmV;y13vtTP)n>3aA3A zfGY5xD)38UcP5i@a=Dy|#bV}kI+^8iX*QdUXslQ8sqZWJEYdK%)9ILOHfze|@`d|k zGBK;w%Cy_1S#QeSkF;?c9sjYfk#9@hg1KdhewU%UsvXgat?ywd)bkrLy-vin9JRKYKlX1gSm(bX7IK(Y{u4aQjGVtDg3XarjHQNkPDmOaB9+FL(Vsph} z(Sjus2{RgvOr*&P0kbGkqFSw9LglmB%(mi&$V386r&9~o?RGCB;72lfsn_eyVzIdDE_oD-_5dVF`b&_A)F@6rU%3N zU-f$SdFP)A<)5;xzFzZx`&)kJgdW-B&u@JT+r8ladv-le>FdY-U$1GHwtD~O345;R z+?VdZ7-G%P@^%{c6i(^>hngjvWwK=l?*5kk`Q`7e`R#Vc%F9zjVnrFmw}h?sTzv6^ z>4kb;2EPlAH{QDY{`hJ0HQ0Fm`F6VuwaJ}U^R89g`n4}!;^5@}6BKicX8pX7Yc_l3 zOKzT!)mOjpL_}pCynmZ@*6w3FIfZ_F3%z1rB{appH^9>&;J<)X@0FKLEFKLwkb+uc z#MC((j7+lH_r~dmomug(`{<&RX`34__t)7Su%45^yFejv^4GZU;m7XW{$;byP;R-K zylLf;vRfBgwta3athoGY^*_;LvUyvh_T8U1}1VMC4ZH4}aHP ze;xPY^YY#O*)x9J-P5V@^Hb)9qRwRT1Kd)3GUq#LF$fegy}nwe{-EK|*XeH?TcLo$`cfc@K0wH@nPR_D!zGB>PKdmi+JRb3arHPO(g~ rm@%QGZutw%mok$5SVBff=>vychiBo!m>X|_>6*dQ)z4*}Q$iB}Lg8x6 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json new file mode 100644 index 0000000000..9f87381cd8 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/wardtakahashi/wardtakahashi_monitor.rsi/meta.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-1.png new file mode 100644 index 0000000000000000000000000000000000000000..fe3943fac0db8fd59bada58d5a5832f077a5b269 GIT binary patch literal 6832 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 GBmW0Xxc`Iz literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/head-2.png new file mode 100644 index 0000000000000000000000000000000000000000..baf6e438f8192b2d45e70f9f22580e33be77c1ec GIT binary patch literal 6889 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 F_#Y#eCxie1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json new file mode 100644 index 0000000000..576edfc9c5 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_alt1.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Edited by Timemaster99.", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..48cf08df0799c71f1214d1c90ad4b07416d46be2 GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRf@0=Wb4*&{aMBZ*OemZFb;cy-*+6wWc6@ zNgA)%f&@ORt{$iPoGYB>Pis2G-SiS+xT@(wO8|5zo1t2c`Iz37?$ z*22|iL26oV#=^9;*E1R-pEce4@Ngb?(Gf1KGZDd=Y^K*u78l99$A{GB8wK-apl$`nP=o>+gwwC$OE`Xg5P?cSpyYpA1tvyf!$7J@^Ck zplXS0L`h0wNvc(HQ7VvPFfuSQ(KRsBH8c(}G_^7@vNAT&HZZUBQ;SOya|;l9OhODTt&AR$B>MBZ*MFVY<3W6eK_C8C2EJ+ zqReJCfh OGIo$7icJmISTLSPEZp5HX~ARX65{Qjj8$mHV!T>|6F_Qwx$WM-MA_B z(+mga1x8mwS)}^en7rTcl*)SZaGu{A!R?)PZHIYtm+84FoV+n>TW!BTI=Lg*)TwZ> ze}+P5>h9RQ1G7_i2j@3bvNN!~n)`nB;|CTEf7}(6K)`)#W&D2D-#wLy+~4LaMF*K! zr*VJl&tYb;y1ZZ1{pROK+fURT;)_VyyZH@Bhy7btM<_CPr4qCfWuDRt5&T&cRhE8glbfGSez?YlxA1eGI5U s18ze}W^QV6Nn&mRLXSy^p{13vrIjhvlIlM>peSJQboFyt=akR{09yQ;Gynhq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..38b28406ac520501b1c3712c4707cce715612492 GIT binary patch literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRf@0=Wb4*P_CzoV@Srmw>LKOHYkX+JnW7(kTBk$ zA?h7qaN=fG5>rQD_y5(E;-7Yv3jtL#F#H#n`E%_`YC!NDKJLCeshPKa`LEhEsmt~U z=WYwl)pnb}iWv57t9z=idgnFUInKTF7F^~(Q^xF`YoqBUCI zZ#;h&8tM9WCNEgkhmBvg>op(7nHTs;d}V2_OV}oD(e;(Z`b&lE&ckJU?*SF5mbgZg zq$HN4S|t~y0x1R~10xe%12bJi;}AnrD-$CtV-sxy11kdqUFYB`6b-rgDVb@NxHZJc yy*>uipaHj`Br`X)xFj*R0HMbu#L&{p*wV_>6k^HU?(_>Fr+d2kxvX~=c< literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-1.png new file mode 100644 index 0000000000000000000000000000000000000000..72a1d92d83f62f96c802c53ff862a40f432eb554 GIT binary patch literal 391 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LQS47jv*QM-rm?K*r34E`tX5Rk^=?1-dG!hJs+FnQy&)5GvZQV_ zRx?a=?b~9uF7B;|cLjH&tj$y=plXIc-h1^6{`VcvYX5!jfbD^MKeyb{+Zv~Mf&a^= zFI?*v88S5N5}v$Hh3`dJK_gJPYKdz^NlIc#s#S7PDv)9@GB7gHH89gPG!8K|wK6fX zGB(jRFt9Q(&~*;3LeY?$pOTqYiCaUA-0NdN4H|G8N-}d(i%Sx73lMrtLJTdfj4iE9 XO(B-t?M}Y{)WhKE>gTe~DWM4fZ%%_o literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d61d58b478abf8b0d8400a4873add0d512ed9bfe GIT binary patch literal 388 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LiL_5jv*QM-rm^F+hD-c@{l{af;BCH z-|f^4O^JqSdOQsVl@pjg*5~?dda9?+$iPr@{7=!klhc0RTfgkmf|DXs<$^o|)ucBz zY~>+L*o!bQ!5iAD`OLF z0|P4q16}9fDijU5`6-!cmAEy;$h|%W)Sv;kp(HamwYVfPw*aBXB*f6t%GlD%)D&XL T-R|@YKs^keu6{1-oD!MB&B{Au*P1vvJ8|DRcq${)JuxxS+5giE&pi!JM+NJm6<@vCaNcF||JC>RoH=(+ z%($Tg2u{>H{EIu&`u}8;^pXUwPHCM@Nm2jSzx&WO@2Jp=o6Pek?kIU|q!n=cz_x>2 zIhGr&v@^Fe9k9-SIRD9wO9wJ_o>W(s-;BA_d1Tf_v7RHTUmQ}CyZ1M34E6nbpk=Oc z+(BjjjRJxo@N;unEAzDN>IG_x1+TvlUov68`j4RbxoY=B=G6Bou9i=CS(;&zt*B;N&Yt#WLH6p+ z!WZTp_|ACgb}HK$p>?XjAX6=IjVMV;EJ?LWE=mPb3`Pb?4J45&c^ZbM0CZfbE!Vr~IKk4cE3rIoRzm8mJj VlDpmM7l3*gJYD@<);T3K0RZ?Y%`5-_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/l_leg-2.png new file mode 100644 index 0000000000000000000000000000000000000000..89106d6420b51af0765861f1f4035871a3081924 GIT binary patch literal 535 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-Lj7#M{-T^vI)?!CRSFptSmfbBuOM{Tpx zcNX7wmhS{3+H-yRFSFc!XT5;KLuL_E>xi4S{F}9EKOEOhn8H#t_oNUbcX8_RduuK==1uBj zH#54h>Y~3vKEscxh0Xew+Za-&NCa!gS-x}02yD_UA}^B2io^3Sl?EbGT(4%U!E-I zjbf(7=66nt#P_k>DQ>zXTqAJ1UF=88au&vFzl19e{`0SX=UQXg7|8to($UF_xh&K- zyk!(v?;3^aix%nxXX_dG&#K^rq2GpPdx1l66H?_DVF}DDr$0Wqi(#qJ<%G4BM$=&Ys Q3qU;#p00i_>zopr0ABRJX#fBK literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json new file mode 100644 index 0000000000..35c1cad74b --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/meta.json @@ -0,0 +1,82 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + },{ + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0409bb02fe10e39a0aa15711986a2ec0eee3c974 GIT binary patch literal 466 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LT5c)978hhy}iCrwAn#`<$`6LOVkdt zMVXJK90J(+CI)>7Y2dOGa}?gu$tMsoaj(mna+y7;`S0gSIJmg{6P&p|ZDVYfg;h?L zOY-foq?ES?jk6}64BGy*=fwqwCp~4$-@W1xnr^W0&%ghHNr!~C8SmI*&&RO-#i8%g zFAnwk^E{WYy3?@u*6ip9h0J|f>!nuQur|A}*lK?MJ7obuAehK}%;IhHm#&v?{8dN4 zY)z{F$+vz+-n1M4tUR8279D*aKF{&)g@*h9^S~Kmf)j1xc3<||V9B9S0`!<_iEBhj zN@7W>RdP`(kYX@0Ff!3KFw-?O4ly*fGBL6;HqkaPure^vbq=mV(U6;;l9^VCTSJW8 y>tjF-8gLs*GILXlOA>Pn5PD2P3@xpUEv-yVA(q_jPQL)u!{F)a=d#Wzp$P!}wWVkP literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_arm-2.png new file mode 100644 index 0000000000000000000000000000000000000000..061988dbcd42c494755607ae168b8f38b53a7e1f GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LdQK_978hhy}iDXx7k31<-%dFiK2Vl zvaTgCay=_>pBVUJX2U7wB})@Hcg+`SosiJt*EgkF_SmnQ+dC{ATwLlVMqZo6IB~;@ zjtOQPo7|l<7Bsp~HQIPIW!{B`<0)^C?TB7qzfDkeVWW_8TJ`4oU50>RnrA?0dGY{r#31 z^VT?3?>k|6bFz%_3jI6F#qTVbrvg%aVtxfv^i%V#jb2_8fnHKAag8WRNi0dVN-jzT zQVd20MkcxjX1a#PA%><_CPr4qCfWuDRt5&T&cRhE8glbfGSez?YlxA1eGI5U18ze} qW^QV6Nn&mRLXSy^p{13vrIo2E#FD$+=@)={7(8A5T-G@yGywoH4X7~y literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8b2b141aac76424ec9435115ceb6125ca20be5 GIT binary patch literal 368 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LfM`!jv*QM-rhLKc|bwH<>EoTZ3fvJ z0{t@&HMjb3ajaONV)>^$L}J?Bw;n*%3=DrlE&e11S?qp&gyZ2l8wo|*`EO3UhQ2++ zbR{ITF*LO@F|sl?(Kax!GBD6}4z5Dckei>9nO2EgLyX+( xV?YfWa2rZ8b5n~;5_1a>dQ3tLEv<|#txQcJmfY=5zW~(3;OXk;vd$@?2>@94a>@Vz literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..74d17c3c7344fc756198dfaaa2b12d86523f883f GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LRp?Jjv*QM-rhLK$)L#Na`B*E&~5ElOQ!uU3^o9^dI$_ZJ^?)(s3$_G@UTH+c}l9E`G zYL#4+3Zxi}42(>44a{^6jYAAgtxSxpj7_u+46Fe2^izS~{XWBt6gTv}t&)>D^jx2^L(@F~ck zvsRAbULix8r3#-szY@@y45}rr5hW>!C8<`)MX5lF!N|bKMAyJf*U&h`(A3Jr$jaD6 z+rYrez(ChIxC%u>ZhlH;S|x4`F>9ZF$poWv@*7|GBt%* Ua<@DE0#FZwr>mdKI;Vst0ByB;-2eap literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4e6c3e1674f9c6d2b59c2ae1c7e55ae35c3caa GIT binary patch literal 387 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$LUo=ljv*QM-rm^A+n^xO`j9<(LzD3a zc4b4gR^}U*5?2ceEwbGDV?UoqU-{FyK-)gppPpWNJ?(Z({Qdd;u91!hAG}_$V9lkw z@k}b=(I&6#R&9H-Y|^a_t9gKCGi*rSs%i0QaeMmgrk^hkGq^_Hep^{qEq9uipaHj`Br`X)xFj*R0HMbu#L&{p*wV_>6k^HU S?(_>lJq(_%elF{r5}E*5c7D46 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/r_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..7ef9033cc0f5c4d42fda7abc5c1240c5d5f000b4 GIT binary patch literal 536 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-Lj7#M{;T^vI)?!CQXnC0Xs!1h40Qrtsz zp2G*3_Z&CRT|0Gy^}m=xd+8`kPd_FPz11R8xyhk5701)no1%k(K+iMg8Z5Kr{bmEPN8# z;jw?hmnYl)`OY#;tDI*?3@xsg}4#l%yn~>+L*o!bQ!5iAD`OLF z0|P4q16}9fDijU5`6-!cmAEy;$h|%W)Sv;kp(HamwYVfPw*aBXB*f6t%GlD%)D&XL T-R|@YKs^keu6{1-oD!MtS57qP zHi_D#qsH+>Xt%QpIhN%w_5SXMZuS)mhni>0Dh;`S$R( z|F5OLOL`~gNSaCjgG;ru)Tkvdue;C`~+T;#>Q8V&P|AsUC_LN{buQH@tYGH_MN_5zk&C*y=S13E0-1! z)QKEFYp?S6Ls@{5_>*!y@c z7u)?mao~WC@@3}f`N}7Ho4dDUaXK7W_bHt9xW>P^FZUkho}07Mze-`%cdoeYlRdc_ zU$iR8EEkZf*sVPOuGIgAz{Szp8S@ua3veIcT)#{~koA!W%K??;ik7VP3@=hE^$xB- zYd?w2=EPz)H>Uny0UN|EJ__Go9sTfqu>8C$o#FfjPruki%=qD_v+qo!+etr1?l{v= z@!hH+Q1C}sWwq&3gHWT?<;;S`wx!diOh^fo;+$(?*t+(l;9|d|=qQ7>ovZuj*4=#Z ze&Po2iPe(JpA{{cUL*W&>I9wB$*%W3-+b^g5ZVxtS^93{CY}t@IU+K;e^j3@-oK;s ziPD>;!t3Mxt-P+dYt|M?tPW;q%&52O39>ltc<^M6$HcddH?Bt~X~=E*TQI}vLfxck zi3cLZjHPt+s#PsEn#>QG|M}ME=BDrs5q>*&*%us2>YNm0cV{irk%lkkL8gLs*GILXlOA>Pn5PD2P3@xpU aEv-yVA(q_jPQL)u!{F)a=d#Wzp$PyB@m2-^ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_main.rsi/torso-2.png new file mode 100644 index 0000000000000000000000000000000000000000..70271b0c3a2c5679cfb028d25a26a8aa94f9f7be GIT binary patch literal 841 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I0wfs{c7_5;rX+877l!}s{b%+Ad7K3vk;M!Q ze1}1p@p%4<6rdn`iKnkC`wKQcVRds=m)-M$np`|x978hhy`6D3_pyP1+kFW=m0hP& z4IH!**sBA?&y_7?y~C(2AP_f2>d9)}B@=EkYyMYQmLhZ_ZW{jv6^}n{&V21^oKwA) zep>vdbZyHL`>heC6?0^|wemM|t$CrU+7@U1u;_g8BGxrlK>E`5o?lBJT4j0f_}5eS z`$wtzUcO&y49)Xih&fHYbX%f+_lo;Ab$7GX)!E*fhTLDzx9t6|>he!tw)EUGdKGur zR-IvU-TK9SR<}>QX;l8Md*W=f@>~g<2Zr6hj^1d~`8QYcf42UYU17DG*qy%m9XRs@-6uGJB&0(+8IS%ik2*Y!u#LB_EXX-QmV{X(z3BCsM_OFWiYZ zU68P=aPh%}&F)R1&c(rBr)W$sNMN^MY<@W5?ys55Y{I%re-&&_S#Z5=*^e1VlQS|R z&MjtTugbOHu9&kY{rREY79S5pPK)*EV^mj4|9OGAZPLydhQp2gw%r|*GZ)@*{-Tz( z^nd&Hm*)1p+EY*cKOFC4p|s@evz?s4B&J&88c~vxSdwa$T$Bo=7>o>zOmq#*bPbI| z3@xloO{@&fwG9lc3=FOsH728I$jwj5OsmALVM)H_eV_&nxD6$lxv9k^iMa&`JtiTB dmR81=R;H#9OYU~3UjXW1@O1TaS?83{1OTF{Uqt`_ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-1.png new file mode 100644 index 0000000000000000000000000000000000000000..e48ad79298c6e13b4296e34a13b53acbae2d7c59 GIT binary patch literal 6857 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/head-2.png new file mode 100644 index 0000000000000000000000000000000000000000..bf1903f4bcc911f1c41ae013d3a156f7e752136e GIT binary patch literal 6466 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 KVN+t|6ZJn^tZj4v literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json new file mode 100644 index 0000000000..9d2654d15c --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/xion/xion_monitor.rsi/meta.json @@ -0,0 +1,19 @@ +{ + "version": 1, + "copyright": "Sprites originally from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version made by: DayOS (https://github.com/Day-OS)", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/groin.png new file mode 100644 index 0000000000000000000000000000000000000000..29ae064b0d64cb554d41e5663ab8f75afcf5002f GIT binary patch literal 5522 zcmeHLX;c&05)L4NK@A`eL_mo_QGu)^AqhdYuxgNfSLt**p@A$UAw+bP$KtNIATEQ0 zBQPL{h=2-iAcFgX3yy;@DlQ|U2&gy;`Z@s>&zp1J@timR>^`0DTes@FRo|^!w>xVB z1AHbLSQwyCsEK~QoM7bcroQyi$Zr{(+=)Wzx~7FjDuRJjtW+iuz)28Ru|x`CAr&k@ zp;W&=kBpHy%$hJPG>y`pq~9o0?Xz<}*DvP`&hM#`6!*mZk>QMjYT5jc%8xgXwe+?p)+-mTCbkV0+$mGG ztq*$@8`mu(c30(wG#%A4Ce))#!}mUzm3~d`bl3D)8qa<|qpQJXpK&IkaQ-^hl;HzcEvnw5a>&2)Y`g?UR1ZwNVZP*g{OX(&5ah~BuH-BMaj0{O`xZ`_fJjn_vioN3n zuDw3x!s&QS{3=HslP&(i(#&e~A(>f^^<~qgrSrBp;JiZ1s845Zi!I9C+q|21yNFpD zA9SmXyOc|d*jJoTQG2WN=u8F|E{4l1YCES_>(qhDv+13BIn@45qzl)Ad@O(Dy}!hU z^7d6G-&c2`Hv5h@?&SN~>S;$iN;R(|;06rIc^ zChJ-=k2Op#ymD94XGT5Mwc*soSZVjkb9a3@=Ypao=DSu^J^NRE5P15jqj0p)o zg>B*Q0nky^9hzX@Qz*|eT6p=j zTkKDTk^a$dEDk3J-^V58Bzbpq2e(h__hGX@w`!buFDo%Iu+Bkm;!FEAEv?SIy*uEW z^#g~lZ8B+F)E|{7Gxbf4^&Y4)(BIFk${1&|v2g9evIeUKE*^hW;4^g(+HS|PQCgl? z=vG$D4V6k8&bydSaHg{|CAz3d*V;1chx7HzPDJnsCZ9a7f{ zhlegN239q0uB|iH+89_cS~pyT902w zvxz$1F^o6sJ~n9a^OVWk*Gp@x+)|vP@a67H`72T4_uAf=mFJ(KKR{MLOztm9o^hR1 zpWpnk-De8}&(HpRz@ zUwLl(iMCr^JqhQ03>8fD#?>}@7JYh)PS)t0Xt?H%R=gyJzr4NKW;{5p`*lWJU-}|U z#mUeam-UY+GIfsDGsj2$pp(ZbJsRrz_8$Cj7Q4JB*(1nms%?+nna8Hx|0YJVuQfS{ z^TJE3~stY%E+I`dGquzVjx$ zy4nMU(#nQCJp=tbJwKIFq=4rCxY@zi4ZE&4v#d__N3-<(7Kko(G z#rddC;XVJv_x34qZ??XQju}5yYq-6kIVEQ6VEVM~rUDjxA?qvO)IFMT#yWzSf5!bv z`%~;1Wkie1WpN~6irPItjtfpbK8r5_VLnUq$fHwf01x2dK`M!ir&8!ncz`Kz#5+YlCKF)N z0fy5Uhy^kj$x0w;tXFC%J_1FfJ2Gh$8i)rO3?2eS72p{VkB%pisC)*A#NgBE6b%#~ zWO++uA^@3ASOf?mqEsx@bf^huxd-~W;3x#r7fE0epb#Ji$Qppfd`YVOOIIi?f2lkN-4k@1&kL?de|1WF!hjWm;B&0@l0HOqnpfFmKu0VTxO_=#YRbb;}J zSO_8YV>Dqu$>G0A1_s@cN+*M4Jdebr;i)7V1J4AICY9>MVA5%1h#>&JMwd$jic~-b zxeE~<5w4H~)o_KKJvvo$zSd8Tht%_cP=+Tl@M9>$5l4e1sw>8)XxYU7;)AVG7*k>p zyAc^ux{yjp{9Fo0`BE31fAAQchktMc1p50R-^A~Cy1vu(O$>aK^7riePS-av@J-6! zv+Msxm%*2hDM*aG0i`0JO5)`<#>i(Dnm5mfgYws$<6;aE$q!QBC^-s+IitR`w%KDW z5uu*KkL#uPr#^ZzifXAVn1qNL{W$KS$RCiulQB)$32s59_1P|-n1(CESMTlC;m0{S z?zZwuaNbl?6a3*P2OK{s*I^?9t2qvw85A3Bre7Vnkv6BfICtoX;qe2B)sbNf^?{{_ z9pqXkWI80g+y-0 zlN0vtl8dKji9%fxJnV6zUADqHaQ&)*&Kxsw)o^i8;?y*G_|ONo&_WA^k}?gS3d7J& S6MR>zA^f}oI0ro9GX4YG*1?d8U7c7V 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 W*3v=I13XwL#NOJ4RAsq6?tcI=B#w&! literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/head-2.png new file mode 100644 index 0000000000000000000000000000000000000000..14e7e83c2fdbcc9c65205c02ae586db287e21ed7 GIT binary patch literal 6535 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�RfRxP1W^z-!hr^1eMr5HsEIm~w#z7kLUEp{g|YaMgxK0;Dk_l$Uf@NSZ)&v5-t*OX658v5!D{2~ zyi@ybkePvHLKiIF>yz%G$1_u}t7 zI)35(1NVinlXri|Vh4zu`M`=DC+0unEtpd0~hw@vFG`?L%r^a zTQ9|F*+SUa=8~1Smo)_dt80cY$pvsA@#Wcai-M8ykkh-jh1rj+J1vRo z&E+Ln4!pP+cxbsKF=QEx`!@NDB{V4H-oXUyvNLtQvD4^V*|D{J0z64Skv{4Q2&mYHVqA Jb@!pr{{fFOf4cwx literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..93064d56057e1914cbd90a0c7481a5dcb173ce79 GIT binary patch literal 5779 zcmeHLdo)yQ8y|*9}{Zjs}XYekMRv$10?X2uwzIx2|}N-9n&A?oCo zpN?GtF^xKUwf^+XYc3zJ-_#Pe(&?X``vTE*>Qu4 z(o!WD45ngdYvls{noCYaIp_-Wz2Xjo%^Qkv+bncpgduo*u0I$IAcWyO00D?We;7>M zHR9=&_QddqnE=faIc0sh=H9ace}$6iD>aV!YmPi0avLA0yBXtap0p#mzi{?lcg@d} zH<~uso?dZ3Lv7l{fk+ZIh0J#C>`0yveCQZg`e1f&|5SXezD@JM@Wdn`5qevpjvWI+gmXQsLv(Jj>kSfO@OGimCZd&muwD{U)#P%y^zkzMve} zmTH>C|EvA=*l4Ur+rdCvW9T83FD$%*={65Kl$JZyblN^RSlIv6sIsEE zB}uk@)61%8A8bX*sThL+r=Q?R)=^hr-K2;f4)w?QMabSh$UlW;k+g z6EX%~uimnIFVA0|L9u5+bwhA6W_+V;&Yk>_g?00E8JP(W1e8#*=N(V z>bWlQVE&^rgxadUbeX~*7s`Z$Dw+=trt9u=iA&62iaKLm_0>1VF-eW;@Mv(8#u;sq z{;#n#zF7?_@cnMDX=DENQ#;hJw3X8>*%6i6+C{H5DqPj-hia$Xx30aF`e!aFa=h>E z#D|30PMetO-RF}7&n;CX`fF_kL?_Ibjvd|Z+^^zg)lNG{l%FkI`D9r4=0cvu@6U+0 z_*uRg(127erRdxo4&I#hEaP}}yR;>M!pjCp4Zl{sQXrTN}K4!+jDp(x#F zRjZpGIQ1$o`#LVCG_RzKlDVJBUi7L&e|}JOU%Vcpj!{nw%y-VVOx9Vz>U#dN^%n=# zBCQ?4hIU;(Z@Ss#q2m0$+wh+}%d$sQ%j_yw4wkU@*rWPO#N=cm*YxZrZk78R}PXdZ9WLZ{@)!!pzA%W-QO z4(YA6Y)sSWwY?4Z*qTvP@()arg38uZMT(M?8;& z{YWbUc3;7C>*!M%LGMYPWf|j+A)oL;ok+U;B%|2ZB<&lD+3)XzW!qXe6NZktX-#hq)3 zKBI$ZouySJZ?x=c@o78vXZNm1nmw)3w)wqoO3ad|_fHRwPMOXS?P~QXlfN&iDss!! zO;vb(_XePZ#cg#?D)tE2HwT3Zb>lM55R;@+2 z8hE$rzBNf6Mxb*ybevx{a1{8hpm_~`rNV-rn+eWOB2xa4(K@#lQThI*vi!6#w0Mbj zL&xol{hVB#!Ju+%O31VDq0OEIw)T7pnV@x^zAFmmki9DDD~P@o*DdC_P(&b%FgaKa)>$KGr%xr`oL6b zU2`>W>!bjVp4`PjR3$bgWN;rwwzcF|b|#C)_J@Mh7p{d@jjHNO>%1F-vgD&GJ>>A4 z9QYHrcpIA<0uIElDcJ&6h<9-62q*;&-5*^GRqpnKX4}IK8~zc$+TJI?^4PYDtO?Px zmr5Gr1C8AU(?67fI||Ik&zohI#U7meZLd8>?Z~q8%t23uzHWSd%*kD?)7RRa$g-&c zDj#HPtm>lDl1R^BFqsvgrKPi-rRArW9`vfq$UJmyW397B{jLix@q^jI1^a(cRbA{o z+~247gRT-W!8ddxck9}f*yXElkVhTfFldU=Z9V6EhQrS6*|VjRH@Q=%^D9<`71#ZS*ywr8)8-!>tentS#7F{h{RBG3AdpJiXoADA^s;ALnJSsY0x z7-fkJU$(?|7RTN4dc02EEH)G4Xfc*5UUks2S#&@C%&~W4rI)v8uUZ1{_GCZlIJ-e_ zzdAn0N~84b0a~t*a;SnO_b`>2tRJ5Fk)Ns-RYUKxMPmg*KOpTGL#k0 z36WMATxjOfK7)!Q%P>#$q;4vWtM3n2C7|W)L7m_yGYRhmQQ~_iIQ5 z$f6@Xi4GVCo+S_n+D7mJ*9b>9W<(H^%0il%Dw&9B5CIzyG7w^RFh@WW(~(kM8gwr) zqmc+HL>NRzZgy}+SaSIQf?!NA#-Oalpa_RFRYI8XS^hK^E1QoL&=VaQC=~K&XmnUu zm~j~1n9C19W2sas8iPaQa3~0Y5`=Sv3^9r$FpyBpaaaKYCLiPpK`sX&;bi!6LxprC z5^6_$ijU26aQIBm5qwku(gQ7K@X%Oe44TbGf9)XM`-Xh1&jIFpBKsxmZrmEqJdz54M7D^uh_qJxxvoC`Ll;af&h@slX^j7{|zYw z{lAFyx7Z{t(saHK1akk(`#1Eb+@)X$<={ZG;xa=e;n`Wyk&^ytEG`pd(WJLzCI*Z1 zBU4c%e<}t=AQAx-gFs=Sa5xMLOQhm)SOVrNDm#uq$lx#m2^B>?{0OYW^VS+DUH;@gu3K5lHP&HZ)5;O$D7DLFeVh90<6oVts zFccbw4TTlS?A1*b`%_&zPWbSG1F&LCi zCImt{EocnpTnYk)2$<6t;+kt>1~NDS0JMI5EZ9$W@E?kSMIvA@I3@|jB4Yhe1U!j~ zVo)$l6p4!UV^SzA7M47h)n|4A*IyXM-~;OeARQsCpaPX@g)sa$RI8<`ea43c0+Mln zBtu~+s4tR{k?4=fq9rTFr)*8o|D}hC6!6s&1NqI_prs313DKXI!jF1EegB)s$8q>K zyFehmck)g8ewXXJT;HU?H-W!b*LS(TNr7(yf3L3pn_Nm?KBfQ;v;zu*K9v%Y>EY04 zmaL!s1}oS`lfChk(9?XL?G^zHrdlUCWsVrBYC}c^p`C-Z!l2^3C2}h?|Jc(HnIi41 z*1H8h8hKEpUX4&R-z1#>wqX{YUEBua9O}%r%~X!yMI8OG-BAv7hW-;S$*&4Y3RXkq zoGD1ldw-&+I46oeI2u(ta~$rp01t27^W*VI&&TC5`KDNi8&-H&)WCI!#TIq-gfc>|rvuW;QcOkm}@i?G&NhtP|K~{HM%O*qT;Rf)+mLIWnDmHKP98z z-LKYB<>jkvRz}p++fDa~e;KoVQ_Eed@i+}LdO`Ogf> zIHg06&t`UQ`@7q%h4=5ey|$d<6i0O|Q~B-1L`~UnYu){moX0gc4uuVFK;^y(D-b+< zV_Q-gSkP}W+;da^#5J2PS=Hg4xW}pQx)FC*PMYZ0r||5Wd8$3HE%3V2F*JHz$*XR* z>iNf*r`h)x__QAD=p61d$=YXWGHm>Opng;1@iUwDlo@>5J6Ll(W9ZiAHw!u+_RsvV zA@AbrpsIrL^Rm{a^GTKys zVyW)Oe|*udfxy^Voy((*i=b@|#V&|5Cacy%%qq97E@22_8{L#mM!V#^9A~Wn z&SUO5Z5NI=p`Xax@@Q6?C0}=z4aJlbo1=Saab~IIJPR7prolTzymI|Tf6r&W{^BgA zq4)IL-urxnn1>!9^g6wv^+sQ7&cwz`aFVk>6ch~>yyY9xF(|dfHz=oFGu3MoKJoW_)MHHJ4+qzvu6C%3W8@a=1cGfLB=Umq@wy3=i2>zk4mZhUhUpwrJi?_5on z-?dy{*G~S_RibSEZ0W(P3#dCFPwt+-p!=1Wth?&!x?29qt2?hKn|Yv2Xw?|z zS*+Jpq}QO^mgv2sO*eb6DItcOv}{*Y(n+o=Hu>ZZ`di;hYf*ac<*p@CNH`1`P~TfZ zudAS*Y~6I5_&bLwa1ebC;l^tFa%~_)PeHU8Z ziyp@n@Vk622la()%bLsX8Co(ew6uLAi((OxyGLGlsDH4?wCP zXL-kWoPvzEk2f+hUEB5ispWVJ6lo79bg|Tb{v5)rc_ow{Rv$pu-%{OnzO74nGB$Q~ zzU=*`=~aWbB5}1xON$5JIu|pO@>(DC$W<@S=RY{*8Xqu#OwK4MN?rD1aAUflKV4jK zwtd)fkL-x~E4N<`5^aACoBO&VzV^zl$~8|Gm@M3J6u;E1H(6!9+r2!jA^v3QVDHsy ztIe&aX*aJDKYN(&X}R6R;WT5))%2b842YU|gRk>AnRm*B*Z=a+yz3?}Pry;Np(Y? za(AUJrM;`BY|^66X7Aa^I3k5#qhUh$b?L`iLgz`vb^u?>1?^N~nfi5#a9pU80lW|p zLUX|&p~MOE=4K%VE#y04R*_hEmdqUt7J5a7{ZqQd}U5CYID zu}GqztDG9RHN;{>4om3u#BhY9x9Nr#hZ;ypFu!?XA1gNkQg_Rm&1cL!8cygf( z5=td#H73B7hC)sl3_Oqi5}#PcVvWH|6r(J_eBe}o3`elTBMb%^4d`zz z6h81*2hJN*NJHg3&?5|#Kvv&E@OfkQvQW85lMbJU14W=1R#m`W34d|v$z-v|EYuVP z3B@vv6-@SDG$EnjD_MVuO+BMY=i5MF^D*4NXn)CFqYP`YSagPz7pe}A$#BA`{nPnU zo{&%1Jd!CiDwRwWU`aeY5liIR^RQF_6~vN2kjKT_Q@At%{~IW#L;(R39;k+b!R>@F z4wuh$pb794tOJ?H#}XYtE*2m=P_aaiz~|D)WRigI@D0Q=xe%^OK=f@?YA8Mo#Ut>KLIo>o_ec@@kBb2jD_#`Z}g>np&wx9#NkrWg_7&x-xFxJQvFBp&nfpGsAE!Zz|;olSknMxGclZXT? zfxvUX5@{q5OC<>eSS~=NaPfFNp9+kSH-@f|3LqsQ2VH|;9$~KF0@ZMZo;$i!^E9lD z=_`Xl^*X?mVewS#SIQ_D+-R~mb;tOUtt0Ng_;A!HeA8lJyAc`Oy5LTT8*7E5e8Il| z$=~QY{F5%w=pRnLi{Bq~{h;f+82B#bAJz4PuJ2;tyOe)a*Z++!)YrolD1pC#l<-k$ zLgOtKe9S^}fA(Y`7CUZ@&xc0_GOyJN1j49TeQEt-Yh(@!^&lq8L$5<$cbX2afBgCn z@IhCX$#C@vZtZ@Qwp82I_)hQV#1DsNTbrEGE}G0SiPD|2B|>Cz&z~_B6r|} z$Lg?;sngUBtimAD`a{;S$DalcH}l)O;x;slL+YcW5lEd?oxR%!GAC$H3b=H|s!r%S z83PeR{qdC2nBeTs^@|#2`5*kWFTGne6!LlC&&W%gmvKU>O)J;0vC=9%hWulod7n*QmTc1U6ey=E8hP*ITBZ)kUtU1a?Xz3WcjNYnd;4?q(iqv~FO>kCA zH<=`B%fPRinD|>l+_k5rbQffnb)cwN$FyGduXk1z$D+Lrb*XU;`OR0~uXBBthtPz4 bQafR*5h-M*;T%VpBm~oADdU10XUl&8v`5f1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8fb9ec75e2c4986c643ce9db327df05a65d589f5 GIT binary patch literal 5646 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 i--lImWLj$a+~2q(F-$A|4V4qh(2A7!4;P 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_hand-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d0660f1bc15769051dc7884e65d25dd1e40da746 GIT binary patch literal 5434 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/l_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4ce036704ffc199c011e4f49040c89f20854d628 GIT binary patch literal 5949 zcmeHLc~leG(hp%BL}U?B5sd)>!K@@9iA44#NEisXuqbqr4n!acNr2$Oz6ygNvMD06 zh>C)OprVL?8=^2c3Iiw(132o4;)38qov#!3^SyK4@tpVmv-@>U)#n z>ESY0eX%+W2AfNFb!0-nwz5l21-c*QMGV7WD*xK*vr)nXq7g!ofXfR55t0}ohybNL zE(|6eoY>%7U}389E?Cdkp01HNjLI=GtFYQ>VyrJ6a#P&bGuo+S@*z_FQ-%NWy2Czx1iiu{lj> zvr_#Xw&TMU{i7q6ei?Nup6BiEYS}?qYS!uu*1YeHeSBwh*XWJv#+1>#*Y5il6hT!xGkG6K-epv7Id;ES{@WmgYGS47zF-ec!hof>FjC*M4t_|kY42*N%lFU?>d=$S1@646{0+YKkGIqqxZh-*;0)}{SQpy&?C_=&YiNQpXZgZO8#d6h7izg@k`3;i zn6n-E_}V+Q(}+ik{I}<>DW^SUjFm=gOBsA6wIZ>q^_!Wy)Sh*`J-R=1nlpVnHIQ+B z=>5+ROx(e;emCeic~`?6PusrxSd^hx z?nzwU4IOJzHWf9aveX2;c?6%fmb!p$k(l35oXtBLVSZ=CnC?-V?xwh620Cqb!iMyG_e zelTn{Rbnz^V5nZluXHmi-F|}_cd*%wz7oT$JvO)Y_ z#9otM51uhWDa0+CmtI+A+jF!5{mA?9j+D*z_lV4ngtEi}Pl+O>gJ5iLTtLEBV3AKk zmCln2yWzh(H>#DZy?&sPd61xcad_TCz)o3taVGFvvK#h6(@E~Dyq8bXXA!4GDg0cU zZK;op6x*by+u~p4hEwCS0@_Cm`&hj9GyCzd^d?1*L5EV6b3!iT(4S}-%82y^srd%Y9 zG=nSO?OYoZqY~gpZso>l|G{CM?h`Qo+Oc8yw%A+v$(~~7>zccmp~;B& z=3&}pfo`?C>D0bbn)ZFg--jQtQvCnA_quBOpVu)<2PYp{NB6{$yK3^R8%J95-Yzbh z+-DjCH#whlV?(%9wYV<+CmV8)YEb*?YuoRnM(4ayFPhZE2P){sN=jVi=oeAXayjLfqoOsa<<}#mo;KMNZNJK}%LEyg zpEc*=t5dfNmBL)rvNw|b3m!*m!FewB_6Vmd4m)sKnt6fQ7t}jOrj+mrh=htI1NDdX zjR`mB==AOuS_V)(Tc0E^Yq%O#xV>MuaBRZ22hT&cUcnD_*ZFY{u!p;QcmI;}mm`Ua z^DasiJdeE%1P>&-<(RkIc$}^2=(~_PXxMT`n7XvbU2|x1ulA;%v4!^*ZHPiI^G@og zoe{y=UFzwS<0DZiOfyng;vs7qvJG>v8f$dz&_mBP@Y)Nm8=bEO@C{0M6Dc#!#R_*l z@lpE~H#9rNDo5`6y-|6`>O zG8SnhDDFufao)_WD2ig+PHlk!#C~x9lFfyT4R@538pxprC7zdT-_(%mNx=gP~qLs#mkZYdDHP- zhCvVMg&Li?=Lsp>mr89a1lQq;r){74HJt8SO5d3&PO=N5BHn(r_WPY=Ob7ZKOhg9STYiEHIeI zry-x6Yegb>92#;1k%46h9l#Kt>sAryz172qy)~3g;UI0+s9Q^^5I{I60T9ygFus^7 zr6J|GROneI#vl=L6-g)!xslIaI zB9REG7)*3@G& z3=?1pA|*5=5^6_$@-JM-V0?z>i$Age@qv*7LJSU##e|1rzP1ocoT4C*j}HA?3$YKh zy2CI*u^>{!2A!fnzQpKj2oC$Ry)aS~CJ%?h#(-g9IHW3udc}Ryr3;j)2YM zQ00#l4w=ouaabrU8|0!0Yyd=&DP#(Y#RV-vG6^IT2$Zj&=zOsR;Ily)6aEU@$wegz)+!ZAZh_wra}O6ITQ`mK?DL4fyhT72%{loP9bELpPL!bgyH}az!8vu z5GWQ;pkm2XEXfB)p<=D5cnS&&Nxsq-aCqF9|D-LOJ_zd%gYL=`L;c6dMIYvrHyH8Z z?ZayrPd=Ft2>G<20_+bVh=C}OBli=+`q0D<0r?b+z-z5W)4Op>Qcodt0 zrJx7^9zanz1WOc&U_~ZDC&K9|Cee94N=|M2)Y z4*$a*Am|^Rd>6kz==wp|cQNo?%0IH}2VLLAz;`MC$gckyUFu&pQy?E&0YyVwCF6Ao zbSlzp_+=m>e5~RP!u82 zNxGw*5A@&h;7PqCtcFvs!0#aq-ZFiltwqJtZeF8zm3xA=iD^tUER+3{RiF-JAwR0m zZmVf*S{-`ZZ{NAJz9OV1u7UKT-so?J_NExtpQT4<#Y{)j2QhukwLHguarfZ#rmGQ$ z_w2s#=iG%;YVc1eu!ntm=nIOypsz7~s3}D$Ke%=IU#sYa?YA-(+5V%Jz4@0nmu@sy lyy=Gg{C4p7Wm0dEft%YnfnyM}y% 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json new file mode 100644 index 0000000000..bf863d580f --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/meta.json @@ -0,0 +1,95 @@ +{ + "version": 1, + "copyright": "Sprites from Paradise Station (https://github.com/ParadiseSS13/Paradise). Monochromatic version by Timemaster99", + "license": "CC-BY-SA-3.0", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "l_foot-1", + "directions": 4 + }, + { + "name": "l_foot-2", + "directions": 4 + }, + { + "name": "r_foot-1", + "directions": 4 + }, + { + "name": "r_foot-2", + "directions": 4 + }, + { + "name": "l_leg-1", + "directions": 4 + }, + { + "name": "l_leg-2", + "directions": 4 + }, + { + "name": "r_leg-1", + "directions": 4 + }, + { + "name": "r_leg-2", + "directions": 4 + }, + { + "name": "groin", + "directions": 4 + }, + { + "name": "torso-1", + "directions": 4 + }, + { + "name": "torso-2", + "directions": 4 + }, + { + "name": "l_arm-1", + "directions": 4 + }, + { + "name": "l_arm-2", + "directions": 4 + }, + { + "name": "r_arm-1", + "directions": 4 + }, + { + "name": "r_arm-2", + "directions": 4 + }, + { + "name": "l_hand-1", + "directions": 4 + }, + { + "name": "l_hand-2", + "directions": 4 + }, + { + "name": "r_hand-1", + "directions": 4 + }, + { + "name": "r_hand-2", + "directions": 4 + }, + { + "name": "head-1", + "directions": 4 + }, + { + "name": "head-2", + "directions": 4 + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-1.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd612a5d335c7cf85b024c32acf048cedaa7591 GIT binary patch literal 5824 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 SXBDQUaGI5aWs$j0%>Mv~8xZsW literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_arm-2.png new file mode 100644 index 0000000000000000000000000000000000000000..69be000d9086749712af6c7668eff6fb67a2e28f GIT binary patch literal 5666 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 L`7-idB2xbY3SFu| literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f1b5121d0dfa15be97a9d0b789cbdb79f3ee3e GIT binary patch literal 5688 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_foot-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d5a6fb2a71c8d05ef05dec6112a6deff4b07e97a GIT binary patch literal 5256 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_hand-2.png new file mode 100644 index 0000000000000000000000000000000000000000..e8d557eae814aea4780a8c08c99b2c61373cba41 GIT binary patch literal 5349 zcmeHLc~leE8V^eW*&ZrOMTHPW3L3HyvO(ApLJegvA|R8@Bn)OV86ct{pn?c$ai>y6 zcC9Qfh;;!G5u{HM7Zj*~tcokvsx8>QNkGN(dd@qZ^ZK93nPlc$e)s!+_q*TCO;&)v zkAbeaE(U`!VEcLnq2F%GOGgX+JOZ!o!C*B1ObQ7{f`CM{iv7;|(1vXfW<08L z#ZRPVpSG~d+7l^vk(PXK=ZLhfjuyENX4@5O| zQeF;jC?r>A{Yeib=!G0Gj>@>p!Xd*Y<9JDaBw1`bV)Le` zcj?fqls^s_x9?YXT6U8DBF)C(2gB<1L46tioo)IJEhfpE`}6402e8;@{Ybr?^YM81 zF}s(kt>?{pw`U4Y&WgfK7!R(K^lr=i>RDjtp}$VAZ@pdAJm%RJWwx#C!FaRKw0qTM zyNFhu_&U@06|GO*D;qcNw^yr#Vz0WD7yNd%-~R4xjTL~!z=P91M{`rtnv4a)_WrIX zn>FkgMWh+eFLXbrt+zPT{P7#>`l4L*D>J~X<_s3;UUF8qkhSz~hwhR#oxm*trem#T z&z^Uh{oC1u>)gr;d!F60!GJc8vED;}v)9>lJEse^$enf;H-<%3-lI!UmZbM%!WvfaN8NLwwI=}Zf&&A@-^L!3ym1gKR%f6=wwTUIPTsj zj+j<->Fy0F9xN=`6%kR=isc;sDGp!L(GhdPUEbJjpk5I_`b+TM>+(C%Nl!#E<2e*? z@K8|>v#a>Z>Uo`16+Jg;Q&|x4Y)o=ymKJpIzRh z=h)@@Q$bH)WBDk@8)43D)=v%eow@l(&r}1>w$4DV-(U-a?_&*aGRik@7B2PC*C{n& zFX^e)LvW)l$$GT~57lUY*vT3WjW3i{oj&g=N}6Ln_n3not6Y1*curhVy6deYcc>F_ z{U@GmFYNVeH;-8zZN+_7P*-xJ!sZk^BX4*0)#Ut)hY|8uEeL(OejvQzgv7;cW|w!t$23(ae-H%&?!&s<0h*t+#V?t?jTHrTQ2 zhtD|m-8L?Wia8&jC>X9oPFIr8q^XzvR<5;+554J3yl|`_V(quJnkfT180(YPF*dGR zYbWY@GDg(8iI!Jde{l(Yw8h(c-B`=-UH(H!PT)4Xa z`p(ReOGk%0J2h@4rV8z~`SZ#w@9$rHrq*>!it*bvlNu-3MP3S;x$&Ria&zJM*IWBb zU6xl2no_Iksz)`-`ptIUuZ~Lkrq8A_#xG${@kE++qtBU%J7FsvChq#}r!}0@xEydw zcy;jc?4FQ4Z8iD?pIz1A`I!;g?d$rijMYPaN*S;Uw!u9&GR;XC=9V9YE?P}osy5v2 z|6+gNA6s+>fJQXdys>^m5B0fSN71bcc0usuEBbwafN zh^7HLVP;@wPJzGg{pe;I!PxBz~8jX@dv6_~dAe?4cP2_6>@h_r;y`4VKxV z+Gc{N`H^3^Ki9a_*}!i1_M2E45j%6BVYO?|y|urb*VvepcbI>NUJ$n@H^;kaSwiT` z^B1>U=ySDzth^-Wntd6M-kizItV*1DU?}BjTYK5yGA)HyKcjT6>6q5o%hD2gkB#B+ z!eXO?v$xMd-1~hhf99kNL`uW^^4u5vkZ)r+D|?gS9;baK2D=qo=*8vcLwb3O7U$Q} ze;l$~b#G@q@w=O0L6K#Q^e^`q`KaT-kU)<)rnr-F#ru43q}*z9ef(zj;EpSy>I<6H z?E;|7i$b^8*`oD1>UB{CfhV3k<8_PkF+GAlzg6Rl<6~a!d>OGq zZ@${w?h8%vD|Wt4{ds=O1NL71E4k+=o7PzF>Ke6f&mvCLcDVRkrc&Z-)@jU} zr+!}@sychFySKBuUJ&v2E#~G6*|kNZ(O&45l>nn#Q#fZClP3|`1E7Qp*(*d+bnC)k zoLv=CfVT=luv|z0i&?m5XX|lT7-ZqTb>t8^Qcoxr_DzyO!Abrhyrfk;28eTY(REfZ zQ2-Hy09b`cD3&u7ESw6LiQX&41RPdnf~;cU!Z`t0Pl*h|QtT=AM7*~GP9Wo4bg|Ad zkk1VAS~>-RKCy7I2qI+?2#JY__K6Pm5}ANNVlWs4BAGxY<53H|e2o|Z6nL?Gff8a8 z!wZu0WUv&0C1R`+6W~hX5f%=I>ap+Q6G=Io_wZu*6bmRH1O*@^knD*Bk%%zeLymYS zpdeEL{jG;Q1l{2YL6BS$FXKVp36L0BFdYKqz4w>K%Y>?QKpp`SLL$^uj*d$DXhC6xFj|#>aC%fqC=i7r zL3}C=ph9>$iO$7Shz?{tokC>biH=G!mk)s;R|N&~m`f!x5r9r7ECK`&K`Iug6iULG z?g4BTj%-i-APEox2p@Go*8nUAC5iG6st{NN1tWlxPZEtxX3!n!6f%`ar8+P^7==MH zIa-TKR1(qNfvnOfCx(fpgHj79D-{J$$o-znPB(e~RM99J^gTg93->W(3f&u{q z@B$DB1tpRxOd_30q=t|fOcIevA>oOrWSYGMg!ya!m$h>FV4Wu?-4~XltLy(pm+ptd6eLD}0VSeGB~O9X z67-m*#r@jH3*)DHYp(bgDw!emT`tF93@<4!wcU#i=b}Pwgw65RexRderfWBM=)^cG z3T1n_hoJu-wjY~ufvB(PwpLs6$}@J+H$Nh2yVPhIXZ^7Ue9Sda!_=xHqYIORM;1nf zCNF$2JaVtc5|t_y!NUiK7M|}&8ae+O@jwMnf5j|~HuAGg3vE#9+1~zMl^!wa{{aj> B8rT2; literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-1.png new file mode 100644 index 0000000000000000000000000000000000000000..effbab2037d55796d60576cd062c367f5bf0eded GIT binary patch literal 5899 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/r_leg-2.png new file mode 100644 index 0000000000000000000000000000000000000000..5e22421eb82134075d6f36cb60830e06ee559ddf GIT binary patch literal 5805 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 C1^B!G literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-1.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1480d69865ccd73a96c70d51b96a6183ccb392 GIT binary patch literal 7778 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 Y(JADo>XLce*0x?v3@uP4`e)An4@LUZ-v9sr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png b/Resources/Textures/_Shitmed/Mobs/Species/Cybernetics/zenghu/zenghu_main.rsi/torso-2.png new file mode 100644 index 0000000000000000000000000000000000000000..d6bffee42c20514207568ecf65d6f45bc958f939 GIT binary patch literal 7157 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 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/ears.png new file mode 100644 index 0000000000000000000000000000000000000000..9966cc2ac2d83ac43d9d69f6ed1be7e72a3eef05 GIT binary patch literal 418 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 A^#A|> literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/eyes.png new file mode 100644 index 0000000000000000000000000000000000000000..0fb6412e1c3757aa7e0c5d39147b7656e49a9dc3 GIT binary patch literal 1047 zcmV+y1nB#TP)U_Z!1?)S_8 z`}uu;|NP*nR*v9ahUK2BKLEI|0W6ZrS|pY2ZE_Qfq_Y1DfG%1VwC>;Lm6O?&sPRlu z&-XUD>-t;O1fYwy9rDWnYyhx-oA*XCn-T#m>2+lwXZbfm!vFxF?T}yo?c~%NK>*OZ zH^=7BgE^C9^#eGfiLm*Z#xq5YXNt*eN{sOSoUzknHsy@)e%T_a?5%^7B6}tzKYBVO zyGDa@RYzJma@P+{6qY6m>w4WoXrc)E_Za6PG*MV{ZH)5}V~!?@@YHedy4qHbfU2~L z9nnO%G~7210GmHM7r))@ohhfL-9rIcuUpzeVgAUZsPRmGjjjJ!-WK8gb06U{rH{Zp z6p(*7k)mpLfF?@3yQhbAbas*FdU^;=l(62t-s!I6K0*^ksN#U}xzK*fx6TD?wa#14 zOrP4Zr~g&HU4W`CLDMws>JE=R^uk|w_QWCpU__d70AI3v7Y z9+9S;okJmc-Jt-|gA-0OfYn^&h$g}+4g&z}+Ml36Au~INC;fYH{qhyiHX19qg{Ox? zvbqImzM)}u@Z36a17OweH*z4}-hXt!C2}Z8*YV7zO}O3CjNj82Q7kIRq$Xe1cxK#C z&qjE^JpHDmJ}2SIw`u$`JBRP5&K@(?mxlYsEs`4d_(B6a0(-Ht zx(d<#1U$abNsFY0OT&G!O3Ta`6-S^$lm)^7IsnX+-MQ1f`qtqNw>K~#`ns_4xQLqq z2R6TeM+y=$-=t9J4JC^oM-SBOfVn$eP~({x^U0?$&Rx$_psfZ|pT7hc?lqQK#& z`2ws>R+ReRdA|(nsvE%Q#0KdZ+D3!x+zqy{fZb=m1e;%glY0!SE2{wT(%sIlI)Ylj z^bzg!2FEwX*h|BGiwy@bhDB22UHe`cSYBENfHmR(-UIMK zHHiNNppVCJSplF!yV9GkB^MKWe?P8>1*r_|N z5fk63l&EvvXZ~Gt=-@&IRt*P6E&;|MFVkZk0!(|pJC{3XvQGb8diG8N^NTO}Y-_e| z(RwZx!H|{L6Zu*<|Mz_*m-PzI?_@ofc`f*9^=OaTt;{f*s|NA>;1wS&I&Ri$J70|#WQeg3b_0?ki_J51FaR7b5;OXk;vd$@? F2>>CHVJ83p literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/heart-on.png new file mode 100644 index 0000000000000000000000000000000000000000..676a641989a8a0792243f9bd7d4cb4f8f1e87af0 GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^4nUm1!3HGP9xZtRq&N#aB8wRq_>O=u<5X=vX$A(y zxt=bLAr*7p&f3^{*g&E+{y~|=rP!&*QpG$TbKY6*JCW6Tb2X1ZQ*Qxpp1)KXwj%EDbW843Mb*KOeJAm^)$r?cD2zrt#|?Pal2$Sx~j}=d`QSRTOee z3dR4`%1M4W;~&SEedC|iW+I*=EHq`3H_$|1#*Wdc$6kRK=n<{r&enU)nE)d=Y~x*d+hJ6QtnPJ9di& hz5<}2gBx^?o5$$Oi@w&$wB}C literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json new file mode 100644 index 0000000000..2905c5cbd0 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/meta.json @@ -0,0 +1,50 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from Yogstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "heart-off" + }, + { + "name": "heart-on", + "delays": [ + [ + 0.6, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "eyes" + }, + { + "name": "eyeball-r" + }, + { + "name": "tongue" + }, + { + "name": "eyeball-l" + }, + { + "name": "microcell", + "delays": [ + [ + 0.5, + 0.5 + ] + ] + }, + { + "name": "ears" + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/microcell.png new file mode 100644 index 0000000000000000000000000000000000000000..18b692a5a99ea63a4f475dc30e5f69cdcb14608d GIT binary patch literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDb50q$YKTtz9S&aI8~cZnt_3l z!PCVtq+-t78;abA0z_CJDBs9YGu)*V;d_cDmu=%rmd}$ezKSnE^UCZQe??y`+w-=&#}D1!9$V2I++HB)z`)2N5RiMoVgA0!?`|!RTG{aDVE1Ru z-G)K!8ug5qZ5Zmd$<1y^)S3D%kj>>H?>#l2>&4m2cJ*2*^gZ5kK5F&*uaR~NE1&IZ zbidu&wvOk)&g$Cxwk>I#4C}6QTfI2hf1r_7R#?)(sA)^dSKEJfU9Rp0^1ljxIVp26 zy}#anymn_peVtt^LzfN{he87bh-k=SKJvM7?cAr#(Xm?cC$1;h9jIye$?%!+8S@!- e4uu7W8u)vkl=0_xPqGCD5QC?ypUXO@geCyzPKN^k literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/organs.rsi/tongue.png new file mode 100644 index 0000000000000000000000000000000000000000..dee2ed3b99fc35705f70b30b6541e506e72e896d GIT binary patch literal 516 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 D;qYS* literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_f.png new file mode 100644 index 0000000000000000000000000000000000000000..31d77176c96e36ee043c1f9e40a214715586ed4d GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCdO}M*cF=3&%nUUfm60Gox(|3&`j79aH=3ESH?Dlzw&^|ETlFI!lyRPUUTiJZ>vfR% zz{iRs6*g`%$Hf@FR@rJSjpC2dOqG|HXJl~VSdz)5$ind8;X}s!{QNQli3`V%x6fA6 zXlZ!=du#H(_s$#>{a0{j9}ZV$$eeZP^PXFV=RZ$aw(|3W^UsaDSS1*m6b}5XDcjG| zBEWLMPi?Y&mP6tl&tLI93^!g?>2Eoy*e&A48$KAZ?+r_(C85T?~cDNY0k)u?! z=9xD4uigLNf0!Q?ePBJ?g{vE<+qX$DFefnZG%y-4upMAP;Y4k7Gj}@u^wawJxxcga zbmpIHU@N=2^~e6abL)>z4H9$kR6nD#`5`c2oZ1!8vE`bX=cJ%`$5qRhc`w~)#lx`p z;))d@|#6i7+1Nj;11o96*}K@Qi6em0tZvkEJlVC62VdJtFLkeothN$?A3!!H**x0 z9?9COb#?w}A(iEl0UQ&03{NTIxU7}UyNSj+NF>9Ca~81^gsCbKV#_Y@4p!u z&YwRoZ~0-%!~fBre)zNATUP&1CJlRNfrHLGZ9il5I>V@c6JnYefWXt$&t;ucLK6TW CC5b!$ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/head_m.png new file mode 100644 index 0000000000000000000000000000000000000000..53d6069a283d5bfde9f07ec578d7e67338ea8dbf GIT binary patch literal 885 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCMF=NbU38qCj$dBlc$SgNX4zUvo>bEHV|q1U#uy3 zR=VQ#gR>_m#qtYqJmKWxP2n(9&7Zh;ipEW&lGAfmu0Gx*KGE0NY`^2d$?t@uZ(nbH zeWmEV>hqjQJnqjwU!1t+{+BObTB5hb?Sh)GgV$*o{_KD&wFkep8q^y*~-rg&ObNqVwGTMQaJFlrffe; zivY_3KefsBSq_PJJb%UaFx+@mrN8B*W`l|E$4{S}UVpu1XK#O4g8BaU&1)9u87Xur zO$xd-Yms}nU~ZAfz4za5hPB+y3)gb$KFYLi`+-AY9e4AlZx`=oWmqt|*x_Q}MvhX^ znrGVFzjpt7|6zVq^nvwk7p`ucZr>)sz?{Iq)4*uJz;=KEg%h>S&D`nq(@*Q?=l;&x z)0uy+fvxQ7)*t)x&aFQ>HAu|CQ~iv}=7+$9acWmU$Chhmo|A&&9ak-1=Dl>I6%WJW ziz`-eJQZ`DSX`^nwJ1vSjzqIX-`g5HcBvIE;a3~7K6p-2@DyrE$Dh_eKC58YnMLao4{K4)BoV#|BRupzyD@v zIDh`Uyyb^25C2Dh`r*%dZ(036nKbO71r9p%wEc|H>kOm*O^9h?00K`}KbLh*2~7Yy CJ&HU4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..4f042bf40e07391d9df13e6f861429a604924578 GIT binary patch literal 657 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCMF=Nyd~HppMil%&eO#)q~g}wS=Q@b83?r1D?jOr ztza$5Y2o8k(JEiLsVziMB-nM)dACbT7nMxxW8G0a`L>L*#yRDkd}b+bPD_40{rN0a zUF`Q?x#DfCX?Z*ij0OyB2N)z6m=hQ_Z%y^s`1$9ZdfTq6S*&YKJ2X1BZT;r?TisfQ zuh2;0e6fiyGsE7kW;51p-IhO#t#aP-Sf+E93_F}Px|C*oj?)a$z43Zap_LdFDbv!)Vw;wWOXnA*S^Vx=# zj%xf39SgSpGwxV;VA^|ut%~YiN?qkrGP_^&zh*R?D?h8&hE4K7`^^iVqL&1;8|MDh z>+@e~`&&-I>7KyO7(GvmsYl#8_??U8n>XL%DrN(Q+=ow^22YlrOkw!Lw5;HtIeTYD z$m3Wa(VrKB6IQLs}Y^zMIhV((r+H(FdU!M!)W7 zn)^PUdpvKuaG)qe*l%-dmPdiXv@K^l@P>gxr~`2t%s19^?fjweGSq240}yz+`njxgN@xNABcvKo literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..bb9bede218091d867ae80afbc6e6e8263dcb0c30 GIT binary patch literal 572 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCc!Vo)}JLjlYxQpq^FBxNX4zUw>GY8G7w>Vus`cY zO?RK)-3rEZH8UaKm=Z&~HeqSuPG;%g^tgi)r*407ZE1Ov#=R$MF{k#n{Pzi3v~>P* zTN4GocIIg^+B!BI4h&2J4Gb&_42-y#4XsDgPE5b{+Vqo+duS-bgDuxKTvO^xW)S%O z_ulEFaeCtEYh49cawnhIw8pyLMsE4Z2AlKo{HVAhGwG&A1nTx z7OmanI^jDb#7hnG?{81%Hkf{}f2;V9j_a~g*TMenW||Sq`hm${IoAPAPzWS^tY*|_ zu+u(xW5*n(LoZe;6~%YEhW2I&=NhcdVP;FJvLt zfBj~7n&+e^%nbrfsW(5_^#8pi`*=?J!OeH`rt`CIiPC*mDHpti=~~`)Nt2mH4BK)K zm)@N&v|}q{UCEl<+dn0mKmU}OeDX>7!Spl5!{Q&E2z2!qh5%dEqGHn(#s#taxZ|08o(e0Se){PhLw&u3q=;3zGPAxTk^B?X5ZsIfp^MwUtQi{(I4u?N9+$t&Wtyzg`2M%W{PX$-TeKe-&*W`)))C__i(R~G zb3N~$pVelw&!$XLc~Q1IXK&p96XuJzAInhpK*VK3(=Flu@|UZX+E({70D-5gpUXO@ GgeCyxA{#yc literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/l_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..788f2769d430d38fc166ad9d96c98c19ff51b141 GIT binary patch literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCc!Vo{v%hJpMimi(bL5-q~g}w*@}}68Hlv~fAi*m zWPz=N=(_C=4`(#aDu3opblh=+D|JZ1oLQg{=0y*cpa65F9~^;{ZH zF6y7GuAdZcIM?rD>TieRy$l=;IM9ORZ#SPDfBp5>r>gC@B^i=--&OJrPOrD{oHYCG z`LxZ?nHU-@`p#C^xQV#lc>n!ewU1ZkBa3bMuG3Q2&t~$R6jPt#w)o=O?B42qI^L6? z?<_ZTkl|xza1e1l*S2@-B8@+tjN7iOPv+cmjic#+=lk21@zYcp5-enx8Unn2PG;>p z{&;)f10{i55{sua1)Zvx%J$ZzK=NcF*ID0dT!O&eva$D9>=xijn{q!O~3F{$6)?>-|Gw= r3LJWp2c|v$vs2K{##i-5?r)})t~FUclSNB_>4U-3)z4*}Q$iB}Ez1U! literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json new file mode 100644 index 0000000000..1463c57a06 --- /dev/null +++ b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/meta.json @@ -0,0 +1,62 @@ +{ + "version": 2, + "license": "CC-BY-SA-3.0", + "copyright": "Original drawn by @robustyanka on Discord, modified by @pspritechologist", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "full" + }, + { + "name": "head_m", + "directions": 4 + }, + { + "name": "head_f", + "directions": 4 + }, + { + "name": "torso_m", + "directions": 4 + }, + { + "name": "torso_f", + "directions": 4 + }, + { + "name": "r_arm", + "directions": 4 + }, + { + "name": "l_arm", + "directions": 4 + }, + { + "name": "r_hand", + "directions": 4 + }, + { + "name": "l_hand", + "directions": 4 + }, + { + "name": "r_leg", + "directions": 4 + }, + { + "name": "l_leg", + "directions": 4 + }, + { + "name": "r_foot", + "directions": 4 + }, + { + "name": "l_foot", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_arm.png new file mode 100644 index 0000000000000000000000000000000000000000..6c1ff1ec9cf0b2332d27d4af863375b326ddeddd GIT binary patch literal 737 zcmV<70v`Q|P)-7SF9KwFTuLpoJmXC!Ha2%)C0BqZa5Tdy`Ac`V*o(IQqvgjLK zKwyj^ilQ=~zRT%!%E#;Vy4D;pD95!t45_rCCcf9U{;vR{C<0@w zF^8&j0TunKc3NePQ0e(i!%}U9D*8=bMs?j1%j!3~RNnQ{SsQ?^MI`{VCphNlYXi_# z%d8^SP@GcL-)R>Zl32QGYbdSN>`Tg07x-%chO#?E89)I3=mJLz0F}*&wqX_R(z+jz zO>Xa$R5756gTL8TW#X+g2YgbN8QF9f=*>b%N|_cuZ;c$%s!??gNaHw0k|f!o(k~+P z^})$fytg5Q$X-LibUJNy0i@&J$|b-#$Mt$e7=}oa#29+3RLX$c?S}1kn@7G-3azDf z(^;Te0tmw}e`nxuIKcP)LH;V7*EIcOgq{Tm00AHX1b_e#00KY&2mk>f03(!tpGFp( TMrgpu00000NkvXXu0mjfoE1Db literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_foot.png new file mode 100644 index 0000000000000000000000000000000000000000..2389c30aea5458ae633b88839ed9f2b51163d25a GIT binary patch literal 562 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCc!Vok#Wgx9s>j8eoq(2kcwMxZyDw_8;Gzy_#ZlT z`yCZwY4Harn5I3et1Fd$_$2enNk;{l)IFsq)Mu>Fr2u4ZuP23Z_9p9^4xy>>MtI)4?CGB zsT}-T^)}}3#O?p*KV14=TFEuABc8vu^KWL}b!&>+IU9)6moXKbzdW7O zVERe^N$h{7E&Rv>^4f>@48P{QE8fLy!*k(z$^6T*4T>P&CVV{4=jxpJ%;ZpYYv)d~RE zD@RiZfyH8>eBTEE*tU&+zt3U=IG0+jmW!00&*uPuN~Mxa4XD@aux&fafR`63Wuirp z0l;W9LakO~ap&bT#WYPOr9`=0hUag}?yXlh0TheH zf8R%=5nR{RGF}Mr(5fMX(1zf;uGTd8GXsjnB8I~ulv0^hcFy_TAUNk*fnv8_j9m5s z_x1#lv03#D=lVOHPCA|7U(RLSFx{*FD@)~RM*pMt0y+Vp-QXujKQ#c)?*3BS4!@F9 zy81I+1>WXBB#-O*%M`)9)B#!s^Omxd0R$jJ0C{R~QURcIIPq*)=XUAn)}8`Ual57@ zjsbBT{LQX7g*R3WxTP$u)1X{5LXnYq>Kfm26-c!PWZ3}SJ9e|#Onx&20E@-q>itHe z@q>PrQ{Xon-y#FjSY5O-;5^djMqRs~w1i=Z-EN043}G0?O&fJ=`qDLGGMT6#2viUR zs?}<#%jeN2Y3BhzN~yZtu8OYD^~Kd~=o+(JF41T-P%4#RSr+#D{r|xXBee`L3qdWnx62PKP{3oldVtE9vM1 zfa5sq@_rbGSg+RrfNHg>U5FX|YmCkV2mk>f00e*l5C8)3q4EucqAv)4nq?LM0000< KMNUMnLSTY>1XA_@ literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/r_leg.png new file mode 100644 index 0000000000000000000000000000000000000000..f424b2efbcae1ef1e98d9baaaa55659971fecbdd GIT binary patch literal 636 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=Y)RhkE(~!XIA!A2IY1H40*}aI z1_nK45N51cYF`EvWH0gbb!C6fCc!Vok#Wgx9s>gtr>Bc!NX4zUv-kI{au7MTzj(8x zmi&Qphc0!UJ9N!`f$_zbLl**n^6X=n%Go-1>Q;S+#3WZwM{|A$)w4N@ulIg5<9^4X zcYmdVV&mu8pPwi5ohaJrGXE`qRUV5211@B{x!+3scwx`wmnjS@Yajovd(9VqKCx?&fotFm-^Py>Is2+}1z6S>{Hxn@|2^Y@2-bkLcAIpX zpI2U5dcptll{#LA2AlI6BXk7X7BVX2uKDNus`K@(Wtt7QVjZ&ozO70;UAFt~{^ie# zb}}$bQrXC_aC+0Zmc2o*UZ$^}%`|D*O3uR{_Rrp*^;O=wKZq+evQ9M9a{l=;z*Q)>k1gA+v zK~#9!?VB%e+e{e1e>Y7r>IX2hw6HEDETA+rL1vXUDZq9?6qJ301Vsi-4JH*<8nS6< zCK)xPF|#H!e*hz!+zVD)?KV|&mdmua_efFdv(>x%-Sg*s&lBpaEzA8o;ZSw{0H2y}iZrJjUa(jG~CLEHMm&(P#u9hQr~r=RMD3y!00MFGHKu>hbbidqYl%X~g>CJ&J3Ia!u5pU;`k z=W0y=AWc&M27^J<7RPbZu3D<9YR0kO?|J|JJ*H_k?aG~?=XoMcQ{p&oK53fbd7d~w zKY#Y@vF#tgwr%n}XTRSAu;1^=^Bmi@PXl1RUXvsVX__{lBuTisx;lvl42MJU==7RZ z55th*a43{V0f5WPOIh1s6h(|iBQ7p3uq;agLN$QRX2Wv1WHy^M5LT-dMN!c2_tk4a z9LEGffN7cln5Ib(1jKO+z{A6XQUHU&K>q0L9(>5AZZ;dW8cF{eRTaMP*9&mEt#GaK_4fL5K{1_9MO9UVVMrXu zA`HWNPy!H7wct;~;4c6Q+qOkL*)Lzdh$qoN9O8rz)c{ddl>iuz$Kvt&=&St#Kv7kd zux-2P|0FL%yf;~XJ^1tlAzJGUjr*0nr@cHxS-%?){JHg-W|F541sG7V! z5YYfM01ZF`IHI%)gKf69iVj1y1{_;Nn+lQJ+uMI)Qf-dKm1%$~mDMJo0sJEX^t-@c zlD5b5+64YjQDD7Z(>6JKQ~)Y-0zU%%RbPidfBOfvChPiu^Ye2qE-u8=K^)r&uGj14 zf4i>BcDt295HvLk*Vor#GMThKEqZgv#3z%9bR36%zfW0~>~=ePy`BW5>$*xKfa|)l z*XzmMZbw;`^!t4r$6+#=NW(Csat&B47Gzn5@B2+IuFlP!N{XUjwOTQo%}A1j-EPNp zI^~e8RBH{WCvO-=)AmwwM3vNi)+XTl{y~|kwz)xqAZV_WBmuq`E1U{Kp6AaBGM+9( z5Cp9?v9$&`j`LF@B1saWD8jNVrRniU-y)(YYT(ym7zSloindzNIx(`@Y-GRRr`zoU z-_zrkWigx0$g)g%jeu#IvMfthtJSkwp)^hDcDpjqbD`7;0wPHgnIs8iSvF4a(GJCQ zI#qs#QG0ve_n(n+Ki*gA1ncs=+62CR`-TwWpfR)pU|E)M97k@qTkh}g zxxc>$zE^J5B{Qdxdg67G6lgX?Z5^@DzZ%o8!y14FpaEzA8h{3%0lZTA52ABh6?@6+ Q5C8xG07*qoM6N<$g75NHga7~l literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png b/Resources/Textures/_Shitmed/Mobs/Species/IPC/parts.rsi/torso_m.png new file mode 100644 index 0000000000000000000000000000000000000000..df2588b562d64e65b33bceb18ea7dd26889339b2 GIT binary patch literal 1232 zcmV;>1TXuEP)>ya1YJo) zK~#9!?VGV`<4h38|NC)BTp$miP7rmr8+R_;x|J(+fdo=mP9a=5k6>3ug=H0ilmS=T zXK+A8aGF?M21G2WaX8oJlnc3Y5xwyE%SC;?q#YF?q z05kv%Km*VKGyo0Y%gVQXzwrJ0cl7&xPANrMmM~2duImB->GgW=K06!^5k=8aCp;Vu z0f6`WeL0pS2>_5Nig0;(sTKesg!g(qbUGc}+}vO?nc(#F6xY|+oKi~W^SM%sO{Y^1 z0C}E+F$T-BFr7{TfEPtUlzV{dx+sbQ05F+M002c%z;#_vN|n3pcsz#h`(TU#fP7sn z7WFKFmzNg+K&R7@V`-Yoan({)m7K?Bvq7`jgk@QBTseSU2p^vtjmEq2W3PVz@H`KU zF>E#)0KjImf#W#vJP*s|vK9a&%QC(@kYyPFkdFXVh_Jly2E#CrBng_$W<4I@I1cZ2 zyI_ogQVQ2~v3=$Mh-v_i zzK>Vep0m^ zJq;R$0mCrhd7gZKXc{~y22@prBuS8_DM^w;(7G|JTn0>c|NCKtu!305kv%;16Z*H2Ayat)jzF?Ey#MS{_mf{>!p&C8*2; zYB(3rOF#qAdjahM8o)mb;BRDsLzdl90X#oHqb{Jo(sc;*Z--9k`uduS{(wfKfo``; zb|-P{AQ(lF{M)|oW3^iGIF4nH!hAj_wVVl_oSg8oED;0&R;v}Bo}K{wIHuZKg|u2N zWnSR>K5w;J@?5apZll}nA`C;Arir(=H==Y2OePZqK_D(8006VuO!f@aAw^M$`#@w_ zhA<2f1cB^VPzoT=b4gpsXO|J_1_OB!u?vDy3fs1o-VkpCE1{H1_(Dw6L|K;VdxRKcyxnd?Tt!=!1>3eU z8jXL*=o{M0$mj?Q$_9j` zI;j{JI$AGNQ|k)~I#TZWI7sdP0$(jrU6peeF9NkNmIV0)GdMiEkp|=>d%8G=XiQ8_ zkoe>fATV`3i%3uqgYis6d_zT2jLeLLM2r#=f(p|UzRXa3v`8s~Bk=r& zS&cVMPDY$u5#_>=CNnu>^`ZrfgeGy#lu%YpF`mJDA?IKLJKuCZMh1r6?z~=(pQ8AH P)-iax`njxgN@xNAxPC+i literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/adv-retractor.png new file mode 100644 index 0000000000000000000000000000000000000000..7df819a183ec39bacfcdd30b7765a0032971ccaa GIT binary patch literal 254 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv^#Gp`*8>L*$jIpE8`=vC$_9j` zszon#QZX)cv{vnXG@Np)u#8ihZleC!^M@t5*+_1pV zB~_hy@^w8?adlNi#u;g8o1Ky!4||C2sO-r)-7;kgYp;M-Nf8e#D-Z9(Gy`dc+e$CE wf-@M(*p-=M)Z4sgO7L9Vlis7Q!p6kFa6X;4R4XuC5a=KVPgg&ebxsLQ0KXhhH2?qr literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left-on.png new file mode 100644 index 0000000000000000000000000000000000000000..3c2e8972821ee1557f396179b189f87ac8a00b79 GIT binary patch literal 397 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TSI zr;B4q#hkaZ47mg;KVh`t%s5&nTi>Bj9PljkT} z9bLrHq+-12&;PEHn{z8?rZOAzPEcl4aA$JpV`-4#WUv%sC{kf~;=yoYA_GW5J;q`8 zUER-r=7d(3Tg6YE`OiFWosKW$(WQU-+)A(nyLu?AxF^Uqzu| z{(1&wt)CuW8Rte4k5yyWlNv4-C-5E{%Ez(r8^E+ZJqlXScPtC`Yo|t!?lX5 zTzo>+&x>!1)>pRdU(29>Fmd|<^E6hQZx>8CpdQ@G`1V7aw|Mcw$H4Gq@O1TaS?83{ F1OReqo|FIp literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..9a93d2bb5fc5945ef09d4860560faa2a5fcc993c GIT binary patch literal 400 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TRz zr;B4q#hkaZ4z6S}6mebuf%}KSuFHIO9ikDFG8px89wc+_XRO}9BzR}{%(;9w4th*+ z5D=d~^Y@)Q)n+q&?|J(f&1{^m-;vBHaGXh@kJUkjyTL+?p-_k6Q3S)0jSL_O^_T-6 zc4w{Mo_1mB`=Y(M>dS4zcE>LN_rFmu!D{yQ)NJuvyXzu37y+DX(v?*EpZYhPbZ z-VhsZKQY|ycyEK6LhkkZXOjZ1pTFv*+np7nnDkZHgfa8e&z(C>5)So+JJ~aT@=G}8 zvp(464oj@V5e4PPzwD8$$LTJhgkML)il{mlyfV*SO)BTI{*G+K#5Ii~k$)|Jys0WMLADLEfD1G(n8!(6&JYD@< J);T3K0RSAeq1*rf literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right-on.png new file mode 100644 index 0000000000000000000000000000000000000000..f91961a9df3aa8347df9b2bd44a5ba9a56e26d34 GIT binary patch literal 421 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R5Y zr;B4q#hkaZ47->NMcV2QN_Wh4mk{uOAbKPzT08q9b3{eM)V14hT|1>+!6f)bcgti; z=P$Y}Id?qM${wBgU;k8K()WFpGkNxGaqMGhkl|#o6k;e+VR+)faAG3E1Z74AcP0m* z#GK_!ReR6G>KzxmH|6}t8*?`+UR!;0z9mcef!!P*3;)e2^4Xv*^FQQ3@+Py)<+pd* zJ3roN(RfDo+wN;g@iullm~swXJboqD{C@8`rtZse5ifoyFoyB|J@~===g&{4Mc=Lt zPb!?%a^Yj3=!Gv&dS^W8U6H)u<;m%e|6%sybQn}Zi_@bvU18ftNheK4y9rau*>cYQ znf3qoo~0~5`fV7N1Qy85}Sb4q9e09WR$i~s-t literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..6444d084235a2774e056cba05235a803283dfc27 GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TSG zr;B4q#hkaZ4ssqc5NWGF$k_5~t+L1w&N~aaEt+01$jLYqvbYyA3GS)hV6MBvQKj8O ze{1H_jZgpY_paus)Q^|TRLtinQek-F!Ej<*LW7)I-Mc< zTkQQx_q#TG`48IZ+zT@I|I3c#1e|UIO8oS6I5DqrTau}mz^3#CXCr!9TV6>P6yN^+ z&+7ZXeI{Z8tI`)(l+UfMkC)=+xNCeNY|VVWgA;6-bB|t17l8WuGu!F|H9eF0CQ1Us OnZeW5&t;ucLK6UUlAuul literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json new file mode 100644 index 0000000000..592796b3e0 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/adv-retractor.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "adv-retractor" + }, + { + "name": "adv-retractor-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/bone-gel.png new file mode 100644 index 0000000000000000000000000000000000000000..ac425d8014c65360682ea0aa8b90317352a0d87e GIT binary patch literal 258 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyW&u7St_Kbr*uH)H&!0bgdV12* z(u}HGl%m34y?T}K|GUqP{}(S_R9Sj&(#<<(zkmPv^Xu)6>y$j4_T}aLnxeB9XaZwN zkY6x^!?PP{Ku(pXi(`mI@7q&`LWd1FTmqAsnUqz2|C?^=IXCpxnUvYO|88&lZ`b?6 z`~LT2PQFE|55yDhxb8F!YrNYMwb+Uy=6tYhvq7;rH_H|8kn+|8)t?G@4o!akA)@h2 z=Rwhf<@W@|*^<-NHSoNPH4s?&PKjemhtxaOdx!s~e`jz?Wfc$Je2ow23IyIm{0DQOrli zwz%2ivJHm)0bg1?=DAB$C3^8+*rv;uXy3nq+aN=>s^RNbTeZcPMGB|>70;GylzXr^ zI&pXP4(Eh3$^pzzZZ^FAqxHqAy5F=v;7EXW($Xblobg=0;JT3)|iX zDja!dD3M^d&n;O#u<8D6YnHt( z=UJ)IaQ3sv((7cRX!5d2^yc4L7n`&-Lah2vZC$@1EAy0p$G;za7tHUZ;Lkt+ z>2ofSK5)iC=)lG^Jb%K49AdAh{WmglZ$IF-k3Ggu?vMMlnT*-F@2~r?oiH_i;D77c zHpaBgaqDOEOvp|zopr0MIn4*Z=?k literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json new file mode 100644 index 0000000000..48775ff522 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone-gel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "bone-gel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bone_gel.rsi/bone-gel.png deleted file mode 100644 index f66bf6cdf9eb1aea9b77e8819b3f0cd71609ab3b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmV;h0Z;ykP)VQ!P3~dK!$;$qRv9CRT%t%)UfGl_SvPTGP zJNTa*M^F?3_wU?ixOM9hgPNKg*=CUJfBX2M(_jE z8DNgtuzn^&VR`F+VjV$p2%I>3nZd$XmqF23i{avO@QL{kgQy%2hTNHrrx{HAO@Yz!h2bGk9Zej7ZXpPO zECsQ*Pi|-M%&laQH`FA_9I_n%vKSqJ9FZ|^5q%s01IWGy0lI|%y5+DCdHsm^_$S)| zu=q!}oE$)w13(so0Hv0b?EsL)Fh_s@EJQ$nE@=SdYh>RehXPI0fG!sggW_KnaA5=T zDK^XWf%1Gnb$4mu02oNnH^eDN)4Bju#cJJp^nd5JgLu`E(lR1B1judsQOyC=2BQub abpQay3zG>w#k|=70000VQ!P3~dK!$;$qRv9CRT%t%)UfGl_SvPTGP zJNTa*M^F?3_wU?ixOM9hgPNKg*=CUJfBX2M(_jE z8DNgtuzn^&VR`F+VjV$p2%I>3nZd$XmqF23i{avVQ!P3~dK!$;$qRv9CRT%t%)UfGl_SvPTGP zJNTa*M^F?3_wU?ixOM9hgPNKg*=CUJfBX2M(_jE z8DNgtuzn^&VR`F+VjV$p2%I>3nZd$XmqF23i{avY_w?p_B&oewce;uwy-cXa_;kPfeaR3aM_?vmXquN zT`nF5#lI}TI^YY~r`Rmh2g>sS)!n6q17ILQ-w>x9O>+ULiq*RH=>N`b2l1*SrDa5N m2$0+MqnZP#4MrU>>Hq-vnwwVQ!P3~dK!$;$qRv9CRT%t%)UfGl_SvPTGP zJNTa*M^F?3_wU?ixOM9hgPNKg*=CUJfBX2M(_jE z8DNgtuzn^&VR`F+VjV$p2%I>3nZd$XmqF23i{avsS)!n6q17ILQ-w>x9P3r4&qfuO3R4k5FoehM>Pjf8;m+&)Bykn1(&uM)eu4e0000VQ!P3~dK!$;$qRv9CRT%t%)UfGl_SvPTGP zJNTa*M^F?3_wU?ixOM9hgPNKg*=CUJfBX2M(_jE z8DNgtuzn^&VR`F+VjV$p2%I>3nZd$XmqF23i{av+3c>X$AOx{ov%-%k^ zoxwA=62kxXg*Fa=0Z};~AU1{bAD)NMAV*}(TSSss6xRi3HlBw29t1!kKsN^_?HD(2Ydnh6q{xGKzTl(y1TS+01PDP8{(9sXfnX&I3m m0_3*+sOA7_gHZ>JIsgD|ZIr)=vS7Rb00003B@lXJo8&@^5KR&K1&oaTfJKE<(2`R(pR4EccK_e&tri~$@AVwt=XcI~ z-nUNrXSD&^0BrzA09*3rf>nGwuygt=0HM%`97zt*#Y(|)k;&zm?7dVmjaRD=0oMR9 zUtLerSF}dOiF4`>cIk3H-)j^v%qq_v5q8ueGAzgK#nJgQ{#Dzs;fS}Upskrhk z=6ad|{0Mu8MbUl?l{SXw!=q!h3z`CK<>(&3R-lD2;cB%IBAj+6S_WWY0L_HKgV1uP z)w=>{PO)K(PlcPx9RZ-dyP19UI6`*SxvAb30D60UQ9gN^PqLD-=Sz!8)d&L$nQxE> z0KSSLt{(f$7YpKe*B(jV03g2oguznp1%78pa)4g ziS zU?2wwF)E<&8BIh{1;iYS7%&7xPy`YS8QL6>1SC=u8Jdv=7=K$`1e1{k7$gG4Qc(mL zTTC-h1Q^7eBT!w!lwyh|Al4j$>NdrUFcDM{u{LK^V;M72jL?-hp_?MP0L>!rQ>aQ9 zQ+6t$nc|p?>N>`BF$XjyMd+p|+(EU7fq{3TBbvxP3jtICIdL=rkw!EvjA#nL008}4 W8z(3rkdgoZ00{s|MNUMnLSTZFmS7P8 delta 568 zcmV-80>}NI0>uQ77=H)`0001UdV2H#000SaNLh0L01m_e01m_fl`9S#0005^NklY2rexd)R<7sf<(~RSWad` zgoF@AIY2syVzG_<_@uARqC-+MguzI5mV;VRJwMA0RXz)cBmb z&bj^+0Kr#QmuPmzN6C{j3K40lAuIt(rB^CE7R5QTx#kFjA;4C6T`Rwo$ur@ht8`Yp zpwz{&a)<_iNw-_`Py56@>PL#tC06&f(=R<=O^iPQ? z$Q7Pkl+NlCp??aZ0YF&(6X@u0mtZ?GAL#GXE^qG}Ahu(1YDb0+$Pfs^djI&;0s+6? zlnhC+c*`!Bj-eR@`eI>mPC#H%xL;b88 zvLU-Av2__S1Tu&HSWu$&2)rDooxLcHjtq*1xnCOdN z0VELIEoPh3u_vPXp20Q+2qs8YTL3&ARvF4;%=<$b01Me!ZA7_ot7o+Uc3iNMvL0yl zSwRVaTrp>cuzO7_bD$o=u9S|Ud}nk7K!<2T-T&9jX?+8-P)~H#OfyaZ0000 zPZ!6KiaBp*ZS-Px6lnX;tk~)=;Gr3_m}S0#m|XH{l!Yus{_{QhlX%iOzG za`TR*30+|=`90ln-QhPc&U62pr<`%-tMn?SCBd0d#}f(`nWe|=>DVf;P)$L<&Z_qK z-@9vHIiz&nO>WwRSYkiMD)8i^=##cs$}`9tl)auZ-<3-gDQ|WIsL$My&tEz4+yNa vY1+jQdB)(d(*=v9snxv49zksX!t{*uLH~gTe~DWM4fCWgh% literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/bonesetter.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..3b9942e76d245ad340f50e5c2d91df9b3a912eb0 GIT binary patch literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R4^ zr;B4q#hkaZ_IfcpinN|@ns7*6Ac!lo<$-X9ppuxKtCZkTr|p8?TRlWrqz{^J5L)vm zvxbQ?YR6KE4~ExbQl%41(@baIw0)kvO|s4M{vAoSZ|53hI2kO37>ZOFo_H{vn8+|e znNh)=$)S&>VNML=*=J5xQnv0Z45lSk=QmU&o0_}lYCrguHbc$7+`_i2US_)Xf>XQm zA4adWymQZe|FeQs4Qqd>Y<+(-VYyJywXj&J92F8;!M`9-&1E-|xYQsaKN zE7Ff?ou2-pxctwX*R0v&H2uM5x98pl+N&Qom$sa_{%&`Fxmd!(|EEIT{1WWM?5y*Ha#_s5z7{6BzN zZ6%ZTaQHk^el`VQvV)_xZ$G`fx_+;hHCrvWy1eB3&Q7|S79tuTTbmbzl$-@(b2$)A0rvNH-TB4kkK>*8 zp&h`@?cG@8V*@m{w~83}&UVI4gOC+sGj}HY{CF=iLi)9e1|ZldJhUl1<-KNdamNHe z6z2Wh{6gUZ3R2S!K$M#I69Fh!Jf2hRR{;?9$KBJBy_O=xbG^Rdx4;YlvEL}%YbnP7 z0GJ2opLhvvH=8X#QVW@E?K18he*NGAIa zs77iB5RIUCFzuu?QY_%&3elVS&X48AEpX;4gzEt<{t ksJ_r}V(|1{=f5`m*WWRn&EcEe1hkaF)78&qol`;+08DOSA^-pY literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc6bd69467f0d5280509af48c389b57b2f07da5 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R52 zr;B4q#hkad?6a5xMOr@!pI~d+8$F?cC5ThWGj-yjAf01=IYvtaH!*pN#x#e{@==Y* z;JCqIl%Vbr_GohZ5qy>5Dj z@t42;!*v%OKJWYVe)cwt$IE>ftF~Xg@P6yXs*HoXIDT9CoOSeJwDRQ4v~}D!clP}k z*KhO4&14K&m;G>=bzybN=Gzopr07}EBt^fc4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/cautery.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1cc9c4d803a7ee8cbabd8049441b5b1f8396f3 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R4% zr;B4q#hkad4852g8CoBjKj6J|`zC9XLetcQE;;|(>`C`0t_l15 zeT%Ma+Iw1xP1q&3?7xi3z2CAE{DLQMYdrRDVX32lX8C-@$IbCghW0gr(!05S1Tjnq zCWsm?@b6grY5%u7*F6gwp0@Mf?fSRg=$ZB(@q*n)?w<2ZO=q)WueSfZH>F?u?p!^Y z1+R>mm#>xD_uSb|_V`Ecf>l<=57zC!FE_R5@6L*K ztDir=O1n-GF-h6H^P*bxQq|r^(o*L7hW0WtI(CLL7=gMNOM?7@862M7NCR@Fdb&7< zXiQ8_kYHWW5a{9Q=^1!~K`%k*5fjtFwx*`0W0|ZDjMpz*xR4OMe8GZ_js=m@5)vsk z4NQvb`~(FR6%`oWjte(Ac^R?KZk;-HcD0eYfdT8cEjui@xVT>5vn_s>^No$IPvN<7 z`Z^6w&3N`%$2Z7o2wc3h;>7Dmg<|h`rmOY3-7`)X;0xv~6?7=gY*#w#%*@bbr{O)J S!ekQAfefCmelF{r5}E)zi(bzF literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..fb5a065550e90bf9f235d8226c0587c9699d3317 GIT binary patch literal 666 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|S$f zr;B4q#hkaZyuGCZMUMYxv~S`NtI2-k*Am3CG>n6*>DJWQue_E%%1&lwZW5W&#n0lp zVatxp?hCGhv8Fr{@z#NxHf_ASqC4+MzQT3OaHhzYJv)z|wcLMJ<;>j4JNM7oS^RJg z6NfvigM}8up+H7~KCXs>5Qdh;ObRlh3=dZ@fTeVp?v?RNSmpiwBUC83KJDct7eBs& ze~;%*uGncI9`Iw+eZPI{^IQ0iO>LQdM$e)^@4>Gh*-r%iE<5u1Lv6BT=ccI5yA0%_ z4!t-sY3HsV$(vuiuUPrH-j4gUvV+jK{Mo*T{{PARWgGRl@bbkl@d_d9{g=(UC*7-c z3$!sfxQ%0(|MwTm*0vm->1e%DK`0~U_3W&g8BxdgZSQ^k+ahPfKGrHWwZbXCT2o%h zX9P{T#&644GVj>M3a|QIcD7rNS9b4V%32+_V0Eq7>g@Xlrj~78vtBem&b+i<>effA zdzs=FBi2X=KWGhQSZcHM%Zq~bzR!=}<0#p;Zr{xx*==)cw(RLJ{mc2SH(d}7gmj*N#4Z4aa&wqO3r_Vqf1ZjuGn(p8>39OyyIWyi=ULzKb9!7 dfMW7F-#f`q58{q^Rsa(lgQu&X%Q~loCIEm1C+`3N literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/circular-saw.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..c0e064d10b1231794e3e09b5c561e0b642383720 GIT binary patch literal 668 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|S$v zr;B4q#hkaZe6xiEMcVE={C9AS;iwDby*YK2h@**E8wca*me9(&>!R4$AR;wo zg>>@5rDwfd3Ie@$8?j6hxyxy!?JH_nqUiC`e!}ZH+^scdju=dqlsR9SFvG#9;GX*T zb3Aj5nVxkp7`U@ESSm4`5oAp0<6tOuVVI%JbU;Rs0VMT&JyY8HrJ{4q@2ztaU|MuN zUc2;}(!R7l-jMuwMiINIyV{F>s`Aa{#j8WOH>Fs*ls_nuK(hVcOmMjPetU3N;L4h&bjB@DGFM*mX$L*1T-DYUwp|dXj=WY zyAw{m)ODo&ge`4k{)l zM~)t4IG4^96cof+>eax#VuyyN=1z^ntP*n@xMJpm8r>mdKI;Vst0L7b8FaQ7m literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..7531299f2a4973619455df6e2bb1919e961b3b15 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R57 zr;B4q#hkad_Ie#okU08Lc}L`tNA7|wg_m4omNa)idZN)JzHoB*f(N1&FCWQrC~?&3 zEaKpEWhva)EOKz^ijXDeE}9DzbT51^ddl*@YViC?@srakE^&Y4VZe<9vOj$K7Fx8$ z^8Vo&TX&RA_|o6kVEVqiq@myuw|8*HmDy7&qt*RS{(Z}RO#M_x;1ulzU#~4YtHnQ6 zz}U*+o42ib)RfBU>HRZi${s%cTRh2yy<*48<;T1ChMxK>_3roi`TrZrK8qSIV&33q z^X-g|J)7b@Mg>ABi6?d4v1E7l8!JtPuVvZjvzdr0>^X5DruVt1*+s^h#ZjJutF(7} zzAe}*z#*DYm1ktTDeQ5*W<$HS;+hNV``>fb&*M4}2UNX)o$dD}?T01*WtN^Qcqkdt z@Zaj=nm2bF{r2sDE#EwMQMs+da!H0qKy;G1hPkpauHkVWUv%sC{kf~;=yoY zBEtk_Mg?~!hd!1Du*8Ge8!Ahl>wUZKCcqJv|NgP?*H?aPX6j~_MV0ara1GR%Op2>#{JYQesmfm9=$GoJL941& z#RBfx6$buGW8FGS_DSo}FR!Q0@-|-WqjO+Vcy-N(KVRm(-rcCNEIwkU``%gib}`E~ zuD&d-lfU*G_vz*}NxzOTt@-;#Vvmi<@8l;gV%5A?7(I=DB&yBGHqeHI%R=!F%sFsgQu&X%Q~loCIE@KyqEw0 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json new file mode 100644 index 0000000000..9c30d1b15d --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drapes.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "drapes" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/drill.rsi/drill.png new file mode 100644 index 0000000000000000000000000000000000000000..1f141fb217ba1f91d86c0e8b11d65ee85f05a685 GIT binary patch literal 702 zcmV;v0zv(WP)AuCLZc!?g<=uJKn~tKc+9~=51u3k@vP+FK`@X| zqs7)hO(BX{s}Z8zZAz@ttd+%hFwl5#+HVtd#R!kgJQGw+}GW+s4%iHV8H z8e?f@kk{*F;c%GRu~-cGd|sR9_xqV32uRHQK&Ndl4%l+o(dW_Teq5N<^*MJZ-$9wa zMQe043LcF{St^x6AP}IwBuQA>c$h`bdq_+$7(^%(!ov&qu<7J!Tpt=npQB5+#?9MP zICE-0wM9|Jquz5|EL(hh+0s!9qVAIKjPDl7WD;(-n}YGhISz+|EdSnFw5q;0u-onA zmt`5%@@sU>*npt`7UYU1g133_(Xp5C>~dlvora~6D!Q>-Wo1>>pCX0!NO?nd?d zJozJ$2zZ9_6&JP$$8f^=2|N4u7_Rl9_?GOrD&UJaNo8nQf=ni3QG;t|AdyHwQGTBR zwG7PX^P%t{2dDy$4-RT`1;L?PYjo_F2p+uY3^dDj=OG5~Mc9=%_4{3Joqzi2GxTij zq3-`7E8}9EfY`^apmfWmTJya`aap*tBhf+4QL_uZC2d4HbQ0K=YZRIGQKJs zZ4;m@Et80PR$j^f!oWU1OO5B~SFKi<^!_tDJA8>5jcsWL>Y1G{k)3!_`0Kc~38;s^ ze#JS-(AUyiP=nuw&9-mUc6pDGJ$g`B^*_>90lQsRdO11#`L3~2M8lWxUl2u6XN_o^ kfWqAJA3WVKF7}1f+`G3u=H%Xg7w0caly>W?uSIBxv-EBrkzZ*rgHaYG9Q@q)~ZJ0ap;2ahk^zAQp#(bcS_ za@s#P=N5(QvBZeyD~fN}`E}{Xyt?iWka8ONQ^2r5ZtCz0Z&OQI{jY5k= zVFA}bfwqO3(@(Elw*Ky?H{XtL{5rSgtM7&K-;eJ6tJ=WzVQ=-F^81Vav*HXFXpl|d zmWaG#@Xgv+<)6KR_=mqAe_olmgWLAv!R!7XUMeS4vRra|q*t?}{@aTG3mRfR|JcJD z9CK*KzF6j}NxAZeJYx=v6fs_XmA&5M&eR&a*P;Ge2i$Jj0Zq7k*_h+7K(8CKd7j^_ z{OrK;Tf4srP2l>_dnES9#ff*eZDLp3u(|4veS&l3^umnvhIEy8Orif7Rx;f8xWl^Y zALA$24<<^v+(4n74VOE%R0o`Rcl$d7ck7#dVh)YKm_5R6!H}zYhCl6SC7liS{p~V#N0Eghf*&U|*%t}uUz*1>tNFpol^nLW zy&oIOHBAWq!@h`PnZm(lj-!th+hg^&Enw8#E83sD@4*zI8E@O>a`N2&?r?)w@{sxY zb7#^%pVKsOXKAohVmKqnn9#?;Q0&4mLz(G-j3C3a4hDnc8VT>N&RdlH;jQtbYhDcg zoZ(SgE9(|FeCI!(U}oQXw@xsT`(D7xkPwNs6=ACn``Pa-6EOFgfpLbJ}QRqc%{ zNUU=F`|I!3?m!2jjvvqEU6n037dPB{DD%s@Qf5x3F`n-K1szTp0Jo)%wo*^)wQDpdf{pIa5i@ z|K!qRujIGRWC{4TZrxp(dAId)L}ahekK6itZ!+hC1y3q2e0Z1o@xNS?bIUYtY1iXl zw@G>*$hhEe@^#L?Nt++3IWE(5sAgAd?R%YTJdI)QZsG8C_k#G}-F4d;iW*8>L*$jImj3(BhYJ_-m+ z)i<>Fx$$2uda09&aiODiUr^9b>#r3+#f&9Ee!&b5&u*jvIpv-%jv*QolM^Hg6grNj z3yC<08gM#=9-6bRLn|Td#=?d(=_S+WbSzTPC2^Gf)g+?doz}!6g%DYA~Z?K~{no(3}He5e-@iv-(b@yFE7EurM>hz~S*` c;|UxLENA)DPrB4E1v-Jj)78&qol`;+0M0l|;{X5v literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/e-cautery.png new file mode 100644 index 0000000000000000000000000000000000000000..2cd5b0e97c085a12aeb4ea76fdbd621b29e09f54 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv-2k5u*8>L*=o{J#3(5wBrKd>;p?MapU~*b~tY)W}#81OOXn`1)>%+}UR(CDp*fF(iK}Mo!|D3Kx4jv_;%trGs1|+j~ zF(n3avWBoWI%;q^IlBhNKGkVi)!?ba5!$#aOK=raa0oBY?B+nz0(S0&S{B;B7+TL4 n7s{_lFq3wz5hGLVc(PTs!NLM>`w(5PAM}?ac9uz zX9$pETwufGP|4EpiGu+sQ5&-`z)1PEdPa_qb&&Bdsf3f#hhH}8TOGDK5L0>ZNMMiO z@_Ch4%e2CiwEs^HZJ7FLPvy5Rj`w|uyHl)hIQ*Sy%22#J<6Zdeh}C5ue~3iyzj%74 z_zu~K^HL4Q(LZZmsHqg`&r-U*aD9B!e?e56aXN{4+V;Ciw*S4KwsdZ`Y(i1Zp&fC8s$b3|zKs%j_}j+m?w_xd_mnm~af@3WyE(LD!}j^+ zhwC(&E>!RTb~ta!Pn)I_VjNM8#am{YJD-+&&@QArA*Py(m!)n3XT%%T9~(b8@y~zq oID`u0`T2P-r< z_*#`xCWmQgiX>e)deCtlTj5KwYClfP`~Mk>CdcnMS#Vyb$DKiQe^2 zYuV@azyE7f!7t_d*CW-sgHdJ~^Vh$t0$2WLy4-=oDX4DLVi%ah8#A%8=@g@m*c|l$ z#uMo*^LCX7TWZV1uYR%X5kt22>T~?BG9Fysy1RcB$Jx2M=66m!7fkwoU%9fd;g8!s zE9L8-g0?KY{qoN3BcD06q802<_y5{&%p7(6Se7$r4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right-on.png new file mode 100644 index 0000000000000000000000000000000000000000..1bbb5332060f03feb501816dd5820248a9a81f37 GIT binary patch literal 496 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|VnC zPZ!6KiaBp@*?S*$kU92IJwPNzWK}n>Q_GGm3U{x##vC6=T}->@xDD}#`EuUtzIRcUmx3iyTI_bn$7RLQP!<&x26kkWq-e1()%}v`|-YtyB_|Gd($60GFZHzopr08{hY-T(jq literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..fa95ce487dd4d157f5e7b837b95c5479d8447f02 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R5P zr;B4q#hkaZHhLWn5NZ40(7~}tV0Wuin}w*#?5+oT`xu z4z3^l+Fxzm+HKLdCbMv==!S~A2HSkewG~x!CNdn))YzT2`1;-rAN(&=zm+^9$yrgo zvwip0PPTiY%d2CvIDaMoEql8^S>?gQpBH~|xUYJt@?ycAAD{J-T#kJ_mhWJ|u_l3G z&ed113?!$06MIp+tkeH5$F!dxB3I;y8o07F$OtkNxiFj%WK?j+$x)xmaJP8B<+{&h zZ6)XTW-Sr=P;8fQ_kQ5!S&|xAYtQ5#c-6HwCZG2X#tQ%d literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json new file mode 100644 index 0000000000..4a4c2c11d6 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-cautery.rsi/meta.json @@ -0,0 +1,33 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-cautery" + }, + { + "name": "e-cautery-on" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/e-scalpel-on.png new file mode 100644 index 0000000000000000000000000000000000000000..04a27c34bbb860d83a26371b4c4bea8b8dcf3924 GIT binary patch literal 537 zcmeAS@N?(olHy`uVBq!ia0vp^3P9|@!3HF&`%2dVDb50q$YKTtz9S&aI8~cZnt_4w zw5N+>NX4ADGxmEQb`Uup?{F|^qw@w07Zs=I35#Y&yE`s<`{2gO`XeBeCwuGBg9kwy zy1kcjxMfUXVYw~vCornOqOyFi)a(eyUfm!2oZsD3E`LAy`=Nt-C1-5lXkdV#Wx@`Z zFZslVv~Rmyrf_0fa_Ii&|JLk0Q@i(_vdf~4{Mm1Ai^-c`wMa1!TUb@e&iheEVul2pL5SGZ>;`0S@qrNoc9ft#=G1!R8{K@p7^2t}s;X;5XuG zmTDJRWy(Hzg+#&Q^H*LxGCp_t{f=pmm?JbLyI2qO@dw}8cKZ512b)tmbDCDfY@ z%pfw2$%}2nVwulu&;G?_uP&i`Ng~`P;lC^&nhYmObQM4tRL8JT=FzO T((h3PjB5r@S3j3^P6L*2n))}$mr-B+N<_H za#Atw3kveN@n1$KJRmIfNV#XBqqSP}QZdKPZ9pxIB|(0{3=Yq3qyagJo-U3d8WWQf zBoZA?+&FRKNTg?Az|9B)oe2x?EUkR@#PhPYsjjJRx>R~@QiA?>12Z#|LNPP3prD{G zzLW$F{mh`CEtWb5!F*#p) z8d^Ut+Fh~kSc+nJc1?wP+Y)YmNw!1C3$uyH*76_uuji!Pt%DTj_;Y*pL*Ep^pEjr8u#D3XR2%d z|K#L;Zn+_-)$A2h3hVl8)f_vk>uZ1NE^GO})4lYmyT~@~78Wh7JqBjC7l>hZA%@$9 z)gKhpUX{InuX?_YtN4Vg+wVH-hudHMdwNB`fKXhAo+Uo~S1o>O))FSC&Z~+6)yz*itd|H2c&*`Ue5JRb@|^tZo5I_9 h+maxm_JwI5V{c58!JJA?7GTUVc)I$ztaD0e0s!>!z_tJY literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right-on.png new file mode 100644 index 0000000000000000000000000000000000000000..358f397c5e53ecdee587622ad481073fc1912431 GIT binary patch literal 505 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vn~ zPZ!6KiaBp**?J!i5NW&LWbbgr*Xm_}i@-}Ii-_3A3LJW`RxEy?FDO$QBFJ*^;5sSx z<4Ubcbz3YtW?%EOinDcEFr)5HP2i;OHr~@t``%Mme|X5!S;3vPK}M9JD1_leAR`86 z&Kb^#Svs>;SE;7&-nYJC=1tb%y}LKwE4aYIsb3;$U}lrGOx>$M`}s=F`+h5TWM%P+ zzhB!w@BID1hCN^3ugtx2%GyI)sP4$k<3Ij7p6B|;84-EgXsw%Yz9!%Mi+|24gzC)H zJI813^?|dZvhL9JV}j4-*ywTZ44JlHVd?%q31^ajiq1biJNEidmM8vq_h-*KTR-O)(e(>{tjYI+b`?;KRd_hh{ffYesY*_ba(gXwD-Tvf_o=BFzxx!JWF!IwDLP| ze+A5MXxaXD|MAu{+A16KU(`3`{0#rE58mtUN>zT96t>B}Cc490DLzpwZ+ zJG`UzzlUhT<@$cFOP{$Wo@ewtFRZe6zg&w$9~Xn=7p6LfKAo9m0g+csfN{y->FVdQ I&MBb@07nhd<^TWy literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..70a64d2b0e6b8b6718749584a5aad177130838d1 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|VnE zPZ!6KiaBp*ZS*=EAkpf7&{IZacW1Dy6-Q7E3;W{D&65>gykP#p;8)8ae<09RfR#PH zw>eppl|9f~eS4Vo&bVssMu()?CY-94&!df0p4|Jay3_o_e`5uACWk(j1{qEUOCg3L z6^17s3@0WsOi*S7N%%cvd9!BC?BnO%G+%v9W?gf2o6qW>GC$ictNB%UuV9e=_5A~r z{a2|^BKQ0&>n`fdF*B^LG%<2^IB@UZ#+Tdoe>CN||Mq*4ti4Ghx%7DknkU`Ujmw!R?mr?_uxW4Rxp{G1p_W~$2e|Ef=P^dVi(6|^AYHz)&-$Wz!eRHd z`bP0l+XkKpPIco literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json new file mode 100644 index 0000000000..701445e8ab --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/e-scalpel.rsi/meta.json @@ -0,0 +1,39 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e-scalpel" + }, + { + "name": "e-scalpel-on", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-left-on", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + }, + { + "name": "inhand-right-on", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/hemostat.png new file mode 100644 index 0000000000000000000000000000000000000000..951d323a52fc4dba01f24877ccbee580d5cf50cc GIT binary patch literal 261 zcmV+g0s8)lP)Gw0m&Em7yV`{yPcmR=Ie&$yGZhM)g9kI}1ZMa&x>8Z$9< zN!%;i%etto-)Ft!1a$_&=)3uI=0(?v**Dk=e{B5`-o5J8wKw$*N-69&K1_`7Dz4;> z-u(XM#0|0ne|O$_ZR2#pxu8S#0jtb6F^NZO8jed<@iy5oHh@r7gL%xCA}?i0(Tl)< OWbkzLb6Mw<&;$S}hmG6- literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..b83b2b02c0b93b94f7fd544712dd26266e0f8be5 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|TS6 zr;B4q#hkaZ47m;&h_wB0x^PgsWAX0k8djAI{EB>!G`oWPA3ZUYIdU{GW{#{?XuRTs zkW1IvPW-R;wpOi-kNea%UGT(2h6&1y3hqn}eJl+!oD7yi3`HsoPdpev5|4EgHrt1| z?(-I~-2Qvj>68LrY zfWYTcp$Ap(yLFr=Dsx<$yN&Jb`r~g^4m54Q%W>7Ptk`8TW1FtZk=cyqWg(IeI3_YW rbH9sab=o5-QN%aZ5$Z#}y$$BZn+k;;y9GW2!<50()z4*}Q$iB}ml%(J literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json new file mode 100644 index 0000000000..afbaa9cd51 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/hemostat.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "hemostat" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/omnimed.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..4f9d45bdb9f44531cc712ec31c89eb37b005ed18 GIT binary patch literal 593 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|OJY zr;B4q#hkaZ&U-UCiX7kHRNoNWv>=$pk!7ya1imyW*ZAoBP9hQF4wK)N?zVsa@(tI#dGTA50_vr%=Ux5tIYw{2*3?OpuReGp z$e}k)uO`1*xWrt1a-{2IE89CiOO;yx3SV7u_xI{$Rpp+we+%{V-xs*5%wABgp4?oP zvtQ7XOE4k!zy}o}bN&}s*7rUtdG>rl|M?Y@)ceDNcC)HmL^5ufa{099{~iAEGpCgG z)Gh4_UH{c?)yEeZ-wIS3%np7^P&T={$IM9c|GC44e&z@N3#H3^QsaR5uK~B$fl>#` z4j7m+?h25aYjkpoi(zkKEW^@`K3Pm9oLL+ik7d|iGim6i1qmo@rUW)$og`gL-bxJB5i+ z!MEQ&&J&*%qQPg*S<8CC-v6NatI{{=#jhePq*~)WmK*!o)vse(W}zV`8_Tq*eYxMx ziuT2KIJvfqYyJ4vn!#iD@abFG(;KIJ4$)-eE8BimXF=_x!m>TrO@(){eBt?}mZ0x( zMRSZc|g%tFZ)I{T9thR%!4Gi2GVDUGh!)#xV=_imUg1UtC|G zAg%3rVeP-XLl(b8dstf5y${rmO_ccpRFkB^Xkse7+HmXJ(E9DJ>HC|`svitsVq3ZY vb`sEZXU-q%_caFoS+|F?2^tZ6)r|LJb&k1va53)yrVR#9S3j3^P6na*S0Ei0mZop+@#Oid^}CPd z*Y`^a=(zFwwr1v-+! M)78&qol`;+0GEtQ^Z)<= literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..a23bdae4c5b955ffe8519b516dadf79d9884a302 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|VnE zPZ!6KiaBp*8G1Vr z590Rk3tSz0?EFlp!==)#N0b&l%a4`~x2bO6_hBiSZ-4jXOUrfgmn(K@KPqQRxcH|d zr%dwaTE#=vGm@1QHgA(Km+r0qU(1la=+{M&me9|aw*7Co^zmUtn<;zs?6_C6xISFn zPsswH=;Veq118p)*oB$rSFzm%c8e^cjKL-2bNy`d{4Ezopr0DhIl(f|Me literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..cced67007f51b69a3189eb9d6f7190721d24ee7b GIT binary patch literal 486 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vm> zPZ!6KiaBp*8G0XfkU2VEp`@T7XhVSD!Llps6+|8F7_|ju~jz2rMtS_FI_*N;I(RR=8J0k6J69 z8e}*bEQJ_~R2ZIkFn}bC3z@>QxVP)zxhVd#+vO+6 z&hlTva(jPF-oc%FKZ{lTfA{O?TeBDT9$L~rZJK=gHZw$DIaf1@Jzuk8bz@lCf?$P} zr|U%2-bwIuVLA_+yANpS|KDrX-~9haoCf1I<+xqVUa7J(U$5&_*1zz&)c5hqUN@^- z3*0mq%f#Y-%XVq&C%l%Q8}sX7`|;JWE|t!*Roq8ric6fhtM^WFfkfup3rxo*ifc^g uSK7Zw{;j%1ahyWNkAtkT&Cmdw6F=)>m4r*yjRauCF?hQAxvXNVA literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json new file mode 100644 index 0000000000..a38e04dcfd --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "retractor" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/retractor.rsi/retractor.png new file mode 100644 index 0000000000000000000000000000000000000000..24e04fe613a51b552d14e725e578eeabf2686c84 GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvl>na**8>L*NV`r^i(abQ`$)tj zMc>eV!pto{e}2s^?Y;HjRX|wk=A9S4UY->Ms%I<-@(X5gcy=QV$l2xT;uxYaF*!j& zoI`WrC&}Jk(Eyef(bk>-mN~K#0jzUmBzOW@B19xb0)0!xgd8?8WvEUzoYY`+!Ry)= zmKG-E1yf}oUKU_d<2kh`R_19YuYq)k#EdgcGs>py*EaGXh@kJUkjyTL+?p-_k6Q3S)0jSL`( zbaj@PxVuxPf6Y3y!`#>5wCCnS>?VwcFMs~sWTXFXmAZXNjr@xF2Y$a^X64e;{V`_+ zlb!uNrHYeYFAn|hUGDUs)2*ZZ_;RK%lLa20Pcz;S|FC;X$K!KJ{-637?1p$BX$j)SY3kV#Ofnoo@_}uFFcz&VVdN>#nv@zEq!wJ7P#sw z9KMhqXxFH?w}D63ibaHRE0D3)ie=0Egl*yz7N)j0?BYtPVw8Ng{rcYi+uI%E*`j@? kl%C&vi~ULhI2_LD-wo=@_|R<#3}prePgg&ebxsLQ0H?aEHUIzs literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..ed4b405d90cfbbca8c33f26a07df8a2a1f630947 GIT binary patch literal 433 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R5S zr;B4q#hkad?ERP=WsZJyeUePQPPx-?Dj_v#vADsO zuxoKiAEs|OskVEQ^_g?8-c;WgDocEJc>dj#XDm-R8E~Rfp@gE+$MdeOj+>jT%~%un zX8#l8d(8~x{Kebn+*LRISyOuKzjnjiKmT?)p1S#CwSX7nrjz;h_a^=Qvi9$fyNWGL z4YD>;d=o!~+s{|D@e}9MaMxhE6Sug&>{jQ=^w>W3z0aq=<#+hFlgZ(_+Wb_G)c*2M zb_diM8*B)mAM*?>_7|*NFZt{<+X=P*;@-~zwfoN9d&3ofXa#KjCl@4LEh@E>=hmgq&#!N1TyXN%jnx-!)H?JuZrd2{Xzrxo f&!EsRm%x7EeY;8RsbP0l+XkKvg5RY literal 0 HcmV?d00001 diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json new file mode 100644 index 0000000000..7cbc120894 --- /dev/null +++ b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/meta.json @@ -0,0 +1,22 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from /tg/station at https://github.com/tgstation/tgstation/commit/67d7577947b5079408dce1b7646fdd6c3df13bb5", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "scalpel" + }, + { + "name": "inhand-left", + "directions": 4 + }, + { + "name": "inhand-right", + "directions": 4 + } + ] +} diff --git a/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png b/Resources/Textures/_Shitmed/Objects/Specific/Medical/Surgery/scalpel.rsi/scalpel.png new file mode 100644 index 0000000000000000000000000000000000000000..44ec06e46319a765d5814f8eeb73d6e83931b1bb GIT binary patch literal 194 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfvi2$Dv*8>L*1casLmiFo!+Hc-@ zal*_kKYxC`_2AX_DB&wWHH;-ee!&b5&u*jvIT4;Njv*QolM^IZO&FcL0v2dw9C#r0 zNJ=RzDk|zxP+ZWXS5jvdgiV|GPDVvVMMUb6kkG0nXAVpWlTgW$kdV;G(b3S!$vJRf p!K7(nS~)yP2OGM&neOgoWH`1$kgMo;jXTf|22WQ%mvv4FO#m))L>mAA literal 0 HcmV?d00001 diff --git a/Resources/keybinds.yml b/Resources/keybinds.yml index 7b1ff4b54f..662c8aa20b 100644 --- a/Resources/keybinds.yml +++ b/Resources/keybinds.yml @@ -69,32 +69,24 @@ binds: - function: ShuttleBrake type: State key: Space -# Camera - Shitmed Change Start - function: CameraRotateLeft type: State key: NumpadNum7 - mod1: Control - function: CameraRotateRight type: State key: NumpadNum9 - mod1: Control - function: CameraReset type: State key: NumpadNum8 - mod1: Control - function: ZoomOut type: State key: NumpadNum4 - mod1: Control - function: ZoomIn type: State key: NumpadNum6 - mod1: Control - function: ResetZoom type: State key: NumpadNum5 - mod1: Control -# Shitmed Change End # Misc - function: ShowEscapeMenu type: State