This commit is contained in:
Ed
2025-07-31 14:48:21 +03:00
parent 7298e14de7
commit 52536aab97
14 changed files with 117 additions and 493 deletions

View File

@@ -216,7 +216,7 @@
id: MobRespirator
abstract: true
components:
#- type: Internals #CP14 dont need this
- type: Internals
- type: Respirator
damage:
types:
@@ -235,6 +235,7 @@
- type: InjectableSolution
solution: chemicals
- type: Bloodstream
bloodMaxVolume: 150
bloodlossDamage:
types:
Bloodloss: 0.5

View File

@@ -1,6 +1,6 @@
- type: entity
id: CP14MobSlimeBase
parent: CP14SimpleMobNoLifeBase
parent: CP14SimpleMobBase
name: slime
description: A clot of semi-intelligent slime sensitive to the elemental elements. And happy to slime the skin off your face.
components:

View File

@@ -0,0 +1,50 @@
# Default base mob proto
- type: entity
parent:
- BaseMob
- MobCombat
- CP14MobDamageable
- CP14MobStarving
- MobBloodstream
- MobFlammable
- MobPolymorphable
id: CP14SimpleMobBase
suffix: AI
abstract: true
components:
- type: NpcFactionMember
factions:
- SimpleNeutral
- type: MeleeWeapon
angle: 0
animation: WeaponArcBite
- type: HTN
rootTask:
task: IdleCompound
- type: Climbing
- type: NameIdentifier
group: GenericNumber
- type: SlowOnDamage
speedModifierThresholds:
60: 0.7
80: 0.5
- type: StandingState
- type: StatusEffects
allowed:
- SlowedDown
- Stutter
- Electrocution
- TemporaryBlindness
- Pacified
- Flashed
- RadiationProtection
- Adrenaline
- type: MovementSpeedModifier
baseWalkSpeed : 4
baseSprintSpeed : 4
- type: Reactive
groups:
Flammable: [Touch]
Extinguish: [Touch]
Acidic: [Touch, Ingestion]

View File

@@ -1,7 +1,7 @@
- type: entity
name: watcher
id: CP14MobWatcherBase
parent: [ CP14SimpleMobNoLifeBase, FlyingMobBase ]
parent: [ CP14SimpleMobBase, FlyingMobBase ]
abstract: true
description: It's like it's staring right through you.
categories: [ ForkFiltered ]

View File

@@ -5,6 +5,7 @@
- MobCombat
- CP14MobDamageable
- CP14MobMagical
- MobPolymorphable
id: CP14BaseMobSpecies
categories: [ ForkFiltered ]
abstract: true
@@ -154,7 +155,6 @@
- type: ComplexInteraction
- type: Inventory
- type: InventorySlots
#- type: FloatingVisuals
- type: Climbing
- type: Cuffable
- type: Ensnareable
@@ -209,38 +209,39 @@
- type: Grammar
attributes:
proper: true
- type: MobPrice
price: 150 # Kidnapping a living person and selling them for cred is a good move.
deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less.
- type: Tag
tags:
- FootstepSound
- type: CP14DemiplaneStabilizer
requireAlive: true
- type: CanEnterCryostorage
- type: CP14IgnitionModifier
ignitionTimeModifier: 2.5
- type: CanMoveInAir # read: CanSwimInOcean lol
- type: MovementAlwaysTouching
- type: MovementSpeedModifier
weightlessAcceleration: 0.8 # Slow swimming
weightlessFriction: 2
weightlessModifier: 0.6
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: CP14TradingReputation
- type: CP14AuraImprint
- type: CP14SkillStorage
skillPoints:
Memory:
max: 5
availableSkillTrees:
- Pyrokinetic
- Hydrosophistry
- Illusion
- Metamagic
- Healing
- Electromancy
- Athletic
- MartialArts
- Craftsmanship
- type: entity
parent:
- MobBloodstream
- MobRespirator
- MobAtmosStandard
- MobFlammable
- CP14MobStarving
- CP14BaseMobSpecies
id: CP14BaseMobSpeciesOrganic
save: false
@@ -282,43 +283,6 @@
- type: Bloodstream
bloodReagent: CP14Blood
# Other
- type: Temperature
heatDamageThreshold: 325
coldDamageThreshold: 260
currentTemperature: 310.15
specificHeat: 42
coldDamage:
types:
Cold: 0.1 #per second, scales with temperature & other constants
heatDamage:
types:
Heat: 1.5 #per second, scales with temperature & other constants
- type: TemperatureSpeed
thresholds:
293: 0.8
280: 0.6
260: 0.4
- type: ThermalRegulator
metabolismHeat: 800
radiatedHeat: 100
implicitHeatRegulation: 500
sweatHeatRegulation: 2000
shiveringHeatRegulation: 2000
normalBodyTemperature: 310.15
thermalRegulationTemperatureThreshold: 25
- type: Perishable
- type: Butcherable
butcheringType: Spike # TODO human.
spawned:
- id: CP14FoodMeatHuman
amount: 5
- type: Respirator
damage:
types:
Asphyxiation: 1.0
damageRecovery:
types:
Asphyxiation: -1.0
- type: FireVisuals
alternateState: Standing #TODO - custom visuals
@@ -392,231 +356,4 @@
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key: # sure, this can go here too
type: HumanoidMarkingModifierBoundUserInterface
- type: entity
save: false
parent:
- BaseMob
- CP14MobDamageable
- CP14MobMagical
- CP14BaseMobSpecies
id: CP14BaseMobSpeciesNoLife
categories: [ ForkFiltered ]
abstract: true
components:
- type: Sprite
layers:
- map: [ "enum.HumanoidVisualLayers.Chest" ]
- map: [ "enum.HumanoidVisualLayers.Head" ]
- map: [ "enum.HumanoidVisualLayers.Snout" ]
- map: [ "enum.HumanoidVisualLayers.Eyes" ]
- map: [ "vampire_fangs" ]
sprite: _CP14/Mobs/Species/Vampire/fangs.rsi
state: human
visible: false
- map: [ "enum.HumanoidVisualLayers.RArm" ]
- map: [ "enum.HumanoidVisualLayers.LArm" ]
- map: [ "enum.HumanoidVisualLayers.RLeg" ]
- map: [ "enum.HumanoidVisualLayers.LLeg" ]
- shader: StencilClear
sprite: _CP14/Mobs/Species/Human/parts.rsi
state: l_leg
- shader: StencilMask
map: [ "enum.HumanoidVisualLayers.StencilMask" ]
sprite: Mobs/Customization/masking_helpers.rsi
state: unisex_full
visible: false
- map: [ "enum.HumanoidVisualLayers.LFoot" ]
- map: [ "enum.HumanoidVisualLayers.RFoot" ]
- map: [ "pants" ]
- map: [ "shoes" ]
- map: [ "shirt" ]
- map: [ "enum.HumanoidVisualLayers.LHand" ]
- map: [ "enum.HumanoidVisualLayers.RHand" ]
- map: [ "gloves" ]
- map: [ "ears" ]
- map: [ "outerClothing" ]
- map: [ "cloak" ]
- map: [ "eyes" ]
- map: [ "belt" ]
- map: [ "belt2" ]
- map: [ "neck" ]
- map: [ "back" ]
- map: [ "enum.HumanoidVisualLayers.FacialHair" ]
- map: [ "enum.HumanoidVisualLayers.Hair" ]
- map: [ "enum.HumanoidVisualLayers.HeadSide" ]
- map: [ "enum.HumanoidVisualLayers.HeadTop" ]
- map: [ "enum.HumanoidVisualLayers.Tail" ]
- 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
- type: DamageVisuals
thresholds: [ 10, 20, 30, 50, 70, 100 ]
targetLayers:
- "enum.HumanoidVisualLayers.Chest"
- "enum.HumanoidVisualLayers.Head"
- "enum.HumanoidVisualLayers.LArm"
- "enum.HumanoidVisualLayers.LLeg"
- "enum.HumanoidVisualLayers.RArm"
- "enum.HumanoidVisualLayers.RLeg"
damageOverlayGroups:
Brute:
sprite: Mobs/Effects/brute_damage.rsi
color: "#FF0000"
Burn:
sprite: Mobs/Effects/burn_damage.rsi
- type: GenericVisualizer
visuals:
enum.CreamPiedVisuals.Creamed:
clownedon: # Not 'creampied' bc I can already see Skyrat complaining about conflicts.
True: {visible: true}
False: {visible: false}
- type: StatusIcon
bounds: -0.5,-0.5,0.5,0.5
- type: RotationVisuals
defaultRotation: 90
horizontalRotation: 90
- type: HumanoidAppearance
species: CP14Human
- type: SlowOnDamage
speedModifierThresholds:
60: 0.7
80: 0.5
- type: Fixtures
fixtures: # TODO: This needs a second fixture just for mob collisions.
fix1:
shape:
!type:PhysShapeCircle
radius: 0.35
density: 185
restitution: 0.0
mask:
- MobMask
layer:
- MobLayer
- type: FloorOcclusion
- type: RangedDamageSound
soundGroups:
Brute:
collection:
MeatBulletImpact
soundTypes:
Heat:
collection:
MeatLaserImpact
- type: Reactive
groups:
Flammable: [ Touch ]
Extinguish: [ Touch ]
Acidic: [Touch, Ingestion]
reactions:
- reagents: [Water, SpaceCleaner]
methods: [Touch]
effects:
- !type:WashCreamPieReaction
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- SeeingRainbows
- Electrocution
- Drunk
- SlurredSpeech
- RatvarianLanguage
- PressureImmunity
- Muted
- ForcedSleep
- TemporaryBlindness
- Pacified
- StaminaModifier
- Flashed
- RadiationProtection
- Drowsiness
- Adrenaline
- type: Body
prototype: CP14Human
requiredLegs: 2
- type: Identity
- type: Hands
- type: ComplexInteraction
- type: Inventory
- type: InventorySlots
#- type: FloatingVisuals
- type: Climbing
- type: Cuffable
- type: Ensnareable
sprite: Objects/Misc/ensnare.rsi
state: icon
- type: AnimationPlayer
- type: Buckle
- type: CombatMode
canDisarm: true
- type: MeleeWeapon
soundHit:
collection: Punch
angle: 30
animation: WeaponArcFist
attackRate: 1.3
damage:
types:
Blunt: 3
- type: SleepEmitSound
- type: SSDIndicator
- type: StandingState
- type: MindContainer
showExamineInfo: true
- type: InteractionPopup
successChance: 1
interactSuccessString: hugging-success-generic
interactSuccessSound: /Audio/Effects/thudswoosh.ogg
messagePerceivedByOthers: hugging-success-generic-others
- type: NpcFactionMember
factions:
- CP14Adventurers
- type: Stripping
- type: Strippable
- type: UserInterface
interfaces:
enum.HumanoidMarkingModifierKey.Key:
type: HumanoidMarkingModifierBoundUserInterface
enum.StrippingUiKey.Key:
type: StrippableBoundUserInterface
- type: Puller
- type: Speech
speechSounds: Alto
- type: DamageForceSay
- type: Vocal
sounds:
Male: MaleHuman
Female: FemaleHuman
Unsexed: MaleHuman
- type: Emoting
- type: BodyEmotes
soundsId: GeneralBodyEmotes
- type: Grammar
attributes:
proper: true
- type: MobPrice
price: 1500 # Kidnapping a living person and selling them for cred is a good move.
deathPenalty: 0.01 # However they really ought to be living and intact, otherwise they're worth 100x less.
- type: Tag
tags:
- FootstepSound
- type: CanEnterCryostorage
- type: CP14IgnitionModifier
ignitionTimeModifier: 2.5
- type: CanMoveInAir # read: CanSwimInOcean lol
- type: MovementAlwaysTouching
- type: MovementSpeedModifier
weightlessAcceleration: 0.8 # Slow swimming
weightlessFriction: 2
weightlessModifier: 0.6
type: HumanoidMarkingModifierBoundUserInterface

View File

@@ -6,11 +6,6 @@
components:
- type: HumanoidAppearance
species: CP14Carcat
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Carcat/parts.rsi
state: full
@@ -21,13 +16,7 @@
Unsexed: CP14UnisexCarcat
- type: Speech
speechSounds: CP14Carcat
- type: Thirst
- type: Wagging
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 3
- type: Body
prototype: CP14Human
requiredLegs: 2

View File

@@ -6,20 +6,9 @@
components:
- type: HumanoidAppearance
species: CP14Dwarf
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Dwarf/parts.rsi
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 5
- type: CP14AuraImprint
imprintColor: "#91898d"
- type: Body

View File

@@ -16,20 +16,9 @@
CP14ManaDepletion: -0.07
groups:
Brute: -0.07
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Elf/parts.rsi
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 4
- type: Body
prototype: CP14Elf
requiredLegs: 2

View File

@@ -67,11 +67,6 @@
48:
sprite: _CP14/Mobs/Species/Goblin/displacement48.rsi
state: hair
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Goblin/parts.rsi
state: full
@@ -82,12 +77,6 @@
Unsexed: CP14UnisexGoblin
- type: Speech
speechSounds: CP14Goblin
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 3
- type: Body
prototype: CP14Human
requiredLegs: 2

View File

@@ -6,20 +6,9 @@
components:
- type: HumanoidAppearance
species: CP14Human
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Human/parts.rsi
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 5
- type: Body
prototype: CP14Human
requiredLegs: 2

View File

@@ -59,20 +59,9 @@
visible: false
- type: HumanoidAppearance
species: CP14Silva
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Elf/parts.rsi #TODO
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman # Replace it with silva meat, heh.
amount: 5
- type: CP14SkillStorage #Innate vivification
freeLearnedSkills:
- HealingT1

View File

@@ -1,6 +1,6 @@
- type: entity
parent:
- CP14BaseMobSpeciesNoLife
- CP14BaseMobSpecies
- MobFlammable
id: CP14BaseMobSkeleton
name: Mr. Skeleton

View File

@@ -6,20 +6,9 @@
components:
- type: HumanoidAppearance
species: CP14Tiefling
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Icon
sprite: _CP14/Mobs/Species/Tiefling/parts.rsi
state: full
- type: Thirst
- type: Butcherable
butcheringType: Spike
spawned:
- id: CP14FoodMeatHuman
amount: 5
- type: Body
prototype: CP14Tiefling
requiredLegs: 2

View File

@@ -1,22 +1,11 @@
- type: entity
save: false
parent: MobDamageable
id: CP14MobDamageable
categories: [ ForkFiltered ]
abstract: true
components:
- type: Damageable
damageContainer: CP14Biological
- type: HealthExaminable
examinableTypes:
- Blunt
- Slash
- Piercing
- Heat
- Shock
- Cold
- Caustic
- CP14ManaDepletion
- type: Destructible
thresholds:
- trigger:
@@ -40,6 +29,50 @@
- !type:PlaySoundBehavior
sound:
collection: MeatLaserImpact
- type: Stamina
- type: MobState
- type: MobThresholds
thresholds:
0: Alive
100: Critical
200: Dead
- type: MobStateActions
actions:
Critical:
- ActionCritSuccumb
- ActionCritFakeDeath
- ActionCritLastWords
- type: Deathgasp
- type: HealthExaminable
examinableTypes:
- Blunt
- Slash
- Piercing
- Heat
- Shock
- Cold
- Caustic
- CP14ManaDepletion
- type: DamageOnHighSpeedImpact
damage:
types:
Blunt: 5
soundHit:
path: /Audio/Effects/hit_kick.ogg
- type: Pullable
# Used for mobs that need food & water for life
- type: entity
id: CP14MobStarving
abstract: true
categories: [ ForkFiltered ]
components:
- type: Hunger
starvationDamage:
types:
Cold: 0.25
Bloodloss: 0.25
- type: Thirst
- type: entity
id: CP14MobMagical
@@ -57,124 +90,4 @@
delay: 3 # 5m to full restore
- type: CP14MagicUnsafeDamage
- type: CP14MagicUnsafeSleep
- type: CP14SkillStorage
skillPoints:
Memory:
max: 5
availableSkillTrees:
- Pyrokinetic
- Hydrosophistry
- Illusion
- Metamagic
- Healing
- Electromancy
- Athletic
- MartialArts
- Craftsmanship
- type: entity
parent:
- CP14MobDamageable
- MobRespirator
- MobAtmosStandard
- SimpleSpaceMobBase
id: CP14SimpleMobBase
suffix: AI
abstract: true
components:
- type: Hunger
thresholds:
Overfed: 100
Okay: 50
Peckish: 25
Starving: 10
Dead: 0
baseDecayRate: 0.00925925925926
- type: Thirst
thresholds:
OverHydrated: 200
Okay: 150
Thirsty: 100
Parched: 50
Dead: 0
baseDecayRate: 0.04
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- Electrocution
- ForcedSleep
- TemporaryBlindness
- Pacified
- StaminaModifier
- Flashed
- RadiationProtection
- Drowsiness
- Adrenaline
- type: Bloodstream
bloodMaxVolume: 150
- type: MobPrice
price: 150
- type: FloatingVisuals
- type: entity
parent:
- CP14MobDamageable
- MobAtmosStandard
- CP14SimpleSpaceMobNoLifeBase
id: CP14SimpleMobNoLifeBase
suffix: AI
abstract: true
components:
- type: StatusEffects
allowed:
- Stun
- KnockedDown
- SlowedDown
- Stutter
- Electrocution
- ForcedSleep
- TemporaryBlindness
- Pacified
- StaminaModifier
- Flashed
- RadiationProtection
- Drowsiness
- Adrenaline
- type: MobPrice
price: 150
- type: FloatingVisuals
- type: entity
abstract: true
parent:
- BaseSimpleMob
- MobCombat
- MobFlammable
id: CP14SimpleSpaceMobNoLifeBase
suffix: AI
components:
- type: NpcFactionMember
factions:
- CP14Neutrals
- type: HTN
rootTask:
task: IdleCompound
- type: MeleeWeapon
angle: 0
animation: WeaponArcBite
- type: Body
prototype: Animal
- type: Climbing
- type: NameIdentifier
group: GenericNumber
- type: SlowOnDamage
speedModifierThresholds:
60: 0.7
80: 0.5
- type: MobPrice
price: 1000 # Living critters are valuable in space.
- type: Perishable
- type: CP14AuraImprint