Monster (Programming)
Monsters is the term we affectionately use for creatures that exist mainly to be slaughtered. They are pretty complicated. If you're making one, here is a brief list of things you'll need to do (more docs coming):
- set description<br>
@describe <monster> as <text>, or edit the monster's .description directly.
- set gender<br>
$gender_utils:set(#object, "gender") - where "gender" is "male", "female", "neuter", or any gender in "help gender".
- messages like say_flee and dunno<br>
These are stored as messages; type @messages to see them.
- @setup for skills and stats<br>
@setup <monster> will prompt you for setting all of the monster's stats and skills. Be judicious!
- create a weapon for .unarmed_weapon and set its stats<br>
@tree $weapon will show you all the weapons. Generally, we pick one from the natural weapons section and set the monster's .unarmed_weapon to that. You can also create a new one, but that's out of scope for this document.
- create a message set for the weapon<br>
See above.
- create a squeals message set for the creature<br>
@tree #802 will show you all the squeal sets. These are message sets for combat for the monster. We desperately need documentation on them. There are quite a few sets; pick the one that seems most appropriate, or write your own.
- set the .body_parts list<br>
@leaves $bodypart will show a list of all body parts, for hit location purposes. There are quite a few nonhuman bodyparts for exotic monsters. Feel free to make more, with appropriate names, if need be. Then, once you figure out what body parts the monster has, put a list of the object numbers in the monster's .body_parts property.
- create a custom corpse<br>
@tree $corpse will show you the existing corpse types. Feel free to make new ones for your monsters. This is essentially another creature type, but less complex.
- create meats for the custom corpse<br>
@tree $food will show you what meats exist; feel free to make different ones. We need documentation for food types. Also, non-food type $things can be used for exotic monsters; for instance, robots have machine and electronic parts as meats. Once you have a list of things hackable from the corpse, set the .meats property to a list of their parent objnums. Don't create new meats for this - just put the objnums for the fertile parents of each item.
- set the monster's .heart to 0
- set the monster's .areas prop to a list of the areas it can move around in
- make the monster fertile and move it to #-1<br>
@chmod <creature> +f; @move <creature> to #-1. Simple.
- @spawn the monster, or use a monster hive to create them.
Documentation on individual Monster types:
ProgMonsterZombie
-- Main.SpunKy - 13 May 2004
-- Main.NecanThrope - 08 Sep 2006