From 1b93243beac91391f3add3e799e98f1a30eb36e2 Mon Sep 17 00:00:00 2001 From: Naive817 Date: Mon, 8 Jan 2024 06:12:08 +0800 Subject: [PATCH] Adds syndicate cyborgs. Adds Assault cyborgs to nukie uplink (#19733) * added syndicate cyborgs * add assault cyborg to uplink * updated tags.yml * changed syndicate cyborgs' hitpoints to 200 fixed NPCfaction * added noslip and MovementAlwaysTouching component to syndicate cyborgs akin to carps, as a stop gap for no magboots or jetpack. Access component fix. * fixes nodes * fixes construction * fixed typo and intergrationtests * adds back ammocounter for l6c * fix lawset * fix item size * nono, fix again --------- Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com> --- .../Locale/en-US/store/uplink-catalog.ftl | 3 + .../Prototypes/Catalog/uplink_catalog.yml | 16 ++++ .../Mobs/Cyborgs/base_borg_chassis.yml | 35 +++++++ .../Entities/Mobs/Cyborgs/borg_chassis.yml | 87 ++++++++++++++++++ .../Entities/Mobs/Player/silicon.yml | 20 ++++ .../reinforcement_teleporter.yml | 14 +++ .../Specific/Robotics/borg_modules.yml | 65 +++++++++++++ .../Objects/Weapons/Guns/LMGs/lmgs.yml | 36 ++++++++ .../Construction/Graphs/machines/cyborg.yml | 9 ++ Resources/Prototypes/tags.yml | 6 ++ .../Mobs/Silicon/chassis.rsi/meta.json | 81 ++++++++++++++++ .../Mobs/Silicon/chassis.rsi/synd_engi.png | Bin 0 -> 1634 bytes .../Mobs/Silicon/chassis.rsi/synd_engi_e.png | Bin 0 -> 425 bytes .../Mobs/Silicon/chassis.rsi/synd_engi_l.png | Bin 0 -> 544 bytes .../Mobs/Silicon/chassis.rsi/synd_medical.png | Bin 0 -> 1383 bytes .../Silicon/chassis.rsi/synd_medical_e.png | Bin 0 -> 1224 bytes .../Silicon/chassis.rsi/synd_medical_l.png | Bin 0 -> 1224 bytes .../Mobs/Silicon/chassis.rsi/synd_sec.png | Bin 0 -> 2018 bytes .../Mobs/Silicon/chassis.rsi/synd_sec_e.png | Bin 0 -> 521 bytes .../Mobs/Silicon/chassis.rsi/synd_sec_l.png | Bin 0 -> 550 bytes 20 files changed, 372 insertions(+) create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_e.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_l.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_e.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_l.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_e.png create mode 100644 Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_l.png diff --git a/Resources/Locale/en-US/store/uplink-catalog.ftl b/Resources/Locale/en-US/store/uplink-catalog.ftl index fe21340882..5dea2f3a51 100644 --- a/Resources/Locale/en-US/store/uplink-catalog.ftl +++ b/Resources/Locale/en-US/store/uplink-catalog.ftl @@ -121,6 +121,9 @@ uplink-reinforcement-radio-monkey-desc = Call in a trained monkey to assist you uplink-reinforcement-radio-name = Reinforcement Teleporter uplink-reinforcement-radio-desc = Radio in a reinforcement agent of extremely questionable quality. No off button, buy this if you're ready to party. They have a pistol with no reserve ammo, and a knife. That's it. +uplink-reinforcement-radio-cyborg-assault-name = Syndicate Assault Cyborg Teleporter +uplink-reinforcement-radio-cyborg-assault-desc = A lean, mean killing machine with access to an Energy Sword, LMG, Cryptographic Sequencer, and a Pinpointer. + uplink-stealth-box-name = Stealth Box uplink-stealth-box-desc = A box outfitted with stealth technology, sneak around with this and don't move too fast now! diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index dfad53c211..f6646e0bd4 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -430,6 +430,22 @@ tags: - NukeOpsUplink +- type: listing + id: UplinkReinforcementRadioSyndicateCyborgAssault + name: uplink-reinforcement-radio-cyborg-assault-name + description: uplink-reinforcement-radio-cyborg-assault-desc + productEntity: ReinforcementRadioSyndicateCyborgAssault + icon: { sprite: Mobs/Silicon/chassis.rsi, state: synd_sec } + cost: + Telecrystal: 65 + categories: + - UplinkUtility + conditions: + - !type:StoreWhitelistCondition + whitelist: + tags: + - NukeOpsUplink + - type: listing id: UplinkReinforcementRadioSyndicateMonkey name: uplink-reinforcement-radio-monkey-name diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml index 0bffa07dc0..67323b4640 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml @@ -224,3 +224,38 @@ - type: AccessReader access: [["Command"], ["Research"]] - type: ShowSecurityIcons + +- type: entity + id: BaseBorgChassisSyndicate + parent: BaseBorgChassis + abstract: true + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 200 + behaviors: + - !type:PlaySoundBehavior + sound: /Audio/Effects/metalbreak.ogg + - !type:EmptyContainersBehaviour + containers: + - borg_brain + - borg_module + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: NpcFactionMember + factions: + - Syndicate + - type: Access + - type: SiliconLawProvider + laws: SyndicateStatic + - type: IntrinsicRadioTransmitter + channels: + - Binary + - Syndicate + - type: ActiveRadio + channels: + - Syndicate + - type: NoSlip + - type: MovementAlwaysTouching diff --git a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml index 4a45717b79..166b5bd48c 100644 --- a/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml +++ b/Resources/Prototypes/Entities/Mobs/Cyborgs/borg_chassis.yml @@ -263,3 +263,90 @@ access: [["Service"], ["Command"], ["Research"]] - type: Inventory templateId: borgTall + +- type: entity + id: BorgChassisSyndicateAssault + parent: BaseBorgChassisSyndicate + name: Syndicate assault cyborg + description: A lean, mean killing machine with access to a varity of deadly modules. + components: + - type: Sprite + layers: + - state: synd_sec + - state: synd_sec_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: synd_sec_l + shader: unshaded + map: ["light"] + visible: false + - type: BorgChassis + maxModules: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleSyndicate + - BorgModuleSyndicateAssault + hasMindState: synd_sec_e + noMindState: synd_sec + - type: Construction + node: syndicateassault + +- type: entity + id: BorgChassisSyndicateMedical + parent: BaseBorgChassisSyndicate + name: Syndicate medical cyborg + description: A combat medical cyborg. Has limited offensive potential, but makes more than up for it with its support capabilities. + components: + - type: Sprite + layers: + - state: synd_medical + - state: synd_medical_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: synd_medical_l + shader: unshaded + map: ["light"] + visible: false + - type: BorgChassis + maxModules: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleMedical + - BorgModuleSyndicate + hasMindState: synd_medical_e + noMindState: synd_medical + - type: Construction + node: syndicatemedical + +- type: entity + id: BorgChassisSyndicateSaboteur + parent: BaseBorgChassisSyndicate + name: Syndicate saboteur cyborg + description: A streamlined engineering cyborg, equipped with covert modules. Its chameleon projector lets it disguise itself as a Nanotrasen cyborg. + components: + - type: Sprite + layers: + - state: synd_engi + - state: synd_engi_e + map: ["enum.BorgVisualLayers.Light"] + shader: unshaded + visible: false + - state: synd_engi_l + shader: unshaded + map: ["light"] + visible: false + - type: BorgChassis + maxModules: 3 + moduleWhitelist: + tags: + - BorgModuleGeneric + - BorgModuleEngineering + - BorgModuleSyndicate + hasMindState: synd_engi_e + noMindState: synd_engi + - type: Construction + node: syndicatesaboteur diff --git a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml index 91255ac7b3..aedc1eaab8 100644 --- a/Resources/Prototypes/Entities/Mobs/Player/silicon.yml +++ b/Resources/Prototypes/Entities/Mobs/Player/silicon.yml @@ -273,3 +273,23 @@ cell_slot: name: power-cell-slot-component-slot-name-default startingItem: PowerCellMedium + +- type: entity + id: PlayerBorgSyndicateAssaultBattery + parent: BorgChassisSyndicateAssault + suffix: Battery, Module, Operative + components: + - type: NukeOperative + - type: ContainerFill + containers: + borg_brain: + - PositronicBrain + borg_module: + - BorgModuleOperative + - BorgModuleL6C + - BorgModuleEsword + - type: ItemSlots + slots: + cell_slot: + name: power-cell-slot-component-slot-name-default + startingItem: PowerCellHyper diff --git a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index d603f40d78..c791580ad3 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -39,3 +39,17 @@ rules: ghost-role-information-syndicate-monkey-reinforcement-rules - type: GhostRoleMobSpawner prototype: MobMonkeySyndicateAgent + +- type: entity + parent: ReinforcementRadioSyndicate + id: ReinforcementRadioSyndicateCyborgAssault # Reinforcement radio exclusive to nukeops uplink + name: syndicate assault cyborg reinforcement radio + description: Call in a well armed assault cyborg, instantly! + suffix: NukeOps + components: + - type: GhostRole + name: Syndicate Assault Cyborg + description: Nuclear operatives needs reinforcements. You, a cold silicon killing machine, will help them. + rules: Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them. + - type: GhostRoleMobSpawner + prototype: PlayerBorgSyndicateAssaultBattery diff --git a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml index 38fd1e3041..900a79c8a6 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Robotics/borg_modules.yml @@ -82,6 +82,24 @@ tags: - BorgModuleService +- type: entity + id: BaseBorgModuleSyndicate + parent: BaseBorgModule + abstract: true + components: + - type: Tag + tags: + - BorgModuleSyndicate + +- type: entity + id: BaseBorgModuleSyndicateAssault + parent: BaseBorgModule + abstract: true + components: + - type: Tag + tags: + - BorgModuleSyndicateAssault + # generic modules - type: entity id: BorgModuleCable @@ -494,3 +512,50 @@ items: - WeaponAdvancedLaser - Machete + +- type: entity + id: BorgModuleOperative + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule ] + name: Operative cyborg module + description: A module that comes with a crowbar, a Cobra pistol, an Emag and a pinpointer. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-tools + - type: ItemBorgModule + items: + - Crowbar + - WeaponPistolCobra + - Emag + - PinpointerNuclear + +- type: entity + id: BorgModuleEsword + parent: [ BaseBorgModuleSyndicate, BaseProviderBorgModule ] + name: Energy sword cyborg module + description: A module that comes with an energy sword. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-tools + - type: ItemBorgModule + items: + - EnergySword + - PinpointerNuclear + +- type: entity + id: BorgModuleL6C + parent: [ BaseBorgModuleSyndicateAssault, BaseProviderBorgModule ] + name: L6C ROW cyborg module + description: A module that comes with a L6C. + components: + - type: Sprite + layers: + - state: syndicate + - state: icon-tools + - type: ItemBorgModule + items: + - WeaponLightMachineGunL6C + - PinpointerNuclear diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml index 729f06389f..6bf4eb3db2 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/LMGs/lmgs.yml @@ -79,3 +79,39 @@ steps: 4 zeroVisible: true - type: Appearance + +- type: entity + name: L6C ROW + id: WeaponLightMachineGunL6C + parent: BaseItem + description: A L6 SAW modified for cyborg use. Feeds .30 rifle ammo from an internal 100 round magazine. + components: + - type: Gun + minAngle: 4 + maxAngle: 25 + angleIncrease: 4 + angleDecay: 16 + fireRate: 8 + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: + path: /Audio/Weapons/Guns/Gunshots/lmg.ogg + soundEmpty: + path: /Audio/Weapons/Guns/Empty/lmg_empty.ogg + - type: Sprite + sprite: Objects/Weapons/Guns/LMGs/l6.rsi + layers: + - state: base + map: [ "enum.GunVisualLayers.Base" ] + - state: mag-3 + map: [ "enum.GunVisualLayers.Mag" ] + - type: Item + size: Huge + - type: ContainerContainer + containers: + ballistic-ammo: !type:Container + - type: BallisticAmmoProvider + proto: CartridgeLightRifle + capacity: 100 + - type: AmmoCounter diff --git a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml index 6f65937c96..0f012cefc9 100644 --- a/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml +++ b/Resources/Prototypes/Recipes/Construction/Graphs/machines/cyborg.yml @@ -196,3 +196,12 @@ - node: service entity: BorgChassisService + + - node: syndicateassault + entity: BorgChassisSyndicateAssault + + - node: syndicatemedical + entity: BorgChassisSyndicateMedical + + - node: syndicatesaboteur + entity: BorgChassisSyndicateSaboteur diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index bbfd7e3839..abc5cfa483 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -166,6 +166,12 @@ - type: Tag id: BorgModuleService +- type: Tag + id: BorgModuleSyndicate + +- type: Tag + id: BorgModuleSyndicateAssault + - type: Tag id: BorgServiceHead diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json index 6f31a4f5d5..68fbf1985e 100644 --- a/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json +++ b/Resources/Textures/Mobs/Silicon/chassis.rsi/meta.json @@ -234,6 +234,87 @@ { "name": "service_l", "directions": 4 + }, + { + "name": "synd_sec", + "directions": 4 + }, + { + "name": "synd_sec_e", + "directions": 4 + }, + { + "name": "synd_sec_l", + "directions": 4 + }, + { + "name": "synd_medical", + "directions": 4 + }, + { + "name": "synd_medical_l", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "synd_medical_e", + "directions": 4, + "delays": [ + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ], + [ + 0.1, + 0.2, + 0.1 + ] + ] + }, + { + "name": "synd_engi", + "directions": 4 + }, + { + "name": "synd_engi_e", + "directions": 4 + }, + { + "name": "synd_engi_l", + "directions": 4 } + ] } diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi.png new file mode 100644 index 0000000000000000000000000000000000000000..961f0172309ab62d6b851707113d93e1b7174744 GIT binary patch literal 1634 zcmV-o2A%ndP)5=TkG^-Z!;1GhMaQ zBij9->6xw{-}k;(LS^`|dr6s^MTv`HL!=)vlYQ-lGA1S#1bmRIQ_fF^j z!j^Ztx94K@rX_XZCyjuYmS1$Y{`k`aJbCzW|7@$Ja({r>8>{|KNiU zc*8|P6{$?XfKlHuK%pGix6f_gz3Yvi_S?7k)_5!EL>b1X;3uyEE5~1Ts~5iVzvnw0 zf4_6*Z*M$h*REZ6bqjA@*b;Qekt70OR#O1BxvW5p=3*TJK678Vx@+{QPD-Ci1OTp~ z7S2JQ4W>p>7YX2l`{Ru@i&qlSFH6I(On{8nP}}(J_g!@;tBV8~58=G={rm6LqUhHh zuqjI=A!{F?w=WV3aLW>VSR89ev)hWU_b?Pnm z=p#$+gEJrc=kK3>&;9c2x;uOJ)8sxY6EGN3{;%5^b+$Q%`$vh9k-h6!eO!Z7v}pK5rW7 z^hO@fzWd>Ok1wolur05GKb8P>p!?Q#A7JyZO@9X*CG>1zej(bnr+~|m5Wl;%JydS- zG2WI}#UD$+xlhh{=1d3WA%lfa!;as8=}p17+TB2mV!T$0PVaG7}rUQJ6{0gh3B7j zOOGx2@2?I>s>3HqUy0Q1=_Gu8?=8M06+cQq2rgj}vYlV~=39Shi_GUxb<~!6soT?8 z;_o6L22SUE>Hvdv?&?@|09P4xX~T9km4sR2M@N9Z?^ftkN?3NKAR=%nq^)syY@Q^u z#NR~#4C&;j9T$rWok$5f=D*zuN=f~vz4ityj#am)v&N5(04nx|Qz3A(kr-NC^*NGA z5!&~ze*NYC+)ddG%@RNPED$^@Mm(=Y>cAgK!0Lt7xs~H9W4)_YfH|$vSE^#O!XG;V zaul~>cVsy-3;Z@R@HJF@+SYz*(a6dX6I` zhNWXK2O8Y(gCNLMNJ%EZp4YA5m4O7s43L~)Weh7~d^ATO2P-)`Y=L!d=NZ>DNvLAH z#m~j6M1Y38^}r}Z&VLkP*mH#>$QeN&DK0T1Q@;Y`4@A_eH!8c$jbBDXX`FhWCB z_2kXzUB$+&^{7&d2bcVtBkV4(j;5APzmZ!UkvCc-$ar4BAbehAM}`pG&U9omLu3?A zNE@~aGsG|i$E4cIWi?4;y!x=Bh_C`7a)eqEXiFV*w*ix60&HfO=A1R2&UxF2eLIjK zqcH}^5RfW!AT`IOv)g! zi>lg$@kaUu3j!oopW3p-zWn@)Lcz$Ld9^dY$k;%%@=6i8q|E9+($5#Vt`!`Wg!ut6 zQS9=yH(uZS2(a;aK*Rh1%2M+K#(f6EvPt;~3eswQF!)1l|2O#oA-)nMD9gpKoF8!V z?URLFt0kQb}Eb{|& z(9&+ter6kyAD~oOy$HKIZA^ZEw%B^h+MPBgKR^abmt6e+Y<_?ermcaE%MS>%(;Jx| gfYEJ!z#j1b0q)-JOwB;_d;kCd07*qoM6N<$f_kF~rT_o{ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_e.png new file mode 100644 index 0000000000000000000000000000000000000000..1c062b2489e3b5f22b8af89fc82841d822fc0931 GIT binary patch literal 425 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|R5U zr;B4q#hkaZ47(0Fh_wB0h-KM$qb~7%(p%G}yJgi(- on_EGv?H&FyCa&OU0tH9?v6jOozZWdb0fs$;r>mdKI;Vst0Q^m^l>h($ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_engi_l.png new file mode 100644 index 0000000000000000000000000000000000000000..6061ca87a015842362b2b614e7c1936875cc8aab GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|VnF zPZ!6KiaBp*8TuVI5NZ4Gk>lvZbH??Rtc8;}-$ludh10t%+fN)4+`%j~)4C+{`Gjzp z0v+p(t8YyFeQ$e+Z(PdXc;Vwy@AJ-3W;!4v$ndO#!N8rR!BXkLr0#ukr`2zN{QCW+ z@JvA+ht_z@bE)cz9tR>Sj%t~6-ec z^GoWH-zA`R;#Xw?cZuJB(`RbOejF@r$o{ahxY+Rf4X?f2FGdMRJ56$b@VMn|+K$O#mR|p>_;zJq zhz(XY@?gRyXcx*#jjN9T%kApa|5?F&x&x_&s@TJ>!G8;{8y85}Sb4q9e015os&Hw-a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical.png new file mode 100644 index 0000000000000000000000000000000000000000..9f6a546a69d29f1ed408dd3c6bbd7081f722a2c3 GIT binary patch literal 1383 zcmV-t1(^DYP)~=54x$pM-A4fxHWYZ5Rz=)r| zdO1Ab?f&}i=YDUOv8NJx(63g25r1}k>=HNF_|?_#CMNzR{qPbnO&hUE;|Jn=-wP)v zPmA>J`(M}Bp*h0}FfCtx`+jfC?(OaLhS7!+7`UG-AcQIf!2F=y5AWaI5;cMt!*xM~&Z_U9?PmHwgvKpf^}pFe&&pMBn*n~*oAj}V610{eS#%t+UMFAE{h12nD;SJv*aH;DtRQJ>l7FXF!GI z^={ztXiie40ApYZEeE1@kHiG)&^~+XG8-BR)>z!40;X8%?!eeI4G`QI%1VSlU!9=0 z4B0x;5+P;+_xhIELDBPRQ2Hech$_E&FMvt0ABPgy3VLpZnf{ywbUP1#&>+BTUe~)m zn*nc5gu=D-t1SSV40w1rMPq{Q#~xvj>GPN;e0m}Tz|q0a!sVN67R&1+)lnXgU@LF;0rM04o8RCTE`A zPlXMf;(~By+8gD;yN@8O0M5JhzK8Q;sF&AVVA$eVoV~1OgA=+Qi}TSOM}b!Qp+iwk zJlGN>E9`P8TH0u}(hubU&^DZrUh!P7Jb+`qqU9{W5Z(+yvoqH*b0=7$Z}%6MpO4Hs zc&z(oXzeqt(7E*mw9O%mY6P|43C zFV#z6i~4^AS^QKVivxQ2;62k5d=|lDS~jai_*fh}Kt2WLJ^BW@z#-$*U7!|ZQhWe_ zT^QHt0gP?YC1y0t7ia}Yc}pve=@yhNK)1wO!mA57ysdYFbNhX3lPPtI^hSx7NQu6x zJU&4Ua? zMkLVc)e^#)APWy7xEf^$%vM>Oi+6$groEjZM~adq z78SrD&+8N7aKpfF&Q9On9$gPBU~|lEbtwYPHfSxqh@t|#N(-+oR)WDRoUTyp=x`II!J>pYU~ZUbR)BV9 zaGagX2-y+hb4xV98rD#&b8E{Sc&u%hsLlht&J3?z4NMte`mGjVzp?cTYw$vx7Xc#O zBH`NLor#?vi1Rv|Bid>K`Wedb9G?M+P^4QVTpKK{ugJfuv;e}Z;21OEyY>iqb$ZSb zsHuAFkqWEu>?gW5NPq$D%Fxm{CoDbS#d prW;E0w>D^mEMUu1pBA+6_Xl&j9o?fD3OWD)002ovPDHLkV1gAqd{6)Y literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_e.png new file mode 100644 index 0000000000000000000000000000000000000000..3e84a86ff681ad44ef3c1ea0749c65285bf5ee6e GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq&N#aB8wRq_>O=u<5X=vX$A(C zDo+>3kcv5P=kE2Bb`)tn-XStkxz%H#dy)5C4P6fr4Sk2%=MY2<^LF+YoDW8PdMdm-xZqw;rpQ@d*Yez zRPb`FoNX`q`sXTL2eEI}`MaZb@0zI-@~v{yP2V&9@u|Q5e$JdXU;nvOhGqO-)*l6l zuW#O}m~U<^I3e@-vdc#Cou(JE_PtV&S;zQ^zw_?w-#0&{#=ppI&-T*OdA|C5)1g+g z+^C(>`L^@J55avU!qCQaAb>%Fi@_P;Rj}X|t{rz@&HKu>`0%dpK%b}oefVNSrd+y! z@9(WEwlT;*S+45ir2gOMd*+Ta?|T&9PLbm;eajzz_`JvO@4GJlyfy8<)`9jj^%uLv z-W`pI{4F28?cwF`hp!8~ovxozKPjYsrfu`?xi`#?o;lxafNr~5)Paku#jn2nK413j z@0}Z`trvSx{oAXf8kZOJ}%B~+RfK;xsXKaX(pD=mJuZC?* ztgpW^&iW?4mOn%5LPRS_q<85Rb{(!4ykU#&7OZq={>u1Y5G}NQO1_ua>&i|}IdQMO zyYJlLFO?NXX9%zUc`I7bzwUd@8(FheYKOPpkB!^SD|xK;#inG-_+sO{haM05Z4Vw> z=>B_m=-pQR^Stxih6ZTPf~0qZV6YFvYvz)S`U#!CjC8NEFPX5_ zP9bK+vw7RM{$g0T&SP<>(pSb({=x{8^~T2*wOg2+T_3xxiu=XdAOH4*{H_#ZK}lgg zTNrjK?B4nQ%hJP>N^VZ(7LnXw^5#HDk%VFP&x=e?wBDb6y4Bk5#!6msufC^gy7rmk zB^&o!^X10vXvwzPx~{5j62nXG`d{yIU)QKgGix_%!WPr6L=Oi_pCb%m`g2{_0hm%Kg7b zOcJ|oYuonb?q$|&R;i75FL#S%WL!_{W|eaCsZQcD`N#0;bhpEvqTPRhMH7RktDnm{ Hr-UW|of9j+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_l.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_medical_l.png new file mode 100644 index 0000000000000000000000000000000000000000..3e84a86ff681ad44ef3c1ea0749c65285bf5ee6e GIT binary patch literal 1224 zcmeAS@N?(olHy`uVBq!ia0vp^2|(Py!3HG1+{xJmq&N#aB8wRq_>O=u<5X=vX$A(C zDo+>3kcv5P=kE2Bb`)tn-XStkxz%H#dy)5C4P6fr4Sk2%=MY2<^LF+YoDW8PdMdm-xZqw;rpQ@d*Yez zRPb`FoNX`q`sXTL2eEI}`MaZb@0zI-@~v{yP2V&9@u|Q5e$JdXU;nvOhGqO-)*l6l zuW#O}m~U<^I3e@-vdc#Cou(JE_PtV&S;zQ^zw_?w-#0&{#=ppI&-T*OdA|C5)1g+g z+^C(>`L^@J55avU!qCQaAb>%Fi@_P;Rj}X|t{rz@&HKu>`0%dpK%b}oefVNSrd+y! z@9(WEwlT;*S+45ir2gOMd*+Ta?|T&9PLbm;eajzz_`JvO@4GJlyfy8<)`9jj^%uLv z-W`pI{4F28?cwF`hp!8~ovxozKPjYsrfu`?xi`#?o;lxafNr~5)Paku#jn2nK413j z@0}Z`trvSx{oAXf8kZOJ}%B~+RfK;xsXKaX(pD=mJuZC?* ztgpW^&iW?4mOn%5LPRS_q<85Rb{(!4ykU#&7OZq={>u1Y5G}NQO1_ua>&i|}IdQMO zyYJlLFO?NXX9%zUc`I7bzwUd@8(FheYKOPpkB!^SD|xK;#inG-_+sO{haM05Z4Vw> z=>B_m=-pQR^Stxih6ZTPf~0qZV6YFvYvz)S`U#!CjC8NEFPX5_ zP9bK+vw7RM{$g0T&SP<>(pSb({=x{8^~T2*wOg2+T_3xxiu=XdAOH4*{H_#ZK}lgg zTNrjK?B4nQ%hJP>N^VZ(7LnXw^5#HDk%VFP&x=e?wBDb6y4Bk5#!6msufC^gy7rmk zB^&o!^X10vXvwzPx~{5j62nXG`d{yIU)QKgGix_%!WPr6L=Oi_pCb%m`g2{_0hm%Kg7b zOcJ|oYuonb?q$|&R;i75FL#S%WL!_{W|eaCsZQcD`N#0;bhpEvqTPRhMH7RktDnm{ Hr-UW|of9j+ literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec.png new file mode 100644 index 0000000000000000000000000000000000000000..bfff26548790a627a5e6d295ba7521262ad91881 GIT binary patch literal 2018 zcmV<82Oao{P)~*lMG%I^5;3;V2?+vopc4_YgmWa2ofB9WAW|a# zhSU89N2G}0E5@b4*si-rhSazg{l?zSLbHTG6jo0EDl<_ilgv^5wrgTFqgkmj2btm*b;J^s5vg z;u8GY-d=zGe7Wq8SFXI>|2E24?MexvFTwXec)!0s`~8pE^k?}16mgM2c+TkrK}vY> z>Qz;H#R@?Cf`~@p848&!Lw7Bny!6t^^5hCb%=G$7S|z1rGSAv4SE6xW|3^ z=U;=wMVMaFH?6E7dVDD%3K^}Vl>Vp!)X=9lKIwjW^lN{8>x<92AAkC}^LuiPQjDHG zeE6up_xkz#p@8X2V0vG4MQi!|#p`#jUF~@iAGJfV$N~`b=FJ=Z@$TJkx_kG&-D(}- zc}L9fO>4OD%mM-(Q{pEaMG8=Fe)!RTw^%$lr-bjnJJ}KkvVg-oUv^I(pEXlLGL*}%zZP2Dhp7f67b;TgZ}!fuMc|$fS&1{mck1Rfn9u4WdYIoU;$VKPEhX( zt%m`$F?}f?pToVK!~qh-$J-b*RB9Q?!Dkmi3P*53&*HtNLqHaQr`33u1JwAV=LMc| zWSq7D0s;x@*9afqX*L8Th?vk10cHLQIs{EU?uAQ<*MPPqqTW>gf?yTfslk0B&Zbec&W+06%m)d3_S_yvyZ^cou7A@_SR8o- zC=laIaP_=HW*>b3?~g@=g<+qR%BvzpJLmNqCEdW0d zGr*dU#fY0GOJu=^$(&dq(g)Db-7B4aM&ke%o}Oi_c?ybqK5b2%0#iuQ_u-hLUxK1g z*ol(|AoOMY$po>2S|*0DfBj$;dp6P+QuMLP^}DOHr>FHpV2C)HhM+)Pu4hx2$kA7u z_>~&^`bO8Ab;BV2qyi#w6hZa{lUBnz()gOmt<$8ZN|?yeXQ5L|-xo|d`fn&e#L*@z zD-p-cAg=dlkaIm-zq4Y=EchDTzsU)Ik@S-mfcDTl<4pu$&>PaZ-&arYjko1X*dZvM z*L=PU`cmrp`8j&$6oBc0x0r#eUSouz3*8VK}vujnAz3N5d@9G`&z|$EJ0CLI652E z31Sk2HF)cK0Fa;vCVo(c3mg4|o{eRrvWp?oQ7*h1_QZ%YK$SSw4O+lU@ZP@j;?~De z-{nH^(IKD)T=SS)%*T?`SjN(9ONca@Apoxo)x$vUL7-}4G^$s;S-R|<0xyo{5c8OmQeuLq#>bT4JyM(gDuLQu3%-i9hJf%*BEghLr|Kdw zKE;>dn%TDXygy-%KUUoeew%-nX~erwA># zj>uE9&C(9Wf3yI41q)z%T&q1o_#1COm7bFlYPakcE5IFK)HWFyLeN~#)FMWoKJHVA z5Wblm2}bxTkRDGFkA&xz$2*&Tb98XTwF)m%fNxTe@MM1|S1}FA0ihgSw}=R-28jkj z`kyn{p6^+rntcgXJ^Vez0KkrWN|FFHswpoF_ zy1Pn;38|i^T1)~)KPg`SS6D0_6jh@~6(He7Y`IB=u_9x|=MkFk4X9yajJ_)$8Zk2T zy#nHOvtAgbUpxd@i+kNJ=Gs*FWM6=o5aWwQH(3b?@5+zaCU~Isr^2e7tba54{;VO`kMACA^-pY07*qoM6N<$f)g&y AlmGw# literal 0 HcmV?d00001 diff --git a/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_e.png b/Resources/Textures/Mobs/Silicon/chassis.rsi/synd_sec_e.png new file mode 100644 index 0000000000000000000000000000000000000000..d881e3d2c903858a5eef9ff6cd1d3b27fa3fa055 GIT binary patch literal 521 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fA0|Vo3 zPZ!6KiaBp*IeHxq5NP|~pnbV_L9}2MGylcj*>Q_S?^HLHJ$0H8ci7k5)+JwIN}h7Z zgdM%chDU`=k4=}HW%1du!uMtMliInShh~?vJl??|ah&ylg&xDPLPi5WWybE!7V}ji zw^-Nj>Tti(^K!%gJXQD8G{5Utqf#`I zm`-s&TJ+M=ZuPN67oLcx`UdfQ6j{JMC&)NdB0RM))Qa_($TH!lB0n~XFXWZd+_1Ea zjn(4+?+HxuzuBG~e_O`&MHFZQFtprb4qSa;vERP;!1ZN5P$cjG(xG79u@H57y}vz29*A^RH7a@}sXmHkme&|*7$@E>$!9P1!Pe~(Gc4I-3nJR