diff --git a/Content.Server/MinorFauna/MinorFaunaSystem.cs b/Content.Server/MinorFauna/MinorFaunaSystem.cs new file mode 100644 index 000000000000..91c85059e5c3 --- /dev/null +++ b/Content.Server/MinorFauna/MinorFaunaSystem.cs @@ -0,0 +1,69 @@ +using Robust.Shared.Random; +using Robust.Server.GameObjects; +using Robust.Shared.Containers; +using Content.Shared.SS220.MinorFauna.Actions; +using Content.Shared.SS220.MinorFauna.Events; +using Content.Shared.SS220.MinorFauna.Components; +using Content.Shared.Mobs.Systems; +using Content.Shared.Humanoid; +using Content.Server.Body.Components; +using Content.Shared.Item; +using Robust.Shared.Prototypes; +using Content.Shared.Whitelist; + +namespace Content.Server.SS220.MinorFauna; + +public sealed class SharedMinorFaunaSystem : EntitySystem +{ + [Dependency] private readonly IRobustRandom _random = default!; + [Dependency] private readonly TransformSystem _transform = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + [Dependency] private readonly SharedContainerSystem _container = default!; + [Dependency] private readonly EntityWhitelistSystem _whiteList = default!; + public override void Initialize() + { + base.Initialize(); + SubscribeLocalEvent(OnAfterEntityCocooningEvent); + } + + private void OnAfterEntityCocooningEvent(Entity entity, ref AfterEntityCocooningEvent args) + { + + if (args.Cancelled || args.Target is not EntityUid target) + return; + + if (!HasComp(target)) + { + return; + } + + if (!TryComp(target, out var transform) || !_mobState.IsDead(target)) + return; + + var targetCords = _transform.GetMoverCoordinates(target, transform); + EntProtoId cocoonPrototypeID = "Undefined"; + + foreach (var cocoonWhiteList in entity.Comp.CocoonsList) + { + if (_whiteList.CheckBoth(target, cocoonWhiteList.Blacklist, cocoonWhiteList.Whitelist)) + { + cocoonPrototypeID = _random.Pick(cocoonWhiteList.Protos); + } + } + + if (cocoonPrototypeID.Equals("Undefined")) + return; + + var cocoonUid = Spawn(cocoonPrototypeID, targetCords); + + if (!TryComp(cocoonUid, out var cocoon) || + !_container.TryGetContainer(cocoonUid, cocoon.CocoonContainerId, out var container)) + { + Log.Error($"{cocoonUid} doesn't have required components to cocooning target"); + return; + } + + _container.Insert(target, container); + } + +} diff --git a/Content.Shared/Prying/Components/PryingComponent.cs b/Content.Shared/Prying/Components/PryingComponent.cs index 93713e52c67f..07c2e26ae3d5 100644 --- a/Content.Shared/Prying/Components/PryingComponent.cs +++ b/Content.Shared/Prying/Components/PryingComponent.cs @@ -1,5 +1,6 @@ using Robust.Shared.Audio; using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; namespace Content.Shared.Prying.Components; @@ -36,6 +37,13 @@ public sealed partial class PryingComponent : Component /// [DataField] public bool Enabled = true; + //SS220 fauna Update start + [ViewVariables] + public EntityUid? ActionPryingEntity; + + [DataField("actionPry")] + public EntProtoId ActionPrying = "ActionPrying"; + //SS220 fauna Update end } /// @@ -93,4 +101,3 @@ public GetPryTimeModifierEvent(EntityUid user) User = user; } } - diff --git a/Content.Shared/Prying/Systems/PryingSystem.cs b/Content.Shared/Prying/Systems/PryingSystem.cs index 10c80cfab594..8758ee0f1af3 100644 --- a/Content.Shared/Prying/Systems/PryingSystem.cs +++ b/Content.Shared/Prying/Systems/PryingSystem.cs @@ -8,9 +8,9 @@ using Content.Shared.Prying.Components; using Content.Shared.Verbs; using Robust.Shared.Audio.Systems; +using Content.Shared.SS220.Prying; //ss220 fauna update using Robust.Shared.Serialization; using PryUnpoweredComponent = Content.Shared.Prying.Components.PryUnpoweredComponent; - namespace Content.Shared.Prying.Systems; /// @@ -31,7 +31,22 @@ public override void Initialize() SubscribeLocalEvent>(OnDoorAltVerb); SubscribeLocalEvent(OnDoAfter); SubscribeLocalEvent(TryPryDoor); + + SubscribeLocalEvent(OnPryActionEvent); //ss220 fauna update + } + + //ss220 fauna update start + private void OnPryActionEvent(Entity entity, ref ActionPryingEvent args) + { + if (args.Handled) + return; + + if (!TryComp(args.Target, out DoorComponent? comp)) + return; + + args.Handled = TryPry(args.Target, args.Performer, out _, args.Performer); } + //ss220 fauna update end private void TryPryDoor(EntityUid uid, DoorComponent comp, InteractUsingEvent args) { diff --git a/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs b/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs new file mode 100644 index 000000000000..980390857f97 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Actions/SharedMinorFaunaActions.cs @@ -0,0 +1,10 @@ +using Content.Shared.Actions; + +namespace Content.Shared.SS220.MinorFauna.Actions; + +//Actions +public sealed partial class ActionEntityCocooningEvent : EntityTargetActionEvent +{ + [DataField] + public TimeSpan CocooningTime = TimeSpan.Zero; +} diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs new file mode 100644 index 000000000000..df60ef088b6f --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonComponent.cs @@ -0,0 +1,21 @@ +using Content.Shared.Damage; +using Content.Shared.FixedPoint; +using Robust.Shared.GameStates; + +namespace Content.Shared.SS220.MinorFauna.Components; + +[RegisterComponent, NetworkedComponent, AutoGenerateComponentState] +public sealed partial class EntityCocoonComponent : Component +{ + /// + /// ID of the container in which the entities placed in the cocoon are stored + /// + [DataField("container", required: true)] + public string CocoonContainerId = "cocoon"; + + /// + /// The entity that created this cocoon + /// + [ViewVariables, AutoNetworkedField] + public EntityUid? CocoonOwner; +} diff --git a/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs new file mode 100644 index 000000000000..1c7284215a56 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Components/CocoonerComponent.cs @@ -0,0 +1,28 @@ +using Content.Shared.Whitelist; +using Robust.Shared.GameStates; +using Robust.Shared.Prototypes; + +namespace Content.Shared.SS220.MinorFauna.Components; + +[RegisterComponent, NetworkedComponent] +public sealed partial class CocoonerComponent : Component +{ + /// + /// list of cocoon lists and their conditions + /// + [DataField("cocoonTypes", required: true)] + public List CocoonsList = new(); +} + +[DataDefinition] +public sealed partial class CocoonsList +{ + [DataField("entityWhiteList")] + public EntityWhitelist? Whitelist; + + [DataField("entityBlackList")] + public EntityWhitelist? Blacklist; + + [DataField("entityProtoList", required: true)] + public List Protos = new(); +} diff --git a/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs b/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs new file mode 100644 index 000000000000..b535f02848b5 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Components/MinorFaunaComponent.cs @@ -0,0 +1,5 @@ +namespace Content.Shared.SS220.MinorFauna.Components; + +public sealed partial class MinorFaunaComponent : Component +{ +} diff --git a/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs b/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs new file mode 100644 index 000000000000..2cc9d83f4044 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Events/SharedMinorFaunaEvents.cs @@ -0,0 +1,9 @@ +using Content.Shared.DoAfter; +using Robust.Shared.Serialization; + +namespace Content.Shared.SS220.MinorFauna.Events; + +[Serializable, NetSerializable] +public sealed partial class AfterEntityCocooningEvent : SimpleDoAfterEvent +{ +} diff --git a/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs new file mode 100644 index 000000000000..3ebaf1155127 --- /dev/null +++ b/Content.Shared/SS220/MinorFauna/Systems/SharedMinorFaunaSystem.cs @@ -0,0 +1,61 @@ +using Content.Shared.DoAfter; +using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; +using Content.Shared.SS220.MinorFauna.Actions; +using Content.Shared.SS220.MinorFauna.Events; +using Content.Shared.SS220.MinorFauna.Components; +using Content.Shared.Humanoid; + + +namespace Content.Shared.SS220.MinorFauna.Systems; + +public sealed class SharedMinorFaunaSystem : EntitySystem +{ + [Dependency] private readonly EntityLookupSystem _entityLookup = default!; + [Dependency] private readonly SharedPopupSystem _popup = default!; + [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly MobStateSystem _mobState = default!; + + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnCocooningAction); + } + + private void OnCocooningAction(Entity entity, ref ActionEntityCocooningEvent args) + { + if (args.Handled) + return; + + var performer = args.Performer; + var target = args.Target; + + if (!_mobState.IsDead(target)) + { + _popup.PopupEntity(Loc.GetString("cocooning-target-not-dead"), performer, performer); + return; + } + + var doAfterArgs = new DoAfterArgs( + EntityManager, + performer, + args.CocooningTime, + new AfterEntityCocooningEvent(), + performer, + target + ); + + var started = _doAfter.TryStartDoAfter(doAfterArgs); + if (started) + { + args.Handled = true; + } + else + { + Log.Error($"Failed to start DoAfter by {performer}"); + return; + } + } + +} diff --git a/Content.Shared/SS220/Prying/PryingAction.cs b/Content.Shared/SS220/Prying/PryingAction.cs new file mode 100644 index 000000000000..e355f0a27e3d --- /dev/null +++ b/Content.Shared/SS220/Prying/PryingAction.cs @@ -0,0 +1,7 @@ +using Content.Shared.Actions; + +namespace Content.Shared.SS220.Prying; + +public sealed partial class ActionPryingEvent : EntityTargetActionEvent +{ +} diff --git a/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl b/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl index f35f8d4b6805..12c9ffea30ce 100644 --- a/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl +++ b/Resources/Locale/ru-RU/ss220/ghost/roles/ghost-role-component.ftl @@ -20,9 +20,20 @@ ghost-role-information-traveling-chef-description = Вы - шеф-повар н ghost-role-information-traveling-chef-rules = Действуют обычные правила для экипажа станции. # Lost souls roles end +#Fauna update start here!!! ghost-role-information-giant-fly-name = Веспия ghost-role-information-giant-fly-description = Вы гигантская боевая оса. Ваша задача - уничтожить всех кроме представителей вашего вида. ghost-role-information-giant-fly-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими гигантскими осами. + +ghost-role-information-space-adder-name = Космическая гадюка +ghost-role-information-space-adder-description = Обитатели этой станции выглядят очень аппетитно, как раз вам на зубок. +ghost-role-information-small-space-adder-name = Маленькая космическая гадюка + +ghost-role-information-cobra-space-name = Космическая кобра +ghost-role-information-cobra-space-description = Когда вас заметят - будет слишком поздно. Выползайте на охоту! +ghost-role-information-snake-overall-rules = Вы [color=red][bold]Командный антагонист[/bold][/color], в команде с другими змеями из далёкого космоса. +#Fauna update end here!!! + ghost-role-information-clownmime-cyborg-name = МимоКлоунский киборг ghost-role-information-clownmime-cyborg-description = Вы киборг, созданный с помощью магии хонка и минуты молчания(аминь), помогите своему создателю нести хонк по станции. diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl new file mode 100644 index 000000000000..4b3ecf05d329 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/space.ftl @@ -0,0 +1,3 @@ +ent-MobCobraSpaceGhostRole = { ent-MobCobraSpace } + .suffix = Роль призрака + .desc = { ent-MobCobraSpace.desc } \ No newline at end of file diff --git a/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl new file mode 100644 index 000000000000..18f0bf9a0095 --- /dev/null +++ b/Resources/Locale/ru-RU/ss220/prototypes/entities/mobs/npcs/xeno.ftl @@ -0,0 +1,6 @@ +ent-MobPurpleSnakeGhostRole = { ent-MobPurpleSnake } + .desc = { ent-MobPurpleSnake.desc } + .suffix = Роль призрака +ent-MobSmallPurpleSnakeGhostRole = { ent-MobSmallPurpleSnake } + .desc = { ent-MobSmallPurpleSnake.desc } + .suffix = { ent-MobSmallPurpleSnake.suffix }, Роль призрака \ No newline at end of file diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml index 73292f2f9072..76d55faf6bf1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/animals.yml @@ -2352,6 +2352,17 @@ - type: Spider - type: IgnoreSpiderWeb - type: Bloodstream + #SS220 Fauna update start + - type: ThermalVision + state: Half + visionRadius: 14 + - type: Damageable + damageContainer: Biological + damageModifierSet: SpiderMob + - type: Magboots + - type: Puller + needsHands: false + #SS220 Fauna update end bloodMaxVolume: 150 bloodReagent: CopperBlood - type: Speech @@ -2372,7 +2383,7 @@ - type: Prying # Open door from xeno.yml. pryPowered: true force: true - speedModifier: 1.5 + speedModifier: 3 #SS220 Fauna update 1.5 -> 3. B A L A N S Z O N E S A useSound: path: /Audio/Items/crowbar.ogg - type: PassiveDamage # Slight passive regen. Assuming one damage type, comes out to about 4 damage a minute from base.yml. @@ -2448,6 +2459,44 @@ damage: types: Piercing: 6 + #SS220 Fauna update start + - type: Cocooner + cocoonTypes: + - CocoonsList: + entityWhiteList: + components: + - HumanoidAppearance + entityProtoList: + - TarantulaCocoon + + - CocoonsList: + entityBlackList: + components: + - HumanoidAppearance + entityProtoList: + - TarantulaAnimalCocoon + + - CocoonsList: + entityWhiteList: + components: + - Item + sizes: + - Tiny + - Small + entityBlackList: + components: + - HumanoidAppearance + entityProtoList: + - TarantulaSmallAnimalCocoon + + - type: ActionGrant + actions: + - ActionSpawnSpiderWallWebTarantula + - ActionPryingTarantula + - ActionSpawnSpiderEggTarantula + - ActionSpawnSingleSpiderWebTarantula + - ActionCocoonTarantula + #SS220 Fauna update end - type: entity parent: @@ -2502,6 +2551,14 @@ - type: Bloodstream bloodMaxVolume: 150 bloodReagent: Laughter + #SS220 Fauna update start + - type: ActionGrant + actions: + - ActionPryingClownSpider + - ActionSpawnSpiderWallWebClownSpider + - ActionSpawnSpiderEggClownSpider + - ActionSpawnSingleSpiderWebClownSpider + #SS220 Fauna update end - type: entity name: wizard spider diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml index 20c7e8af8117..1e73c8161d4f 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/slimes.yml @@ -5,6 +5,7 @@ abstract: true description: It looks so much like jelly. I wonder what it tastes like? components: + - type: NoSlip #SS220 Fauna update - type: Sprite drawdepth: Mobs sprite: Mobs/Aliens/slimes.rsi @@ -53,7 +54,7 @@ maxSaturation: 15 - type: Damageable damageContainer: Biological - damageModifierSet: Slime + damageModifierSet: SlimeMob #SS220 FaunaUpdate - type: Bloodstream bloodReagent: Slime bloodlossDamage: diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml index cf57d0e0fdc4..97827c247525 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/space.yml @@ -284,8 +284,14 @@ parent: MobSpaceBasic description: Long fangs and a glowing hood, and the alluring look begs to come closer. components: + #SS220 Fauna update start + - type: NoSlip + - type: Damageable + damageContainer: Biological + damageModifierSet: SnakeMob + #SS220 Fauna update end - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Animals/spacecobra.rsi layers: - map: [ "enum.DamageStateVisualLayers.Base" ] @@ -329,9 +335,9 @@ radius: 0.40 density: 120 mask: - - MobMask + - SmallMobMask #SS220 Fauna update layer: - - MobLayer + - SmallMobLayer #SS220 Fauna update - type: MeleeWeapon hidden: true soundHit: @@ -367,6 +373,12 @@ - type: StealthOnMove passiveVisibilityRate: -0.25 movementVisibilityRate: 0.25 + #SS220 Fauna Update start + - type: Tag + tags: + - CannotSuicide + - FootstepSound + #SS220 Fauna Update end - type: entity id: MobCobraSpaceSalvage diff --git a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml index 23d3e838e21e..552648cbdca1 100644 --- a/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml +++ b/Resources/Prototypes/Entities/Mobs/NPCs/xeno.yml @@ -364,8 +364,14 @@ id: MobPurpleSnake description: A menacing purple snake from Kepler-283c. components: + #SS220 Fauna update start + - type: NoSlip + - type: Damageable + damageContainer: Biological + damageModifierSet: SnakeMob + #SS220 Fauna update end - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi layers: - map: ["enum.DamageStateVisualLayers.Base"] @@ -416,15 +422,15 @@ radius: 0.35 density: 25 mask: - - MobMask + - SmallMobMask #SS220 Fauna update layer: - - MobLayer + - SmallMobLayer #SS220 Fauna update - type: FootstepModifier footstepSoundCollection: collection: FootstepSnake - type: Tag tags: - - DoorBumpOpener + # - DoorBumpOpener #Muted tag cause of SS220 fauna update - FootstepSound - type: entity @@ -435,7 +441,7 @@ description: A smaller version of the menacing purple snake from Kepler-283c. components: - type: Sprite - drawdepth: Mobs + drawdepth: SmallMobs #SS220 Fauna update sprite: Mobs/Aliens/Xenos/purple_snake.rsi layers: - map: ["enum.DamageStateVisualLayers.Base"] diff --git a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml index a0317aa7f768..9215d84c9a94 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/spider_web.yml @@ -132,12 +132,27 @@ damageModifierSet: Wood - type: Destructible thresholds: + #SS220 fauna update start + - trigger: + !type:DamageTrigger + damage: 50 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + #SS220 fauna update end - trigger: !type:DamageTrigger damage: 10 behaviors: - !type:DoActsBehavior acts: [ "Destruction" ] + #SS220 fauna update start + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSugarSilk: + min: 1 + max: 1 + #SS220 fauna update end - type: Temperature heatDamage: types: diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index d61dc8f584e2..a2b1f160f379 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -24,6 +24,9 @@ - id: SpiderClownSpawn - id: SpiderSpawn - id: VentClog + #SS220 Fauna update start + - id: SpaceCobraSpawn + #SS220 Fauna update end - type: entityTable id: BasicAntagEventsTable @@ -405,12 +408,20 @@ duration: 60 - type: VentCrittersRule entries: + #SS220 fauna update start. Each prob was 0.02 on wizden. Amount and max amout for SS220 - id: MobAdultSlimesBlueAngry - prob: 0.02 + prob: 0.01 + amount: 3 + maxAmount: 3 - id: MobAdultSlimesGreenAngry - prob: 0.02 + prob: 0.01 + amount: 3 + maxAmount: 3 - id: MobAdultSlimesYellowAngry - prob: 0.02 + prob: 0.01 + amount: 3 + maxAmount: 3 + #SS220 Fauna update end - type: entity id: SnakeSpawn @@ -430,12 +441,34 @@ duration: 60 - type: VentCrittersRule entries: - - id: MobPurpleSnake - prob: 0.02 - - id: MobSmallPurpleSnake - prob: 0.02 + - id: MobPurpleSnakeGhostRole #SS220 Fauna update + prob: 0.03 + - id: MobSmallPurpleSnakeGhostRole #SS220 Fauna update + prob: 0.03 + #SS220 Fauna update. Making this event just snakes. + #- id: MobCobraSpace + #prob: 0.02 + +#SS220 Fauna update start +- type: entity + id: SpaceCobraSpawn + parent: BaseStationEventShortDelay + components: + - type: StationEvent + startAnnouncement: station-event-vent-creatures-start-announcement + startAudio: + path: /Audio/SS220/Announcements/lifesigns.ogg + params: + volume: -4 + earliestStart: 20 + minimumPlayers: 15 + weight: 5 + duration: 60 + - type: VentCrittersRule + entries: - id: MobCobraSpace - prob: 0.02 + prob: 0.06 +#SS220 Fauna update end - type: entity id: SpiderSpawn @@ -456,7 +489,11 @@ - type: VentCrittersRule entries: - id: MobGiantSpiderAngry - prob: 0.05 + #SS220 Fauna update start. Offs prob is 0.05 + prob: 0.025 + amount: 3 + maxAmount: 4 + #SS220 Fauna update end. - type: entity id: SpiderClownSpawn @@ -477,7 +514,11 @@ - type: VentCrittersRule entries: - id: MobClownSpider - prob: 0.05 + #SS220 Fauna update start. Offs prob is 0.05 + prob: 0.03 + amount: 2 + maxAmount: 2 + #SS220 Fauna update end - type: entity id: ZombieOutbreak diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml new file mode 100644 index 000000000000..036be7f0cdd2 --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/ClownSpider_actions.yml @@ -0,0 +1,62 @@ +#Prying +- type: entity + id: ActionPryingClownSpider + name: Prying + description: Pry + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: prying + event: !type:ActionPryingEvent + +#Unique clown-spider stuff +- type: entity + id: ActionSpawnSpiderWallWebClownSpider + name: create a wall + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 24 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: wall_spawn + event: !type:SpiderTargetSpawnEvent + prototypes: + - id: WallWebClownWebSpawn + amount: 1 + offset: 0, 1 + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggClownSpider + name: ClownSpider spider egg + description: ClownSpider + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: clownspider_spawn + event: !type:SpiderNearbySpawnEvent + prototypes: + - id: SpiderEggClownSpider + amount: 1 + offset: 0, 1 + startDelay: true + useDelay: 240 + +- type: entity + parent: ActionSpawnSingleSpiderWebClown + id: ActionSpawnSingleSpiderWebClownSpider + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_clownspider.rsi + state: web_spawn + useDelay: 6 \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml new file mode 100644 index 000000000000..570d75e1c0b1 --- /dev/null +++ b/Resources/Prototypes/SS220/Actions/MinorFauna/Tarantula_actions.yml @@ -0,0 +1,75 @@ +#Prying +- type: entity + id: ActionPryingTarantula + name: Prying + description: Pry + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: prying + event: !type:ActionPryingEvent + +#Unique tarantula stuff +- type: entity + id: ActionSpawnSpiderWallWebTarantula + name: create a wall + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 24 + range: 1.5 + itemIconStyle: BigAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: wall_spawn + event: !type:SpiderTargetSpawnEvent + prototypes: + - id: WallWebSpawn + amount: 1 + offset: 0, 1 + +- type: entity + parent: BaseActionSpawnSpiderEgg + id: ActionSpawnSpiderEggTarantula + name: Tarantula spider egg + description: Tarantula + categories: [ HideSpawnMenu ] + components: + - type: InstantAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: tarantula_spawn + event: !type:SpiderNearbySpawnEvent + prototypes: + - id: SpiderEggTarantula + amount: 1 + offset: 0, 1 + startDelay: true + useDelay: 240 + +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebTarantula + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: web_spawn + useDelay: 4 + +- type: entity + id: ActionCocoonTarantula + categories: [ HideSpawnMenu ] + components: + - type: EntityTargetAction + itemIconStyle: BigAction + event: !type:ActionEntityCocooningEvent + startDelay: true + useDelay: 5 + icon: + sprite: SS220/Interface/Actions/MinorFauna/action_tarantula.rsi + state: prying \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Actions/Spider_actions.yml b/Resources/Prototypes/SS220/Actions/Spider_actions.yml index df38740b2ec9..b754f2ef90e2 100644 --- a/Resources/Prototypes/SS220/Actions/Spider_actions.yml +++ b/Resources/Prototypes/SS220/Actions/Spider_actions.yml @@ -255,6 +255,14 @@ - type: WorldTargetAction useDelay: 2 +- type: entity + parent: BaseActionSpawnSingleSpiderWeb + id: ActionSpawnSingleSpiderWebStandartDelay + categories: [ HideSpawnMenu ] + components: + - type: WorldTargetAction + useDelay: 4 + - type: entity parent: BaseActionSpawnSingleSpiderWeb id: ActionSpawnSingleSpiderWebLongDelay @@ -324,4 +332,4 @@ cocooningTime: 15 itemIconStyle: NoItem icon: { sprite: SS220/Interface/Actions/action_spider.rsi, state: cocoon } - useDelay: 10 + useDelay: 10 \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Damage/modifier_sets.yml b/Resources/Prototypes/SS220/Damage/modifier_sets.yml index 57c99d894b22..082b5a16796c 100644 --- a/Resources/Prototypes/SS220/Damage/modifier_sets.yml +++ b/Resources/Prototypes/SS220/Damage/modifier_sets.yml @@ -121,6 +121,29 @@ Cellular: 1 Radiation: 0.5 + +#Fauna update stuff +- type: damageModifierSet + id: SlimeMob + coefficients: + Blunt: 0.6 + Slash: 1.2 + Piercing: 1.2 + Cold: 1.5 + Poison: 0.8 + Cellular: 0.2 + Stamina: 0.4 + +- type: damageModifierSet + id: SpiderMob + coefficients: + Stamina: 0.4 + +- type: damageModifierSet + id: SnakeMob + coefficients: + Stamina: 0.6 + - type: damageModifierSet id: MobVespia coefficients: @@ -128,3 +151,4 @@ Slash: 0.5 Radiation: 0.4 Stamina: 0.4 + diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml index aee4bb5a5695..fd633eb2ddbc 100644 --- a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/space.yml @@ -90,3 +90,19 @@ suffix: "Salvage Ruleset" components: - type: SalvageMobRestrictions + +- type: entity + name: Space Cobra + id: MobCobraSpaceGhostRole + suffix: GhostRole + parent: MobCobraSpace + description: Long fangs and a glowing hood, and the alluring look begs to come closer. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-cobra-space-name + description: ghost-role-information-cobra-space-description + rules: ghost-role-information-snake-overall-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable diff --git a/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml new file mode 100644 index 000000000000..c6d3d045e91f --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Mobs/NPCs/xeno.yml @@ -0,0 +1,31 @@ +- type: entity + name: космическая гадюка + parent: MobPurpleSnake + id: MobPurpleSnakeGhostRole + suffix: GhostRole + description: A menacing purple snake from Kepler-283c. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-space-adder-name + description: ghost-role-information-space-adder-description + rules: ghost-role-information-snake-overall-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable + +- type: entity + name: маленькая космическая гадюка + parent: MobSmallPurpleSnake + id: MobSmallPurpleSnakeGhostRole + suffix: GhostRole + description: A menacing purple snake from Kepler-283c. + components: + - type: GhostRole + makeSentient: true + name: ghost-role-information-small-space-adder-name + description: ghost-role-information-space-adder-description + rules: ghost-role-information-snake-overall-rules + mindRoles: + - MindRoleGhostRoleTeamAntagonist + - type: GhostTakeoverAvailable \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml b/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml new file mode 100644 index 000000000000..8ce06c3fd0d6 --- /dev/null +++ b/Resources/Prototypes/SS220/Entities/Objects/Materials/materials.yml @@ -0,0 +1,43 @@ +- type: entity + parent: MaterialBase + id: MaterialWebSugarSilk + name: sugar silk + description: A sugar material. + suffix: Full + components: + - type: PhysicalComposition + materialComposition: + WebSilk: 100 + - type: Sprite + sprite: Objects/Materials/silk.rsi + state: icon + shader: unshaded + color: pink + - type: Stack + count: 50 + stackType: WebSilk + - type: Food + delay: 2 + - type: FlavorProfile + flavors: + - sweet + - type: Extractable + juiceSolution: + reagents: + - ReagentId: Sugar + Quantity: 2 + - type: SolutionContainerManager + solutions: + food: + maxVol: 2 + reagents: + - ReagentId: Sugar + Quantity: 2 + - type: Tag + tags: + - RawMaterial + - type: Item + sprite: Objects/Materials/silk.rsi + heldPrefix: silk + shader: unshaded + color: pink \ No newline at end of file diff --git a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml index 14baaca7e984..05080b2edce3 100644 --- a/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml +++ b/Resources/Prototypes/SS220/Entities/Objects/Misc/spider_eggs.yml @@ -11,6 +11,7 @@ - type: Sprite sprite: Objects/Misc/eggspider.rsi state: icon + drawdepth: Mobs - type: Transform - type: Clickable - type: InteractionOutline @@ -61,7 +62,34 @@ - type: StaticPrice price: 500 +#Fauna update Spiders +- type: entity + parent: BaseSpiderEgg + id: SpiderEggClownSpider + categories: [ HideSpawnMenu ] + name: Tarantula egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: SpiderEgg + incubationTime: 60 + spawnProtos: + - id: MobClownSpider + amount: 1 + +- type: entity + parent: BaseSpiderEgg + id: SpiderEggTarantula + categories: [ HideSpawnMenu ] + name: Tarantula egg + description: Is this a gem? Is this an egg? It looks expensive. + components: + - type: SpiderEgg + incubationTime: 60 + spawnProtos: + - id: MobGiantSpiderAngry + amount: 1 #Spiders + - type: entity parent: BaseSpiderEgg id: SpiderEggDrone diff --git a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml index 069d12371c33..43f0f9902435 100644 --- a/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml +++ b/Resources/Prototypes/SS220/Entities/Structures/Specific/spider_structures.yml @@ -1,4 +1,35 @@ #Base +- type: entity + id: BaseEntityCocoon + name: cocoon + description: сосал? + suffix: cocoon + abstract: true + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + - type: Transform + - type: Physics + canCollide: false + - type: Fixtures + fixtures: + fix1: + shape: + !type:PhysShapeAabb {} + - type: Clickable + - type: Damageable + damageContainer: Inorganic + damageModifierSet: Wood + - type: Destructible + - type: AntiRottingContainer + - type: ContainerContainer + containers: + cocoon: !type:Container + - type: EntityCocoon + container: cocoon + - type: entity id: BaseSpiderCocoon name: spider cocoon @@ -121,6 +152,18 @@ - type: SpawnOnDespawn prototype: WallWebDurable +- type: entity + parent: WallWebSpawn + id: WallWebClownWebSpawn + categories: [ HideSpawnMenu ] + components: + - type: Sprite + sprite: SS220/Effects/wallwebspawn.rsi + state: webwall + color: pink + - type: SpawnOnDespawn + prototype: WallWebClownWeb + #Wall - type: entity parent: BaseWall @@ -168,6 +211,66 @@ graph: WebStructures node: wall +- type: entity + parent: BaseWall + id: WallWebClownWeb + name: ClownWeb + description: web + components: + - type: Food + delay: 4 + flavors: + - sweet + - type: SolutionContainerManager + solutions: + food: + reagents: + - ReagentId: Sugar + Quantity: 60 + - type: FlavorProfile + flavors: + - sweet + - type: Clickable + - type: MeleeSound + soundGroups: + Brute: + path: + "/Audio/Weapons/slash.ogg" + - type: Damageable + damageModifierSet: Web + - type: Tag + tags: + - Wall + - type: Sprite + sprite: SS220/Structures/Walls/web.rsi #SS220-Walss-Sprite-Update-V4 + shader: unshaded + color: pink + - type: Icon + sprite: SS220/Structures/Walls/web.rsi #SS220-Walss-Sprite-Update-V4 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 75 + behaviors: + - !type:DoActsBehavior + acts: [ "Destruction" ] + - !type:SpawnEntitiesBehavior + spawn: + MaterialWebSugarSilk: + min: 4 + max: 6 + - !type:PlaySoundBehavior + sound: + collection: WoodDestroy + - type: IconSmooth + key: webs + base: wall + - type: Construction + graph: WebStructures + node: wall + + # Cocoon - type: entity parent: BaseSpiderCocoon @@ -259,3 +362,100 @@ - type: Construction graph: SpiderCocoon node: cocoonVerticalDestroyed + +#Fauna update cocoons +- type: entity + parent: BaseEntityCocoon + id: TarantulaCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: animal_cocoon2 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: animal_cocoon2 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal + +- type: entity + parent: BaseEntityCocoon + id: TarantulaAnimalCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: animal_cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: animal_cocoon1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal + +- type: entity + parent: BaseEntityCocoon + id: TarantulaSmallAnimalCocoon + suffix: Tarantula + components: + - type: Icon + sprite: SS220/Structures/Specific/cocoon.rsi + state: small_animal_cocoon1 + - type: Sprite + sprite: SS220/Structures/Specific/cocoon.rsi + layers: + - state: small_animal_cocoon1 + - type: Destructible + thresholds: + - trigger: + !type:DamageTrigger + damage: 150 + behaviors: + - !type:EmptyContainersBehaviour + containers: + - cocoon + - !type:PlaySoundBehavior + sound: + path: /Audio/Effects/poster_broken.ogg + - !type:ChangeConstructionNodeBehavior + node: cocoonHorizontalDestroyed + - !type:DoActsBehavior + acts: [ "Destruction" ] + - type: Construction + graph: SpiderCocoon + node: cocoonHorizontal \ No newline at end of file diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png new file mode 100644 index 000000000000..d90023e2bb86 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/clownspider_spawn.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/cocoon.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/cocoon.png new file mode 100644 index 000000000000..c8de4cd889ba Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/cocoon.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json new file mode 100644 index 000000000000..e1ac8cc0fe32 --- /dev/null +++ b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by Estkemran (Github) modified by kimorue (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "clownspider_spawn" + }, + { + "name": "web_spawn" + }, + { + "name": "wall_spawn" + }, + { + "name": "prying" + }, + { + "name": "cocoon" + } + ] +} diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png new file mode 100644 index 000000000000..9c617bf05944 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/prying.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png new file mode 100644 index 000000000000..82ebeaba7c4e Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/wall_spawn.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png new file mode 100644 index 000000000000..5bac7ee49a3d Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_clownspider.rsi/web_spawn.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png new file mode 100644 index 000000000000..2b7ff65edb09 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/cocoon.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json new file mode 100644 index 000000000000..dd632caf7040 --- /dev/null +++ b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/meta.json @@ -0,0 +1,26 @@ +{ + "version": 1, + "license": "EULA/CLA with a hosting restriction, full text: https://raw.githubusercontent.com/SerbiaStrong-220/space-station-14/master/CLA.txt", + "copyright": "Sprited by Estkemran (Github) modified by kimorue (Discord) for SS220", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "tarantula_spawn" + }, + { + "name": "web_spawn" + }, + { + "name": "wall_spawn" + }, + { + "name": "prying" + }, + { + "name": "cocoon" + } + ] +} diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png new file mode 100644 index 000000000000..7675db25f5a5 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/prying.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png new file mode 100644 index 000000000000..e9f1ddc3e7d1 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/tarantula_spawn.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png new file mode 100644 index 000000000000..0b75ce14dda2 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/wall_spawn.png differ diff --git a/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/web_spawn.png b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/web_spawn.png new file mode 100644 index 000000000000..91438205b475 Binary files /dev/null and b/Resources/Textures/SS220/Interface/Actions/MinorFauna/action_tarantula.rsi/web_spawn.png differ diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png new file mode 100644 index 000000000000..82befd64f29b Binary files /dev/null and b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon1.png differ diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png new file mode 100644 index 000000000000..3eefc6454efb Binary files /dev/null and b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/animal_cocoon2.png differ diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png new file mode 100644 index 000000000000..6e1350be422f Binary files /dev/null and b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon1.png differ diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon2.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon2.png new file mode 100644 index 000000000000..ace345d537e0 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/destroyed_animal_cocoon2.png differ diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json index 3f1b42638204..7a7d4ef3f45e 100644 --- a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json +++ b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/meta.json @@ -18,6 +18,21 @@ }, { "name": "destroyed_cocoon2" + }, + { + "name": "animal_cocoon1" + }, + { + "name": "destroyed_animal_cocoon1" + }, + { + "name": "animal_cocoon2" + }, + { + "name": "destroyed_animal_cocoon2" + }, + { + "name": "small_animal_cocoon1" } ] } diff --git a/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png new file mode 100644 index 000000000000..e6ee297a3772 Binary files /dev/null and b/Resources/Textures/SS220/Structures/Specific/cocoon.rsi/small_animal_cocoon1.png differ