Adds SimpleMobBase for NPCs. (#2932)

* Initial

* Initial2

* Abstraction
This commit is contained in:
Swept
2021-01-07 00:25:06 +00:00
committed by GitHub
parent 2d1fe31bce
commit ff79798c2a
3 changed files with 110 additions and 115 deletions

View File

@@ -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

View File

@@ -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

View 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