From a7af65d3e643280177e280ebf171dc4c89879a4a Mon Sep 17 00:00:00 2001 From: Kirus59 <145689588+Kirus59@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:58:45 +0300 Subject: [PATCH] Add spider queen antag (#1553) * Add spider queen antag * Return webtables * Fix spider actions --- .../ru-RU/ss220/actions/spider-actions.ftl | 37 ++ .../Locale/ru-RU/ss220/consumable/food.ftl | 3 + .../Locale/ru-RU/ss220/headset-component.ftl | 2 + .../ru-RU/ss220/materials/crystal-shard.ftl | 2 + .../Locale/ru-RU/ss220/misc/spider-eggs.ftl | 15 + .../ru-RU/ss220/misc/spider-implants.ftl | 34 ++ .../Locale/ru-RU/ss220/misc/spider-web.ftl | 11 + .../Locale/ru-RU/ss220/mobs/spider-queen.ftl | 26 + .../ss220/strucrure/spider-structures.ftl | 19 + .../ru-RU/ss220/weapons/projectiles.ftl | 1 + .../SS220/Actions/Spider_actions.yml | 227 ++++++++ .../SS220/Entities/Mobs/NPCs/spider_queen.yml | 512 ++++++++++++++++++ .../Entities/Objects/Consumable/Food/egg.yml | 25 + .../Objects/Materials/crystal_shard.yml | 23 + .../Entities/Objects/Misc/spider_eggs.yml | 158 ++++++ .../Entities/Objects/Misc/spider_implants.yml | 141 +++++ .../Entities/Objects/Misc/spider_web.yml | 128 +++++ .../Weapons/Guns/Projectiles/projectiles.yml | 19 + .../Structures/Specific/spider_structures.yml | 179 ++++++ .../Entities/markers/Spawners/ghost_roles.yml | 25 + .../Prototypes/SS220/GameRules/events.yml | 17 + Resources/Prototypes/SS220/radio_channels.yml | 9 + 22 files changed, 1613 insertions(+) create mode 100644 Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl create mode 100644 Resources/Locale/ru-RU/ss220/consumable/food.ftl create mode 100644 Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl create mode 100644 Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl create mode 100644 Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl create mode 100644 Resources/Locale/ru-RU/ss220/misc/spider-web.ftl create mode 100644 Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl create mode 100644 Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl create mode 100644 Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl create mode 100644 Resources/Prototypes/SS220/Actions/Spider_actions.yml create mode 100644 Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml create mode 100644 Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml create mode 100644 Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml create mode 100644 Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml diff --git a/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl b/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl new file mode 100644 index 000000000000..c1402c249b27 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/actions/spider-actions.ftl @@ -0,0 +1,37 @@ +action-speech-spell-spider = Кссс...!?? + + +ent-ActionSpawnSpiderEggDrone = Яйцо охранного паука + .desc = Он же трутень, может строить кристаллы и стены. + +ent-ActionSpawnSpiderEggHunter = Яйцо паука охотника + +ent-ActionSpawnSpiderEggGhost = Яйцо паука призрака + +ent-ActionSpawnSpiderEggShooter = Яйцо паука стрелка + + +ent-ActionSpawnSpiderLittle = Выпустить паучат + .desc = Выпускает трёх маленьких пауков, которые атакуют вашу добычу. Пауки исчезают через 20 секунд. + + +ent-ActionSpawnSpiderCrystal = Создать осколок кристалла + .desc = Осколок, который служит подсветкой для пауков. + + +ent-ActionSpawnSpiderWallWeb = Создать стену + +ent-ActionSpawnSpiderWallWebDurable = Создать прочную стену + + +ent-ActionSpawnSingleSpiderWebShortDelay = Пустить паутину + .desc = Создаёт паутину, которая замедляет вашу добычу. + +ent-ActionSpawnSingleSpiderWebLongDelay = { ent-ActionSpawnSingleSpiderWebShortDelay } + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } + +ent-ActionSpawnSingleSpiderWebDurable = Пустить прочную паутину + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } + +ent-ActionSpawnSingleSpiderWebClown = Пустить клоунскую паутину + .desc = { ent-ActionSpawnSingleSpiderWebShortDelay.desc } diff --git a/Resources/Locale/ru-RU/ss220/consumable/food.ftl b/Resources/Locale/ru-RU/ss220/consumable/food.ftl new file mode 100644 index 000000000000..b21ac44f2b5f --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/consumable/food.ftl @@ -0,0 +1,3 @@ +ent-EggshellsSpider = скорлупа + .desc = Ты ходишь по ней, приятель. + .suffix = Улей пауков diff --git a/Resources/Locale/ru-RU/ss220/headset-component.ftl b/Resources/Locale/ru-RU/ss220/headset-component.ftl index 70ae720b26ad..980cafc0307f 100644 --- a/Resources/Locale/ru-RU/ss220/headset-component.ftl +++ b/Resources/Locale/ru-RU/ss220/headset-component.ftl @@ -5,3 +5,5 @@ chat-radio-alpha = Альфа chat-radio-omega = Омега chat-radio-traders = Торговцы chat-radio-honk = Хонк-сквад + +chat-radio-hive = Улей diff --git a/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl b/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl new file mode 100644 index 000000000000..7632aa3a2511 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/materials/crystal-shard.ftl @@ -0,0 +1,2 @@ +ent-ShardCrystalBlueXeno = осколок синего хрусталя + .desc = Маленький кусочек хрусталя. diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl new file mode 100644 index 000000000000..b3f5cdc83083 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-eggs.ftl @@ -0,0 +1,15 @@ +ent-SpiderEggHunter = яйцо паука охотника + .desc = Это драгоценный камень? Это яйцо? Оно выглядит дорогим. + .suffix = Улей пауков + +ent-SpiderEggDrone = яйцо охранного паука + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } + +ent-SpiderEggGhost = яйцо паука призрака + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } + +ent-SpiderEggShooter = яйцо паука стрелка + .desc = { ent-SpiderEggHunter.desc } + .suffix = { ent-SpiderEggHunter.suffix } diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl new file mode 100644 index 000000000000..43b6e542e5eb --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-implants.ftl @@ -0,0 +1,34 @@ +ent-LightImplantSpiderEggDrone = Яйцо охранного паука + .desc = Он же трутень, может строить кристаллы и стены. + +ent-LightImplantSpiderEggHunter = Яйцо паука охотника + +ent-LightImplantSpiderEggGhost = Яйцо паука призрака + +ent-LightImplantSpiderEggShooter = Яйцо паука стрелка + + +ent-LightImplantSpiderLittle = Выпустить паучат + .desc = Выпускает трёх маленьких пауков, которые атакуют вашу добычу. Пауки исчезают через 20 секунд. + + +ent-LightImplantSpiderCrystal = Создать осколок кристалла + .desc = Осколок, который служит подсветкой для пауков. + + +ent-LightImplantSpiderWallWeb = Создать стену + +ent-LightImplantSpiderWallWebDurable = Создать прочную стену + + +ent-LightImplantSingleSpiderWebShortDelay = Пустить паутину + .desc = Создаёт паутину, которая замедляет вашу добычу. + +ent-LightImplantSingleSpiderWebLongDelay = { ent-LightImplantSingleSpiderWebShortDelay } + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } + +ent-LightImplantSingleSpiderWebDurable = Пустить прочную паутину + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } + +ent-LightImplantSingleSpiderWebClown = Пустить клоунскую паутину + .desc = { ent-LightImplantSingleSpiderWebShortDelay.desc } diff --git a/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl b/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl new file mode 100644 index 000000000000..af70bee9639e --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/misc/spider-web.ftl @@ -0,0 +1,11 @@ +ent-SpiderWebFragile = паутина + .desc = Липкая паутина.. Интересно, откуда она? + .suffix = Улей пауков + +ent-SpiderWebDurable = прочная паутина + .desc = { ent-SpiderWebFragile.desc } + .suffix = { ent-SpiderWebFragile.suffix } + +ent-SpiderWebDespawned = паутина + .desc = { ent-SpiderWebFragile.desc } + .suffix = { ent-SpiderWebFragile.suffix } diff --git a/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl b/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl new file mode 100644 index 000000000000..f995340ad699 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/mobs/spider-queen.ftl @@ -0,0 +1,26 @@ +spider-roy-name = Паук улья +spider-roy-desc = Ваша задача — построить максимально большой улей. Защищайте свою королеву всеми возможными способами. Не позволяйте причинить вред потомству. Экипаж - ваша пища. + +ent-MobSpiderSpaceQueen = королева пауков + .desc = Он так светится, что выглядит опасным. + .suffix = Улей пауков + +ent-MobSpiderSpaceDrone = паук охранник + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceHunter = паук охотник + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceGhost = паук призрак + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceShooter = паук стрелок + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } + +ent-MobSpiderSpaceLittle = паучок + .desc = { ent-MobSpiderSpaceQueen.desc } + .suffix = { ent-MobSpiderSpaceQueen.suffix } diff --git a/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl b/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl new file mode 100644 index 000000000000..0439b9e7682d --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/strucrure/spider-structures.ftl @@ -0,0 +1,19 @@ +ent-TableWebSpiders = каркас стены из паутины + .desc = Очень гладкий и удивительно прочный. + .suffix = Улей пауков + +ent-FloorTileItemWebSpiders = конструкция из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-FloorTileItemWebSpidersDurable = конструкция из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-TableWebSpidersDurable = каркас стены из паутины + .desc = { ent-TableWebSpiders.desc } + .suffix = { ent-TableWebSpiders.suffix } + +ent-WallWebDurable = прочная паутинная стена + .desc = Удерживает паучат внутри, а ассистентов снаружи. + .suffix = { ent-TableWebSpiders.suffix } diff --git a/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl b/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl new file mode 100644 index 000000000000..af525be207de --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/weapons/projectiles.ftl @@ -0,0 +1 @@ +ent-PoisonousAcid = ядовитый плевой diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml new file mode 100644 index 000000000000..7791f860cf57 --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -0,0 +1,227 @@ +#Base +- type: entity + id: BaseActionSpawnSpiderEgg + abstract: true + components: + - type: WorldTargetAction + useDelay: 200 + range: 1 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/eggspider.rsi + state: icon + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggDrone + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + id: BaseActionSpawnSingleSpiderWeb + name: spin a web + description: Creates a web that slows down your prey. + abstract: true + components: + - type: WorldTargetAction + useDelay: 4 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/spiderweb.rsi + state: spider_web_1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebFragile + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Egg +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggDrone + name: guard spider egg + description: He is also a drone and can build crystals and walls. + noSpawn: true + components: + - type: WorldTargetAction + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggDrone + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggHunter + name: hunter spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 300 #КД + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggHunter + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggGhost + name: ghost spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 350 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggGhost + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggShooter + name: shooter spider egg + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 380 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderEggShooter + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Spider +- type: entity + id: ActionSpawnSpiderLittle + name: release the spiderlings + description: Releases three small spiders that attack your prey. The spiders disappear after 20 seconds. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 40 + range: 2 + itemIconStyle: BigAction + icon: + sprite: Mobs/Animals/spider.rsi + state: viper_dead + event: !type:WorldSpawnSpellEvent + prototypes: + - id: MobSpiderSpaceLittle + amount: 3 + offset: 0, 1 + speech: action-speech-spell-spider + +#Cryctal +- type: entity + id: ActionSpawnSpiderCrystal + name: create a crystal shard + description: A shard that serves as a backlight for spiders. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 30 + range: 1 + itemIconStyle: BigAction + icon: + sprite: Structures/Decoration/crystal.rsi + state: crystal1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: ShardCrystalBlueXeno + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Wall +- type: entity + id: ActionSpawnSpiderWallWeb + name: create a wall + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 12 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: Structures/Walls/web.rsi + state: full + event: !type:WorldSpawnSpellEvent + prototypes: + - id: TableWebSpiders + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +- type: entity + parent: ActionSpawnSpiderWallWeb + id: ActionSpawnSpiderWallWebDurable + name: create a durable wall + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 16 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: TableWebSpidersDurable + amount: 1 + +#Web +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebShortDelay + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 2 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebLongDelay + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 6 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebDurable + name: spin a durable web + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 4 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebDurable + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider + +#Clown web +- type: entity + id: ActionSpawnSingleSpiderWebClown + name: spin a clown web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: WorldTargetAction + useDelay: 30 #КД + range: 1.3 + itemIconStyle: BigAction + icon: + sprite: Objects/Misc/spiderweb.rsi + state: spider_web_clown_1 + event: !type:WorldSpawnSpellEvent + prototypes: + - id: SpiderWebClown + amount: 1 + offset: 0, 1 + speech: action-speech-spell-spider diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml new file mode 100644 index 000000000000..921d90042ef6 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/spider_queen.yml @@ -0,0 +1,512 @@ +#Base +- type: entity + parent: + - MobAtmosStandard + - MobSpaceBasic + - MobSpiderGhostRole + id: BaseMobSpiderQueen + abstract: true + name: Probca + description: spider dance + components: + - type: Insulated + - type: CombatMode + - type: InputMover + - type: MobMover + - type: HTN + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1.3, 1.3 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: midwife-moving + - type: MobThresholds #HP + thresholds: + 0: Alive + 300: Dead + - type: Stamina + critThreshold: 150 + - type: DamageStateVisuals + states: + Alive: + Base: midwife-moving + Dead: + Base: midwife_dead + - type: Butcherable + spawned: + - id: FoodMeatSpider + amount: 2 + - id: EggSpider + amount: 1 + prob: 0.5 + - type: Bloodstream + bloodMaxVolume: 250 + bloodReagent: Cryoxadone + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeCircle + radius: 0.35 + density: 120 + mask: + - MobMask + layer: + - MobLayer + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0. + animation: WeaponArcBite + damage: + types: + Piercing: 12 #Damage + Poison: 4 + Structural: 15 + - type: MeleeChemicalInjector + solution: melee + transferAmount: 3 + - type: InteractionPopup + successChance: 0.20 + interactSuccessString: petting-success-tarantula + interactFailureString: petting-failure-generic + - type: NoSlip + - type: IgnoreSpiderWeb + - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute.Самолечение + allowedStates: + - Alive + damageCap: 300 + damage: + types: + Heat: -4.5 + groups: + Brute: -4.5 + Toxin: -7 + Airloss: -4.5 + Burn: -4.5 + - type: Tag + tags: + - CannotSuicide + - DoorBumpOpener + - type: Tool # Open door from xeno.yml. + speedModifier: 1.5 + qualities: + - Prying + useSound: + path: /Audio/Items/crowbar.ogg + - type: Prying + pryPowered: !type:Bool + true + force: !type:Bool + true + useSound: + path: /Audio/Items/crowbar.ogg + - type: Barotrauma #Damage + damage: + types: + Blunt: 1 + Heat: 1 + - type: Temperature #Damage + heatDamageThreshold: 325 + coldDamageThreshold: 260 + currentTemperature: 310.15 + specificHeat: 42 + coldDamage: + types: + Cold: 0.1 #per second, scales with temperature & other constants + heatDamage: + types: + Heat: 0.1 #per second, scales with temperature & other constants + - type: Speech #krik + speechVerb: Arachnid + speechSounds: Arachnid + - type: Vocal + sounds: + Male: UnisexArachnid + Female: UnisexArachnid + Unsexed: UnisexArachnid #krik + - type: PointLight + radius: 0 + energy: 0 + color: "#ff4242" + castShadows: false + - type: IntrinsicRadioReceiver + - type: IntrinsicRadioTransmitter + channels: + - HiveRadio + - type: ActiveRadio + channels: + - HiveRadio + +- type: entity + name: Ghost role + id: MobSpiderGhostRole + noSpawn: true + components: + - type: GhostRole #Ghost role + makeSentient: true + allowSpeech: true + allowMovement: true + name: spider-roy-name + description: spider-roy-desc + - type: GhostTakeoverAvailable #Ghost role + +#Spider queen +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceQueen + name: Spider queen + description: spider dance + components: + - type: AutoImplant + implants: + - LightImplantSpiderEggHunter + - LightImplantSpiderWallWebDurable + - LightImplantSpiderEggDrone + - LightImplantSpiderEggGhost + - LightImplantSpiderCrystal + - LightImplantSpiderLittle + - LightImplantSingleSpiderWebDurable + - LightImplantSpiderEggShooter + - type: Butcherable + spawned: + - id: FoodMeatSpider + amount: 3 + - id: MobSpiderSpaceLittle + amount: 7 + - type: Spider + webPrototype: SpiderWebDespawned + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 2 + count: 2 + - type: Gun + fireRate: 1 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate #Iad + Quantity: 60 + - type: MovementSpeedModifier + baseWalkSpeed : 3.5 + baseSprintSpeed : 4 + - type: LizardAccent + +#Spiders-servants +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceDrone + name: spider guard + description: spider dance + components: + - type: Sprite #Спрайт + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: guard-moving + - type: MobThresholds + thresholds: + 0: Alive + 85: Dead #HP + - type: DamageStateVisuals + states: + Alive: + Base: guard-moving + Dead: + Base: guard_dead + - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute. Самолечение + allowedStates: + - Alive + damageCap: 85 + damage: + types: + Heat: -4 + groups: + Brute: -4 + Toxin: -6 + Airloss: -4 + Burn: -4 + - type: MeleeWeapon #Damage + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 5 #Damage + Structural: 10 + - type: AutoImplant + implants: + - LightImplantSpiderWallWeb + - LightImplantSpiderCrystal + - LightImplantSingleSpiderWebShortDelay + - type: Spider + webPrototype: SpiderWebDespawned + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.9 + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceHunter + name: spider hunt + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: hunter-moving + - type: MobThresholds + thresholds: + 0: Alive + 110: Dead + - type: DamageStateVisuals + states: + Alive: + Base: hunter-moving + Dead: + Base: hunter_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 110 + damage: + types: + Heat: -3 + groups: + Brute: -3 + Toxin: -6 + Airloss: -3 + Burn: -3 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 15 + Structural: 15 + - type: Spider + webPrototype: SpiderWebDespawned + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.9 + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebLongDelay + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceGhost + name: spider ghost + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: nurse-moving + - type: MobThresholds + thresholds: + 0: Alive + 100: Dead + - type: DamageStateVisuals + states: + Alive: + Base: nurse-moving + Dead: + Base: nurse_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 100 + damage: + types: + Heat: -3 + groups: + Brute: -3 + Toxin: -8 + Airloss: -3 + Burn: -3 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 3 + Poison: 4 + Structural: 10 + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate + Quantity: 20 + - type: Stealth + - type: StealthOnMove + passiveVisibilityRate: -0.37 + movementVisibilityRate: 0.35 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 1 + count: 1 + - type: Gun + fireRate: 0.75 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: MovementSpeedModifier + baseWalkSpeed : 1.5 + baseSprintSpeed : 3.9 + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebLongDelay + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceShooter + name: spider shooter + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 1, 1 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: viper-moving + - type: MobThresholds + thresholds: + 0: Alive + 80: Dead + - type: DamageStateVisuals + states: + Alive: + Base: viper-moving + Dead: + Base: viper_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 80 + damage: + types: + Heat: -1.5 + groups: + Brute: -2.5 + Toxin: -5 + Airloss: -2.5 + Burn: -2.5 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Poison: 5 + Piercing: 2 + Structural: 5 + - type: SolutionContainerManager + solutions: + melee: + reagents: + - ReagentId: ChloralHydrate + Quantity: 35 + - type: RechargeBasicEntityAmmo + rechargeCooldown: 1.5 + - type: BasicEntityAmmoProvider + proto: PoisonousAcid + capacity: 3 + count: 3 + - type: Gun + fireRate: 4 + useKey: false + selectedMode: FullAuto + availableModes: + - FullAuto + soundGunshot: /Audio/Weapons/Xeno/alien_spitacid.ogg + - type: AutoImplant + implants: + - LightImplantSingleSpiderWebClown + - type: MovementSpeedModifier + baseWalkSpeed : 3 + baseSprintSpeed : 3.7 + +- type: entity + parent: BaseMobSpiderQueen + id: MobSpiderSpaceLittle + name: small spider + description: spider dance + components: + - type: Sprite + drawdepth: Mobs + sprite: Mobs/Animals/spider.rsi + scale: 0.4, 0.4 + layers: + - map: [ "enum.DamageStateVisualLayers.Base" ] + state: viper-moving + - type: MobThresholds + thresholds: + 0: Alive + 15: Dead + - type: DamageStateVisuals + states: + Alive: + Base: viper-moving + Dead: + Base: viper_dead + - type: PassiveDamage + allowedStates: + - Alive + damageCap: 15 + damage: + types: + Heat: -0.5 + groups: + Brute: -0.5 + Toxin: -0.5 + Airloss: -0.5 + Burn: -0.5 + - type: MeleeWeapon + hidden: true + soundHit: + path: /Audio/Effects/bite.ogg + angle: 0 + animation: WeaponArcBite + damage: + types: + Piercing: 5 + - type: TimedDespawn + lifetime: 20 + - type: MovementSpeedModifier + baseWalkSpeed : 3.5 + baseSprintSpeed : 4.5 diff --git a/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml new file mode 100644 index 000000000000..ce329b691ce5 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Consumable/Food/egg.yml @@ -0,0 +1,25 @@ +# Spiders eggs +- type: entity + parent: Eggshells + id: EggshellsSpider + noSpawn: true + name: eggshells + description: You're walkin' on 'em bud. + suffix: FraG + components: + - type: Sprite + sprite: Objects/Consumable/Food/egg.rsi + state: eggshells + shader: unshaded + color: gray + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: PoisonWine + Quantity: 1 + - type: Tag + tags: + - Egg + - Trash diff --git a/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml b/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml new file mode 100644 index 000000000000..4bbdd4c6b17b --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Materials/crystal_shard.yml @@ -0,0 +1,23 @@ +- type: entity + id: ShardCrystalBlueXeno + parent: ShardCrystalBlue + name: shard of blue crystal + description: A small piece of crystal. + noSpawn: true + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSilk: + min: 0 + max: 0 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml new file mode 100644 index 000000000000..5335c331d321 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -0,0 +1,158 @@ +#Base +#TODO: Когда будет анимация для спавна стен - переделать BaseItemSpider на наследование от BaseItem +- type: entity + name: "item" + id: BaseItemSpider + abstract: true + components: + - type: Clickable + - type: InteractionOutline + - type: MovedByPressure + - type: EmitSoundOnCollide + sound: + collection: WeakHit + - type: EmitSoundOnLand + sound: + path: /Audio/Effects/drop.ogg + params: + volume: 2 + - type: DamageOnHighSpeedImpact + damage: + types: + Blunt: 5 + soundHit: + path: /Audio/Effects/hit_kick.ogg + - type: CollisionWake + - type: TileFrictionModifier + modifier: 0.5 + - type: Physics + bodyType: Dynamic + fixedRotation: false + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb + bounds: "-0.25,-0.25,0.25,0.25" + density: 20 + mask: + - ItemMask + restitution: 0.3 # fite me + friction: 0.2 + - type: Pullable + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: StaticPrice + price: 100 + +- type: entity + parent: BaseItemSpider + id: BaseSpiderEgg + abstract: true + name: the-egg-of-the-spider-guard + description: Is it a gemstone? Is it an egg? It looks expensive. + components: + - type: Sprite + sprite: Objects/Misc/eggspider.rsi + state: icon + - type: PointLight + radius: 1.5 + energy: 3 + color: "#4faffb" + - type: StaticPrice + price: 500 + - type: Barotrauma #Урон от разгермы + damage: + types: + Blunt: 0.1 + Heat: 0.1 + - type: DamageOnHighSpeedImpact + minimumSpeed: 0.1 + damage: + types: + Blunt: 1 + - type: Damageable + damageContainer: Biological + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 5 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: desecration + - !type:SpillBehavior + solution: food + - !type:SpawnEntitiesBehavior + spawn: + EggshellsSpider: + min: 1 + max: 1 + # Wow double-yolk you're so lucky! + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SolutionContainerManager + solutions: + food: + maxVol: 25 + reagents: + - ReagentId: PoisonWine + Quantity: 10 + - type: TimedDespawn #Система цикла + - type: SpawnOnDespawn + +#Spiders +- type: entity + parent: BaseSpiderEgg + id: SpiderEggDrone + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 55 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceDrone + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggHunter + noSpawn: true + name: the-egg-of-the-spider-guard + description: Is it a gemstone? Is it an egg? It looks expensive. + components: + - type: TimedDespawn #Система цикла + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceHunter #Система цикла + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggGhost + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceGhost + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggShooter + noSpawn: true + name: spider hive egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: TimedDespawn + lifetime: 80 + - type: SpawnOnDespawn + prototype: MobSpiderSpaceShooter diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml new file mode 100644 index 000000000000..e5fec988fbea --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_implants.yml @@ -0,0 +1,141 @@ +#Base +- type: entity + parent: BaseSubdermalImplant + id: BaseLightImplantSpider + abstract: true + components: + - type: SubdermalImplant + - type: PointLight + enabled: false + radius: 2.5 + softness: 5 + mask: /Textures/Effects/LightMasks/cone.png + autoRot: true + - type: Tag + tags: + - SubdermalImplant + - HideContextMenu + - Flashlight + - type: UnpoweredFlashlight + +# #Egg +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggDrone + name: guard spider egg + description: He is also a drone and can build crystals and walls. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggDrone + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggHunter + name: hunter spider egg + description: + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggHunter + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggGhost + name: ghost spider egg + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggGhost + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderEggShooter + name: shooter spider egg + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderEggShooter + +#Spider +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderLittle + name: release the spiderlings + description: Releases three small spiders that attack your prey. The spiders disappear after 20 seconds. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderLittle + +# #Cristal +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderCrystal + name: create a crystal shard + description: A shard that serves as a backlight for spiders. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderCrystal + +#Wall +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderWallWeb + name: create a wall + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderWallWeb + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSpiderWallWebDurable + name: create a durable wall + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSpiderWallWebDurable + +#Web +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebShortDelay + name: spin a web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebShortDelay + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebLongDelay + name: spin a web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebLongDelay + +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebDurable + name: spin a durable web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebDurable + +#Clown web +- type: entity + parent: BaseLightImplantSpider + id: LightImplantSingleSpiderWebClown + name: spin a clown web + description: Creates a web that slows down your prey. + noSpawn: true + components: + - type: SubdermalImplant + implantAction: ActionSpawnSingleSpiderWebClown diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml new file mode 100644 index 000000000000..29cc19a8b1b8 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_web.yml @@ -0,0 +1,128 @@ +#Spider queen webs + +#Base +- type: entity + id: BaseSpiderWeb + name: web + description: Sticky web.. I wonder where it comes from? + abstract: true + noSpawn: true + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Sprite + sprite: Objects/Misc/spiderweb.rsi + layers: + - state: spider_web_1 + map: ["spiderWebLayer"] + drawdepth: WallMountedItems + - type: Appearance + - type: GenericVisualizer + visuals: + enum.SpiderWebVisuals.Variant: + spiderWebLayer: + 1: {state: spider_web_1} + 2: {state: spider_web_2} + - type: Clickable + - type: Transform + anchored: true + - type: Physics + - type: Fixtures + fixtures: + fix1: + hard: false + density: 7 + shape: + !type:PhysShapeAabb + bounds: "-0.5,-0.5,0.5,0.5" + layer: + - MidImpassable + - type: Damageable + damageModifierSet: Wood + - type: Destructible + - type: Temperature + heatDamage: + types: + Heat: 5 + coldDamage: {} + coldDamageThreshold: 0 + - type: Flammable + fireSpread: true + damage: + types: + Heat: 5 + - type: Reactive + groups: + Flammable: [Touch] + Extinguish: [Touch] + - type: SpiderWebObject + - type: SpeedModifierContacts + ignoreWhitelist: + components: + - IgnoreSpiderWeb + +#Web +- type: entity + parent: BaseSpiderWeb + id: SpiderWebFragile + name: web + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 30 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SpeedModifierContacts + walkSpeedModifier: 0.25 + sprintSpeedModifier: 0.25 + +- type: entity + parent: BaseSpiderWeb + id: SpiderWebDurable + name: durable web + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: SpeedModifierContacts + walkSpeedModifier: 0.15 + sprintSpeedModifier: 0.15 + +- type: entity + parent: BaseSpiderWeb + id: SpiderWebDespawned + name: web + noSpawn: true + placement: + mode: SnapgridCenter + snap: + - Wall + components: + - type: TimedDespawn + lifetime: 13 + - type: SpeedModifierContacts + walkSpeedModifier: 0.1 + sprintSpeedModifier: 0.1 diff --git a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml index 919db404fb94..dc8f86fc3af6 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Weapons/Guns/Projectiles/projectiles.yml @@ -110,3 +110,22 @@ radius: 5.5 color: blue energy: 0.9 + +#Spider queen +- type: entity + id: PoisonousAcid + name: poisonous Spit + parent: BaseBullet + noSpawn: true + components: + - type: Projectile + damage: + types: + Poison: 6 + Structural: 2 + - type: Sprite + sprite: Objects/Weapons/Guns/Projectiles/xeno_toxic.rsi + layers: + - state: xeno_toxic + - type: Ammo + muzzleFlash: null diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml new file mode 100644 index 000000000000..e9d01ea2cf8d --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -0,0 +1,179 @@ +# AT THE BOTTOM IS A TILE MADE OF COBWEBS. + +#TODO: Сделать нормальную анимацию спавна стены без использования костыля в виде спавна тайлов и столов +#Base +- type: entity + parent: BaseItemSpider + id: BaseFloorTileItemSpiders + description: These could work as a pretty decent throwing weapon. + abstract: true + components: + - type: Sprite + sprite: Objects/Tiles/web.rsi + state: icon + - type: FloorTile + outputs: + - FloorWebTile + - type: DamageOtherOnHit + damage: + types: + Blunt: 5 + - type: Damageable + damageContainer: Inorganic + - type: Construction + graph: WebObjects + node: tile + - type: TimedDespawn + - type: SpawnOnDespawn + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 1 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - trigger: + !type:DamageTrigger + damage: 20 + behaviors: + - !type:PlaySoundBehavior + sound: + collection: MetalBreak + params: + volume: -8 + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: DamageOnLand + damage: + types: + Blunt: 5 + +#Tile (used to spawn walls) +# - type: entity +# parent: BaseFloorTileItemSpiders +# id: FloorTileItemWebSpiders +# name: web construction +# description: Very smooth and surprisingly durable. +# noSpawn: true +# components: +# - type: TimedDespawn +# lifetime: 5 +# - type: SpawnOnDespawn +# prototype: TableWebSpiders + +# - type: entity +# name: web +# description: Web +# parent: BaseFloorTileItemSpiders +# id: FloorTileItemWebSpidersDurable +# noSpawn: true +# components: +# - type: TimedDespawn +# lifetime: 6 +# - type: SpawnOnDespawn +# prototype: TableWebSpidersDurable +# - type: Sprite +# shader: unshaded +# color: gray + +#Table (заглушка типо как анимация) +- type: entity + parent: TableBase + id: TableWebSpiders + name: web + description: web + noSpawn: true + components: + - type: Damageable + damageModifierSet: Web + - type: Sprite + sprite: Structures/Furniture/Tables/web.rsi + - type: Icon + sprite: Structures/Furniture/Tables/web.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 10 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Construction + graph: WebStructures + node: table + - type: FootstepModifier + footstepSoundCollection: + collection: FootstepCarpet + - type: TimedDespawn + lifetime: 5 + - type: SpawnOnDespawn + prototype: WallWeb + +- type: entity + parent: TableWebSpiders + id: TableWebSpidersDurable + name: web + description: web + noSpawn: true + components: + - type: TimedDespawn + lifetime: 8 + - type: SpawnOnDespawn + prototype: WallWebDurable + - type: Sprite + sprite: Structures/Furniture/Tables/web.rsi + shader: unshaded + color: gray + +#Wall +- type: entity + parent: BaseWall + id: WallWebDurable + name: web + description: web + components: + - type: Clickable + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Damageable + damageModifierSet: Web + - type: Tag + tags: + - Wall + - type: Sprite + sprite: Structures/Walls/web.rsi + shader: unshaded + color: gray + - type: Icon + sprite: Structures/Walls/web.rsi + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 125 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSilk: + min: 1 + max: 1 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - type: IconSmooth + key: webs + base: wall + - type: Construction + graph: WebStructures + node: wall diff --git a/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml b/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml new file mode 100644 index 000000000000..41505b88e615 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/markers/Spawners/ghost_roles.yml @@ -0,0 +1,25 @@ +#Used by gamerule +- type: entity + id: SpawnPointGhostSpaceQueen + name: спавнер роли королевы-пауков + suffix: паук-королева + parent: MarkerBase + components: + - type: GhostRole + name: spider-roy-name + description: spider-roy-desc + rules: spider-roy-desc + requirements: + - !type:DepartmentTimeRequirement + department: Security + time: 600 + raffle: + settings: default + - type: GhostRoleMobSpawner + prototype: MobSpiderSpaceQueen + - type: Sprite + sprite: Markers/jobs.rsi + layers: + - state: green + - sprite: Mobs/Animals/spider.rsi + state: midwife diff --git a/Resources/Prototypes/SS220/GameRules/events.yml b/Resources/Prototypes/SS220/GameRules/events.yml index a4cb65a8b830..e568911fb930 100644 --- a/Resources/Prototypes/SS220/GameRules/events.yml +++ b/Resources/Prototypes/SS220/GameRules/events.yml @@ -19,3 +19,20 @@ specialEntries: - id: TrashBananaPeelExplosive prob: 0.005 + +#Temporary in comment +# - type: entity +# id: SpiderMigration +# parent: BaseGameRule +# noSpawn: true +# components: +# - type: StationEvent +# startDelay: 5 +# earliestStart: 15 +# minimumPlayers: 35 +# weight: 5 +# duration: 50 +# - type: VentCrittersRule +# specialEntries: +# - id: SpawnPointGhostSpaceQueen +# prob: 0.005 diff --git a/Resources/Prototypes/SS220/radio_channels.yml b/Resources/Prototypes/SS220/radio_channels.yml index 15fa7b1362d2..6fae7c288bbd 100644 --- a/Resources/Prototypes/SS220/radio_channels.yml +++ b/Resources/Prototypes/SS220/radio_channels.yml @@ -191,3 +191,12 @@ color: "#FFB6C1" longRange: true # Admin memes end + +#Spider queen antag +- type: radioChannel #Connection + id: HiveRadio + name: chat-radio-hive + keycode: 'у' + frequency: 2885 + color: "#cc80ff" + longRange: true