Difference between revisions of "Monster (Programming)"

From Hellmoo Wiki Archive
Jump to navigation Jump to search
(New page: 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&#3...)
 
imported>Vayra
(more readable with word wrap)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
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):
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>
* set description<br>
  @describe <monster> as <text>, or edit the monster's .description directly.
@describe <monster> as <text>, or edit the monster's .description directly.


  * set gender<br>
* set gender<br>
  $gender_utils:set(#object, "gender") - where "gender" is "male", "female", "neuter", or any gender in "help gender".
$gender_utils:set(#object, "gender") - where "gender" is "male", "female", "neuter", or any gender in "help gender".


  * messages like say_flee and dunno<br>
* messages like say_flee and dunno<br>
  These are stored as messages; type @messages to see them.
These are stored as messages; type @messages to see them.


  * @setup for skills and stats<br>
* @setup for skills and stats<br>
  @setup <monster> will prompt you for setting all of the monster's stats and skills.  Be judicious!
@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>
* 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.  
@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>
* create a message set for the weapon<br>
  See above.
See above.


  * create a squeals message set for the creature<br>
* 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.
@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>
* 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.
@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>
* 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.
@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>
* 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.
@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 .heart to 0


  * set the monster's .areas prop to a list of the areas it can move around in
* 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>
* make the monster fertile and move it to #-1<br>
  @chmod <creature> +f; @move <creature> to #-1.  Simple.  
@chmod <creature> +f; @move <creature> to #-1.  Simple.  


  * @spawn the monster, or use a monster hive to create them.
* @spawn the monster, or use a monster hive to create them.


Documentation on individual Monster types:
Documentation on individual Monster types:
Line 48: Line 48:


-- Main.NecanThrope - 08 Sep 2006
-- Main.NecanThrope - 08 Sep 2006
[[Category:Needs work]][[Category:Programming]]

Latest revision as of 11:08, 30 November 2009

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