DestructibleComponent [AlwaysPushInheritance] (#44644)

* initial

* final

* this is gonna take a while.....

* more

* progress

* Shrink it

* Revert "Merge branch 'structs/health-bases' into structs/destructible-alwaysinherit"

This reverts commit 88fc74722b95942e1b12482e2346d846f47f2ffc, reversing
changes made to dcade0e7832cb86898ace1e854716b8d894bf366.

* windoors WOW

* okay

* Revert "windoors WOW"

This reverts commit 96bffc71642ec641da37c4cfbe4efeb7efc396fa.

* beds chairs carpets

* Revert "chairs"

This reverts commit 6aecd1e268d86caf509c21b31f6faf2109b977bf.

* a whole lot more

* windows

* break before machines

* random errors

* walls

* more walls

* machines

* Squish thresholds

* misc test fails

* mobs

* test

* self review

* another once over

* revert

* a bunch of changes

* remove squish

* more remove squish

* more self review

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
This commit is contained in:
āda 2026-07-22 05:31:08 -05:00 • committed by GitHub
parent 7f559a701a
commit d422b4db6f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
160 changed files with 1774 additions and 2300 deletions

View file

@ -6,7 +6,7 @@ namespace Content.Server.Destructible;
/// When attached to an <see cref="Robust.Shared.GameObjects.EntityUid"/>, allows it to take damage
/// and triggers thresholds when reached.
/// </summary>
[RegisterComponent]
[RegisterComponent, Access(typeof(DestructibleSystem))]
public sealed partial class DestructibleComponent : Component
{
/// <summary>
@ -14,6 +14,7 @@ public sealed partial class DestructibleComponent : Component
/// includes their triggers and resultant behaviors.
/// </summary>
[DataField(customTypeSerializer: typeof(DamageThresholdsSerializer))]
[AlwaysPushInheritance]
public List<DamageThreshold> Thresholds = new();
/// <summary>

View file

@ -183,12 +183,6 @@
amount: 5
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 400
behaviors:
- !type:GibBehavior { }
- trigger:
!type:DamageTypeTrigger
damageType: Heat
@ -200,26 +194,6 @@
FoodMeatChickenFriedVox:
min: 3
max: 5
- !type:BurnBodyBehavior
popupMessage: bodyburn-vox-text-others
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 15
behaviors:
- !type:PopupBehavior
popup: mouth-taste-metal
popupType: LargeCaution
targetOnly: true
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 40
behaviors:
- !type:VomitBehavior
- type: PassiveDamage
# Augment normal health regen to be able to tank some Poison damage
# This allows Vox to take their mask off temporarily to eat something without needing a trip to medbay afterwards.

View file

@ -162,6 +162,7 @@
- MobAtmosStandard
- MobFlammable
- BaseSpeciesMob
- BaseMobDestructible
id: BaseSpeciesMobOrganic
save: false
components:

View file

@ -169,34 +169,6 @@
- type: Damageable
- type: Injurable
damageContainer: Silicon
- type: Destructible
generateOverkillThreshold: false
thresholds:
- trigger:
!type:DamageTrigger
damage: 75
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Machines/warning_buzzer.ogg
params:
volume: 5
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:GibBehavior
- !type:SpawnEntitiesBehavior
spawn:
ScrapGlass:
min: 1
max: 1
SheetSteel:
min: 10
max: 20
- type: HandheldLight
toggleOnInteract: false
wattage: 0.2
@ -263,6 +235,34 @@
id: BaseBorgChassis
components:
- type: IonStormTarget
- type: Destructible
generateOverkillThreshold: false
thresholds:
- trigger:
!type:DamageTrigger
damage: 75
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Machines/warning_buzzer.ogg
params:
volume: 5
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:GibBehavior
- !type:SpawnEntitiesBehavior
spawn:
ScrapGlass:
min: 1
max: 1
SheetSteel:
min: 10
max: 20
- type: entity
abstract: true
@ -504,6 +504,32 @@
- type: NpcFactionMember
factions:
- Xenoborg
- type: PointLight
color: "#3010ff"
energy: 7
- type: GuideHelp
guides:
- Cyborgs
- Robotics
- Xenoborgs
- type: Access
tags:
- Xenoborg
- type: AccessReader
access: [["Xenoborg"]]
- type: ShowJobIcons # not sure if it is needed
- type: ShowCrewIcons
- type: InteractionPopup
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Xenoborg
- type: BypassLock
bypassDelay: 15 # We don't want people to easily be able to remove xenoborg brains.
- type: entity
abstract: true
id: BaseXenoborgDestructible
components:
- type: Destructible
thresholds:
- trigger:
@ -534,24 +560,3 @@
- cell_slot
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: PointLight
color: "#3010ff"
energy: 7
- type: GuideHelp
guides:
- Cyborgs
- Robotics
- Xenoborgs
- type: Access
tags:
- Xenoborg
- type: AccessReader
access: [["Xenoborg"]]
- type: ShowJobIcons # not sure if it is needed
- type: ShowCrewIcons
- type: InteractionPopup
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
- type: Xenoborg
- type: BypassLock
bypassDelay: 15 # We don't want people to easily be able to remove xenoborg brains.

View file

@ -1,5 +1,5 @@
- type: entity
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ]
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder, BaseXenoborgDestructible ]
id: XenoborgEngi
name: engi xenoborg
suffix: with brain
@ -148,7 +148,7 @@
startingItem: PowerCellHigh
- type: entity
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ]
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder, BaseXenoborgDestructible ]
id: XenoborgScout
name: scout xenoborg
suffix: with brain
@ -203,7 +203,7 @@
startingItem: PowerCellHigh
- type: entity
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder ]
parent: [ BaseXenoborgChassis, BaseXenoborgTransponder, BaseXenoborgDestructible ]
id: XenoborgStealth
name: stealth xenoborg
suffix: with brain

View file

@ -199,7 +199,7 @@
- type: entity
name: chicken
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobChicken
description: Comes before an egg, and IS a dinosaur!
components:
@ -348,17 +348,12 @@
lifetime: 21
- type: entity
name: cockroach
abstract: true
parent: [SolutionFood, SolutionTiny, SimpleMobBase, BaseSlicingRefinable, MobNightVision]
id: MobCockroach
description: This station is just crawling with bugs.
id: BaseCockroach
components:
- type: Sprite
drawdepth: SmallMobs
sprite: Mobs/Animals/cockroach.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: cockroach
- type: Item
size: Tiny
- type: HTN
@ -385,14 +380,6 @@
- type: MovementSpeedModifier
baseWalkSpeed : 2.5
baseSprintSpeed : 5
- type: DamageStateVisuals
states:
Alive:
Base: cockroach
Critical:
Base: cockroach_dead
Dead:
Base: cockroach_dead
- type: Bloodstream
bloodReferenceSolution:
reagents:
@ -422,15 +409,6 @@
tags:
- Trash
- VimPilot
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 10
behaviors:
- !type:GibBehavior
recursive: false
- type: NonSpreaderZombie
- type: StepTrigger
requiredTriggeredSpeed: 1
@ -448,9 +426,38 @@
types:
Piercing: 0
- type: entity
parent: BaseCockroach
id: MobCockroach
name: cockroach
description: This station is just crawling with bugs.
components:
- type: Sprite
sprite: Mobs/Animals/cockroach.rsi
layers:
- map: ["enum.DamageStateVisualLayers.Base"]
state: cockroach
- type: DamageStateVisuals
states:
Alive:
Base: cockroach
Critical:
Base: cockroach_dead
Dead:
Base: cockroach_dead
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 10
behaviors:
- !type:GibBehavior
recursive: false
- type: entity
name: glockroach
parent: [MobCockroach, BaseSlicingRefinable]
parent: MobCockroach
suffix: Admeme
id: MobGlockroach
description: This station is just crawling with bu- OH GOD THAT COCKROACH HAS A GUN!!!
@ -476,13 +483,10 @@
- type: NpcFactionMember
factions:
- SimpleHostile
- type: ToolRefinable
refineResult:
- id: FoodMeatSlime
- type: entity
name: mothroach
parent: [ BaseMobMothroach, MobCockroach, BaseSlicingRefinable ]
parent: [ BaseMobMothroach, BaseCockroach, BaseSlicingRefinable ]
id: MobMothroach
description: This is the adorable by-product of multiple attempts at genetically mixing mothpeople with cockroaches.
components:
@ -656,7 +660,7 @@
- type: entity
name: mallard duck #Quack
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobDuckMallard
description: An adorable mallard duck, it's fluffy and soft!
components:
@ -859,7 +863,7 @@
- type: entity
name: cow
parent: [ BaseMobRuminant, SimpleMobBase, BaseSlicingRefinable ]
parent: [ BaseMobRuminant, SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible ]
id: MobCow
description: Moo.
components:
@ -950,7 +954,7 @@
- type: entity
name: crab
parent: [ SimpleMobBase, BaseMobHemocyanin, BaseSlicingRefinable ]
parent: [ SimpleMobBase, BaseMobHemocyanin, BaseSlicingRefinable, BaseMobDestructible ]
id: MobCrab
description: A folk legend goes around that his claw snaps spacemen out of existence over distasteful remarks. Be polite and tolerant for your own safety.
components:
@ -1018,7 +1022,7 @@
- type: entity
name: goat
parent: [ BaseMobRuminant, SimpleMobBase, BaseSlicingRefinable ]
parent: [ BaseMobRuminant, SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible ]
id: MobGoat
description: Her spine consists of long sharp segments, no wonder she is so grumpy.
components:
@ -1286,7 +1290,7 @@
Quantity: 25
- type: entity
parent: [ MobSheepBase, SimpleMobBase ]
parent: [ MobSheepBase, SimpleMobBase, BaseMobDestructible ]
id: MobSheep
name: sheep
description: An adorable genetically engineered chemical factory producing milk and cotton.
@ -1323,7 +1327,7 @@
# Note that we gotta make this bitch vomit someday when you feed it anthrax or sumthin. Needs to be a small item thief too and aggressive if attacked.
- type: entity
name: goose
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobGoose
description: Its stomach and mind are an enigma beyond human comprehension.
components:
@ -1374,7 +1378,7 @@
- type: entity
name: gorilla
parent: [ SimpleMobBase, MobCombat ]
parent: [ SimpleMobBase, MobCombat, BaseMobDestructible ]
id: MobGorilla
description: Smashes, roars, looks cool. Don't stand near one.
components:
@ -1459,6 +1463,7 @@
- MobCombat
- StripableInventoryBase
- BaseSlicingRefinable
- BaseMobDestructible
id: MobKangaroo
description: A large marsupial herbivore. It has powerful hind legs, with nails that resemble long claws.
components:
@ -1550,7 +1555,7 @@
- type: entity
name: genetic ancestor
id: MobBaseAncestor
parent: [BaseMobAnimal, SimpleMobBase, StripableInventoryBase]
parent: [BaseMobAnimal, SimpleMobBase, StripableInventoryBase, BaseMobDestructible]
description: The genetic bipedal ancestor of... Uh... Something. Yeah, there's definitely something on the station that descended from whatever this is.
abstract: true
components:
@ -2216,7 +2221,7 @@
- type: entity
name: lizard #Weh
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobLizard
description: A harmless dragon.
components:
@ -2273,7 +2278,7 @@
- type: entity
name: slug
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobSlug
description: And they called this a lizard?
components:
@ -2394,7 +2399,7 @@
# Would be cool to have some functionality for the parrot to be able to sit on stuff
- type: entity
parent: [ SimpleMobBase, FlyingMobBase, BaseSlicingRefinable ]
parent: [ SimpleMobBase, FlyingMobBase, BaseSlicingRefinable, BaseMobDestructible ]
id: MobParrotBase
name: parrot
abstract: true
@ -2481,7 +2486,7 @@
- type: entity
name: penguin
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobPenguin
description: Their lives are constant pain due to their inner-body knees.
components:
@ -2620,7 +2625,7 @@
# I have included a snake_hiss.ogg sound file so if you want to use that be my guest
- type: entity
name: snake
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobSnake
description: Hissss! Bites aren't poisonous.
components:
@ -2670,7 +2675,7 @@
# Code unique spider prototypes or combine them all into one spider and get a
# random sprite state when you spawn it.
- type: entity
parent: [ SimpleMobBase, BaseMobHemocyanin, MobCombat, BaseSlicingRefinable, MobNightVision ]
parent: [ SimpleMobBase, BaseMobHemocyanin, MobCombat, BaseSlicingRefinable, MobNightVision, BaseMobDestructible ]
id: MobSpiderBase
abstract: true
components:
@ -2878,6 +2883,7 @@
reagents:
- ReagentId: Laughter
Quantity: 150
- type: entity
name: wizard spider
parent: MobGiantSpider
@ -2892,7 +2898,7 @@
- type: entity
name: possum
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobPossum
description: '"O Possum! My Possum!" -- Walt Whitman, 1865'
components:
@ -2965,7 +2971,7 @@
- type: entity
name: raccoon
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobRaccoon
description: Trash panda!
components:
@ -3018,7 +3024,7 @@
- type: entity
name: fox
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobFox
description: They're a fox.
components:
@ -3100,7 +3106,7 @@
- type: entity
abstract: true
parent: [SimpleMobBase, StripableInventoryBase]
parent: [SimpleMobBase, StripableInventoryBase, BaseMobDestructible]
id: MobCorgiBase
name: corgi
description: Finally, a space corgi!
@ -3264,7 +3270,7 @@
- type: entity
name: cat
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobCat
description: Feline pet, very funny.
components:
@ -3500,7 +3506,7 @@
- type: entity
name: sloth
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobSloth
description: Very slow animal. For people with low energy.
components:
@ -3557,7 +3563,7 @@
- type: entity
name: ferret
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobFerret
description: Just a silly little guy!
components:
@ -3766,7 +3772,7 @@
- type: entity
name: pig
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobPig
description: Oink.
components:
@ -3837,7 +3843,7 @@
- type: entity
name: diona nymph
parent: [BaseMobAnimal, SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [BaseMobAnimal, SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobDionaNymph
description: It's like a cat, only.... branch-ier.
components:
@ -3925,7 +3931,7 @@
- type: entity
name: reindeer buck
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable ]
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable, BaseMobDestructible ]
id: MobReindeerBuck
description: You think it can pull a sleigh?
components:

View file

@ -1,6 +1,6 @@
- type: entity
save: false
parent: [ BaseSimpleMob, BaseMobAnimal, MobCombat, MobBloodstream ]
parent: [ BaseSimpleMob, BaseMobAnimal, MobCombat, MobBloodstream, BaseMobDestructible ]
id: BaseMobArgocyte
suffix: AI
description: A dangerous alien found on the wrong side of planets, known for their propensity for munching on ruins.

View file

@ -27,7 +27,7 @@
- type: entity
id: MobGoliath
parent: [ BaseMobAsteroid, MobBloodstream, BaseSlicingRefinable ]
parent: [ BaseMobAsteroid, MobBloodstream, BaseSlicingRefinable, BaseMobDestructible ]
name: goliath
description: A massive beast that uses long tentacles to ensnare its prey, threatening them is not advised under any conditions.
components:
@ -189,7 +189,7 @@
- type: entity
id: MobHivelord
parent: [ BaseMobAsteroid, FlyingMobBase, BaseSlicingRefinable ]
parent: [ BaseMobAsteroid, FlyingMobBase, BaseSlicingRefinable, BaseMobDestructible ]
name: hivelord
description: A truly alien creature, it is a mass of unknown organic material, constantly fluctuating. When attacking, pieces of it split off and attack in tandem with the original.
components:
@ -354,7 +354,7 @@
- type: entity
id: MobBasilisk
parent: [ BaseMobAsteroid, MobBloodstream, BaseSlicingRefinable ]
parent: [ BaseMobAsteroid, MobBloodstream, BaseSlicingRefinable, BaseMobDestructible ]
name: basilisk
description: A territorial beast, covered in a thick shell that absorbs energy. Its stare causes victims to freeze from the inside.
components:

View file

@ -1,6 +1,6 @@
- type: entity
name: behonker
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat, BaseSlicingRefinable ]
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat, BaseSlicingRefinable, BaseMobDestructible ]
id: BaseMobBehonker
abstract: true
description: A floating demon aspect of the honkmother.
@ -115,6 +115,7 @@
reagents:
- ReagentId: Laughter
Quantity: 300
- type: entity
name: behonker
parent: BaseMobBehonker

View file

@ -1,7 +1,7 @@
- type: entity
name: space carp
id: BaseMobCarp
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat, BaseSlicingRefinable, MobNightVision ]
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobCombat, BaseSlicingRefinable, MobNightVision, BaseMobDestructible ]
description: It's a space carp.
abstract: true
components:

View file

@ -1,5 +1,5 @@
- type: entity
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable ]
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable, BaseMobDestructible ]
id: BaseMobFlesh
name: aberrant flesh
description: A shambling mass of flesh, animated through anomalous energy.
@ -204,7 +204,7 @@
Blunt: 10
- type: entity
parent: [ SimpleSpaceMobBase, MobCombat, BaseSlicingRefinable ]
parent: [ SimpleSpaceMobBase, MobCombat, BaseSlicingRefinable, BaseMobDestructible ]
id: BaseMobFleshSalvage #This one is immune to space!
name: aberrant flesh
suffix: "Salvage Ruleset"

View file

@ -6,6 +6,7 @@
- MobBloodstream
- BaseMobAnimal
- BaseSlicingRefinable
- BaseMobDestructible
id: MobHellspawn
description: An unstoppable force of carnage.
components:

View file

@ -1,6 +1,6 @@
# Base hivebot
- type: entity
parent: [ BaseSimpleMob, MobCombat, MobRobotic ]
parent: [ BaseSimpleMob, MobCombat, MobRobotic, BaseMobDestructible ]
id: MobHivebot
name: hivebot
description: Agitating, mechanized pests.

View file

@ -1,7 +1,7 @@
- type: entity
name: watcher
id: MobWatcherBase
parent: [ SimpleSpaceMobBase, FlyingMobBase, BaseSlicingRefinable ]
parent: [ SimpleSpaceMobBase, FlyingMobBase, BaseSlicingRefinable, BaseMobDestructible ]
abstract: true
description: It's like it's staring right through you.
components:

View file

@ -1,7 +1,7 @@
- type: entity
name: mimic
id: MobMimic
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable ]
parent: [ SimpleMobBase, MobCombat, BaseSlicingRefinable, BaseMobDestructible ]
description: Surprise. # When this gets a proper write this should use the object's actual description >:)
components:
- type: Tag

View file

@ -1,7 +1,7 @@
- type: entity
name: laser raptor
id: MobLaserRaptor
parent: [SimpleMobBase, BaseSlicingRefinable]
parent: [SimpleMobBase, BaseSlicingRefinable, BaseMobDestructible]
description: From the Viking age.
components:
- type: NpcFactionMember

View file

@ -241,7 +241,7 @@
- type: entity
name: Bingus
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobBingus
description: Bingus my beloved...
components:
@ -298,7 +298,7 @@
- type: entity
name: McGriff
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobMcGriff
description: This dog can tell something smells around here, and that something is CRIME!
components:
@ -408,7 +408,7 @@
- type: entity
name: Walter
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable]
parent: [SimpleMobBase, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobWalter
description: He likes chems and treats. Walter.
components:

View file

@ -1,7 +1,7 @@
- type: entity
name: rat king
id: MobRatKing
parent: [ BaseMobRat, SimpleMobBase, MobCombat, BaseSlicingRefinable, MobNightVision ]
parent: [ BaseMobRat, SimpleMobBase, MobCombat, BaseSlicingRefinable, MobNightVision, BaseMobDestructible ]
description: He's da rat. He make da roolz.
components:
- type: CombatMode

View file

@ -182,10 +182,9 @@
# feel free to hook them into random content.
- type: entity
name: Emotional Support Scurret
id: MobBaseEmotionalSupportScurret
parent: MobBaseScurret
abstract: true
id: MobBaseEmotionalSupportScurret
name: Emotional Support Scurret
components:
- type: Loadout
prototypes: [ EmotionalSupportScurretGear ]

View file

@ -1,7 +1,7 @@
- type: entity
name: basic slime
id: BaseMobAdultSlimes
parent: [ BaseMobSlimes, SimpleMobBase, MobCombat, BaseSlicingRefinable, MobNightVision ]
parent: [ BaseMobSlimes, SimpleMobBase, MobCombat, BaseSlicingRefinable, MobNightVision, BaseMobDestructible ]
abstract: true
description: It looks so much like jelly. I wonder what it tastes like?
components:

View file

@ -74,7 +74,7 @@
- type: entity
name: space bear
id: MobBearSpace
parent: [MobSpaceBasic, BaseSlicingRefinable]
parent: [MobSpaceBasic, BaseSlicingRefinable, BaseMobDestructible]
description: It looks friendly. Why don't you give it a hug?
components:
- type: Sprite
@ -123,7 +123,7 @@
- type: entity
name: space kangaroo
id: MobKangarooSpace
parent: [MobSpaceBasic, StripableInventoryBase, BaseSlicingRefinable]
parent: [MobSpaceBasic, StripableInventoryBase, BaseSlicingRefinable, BaseMobDestructible]
description: It looks friendly. Why don't you give it a hug?
components:
- type: Sprite
@ -184,7 +184,7 @@
- type: entity
name: space spider
id: MobSpiderSpace
parent: [MobSpaceBasic, BaseSlicingRefinable]
parent: [MobSpaceBasic, BaseSlicingRefinable, BaseMobDestructible]
description: It's so glowing, it looks dangerous.
components:
- type: Sprite
@ -289,7 +289,7 @@
- type: entity
name: space cobra
id: MobCobraSpace
parent: [MobSpaceBasic, BaseSlicingRefinable]
parent: [MobSpaceBasic, BaseSlicingRefinable, BaseMobDestructible]
description: Long fangs and a glowing hood, and the alluring look begs to come closer.
components:
- type: Sprite
@ -394,7 +394,7 @@
- type: SalvageMobRestrictions
- type: entity
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobSheepBase ]
parent: [ SimpleSpaceMobBase, FlyingMobBase, MobSheepBase, BaseMobDestructible ]
id: MobSheepSpace
name: space sheep
description: A sheep... in space!

View file

@ -2,7 +2,7 @@
- type: entity
name: burrower
id: MobXeno
parent: [ SimpleSpaceMobBase, MobNightVision ]
parent: [ SimpleSpaceMobBase, MobNightVision, BaseMobDestructible ]
description: They mostly come at night. Mostly.
components:
- type: Insulated
@ -360,7 +360,7 @@
- type: entity
name: space adder
parent: [SimpleSpaceMobBase, BaseSlicingRefinable]
parent: [SimpleSpaceMobBase, BaseSlicingRefinable, BaseMobDestructible]
id: MobPurpleSnake
description: A menacing purple snake from Kepler-283c.
components:
@ -469,7 +469,7 @@
- type: entity
name: '"Dale"'
description: A praetorian left over from the station's initial security sweep. Has a pair of bloodied dog tags engraved with the name "Pvt. Dale" stuck in its maw.
parent: SimpleSpaceMobBase
parent: [SimpleSpaceMobBase, BaseMobDestructible]
id: MobXenoLonePraetorianNoGhost
components:
- type: Insulated

View file

@ -15,7 +15,7 @@
ChangelingDNA: 60
- type: entity
parent: [ SimpleSpaceMobBase, MobNightVision ]
parent: [ SimpleSpaceMobBase, MobNightVision, BaseMobDestructible ]
id: MobHeadSlug
name: headslug
description: A small, slug-like creature with a large, gaping maw. It's covered in a thick, slimy mucus.

View file

@ -1,5 +1,5 @@
- type: entity
parent: [ SimpleSpaceMobBase, FlyingMobBase, BaseSlicingRefinable, MobNightVision ]
parent: [ SimpleSpaceMobBase, FlyingMobBase, BaseSlicingRefinable, MobNightVision, BaseMobDestructible ]
id: BaseMobDragon
suffix: ""
name: space dragon

View file

@ -71,44 +71,6 @@
- type: Damageable
- type: Injurable
damageContainer: Biological
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 400
behaviors:
- !type:GibBehavior { }
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 1500
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 1
max: 1
- !type:BurnBodyBehavior
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 15
behaviors:
- !type:PopupBehavior
popup: mouth-taste-metal
popupType: LargeCaution
targetOnly: true
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 40
behaviors:
- !type:VomitBehavior
- type: RadiationReceiver
- type: Stamina
- type: StunVisuals
@ -150,6 +112,50 @@
- type: GhostOnMove
mustBeDead: true
# Used as a simple default for mob destruction
- type: entity
abstract: true
id: BaseMobDestructible
components:
- type: Destructible
thresholds:
- trigger:
!type:DamageTypeTrigger
damageType: Blunt
damage: 400
behaviors:
- !type:GibBehavior { }
- trigger:
!type:DamageTypeTrigger
damageType: Heat
damage: 1500
behaviors:
- !type:SpawnEntitiesBehavior
spawnInContainer: true
spawn:
Ash:
min: 1
max: 1
- !type:BurnBodyBehavior
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 15
behaviors:
- !type:PopupBehavior
popup: mouth-taste-metal
popupType: LargeCaution
targetOnly: true
- trigger:
!type:DamageTypeTrigger
damageType: Radiation
damage: 40
behaviors:
- !type:VomitBehavior
# Used for mobs that can enter combat mode and can attack.
- type: entity
save: false

View file

@ -21,12 +21,6 @@
sound:
collection: GlassBreak
- !type:SpillBehavior { }
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: DamageOnLand
@ -48,9 +42,12 @@
# Porcelain (like glass but no shard)
- type: entity
abstract: true
parent: DrinkBaseMaterialGlass
id: DrinkBaseMaterialPorcelain
components:
- type: Damageable
damageModifierSet: FlimsyGlass
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
@ -63,9 +60,15 @@
- !type:SpillBehavior { }
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: PhysicalComposition
materialComposition:
Glass: 10 # Trace amounts of glass I guess. Important for overriding inheritance
- type: DamageOnLand
ignoreResistances: true
damage:
types:
Blunt: 5 # so fragile it smashes when thrown
- type: DamageOtherOnHit
damage:
types:
Blunt: 5
# Fragile plastic
- type: entity

View file

@ -23,24 +23,18 @@
tags:
- DrinkBottle
- Trash
- type: Destructible # Same as parent, but spawns BrokenBottle instead of ShardGlass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpillBehavior { }
- !type:SpawnEntitiesBehavior
spawn:
BrokenBottle:
min: 1
max: 1
transferForensics: true
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
abstract: true

View file

@ -67,6 +67,18 @@
sprite: Objects/Consumable/Drinks/glass_coupe_shape.rsi
- type: SolutionContainerVisuals
inHandsMaxFillLevels: 1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- type: entity
parent: [DrinkBaseMaterialCardboard, DrinkBaseCup, DrinkBaseEmptyTrash, DrinkVisualsFill]

View file

@ -78,6 +78,18 @@
sprite: Objects/Consumable/Drinks/jar_what.rsi
- type: FitsInDispenser
solution: drink
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
# Mopwata
- type: weightedRandomFillSolution

View file

@ -21,6 +21,18 @@
metamorphicDefaultSprite:
sprite: Objects/Consumable/Drinks/glass_clear.rsi
state: icon
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- type: entity
parent: DrinkGlass

View file

@ -16,6 +16,18 @@
inHandsMaxFillLevels: 1
- type: FitsInDispenser
solution: drink
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 0
max: 1
transferForensics: true
- type: entity
parent: [DrinkBaseMaterialMetal, SolutionLarge, DrinkBase]
@ -206,6 +218,18 @@
solution: drink
- type: FitsInDispenser
solution: drink
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
transferForensics: true
- type: entity
parent: DrinkShakeBase

View file

@ -7,23 +7,13 @@
# Large Plate
- type: entity
name: large plate
abstract: true
parent: BaseItem
id: FoodPlate
description: A large plate, excellent for bread.
id: BaseFoodPlate
components:
- type: Sprite
sprite: Objects/Consumable/Food/plates.rsi
state: plate
- type: Item
shape:
- 0,0,1,0
storedOffset: 0,-6
inhandVisuals:
left:
- state: plate-inhand-left
right:
- state: plate-inhand-right
- type: DamageOnLand
damage:
types:
@ -46,25 +36,48 @@
collection: GlassBreak
params:
volume: -8
- !type:SpawnEntitiesBehavior
spawn:
FoodPlateTrash:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Tag
tags:
- Trash
- type: PhysicalComposition
materialComposition:
Glass: 50
- type: SpaceGarbage
- type: entity
name: broken plate
parent: BaseFoodPlate
id: FoodPlate
name: large plate
description: A large plate, excellent for bread.
components:
- type: Sprite
sprite: Objects/Consumable/Food/plates.rsi
state: plate
- type: Item
storedOffset: 0,-6
inhandVisuals:
left:
- state: plate-inhand-left
right:
- state: plate-inhand-right
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
FoodPlateTrash:
min: 1
max: 1
- type: PhysicalComposition
materialComposition:
Glass: 50
- type: entity
parent: BaseItem
id: FoodPlateTrash
name: broken plate
description: A broken plate. Useless.
components:
- type: Sprite
@ -82,9 +95,9 @@
# Small Plate
- type: entity
name: small plate
parent: FoodPlate
parent: BaseFoodPlate
id: FoodPlateSmall
name: small plate
description: A small plate. Delicate.
components:
- type: Sprite
@ -97,25 +110,17 @@
- state: plate-inhand-left
right:
- state: plate-inhand-right
# Needs the full thing because inherting is dumb sometimes.
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -8
- !type:SpawnEntitiesBehavior
spawn:
FoodPlateSmallTrash:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: PhysicalComposition
materialComposition:
Glass: 25
@ -133,7 +138,7 @@
# Plastic Plate
- type: entity
parent: BaseItem
parent: BaseFoodPlate
id: FoodPlatePlastic
name: large plastic plate
description: A large blue plastic plate, excellent for a birthday cake.
@ -142,8 +147,6 @@
sprite: Objects/Consumable/Food/plates.rsi
state: plate-plastic
- type: Item
shape:
- 0,0,1,0
storedOffset: 0,-6
inhandVisuals:
left:
@ -155,7 +158,7 @@
- Trash
- type: entity
parent: BaseItem
parent: BaseFoodPlate
id: FoodPlateSmallPlastic
name: small plastic plate
description: A blue plastic plate, excellent for slices of birthday cake.
@ -164,8 +167,6 @@
sprite: Objects/Consumable/Food/plates.rsi
state: plate-small-plastic
- type: Item
shape:
- 0,0,1,0
storedOffset: 0,-3
inhandVisuals:
left:
@ -179,9 +180,9 @@
# Pie Tin
- type: entity
name: pie tin
parent: BaseItem
id: FoodPlateTin
name: pie tin
description: A cheap foil tin for pies.
components:
- type: Sprite

View file

@ -391,21 +391,8 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 25
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/tree_fell.ogg
params:
volume: 5
variation: 0.05
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
Log:
min: 0
max: 1
- !type:SpawnEntitiesBehavior
spawn:
MobLuminousObject:

View file

@ -50,28 +50,36 @@
state: sign_right
- type: entity
id: WoodenSupport
abstract: true
parent: BaseStructure
name: wooden support
description: Increases your confidence that a rock won't fall on your head.
id: BaseWoodenSupport
placement:
mode: SnapgridCenter
components:
- type: PlacementReplacement
key: walls
- type: Tag
tags:
- Wooden
- type: Sprite
noRot: true
sprite: Objects/Decoration/mines.rsi
state: support
- type: Damageable
damageModifierSet: Wood
- type: Injurable
damageContainer: StructuralInorganic
- type: Physics
bodyType: Static
- type: MeleeSound
soundGroups:
Brute:
path: /Audio/Effects/chop.ogg
params:
variation: 0.05
- type: entity
parent: BaseWoodenSupport
id: WoodenSupport
name: wooden support
description: Increases your confidence that a rock won't fall on your head.
components:
- type: Fixtures
fixtures:
fix1:
@ -83,12 +91,6 @@
layer:
- WallLayer
density: 1000
- type: MeleeSound
soundGroups:
Brute:
path: /Audio/Effects/chop.ogg
params:
variation: 0.05
- type: Destructible
thresholds:
- trigger:
@ -104,12 +106,11 @@
max: 3
- type: entity
parent: BaseWoodenSupport
id: WoodenSupportBeam
name: wooden support beam
parent: WoodenSupport
components:
- type: Sprite
sprite: Objects/Decoration/mines.rsi
state: support_beams
- type: Fixtures
fixtures:
@ -125,29 +126,16 @@
density: 1000
- type: entity
parent: BaseWoodenSupport
id: WoodenSupportWall
parent: BaseStructure
name: wooden support wall
description: An old, rotten wall.
placement:
mode: SnapgridCenter
components:
- type: PlacementReplacement
key: walls
- type: Tag
tags:
- Wall
- Wooden
- type: Sprite
noRot: true
sprite: Objects/Decoration/mines.rsi
state: support_wall
- type: Damageable
damageModifierSet: Wood
- type: Injurable
damageContainer: StructuralInorganic
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
@ -174,11 +162,13 @@
max: 5
- type: entity
parent: BaseWoodenSupport
id: WoodenSupportWallBroken
parent: WoodenSupportWall
components:
- type: Tag
tags:
- Wall
- type: Sprite
sprite: Objects/Decoration/mines.rsi
state: support_wall_broken
- type: Destructible
thresholds:

View file

@ -1,6 +1,6 @@
- type: entity
id: SingularityBeacon
parent: [BaseMachinePowered, BaseSyndicateContraband]
parent: [BaseMachinePowered, BaseSyndicateContraband, BaseMachineDestructible]
name: singularity beacon
description: A syndicate device that attracts the singularity. If it's loose and you're seeing this, run.
components:
@ -29,15 +29,15 @@
baseRange: 80
- type: SinguloFood
energy: 120
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: ApcPowerReceiver
powerLoad: 5000
- type: StaticPrice
price: 7500
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak

View file

@ -35,14 +35,6 @@
intensitySlope: 3
totalIntensity: 120 # about a ~4 tile radius
- type: ExplodeOnTrigger
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: chemical payload

View file

@ -1,5 +1,5 @@
- type: entity
parent: BaseItem
parent: [ BaseItem, BaseItemDestructible ]
id: BaseHandheldStationMap
name: station map
description: Displays a readout of the current station.
@ -19,14 +19,6 @@
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: UserInterface
interfaces:
enum.StationMapUiKey.Key:

View file

@ -1,6 +1,6 @@
- type: entity
id: Wristwatch
parent: BaseItem
parent: [ BaseItem, BaseItemDestructible ]
name: wristwatch
description: A cheap watch for telling time. How much did you waste playing Space Station 14?
components:
@ -26,16 +26,10 @@
price: 50
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageGroupTrigger
damageGroup: Brute
damage: 25
damage: 5
behaviors:
- !type:DoActsBehavior
acts: [ "Breakage" ]

View file

@ -11,24 +11,6 @@
sprite: Objects/Materials/Sheets/glass.rsi
- type: Damageable
damageModifierSet: Glass
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -4
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: SheetGlassBase
@ -63,6 +45,22 @@
reagents:
- ReagentId: Silicon
Quantity: 10
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -4
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
- type: entity
parent: SheetGlass
@ -132,8 +130,6 @@
ShardGlassReinforced:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Solution
solution:
maxVol: 15
@ -200,8 +196,6 @@
ShardGlassPlasma:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Solution
solution:
maxVol: 20
@ -318,8 +312,6 @@
ShardGlassUranium:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Solution
solution:
maxVol: 20
@ -435,8 +427,6 @@
ShardGlassClockwork:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Solution
solution:
maxVol: 20

View file

@ -1,6 +1,6 @@
- type: entity
abstract: true
parent: [SolutionCryo, SolutionCompositeNormalStackable, BaseItem]
parent: [SolutionCryo, SolutionCompositeNormalStackable, BaseItem, BaseItemDestructible]
id: MaterialBase
description: A raw material.
components:
@ -14,17 +14,6 @@
- type: Tag
tags:
- RawMaterial
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Extractable
grindableSolutionName: composite

View file

@ -14,16 +14,6 @@
- ConstructionMaterial
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 500
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: IngotBase

View file

@ -56,16 +56,6 @@
- type: SpaceGarbage
- type: Damageable
damageModifierSet: Glass
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: StepTrigger
intersectRatio: 0.2
- type: PreventableStepTrigger

View file

@ -1,6 +1,6 @@
- type: entity
name: candle
parent: BaseItem
parent: [ BaseItem, BaseItemDestructible ]
id: Candle
description: A thin wick threaded through fat.
components:
@ -52,15 +52,6 @@
shader: unshaded
- type: Damageable
damageModifierSet: Wood
- type: Injurable
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: red candle
@ -168,15 +159,6 @@
normalState: fire-small
- type: Flammable
firestacksOnIgnite: 2.0
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 60
behaviors:
- !type:SpawnEntitiesBehavior
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: small red candle

View file

@ -1,8 +1,7 @@
- type: entity
parent: BaseItem
id: EmptyDeskBell
name: unfinished desk bell
description: An empty bell missing its noise maker.
abstract: true
parent: [ BaseItem, BaseItemDestructible ]
id: BaseDeskBell
components:
- type: Sprite
sprite: Objects/Misc/desk_bell.rsi
@ -10,25 +9,15 @@
- type: Construction
graph: &BellGraph BellGraph
node: start
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger: &DamageTrigger20
- trigger: &DamageTrigger50
!type:DamageTrigger
damage: 20
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 0
max: 1
- !type:DoActsBehavior
acts: ["Destruction"]
- type: MeleeWeapon
wideAnimationRotation: 180
soundHit: &BellSound
@ -49,7 +38,23 @@
sound: *BellSound
- type: entity
parent: EmptyDeskBell
parent: BaseDeskBell
id: EmptyDeskBell
name: unfinished desk bell
description: An empty bell missing its noise maker.
components:
- type: Destructible
thresholds:
- trigger: *DamageTrigger50
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 0
max: 1
- type: entity
parent: BaseDeskBell
id: DeskBell
name: desk bell
description: The cornerstone of any customer service job. You feel an unending urge to ring it.
@ -64,11 +69,8 @@
node: deskBellNode
- type: Destructible
thresholds:
- trigger: *DamageTrigger20
- trigger: *DamageTrigger50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
PartRodMetal1:
@ -76,8 +78,6 @@
max: 1
- !type:ChangeConstructionNodeBehavior
node: start
- !type:DoActsBehavior
acts: ["Destruction"]
- type: InteractionPopup
successChance: 1
onActivate: true
@ -91,7 +91,7 @@
sound: *BellSound
- type: entity
parent: EmptyDeskBell
parent: BaseDeskBell
id: DeskBuzzer
name: desk buzzer
description: An advanced customer service tool. You feel an unending urge to buzz it.
@ -105,11 +105,8 @@
node: deskBuzzerNode
- type: Destructible
thresholds:
- trigger: *DamageTrigger20
- trigger: *DamageTrigger50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
CableApcStack1:
@ -117,8 +114,6 @@
max: 2
- !type:ChangeConstructionNodeBehavior
node: start
- !type:DoActsBehavior
acts: ["Destruction"]
- type: StationAiWhitelist
- type: InteractionPopup
successChance: 1
@ -144,7 +139,7 @@
sound: *BuzzerSound
- type: entity
parent: EmptyDeskBell
parent: BaseDeskBell
id: DeskHorn
name: desk horn
description: The cornerstone of any clown business. You feel an unending urge to honk it.
@ -158,11 +153,8 @@
node: deskHornNode
- type: Destructible
thresholds:
- trigger: *DamageTrigger20
- trigger: *DamageTrigger50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
BikeHorn:
@ -170,8 +162,6 @@
max: 1
- !type:ChangeConstructionNodeBehavior
node: start
- !type:DoActsBehavior
acts: ["Destruction"]
- type: InteractionPopup
successChance: 1
onActivate: true

View file

@ -1,7 +1,7 @@
- type: entity
parent: BaseItem
id: BaseLightbulb
abstract: true
parent: BaseItem
id: BaseReplacementLight
components:
- type: MeleeSound
soundGroups:
@ -10,8 +10,8 @@
- type: Sprite
sprite: Objects/Power/light_bulb.rsi
layers:
- map: [ enum.LightBulbVisualLayers.Base ]
state: normal
- map: [ enum.LightBulbVisualLayers.Base ]
state: normal
- type: LightBulb
- type: Damageable
- type: Injurable
@ -34,10 +34,10 @@
sound:
collection: GlassBreak
params:
volume: -8
volume: -4
- !type:DoActsBehavior
acts: [ "Breakage" ]
- trigger:
- trigger: &DamageTrigger10
!type:DamageTrigger
damage: 10
behaviors:
@ -45,12 +45,7 @@
sound:
collection: GlassBreak
params:
volume: -8
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 1
volume: -4
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Appearance
@ -66,9 +61,24 @@
- id: SheetGlass1
- type: entity
parent: BaseLightbulb
id: BaseLightTube
abstract: true
parent: BaseReplacementLight
id: BaseLightbulb
components:
- type: Destructible
thresholds:
- trigger: *DamageTrigger10
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
LightBulbBroken:
min: 1
max: 1
- type: entity
abstract: true
parent: BaseReplacementLight
id: BaseLightTube
components:
- type: Sprite
sprite: Objects/Power/light_tube.rsi
@ -76,29 +86,13 @@
bulb: Tube
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5
- trigger: *DamageTrigger10
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:DoActsBehavior
acts: [ "Breakage" ]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
LightTubeBroken:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
# Lighting color values gathered from
# https://andi-siess.de/rgb-to-color-temperature/

View file

@ -1,6 +1,6 @@
- type: entity
id: PowerSink
parent: [BaseMachine, BaseSyndicateContraband]
parent: [BaseMachine, BaseSyndicateContraband, BaseMachineDestructible]
name: power sink
description: Drains immense amounts of electricity from the grid.
components:
@ -30,14 +30,6 @@
- MachineMask
layer:
- MachineLayer
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 25
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: PowerSink
- type: Battery
# Very important:
@ -58,3 +50,11 @@
location: location-powersink
- type: StaticPrice
price: 3000
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak

View file

@ -24,28 +24,33 @@
damageContainer: Shield
- type: ExaminableDamage
messages: ShieldMessages
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 125 #This is probably enough damage before it breaks
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel:
min: 2
max: 2
SheetGlass:
min: 2
max: 2
- type: StaticPrice
price: 100
- type: entity
abstract: true
id: BaseShieldDestructible
components:
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 125 #This is probably enough damage before it breaks
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel:
min: 2
max: 2
SheetGlass:
min: 2
max: 2
- type: entity
name: base repairable shield
parent: BaseShield
@ -68,7 +73,7 @@
- type: entity
name: riot shield
parent: [ BaseRepairableShield, BaseSecurityContraband ]
parent: [ BaseRepairableShield, BaseShieldDestructible, BaseSecurityContraband ]
id: RiotShield
description: A large tower shield. Good for controlling crowds.
components:
@ -84,7 +89,7 @@
- type: entity
name: laser shield
parent: [ BaseRepairableShield, BaseSecurityContraband ]
parent: [ BaseRepairableShield, BaseShieldDestructible, BaseSecurityContraband ]
id: RiotLaserShield
description: A shield built for withstanding lasers, but not much else.
components:
@ -102,7 +107,7 @@
- type: entity
name: ballistic shield
parent: [ BaseRepairableShield, BaseSecurityContraband ]
parent: [ BaseRepairableShield, BaseShieldDestructible, BaseSecurityContraband ]
id: RiotBulletShield
description: A shield built for protecting against ballistics, but not much else.
components:
@ -268,7 +273,7 @@
- type: entity
name: clockwork shield
parent: BaseRepairableShield
parent: [ BaseRepairableShield, BaseShieldDestructible ]
id: ClockworkShield
description: Ratvar oyrffrf lbh jvgu uvf cebgrpgvba.
components:
@ -425,7 +430,7 @@
- type: entity
name: telescopic shield
parent: BaseRepairableShield
parent: [ BaseRepairableShield, BaseShieldDestructible ]
id: TelescopicShield
description: An advanced riot shield made of lightweight materials that collapses for easy storage.
components:

View file

@ -19,6 +19,11 @@
tags:
- Trash
- CentrifugeCompatible # unique feature of vials
- type: DamageOnLand
ignoreResistances: true
damage:
types:
Blunt: 3 # can be thrown once without breaking
## Entities
@ -43,20 +48,14 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 15 # stronger than base
damage: 5
behaviors:
- &SoundGlassBreak !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpillBehavior { }
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass: # less glass than base
ShardGlass:
min: 0
max: 1
transferForensics: true
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: [SolutionVeryTiny, BaseChemistryVial]
@ -78,16 +77,6 @@
- type: PhysicalComposition
materialComposition:
Glass: 10
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 5 # smaller so weaker
behaviors: # remove glass shard spawn
- *SoundGlassBreak
- !type:SpillBehavior { }
- !type:DoActsBehavior
acts: [ "Destruction" ]
## Reagent filled

View file

@ -1,7 +1,7 @@
- type: entity
id: BaseTarget
parent: BaseStructureDynamic
abstract: true
parent: BaseStructureDynamic
id: BaseTargetIndestructible
components:
- type: Sprite
sprite: Objects/Specific/Security/target.rsi
@ -27,6 +27,12 @@
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: entity
abstract: true
parent: BaseTargetIndestructible
id: BaseTarget
components:
- type: Destructible
thresholds:
- trigger:
@ -44,10 +50,11 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: human target
id: TargetHuman
parent: BaseTarget
id: TargetHuman
name: human target
description: A shooting target. This one is a human.
components:
- type: Sprite
@ -55,9 +62,9 @@
state: target_h
- type: entity
name: syndicate target
id: TargetSyndicate
parent: BaseTarget
id: TargetSyndicate
name: syndicate target
description: A shooting target. This one is a syndicate agent.
components:
- type: Sprite
@ -65,9 +72,9 @@
state: target_s
- type: entity
name: clown target
id: TargetClown
parent: BaseTarget
id: TargetClown
name: clown target
description: A shooting target. This one is a clown.
components:
- type: Sprite
@ -76,27 +83,11 @@
# put it on a salvage or something
- type: entity
name: strange target
parent: BaseTargetIndestructible
id: TargetStrange
parent: BaseTarget
name: strange target
description: A shooting target. You aren't quite sure what this one is, but it seems to be extra robust.
components:
- type: Sprite
sprite: Objects/Specific/Security/target.rsi
state: target_f
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 2000
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel:
min: 10
max: 10
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:DoActsBehavior
acts: [ "Destruction" ]

View file

@ -1,7 +1,7 @@
- type: entity
parent: BaseItem
id: BaseVendingMachineRestock
abstract: true
parent: [ BaseItem, BaseItemDestructible ]
id: BaseVendingMachineRestock
name: vending machine restock box
description: A box for restocking vending machines with corporate goodies.
components:
@ -24,20 +24,16 @@
size: Normal
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
damage: 50
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:DumpRestockInventory
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: BaseVendingMachineRestock

View file

@ -4,7 +4,7 @@
- type: entity
abstract: true
parent: [SolutionCompositeSmallStackable, BaseItem]
parent: [SolutionCompositeSmallStackable, BaseItem, BaseItemDestructible]
id: CableStack
name: cable stack
suffix: Full
@ -36,18 +36,8 @@
- Power
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Extractable
grindableSolutionName: composite
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
id: CableHVStack

View file

@ -50,10 +50,10 @@
map: ["foldedLayer"]
- type: entity
parent: [ BaseItem, BaseItemDestructible ]
id: Fulton
parent: BaseItem
suffix: Full
name: fulton
suffix: Full
description: Used to extract containers, items, or forcibly recruit people into your base of operations.
components:
- type: Fulton
@ -71,17 +71,6 @@
drawdepth: SmallObjects
sprite: Objects/Tools/fulton.rsi
state: extraction_pack
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
id: Fulton1

View file

@ -92,6 +92,7 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior # todo this is not a good way to be doing this. Should probably use a construction graph
offset: 0
spawn:
WeaponTurretSyndicateDisposable:
min: 1

View file

@ -35,7 +35,6 @@
Quantity: 3
- ReagentId: Charcoal
Quantity: 2
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible # should have the same general explosive behavior as in cables.yml & detonator.yml
@ -48,12 +47,8 @@
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:ExplodeBehavior
- trigger:
!type:DamageTrigger # the idea here is to prevent you from just beating it until it explodes.
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
# the 50 damage destruction node is inherited from the parent
# idea here is to prevent you from just beating it until it explodes.
- type: Explosive
explosionType: DemolitionCharge
totalIntensity: 60

View file

@ -1,5 +1,5 @@
- type: entity
parent: [ BaseItem, BaseSecurityContraband ]
parent: [ BaseItem, BaseItemDestructible, BaseSecurityContraband ]
id: EmptyDetonator
name: detonator cap
description: A detonator cap. Requires a trigger and wire.
@ -15,7 +15,6 @@
- type: Construction
graph: DetonatorGraph
node: emptyDetonator
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
@ -28,12 +27,8 @@
- !type:TriggerBehavior
- !type:DoActsBehavior
acts: [ "Destruction" ]
- trigger:
!type:DamageTrigger # the idea here is to prevent you from just beating it until it explodes.
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
# the 50 damage destruction node is inherited from the parent
# idea here is to prevent you from just beating it until it explodes.
- type: Appearance
- type: GenericVisualizer
visuals:

View file

@ -2,7 +2,7 @@
# ideally it would be dynamic and work by actually sparking the solution but that doesnt exist yet :(
# with that you could make napalm ied instead of welding fuel with no additional complexity
- type: entity
parent: [ BaseItem, BaseMinorContraband ]
parent: [ BaseItem, BaseItemDestructible, BaseMinorContraband ]
id: FireBomb
name: fire bomb
description: A weak, improvised incendiary device.
@ -41,17 +41,12 @@
- type: AnimationPlayer
- type: TimerTriggerVisuals
unprimedSprite: base
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:ExplodeBehavior
- type: Construction
graph: FireBomb

View file

@ -41,22 +41,17 @@
- type: entity
abstract: true
parent: [ BaseItem, BasePlasticExplosiveTrigger ]
parent: [ BaseItem, BaseItemDestructible, BasePlasticExplosiveTrigger ]
id: BasePlasticExplosive
components:
- type: Item
size: Small
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:ExplodeBehavior
- type: Explosive # Powerful explosion in a very small radius. Doesn't break underplating.
explosionType: DemolitionCharge

View file

@ -1,6 +1,6 @@
- type: entity
abstract: true
parent: BaseItem
parent: [ BaseItem, BaseItemDestructible ]
id: BaseCartridge
components:
- type: Sprite
@ -16,18 +16,6 @@
- ItemMask
restitution: 0.3 # fite me
friction: 0.2
- type: Damageable
damageModifierSet: StrongMetallic # We only want explosions breaking them (for the most part)
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 75
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Tag
tags:
- Cartridge

View file

@ -8,7 +8,7 @@
- Syndicate
- type: entity
parent: BaseWeaponBallisticTurret
parent: BaseWeaponBallisticTurretIndestructible
id: WeaponTurretSyndicateDisposable
name: disposable ballistic turret
suffix: Syndicate, Disposable
@ -16,6 +16,9 @@
- type: NpcFactionMember
factions:
- Syndicate
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
@ -78,7 +81,7 @@
- AllHostile
- type: entity
parent: BaseWeaponBallisticTurret
parent: BaseWeaponBallisticTurretIndestructible
id: WeaponTurretXeno
name: xeno turret
suffix: Xeno

View file

@ -1,10 +1,9 @@
- type: entity
parent: BaseStructure
id: BaseWeaponTurret
name: turret
abstract: true
parent: BaseStructure
id: BaseWeaponTurretIndestructible
name: turret
components:
- type: Clickable
- type: InteractionOutline
- type: Actions
- type: Fixtures
@ -32,26 +31,6 @@
path: /Audio/Effects/double_beep.ogg
- type: CombatMode
toggleMouseRotator: false
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
# TODO: Construction graph
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 3
max: 5
- type: HTN
rootTask:
task: TurretCompound
@ -70,11 +49,41 @@
context: "human"
- type: entity
parent: BaseWeaponTurret
id: BaseWeaponBallisticTurret
description: A ballistic machine gun auto-turret.
name: ballistic turret
abstract: true
id: BaseTurretDestructible
components:
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
# TODO: Construction graph
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 3
max: 5
- type: entity
abstract: true
parent: [ BaseWeaponTurretIndestructible, BaseTurretDestructible ]
id: BaseWeaponTurret
- type: entity
abstract: true
parent: BaseWeaponTurretIndestructible
id: BaseWeaponBallisticTurretIndestructible
name: ballistic turret
description: A ballistic machine gun auto-turret.
components:
- type: ContainerContainer
containers:
@ -91,11 +100,16 @@
capacity: 500
- type: entity
parent: BaseWeaponTurret
id: BaseWeaponEnergyTurret
abstract: true
parent: [ BaseWeaponBallisticTurretIndestructible, BaseTurretDestructible ]
id: BaseWeaponBallisticTurret
- type: entity
abstract: true
parent: BaseWeaponTurretIndestructible
id: BaseWeaponEnergyTurretIndestructible
name: laser turret
description: An auto-turret armed with a heavy laser. Its weapon will recharge while connected to an active power grid.
abstract: true
components:
- type: Sprite
sprite: Objects/Weapons/Guns/Turrets/sentry_turret.rsi
@ -135,3 +149,8 @@
task: EnergyTurretCompound
- type: StaticPrice
price: 200
- type: entity
abstract: true
parent: [ BaseWeaponEnergyTurretIndestructible, BaseTurretDestructible ]
id: BaseWeaponEnergyTurret

View file

@ -1,6 +1,6 @@
- type: entity
abstract: true
parent: [BaseWeaponEnergyTurret, ConstructibleMachine]
parent: [BaseWeaponEnergyTurretIndestructible, ConstructibleMachine]
id: WeaponEnergyTurretStationBase
name: sentry turret
description: A high-tech autonomous weapons system designed to keep unauthorized personnel out of sensitive areas.
@ -87,6 +87,8 @@
deployedDamageModifierSetId: FlimsyMetallic
- type: Damageable
damageModifierSet: Metallic
- type: Injurable
damageContainer: StructuralInorganic
- type: Repairable
doAfterDelay: 10
allowSelfRepair: false

View file

@ -189,18 +189,11 @@
!type:DamageTrigger
damage: 20
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
params:
volume: -4
- !type:SpawnEntitiesBehavior
spawn:
MaterialBones1:
min: 1
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
name: sharkminnow tooth spear

View file

@ -1,6 +1,6 @@
- type: entity # Starts fuse after taking 10 damage.
parent: BaseItem
- type: entity
abstract: true
parent: BaseItem
id: GrenadeBase
components:
- type: Sprite
@ -34,8 +34,8 @@
friction: 0.2
- type: entity # Starts fuse after taking 10 damage.
parent: GrenadeBase
abstract: true
parent: GrenadeBase
id: TimerGrenadeBase
components:
- type: TriggerOnUse
@ -55,25 +55,15 @@
Primed: { state: primed }
Unprimed: { state: icon }
- type: entity # Starts fuse after taking 10 damage.
parent: GrenadeBase
- type: entity
abstract: true
parent: [ GrenadeBase, VolatileGrenadeBase ]
id: ImpactGrenadeBase
components:
- type: TriggerOnLand
- type: LandAtCursor
- type: Destructible
thresholds:
- trigger: # immediately explode
!type:DamageTrigger
damage: 45
behaviors:
- !type:TriggerBehavior
keyOut: timer
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity # Starts fuse after taking 10 damage, instantly detonates/activates after taking 45 damage.
- type: entity # Instantly detonates/activates after taking 45 damage.
abstract: true
id: VolatileGrenadeBase
components:
@ -87,13 +77,8 @@
keyOut: timer
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:TimerStartBehavior
- type: entity # Starts fuse after taking 10 damage, is destroyed without activating/detonating after taking 45 damage.
- type: entity # Is destroyed without activating/detonating after taking 45 damage.
abstract: true
id: FragileGrenadeBase
components:
@ -105,8 +90,3 @@
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- trigger:
!type:DamageTrigger
damage: 10
behaviors:
- !type:TimerStartBehavior

View file

@ -284,9 +284,9 @@
price: 1000
- type: entity
parent: [ VolatileGrenadeBase, TimerGrenadeBase ]
name: the nuclear option
description: Please don't throw it, think of the children.
parent: TimerGrenadeBase
id: NuclearGrenade
components:
- type: Sprite
@ -301,26 +301,16 @@
totalIntensity: 20000 # ~15 tile radius.
intensitySlope: 5
maxIntensity: 50
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:TriggerBehavior
keyOut: timer # immediately explode
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Appearance
- type: TimerTriggerVisuals
primingSound:
path: /Audio/Effects/countdown.ogg
- type: entity
parent: [ BaseItem, BaseItemDestructible ]
id: ModularGrenade
name: modular grenade
description: A grenade casing. Requires a trigger and a payload.
parent: BaseItem
id: ModularGrenade
components:
- type: Sprite
sprite: Objects/Weapons/Grenades/modular.rsi
@ -336,9 +326,6 @@
- type: Construction
graph: ModularGrenadeGraph
node: emptyCase
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
@ -346,8 +333,6 @@
damage: 50
behaviors:
- !type:TriggerBehavior
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Appearance
- type: GenericVisualizer
visuals:

View file

@ -93,7 +93,7 @@
price: 2500
- type: entity
parent: [FragileGrenadeBase, ScatteringGrenadeBase, ImpactGrenadeBase, BaseSyndicateContraband]
parent: [ScatteringGrenadeBase, ImpactGrenadeBase, BaseSyndicateContraband]
id: ClusterBananaPeel
name: cluster banana peel
description: Splits into 6 explosive banana peels after throwing, guaranteed fun!

View file

@ -187,7 +187,7 @@
- type: entity
name: portable flasher
parent: [BaseMachine, BaseSecurityContraband]
parent: [BaseMachine, BaseSecurityContraband, BaseMachineDestructible]
id: PortableFlasher
description: An ultrabright flashbulb with a proximity trigger, useful for making an area security-only.
components:
@ -231,3 +231,11 @@
guides:
- Security
- Antagonists
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak

View file

@ -1,7 +1,7 @@
- type: entity
name: "item"
id: BaseItem
abstract: true
id: BaseItem
name: "item"
components:
- type: Item
size: Small
@ -47,6 +47,22 @@
- type: Rotatable
increment: 30
- type: entity
abstract: true
id: BaseItemDestructible # Should be replaced by a variety of destruction bases, possibly combined with drink_base_materials.yml
components:
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
name: "storage item"
id: BaseStorageItem

View file

@ -1,14 +1,13 @@
- type: entity
id: CrystalGreen
abstract: true
parent: BaseStructure
suffix: green
id: BaseCrystalStalagmite
name: crystal
description: A crystaline solid.
components:
- type: Sprite
sprite: Structures/Decoration/crystal.rsi
state: crystal_grey
color: "#52ff39"
noRot: true
- type: Reflect
reflectProb: 0.5
@ -36,219 +35,156 @@
- type: PointLight
radius: 3
energy: 3
color: "#52ff39"
- type: Damageable
damageModifierSet: Glass
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
- trigger: &DamageTrigger20
!type:DamageTrigger
damage: 20
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalGreen:
min: 1
max: 1
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: BaseCrystalStalagmite
id: CrystalGreen
suffix: green
components:
- type: Sprite
color: "#52ff39"
- type: PointLight
color: "#52ff39"
- type: Destructible
thresholds:
- trigger: *DamageTrigger20
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalGreen: &Min1Max2
min: 1
max: 2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalPink
parent: CrystalGreen
suffix: pink
components:
- type: Sprite
color: "#ff66cc"
- type: PointLight
radius: 3
energy: 3
color: "#ff66cc"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalPink:
min: 1
max: 1
ShardCrystalPink: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalGrey
parent: CrystalGreen
suffix: red
components:
- type: Sprite
state: crystal_grey
color: "#fb4747"
- type: PointLight
color: "#fb4747"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalRed:
min: 1
max: 2
ShardCrystalRed: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalOrange
parent: CrystalGreen
suffix: orange
components:
- type: Sprite
color: "#ff8227"
- type: PointLight
radius: 3
energy: 3
color: "#ff8227"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalOrange:
min: 1
max: 2
ShardCrystalOrange: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalBlack
parent: CrystalGreen
suffix: black
components:
- type: Sprite
color: "#363636"
- type: PointLight
radius: 3
energy: 3
color: "#363636"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalBlack:
min: 1
max: 2
ShardCrystalBlack: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalBlue
parent: CrystalGreen
suffix: blue
components:
- type: Sprite
color: "#39a1ff"
- type: PointLight
radius: 3
energy: 3
color: "#39a1ff"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalBlue:
min: 1
max: 2
ShardCrystalBlue: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalYellow
parent: CrystalGreen
suffix: yellow
components:
- type: Sprite
color: "#ffde46"
- type: PointLight
radius: 3
energy: 3
color: "#ffde46"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalYellow:
min: 1
max: 2
ShardCrystalYellow: *Min1Max2
- type: entity
parent: BaseCrystalStalagmite
id: CrystalCyan
parent: CrystalGreen
suffix: cyan
components:
- type: Sprite
color: "#47f8ff"
- type: PointLight
radius: 3
energy: 3
color: "#47f8ff"
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 20
- trigger: *DamageTrigger20
behaviors:
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- !type:SpawnEntitiesBehavior
spawn:
ShardCrystalCyan:
min: 1
max: 2
- !type:DoActsBehavior
acts: [ "Destruction" ]
ShardCrystalCyan: *Min1Max2

View file

@ -1,7 +1,7 @@
- type: entity
abstract: true
id: ReagentDispenserBase
parent: SmallConstructibleMachine
parent: [ SmallConstructibleMachine, BaseSmallConstructibleMachineDestructible ]
placement:
mode: SnapgridCenter
components:
@ -44,10 +44,8 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
damage: 100
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak

View file

@ -16,19 +16,6 @@
- ChemDispensable
- type: ApcPowerReceiver
- type: ExtensionCableReceiver
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: ChemDispenserMachineCircuitboard
- type: GuideHelp

View file

@ -52,14 +52,6 @@
cost: 6
delay: 6
fx: EffectRCDDeconstruct6
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Occluder
- type: BlockWeather

View file

@ -1,14 +1,13 @@
- type: entity
id: WindoorAssembly
abstract: true
parent: BaseStructure
id: BaseWindoorAssembly
name: windoor assembly
description: It opens, it closes, and you can see through it!
parent: BaseStructure
placement:
mode: SnapgridCenter
components:
- type: InteractionOutline
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: assembly
- type: Physics
- type: Fixtures
fixtures:
@ -33,28 +32,39 @@
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
- trigger: &DamageTrigger300
!type:DamageTrigger
damage: 300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: assembly
- type: Destructible
thresholds:
- trigger: *DamageTrigger300
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
SheetSteel1: &BaseWindoorDrop
min: 1
max: 3
- type: Construction
graph: Windoor
node: assembly
placement:
mode: SnapgridCenter
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblySecure
name: secure windoor assembly
description: It opens, it closes, and you can see through it! This one looks tough.
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
@ -63,26 +73,20 @@
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 600
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel1:
min: 1
max: 2
SheetPlasteel1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: assemblySecure
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblyClockwork
name: clockwork windoor assembly
description: It opens, it closes, and you can see through it! This one looks tough.
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/clockwork_windoor.rsi
@ -90,27 +94,21 @@
- state: open
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 450
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetBrass1:
min: 1
max: 2
SheetBrass1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: assemblyClockwork
#plasma windoor assemblies
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblyPlasma
name: plasma windoor assembly
description: It opens, it closes, and you can see through it! This one looks purp-, no, pink. Wait...
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/plasma.rsi
@ -118,29 +116,21 @@
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 360
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 1
max: 2
SheetPGlass1:
min: 1
max: 3
SheetSteel1: *BaseWindoorDrop
SheetPGlass1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: pglass
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblySecurePlasma
name: secure plasma windoor assembly
description: It opens, it closes, and you can see through it! This one looks strong and pin-, no, purple. Hold on...
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/plasma.rsi
@ -149,30 +139,24 @@
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1200
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel1:
min: 1
max: 2
SheetRPGlass1:
min: 1
max: 3
SheetPlasteel1: *BaseWindoorDrop
SheetRPGlass1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: pglassSecure
#uranium windoor assemblies
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblyUranium
name: uranium windoor assembly
description: It opens, it closes, and you can see through it! This one looks sickly green...
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/uranium.rsi
@ -180,29 +164,21 @@
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 300
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 1
max: 2
SheetUGlass1:
min: 1
max: 3
SheetSteel1: *BaseWindoorDrop
SheetUGlass1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: uglass
- type: entity
parent: BaseWindoorAssembly
id: WindoorAssemblySecureUranium
name: secure uranium windoor assembly
description: It opens, it closes, and you can see through it! This one looks strong and radioactive-lime-green!
parent: WindoorAssembly
components:
- type: Sprite
sprite: Structures/Doors/Windoors/uranium.rsi
@ -211,20 +187,12 @@
- state: assembly
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 1200
- trigger: *DamageTrigger300
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:SpawnEntitiesBehavior
spawn:
SheetPlasteel1:
min: 1
max: 2
SheetRUGlass1:
min: 1
max: 3
SheetPlasteel1: *BaseWindoorDrop
SheetRUGlass1: *BaseWindoorDrop
- type: Construction
graph: Windoor
node: uglassSecure

View file

@ -1,8 +1,7 @@
#Normal windoors
- type: entity
id: BaseWindoor
parent: [BaseDeltaPressureGlassQuarter, BaseStructure]
abstract: true
parent: BaseStructure
id: BaseWindoorGeneric
placement:
mode: SnapgridCenter
components:
@ -16,7 +15,6 @@
collection: GlassSmash
- type: InteractionOutline
- type: StationAiWhitelist
- type: Physics
- type: Fixtures
fixtures:
fix1:
@ -29,7 +27,6 @@
layer:
- GlassAirlockLayer
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: closed
map: ["enum.DoorVisualLayers.Base"]
@ -72,11 +69,11 @@
range: 200
- type: DeviceLinkSink
ports:
- Open
- Close
- Toggle
- AutoClose
- DoorBolt
- Open
- Close
- Toggle
- AutoClose
- DoorBolt
- type: DeviceLinkSource
ports:
- DoorStatus
@ -92,22 +89,6 @@
cost: 8
delay: 8
fx: EffectRCDDeconstruct8
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 2
SheetSteel1:
min: 2
max: 4
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: ContainerFill
containers:
board: [ DoorElectronics ]
@ -161,27 +142,23 @@
- type: Airtight
noAirWhenFullyAirBlocked: false
airBlockedDirection:
- South
- South
- type: Construction
graph: Windoor
node: windoor
containers:
- board
- type: StaticPrice
price: 150
- type: PryUnpowered
- type: Tag
tags:
- DoorRemoteWhitelist
# This tag is used by door remotes to allow or not a door remote to normally be able to interact with a door
- DoorRemoteWhitelist
# This tag is used by door remotes to allow or not a door remote to normally be able to interact with a door
- type: entity
id: BaseSecureWindoor
parent: [BaseDeltaPressureReinforcedGlassQuarter, BaseWindoor]
abstract: true
parent: BaseWindoorGeneric
id: BaseSecureWindoorGeneric
components:
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
layers:
- state: secure_underlay
- state: closed
@ -217,6 +194,43 @@
visible: false
- type: Damageable
damageModifierSet: RGlass
- type: StaticPrice
price: 150
#Normal windoors
- type: entity
abstract: true
parent: [ BaseDeltaPressureGlassQuarter, BaseWindoorGeneric ]
id: BaseWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 200
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
ShardGlass:
min: 1
max: 2
SheetSteel1:
min: 2
max: 4
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: Construction
node: windoor
- type: entity
abstract: true
parent: [ BaseDeltaPressureReinforcedGlassQuarter, BaseSecureWindoorGeneric ]
id: BaseSecureWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/windoor.rsi
- type: Destructible
thresholds:
- trigger:
@ -248,44 +262,12 @@
#Plasma Windoors
- type: entity
id: BasePlasmaWindoor
parent: [BaseDeltaPressurePlasmaQuarter, BaseWindoor]
abstract: true
parent: [BaseDeltaPressurePlasmaQuarter, BaseWindoorGeneric]
id: BasePlasmaWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/plasma.rsi
layers:
- state: closed
map: [ "enum.DoorVisualLayers.Base" ]
- state: closed_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
visible: false
- state: welded
map: [ "enum.WeldableLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]
- state: emergency_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseEmergencyAccess" ]
- state: panel_open
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- state: electrified_ai
sprite: Interface/Misc/ai_hud.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.HUD" ]
- state: electrified
sprite: Effects/electricity.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.Sparks" ]
- state: sparks
map: ["enum.DoorVisualLayers.BaseEmagging"]
shader: unshaded
visible: false
- type: Destructible
thresholds:
- trigger:
@ -311,45 +293,12 @@
resistance: 2
- type: entity
id: BaseSecurePlasmaWindoor
parent: [BaseDeltaPressureReinforcedPlasmaQuarter, BaseSecureWindoor]
abstract: true
parent: [BaseDeltaPressureReinforcedPlasmaQuarter, BaseSecureWindoorGeneric]
id: BaseSecurePlasmaWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/plasma.rsi
layers:
- state: secure_underlay
- state: closed
map: [ "enum.DoorVisualLayers.Base" ]
- state: closed_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
visible: false
- state: welded
map: [ "enum.WeldableLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]
- state: emergency_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseEmergencyAccess" ]
- state: panel_open
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- state: electrified_ai
sprite: Interface/Misc/ai_hud.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.HUD" ]
- state: electrified
sprite: Effects/electricity.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.Sparks" ]
- state: sparks
map: ["enum.DoorVisualLayers.BaseEmagging"]
shader: unshaded
visible: false
- type: Destructible
thresholds:
- trigger:
@ -383,44 +332,12 @@
#Uranium Windoors
- type: entity
id: BaseUraniumWindoor
parent: [BaseDeltaPressurePlasmaQuarter, BaseWindoor]
abstract: true
parent: [BaseDeltaPressurePlasmaQuarter, BaseWindoorGeneric]
id: BaseUraniumWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/uranium.rsi
layers:
- state: closed
map: [ "enum.DoorVisualLayers.Base" ]
- state: closed_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
visible: false
- state: welded
map: [ "enum.WeldableLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]
- state: emergency_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseEmergencyAccess" ]
- state: panel_open
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- state: electrified_ai
sprite: Interface/Misc/ai_hud.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.HUD" ]
- state: electrified
sprite: Effects/electricity.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.Sparks" ]
- state: sparks
map: ["enum.DoorVisualLayers.BaseEmagging"]
shader: unshaded
visible: false
- type: Destructible
thresholds:
- trigger:
@ -446,45 +363,12 @@
resistance: 3
- type: entity
id: BaseSecureUraniumWindoor
parent: [BaseDeltaPressureReinforcedPlasmaQuarter, BaseSecureWindoor]
abstract: true
parent: [BaseDeltaPressureReinforcedPlasmaQuarter, BaseSecureWindoorGeneric]
id: BaseSecureUraniumWindoor
components:
- type: Sprite
sprite: Structures/Doors/Windoors/uranium.rsi
layers:
- state: secure_underlay
- state: closed
map: [ "enum.DoorVisualLayers.Base" ]
- state: closed_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseUnlit" ]
visible: false
- state: welded
map: [ "enum.WeldableLayers.BaseWelded" ]
- state: bolted_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseBolted" ]
- state: emergency_unlit
shader: unshaded
map: [ "enum.DoorVisualLayers.BaseEmergencyAccess" ]
- state: panel_open
map: [ "enum.WiresVisualLayers.MaintenancePanel" ]
visible: false
- state: electrified_ai
sprite: Interface/Misc/ai_hud.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.HUD" ]
- state: electrified
sprite: Effects/electricity.rsi
shader: unshaded
visible: false
map: [ "enum.ElectrifiedLayers.Sparks" ]
- state: sparks
map: ["enum.DoorVisualLayers.BaseEmagging"]
shader: unshaded
visible: false
- type: Destructible
thresholds:
- trigger:

View file

@ -1,8 +1,8 @@
- type: entity
abstract: true
parent: BaseWindoorGeneric
id: BaseClockworkWindoor
name: clockwork windoor
parent: BaseWindoor
abstract: true
components:
- type: Sprite
sprite: Structures/Doors/Windoors/clockwork_windoor.rsi

View file

@ -1,9 +1,9 @@
- type: entity
id: TableBase
abstract: true
parent: BaseStructure
id: TableBase
name: table
description: A square piece of metal standing on four metal legs.
abstract: true
components:
- type: Animateable
- type: Damageable
@ -43,10 +43,10 @@
- ForceFixRotations
- type: entity
id: CounterBase
parent: TableBase
name: counter
abstract: true
parent: TableBase
id: CounterBase
name: counter
components:
- type: Fixtures
fixtures:

View file

@ -1,7 +1,7 @@
- type: entity
parent: BaseStructure
id: TableFrame
# BaseStructure and not BaseTable, since these shouldn't be climbable/placeable.
parent: BaseStructure
name: table frame
description: Pieces of metal that make the frame of a table.
components:
@ -51,8 +51,8 @@
node: TableFrame
- type: entity
id: CounterWoodFrame
parent: BaseStructure
id: CounterWoodFrame
name: wooden counter frame
description: Pieces of wood that make the frame of a table.
components:
@ -101,16 +101,28 @@
node: CounterWoodFrame
- type: entity
parent: BaseStructure
id: CounterMetalFrame
parent: CounterWoodFrame
name: metal counter frame
description: Pieces of metal that make the frame of a table.
components:
- type: SpriteFade
- type: Sprite
sprite: Structures/Furniture/Tables/frame.rsi
- type: Icon
sprite: Structures/Furniture/Tables/frame.rsi
state: full
- type: Fixtures
fixtures:
fix1:
shape:
!type:PhysShapeAabb
bounds: "-0.45,-0.45,0.45,0.45"
density: 55
mask:
- TableMask
layer:
- TableLayer
- type: Damageable
damageModifierSet: Metallic
- type: Injurable

View file

@ -1,8 +1,7 @@
- type: entity
name: bed
id: Bed
abstract: true
parent: BaseStructure
description: This is used to lie in, sleep in or strap on. Resting here provides extremely slow healing.
id: BaseBed
components:
- type: HealOnBuckle
damage:
@ -39,6 +38,18 @@
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Transform
anchored: true
noRot: true
- type: Anchorable
- type: Pullable
- type: entity
parent: BaseBed
id: Bed
name: bed
description: This is used to lie in, sleep in or strap on. Resting here provides extremely slow healing.
components:
- type: Destructible
thresholds:
- trigger:
@ -52,12 +63,6 @@
SheetSteel1:
min: 1
max: 2
- type: Transform
anchored: true
noRot: true
- type: Anchorable
- type: Pullable
- type: entity
parent: Bed
@ -82,7 +87,7 @@
- type: AmbientMusicMarkerMedical
- type: entity
parent: Bed
parent: BaseBed
id: DogBed
name: dog bed
description: A comfy-looking dog bed. You can even strap your pet in, in case the gravity turns off.
@ -126,7 +131,7 @@
damageModifierSet: Inflatable
- type: entity
parent: Bed
parent: BaseBed
id: WebBed
name: web bed
description: You got webbed.
@ -157,7 +162,7 @@
node: bed
- type: entity
parent: Bed
parent: BaseBed
id: PsychBed
name: psychologist bed
description: An upholstered bed for the psychological care of patients.

View file

@ -17,6 +17,17 @@
bodyType: Static
- type: StaticPrice
price: 35
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
id: BenchColorfulComfy

View file

@ -1,7 +1,7 @@
# TODO move all of this to tiles once tile smoothing is supported
- type: entity
id: CarpetBase
parent: BaseStructure
id: CarpetBase
name: carpet
description: "Fancy walking surface."
abstract: true
@ -33,7 +33,7 @@
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
- trigger: &DamageTrigger10
!type:DamageTrigger
damage: 10
behaviors:
@ -55,15 +55,11 @@
sprite: Structures/Furniture/Carpets/red_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemRed:
FloorCarpetItemRed: &BaseCarpetSpawn
min: 1
max: 1
@ -79,17 +75,11 @@
sprite: Structures/Furniture/Carpets/black_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemBlack:
min: 1
max: 1
FloorCarpetItemBlack: *BaseCarpetSpawn
- type: entity
id: CarpetPink
@ -103,17 +93,11 @@
sprite: Structures/Furniture/Carpets/pink_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemPink:
min: 1
max: 1
FloorCarpetItemPink: *BaseCarpetSpawn
- type: entity
id: CarpetBlue
@ -127,17 +111,11 @@
sprite: Structures/Furniture/Carpets/blue_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemBlue:
min: 1
max: 1
FloorCarpetItemBlue: *BaseCarpetSpawn
- type: entity
id: CarpetGreen
@ -151,17 +129,11 @@
sprite: Structures/Furniture/Carpets/green_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemGreen:
min: 1
max: 1
FloorCarpetItemGreen: *BaseCarpetSpawn
- type: entity
id: CarpetOrange
@ -175,17 +147,11 @@
sprite: Structures/Furniture/Carpets/orange_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemOrange:
min: 1
max: 1
FloorCarpetItemOrange: *BaseCarpetSpawn
- type: entity
id: CarpetSBlue
@ -199,17 +165,11 @@
sprite: Structures/Furniture/Carpets/skyblue_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemSkyBlue:
min: 1
max: 1
FloorCarpetItemSkyBlue: *BaseCarpetSpawn
- type: entity
id: CarpetPurple
@ -223,17 +183,11 @@
sprite: Structures/Furniture/Carpets/purple_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemPurple:
min: 1
max: 1
FloorCarpetItemPurple: *BaseCarpetSpawn
- type: entity
id: CarpetCyan
@ -247,17 +201,11 @@
sprite: Structures/Furniture/Carpets/cyan_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemCyan:
min: 1
max: 1
FloorCarpetItemCyan: *BaseCarpetSpawn
- type: entity
id: CarpetWhite
@ -271,22 +219,16 @@
sprite: Structures/Furniture/Carpets/white_carpet.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
FloorCarpetItemWhite:
min: 1
max: 1
FloorCarpetItemWhite: *BaseCarpetSpawn
# TODO nuke this once tiles support rotating sprites
- type: entity
id: CarpetChapel
parent: BaseStructure
id: CarpetChapel
name: "chapel's carpet"
components:
- type: Sprite
@ -307,9 +249,7 @@
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
@ -318,8 +258,8 @@
#cardpet
- type: entity
id: CarpetCard
parent: BaseStructure
id: CarpetCard
name: cardboard "carpet"
description: "Even lino is better."
components:
@ -348,17 +288,13 @@
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 10
- trigger: *DamageTrigger10
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
MaterialCardboard:
min: 1
max: 1
MaterialCardboard: *BaseCarpetSpawn
- type: ToolRefinable
refineResult:
- id: MaterialCardboard1

View file

@ -1,7 +1,7 @@
- type: entity
name: chair
id: SeatBase
abstract: true
id: SeatBase
name: chair
description: You sit in this. Either by will or force.
placement:
mode: PlaceFree
@ -31,17 +31,6 @@
damageModifierSet: Metallic
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: StaticPrice
price: 50
@ -78,6 +67,17 @@
components:
- type: Rotatable
rotateWhileAnchored: true
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
#Starts anchored, can be rotated while anchored
- type: entity
@ -103,6 +103,17 @@
- type: Construction
graph: Seat
node: chair
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: chair
@ -124,6 +135,17 @@
- type: Construction
graph: Seat
node: stool
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: bar stool
@ -180,6 +202,17 @@
- type: Construction
graph: Seat
node: chairComfy
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: pilot seat
@ -192,6 +225,17 @@
- type: Construction
graph: Seat
node: chairPilotSeat
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: wooden chair
@ -266,18 +310,11 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
damage: 25
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Voice/Human/womanlaugh.ogg
- !type:SpawnEntitiesBehavior
spawn:
MaterialWoodPlank:
min: 1
max: 1
- type: Construction
graph: RitualSeat
node: chairCursed
@ -345,6 +382,17 @@
graph: Seat
node: chairFolding
- type: DamageExaminable
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
parent: ChairFolding
@ -367,6 +415,17 @@
- type: Construction
graph: Seat
node: chairSteelBench
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: cardboard stool
@ -381,8 +440,6 @@
node: stoolCard
- type: Damageable
damageModifierSet: Card
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:

View file

@ -117,6 +117,17 @@
reagents:
- ReagentId: Water
Quantity: 1
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
# constructed toilets don't come with Rummageable or plungeruse component to avoid infinite item spawning.
- type: entity
@ -196,15 +207,8 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
params:
volume: -6
- !type:SpawnEntitiesBehavior
spawn:
IngotGold1:

View file

@ -1,7 +1,6 @@
- type: entity
id: HolosignWetFloor
name: wet floor sign
description: The words flicker as if they mean nothing.
abstract: true
id: BaseHoloSign
placement:
mode: SnapgridCenter
components:
@ -10,15 +9,22 @@
- type: Physics
bodyType: Static
canCollide: false
- type: Sprite
sprite: Structures/Holo/wetfloor.rsi
state: icon
- type: TimedDespawn
lifetime: 90
- type: Clickable
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: entity
parent: BaseHoloSign
id: HolosignWetFloor
name: wet floor sign
description: The words flicker as if they mean nothing.
components:
- type: Sprite
sprite: Structures/Holo/wetfloor.rsi
state: icon
- type: Destructible
thresholds:
- trigger:
@ -29,8 +35,8 @@
acts: [ "Destruction" ]
- type: entity
parent: BaseHoloSign
id: HoloFan
parent: HolosignWetFloor
name: holofan
description: A barrier of hard light that blocks air, but nothing else.
components:
@ -47,10 +53,18 @@
lifetime: 180
- type: Airtight
noAirWhenFullyAirBlocked: false
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: BaseHoloSign
id: HoloPeel
parent: HolosignWetFloor
name: holopeel
description: A banana peel made of slippery hard light, watch your step!
components:
@ -58,7 +72,6 @@
sprite: Structures/Holo/peel.rsi
state: icon
- type: Physics
bodyType: Static
canCollide: true
- type: Slippery
- type: StepTrigger
@ -86,13 +99,12 @@
acts: [ "Destruction" ]
- type: entity
parent: BaseHoloSign
id: HolosignSecurity
parent: HolosignWetFloor
name: holographic barrier
description: A barrier of hard light that blocks movement, but pretty weak.
components:
- type: Physics
bodyType: Static
canCollide: true
- type: Sprite
sprite: Structures/Holo/security.rsi
@ -114,15 +126,22 @@
radius: 3
color: red
- type: Climbable
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
parent: BaseHoloSign
id: HolosignForcefield
parent: HolosignWetFloor
name: holographic force field
description: A powerful temporal containment field that doesn't let anything through, not even a tesla or singularity.
components:
- type: Physics
bodyType: Static
canCollide: true
- type: Sprite
sprite: Structures/Holo/field.rsi

View file

@ -5,10 +5,12 @@
#Basic lights
- type: entity
id: AlwaysPoweredWallLight
name: light
description: "An always powered light."
suffix: Always powered
abstract: true
id: BaseWallLight
placement:
mode: SnapgridCenter
snap:
- Wallmount
components:
- type: MeleeSound
soundGroups:
@ -18,11 +20,7 @@
anchored: true
- type: Clickable
- type: InteractionOutline
- type: Construction
graph: LightFixture
node: tubeLight
- type: Sprite
sprite: Structures/Wallmounts/Lighting/light_tube.rsi
drawdepth: WallMountedItems
layers:
- map: ["enum.PoweredLightLayers.Base"]
@ -30,7 +28,6 @@
- map: ["enum.PoweredLightLayers.Glow"]
state: glow
shader: unshaded
state: base
- type: PointLight
color: "#FFE4CE" # 5000K color temp
energy: 0.8
@ -65,22 +62,43 @@
damage: 50
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 2
max: 2
- !type:DoActsBehavior
acts: ["Destruction"]
acts: [ "Destruction" ]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
- type: PlacementReplacement
key: lights
placement:
mode: SnapgridCenter
snap:
- Wallmount
- type: entity
parent: BaseWallLight
id: AlwaysPoweredWallLight
name: light
suffix: Always powered
description: "An always powered light."
components:
- type: Construction
graph: LightFixture
node: tubeLight
- type: Sprite
sprite: Structures/Wallmounts/Lighting/light_tube.rsi
layers:
- map: ["enum.PoweredLightLayers.Base"]
state: base
- map: ["enum.PoweredLightLayers.Glow"]
state: glow
shader: unshaded
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 2
max: 2
- type: entity
name: light
@ -241,11 +259,11 @@
#Small lights
- type: entity
name: small light
description: "An always powered light."
parent: BaseWallLight
id: SmallLight
name: small light
suffix: Always Powered
parent: AlwaysPoweredWallLight
description: "An always powered light."
components:
- type: AmbientSound
volume: -15
@ -260,8 +278,6 @@
radius: 6
softness: 1.1
enabled: true
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
@ -273,23 +289,17 @@
- None
layer:
- TabletopMachineLayer
- type: Damageable
- type: Injurable
damageContainer: Inorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 25
damage: 50
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:SpawnEntitiesBehavior
spawn:
SheetSteel1:
min: 1
max: 1
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Construction
graph: LightFixture
node: bulbLight
@ -422,11 +432,10 @@
#Emergency Lights
- type: entity
parent: BaseWallLight
id: EmergencyLight
name: emergency light
description: A small light with an internal battery that turns on as soon as it stops receiving any power. Nanotrasen technology allows it to adapt its color to alert crew to the conditions of the station.
parent: AlwaysPoweredWallLight
suffix: ""
components:
- type: PointLight
enabled: false
@ -461,7 +470,6 @@
color: "#7CFC00"
shader: "unshaded"
visible: false
- type: Appearance
- type: Construction
graph: LightFixture
node: emergencyLight
@ -469,7 +477,7 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 25
damage: 50
behaviors:
- !type:SpawnEntitiesBehavior
spawn:
@ -479,15 +487,6 @@
ShardGlass:
min: 1
max: 1
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: GlassBreak
placement:
mode: SnapgridCenter
snap:
- Wallmount
#Coloured lights

View file

@ -1,10 +1,8 @@
- type: entity
id: BaseStructureComputer
parent: BaseStructure
abstract: true
parent: BaseStructure
id: BaseStructureComputerIndestructible
components:
- type: Physics
bodyType: Static
- type: Fixtures
fixtures:
fix1:
@ -21,9 +19,17 @@
- type: Anchorable
- type: Construction
graph: Computer
node: frameUnsecured
- type: Sprite
drawdepth: Objects
- type: entity
abstract: true
parent: BaseStructureComputerIndestructible
id: BaseStructureComputer
components:
- type: Construction
graph: Computer
node: frameUnsecured
- type: Damageable
damageModifierSet: Electronic
- type: Injurable
@ -65,7 +71,7 @@
monitorUnsecured: { state: 4 }
- type: entity
parent: BaseStructureComputer
parent: BaseStructureComputerIndestructible
id: ComputerBroken
name: broken computer
description: This computer has seen better days.

View file

@ -1,6 +1,6 @@
- type: entity
id: BiomassReclaimer
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: biomass reclaimer
description: Reclaims biomass from corpses. Gruesome.
placement:
@ -24,3 +24,11 @@
- type: GuideHelp
guides:
- Cloning
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak

View file

@ -1,6 +1,6 @@
- type: entity
id: BaseTabletopChemicalMachine
parent: [ BaseMachinePowered, SmallConstructibleMachine ]
parent: [ BaseMachinePowered, SmallConstructibleMachine, BaseSmallConstructibleMachineDestructible ]
abstract: true
components:
- type: Transform
@ -36,6 +36,14 @@
mixer: !type:ContainerSlot
machine_board: !type:Container
machine_parts: !type:Container
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- type: entity
id: MachineElectrolysisUnit

View file

@ -1,5 +1,5 @@
- type: entity
parent: [BaseStructure, ConstructibleMachine] # Not a BaseMachinePowered since we don't want the anchorable component
parent: [BaseStructure, ConstructibleMachine, BaseConstructibleMachineDestructible] # Not a BaseMachinePowered since we don't want the anchorable component
id: CryoPod
name: cryo pod
description: A special machine intended to create a safe environment for the use of chemicals that react in cold environments.
@ -55,22 +55,16 @@
layoutId: CryoPod
- type: Damageable
damageModifierSet: StructuralMetallic
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
damage: 175
behaviors:
- !type:EmptyAllContainersBehaviour
- !type:PlaySoundBehavior
sound:
collection: WindowShatter
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: ApcPowerReceiver
powerLoad: 3000
- type: ExtensionCableReceiver

View file

@ -1,6 +1,6 @@
- type: entity
id: DiseaseDiagnoser
parent: [ BaseMachinePowered, SmallConstructibleMachine ]
parent: [ BaseMachinePowered, SmallConstructibleMachine, BaseSmallConstructibleMachineDestructible ]
name: Disease Diagnoser Delta Extreme
description: A machine that analyzes disease samples.
placement:
@ -17,6 +17,14 @@
- type: Appearance
- type: Machine
board: DiagnoserMachineCircuitboard
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: entity
name: disease diagnoser report

View file

@ -1,6 +1,6 @@
- type: entity
id: Vaccinator
parent: BaseMachinePowered
parent: [ BaseMachinePowered, BaseMachineDestructible ]
name: vaccinator
description: A machine that creates vaccines.
placement:
@ -22,3 +22,11 @@
machine_board: !type:Container
machine_parts: !type:Container
- type: RequireProjectileTarget
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak

View file

@ -1,6 +1,6 @@
- type: entity
id: MachineAnomalyVessel
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: anomaly vessel
description: A container able to harness a scan of an anomaly and turn it into research data.
components:
@ -73,10 +73,8 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 150
damage: 175
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
@ -113,7 +111,7 @@
- type: entity
id: MachineAPE
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: A.P.E.
description: An Anomalous Particle Emitter, capable of shooting out unstable particles which can interface with anomalies.
components:
@ -148,6 +146,14 @@
- MachineMask
layer:
- MachineLayer
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: Rotatable
rotateWhileAnchored: true
- type: Machine

View file

@ -1,6 +1,6 @@
- type: entity
id: MachineAnomalySynchronizer
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: anomaly synchronizer
description: A sophisticated device that reads changes in anomalous waves, and converts them into energy signals.
components:
@ -43,6 +43,14 @@
mask:
- ItemMask
hard: True
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- type: Transform
anchored: true
noRot: false

View file

@ -1,6 +1,6 @@
- type: entity
id: MachineArtifactAnalyzer
parent: [ BaseMachinePowered, SmallConstructibleMachine ]
parent: [ BaseMachinePowered, SmallConstructibleMachine, BaseSmallConstructibleMachineDestructible ]
name: artifact analyzer
description: A platform capable of performing analysis on various types of artifacts.
components:
@ -45,6 +45,14 @@
- LowImpassable
- BulletImpassable
hard: False
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- type: Transform
anchored: true
- type: ApcPowerReceiver
@ -81,7 +89,7 @@
- type: entity
id: MachineArtifactCrusher
parent: [ ConstructibleMachine, BaseMachinePowered ]
parent: [ ConstructibleMachine, BaseMachinePowered, BaseConstructibleMachineDestructible ]
name: artifact crusher
description: Best not to let your fingers get stuck...
components:
@ -121,6 +129,17 @@
- HighImpassable
layer:
- HighImpassable
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:EmptyContainersBehaviour
containers:
- entity_storage
- type: EntityStorage
capacity: 1
whitelist:

View file

@ -22,21 +22,27 @@
- MachineMask
layer:
- MachineLayer
- type: entity
abstract: true
id: BaseMachineDestructible
components:
- type: Damageable
damageModifierSet: StructuralMetallic
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:SpawnEntitiesBehavior
offset: 0
spawn:
MachineFrameDestroyed:
min: 1
max: 1
- type: entity
abstract: true
@ -68,9 +74,43 @@
- type: LightningTarget
priority: 1
- type: entity
abstract: true
id: BaseConstructibleMachineDestructible
components:
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- type: entity
abstract: true
parent: ConstructibleMachine
id: SmallConstructibleMachine
components:
- type: RequireProjectileTarget
- type: entity
abstract: true
id: BaseSmallConstructibleMachineDestructible
components:
- type: Damageable
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 100
behaviors:
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]

View file

@ -1,6 +1,6 @@
- type: entity
id: ChemMaster
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: ChemMaster 4000
description: An industrial grade chemical manipulator with pill and bottle production included.
placement:
@ -41,17 +41,12 @@
- MachineLayer
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: ActivatableUI
key: enum.ChemMasterUiKey.Key
- type: ActivatableUIRequiresPower

View file

@ -1,6 +1,6 @@
- type: entity
id: CloningPod
parent: BaseMachinePowered
parent: [ BaseMachinePowered, BaseConstructibleMachineDestructible ]
name: cloning pod
description: A Cloning Pod. 50% reliable.
components:
@ -32,21 +32,14 @@
- clonepod-bodyContainer
- type: Damageable
damageModifierSet: StrongMetallic
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: CloningPodMachineCircuitboard
- type: MaterialStorage

View file

@ -1,6 +1,6 @@
- type: entity
id: FatExtractor
parent: BaseMachinePowered
parent: [ BaseMachinePowered, BaseMachineDestructible ]
name: lipid extractor
description: Safely and efficiently extracts excess fat from a subject.
components:
@ -77,21 +77,14 @@
- entity_storage
- type: Damageable
damageModifierSet: StructuralMetallicStrong
- type: Injurable
damageContainer: StructuralInorganic
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
- type: Machine
board: FatExtractorMachineCircuitboard
- type: WiresPanel

View file

@ -14,7 +14,7 @@
- state: printing
map: [ "printing" ]
visible: false
- state:
- state:
map: [ "enum.FaxMachineVisuals.VisualState" ]
- type: Icon
sprite: Structures/Machines/fax_machine.rsi
@ -33,6 +33,16 @@
- TabletopMachineMask
layer:
- TabletopMachineLayer
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 100
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:DoActsBehavior
acts: ["Destruction"]
- type: ActivatableUI
key: enum.FaxUiKey.Key
- type: ActivatableUIRequiresPower
@ -89,7 +99,7 @@
suffix: CentCom
components:
- type: Sprite
layers:
layers:
- state: icon
color: "#bfe3ff"
- state: idle
@ -97,7 +107,7 @@
- state: printing
map: [ "printing" ]
visible: false
- state:
- state:
map: [ "enum.FaxMachineVisuals.VisualState" ]
- type: FaxMachine
name: "Central Command"
@ -110,7 +120,7 @@
suffix: Syndicate
components:
- type: Sprite
layers:
layers:
- state: icon
color: "#a3a3a3"
- state: idle
@ -118,7 +128,7 @@
- state: printing
map: [ "printing" ]
visible: false
- state:
- state:
map: [ "enum.FaxMachineVisuals.VisualState" ]
- type: FaxMachine
name: "ERR*?*%!"

View file

@ -1,6 +1,6 @@
- type: entity
id: MachineFlatpacker
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
name: Flatpacker 1001
description: An industrial machine used for expediting machine construction across the station.
components:
@ -30,6 +30,14 @@
anim:
True: { visible: true }
False: { visible: false }
- type: Destructible
thresholds:
- trigger: !type:DamageTrigger
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- type: FlatpackCreator
baseMachineCost:
Steel: 750

View file

@ -81,7 +81,7 @@
price: 5000
- type: entity
parent: [ GravityGenerator, ConstructibleMachine ]
parent: [ GravityGenerator, ConstructibleMachine, BaseConstructibleMachineDestructible ]
id: GravityGeneratorMini
name: mini gravity generator
suffix: Charged
@ -115,18 +115,11 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 500
damage: 175
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
collection: MetalGlassBreak
- !type:SpawnEntitiesBehavior
spawn:
MachineFrameDestroyed:
min: 1
max: 1
- type: WiresPanel
- type: Machine
board: MiniGravityGeneratorCircuitboard

View file

@ -1,5 +1,5 @@
- type: entity
parent: [ BaseMachinePowered, ConstructibleMachine ]
parent: [ BaseMachinePowered, ConstructibleMachine, BaseConstructibleMachineDestructible ]
id: Holopad
name: holopad
description: "A floor-mounted device for projecting holographic images."
@ -94,15 +94,11 @@
thresholds:
- trigger:
!type:DamageTrigger
damage: 100
damage: 175
behaviors:
- !type:PlaySoundBehavior
sound:
collection: MetalBreak
- !type:ChangeConstructionNodeBehavior
node: machineFrame
- !type:DoActsBehavior
acts: ["Destruction"]
collection: MetalGlassBreak
- type: entity
name: long-range holopad

Some files were not shown because too many files have changed in this diff Show more