diff --git a/Resources/Locale/en-US/_DV/datasets/names/spider-operative.ftl b/Resources/Locale/en-US/_DV/datasets/names/spider-operative.ftl new file mode 100644 index 0000000000..e12c0b5bed --- /dev/null +++ b/Resources/Locale/en-US/_DV/datasets/names/spider-operative.ftl @@ -0,0 +1,46 @@ +names-spider-operative-dataset-1=Operator Zilla +names-spider-operative-dataset-2=Operator Thrasha +names-spider-operative-dataset-3=Operator King Gohma +names-spider-operative-dataset-4=Operator Queen Gohma +names-spider-operative-dataset-5=Operator MechaZilla +names-spider-operative-dataset-6=Operator Maneater +names-spider-operative-dataset-7=Operator OrbWeaver +names-spider-operative-dataset-8=Operator Archne +names-spider-operative-dataset-9=Operator Dokugu +names-spider-operative-dataset-10=Operator Prybar +names-spider-operative-dataset-11=Operator WebHead +names-spider-operative-dataset-12=Operator RadiactiveRed +names-spider-operative-dataset-13=Operator Wolf +names-spider-operative-dataset-14=Operator WidowMaker +names-spider-operative-dataset-15=Operator TrapDoor +names-spider-operative-dataset-16=Operator Spinner +names-spider-operative-dataset-17=Operator Durathread +names-spider-operative-dataset-18=Operator WeaverCleaver +names-spider-operative-dataset-19=Operator NetBall +names-spider-operative-dataset-20=Operator Tsuchigumo +names-spider-operative-dataset-21=Operator RedWreckless +names-spider-operative-dataset-22=Operator Quelaag +names-spider-operative-dataset-23=Operator ChaosWitch +names-spider-operative-dataset-24=Operator FireKeeper +names-spider-operative-dataset-25=Operator SilkSong +names-spider-operative-dataset-26=Operator PaleHornet +names-spider-operative-dataset-27=Operator DeepNest +names-spider-operative-dataset-28=Operator GraveMaker +names-spider-operative-dataset-29=Operator RedBack +names-spider-operative-dataset-30=Operator Wanderer +names-spider-operative-dataset-31=Operator EggSac +names-spider-operative-dataset-32=Operator FennelWeb +names-spider-operative-dataset-33=Operator CrewEater +names-spider-operative-dataset-34=Operator Arachnophobia +names-spider-operative-dataset-35=Operator RogueWeb +names-spider-operative-dataset-36=Operator Spectacular +names-spider-operative-dataset-37=Operator Amazing +names-spider-operative-dataset-38=Operator Ultimate +names-spider-operative-dataset-39=Operator Parker +names-spider-operative-dataset-40=Operator Morales +names-spider-operative-dataset-41=Operator Stacy +names-spider-operative-dataset-42=Operator Penny +names-spider-operative-dataset-43=Operator Noir +names-spider-operative-dataset-44=Operator Ham +names-spider-operative-dataset-45=Operator Brown +names-spider-operative-dataset-46=Operator Hobo \ No newline at end of file diff --git a/Resources/Locale/en-US/_DV/ghost/roles/nukie-spider.ftl b/Resources/Locale/en-US/_DV/ghost/roles/nukie-spider.ftl new file mode 100644 index 0000000000..cf43b9ce50 --- /dev/null +++ b/Resources/Locale/en-US/_DV/ghost/roles/nukie-spider.ftl @@ -0,0 +1,5 @@ +ghost-role-information-nukie-spider-name = Nuclear Operative Spider +ghost-role-information-nukie-spider-description = A Nuclear Operative reinforcement for the Syndicate. +ghost-role-information-nukie-spider-rules = Normal syndicate antagonist rules apply. Work with whoever called you in, and don't harm them. + The crew is allowed to kill you without warning. + You are allowed to attack the crew and destroy the station without provocation. diff --git a/Resources/Locale/en-US/_DV/store/uplink/allies.ftl b/Resources/Locale/en-US/_DV/store/uplink/allies.ftl index 4a60524748..f610689ab0 100644 --- a/Resources/Locale/en-US/_DV/store/uplink/allies.ftl +++ b/Resources/Locale/en-US/_DV/store/uplink/allies.ftl @@ -1,5 +1,8 @@ uplink-reinforcement-radio-nukie-mouse-name = Mouse Operative Reinforcement Teleporter uplink-reinforcement-radio-nukie-mouse-desc = Calls in a specially trained mouse operative to assist you. +uplink-reinforcement-radio-nukie-spider-name = Spider Operative Reinforcement Teleporter +uplink-reinforcement-radio-nukie-spider-desc = Calls in a specially trained arachnid operative to assist you. + uplink-reinforcement-radio-cyborg-saboteur-name = Saboteur Cyborg Reinforcement Teleporter uplink-reinforcement-radio-cyborg-saboteur-desc = Calls in a lightly armored cyborg specializing in sabotage and assassinations. diff --git a/Resources/Prototypes/_DV/Catalog/Uplink/allies.yml b/Resources/Prototypes/_DV/Catalog/Uplink/allies.yml index b20ed7e68f..2688446fc0 100644 --- a/Resources/Prototypes/_DV/Catalog/Uplink/allies.yml +++ b/Resources/Prototypes/_DV/Catalog/Uplink/allies.yml @@ -12,6 +12,20 @@ categories: - UplinkAllies +- type: listing + id: SpiderOperativeReinforcement + name: uplink-reinforcement-radio-nukie-spider-name + description: uplink-reinforcement-radio-nukie-spider-desc + productEntity: ReinforcementRadioSyndicateNukieSpider + icon: { sprite: _DV/Mobs/Animals/nukiespider.rsi, state: syndicate-spider-egg } + discountCategory: rareDiscounts + discountDownTo: + Telecrystal: 4 + cost: + Telecrystal: 6 + categories: + - UplinkAllies + - type: listing id: UplinkMobCatC4 name: uplink-mobcat-C4-name diff --git a/Resources/Prototypes/_DV/Damage/modifier_sets.yml b/Resources/Prototypes/_DV/Damage/modifier_sets.yml index 9a8c94100f..3da17c0305 100644 --- a/Resources/Prototypes/_DV/Damage/modifier_sets.yml +++ b/Resources/Prototypes/_DV/Damage/modifier_sets.yml @@ -173,3 +173,15 @@ Slash: 40 Piercing: 15 Heat: 10 + +- type: damageModifierSet + id: NukieSpider + coefficients: + # Shamelessly stolen from the Elite Syndicate Hardsuit + Blunt: 0.8 + Slash: 0.8 + Piercing: 0.6 + Heat: 0.2 + Radiation: 0.01 + Caustic: 0.5 + Cold: 0.4 \ No newline at end of file diff --git a/Resources/Prototypes/_DV/Datasets/Names/mouse_death_commando.yml b/Resources/Prototypes/_DV/Datasets/Names/mouse_death_commando.yml index 7e14743a5d..e98ea532f4 100644 --- a/Resources/Prototypes/_DV/Datasets/Names/mouse_death_commando.yml +++ b/Resources/Prototypes/_DV/Datasets/Names/mouse_death_commando.yml @@ -2,4 +2,4 @@ id: NamesMouseDeathCommando values: prefix: names-mouse-death-commando-dataset- - count: 40 + count: 46 diff --git a/Resources/Prototypes/_DV/Datasets/Names/nukie_spider.yml b/Resources/Prototypes/_DV/Datasets/Names/nukie_spider.yml new file mode 100644 index 0000000000..7eae088829 --- /dev/null +++ b/Resources/Prototypes/_DV/Datasets/Names/nukie_spider.yml @@ -0,0 +1,5 @@ +- type: localizedDataset + id: NamesNukieSpider + values: + prefix: names-spider-operative-dataset- + count: 46 \ No newline at end of file diff --git a/Resources/Prototypes/_DV/Entities/Mobs/NPCs/nukiespider.yml b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/nukiespider.yml new file mode 100644 index 0000000000..d53e7bd142 --- /dev/null +++ b/Resources/Prototypes/_DV/Entities/Mobs/NPCs/nukiespider.yml @@ -0,0 +1,93 @@ +- type: entity + name: nuclear operative tarantula + parent: MobGiantSpiderAngry + id: MobNukieSpider + description: A spider? A NUKIE SPIDER?! + suffix: syndicate + components: + - type: GhostRole + makeSentient: true + allowSpeech: true + allowMovement: true + name: ghost-role-information-nukie-spider-name + description: ghost-role-information-nukie-spider-description + rules: ghost-role-information-nukie-spider-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable + - type: RandomMetadata + nameSegments: [NamesNukieSpider] + - type: NpcFactionMember + factions: + - Syndicate + - type: PointLight + radius: 1.5 + energy: 2.3 + offset: 0, -1 + color: green + - type: Sprite + drawdepth: Mobs + sprite: _DV/Mobs/Animals/nukiespider.rsi + layers: + - map: ["enum.DamageStateVisualLayers.Base", "movement"] + state: syndicate-spider + - type: SpriteMovement + movementLayers: + movement: + state: syndicate-spider-moving + noMovementLayers: + movement: + state: syndicate-spider + - type: MobThresholds + thresholds: + 0: Alive + 90: Critical + 150: Dead + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 4.9 + - type: DamageStateVisuals + states: + Alive: + Base: syndicate-spider + Critical: + Base: syndicate-spider-dead + Dead: + Base: syndicate-spider-dead + - type: Tag + tags: + - FootstepSound + - DoorBumpOpener + - Radio + - type: Respirator #It just works? + minSaturation: 5.0 + - type: TemperatureDamage + heatDamageThreshold: 423 + coldDamageThreshold: 0 + - type: PressureImmunity + - type: Insulated + - type: MeleeWeapon + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 6 + Structural: 15 + - type: MobPrice + price: 250 # Their suits, while tiny, go for quite a bit on the market + - type: IntrinsicRadioReceiver + - type: IntrinsicRadioTransmitter + channels: + - Syndicate + - type: ActiveRadio + channels: + - Syndicate + - type: Access + tags: + - NuclearOperative + - SyndicateAgent + - type: Damageable + damageContainer: Biological + damageModifierSet: NukieSpider diff --git a/Resources/Prototypes/_DV/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml b/Resources/Prototypes/_DV/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml index bdb36dd8bb..419926e7ff 100644 --- a/Resources/Prototypes/_DV/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml +++ b/Resources/Prototypes/_DV/Entities/Objects/Devices/Syndicate_Gadgets/reinforcement_teleporter.yml @@ -19,6 +19,27 @@ - type: UseDelay delay: 300 +- type: entity + parent: ReinforcementRadio + id: ReinforcementRadioSyndicateNukieSpider + name: inexplicably menacing egg + description: You're not sure if that's a radio transciever or an eye blinking at you. Might attract an odd spider. + components: + - type: Sprite + sprite: _DV/Mobs/Animals/nukiespider.rsi + layers: + - state: syndicate-spider-egg + - type: GhostRole + name: ghost-role-information-nukie-spider-name + description: ghost-role-information-nukie-spider-description + rules: ghost-role-information-nukie-spider-rules + - type: GhostRoleMobSpawner + prototype: MobNukieSpider + - type: EmitSoundOnUse + sound: /Audio/Animals/snake_hiss.ogg + - type: UseDelay + delay: 300 + - type: entity parent: ReinforcementRadio id: ReinforcementRadioSyndicateHostageWarden diff --git a/Resources/ServerInfo/Guidebook/_DV/Rules/GameRules/2_Metagaming.xml b/Resources/ServerInfo/Guidebook/_DV/Rules/GameRules/2_Metagaming.xml index 5055985beb..5863a51c6e 100644 --- a/Resources/ServerInfo/Guidebook/_DV/Rules/GameRules/2_Metagaming.xml +++ b/Resources/ServerInfo/Guidebook/_DV/Rules/GameRules/2_Metagaming.xml @@ -25,7 +25,7 @@ For entities lacking crew-level intellect (e.g. a tarantula), the understanding of station functions and how they may be sabotaged is shielded. The revealing condition for this shield is any of the following: - - being a Mouse Operative, Syndicat, or Ancestor Reinforcement + - being a Syndicate reinforcement creature, including but not limited to Mouse Operative, Syndicat, or Ancestor Reinforcement. - being uplifted by the power of Cognizine (i.e. “awakened”) ## High-Risk Items diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/icon.png b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/icon.png new file mode 100644 index 0000000000..33f672e15c Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/icon.png differ diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/meta.json b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/meta.json new file mode 100644 index 0000000000..96c97de4af --- /dev/null +++ b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/meta.json @@ -0,0 +1,51 @@ +{ + "version": 1, + "size": { + "x": 32, + "y": 32 + }, + "license": "CC-BY-SA-3.0", + "copyright": "Edited from https://github.com/tgstation/tgstation/commit/53d1f1477d22a11a99c6c6924977cd431075761b and Nimfar11 (github) by Sal_DragonsNOA for SS14. Gameplay implementation by RoboBozu.", + "states": [ + { + "name": "syndicate-spider", + "directions": 4 + }, + { + "name": "syndicate-spider-egg" + }, + { + "name": "icon" + }, + { + "name": "syndicate-spider-dead" + }, + { + "name": "syndicate-spider-moving", + "directions": 4, + "delays": [ + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ], + [ + 0.2, + 0.2, + 0.2 + ] + ] + } + ] + +} diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-dead.png b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-dead.png new file mode 100644 index 0000000000..9d51b4f667 Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-dead.png differ diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-egg.png b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-egg.png new file mode 100644 index 0000000000..16fd351d92 Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-egg.png differ diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-moving.png b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-moving.png new file mode 100644 index 0000000000..43132a61e2 Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider-moving.png differ diff --git a/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider.png b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider.png new file mode 100644 index 0000000000..5e0d642abc Binary files /dev/null and b/Resources/Textures/_DV/Mobs/Animals/nukiespider.rsi/syndicate-spider.png differ