diff --git a/Content.Server/Devour/DevourSystem.cs b/Content.Server/Devour/DevourSystem.cs index febbd093a6c..6b613a47261 100644 --- a/Content.Server/Devour/DevourSystem.cs +++ b/Content.Server/Devour/DevourSystem.cs @@ -1,3 +1,4 @@ +using Content.Server.Body.Components; using Content.Server.Body.Systems; using Content.Shared.Chemistry.Components; using Content.Shared.Devour; @@ -15,6 +16,7 @@ public override void Initialize() base.Initialize(); SubscribeLocalEvent(OnDoAfter); + SubscribeLocalEvent(OnGibContents); // Delta-V } private void OnDoAfter(EntityUid uid, DevourerComponent component, DevourDoAfterEvent args) @@ -45,5 +47,17 @@ private void OnDoAfter(EntityUid uid, DevourerComponent component, DevourDoAfter _audioSystem.PlayPvs(component.SoundDevour, uid); } + + // Delta-V begin + private void OnGibContents(EntityUid uid, DevourerComponent component, ref BeingGibbedEvent args) + { + if (!component.ShouldStoreDevoured) + return; + + // For some reason we have two different systems that should handle gibbing, + // and for some another reason GibbingSystem, which should empty all containers, doesn't get involved in this process + ContainerSystem.EmptyContainer(component.Stomach); + } + // Delta-V end } diff --git a/Resources/Prototypes/GameRules/events.yml b/Resources/Prototypes/GameRules/events.yml index d0241aadd56..f44def06b3b 100644 --- a/Resources/Prototypes/GameRules/events.yml +++ b/Resources/Prototypes/GameRules/events.yml @@ -79,35 +79,35 @@ - type: RandomEntityStorageSpawnRule prototype: MobSkeletonCloset -#- type: entity # DeltaV: remove space dragon spawn event -# parent: BaseGameRule -# id: DragonSpawn -# noSpawn: true -# components: -# - type: StationEvent -# weight: 1 # DeltaV - was 6.5 -# earliestStart: 60 # DeltaV - was 40 -# reoccurrenceDelay: 20 -# minimumPlayers: 45 # DeltaV - was 20 -# - type: AntagRandomSpawn -# - type: AntagSpawner -# prototype: MobDragon -# - type: AntagObjectives -# objectives: -# - CarpRiftsObjective -# - DragonSurviveObjective -# - type: AntagSelection -# agentName: dragon-round-end-agent-name -# definitions: -# - spawnerPrototype: SpawnPointGhostDragon -# min: 1 -# max: 1 -# pickPlayer: false -# mindComponents: -# - type: DragonRole -# prototype: Dragon -# - type: RoleBriefing -# briefing: dragon-role-briefing +- type: entity + parent: BaseGameRule + id: DragonSpawn + noSpawn: true + components: + - type: StationEvent + weight: 1 # DeltaV - was 6.5 + earliestStart: 60 # DeltaV - was 40 + reoccurrenceDelay: 20 + minimumPlayers: 45 # DeltaV - was 20 + - type: AntagRandomSpawn + - type: AntagSpawner + prototype: MobDragon + - type: AntagObjectives + objectives: + - CarpRiftsObjective + - DragonSurviveObjective + - type: AntagSelection + agentName: dragon-round-end-agent-name + definitions: + - spawnerPrototype: SpawnPointGhostDragon + min: 1 + max: 1 + pickPlayer: false + mindComponents: + - type: DragonRole + prototype: Dragon + - type: RoleBriefing + briefing: dragon-role-briefing - type: entity parent: BaseGameRule diff --git a/Resources/Prototypes/threats.yml b/Resources/Prototypes/threats.yml index bcfefaf034e..ba4a2f4e439 100644 --- a/Resources/Prototypes/threats.yml +++ b/Resources/Prototypes/threats.yml @@ -2,13 +2,13 @@ - type: weightedRandom id: NinjaThreats weights: -# Dragon: 1 # DeltaV + Dragon: 1 Revenant: 1 -#- type: ninjaHackingThreat # DeltaV -# id: Dragon -# announcement: terror-dragon -# rule: DragonSpawn +- type: ninjaHackingThreat + id: Dragon + announcement: terror-dragon + rule: DragonSpawn - type: ninjaHackingThreat id: Revenant