Adds SimpleMobBase for NPCs. (#2932)
* Initial * Initial2 * Abstraction
This commit is contained in:
@@ -9,11 +9,6 @@
|
||||
drawdepth: Mobs
|
||||
suffix: AI
|
||||
components:
|
||||
- type: AiController
|
||||
logic: Civilian
|
||||
- type: AiFactionTag
|
||||
factions:
|
||||
- SimpleNeutral
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 4
|
||||
baseSprintSpeed : 4
|
||||
@@ -33,12 +28,10 @@
|
||||
bounds: "-0.30,-0.25,0.40,0.25"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Damageable
|
||||
- type: MobState
|
||||
thresholds:
|
||||
@@ -60,6 +53,9 @@
|
||||
- type: DamageStateVisualizer
|
||||
normal: monkey
|
||||
dead: dead
|
||||
- type: FireVisualizer
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Monkey_burning
|
||||
- type: Pullable
|
||||
- type: Butcherable
|
||||
meat: FoodMeat
|
||||
@@ -67,7 +63,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: gorilla
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: GorillaMob_Content
|
||||
description: Smashes, roars, looks cool. Don't stand near one.
|
||||
drawdepth: Mobs
|
||||
@@ -87,12 +83,10 @@
|
||||
bounds: "-0.90,-0.50,0.05,0.50"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -102,7 +96,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: chicken
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: ChickenMob_Content
|
||||
description: Comes before an egg, and IS a dinosaur!
|
||||
drawdepth: Mobs
|
||||
@@ -122,12 +116,10 @@
|
||||
bounds: "-0.45,-0.20,0.10,0.20"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -137,7 +129,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: butterfly
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: ButterflyMob_Content
|
||||
description: Despite popular misconceptions, it's not actually made of butter.
|
||||
drawdepth: Mobs
|
||||
@@ -160,12 +152,10 @@
|
||||
bounds: "-0.20,-0.20,0.20,0.20"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: RandomSpriteColor
|
||||
state: butterfly
|
||||
colors:
|
||||
@@ -185,7 +175,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: bat
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: BatMob_Content
|
||||
description: Some cultures find them terrifying, others crunchy on the teeth.
|
||||
drawdepth: Mobs
|
||||
@@ -208,12 +198,10 @@
|
||||
bounds: "-0.20,-0.20,0.20,0.20"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -223,7 +211,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: bee
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: BeeMob_Content
|
||||
description: Nice to have, but you can't build a civilization on a foundation of honey alone.
|
||||
drawdepth: Mobs
|
||||
@@ -247,12 +235,10 @@
|
||||
bounds: "-0.10,-0.10,0.10,0.10"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -262,7 +248,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: goat
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: GoatMob_Content
|
||||
description: His spine consists of long sharp segments, no wonder he is so grumpy.
|
||||
drawdepth: Mobs
|
||||
@@ -282,12 +268,10 @@
|
||||
bounds: "-0.60,-0.50,0.05,0.50"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -298,7 +282,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: goose
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: GooseMob_Content
|
||||
description: Its stomach and mind are an enigma beyond human comprehension.
|
||||
drawdepth: Mobs
|
||||
@@ -318,12 +302,10 @@
|
||||
bounds: "-0.45,-0.35,0.45,0.35"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -334,7 +316,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: parrot
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: ParrotMob_Content
|
||||
description: Infiltrates your domain, spies on you, and somehow still a cool pet.
|
||||
drawdepth: Mobs
|
||||
@@ -357,12 +339,10 @@
|
||||
bounds: "-0.30,-0.35,0.35,0.35"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -372,7 +352,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: snake
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: SnakeMob_Content
|
||||
description: Hissss! Bites aren't poisonous.
|
||||
drawdepth: Mobs
|
||||
@@ -392,12 +372,10 @@
|
||||
bounds: "-0.30,-0.30,0.25,0.30"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -410,7 +388,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: tarantula
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: GiantSpiderMob_Content
|
||||
description: Widely recognized to be the literal worst thing in existence.
|
||||
drawdepth: Mobs
|
||||
@@ -430,12 +408,10 @@
|
||||
bounds: "-0.30,-0.40,0.45,0.40"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -445,7 +421,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: crab
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: CrabMob_Content
|
||||
description: A folk legend goes around that his claw snaps spacemen out of existance over distasteful remarks. Be polite and tolerant for your own safety.
|
||||
drawdepth: Mobs
|
||||
@@ -465,12 +441,10 @@
|
||||
bounds: "-0.40,-0.35,0.20,0.35"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -480,7 +454,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: penguin
|
||||
parent: MonkeyMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: PenguinMob_Content
|
||||
description: Their lives are constant pain due to their inner-body knees.
|
||||
drawdepth: Mobs
|
||||
@@ -500,12 +474,10 @@
|
||||
bounds: "-0.50,-0.30,0.35,0.30"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
|
||||
@@ -1,66 +1,10 @@
|
||||
# Bounds Guide
|
||||
#1D2L3U4R
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: based on what?
|
||||
abstract: true
|
||||
id: PetBaseMob_Content
|
||||
description:
|
||||
drawdepth: Mobs
|
||||
suffix: AI
|
||||
components:
|
||||
- type: AiController
|
||||
logic: Civilian
|
||||
- type: AiFactionTag
|
||||
factions:
|
||||
- SimpleNeutral
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 5
|
||||
baseSprintSpeed : 5
|
||||
- type: InteractionOutline
|
||||
- type: Clickable
|
||||
- type: Physics
|
||||
anchored: false
|
||||
mass: 50
|
||||
shapes:
|
||||
- !type:PhysShapeAabb
|
||||
bounds: "-0.30,-0.35,0.45,0.35"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Damageable
|
||||
- type: MobState
|
||||
thresholds:
|
||||
0: !type:NormalMobState {}
|
||||
50: !type:CriticalMobState {}
|
||||
100: !type:DeadMobState {}
|
||||
- type: HeatResistance
|
||||
- type: CombatMode
|
||||
- type: Teleportable
|
||||
- type: Stunnable
|
||||
- type: UnarmedCombat
|
||||
range: 1.5
|
||||
arcwidth: 0
|
||||
arc: bite
|
||||
damage: 50
|
||||
- type: MovementIgnoreGravity
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
normal: monkey
|
||||
dead: dead
|
||||
- type: Pullable
|
||||
|
||||
- type: entity
|
||||
save: false
|
||||
name: corgi
|
||||
parent: PetBaseMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: CorgiMob_Content
|
||||
description: Finally, a space corgi!
|
||||
drawdepth: Mobs
|
||||
@@ -79,12 +23,10 @@
|
||||
bounds: "-0.50,-0.25,0.30,0.25"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -94,7 +36,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: ian
|
||||
parent: PetBaseMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: IanMob_Content
|
||||
description: Favorite pet corgi.
|
||||
drawdepth: Mobs
|
||||
@@ -113,12 +55,10 @@
|
||||
bounds: "-0.50,-0.25,0.30,0.25"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -128,7 +68,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: cat
|
||||
parent: PetBaseMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: CatMob_Content
|
||||
description: Feline pet, very funny.
|
||||
drawdepth: Mobs
|
||||
@@ -147,12 +87,10 @@
|
||||
bounds: "-0.45,-0.20,0.30,0.20"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -162,7 +100,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: calico cat
|
||||
parent: PetBaseMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: CatCalicoMob_Content
|
||||
description: Feline pet, very funny.
|
||||
drawdepth: Mobs
|
||||
@@ -174,19 +112,16 @@
|
||||
layers:
|
||||
- map: ["enum.DamageStateVisualLayers.Base"]
|
||||
state: cat2
|
||||
|
||||
- type: Physics
|
||||
shapes:
|
||||
- !type:PhysShapeAabb
|
||||
bounds: "-0.50,-0.25,0.30,0.25"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
@@ -196,7 +131,7 @@
|
||||
- type: entity
|
||||
save: false
|
||||
name: sloth
|
||||
parent: PetBaseMob_Content
|
||||
parent: SimpleMobBase
|
||||
id: SlothMob_Content
|
||||
description: Very slow animal. For people with low energy.
|
||||
drawdepth: Mobs
|
||||
@@ -218,12 +153,10 @@
|
||||
bounds: "-0.45,-0.35,0.15,0.35"
|
||||
mask:
|
||||
- Impassable
|
||||
- MobImpassable
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
- MobImpassable
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: DamageStateVisualizer
|
||||
|
||||
90
Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
Normal file
90
Resources/Prototypes/Entities/Mobs/NPCs/simplemob.yml
Normal file
@@ -0,0 +1,90 @@
|
||||
- type: entity
|
||||
save: false
|
||||
abstract: true
|
||||
id: SimpleMobBase
|
||||
drawdepth: Mobs
|
||||
suffix: AI
|
||||
components:
|
||||
- type: AiController
|
||||
logic: Civilian
|
||||
- type: AiFactionTag
|
||||
factions:
|
||||
- SimpleNeutral
|
||||
- type: MovementSpeedModifier
|
||||
baseWalkSpeed : 4
|
||||
baseSprintSpeed : 4
|
||||
- type: MovedByPressure
|
||||
- type: Barotrauma
|
||||
- type: DamageOnHighSpeedImpact
|
||||
soundHit: /Audio/Effects/hit_kick.ogg
|
||||
- type: InteractionOutline
|
||||
- type: Sprite
|
||||
drawdepth: Mobs
|
||||
- type: Clickable
|
||||
- type: Physics
|
||||
anchored: false
|
||||
mass: 50
|
||||
shapes:
|
||||
- !type:PhysShapeAabb
|
||||
mask:
|
||||
- Impassable
|
||||
# - MobImpassable Turns these off for now since humans don't have collisions either.
|
||||
- VaultImpassable
|
||||
- SmallImpassable
|
||||
layer:
|
||||
- Opaque
|
||||
# - MobImpassable
|
||||
- type: Bloodstream
|
||||
max_volume: 100
|
||||
- type: Damageable
|
||||
damageContainer: biologicalDamageContainer
|
||||
- type: AtmosExposed
|
||||
- type: Flammable
|
||||
fireSpread: true
|
||||
canResistFire: true
|
||||
- type: Temperature
|
||||
heatDamageThreshold: 360
|
||||
coldDamageThreshold: 260
|
||||
currentTemperature: 310.15
|
||||
specificHeat: 42
|
||||
tempDamageCoefficient: 0.1
|
||||
- type: Metabolism
|
||||
metabolismHeat: 5000
|
||||
radiatedHeat: 400
|
||||
implicitHeatRegulation: 5000
|
||||
sweatHeatRegulation: 5000
|
||||
shiveringHeatRegulation: 5000
|
||||
normalBodyTemperature: 310.15
|
||||
thermalRegulationTemperatureThreshold: 25
|
||||
needsGases:
|
||||
Oxygen: 0.00060763888
|
||||
producesGases:
|
||||
Oxygen: 0.00045572916
|
||||
CarbonDioxide: 0.00015190972
|
||||
- type: MobState
|
||||
thresholds:
|
||||
0: !type:NormalMobState {}
|
||||
50: !type:CriticalMobState {}
|
||||
100: !type:DeadMobState {}
|
||||
- type: HeatResistance
|
||||
- type: CombatMode
|
||||
- type: Teleportable
|
||||
- type: Internals
|
||||
- type: Stunnable
|
||||
- type: UnarmedCombat
|
||||
range: 1.5
|
||||
arcwidth: 0
|
||||
arc: bite
|
||||
damage: 50
|
||||
- type: Appearance
|
||||
visuals:
|
||||
- type: BuckleVisualizer
|
||||
- type: FireVisualizer
|
||||
sprite: Mobs/Effects/onfire.rsi
|
||||
normalState: Generic_mob_burning
|
||||
- type: Pullable
|
||||
- type: Buckle
|
||||
- type: Butcherable
|
||||
meat: FoodMeat
|
||||
- type: Recyclable
|
||||
safe: false
|
||||
Reference in New Issue
Block a user