## Mobs Basic combat mob with per-type defense bonuses: ```yaml id: "man" name: "man" description: "A shabby-looking man." attack: 1 strength: 1 defense: 1 hp: 7 speed: 5 aggressive: false respawn_ticks: 30 attack_type: crush # stab/slash/crush/ranged/science (default: crush) stab_defense: 0 # per-type defense bonuses slash_defense: 0 crush_defense: 0 science_defense: 0 ranged_defense: 0 drops: remains: "bones" # always dropped on death loot: - item_id: "credits" weight: 98 quantity: 10 - item_id: "credits" weight: 2 quantity: 150 idle_descriptions: - "scribbles something in a small notebook" - "gazes skyward at the clouds" combat_descriptions: - "is engaged in a fight to the death with %s" ``` ### Aggressive Mobs Mobs with `aggressive: true` auto-attack players entering their room (1-tick delay). Only aggros if the player's combat level is at most double the mob's combat level. Checked on room enter and login. ```yaml id: goblin name: goblin aggressive: true # attacks players on sight attack: 1 strength: 3 defense: 3 hp: 12 attack_type: slash attack_bonus: 3 # equipment-equivalent attack bonus for mob's attack roll strength_bonus: 2 # equipment-equivalent strength bonus for mob's max hit stab_defense: 4 slash_defense: 3 crush_defense: -2 # weak to crush — negative defense is valid science_defense: 0 ranged_defense: 3 ``` ### Mob Attack/Defense Fields | Field | Description | |---|---| | `attack` | Attack level (base accuracy) | | `strength` | Strength level (base max hit) | | `defense` | Defense level (base defense) | | `hp` | Hit points | | `ranged` | Ranged level (for ranged/science mobs) | | `science` | Science level | | `attack_bonus` | Equipment-equivalent attack bonus (added to attack roll) | | `strength_bonus` | Equipment-equivalent strength bonus (added to max hit) | | `attack_type` | Determines which player defense is used against this mob | | `stab_defense` through `ranged_defense` | Per-type defense bonuses | | `weakness` | Elemental weakness (solar/hydro/eco/bio) — for future Science combat | ### Protected/Unique Mobs Mob with a behavior — can be talked to, toggled, etc: ```yaml id: "guard" name: "Guard" behavior: guard_talk # links to data/behaviors/guard_talk.yaml unique: true # displays as "Guard" not "a guard" protected: true # cannot be attacked attack: 5 strength: 5 defense: 5 hp: 30 speed: 5 aggressive: false respawn_ticks: 60 attack_type: slash attack_bonus: 8 strength_bonus: 6 stab_defense: 12 slash_defense: 15 crush_defense: 10 science_defense: -5 ranged_defense: 12 idle_descriptions: - "scans the area with a watchful eye" - "adjusts the grip on his weapon" ``` Note: `wander_rooms` and `wander_interval` are NOT set on the mob definition. Wander config is per-instance in the room YAML (see Rooms > Mobs section above). ---