Deliantra

 view release on metacpan or  search on metacpan

Deliantra.pm  view on Meta::CPAN

   path_attuned path_repelled path_denied material materialname
   value carrying weight invisible state magic
   last_heal last_sp last_grace last_eat
   connected glow_radius randomitems tresure_env npx_status npc_program
   run_away pick_up container will_apply smoothlevel
   current_weapon_script weapontype tooltype elevation client_type
   item_power duration range
   range_modifier duration_modifier dam_modifier gen_sp_armour
   move_type move_block move_allow move_on move_off move_on move_slow move_slow_penalty

   alive wiz was_wiz applied unpaid can_use_shield no_pick is_animated monster
   friendly generator is_thrown auto_apply treasure player sold see_invisible
   can_roll overlay_floor is_turnable is_used_up identified reflecting changing
   splitting hitback startequip blocksview undead scared unaggressive
   reflect_missile reflect_spell no_magic no_fix_player is_lightable tear_down
   run_away pick_up unique no_drop can_cast_spell can_use_scroll can_use_range
   can_use_bow can_use_armour can_use_weapon can_use_ring has_ready_range
   has_ready_bow xrays is_floor lifesave no_strength sleep stand_still
   random_move only_attack confused stealth cursed damned see_anywhere
   known_magical known_cursed can_use_skill been_applied has_ready_scroll
   can_use_rod can_use_horn make_invisible inv_locked is_wooded is_hilly

Deliantra.pm  view on Meta::CPAN

   my $attr = { };
   
   my $arch = $ARCH{ $obj->{_name} };
   my $type = $obj->{type} || $arch->{type};

   if ($type > 0) {
      $root = $Deliantra::Data::ATTR{$type};
   } else {
      my %a = (%$arch, %$obj);

      if ($a{is_floor} && !$a{alive}) {
         $root = $Deliantra::Data::TYPE{Floor};
      } elsif (!$a{is_floor} && $a{alive} && !$a{tear_down}) {
         $root = $Deliantra::Data::TYPE{"Monster & NPC"};
      } elsif (!$a{is_floor} && !$a{alive} && $a{move_block}) {
         $root = $Deliantra::Data::TYPE{Wall};
      } elsif (!$a{is_floor} && $a{alive} && $a{tear_down}) {
         $root = $Deliantra::Data::TYPE{"Weak Wall"};
      } else {
         $root = $Deliantra::Data::TYPE{Misc};
      }
   }

   my (%ignore);
   my @import = ($root);

   my @new_import;

Deliantra/Data.pm  view on Meta::CPAN

	    'grace',
	    {
	      desc => 'Positive <grace regen.> bonus speeds up the player\'s grace regeneration. Negative values slow it down. Since grace can be regenerated rather easy with praying, additional <grace regen.> bonus should be VERY RARE!!',
	      name => 'grace regen.',
	      type => 'int'
	    }
	  ],
	  [
	    'food',
	    {
	      desc => 'Positive <food bonus> slows down the player\'s digestion, thus he consumes less food. Negative values speed it up. Note that food is consumed not only for "being alive", but also for healing and mana-regeneration. <food bonus> only af...
	      name => 'food bonus',
	      type => 'int'
	    }
	  ],
	  [
	    'xrays',
	    {
	      desc => 'Xray vision allows the player to see through obstacles in a two-square-wide radius. This is extremely helpful and desirable, so don\'t give it away for cheap on equipment.',
	      name => 'xray vision',
	      type => 'bool'

Deliantra/Data.pm  view on Meta::CPAN

  Door => {
    attr => [
      [
	'no_pick',
	{
	  type => 'fixed',
	  value => 1
	}
      ],
      [
	'alive',
	{
	  type => 'fixed',
	  value => 1
	}
      ],
      [
	'move_block',
	{
	  desc => 'Objects using these movement types cannot move over this space.',
	  name => 'blocked movement',

Deliantra/Data.pm  view on Meta::CPAN

    ignore => [
      $IGNORE_LIST{non_pickable},
      'connected'
    ],
    name => 'Magic Wall',
    section => [
      [
	'destroyable',
	[
	  [
	    'alive',
	    {
	      desc => 'Walls with <is destroyable> enabled can be attacked and (eventually) destroyed by the player. If disabled, all other attributes on this tab, as well as resistances, are meaningless.',
	      name => 'is destroyable',
	      type => 'bool'
	    }
	  ],
	  [
	    'hp',
	    {
	      desc => 'The more <hitpoints> the wall has, the longer it takes to be destroyed.',

Deliantra/Data.pm  view on Meta::CPAN

    ],
    desc => 'Items of the type Money are handled as currency. Money cannot be sold/bought in shops. When money is dropped in a shop, it stays the same.<br> When a player picks an item from a shop and attempts to walk over the shop mat, the item\'s se...
    ignore => [
      'unpaid'
    ],
    name => 'Money'
  },
  'Monster & NPC' => {
    attr => [
      [
	'alive',
	{
	  type => 'fixed',
	  value => 1
	}
      ],
      [
	'randomitems',
	{
	  desc => 'When the monster is killed, items from the treasurelist will drop to the ground. This is a common way to reward players for killing (masses of) monsters. Note that you can always put items into the monster\'s inventory. Those will drop-at...
	  name => 'treasurelist',

Deliantra/Data.pm  view on Meta::CPAN

	}
      ]
    ],
    desc => 'Wands contain a certain spell. The player can apply (ready) and fire the wand. After a defined number of casts, the wand is "used up". It is possible to recharge a wand with scrolls of charging, but usually that isn\'t worth the cost.',
    name => 'Wand & Staff',
    use => 'Wands are quite seldomly used. The reason prolly is that they\'re generally not cost-efficient. Handing out high-level wands with powerful special spells isn\'t a good idea either, because of the recharge ability. <br><br> For low levels,...
  },
  'Weak Wall' => {
    attr => [
      [
	'alive',
	{
	  type => 'fixed',
	  value => 1
	}
      ],
      [
	'no_pick',
	{
	  type => 'fixed',
	  value => 1

Deliantra/Data.pm  view on Meta::CPAN

	    'grace',
	    {
	      desc => 'Positive <grace regen.> bonus speeds up the player\'s grace regeneration. Negative values slow it down. Since grace can be regenerated rather easy with praying, additional <grace regen.> bonus should be VERY RARE!!',
	      name => 'grace regen.',
	      type => 'int'
	    }
	  ],
	  [
	    'food',
	    {
	      desc => 'Positive <food bonus> slows down the player\'s digestion, thus he consumes less food. Negative values speed it up. Note that food is consumed not only for "being alive", but also for healing and mana-regeneration. <food bonus> only af...
	      name => 'food bonus',
	      type => 'int'
	    }
	  ],
	  [
	    'xrays',
	    {
	      desc => 'Xray vision allows the player to see through obstacles in a two-square-wide radius. This is extremely helpful and desirable, so don\'t give it away for cheap on equipment.',
	      name => 'xray vision',
	      type => 'bool'

res/types.xml  view on Meta::CPAN

  <attribute arch="grace" editor="grace regen." type="int">
    Positive &lt;grace regen.&gt; bonus speeds up the
    player's grace regeneration. Negative values slow it down.
    Since grace can be regenerated rather easy with praying,
    additional &lt;grace regen.&gt; bonus should be VERY RARE!!
  </attribute>
  <attribute arch="food" editor="food bonus" type="int">
    Positive &lt;food bonus&gt; slows down the player's digestion,
    thus he consumes less food. Negative values speed it up.

    Note that food is consumed not only for "being alive", but
    also for healing and mana-regeneration.
    &lt;food bonus&gt; only affects the amount of food consumed
    for "being alive". Hence, even with high &lt;food bonus&gt;,
    during a fight a player can run out of food quickly.
  </attribute>
  <attribute arch="xrays" editor="xray vision" type="bool">
    Xray vision allows the player to see through obstacles
    in a two-square-wide radius. This is extremely helpful and
    desirable, so don't give it away for cheap on equipment.
  </attribute>
  <attribute arch="stealth" editor="stealth" type="bool">
    Stealth allows the player to move silently.
    This comes to effect if a player turns himself

res/types.xml  view on Meta::CPAN

  <ignore>
    <ignore_list name="non_pickable" />
  </ignore>
  <description><![CDATA[
    A door can be opened with any normal key. It also can be broken by attacking
    it, and it can be defeated with the lockpicking skill. If a door is
    defeated, horizontally and vertically adjacent doors are automatically
    removed.]]>
  </description>
  <attribute arch="no_pick" value="1" type="fixed" />
  <attribute arch="alive" value="1" type="fixed" />
  &movement_types_terrain;
  <attribute arch="hp" editor="hitpoints" type="int">
    The more &lt;hitpoints&gt; the door has, the longer it takes to be broken.
  </attribute>
  <attribute arch="ac" editor="armour class" type="int">
    Doors of high &lt;armour class&gt; are less likely to get hit.
    &lt;armour class&gt; can be considered the "counterpiece" to
    &lt;weapon class&gt;.
  </attribute>
  <attribute arch="other_arch" editor="drop arch" type="string">

res/types.xml  view on Meta::CPAN

  &resistances_flesh_section;
  <attribute arch_begin="msg" arch_end="endmsg" editor="description" type="text">
    This text may describe the item.
  </attribute>
</type>

<!--####################################################################-->
<type number="0" name="Floor">
  <required>
    <attribute arch="is_floor" value="1" />
    <attribute arch="alive" value="0" />
  </required>
  <ignore>
    <ignore_list name="non_pickable" />
  </ignore>
  <description><![CDATA[
    Floor is a very basic thing whithout too much
    functionality. It's a floor - you stand on it.]]>
  </description>
  <attribute arch="is_floor" value="1" type="fixed" />
  <attribute arch="no_pick" value="1" type="fixed" />

res/types.xml  view on Meta::CPAN

    trigger) via connected lever/button/etc, you must set "speed 0".
  </attribute>
  &speed_left;
  <attribute arch="sp" editor="direction" type="list_direction">
    The magic wall will cast it's spells always in the specified
    &lt;direction&gt;. A magic wall with direction set to &lt;none&gt; will
    always fire in a random direction.
  </attribute>
  &movement_types_terrain;
<section name="destroyable">
  <attribute arch="alive" editor="is destroyable" type="bool">
    Walls with &lt;is destroyable&gt; enabled can be attacked and (eventually)
    destroyed by the player. If disabled, all other attributes on
    this tab, as well as resistances, are meaningless.
  </attribute>
  <attribute arch="hp" editor="hitpoints" type="int">
    The more &lt;hitpoints&gt; the wall has, the longer
    it takes to be destroyed.
  </attribute>
  <attribute arch="maxhp" editor="max hitpoints" type="int">
    &lt;max hitpoints&gt; are the maximum amount of hitpoints the wall

res/types.xml  view on Meta::CPAN

    For money, always use the default arches.
    Don't modify them.]]>
  </description>
  <attribute arch="race" value="gold and jewels" type="fixed" />
</type>

<!--####################################################################-->
<type number="0" name="Monster &amp; NPC">
  <required>
    <attribute arch="is_floor" value="0" />
    <attribute arch="alive" value="1" />
    <attribute arch="tear_down" value="0" />
  </required>
  <ignore>
    <attribute arch="material" />
    <attribute arch="name_pl" />
    <attribute arch="nrof" />
    <attribute arch="value" />
    <attribute arch="unpaid" />
  </ignore>
  <description><![CDATA[

res/types.xml  view on Meta::CPAN

         hold. Design your maps in a way that high experience
         is always well-defended. Don't make large rooms full with only one kind
         of monster. Keep in mind the different abilities/techniques players
         can use.
    </UL>
    I know it's impossible to make the perfectly balanced map. There's always
    some part which is found too easy or too hard for a certain kind of player.
    Just give it your best shot. And listen to feedback from players if you
    receive some. :-)]]>
  </use>
  <attribute arch="alive" value="1" type="fixed" />
  <attribute arch="randomitems" editor="treasurelist" type="treasurelist">
    When the monster is killed, items from the treasurelist will
    drop to the ground. This is a common way to reward players
    for killing (masses of) monsters.

    Note that you can always put items into the monster's
    inventory. Those will drop-at-kill just like the stuff
    from the &lt;treasurelist&gt;.
  </attribute>
  <attribute arch="treasure_env" editor="treasure in env" type="bool">

res/types.xml  view on Meta::CPAN

    In the moment when the player gets marked, this text is displayed
    to him. You should really set a message in any marker you create,
    because it's the only way for the player to notice what's going on.
  </attribute>
</type>

<!--####################################################################-->
<type number="0" name="Wall">
  <required>
    <attribute arch="is_floor" value="0" />
    <attribute arch="alive" value="0" />
    <attribute arch="no_pass" value="1" />
  </required>
  <ignore>
    <attribute arch="nrof" />
    <attribute arch="title" />
    <attribute arch="name_pl" />
    <attribute arch="value" />
    <attribute arch="unpaid" />
  </ignore>
  <description><![CDATA[

res/types.xml  view on Meta::CPAN

  </attribute>
  <attribute arch_begin="msg" arch_end="endmsg" editor="description" type="text">
    This text may contain a description of the wand.
  </attribute>
</type>

<!--####################################################################-->
<type number="0" name="Weak Wall">
  <required>
    <attribute arch="is_floor" value="0" />
    <attribute arch="alive" value="1" />
    <attribute arch="tear_down" value="1" />
  </required>
  <ignore>
    <ignore_list name="non_pickable" />
  </ignore>
  <description><![CDATA[
    A weak wall is a breakable spot amidsts a solid wall. Typically
    these weak walls look similar to their solid "relatives" except
    for a small crack or little chunks of wall on the ground.]]>
  </description>
  <use><![CDATA[
    If you want to create hidden rooms, using weak walls is alot
    better than completely indiscernible passages in a wall.<br>
    Anyways, there can be a lot more to weak walls than just finding
    them: Rising their defensive stats, weak walls can become a
    serious obstacle. An ice wall might only be torn down by a fire
    attack for example. A granite wall for instance might be very
    hard to destroy.]]>
  </use>
  <attribute arch="alive" value="1" type="fixed" />
  <attribute arch="no_pick" value="1" type="fixed" />
  <attribute arch="tear_down" value="1" type="fixed" />
  <attribute arch="race" editor="race" type="string">
    For weak walls, &lt;race&gt; should always be set to "wall",
    unless you create something fancy like a building which
    is in fact meant to be a huge animal.
    Note that shovels slay walls, so they do tripple damage
    against weak walls.
  </attribute>
  <attribute arch="level" editor="level" type="int">

res/types.xml  view on Meta::CPAN

  <attribute arch="grace" editor="grace regen." type="int">
    Positive &lt;grace regen.&gt; bonus speeds up the
    player's grace regeneration. Negative values slow it down.
    Since grace can be regenerated rather easy with praying,
    additional &lt;grace regen.&gt; bonus should be VERY RARE!!
  </attribute>
  <attribute arch="food" editor="food bonus" type="int">
    Positive &lt;food bonus&gt; slows down the player's digestion,
    thus he consumes less food. Negative values speed it up.

    Note that food is consumed not only for "being alive", but
    also for healing and mana-regeneration.
    &lt;food bonus&gt; only affects the amount of food consumed
    for "being alive". Hence, even with high &lt;food bonus&gt;,
    during a fight a player can run out of food quickly.
  </attribute>
  <attribute arch="xrays" editor="xray vision" type="bool">
    Xray vision allows the player to see through obstacles
    in a two-square-wide radius. This is extremely helpful and
    desirable, so don't give it away for cheap on equipment.
  </attribute>
  <attribute arch="stealth" editor="stealth" type="bool">
    Stealth allows the player to move silently.
    This comes to effect if a player turns himself



( run in 1.679 second using v1.01-cache-2.11-cpan-39bf76dae61 )