Monster (Programming)
Revision as of 07:46, 2 January 2009 by imported>Marvin (ProgMonster moved to 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