aboutsummaryrefslogtreecommitdiff
path: root/data/mobs
diff options
context:
space:
mode:
Diffstat (limited to 'data/mobs')
-rw-r--r--data/mobs/examples/ancient_construct.yaml51
-rw-r--r--data/mobs/examples/bandit.yaml49
-rw-r--r--data/mobs/examples/bioengineer.yaml58
-rw-r--r--data/mobs/examples/client.yaml14
-rw-r--r--data/mobs/examples/corrupted_scientist.yaml53
-rw-r--r--data/mobs/examples/cow.yaml39
-rw-r--r--data/mobs/examples/crawler.yaml45
-rw-r--r--data/mobs/examples/drone.yaml45
-rw-r--r--data/mobs/examples/elite_synth.yaml53
-rw-r--r--data/mobs/examples/enforcer_bot.yaml51
-rw-r--r--data/mobs/examples/estate_broker.yaml5
-rw-r--r--data/mobs/examples/farmer.yaml58
-rw-r--r--data/mobs/examples/feral_cyborg.yaml49
-rw-r--r--data/mobs/examples/general_store_clerk.yaml20
-rw-r--r--data/mobs/examples/ghoul.yaml51
-rw-r--r--data/mobs/examples/goblin.yaml41
-rw-r--r--data/mobs/examples/greater_drone.yaml44
-rw-r--r--data/mobs/examples/guard.yaml22
-rw-r--r--data/mobs/examples/heavy_mech.yaml51
-rw-r--r--data/mobs/examples/iron_sentinel.yaml41
-rw-r--r--data/mobs/examples/lesser_drone.yaml44
-rw-r--r--data/mobs/examples/man.yaml60
-rw-r--r--data/mobs/examples/molten_elemental.yaml51
-rw-r--r--data/mobs/examples/moss_giant.yaml41
-rw-r--r--data/mobs/examples/mutant_rat.yaml51
-rw-r--r--data/mobs/examples/newbie_trainer.yaml14
-rw-r--r--data/mobs/examples/phantom.yaml45
-rw-r--r--data/mobs/examples/plasma_wraith.yaml53
-rw-r--r--data/mobs/examples/psionic_entity.yaml51
-rw-r--r--data/mobs/examples/rat.yaml39
-rw-r--r--data/mobs/examples/sawmill_operator.yaml7
-rw-r--r--data/mobs/examples/scrap_bot.yaml49
-rw-r--r--data/mobs/examples/security_turret.yaml53
-rw-r--r--data/mobs/examples/skeleton.yaml41
-rw-r--r--data/mobs/examples/slug.yaml45
-rw-r--r--data/mobs/examples/solar_panel_frame.yaml43
-rw-r--r--data/mobs/examples/tanner.yaml20
-rw-r--r--data/mobs/examples/titan_sentinel.yaml51
-rw-r--r--data/mobs/examples/veteran_merc.yaml51
-rw-r--r--data/mobs/examples/void_reaper.yaml55
-rw-r--r--data/mobs/examples/war_drone.yaml51
-rw-r--r--data/mobs/examples/weapons_smith.yaml20
-rw-r--r--data/mobs/examples/zombie.yaml43
-rw-r--r--data/mobs/flight_attendant_copy.yaml29
44 files changed, 1051 insertions, 796 deletions
diff --git a/data/mobs/examples/ancient_construct.yaml b/data/mobs/examples/ancient_construct.yaml
index 190e8c2..ab878cd 100644
--- a/data/mobs/examples/ancient_construct.yaml
+++ b/data/mobs/examples/ancient_construct.yaml
@@ -1,31 +1,10 @@
name: ancient construct
description: "An impossibly old machine from before the regression, still operational. Its design is alien even by modern standards, covered in glowing runes that predate recorded history."
-attack: 58
-strength: 62
-defense: 66
-hp: 152
-speed: 4
-aggressive: true
-respawn_ticks: 150
-attack_type: slash
-attack_bonus: 55
-strength_bonus: 55
-stab_defense: 95
-slash_defense: 100
-crush_defense: 85
-science_defense: -40
-ranged_defense: 70
-weakness: chaos
idle_descriptions:
- "etches glowing symbols into the air"
- "reconfigures its form with clicking sounds"
- "projects a holographic star map"
- "emits a resonant chime that shakes the walls"
-combat_descriptions:
- - "slices at %s with a blade of pure light"
- - "unleashes a cascade of ancient energy at %s"
- - "teleports behind %s and strikes"
-size: massive
drops:
remains: scrap
loot:
@@ -45,3 +24,33 @@ drops:
quantity: 3
- table: herb_table_high
weight: 10
+combat:
+ kind: combat
+ stats:
+ hp: 152
+ attack: 58
+ strength: 62
+ defense: 66
+ attack_type: slash
+ speed: 4
+ aggressive: true
+ respawn_ticks: 150
+ bonuses:
+ attack_bonus: 55
+ strength_bonus: 55
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 95
+ slash_defense: 100
+ crush_defense: 85
+ science_defense: -40
+ ranged_defense: 70
+ weakness: chaos
+ size: massive
+ combat_descriptions:
+ - "slices at %s with a blade of pure light"
+ - "unleashes a cascade of ancient energy at %s"
+ - "teleports behind %s and strikes"
diff --git a/data/mobs/examples/bandit.yaml b/data/mobs/examples/bandit.yaml
index 51e4b8e..a3fd3e7 100644
--- a/data/mobs/examples/bandit.yaml
+++ b/data/mobs/examples/bandit.yaml
@@ -1,30 +1,10 @@
name: bandit
description: "A scrappy outlaw with a cybernetic arm and patched armor. He eyes you with predatory intent."
-attack: 10
-strength: 12
-defense: 12
-hp: 28
-speed: 5
-aggressive: true
-respawn_ticks: 30
-attack_type: slash
-attack_bonus: 5
-strength_bonus: 5
-stab_defense: 10
-slash_defense: 15
-crush_defense: 8
-science_defense: -5
-ranged_defense: 12
idle_descriptions:
- "scans the horizon for targets"
- "wipes a blade on his sleeve"
- "spits on the ground"
- "adjusts a cybernetic knuckle"
-combat_descriptions:
- - "slashes at %s with a serrated blade"
- - "delivers a crushing punch with a cybernetic fist"
- - "lunges at %s with a battle cry"
-size: medium
drops:
remains: bones
loot:
@@ -36,3 +16,32 @@ drops:
quantity: 80
- table: herb_table_low
weight: 10
+combat:
+ kind: combat
+ stats:
+ hp: 28
+ attack: 10
+ strength: 12
+ defense: 12
+ attack_type: stab
+ speed: 5
+ aggressive: true
+ respawn_ticks: 30
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ size: medium
+ combat_descriptions:
+ - "slashes at %s with a serrated blade"
+ - "delivers a crushing punch with a cybernetic fist"
+ - "lunges at %s with a battle cry"
diff --git a/data/mobs/examples/bioengineer.yaml b/data/mobs/examples/bioengineer.yaml
index 4761991..d6c9193 100644
--- a/data/mobs/examples/bioengineer.yaml
+++ b/data/mobs/examples/bioengineer.yaml
@@ -1,32 +1,15 @@
name: Bioengineer
description: "A lab-coated scientist carrying a satchel of genetically modified seeds. Her pockets are stuffed with rare specimens."
-combat_descriptions:
- - "jabs a syringe at %s"
- - "is being overpowered by %s"
- - "fights desperately against %s"
idle_descriptions:
- "scribbles notes on a clipboard"
- "carefully inspects a vial of green liquid"
- "adjusts her safety goggles"
- "mutters about gene splicing yields"
-attack: 6
-strength: 4
-defense: 5
-hp: 25
-speed: 5
-aggressive: false
-respawn_ticks: 50
-attack_type: crush
-stab_defense: 0
-slash_defense: 0
-crush_defense: 0
-science_defense: 0
-ranged_defense: 0
-steal_table: bioengineer_steal
-steal_level: 38
-steal_xp: 45
-steal_speed: 4
-size: small
+steal:
+ table: bioengineer_steal
+ level: 38
+ xp: 45
+ speed: 4
drops:
remains: "bones"
loot:
@@ -41,4 +24,33 @@ drops:
quantity: 1
- item_id: "ranarr_seed"
weight: 5
- quantity: 1 \ No newline at end of file
+ quantity: 1
+combat:
+ kind: combat
+ stats:
+ hp: 25
+ attack: 6
+ strength: 4
+ defense: 5
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 50
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ size: small
+ combat_descriptions:
+ - "jabs a syringe at %s"
+ - "is being overpowered by %s"
+ - "fights desperately against %s"
diff --git a/data/mobs/examples/client.yaml b/data/mobs/examples/client.yaml
index 0d5f27d..2442a8a 100644
--- a/data/mobs/examples/client.yaml
+++ b/data/mobs/examples/client.yaml
@@ -1,8 +1,7 @@
-aggressive: false
-attack: 1
-defense: 1
+name: The Client
description: A shadowy figure in a dark coat. They speak in clipped, measured tones and seem to know everything about every creature in the sector.
-hp: 100
+protected: true
+unique: true
idle_descriptions:
- reviews a holographic dossier
- marks a location on a worn star chart
@@ -10,11 +9,6 @@ idle_descriptions:
- mutters coordinates under their breath
- glances at you appraisingly
- taps a data pad with a stylus
-name: The Client
-protected: true
-respawn_ticks: 30
-speed: 5
-strength: 1
talk:
nodes:
assign_task:
@@ -224,5 +218,3 @@ talk:
text: '"Buy spectral visor (75 credits)."'
- goto: start
text: '"Back."'
-unique: true
-size: small
diff --git a/data/mobs/examples/corrupted_scientist.yaml b/data/mobs/examples/corrupted_scientist.yaml
index 2083c03..aeda04d 100644
--- a/data/mobs/examples/corrupted_scientist.yaml
+++ b/data/mobs/examples/corrupted_scientist.yaml
@@ -1,32 +1,10 @@
name: corrupted scientist
description: "A researcher whose mind was consumed by their own experiments. Energy crackles around their fingertips and their lab coat is singed and tattered."
-attack: 1
-strength: 1
-defense: 18
-hp: 40
-science: 50
-speed: 5
-aggressive: true
-respawn_ticks: 45
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 25
-slash_defense: 25
-crush_defense: 20
-science_defense: 35
-ranged_defense: -5
-weakness: eco
idle_descriptions:
- "mutters incomprehensible formulas"
- "energy arcs between their fingers"
- "scribbles equations on the wall in soot"
- "stares at their own hands in horror"
-combat_descriptions:
- - "blasts %s with a burst of unstable energy"
- - "unleashes a wave of chaotic force at %s"
- - "channels raw power through their hands at %s"
-size: medium
drops:
remains: bones
loot:
@@ -41,3 +19,34 @@ drops:
quantity: 2
- table: herb_table_mid
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 40
+ attack: 1
+ strength: 1
+ defense: 18
+ science: 50
+ attack_type: science
+ speed: 5
+ aggressive: true
+ respawn_ticks: 45
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 25
+ slash_defense: 25
+ crush_defense: 20
+ science_defense: 35
+ ranged_defense: -5
+ weakness: eco
+ size: medium
+ combat_descriptions:
+ - "blasts %s with a burst of unstable energy"
+ - "unleashes a wave of chaotic force at %s"
+ - "channels raw power through their hands at %s"
diff --git a/data/mobs/examples/cow.yaml b/data/mobs/examples/cow.yaml
index 7f1ee3c..2171d12 100644
--- a/data/mobs/examples/cow.yaml
+++ b/data/mobs/examples/cow.yaml
@@ -1,24 +1,10 @@
name: cow
description: "A placid dairy cow, chewing cud."
-attack: 1
-strength: 1
-defense: 1
-hp: 8
-speed: 5
-aggressive: false
-respawn_ticks: 30
-attack_type: crush
-stab_defense: 1
-slash_defense: 1
-crush_defense: 1
-science_defense: 0
-ranged_defense: 0
idle_descriptions:
- "moos softly"
- "chews on some grass"
- "swishes its tail lazily"
- "stares at you with big brown eyes"
-size: large
drops:
remains: bones
loot:
@@ -26,3 +12,28 @@ drops:
weight: 100
- item_id: raw_beef
weight: 100
+combat:
+ kind: combat
+ stats:
+ hp: 8
+ attack: 1
+ strength: 1
+ defense: 1
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 30
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 1
+ slash_defense: 1
+ crush_defense: 1
+ science_defense: 0
+ ranged_defense: 0
+ size: large
diff --git a/data/mobs/examples/crawler.yaml b/data/mobs/examples/crawler.yaml
index 9021c51..55d8f6f 100644
--- a/data/mobs/examples/crawler.yaml
+++ b/data/mobs/examples/crawler.yaml
@@ -1,24 +1,10 @@
name: crawler
description: "A heavily armored bio-mechanical creature with a chitinous exoskeleton. Its regenerative biology prevents death unless dissolved with acid."
-assassin_level: 30
-finishing_blow: acid_vial
-attack: 25
-strength: 22
-defense: 30
-hp: 80
-speed: 5
-aggressive: false
-respawn_ticks: 45
idle_descriptions:
- "scrapes its mandibles together menacingly"
- "clicks and chitters in an alien rhythm"
- "tests the air with feathered antennae"
- "coils its segmented body defensively"
-combat_descriptions:
- - "snaps its mandibles at %s"
- - "lashes out with a barbed tail at %s"
- - "charges headlong into %s"
-size: large
drops:
remains: chitin_plate
loot:
@@ -30,3 +16,34 @@ drops:
- item_id: credits
weight: 20
quantity: 500
+combat:
+ kind: combat
+ stats:
+ hp: 80
+ attack: 25
+ strength: 22
+ defense: 30
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 45
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ assassin_level: 30
+ finishing_blow: acid_vial
+ size: large
+ combat_descriptions:
+ - "snaps its mandibles at %s"
+ - "lashes out with a barbed tail at %s"
+ - "charges headlong into %s"
diff --git a/data/mobs/examples/drone.yaml b/data/mobs/examples/drone.yaml
index 5ac6552..08091f5 100644
--- a/data/mobs/examples/drone.yaml
+++ b/data/mobs/examples/drone.yaml
@@ -1,24 +1,10 @@
name: drone
description: "A malfunctioning security drone crackling with electrical discharge. Its attacks are especially dangerous to anyone not wearing insulated gloves."
-assassin_level: 15
-damage_without: insulated_gloves
-attack: 15
-strength: 14
-defense: 12
-hp: 45
-speed: 4
-aggressive: true
-respawn_ticks: 35
idle_descriptions:
- "hovers erratically, sparking"
- "emits a high-pitched whine"
- "scans the area with a flickering red beam"
- "rotates its weapon array with a mechanical click"
-combat_descriptions:
- - "fires an electrical bolt at %s"
- - "charges its capacitors and zaps %s"
- - "swoops down on %s with crackling energy"
-size: small
drops:
remains: circuit_board
loot:
@@ -30,3 +16,34 @@ drops:
- item_id: credits
weight: 15
quantity: 200
+combat:
+ kind: combat
+ stats:
+ hp: 45
+ attack: 15
+ strength: 14
+ defense: 12
+ attack_type: crush
+ speed: 4
+ aggressive: true
+ respawn_ticks: 35
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ assassin_level: 15
+ damage_without: insulated_gloves
+ size: small
+ combat_descriptions:
+ - "fires an electrical bolt at %s"
+ - "charges its capacitors and zaps %s"
+ - "swoops down on %s with crackling energy"
diff --git a/data/mobs/examples/elite_synth.yaml b/data/mobs/examples/elite_synth.yaml
index b095716..9628572 100644
--- a/data/mobs/examples/elite_synth.yaml
+++ b/data/mobs/examples/elite_synth.yaml
@@ -1,32 +1,10 @@
name: elite synth
description: "A sleek combat android with glowing blue optics and a compact energy weapon. Its chassis is polished alloy and its movements are disturbingly fluid."
-attack: 1
-strength: 1
-defense: 38
-hp: 104
-science: 65
-speed: 4
-aggressive: true
-respawn_ticks: 75
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 45
-slash_defense: 45
-crush_defense: 40
-science_defense: 55
-ranged_defense: -15
-weakness: chaos
idle_descriptions:
- "calibrates targeting sensors with a soft chime"
- "projects a holographic tactical display"
- "emits a binary chirp"
- "reconfigures its weapon array silently"
-combat_descriptions:
- - "unleashes a coherent energy beam at %s"
- - "fires a pulse of disruptor energy at %s"
- - "overloads its emitters and blasts %s"
-size: medium
drops:
remains: circuit_board
loot:
@@ -41,3 +19,34 @@ drops:
quantity: 3
- table: gem_table
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 104
+ attack: 1
+ strength: 1
+ defense: 38
+ science: 65
+ attack_type: science
+ speed: 4
+ aggressive: true
+ respawn_ticks: 75
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 45
+ slash_defense: 45
+ crush_defense: 40
+ science_defense: 55
+ ranged_defense: -15
+ weakness: chaos
+ size: medium
+ combat_descriptions:
+ - "unleashes a coherent energy beam at %s"
+ - "fires a pulse of disruptor energy at %s"
+ - "overloads its emitters and blasts %s"
diff --git a/data/mobs/examples/enforcer_bot.yaml b/data/mobs/examples/enforcer_bot.yaml
index 78150c3..efdd698 100644
--- a/data/mobs/examples/enforcer_bot.yaml
+++ b/data/mobs/examples/enforcer_bot.yaml
@@ -1,31 +1,10 @@
name: enforcer bot
description: "A heavy riot control automaton with impact shields and a shock baton. It moves with deliberate, crushing steps."
-attack: 30
-strength: 35
-defense: 32
-hp: 70
-speed: 5
-aggressive: true
-respawn_ticks: 55
-attack_type: crush
-attack_bonus: 25
-strength_bonus: 25
-stab_defense: 40
-slash_defense: 40
-crush_defense: 50
-science_defense: -15
-ranged_defense: 30
-weakness: solar
idle_descriptions:
- "patrols the area with heavy footsteps"
- "deploys its riot shield with a hiss"
- "announces a warning in garbled speech"
- "tests its shock baton against a wall"
-combat_descriptions:
- - "smashes %s with a shock baton"
- - "slams its riot shield into %s"
- - "delivers a stunning blow to %s"
-size: large
drops:
remains: scrap
loot:
@@ -40,3 +19,33 @@ drops:
quantity: 800
- table: gem_table
weight: 5
+combat:
+ kind: combat
+ stats:
+ hp: 70
+ attack: 30
+ strength: 35
+ defense: 32
+ attack_type: crush
+ speed: 5
+ aggressive: true
+ respawn_ticks: 55
+ bonuses:
+ attack_bonus: 25
+ strength_bonus: 25
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 40
+ slash_defense: 40
+ crush_defense: 50
+ science_defense: -15
+ ranged_defense: 30
+ weakness: solar
+ size: large
+ combat_descriptions:
+ - "smashes %s with a shock baton"
+ - "slams its riot shield into %s"
+ - "delivers a stunning blow to %s"
diff --git a/data/mobs/examples/estate_broker.yaml b/data/mobs/examples/estate_broker.yaml
index b095214..e95c3a7 100644
--- a/data/mobs/examples/estate_broker.yaml
+++ b/data/mobs/examples/estate_broker.yaml
@@ -1,6 +1,6 @@
-color: "E3"
description: A sharply-dressed real estate agent with a datapad and a practiced smile.
-idle: The estate broker flashes a professional smile.
+idle_descriptions:
+ - flashes a professional smile
name: estate broker
protected: true
talk:
@@ -57,4 +57,3 @@ talk:
- goto: info
text: What do I get with a house?
unique: true
-size: small
diff --git a/data/mobs/examples/farmer.yaml b/data/mobs/examples/farmer.yaml
index 591f1a3..8e72ac2 100644
--- a/data/mobs/examples/farmer.yaml
+++ b/data/mobs/examples/farmer.yaml
@@ -1,32 +1,15 @@
name: Farmer
description: "A weathered farmer in muddy overalls, pockets bulging with seeds."
-combat_descriptions:
- - "swings a shovel at %s"
- - "is getting beaten by %s"
- - "grapples with %s"
idle_descriptions:
- "examines a handful of seeds"
- "wipes dirt from his hands"
- "mutters about the growing season"
- "adjusts his wide-brimmed hat"
-attack: 3
-strength: 3
-defense: 3
-hp: 15
-speed: 5
-aggressive: false
-respawn_ticks: 40
-attack_type: crush
-stab_defense: 0
-slash_defense: 0
-crush_defense: 0
-science_defense: 0
-ranged_defense: 0
-steal_table: farmer_steal
-steal_level: 10
-steal_xp: 15
-steal_speed: 4
-size: small
+steal:
+ table: farmer_steal
+ level: 10
+ xp: 15
+ speed: 4
drops:
remains: "bones"
loot:
@@ -41,4 +24,33 @@ drops:
quantity: 2
- item_id: "tomato_seed"
weight: 10
- quantity: 1 \ No newline at end of file
+ quantity: 1
+combat:
+ kind: combat
+ stats:
+ hp: 15
+ attack: 3
+ strength: 3
+ defense: 3
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 40
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ size: small
+ combat_descriptions:
+ - "swings a shovel at %s"
+ - "is getting beaten by %s"
+ - "grapples with %s"
diff --git a/data/mobs/examples/feral_cyborg.yaml b/data/mobs/examples/feral_cyborg.yaml
index 8b30cc3..e5edf3d 100644
--- a/data/mobs/examples/feral_cyborg.yaml
+++ b/data/mobs/examples/feral_cyborg.yaml
@@ -1,30 +1,10 @@
name: feral cyborg
description: "A heavily augmented human whose implants have driven them to madness. Razor-sharp blades extend from their forearms and their optical implant glows red."
-attack: 34
-strength: 36
-defense: 32
-hp: 82
-speed: 4
-aggressive: true
-respawn_ticks: 50
-attack_type: slash
-attack_bonus: 30
-strength_bonus: 28
-stab_defense: 35
-slash_defense: 45
-crush_defense: 30
-science_defense: -10
-ranged_defense: 35
idle_descriptions:
- "paces back and forth, muttering"
- "retracts and extends forearm blades"
- "emits a distorted laugh"
- "scratches at their own cybernetics"
-combat_descriptions:
- - "slashes %s with forearm blades"
- - "delivers a powered kick to %s"
- - "grapples %s with augmented strength"
-size: medium
drops:
remains: bones
loot:
@@ -36,3 +16,32 @@ drops:
quantity: 3
- table: herb_table_mid
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 82
+ attack: 34
+ strength: 36
+ defense: 32
+ attack_type: slash
+ speed: 4
+ aggressive: true
+ respawn_ticks: 50
+ bonuses:
+ attack_bonus: 30
+ strength_bonus: 28
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 35
+ slash_defense: 45
+ crush_defense: 30
+ science_defense: -10
+ ranged_defense: 35
+ size: medium
+ combat_descriptions:
+ - "slashes %s with forearm blades"
+ - "delivers a powered kick to %s"
+ - "grapples %s with augmented strength"
diff --git a/data/mobs/examples/general_store_clerk.yaml b/data/mobs/examples/general_store_clerk.yaml
index bee395d..489ed28 100644
--- a/data/mobs/examples/general_store_clerk.yaml
+++ b/data/mobs/examples/general_store_clerk.yaml
@@ -1,24 +1,12 @@
-aggressive: false
-attack: 1
-attack_type: crush
-crush_defense: 0
-defense: 1
+name: Shopkeeper
description: A friendly merchant with a tidy apron, standing behind a well-stocked counter.
-hp: 50
+protected: true
+unique: true
idle_descriptions:
- arranges items on the shelves
- polishes the counter
- counts credits in the register
- greets a passerby with a nod
-name: Shopkeeper
-protected: true
-ranged_defense: 0
-respawn_ticks: 30
-science_defense: 0
-slash_defense: 0
-speed: 5
-stab_defense: 0
-strength: 1
shop:
message: '"Welcome to the General Store! Have a look around."'
items:
@@ -49,5 +37,3 @@ talk:
- '"Welcome to the General Store! Type ''list'' to see my wares."'
options:
- text: '"Goodbye."'
-unique: true
-size: small
diff --git a/data/mobs/examples/ghoul.yaml b/data/mobs/examples/ghoul.yaml
index ae8fed6..070d6f1 100644
--- a/data/mobs/examples/ghoul.yaml
+++ b/data/mobs/examples/ghoul.yaml
@@ -1,31 +1,10 @@
name: ghoul
description: "A radiation-scarred crew member, barely recognizable as human. Its flesh glows faintly and its eyes are hollow sockets."
-attack: 22
-strength: 22
-defense: 20
-hp: 54
-speed: 4
-aggressive: true
-respawn_ticks: 35
-attack_type: crush
-attack_bonus: 15
-strength_bonus: 12
-stab_defense: 20
-slash_defense: 25
-crush_defense: 15
-science_defense: -5
-ranged_defense: 20
-weakness: hydro
idle_descriptions:
- "shambles aimlessly and moans"
- "scratches at the walls leaving glowing marks"
- "stares blankly into the darkness"
- "emits a low, rattling groan"
-combat_descriptions:
- - "claws at %s with irradiated hands"
- - "lunges at %s with a gurgling shriek"
- - "bites %s with decaying teeth"
-size: medium
drops:
remains: bones
loot:
@@ -36,3 +15,33 @@ drops:
weight: 25
- table: herb_table_low
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 54
+ attack: 22
+ strength: 22
+ defense: 20
+ attack_type: crush
+ speed: 4
+ aggressive: true
+ respawn_ticks: 35
+ bonuses:
+ attack_bonus: 15
+ strength_bonus: 12
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 20
+ slash_defense: 25
+ crush_defense: 15
+ science_defense: -5
+ ranged_defense: 20
+ weakness: hydro
+ size: medium
+ combat_descriptions:
+ - "claws at %s with irradiated hands"
+ - "lunges at %s with a gurgling shriek"
+ - "bites %s with decaying teeth"
diff --git a/data/mobs/examples/goblin.yaml b/data/mobs/examples/goblin.yaml
index a02c112..23a5f77 100644
--- a/data/mobs/examples/goblin.yaml
+++ b/data/mobs/examples/goblin.yaml
@@ -1,26 +1,10 @@
name: goblin
description: "A small green-skinned goblin with a rusty blade."
-attack: 1
-strength: 3
-defense: 3
-hp: 12
-speed: 5
-aggressive: true
-respawn_ticks: 25
-attack_type: slash
-attack_bonus: 3
-strength_bonus: 2
-stab_defense: 4
-slash_defense: 3
-crush_defense: -2
-science_defense: 0
-ranged_defense: 3
idle_descriptions:
- "mutters something unintelligible"
- "waves a rusty blade around"
- "picks its nose"
- "kicks a pebble"
-size: small
drops:
remains: bones
loot:
@@ -30,3 +14,28 @@ drops:
- item_id: credits
weight: 20
quantity: 25
+combat:
+ kind: combat
+ stats:
+ hp: 12
+ attack: 1
+ strength: 3
+ defense: 3
+ attack_type: slash
+ speed: 5
+ aggressive: true
+ respawn_ticks: 25
+ bonuses:
+ attack_bonus: 3
+ strength_bonus: 2
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 4
+ slash_defense: 3
+ crush_defense: -2
+ science_defense: 0
+ ranged_defense: 3
+ size: small
diff --git a/data/mobs/examples/greater_drone.yaml b/data/mobs/examples/greater_drone.yaml
index 11cf8e2..93993ea 100644
--- a/data/mobs/examples/greater_drone.yaml
+++ b/data/mobs/examples/greater_drone.yaml
@@ -1,28 +1,10 @@
name: greater drone
description: "A large, heavily armored drone with multiple energy emitters. Red warning lights pulse along its hull."
-attack: 1
-strength: 1
-defense: 30
-hp: 120
-ranged: 0
-science: 40
-speed: 4
-aggressive: true
-respawn_ticks: 80
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 55
-slash_defense: 55
-crush_defense: 50
-science_defense: 40
-ranged_defense: -20
idle_descriptions:
- "projects a defensive energy shield"
- "recalibrates its targeting array"
- "emits a warning klaxon"
- "deploys sensor probes"
-size: medium
drops:
loot:
- item_id: scrap
@@ -31,3 +13,29 @@ drops:
- item_id: credits
weight: 60
quantity: 1500
+combat:
+ kind: combat
+ stats:
+ hp: 120
+ attack: 1
+ strength: 1
+ defense: 30
+ science: 40
+ attack_type: science
+ speed: 4
+ aggressive: true
+ respawn_ticks: 80
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 55
+ slash_defense: 55
+ crush_defense: 50
+ science_defense: 40
+ ranged_defense: -20
+ size: medium
diff --git a/data/mobs/examples/guard.yaml b/data/mobs/examples/guard.yaml
index cba448b..bd20f24 100644
--- a/data/mobs/examples/guard.yaml
+++ b/data/mobs/examples/guard.yaml
@@ -1,26 +1,12 @@
-aggressive: false
-attack: 5
-attack_bonus: 8
-attack_type: slash
-crush_defense: 10
-defense: 5
+name: Guard
description: A stern-looking guard in weathered armor.
-hp: 30
+unique: true
+protected: true
idle_descriptions:
- scans the area with a watchful eye
- adjusts the grip on his weapon
- nods curtly at passersby
- leans against the gate, arms folded
-name: Guard
-protected: true
-ranged_defense: 12
-respawn_ticks: 60
-science_defense: -5
-slash_defense: 15
-speed: 5
-stab_defense: 12
-strength: 5
-strength_bonus: 6
talk:
nodes:
about_gate:
@@ -71,5 +57,3 @@ talk:
- '"Good quality ore. This''ll do." He stamps a slip of paper and hands it to you. "That''s your pass. Don''t lose it."'
options:
- text: '"Thanks."'
-unique: true
-size: medium
diff --git a/data/mobs/examples/heavy_mech.yaml b/data/mobs/examples/heavy_mech.yaml
index e2f5f5a..669c444 100644
--- a/data/mobs/examples/heavy_mech.yaml
+++ b/data/mobs/examples/heavy_mech.yaml
@@ -1,31 +1,10 @@
name: heavy mech
description: "A lumbering assault mech with layered armor plating and a rotary cannon arm. Steam vents from its exhaust ports with each step."
-attack: 40
-strength: 44
-defense: 44
-hp: 94
-speed: 5
-aggressive: true
-respawn_ticks: 70
-attack_type: crush
-attack_bonus: 35
-strength_bonus: 35
-stab_defense: 55
-slash_defense: 55
-crush_defense: 65
-science_defense: -25
-ranged_defense: 40
-weakness: solar
idle_descriptions:
- "scans the room with a blue optical beam"
- "vents a cloud of steam"
- "rotates its cannon with a mechanical whine"
- "announces a threat level assessment"
-combat_descriptions:
- - "fires its rotary cannon at %s"
- - "smashes %s with a hydraulic fist"
- - "unleashes a missile salvo at %s"
-size: massive
drops:
remains: scrap
loot:
@@ -40,3 +19,33 @@ drops:
- item_id: lawjunk
weight: 10
quantity: 2
+combat:
+ kind: combat
+ stats:
+ hp: 94
+ attack: 40
+ strength: 44
+ defense: 44
+ attack_type: crush
+ speed: 5
+ aggressive: true
+ respawn_ticks: 70
+ bonuses:
+ attack_bonus: 35
+ strength_bonus: 35
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 55
+ slash_defense: 55
+ crush_defense: 65
+ science_defense: -25
+ ranged_defense: 40
+ weakness: solar
+ size: massive
+ combat_descriptions:
+ - "fires its rotary cannon at %s"
+ - "smashes %s with a hydraulic fist"
+ - "unleashes a missile salvo at %s"
diff --git a/data/mobs/examples/iron_sentinel.yaml b/data/mobs/examples/iron_sentinel.yaml
index bf8b9b5..48b2dbe 100644
--- a/data/mobs/examples/iron_sentinel.yaml
+++ b/data/mobs/examples/iron_sentinel.yaml
@@ -1,26 +1,10 @@
name: iron sentinel
description: "A massive bipedal automaton forged from pre-regression alloys. Its joints grind with each deliberate step."
-attack: 25
-strength: 30
-defense: 45
-hp: 180
-speed: 6
-aggressive: true
-respawn_ticks: 100
-attack_type: crush
-attack_bonus: 40
-strength_bonus: 35
-stab_defense: 80
-slash_defense: 80
-crush_defense: 70
-science_defense: -30
-ranged_defense: 50
idle_descriptions:
- "stands motionless, servos whining softly"
- "turns its armored head with a mechanical grind"
- "vents steam from exhaust ports"
- "scans the area with a red optical sensor"
-size: large
drops:
loot:
- item_id: scrap
@@ -29,3 +13,28 @@ drops:
- item_id: credits
weight: 60
quantity: 5000
+combat:
+ kind: combat
+ stats:
+ hp: 180
+ attack: 25
+ strength: 30
+ defense: 45
+ attack_type: crush
+ speed: 6
+ aggressive: true
+ respawn_ticks: 100
+ bonuses:
+ attack_bonus: 40
+ strength_bonus: 35
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 80
+ slash_defense: 80
+ crush_defense: 70
+ science_defense: -30
+ ranged_defense: 50
+ size: large
diff --git a/data/mobs/examples/lesser_drone.yaml b/data/mobs/examples/lesser_drone.yaml
index c9e50a5..d9c452d 100644
--- a/data/mobs/examples/lesser_drone.yaml
+++ b/data/mobs/examples/lesser_drone.yaml
@@ -1,28 +1,10 @@
name: lesser drone
description: "A floating metallic drone with a pulsing energy core. Its surface crackles with electric discharge."
-attack: 1
-strength: 1
-defense: 18
-hp: 55
-ranged: 0
-science: 20
-speed: 4
-aggressive: true
-respawn_ticks: 50
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 35
-slash_defense: 35
-crush_defense: 30
-science_defense: 20
-ranged_defense: -10
idle_descriptions:
- "hovers silently, scanning the area"
- "emits a low electronic hum"
- "projects a thin beam of light across the floor"
- "rotates slowly in place"
-size: small
drops:
loot:
- item_id: scrap
@@ -30,3 +12,29 @@ drops:
- item_id: credits
weight: 40
quantity: 300
+combat:
+ kind: combat
+ stats:
+ hp: 55
+ attack: 1
+ strength: 1
+ defense: 18
+ science: 20
+ attack_type: science
+ speed: 4
+ aggressive: true
+ respawn_ticks: 50
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 35
+ slash_defense: 35
+ crush_defense: 30
+ science_defense: 20
+ ranged_defense: -10
+ size: small
diff --git a/data/mobs/examples/man.yaml b/data/mobs/examples/man.yaml
index 8478f41..ec3624c 100644
--- a/data/mobs/examples/man.yaml
+++ b/data/mobs/examples/man.yaml
@@ -1,11 +1,5 @@
name: man
description: "A shabby-looking man loitering in the town square."
-combat_descriptions:
- - "is engaged in a fight to the death with %s"
- - "is getting pummelled by %s"
- - "is locked in combat with %s"
- - "trades blows with %s"
- - "circles warily around %s"
idle_descriptions:
- "scribbles something in a small notebook"
- "gazes skyward at the clouds"
@@ -13,24 +7,11 @@ idle_descriptions:
- "scratches his head thoughtfully"
- "stares off into the distance"
- "adjusts his tunic and stretches"
-attack: 1
-strength: 1
-defense: 1
-hp: 7
-speed: 5
-aggressive: false
-respawn_ticks: 30
-steal_table: man_steal
-steal_level: 1
-steal_xp: 8
-steal_speed: 4
-attack_type: crush
-stab_defense: 0
-slash_defense: 0
-crush_defense: 0
-science_defense: 0
-ranged_defense: 0
-size: small
+steal:
+ table: man_steal
+ level: 1
+ xp: 8
+ speed: 4
drops:
remains: "bones"
loot:
@@ -46,3 +27,34 @@ drops:
weight: 4
- item_id: "grimy_tarromin"
weight: 2
+combat:
+ kind: combat
+ stats:
+ hp: 7
+ attack: 1
+ strength: 1
+ defense: 1
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 30
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ crush_defense: 0
+ ranged_defense: 0
+ science_defense: 0
+ slash_defense: 0
+ stab_defense: 0
+ size: small
+ combat_descriptions:
+ - "is engaged in a fight to the death with %s"
+ - "is getting pummelled by %s"
+ - "is locked in combat with %s"
+ - "trades blows with %s"
+ - "circles warily around %s"
diff --git a/data/mobs/examples/molten_elemental.yaml b/data/mobs/examples/molten_elemental.yaml
index 9c46ccb..3c9b023 100644
--- a/data/mobs/examples/molten_elemental.yaml
+++ b/data/mobs/examples/molten_elemental.yaml
@@ -1,31 +1,10 @@
name: molten elemental
description: "A flowing mass of liquid metal and superheated slag, roughly humanoid. The air around it shimmers with heat and droplets of molten alloy drip to the floor."
-attack: 48
-strength: 52
-defense: 52
-hp: 115
-speed: 5
-aggressive: true
-respawn_ticks: 80
-attack_type: crush
-attack_bonus: 40
-strength_bonus: 42
-stab_defense: 60
-slash_defense: 60
-crush_defense: 70
-science_defense: -30
-ranged_defense: 45
-weakness: hydro
idle_descriptions:
- "bubbles and churns, throwing off sparks"
- "melts a nearby chunk of metal absent-mindedly"
- "pulses with an inner orange glow"
- "drips glowing droplets onto the floor"
-combat_descriptions:
- - "hurls a glob of molten metal at %s"
- - "engulfs %s in a wave of liquid fire"
- - "smashes %s with a superheated limb"
-size: large
drops:
remains: scrap
loot:
@@ -40,3 +19,33 @@ drops:
quantity: 2
- table: herb_table_high
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 115
+ attack: 48
+ strength: 52
+ defense: 52
+ attack_type: crush
+ speed: 5
+ aggressive: true
+ respawn_ticks: 80
+ bonuses:
+ attack_bonus: 40
+ strength_bonus: 42
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 60
+ slash_defense: 60
+ crush_defense: 70
+ science_defense: -30
+ ranged_defense: 45
+ weakness: hydro
+ size: large
+ combat_descriptions:
+ - "hurls a glob of molten metal at %s"
+ - "engulfs %s in a wave of liquid fire"
+ - "smashes %s with a superheated limb"
diff --git a/data/mobs/examples/moss_giant.yaml b/data/mobs/examples/moss_giant.yaml
index f19f0a3..9b07a37 100644
--- a/data/mobs/examples/moss_giant.yaml
+++ b/data/mobs/examples/moss_giant.yaml
@@ -1,26 +1,10 @@
name: moss giant
description: "A towering creature covered in moss and vines, its rocky skin dripping with moisture."
-attack: 12
-strength: 14
-defense: 10
-hp: 60
-speed: 7
-aggressive: true
-respawn_ticks: 45
-attack_type: crush
-attack_bonus: 10
-strength_bonus: 12
-stab_defense: 15
-slash_defense: 12
-crush_defense: 18
-science_defense: -5
-ranged_defense: 15
idle_descriptions:
- "surveys its territory with dull eyes"
- "pulls a vine from its shoulder"
- "stamps the ground, sending tremors"
- "scratches its mossy hide"
-size: massive
drops:
remains: bones
loot:
@@ -30,3 +14,28 @@ drops:
- item_id: credits
weight: 50
quantity: 500
+combat:
+ kind: combat
+ stats:
+ hp: 60
+ attack: 12
+ strength: 14
+ defense: 10
+ attack_type: crush
+ speed: 7
+ aggressive: true
+ respawn_ticks: 45
+ bonuses:
+ attack_bonus: 10
+ strength_bonus: 12
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 15
+ slash_defense: 12
+ crush_defense: 18
+ science_defense: -5
+ ranged_defense: 15
+ size: massive
diff --git a/data/mobs/examples/mutant_rat.yaml b/data/mobs/examples/mutant_rat.yaml
index 7836ef9..676b510 100644
--- a/data/mobs/examples/mutant_rat.yaml
+++ b/data/mobs/examples/mutant_rat.yaml
@@ -1,31 +1,10 @@
name: mutant rat
description: "A bloated rodent with glowing green eyes and exposed muscle tissue. Bio-engineering runoff has made it unnaturally aggressive."
-attack: 13
-strength: 13
-defense: 12
-hp: 32
-speed: 4
-aggressive: true
-respawn_ticks: 25
-attack_type: crush
-attack_bonus: 8
-strength_bonus: 6
-stab_defense: 15
-slash_defense: 15
-crush_defense: 10
-science_defense: -10
-ranged_defense: 5
-weakness: bio
idle_descriptions:
- "scurries frantically in circles"
- "gnaws on a rusted pipe"
- "emits a gurgling screech"
- "twitches unnaturally"
-combat_descriptions:
- - "bites %s with glowing teeth"
- - "slashes %s with mutated claws"
- - "lunges at %s with unnatural speed"
-size: small
drops:
remains: bones
loot:
@@ -37,3 +16,33 @@ drops:
- item_id: credits
weight: 10
quantity: 60
+combat:
+ kind: combat
+ stats:
+ hp: 32
+ attack: 13
+ strength: 13
+ defense: 12
+ attack_type: crush
+ speed: 4
+ aggressive: true
+ respawn_ticks: 25
+ bonuses:
+ attack_bonus: 8
+ strength_bonus: 6
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 15
+ slash_defense: 15
+ crush_defense: 10
+ science_defense: -10
+ ranged_defense: 5
+ weakness: bio
+ size: small
+ combat_descriptions:
+ - "bites %s with glowing teeth"
+ - "slashes %s with mutated claws"
+ - "lunges at %s with unnatural speed"
diff --git a/data/mobs/examples/newbie_trainer.yaml b/data/mobs/examples/newbie_trainer.yaml
index 3897dba..eddb0e9 100644
--- a/data/mobs/examples/newbie_trainer.yaml
+++ b/data/mobs/examples/newbie_trainer.yaml
@@ -2,19 +2,6 @@ name: Newbie Trainer
description: "A friendly-looking instructor ready to help new adventurers."
unique: true
protected: true
-attack: 1
-strength: 1
-defense: 1
-hp: 50
-speed: 5
-aggressive: false
-respawn_ticks: 30
-attack_type: crush
-stab_defense: 0
-slash_defense: 0
-crush_defense: 0
-science_defense: 0
-ranged_defense: 0
idle_descriptions:
- "reviews a training manual"
- "adjusts a practice dummy"
@@ -22,4 +9,3 @@ idle_descriptions:
- "offers a friendly nod to passersby"
- "polishes a wooden shield"
- "checks a stopwatch and jots something down"
-size: small
diff --git a/data/mobs/examples/phantom.yaml b/data/mobs/examples/phantom.yaml
index d871b76..fad8167 100644
--- a/data/mobs/examples/phantom.yaml
+++ b/data/mobs/examples/phantom.yaml
@@ -1,24 +1,10 @@
name: phantom
description: "A semi-transparent entity that phases in and out of visible light. Its psychic attacks are devastating to anyone without a spectral visor."
-assassin_level: 45
-damage_without: spectral_visor
-attack: 35
-strength: 30
-defense: 25
-hp: 100
-speed: 3
-aggressive: true
-respawn_ticks: 50
idle_descriptions:
- "flickers between visible and invisible"
- "emits a low, resonant hum"
- "drifts through a wall and back again"
- "stares at you with hollow, glowing eyes"
-combat_descriptions:
- - "blasts %s with a psychic wave"
- - "phases through %s's defenses"
- - "unleashes a spectral shriek at %s"
-size: medium
drops:
remains: ectoplasm
loot:
@@ -30,3 +16,34 @@ drops:
- item_id: credits
weight: 37
quantity: 1000
+combat:
+ kind: combat
+ stats:
+ hp: 100
+ attack: 35
+ strength: 30
+ defense: 25
+ attack_type: crush
+ speed: 3
+ aggressive: true
+ respawn_ticks: 50
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ assassin_level: 45
+ damage_without: spectral_visor
+ size: medium
+ combat_descriptions:
+ - "blasts %s with a psychic wave"
+ - "phases through %s's defenses"
+ - "unleashes a spectral shriek at %s"
diff --git a/data/mobs/examples/plasma_wraith.yaml b/data/mobs/examples/plasma_wraith.yaml
index c4ced2b..7241d9a 100644
--- a/data/mobs/examples/plasma_wraith.yaml
+++ b/data/mobs/examples/plasma_wraith.yaml
@@ -1,32 +1,10 @@
name: plasma wraith
description: "A shimmering entity of contained plasma, vaguely humanoid in shape. It radiates intense heat and hums with barely contained energy."
-attack: 1
-strength: 1
-defense: 22
-hp: 56
-science: 65
-speed: 4
-aggressive: true
-respawn_ticks: 60
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 30
-slash_defense: 30
-crush_defense: 25
-science_defense: 45
-ranged_defense: -10
-weakness: hydro
idle_descriptions:
- "drifts silently, leaving heat shimmer in its wake"
- "pulses with internal light"
- "phases partially through a wall"
- "emits a low frequency hum"
-combat_descriptions:
- - "lashes %s with a whip of plasma"
- - "engulfs %s in a superheated cloud"
- - "discharges a concentrated beam at %s"
-size: medium
drops:
remains: ectoplasm
loot:
@@ -41,3 +19,34 @@ drops:
quantity: 2
- table: gem_table
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 56
+ attack: 1
+ strength: 1
+ defense: 22
+ science: 65
+ attack_type: science
+ speed: 4
+ aggressive: true
+ respawn_ticks: 60
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 30
+ slash_defense: 30
+ crush_defense: 25
+ science_defense: 45
+ ranged_defense: -10
+ weakness: hydro
+ size: medium
+ combat_descriptions:
+ - "lashes %s with a whip of plasma"
+ - "engulfs %s in a superheated cloud"
+ - "discharges a concentrated beam at %s"
diff --git a/data/mobs/examples/psionic_entity.yaml b/data/mobs/examples/psionic_entity.yaml
index 1c518bf..1f270e6 100644
--- a/data/mobs/examples/psionic_entity.yaml
+++ b/data/mobs/examples/psionic_entity.yaml
@@ -1,31 +1,10 @@
name: psionic entity
description: "A barely visible distortion in the air, only detectable by the pressure it exerts on your mind. When it focuses, you see a shimmering outline of something vast and ancient."
-attack: 1
-strength: 1
-defense: 42
-hp: 128
-science: 97
-speed: 4
-aggressive: true
-respawn_ticks: 100
-attack_type: science
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 50
-slash_defense: 50
-crush_defense: 45
-science_defense: 70
-ranged_defense: -20
idle_descriptions:
- "probes the edges of your consciousness"
- "flickers between visible and invisible states"
- "emits a subsonic pulse you feel in your teeth"
- "momentarily shows you visions of another dimension"
-combat_descriptions:
- - "assaults %s's mind with psionic force"
- - "tears at %s's perception of reality"
- - "unleashes a devastating mental blast at %s"
-size: large
drops:
remains: ectoplasm
loot:
@@ -44,3 +23,33 @@ drops:
weight: 5
- table: herb_table_high
weight: 5
+combat:
+ kind: combat
+ stats:
+ hp: 128
+ attack: 1
+ strength: 1
+ defense: 42
+ science: 97
+ attack_type: science
+ speed: 4
+ aggressive: true
+ respawn_ticks: 100
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 50
+ slash_defense: 50
+ crush_defense: 45
+ science_defense: 70
+ ranged_defense: -20
+ size: large
+ combat_descriptions:
+ - "assaults %s's mind with psionic force"
+ - "tears at %s's perception of reality"
+ - "unleashes a devastating mental blast at %s"
diff --git a/data/mobs/examples/rat.yaml b/data/mobs/examples/rat.yaml
index 4265674..7a92026 100644
--- a/data/mobs/examples/rat.yaml
+++ b/data/mobs/examples/rat.yaml
@@ -1,22 +1,33 @@
name: rat
description: "A large, mangy rat with beady red eyes."
-attack: 1
-strength: 1
-defense: 1
-hp: 2
-speed: 4
-aggressive: false
-respawn_ticks: 20
-attack_type: crush
-stab_defense: 0
-slash_defense: 0
-crush_defense: 0
-science_defense: 0
-ranged_defense: 0
idle_descriptions:
- "sniffs around the ground"
- "nibbles on something"
- "scurries in circles"
-size: small
drops:
remains: bones
+combat:
+ kind: combat
+ stats:
+ hp: 2
+ attack: 1
+ strength: 1
+ defense: 1
+ attack_type: crush
+ speed: 4
+ aggressive: false
+ respawn_ticks: 20
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ crush_defense: 0
+ ranged_defense: 0
+ science_defense: 0
+ slash_defense: 0
+ stab_defense: 0
+ size: small
diff --git a/data/mobs/examples/sawmill_operator.yaml b/data/mobs/examples/sawmill_operator.yaml
index 366cfe3..0fc423d 100644
--- a/data/mobs/examples/sawmill_operator.yaml
+++ b/data/mobs/examples/sawmill_operator.yaml
@@ -1,6 +1,6 @@
-color: "BA"
description: A burly worker in a thick apron, covered in sawdust. He operates the industrial sawmill.
-idle: The sawmill operator wipes sawdust from his goggles.
+idle_descriptions:
+ - wipes sawdust from his goggles
name: sawmill operator
protected: true
talk:
@@ -30,8 +30,6 @@ talk:
- goto: goodbye
text: No thanks.
process:
- action:
- sawmill: true
messages:
- ""
start:
@@ -51,4 +49,3 @@ talk:
- goto: goodbye
text: Nothing for now.
unique: true
-size: small
diff --git a/data/mobs/examples/scrap_bot.yaml b/data/mobs/examples/scrap_bot.yaml
index a8b34d8..44d92aa 100644
--- a/data/mobs/examples/scrap_bot.yaml
+++ b/data/mobs/examples/scrap_bot.yaml
@@ -1,30 +1,10 @@
name: scrap bot
description: "A malfunctioning maintenance robot that has gone rogue. Its chassis is covered in dents and rust, and one optical sensor flickers erratically."
-attack: 15
-strength: 15
-defense: 14
-hp: 30
-speed: 5
-aggressive: true
-respawn_ticks: 30
-attack_type: crush
-attack_bonus: 10
-strength_bonus: 8
-stab_defense: 20
-slash_defense: 15
-crush_defense: 25
-science_defense: -5
-ranged_defense: 10
idle_descriptions:
- "beeps erratically and twitches"
- "bumps into a wall and reverses"
- "emits a burst of static"
- "scans the floor with a flickering beam"
-combat_descriptions:
- - "rams %s with its chassis"
- - "swings a broken manipulator arm at %s"
- - "discharges a spark at %s"
-size: medium
drops:
remains: scrap
loot:
@@ -37,3 +17,32 @@ drops:
- item_id: credits
weight: 10
quantity: 100
+combat:
+ kind: combat
+ stats:
+ hp: 30
+ attack: 15
+ strength: 15
+ defense: 14
+ attack_type: crush
+ speed: 5
+ aggressive: true
+ respawn_ticks: 30
+ bonuses:
+ attack_bonus: 10
+ strength_bonus: 8
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 20
+ slash_defense: 15
+ crush_defense: 25
+ science_defense: -5
+ ranged_defense: 10
+ size: medium
+ combat_descriptions:
+ - "rams %s with its chassis"
+ - "swings a broken manipulator arm at %s"
+ - "discharges a spark at %s"
diff --git a/data/mobs/examples/security_turret.yaml b/data/mobs/examples/security_turret.yaml
index 9929106..05fce67 100644
--- a/data/mobs/examples/security_turret.yaml
+++ b/data/mobs/examples/security_turret.yaml
@@ -1,32 +1,10 @@
name: security turret
description: "A ceiling-mounted auto-turret with twin barrels and a red targeting laser. It tracks you with mechanical precision."
-attack: 1
-strength: 1
-defense: 16
-hp: 44
-ranged: 34
-speed: 5
-aggressive: true
-respawn_ticks: 40
-attack_type: ranged
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 30
-slash_defense: 20
-crush_defense: 40
-science_defense: -20
-ranged_defense: 15
-weakness: solar
idle_descriptions:
- "pans the room with a targeting laser"
- "emits a rhythmic clicking sound"
- "calibrates its targeting sensors"
- "beeps a warning tone"
-combat_descriptions:
- - "fires twin bolts at %s"
- - "unleashes a burst of rounds at %s"
- - "locks onto %s and opens fire"
-size: small
drops:
remains: scrap
loot:
@@ -39,3 +17,34 @@ drops:
- item_id: credits
weight: 10
quantity: 250
+combat:
+ kind: combat
+ stats:
+ hp: 44
+ attack: 1
+ strength: 1
+ defense: 16
+ ranged: 34
+ attack_type: ranged
+ speed: 5
+ aggressive: true
+ respawn_ticks: 40
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 30
+ slash_defense: 20
+ crush_defense: 40
+ science_defense: -20
+ ranged_defense: 15
+ weakness: solar
+ size: small
+ combat_descriptions:
+ - "fires twin bolts at %s"
+ - "unleashes a burst of rounds at %s"
+ - "locks onto %s and opens fire"
diff --git a/data/mobs/examples/skeleton.yaml b/data/mobs/examples/skeleton.yaml
index ba82afc..2431215 100644
--- a/data/mobs/examples/skeleton.yaml
+++ b/data/mobs/examples/skeleton.yaml
@@ -1,25 +1,9 @@
name: skeleton
description: "An animated pile of bones, held together by dark energy."
-attack: 8
-strength: 6
-defense: 8
-hp: 22
-speed: 5
-aggressive: true
-respawn_ticks: 30
-attack_type: stab
-attack_bonus: 6
-strength_bonus: 4
-stab_defense: 10
-slash_defense: 18
-crush_defense: -5
-science_defense: -8
-ranged_defense: 10
idle_descriptions:
- "rattles ominously"
- "clicks its jaw open and shut"
- "stares with empty eye sockets"
-size: medium
drops:
remains: bones
loot:
@@ -29,3 +13,28 @@ drops:
- item_id: credits
weight: 30
quantity: 100
+combat:
+ kind: combat
+ stats:
+ hp: 22
+ attack: 8
+ strength: 6
+ defense: 8
+ attack_type: stab
+ speed: 5
+ aggressive: true
+ respawn_ticks: 30
+ bonuses:
+ attack_bonus: 6
+ strength_bonus: 4
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 10
+ slash_defense: 18
+ crush_defense: -5
+ science_defense: -8
+ ranged_defense: 10
+ size: medium
diff --git a/data/mobs/examples/slug.yaml b/data/mobs/examples/slug.yaml
index 64082ec..0429ee1 100644
--- a/data/mobs/examples/slug.yaml
+++ b/data/mobs/examples/slug.yaml
@@ -1,27 +1,44 @@
name: slug
description: "A bloated, translucent slug the size of a dog. Its skin glistens with toxic mucus. It cannot be killed by conventional means — only salt can destroy it."
-assassin_level: 1
-finishing_blow: salt
-attack: 3
-strength: 3
-defense: 1
-hp: 15
-speed: 6
-aggressive: false
-respawn_ticks: 25
idle_descriptions:
- "oozes along the floor leaving a slimy trail"
- "contracts and expands rhythmically"
- "extends its eyestalks toward you"
- "secretes a glob of toxic mucus"
-combat_descriptions:
- - "lunges slimily at %s"
- - "sprays mucus toward %s"
- - "writhes in combat with %s"
-size: small
drops:
remains: slug_mucus
loot:
- item_id: credits
weight: 100
quantity: 15
+combat:
+ kind: combat
+ stats:
+ hp: 15
+ attack: 3
+ strength: 3
+ defense: 1
+ attack_type: crush
+ speed: 6
+ aggressive: false
+ respawn_ticks: 25
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 0
+ slash_defense: 0
+ crush_defense: 0
+ science_defense: 0
+ ranged_defense: 0
+ assassin_level: 1
+ finishing_blow: salt
+ size: small
+ combat_descriptions:
+ - "lunges slimily at %s"
+ - "sprays mucus toward %s"
+ - "writhes in combat with %s"
diff --git a/data/mobs/examples/solar_panel_frame.yaml b/data/mobs/examples/solar_panel_frame.yaml
index 90269f2..2685db0 100644
--- a/data/mobs/examples/solar_panel_frame.yaml
+++ b/data/mobs/examples/solar_panel_frame.yaml
@@ -1,25 +1,13 @@
name: solar panel frame
description: "A half-assembled photovoltaic array on a steel frame. Panels, brackets and cabling are laid out, waiting to be fitted. This is work, not a fight — fix the panels into place to complete the array."
-kind: task
-verb: assemble
-progress_noun: assembly
-complete_message: "You bolt the final panel into place and the solar array hums to life!"
-hp: 40
-defense: 10
-speed: 5
-aggressive: false
-respawn_ticks: 40
-attack_type: crush
-crush_defense: 0
-stab_defense: 40
-slash_defense: 40
-ranged_defense: 10
-science_defense: 10
+task:
+ verb: assemble
+ progress_noun: assembly
+ complete_message: "You bolt the final panel into place and the solar array hums to life!"
idle_descriptions:
- "stands half-assembled, panels waiting to be fitted"
- "has loose cabling dangling from an open junction box"
- "catches the light on its few mounted panels"
-size: medium
drops:
loot:
- item_id: credits
@@ -31,3 +19,26 @@ drops:
- item_id: coal
weight: 5
quantity: 1
+combat:
+ kind: task
+ stats:
+ hp: 40
+ defense: 10
+ attack_type: crush
+ speed: 5
+ aggressive: false
+ respawn_ticks: 40
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 40
+ slash_defense: 40
+ crush_defense: 0
+ science_defense: 10
+ ranged_defense: 10
+ size: medium
diff --git a/data/mobs/examples/tanner.yaml b/data/mobs/examples/tanner.yaml
index 4c1f38b..99d64f1 100644
--- a/data/mobs/examples/tanner.yaml
+++ b/data/mobs/examples/tanner.yaml
@@ -1,24 +1,12 @@
-aggressive: false
-attack: 1
-attack_type: crush
-crush_defense: 0
-defense: 1
+name: Tanner
description: A weathered craftsman with stained hands and a leather apron.
-hp: 50
+protected: true
+unique: true
idle_descriptions:
- scrapes at a piece of hide
- examines a stack of leathers
- sharpens a tanning knife
- wipes sweat from his brow
-name: Tanner
-protected: true
-ranged_defense: 0
-respawn_ticks: 30
-science_defense: 0
-slash_defense: 0
-speed: 5
-stab_defense: 0
-strength: 1
talk:
nodes:
start:
@@ -64,5 +52,3 @@ talk:
goto: start
text: '"Tan another."'
- text: '"Thanks."'
-unique: true
-size: small
diff --git a/data/mobs/examples/titan_sentinel.yaml b/data/mobs/examples/titan_sentinel.yaml
index 32ddcc2..6fb36d3 100644
--- a/data/mobs/examples/titan_sentinel.yaml
+++ b/data/mobs/examples/titan_sentinel.yaml
@@ -1,31 +1,10 @@
name: titan sentinel
description: "A colossal automaton, the bigger brother of the iron sentinel. Its armor is reinforced adamantite alloy and its optics burn with crimson fire."
-attack: 50
-strength: 52
-defense: 56
-hp: 132
-speed: 5
-aggressive: true
-respawn_ticks: 120
-attack_type: crush
-attack_bonus: 48
-strength_bonus: 45
-stab_defense: 90
-slash_defense: 90
-crush_defense: 80
-science_defense: -35
-ranged_defense: 60
-weakness: solar
idle_descriptions:
- "stands motionless, gyros humming"
- "scans the area with a sweeping crimson beam"
- "vents superheated exhaust"
- "rotates its armored torso with a deep grinding sound"
-combat_descriptions:
- - "smashes %s with a titan-grade fist"
- - "unleashes a devastating plasma barrage at %s"
- - "drives %s into the ground with overwhelming force"
-size: massive
drops:
loot:
- item_id: scrap
@@ -39,3 +18,33 @@ drops:
- item_id: deathjunk
weight: 5
quantity: 5
+combat:
+ kind: combat
+ stats:
+ hp: 132
+ attack: 50
+ strength: 52
+ defense: 56
+ attack_type: crush
+ speed: 5
+ aggressive: true
+ respawn_ticks: 120
+ bonuses:
+ attack_bonus: 48
+ strength_bonus: 45
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 90
+ slash_defense: 90
+ crush_defense: 80
+ science_defense: -35
+ ranged_defense: 60
+ weakness: solar
+ size: massive
+ combat_descriptions:
+ - "smashes %s with a titan-grade fist"
+ - "unleashes a devastating plasma barrage at %s"
+ - "drives %s into the ground with overwhelming force"
diff --git a/data/mobs/examples/veteran_merc.yaml b/data/mobs/examples/veteran_merc.yaml
index 88238b6..71e3826 100644
--- a/data/mobs/examples/veteran_merc.yaml
+++ b/data/mobs/examples/veteran_merc.yaml
@@ -1,31 +1,10 @@
name: veteran merc
description: "A battle-hardened soldier with a high-powered rifle and tactical armor covered in campaign patches. Their cybernetic eye locks onto you instantly."
-attack: 1
-strength: 1
-defense: 40
-hp: 93
-ranged: 79
-speed: 5
-aggressive: true
-respawn_ticks: 65
-attack_type: ranged
-attack_bonus: 0
-strength_bonus: 0
-stab_defense: 40
-slash_defense: 40
-crush_defense: 35
-science_defense: 20
-ranged_defense: 55
idle_descriptions:
- "checks their rifle's ammunition counter"
- "adjusts their tactical vest"
- "scans the area through their scope"
- "spits and mutters a war story"
-combat_descriptions:
- - "fires a high-caliber round at %s"
- - "puts %s in their crosshairs and squeezes the trigger"
- - "unleashes suppressive fire at %s"
-size: medium
drops:
remains: bones
loot:
@@ -40,3 +19,33 @@ drops:
quantity: 2
- table: herb_table_mid
weight: 15
+combat:
+ kind: combat
+ stats:
+ hp: 93
+ attack: 1
+ strength: 1
+ defense: 40
+ ranged: 79
+ attack_type: ranged
+ speed: 5
+ aggressive: true
+ respawn_ticks: 65
+ bonuses:
+ attack_bonus: 0
+ strength_bonus: 0
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 40
+ slash_defense: 40
+ crush_defense: 35
+ science_defense: 20
+ ranged_defense: 55
+ size: medium
+ combat_descriptions:
+ - "fires a high-caliber round at %s"
+ - "puts %s in their crosshairs and squeezes the trigger"
+ - "unleashes suppressive fire at %s"
diff --git a/data/mobs/examples/void_reaper.yaml b/data/mobs/examples/void_reaper.yaml
index e54d776..bf85470 100644
--- a/data/mobs/examples/void_reaper.yaml
+++ b/data/mobs/examples/void_reaper.yaml
@@ -1,33 +1,10 @@
name: void reaper
description: "A shadowy figure that seems to absorb light itself. Its form shifts between a hooded specter and an armored construct. A scythe of dark energy flickers in its grasp."
-attack: 62
-strength: 68
-defense: 72
-hp: 170
-speed: 3
-aggressive: true
-respawn_ticks: 200
-attack_type: slash
-attack_bonus: 60
-strength_bonus: 60
-stab_defense: 100
-slash_defense: 110
-crush_defense: 90
-science_defense: -45
-ranged_defense: 75
-weakness: bio
-assassin_level: 80
-finishing_blow: lawjunk
idle_descriptions:
- "flickers in and out of existence"
- "draws the warmth from the surrounding air"
- "whispers in a language that predates humanity"
- "reaches out with shadowy tendrils"
-combat_descriptions:
- - "swings its void scythe at %s"
- - "drains the life force from %s"
- - "envelops %s in absolute darkness"
-size: massive
drops:
remains: ectoplasm
loot:
@@ -50,3 +27,35 @@ drops:
quantity: 5
- table: herb_table_high
weight: 10
+combat:
+ kind: combat
+ stats:
+ hp: 170
+ attack: 62
+ strength: 68
+ defense: 72
+ attack_type: slash
+ speed: 3
+ aggressive: true
+ respawn_ticks: 200
+ bonuses:
+ attack_bonus: 60
+ strength_bonus: 60
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 100
+ slash_defense: 110
+ crush_defense: 90
+ science_defense: -45
+ ranged_defense: 75
+ weakness: bio
+ assassin_level: 80
+ finishing_blow: lawjunk
+ size: massive
+ combat_descriptions:
+ - "swings its void scythe at %s"
+ - "drains the life force from %s"
+ - "envelops %s in absolute darkness"
diff --git a/data/mobs/examples/war_drone.yaml b/data/mobs/examples/war_drone.yaml
index 587ad09..7255a45 100644
--- a/data/mobs/examples/war_drone.yaml
+++ b/data/mobs/examples/war_drone.yaml
@@ -1,31 +1,10 @@
name: war drone
description: "An upgraded combat drone with reinforced plating and a heavier weapons array. Its targeting systems whir as it locks onto you."
-attack: 25
-strength: 28
-defense: 25
-hp: 65
-speed: 4
-aggressive: true
-respawn_ticks: 50
-attack_type: slash
-attack_bonus: 20
-strength_bonus: 18
-stab_defense: 35
-slash_defense: 30
-crush_defense: 40
-science_defense: -10
-ranged_defense: 20
-weakness: solar
idle_descriptions:
- "hovers aggressively, weapons armed"
- "emits a low, threatening hum"
- "paints a targeting reticle on the wall"
- "cycles through weapon modes with a click"
-combat_descriptions:
- - "fires a plasma bolt at %s"
- - "slashes at %s with a rotary blade"
- - "launches a concussion grenade at %s"
-size: medium
drops:
remains: circuit_board
loot:
@@ -40,3 +19,33 @@ drops:
quantity: 500
- table: gem_table
weight: 10
+combat:
+ kind: combat
+ stats:
+ hp: 65
+ attack: 25
+ strength: 28
+ defense: 25
+ attack_type: slash
+ speed: 4
+ aggressive: true
+ respawn_ticks: 50
+ bonuses:
+ attack_bonus: 20
+ strength_bonus: 18
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 35
+ slash_defense: 30
+ crush_defense: 40
+ science_defense: -10
+ ranged_defense: 20
+ weakness: solar
+ size: medium
+ combat_descriptions:
+ - "fires a plasma bolt at %s"
+ - "slashes at %s with a rotary blade"
+ - "launches a concussion grenade at %s"
diff --git a/data/mobs/examples/weapons_smith.yaml b/data/mobs/examples/weapons_smith.yaml
index b12a543..359f9e3 100644
--- a/data/mobs/examples/weapons_smith.yaml
+++ b/data/mobs/examples/weapons_smith.yaml
@@ -1,24 +1,12 @@
-aggressive: false
-attack: 1
-attack_type: crush
-crush_defense: 0
-defense: 1
+name: Weaponsmith
description: A burly smith with soot-stained hands and a heavy leather apron, standing proudly by the forge.
-hp: 80
+protected: true
+unique: true
idle_descriptions:
- hammers at a glowing blade on the anvil
- wipes soot from his brow
- inspects a finished sword
- tends to the furnace fire
-name: Weaponsmith
-protected: true
-ranged_defense: 0
-respawn_ticks: 30
-science_defense: 0
-slash_defense: 0
-speed: 5
-stab_defense: 0
-strength: 1
shop:
message: The Smithy — buy or sell weapons and armor.
buys_anything: false
@@ -46,5 +34,3 @@ talk:
- '"Welcome to the Smithy! Type ''list'' to see my wares."'
options:
- text: '"Nothing right now."'
-unique: true
-size: small
diff --git a/data/mobs/examples/zombie.yaml b/data/mobs/examples/zombie.yaml
index f5989e0..77bb5ed 100644
--- a/data/mobs/examples/zombie.yaml
+++ b/data/mobs/examples/zombie.yaml
@@ -1,27 +1,10 @@
name: zombie
description: "A shambling corpse reanimated by residual asteroid radiation."
-attack: 10
-strength: 8
-defense: 8
-hp: 30
-speed: 6
-aggressive: true
-respawn_ticks: 35
-attack_type: crush
-attack_bonus: 4
-strength_bonus: 6
-stab_defense: 8
-slash_defense: 20
-crush_defense: -8
-science_defense: -15
-ranged_defense: 8
-weakness: solar
idle_descriptions:
- "groans and shuffles forward"
- "reaches out with decaying arms"
- "stumbles and catches itself"
- "stares blankly ahead"
-size: medium
drops:
remains: bones
loot:
@@ -31,3 +14,29 @@ drops:
- item_id: credits
weight: 40
quantity: 200
+combat:
+ kind: combat
+ stats:
+ hp: 30
+ attack: 10
+ strength: 8
+ defense: 8
+ attack_type: crush
+ speed: 6
+ aggressive: true
+ respawn_ticks: 35
+ bonuses:
+ attack_bonus: 4
+ strength_bonus: 6
+ science_bonus: 0
+ science_percent_bonus: 0
+ ranged_bonus: 0
+ ranged_strength_bonus: 0
+ defenses:
+ stab_defense: 8
+ slash_defense: 20
+ crush_defense: -8
+ science_defense: -15
+ ranged_defense: 8
+ weakness: solar
+ size: medium
diff --git a/data/mobs/flight_attendant_copy.yaml b/data/mobs/flight_attendant_copy.yaml
index abe3d56..a495732 100644
--- a/data/mobs/flight_attendant_copy.yaml
+++ b/data/mobs/flight_attendant_copy.yaml
@@ -1,29 +1,12 @@
-aggressive: false
-attack: 0
-bonuses:
- attack_bonus: 0
- attack_type: stab
- strength_bonus: 0
-defense: 0
-defenses:
- crush_defense: 0
- ranged_defense: 0
- science_defense: 0
- slash_defense: 0
- stab_defense: 0
+name: flight attendant
description: A smiling flight attendant in a crisp uniform, ready to assist passengers.
-hp: 0
-id: flight_attendant_copy
+unique: false
+protected: true
idle_descriptions:
- adjusts her name badge
- smiles politely at you
-kind: combat
-name: Credit Checker!
-protected: true
-ranged: 0
-respawn_ticks: 0
-science: 0
shop:
+ message: SHOP SHOP
buy_percentage: 0
buys_anything: true
change_percentage: 0
@@ -31,9 +14,6 @@ shop:
- item_id: bronze_pickaxe
restock_ticks: 0
stock: 5
- message: SHOP SHOP
-speed: 0
-strength: 0
talk:
nodes:
start:
@@ -41,4 +21,3 @@ talk:
- goto: ""
text: None!
- text: None
-unique: false