Arachnid rework (#18631)

* Merge before I fuck up anything again

* craft whitelist

* Sericulture

* Spider

* gone

* quickly fixed

* and coders taketh away

* And we take more away

* sericulture improvements

* arachnid

* better webbed

* OH WAIT

* test fail
This commit is contained in:
PixelTK
2023-08-13 08:38:05 +01:00
committed by GitHub
parent f1af1ba8c8
commit f189b73fe5
58 changed files with 860 additions and 62 deletions

View File

@@ -7,7 +7,7 @@
- type: Respirator
damage:
types:
Asphyxiation: 2 # Make sure you have O2 on you at all times
Asphyxiation: 1.5 # Make sure you have O2 on you at all times
damageRecovery:
types:
Asphyxiation: -0.5 # Recovery will suck without chems

View File

@@ -6,50 +6,40 @@
abstract: true
components:
# The important nessessities
- type: MovementSpeedModifier
baseWalkSpeed: 3.0
baseSprintSpeed: 5.0
- type: Body
prototype: Arachnid
requiredLegs: 2
- type: Perishable
- type: HumanoidAppearance
species: Arachnid
- type: Damageable
damageContainer: Biological
damageModifierSet: Arachnid # spooder
- type: Hunger
starvationDamage:
baseDecayRate: 0.0125
starvationDamage: # Not sure if this should be changed.
types:
Cold: 0.5
Bloodloss: 0.5
- type: Thirst
- type: Icon
sprite: Mobs/Species/Arachnid/parts.rsi
state: full
# Damage and speed
baseDecayRate: 0.0125
# Damage (Self)
- type: Damageable
damageContainer: Biological
damageModifierSet: Arachnid
- type: Bloodstream
bloodReagent: SpiderBlood
- type: Temperature
heatDamageThreshold: 400
coldDamageThreshold: 285
currentTemperature: 310.15
specificHeat: 46
coldDamage:
types:
Cold : 0.2 #per second, scales with temperature & other constants
heatDamage:
types:
Heat : 0.1 #per second, scales with temperature & other constants
- type: Barotrauma
# Damage (Others)
- type: MeleeWeapon
animation: WeaponArcClaw
soundHit:
collection: AlienClaw
damage:
types:
Blunt: 0.20 #per second, scales with pressure and other constants.
- type: SlowOnDamage
speedModifierThresholds: # This is an ouch, but it does make up for their extra speed
65: 0.7
80: 0.4
# Misc
types: # Realisically this is more like 5 slash
Slash: 4
# Visual & Audio
- type: DamageVisuals
damageOverlayGroups:
Brute:
sprite: Mobs/Effects/brute_damage.rsi
color: "#162581"
- type: Speech
speechSounds: Arachnid
- type: Vocal
@@ -57,20 +47,66 @@
Male: UnisexArachnid
Female: UnisexArachnid
Unsexed: UnisexArachnid
- type: Inventory
templateId: arachnid
- type: MeleeWeapon
hidden: true
soundHit:
path: /Audio/Weapons/pierce.ogg
angle: 30
animation: WeaponArcClaw
attackRate: 1.5
damage:
types:
# Actually does 3 + 1 damage due to +25% damage bonus on all single target melee attacks
Slash: 2.4
Poison: 0.8
- type: Sprite
noRot: true
drawdepth: Mobs
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- shader: StencilClear
sprite: Mobs/Species/Human/parts.rsi #PJB on stencil clear being on the left leg: "...this is 'fine'" -https://github.com/space-wizards/space-station-14/pull/12217#issuecomment-1291677115
# its fine, but its still very stupid that it has to be done like this instead of allowing sprites to just directly insert a stencil clear.
# sprite refactor when
state: l_leg
- shader: StencilMask
map: ["enum.HumanoidVisualLayers.StencilMask"]
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: ["jumpsuit"]
- map: ["enum.HumanoidVisualLayers.LFoot"]
- map: ["enum.HumanoidVisualLayers.RFoot"]
- map: ["enum.HumanoidVisualLayers.LHand"]
- map: ["enum.HumanoidVisualLayers.RHand"]
- map: [ "id" ]
- map: [ "gloves" ]
- map: [ "shoes" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ] # Better here?
- map: [ "neck" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "mask" ]
- map: [ "head" ]
- map: [ "pocket1" ]
- map: [ "pocket2" ]
- map: ["enum.HumanoidVisualLayers.Handcuffs"]
color: "#ffffff"
sprite: Objects/Misc/handcuffs.rsi
state: body-overlay-2
visible: false
- map: [ "clownedon" ] # Dynamically generated
sprite: "Effects/creampie.rsi"
state: "creampie_human"
visible: false
# Misc
- type: Sericulture
actionProto: SericultureAction
productionLength: 3
entityProduced: MaterialWebSilk1
hungerCost: 5
- type: Butcherable
butcheringType: Spike
spawned:

View File

@@ -127,7 +127,7 @@
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
tags:
- ClothMade
- DroneUsable
- Gauze
@@ -193,7 +193,7 @@
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
tags:
- ClothMade
- DroneUsable
- RawMaterial
@@ -372,7 +372,7 @@
- ReagentId: Fiber
Quantity: 5
- type: Tag
tags:
tags:
- ClothMade
- DroneUsable
- RawMaterial
@@ -453,3 +453,42 @@
count: 1
- type: Item
size: 2
- type: entity
parent: MaterialBase
id: MaterialWebSilk
name: silk
description: A webby material
suffix: Full
components:
- type: PhysicalComposition
materialComposition:
WebSilk: 100
- type: Sprite
sprite: Objects/Materials/silk.rsi
state: icon
- type: Stack
count: 50
stackType: WebSilk
- type: Item
size: 50
- type: entity
parent: MaterialWebSilk
id: MaterialWebSilk25
suffix: 25
components:
- type: Stack
count: 25
- type: Item
size: 25
- type: entity
parent: MaterialWebSilk
id: MaterialWebSilk1
suffix: 1
components:
- type: Stack
count: 1
- type: Item
size: 1

View File

@@ -49,6 +49,11 @@
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
MaterialWebSilk:
min: 0
max: 1
- type: Temperature
heatDamage:
types:

View File

@@ -810,3 +810,19 @@
- type: Stack
stackType: FloorTileGratingMaint
- type: entity
name: web tile
parent: FloorTileItemBase
id: FloorTileItemWeb
components:
- type: Sprite
sprite: Objects/Tiles/web.rsi
state: icon
- type: FloorTile
outputs:
- FloorWebTile
- type: Stack
stackType: FloorTileWeb
- type: Construction
graph: TileWeb
node: webtile

View File

@@ -478,6 +478,35 @@
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: entity
id: TableWeb
parent: TableBase
name: web table
description: Really smooth and surprisingly durable.
components:
- type: Damageable
damageModifierSet: Web
- type: Sprite
sprite: Structures/Furniture/Web/table.rsi
- type: Icon
sprite: Structures/Furniture/Web/table.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/slash.ogg"
- type: Construction
graph: TableWeb
node: table
- type: entity
id: TableDebug
parent: TableBase

View File

@@ -122,3 +122,31 @@
state: mattress
- type: Damageable
damageModifierSet: Inflatable
- type: entity
parent: Bed
id: WebBed
name: web bed
description: You got webbed.
components:
- type: Damageable
damageModifierSet: Web
- type: Sprite
sprite: Structures/Furniture/Web/bed.rsi
state: icon
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/woodhit.ogg
- !type:SpawnEntitiesBehavior
spawn:
MaterialWebSilk:
min: 1
max: 1

View File

@@ -247,6 +247,45 @@
graph: RitualSeat
node: chairCursed
- type: entity
name: web chair
id: WebChair
description: For true web developers.
parent: SeatBase
components:
- type: Transform
anchored: true
- type: Physics
bodyType: Static
- type: Anchorable
- type: Rotatable
- type: Sprite
sprite: Structures/Furniture/Web/chair.rsi
state: icon
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/slash.ogg"
- type: Damageable
damageModifierSet: Web
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 50
behaviors:
- !type:DoActsBehavior
acts: ["Destruction"]
- !type:PlaySoundBehavior
sound:
path: /Audio/Effects/woodhit.ogg
- !type:SpawnEntitiesBehavior
spawn:
MaterialWebSilk:
min: 1
max: 1
- type: entity
parent: [SeatBase, BaseFoldable]
id: ChairFolding

View File

@@ -927,6 +927,48 @@
key: walls
base: wood
- type: entity
parent: BaseWall
id: WallWeb
name: web wall
description: Keeps the spiders in and the greytide out.
components:
- type: Clickable
- type: MeleeSound
soundGroups:
Brute:
path:
"/Audio/Weapons/slash.ogg"
- type: Damageable
damageModifierSet: Web
- type: Tag
tags:
- Wall
- RCDDeconstructWhitelist
- type: Sprite
sprite: Structures/Walls/web.rsi
- type: Icon
sprite: Structures/Walls/web.rsi
- type: Destructible
thresholds:
- trigger:
!type:DamageTrigger
damage: 30
behaviors:
- !type:DoActsBehavior
acts: [ "Destruction" ]
- !type:SpawnEntitiesBehavior
spawn:
MaterialWebSilk:
min: 1
max: 1
- type: IconSmooth
key: walls
base: wall
- type: Construction
graph: WallWeb
node: wall
# Vault Walls
@@ -975,7 +1017,6 @@
sprite: Structures/Walls/vault.rsi
state: sandstonevault
# Mime
- type: entity