EDF item effects and inventory

From Eternity Wiki
Jump to: navigation, search

Define what happens when an item is picked up and used (and eventually, dropped from the inventory - this is not complete yet).

There are many different types of item effect definitions:

artifact[edit]

An artifact is an item which, when collected, goes into the player's inventory.

artifact <name>
{
 amount         <int> // amount gained with one pickup
 maxamount      <int> // max amount that can be carried in inventory
 interhubamount <int> // max amount carryable between levels in different hubs;
                      // -1 if this field should not apply at all
 sortorder      <int> // key used for sorting the player's inventory
 icon           <str> // name of icon graphic for invbar
 usesound       <str> // sound made when item is used
 useeffect      <str> // name of item effect to use for activation
 useaction      <action function> // codepointer and arguments called (e.g. A_GauntletAttack(1))
 
 [+-]undroppable      // if +, cannot be dropped from inventory
 [+-]invbar           // if +, appears in invbar; otherwise, invisible
 [+-]keepdepleted     // if +, will remain in inventory with amount of zero
 [+-]fullamountonly   // if +, cannot pickup unless full amount is needed
 [+-]noshareware      // if +, non-shareware
 
 // artifacttype determines what sort of artifact this is.  
 artifacttype   <str> // "Normal", "Ammo", "Key", "Puzzle", "Power", "Weapon",
                      // or "Quest"
                      
 // The following fields apply only to certain artifact types. They have no
 // effect if specified on other types.
 
 // Ammo
 ammo.backpackamount    <int> // amount of this ammo type given by a Backpack
 ammo.backpackmaxamount <int> // max amount after collecting a Backpack
}

healtheffect[edit]

A health effect gives the player health in one of many possible ways.

healtheffect <name>
{
 amount     <int> // amount of health to give
 maxamount  <int> // max amount this item can health to; if player has greater
                  // health, the item cannot be picked up at all.
 lowmessage <str> // alternate message to give instead of pickupfx message when
                  // health is < amount; if starts with $, is a BEX mnemonic.
 
 [+-]alwayspickup  // if +, item is picked up even when unneeded (ie Health Bonus)
 [+-]sethealth     // if +, item SETS health rather than adding to it (ie Megasphere)
}

armoreffect[edit]

An armor effect defines the properties of player armor

armoreffect <name>
{
 saveamount    <int> // amount of armor given
 savefactor    <int> // numerator of fraction determining save percentage
 savedivisor   <int> // denominator of fraction determining save percentage
 maxsaveamount <int> // max amount his item can give; if player has greater
                     // armor, the item cannot be picked up at all
                     
 [+-]alwayspickup    // item is picked up even when unneeded (e.g. Armor Bonus)
 [+-]additive        // if +, adds to the current amount of armor
 [+-]setabsorption   // if +, sets absorption values (savefactor & savedivisor)
}

ammoeffect[edit]

Ammo givers give an Ammo type artifact to the player.

ammoeffect <name>
{
 ammo       <str> // Name of an Ammo-type artifact definition
 amount     <int> // Amount to give for an ordinary pickup
 dropamount <int> // Amount to give if dropped by an enemy
 
 [+-]ignoreskill  // if +, does not double on skills that give double ammo  
}

powereffect[edit]

Power givers give a power to the player.

powereffect <name>
{
 duration   <int>  // Length of time to last in tics
 type       <str>  // Name of power to give
 
 [+-]additivetime  // if +, adds to current duration
 [+-]permanent     // if +, lasts forever  
 [+-]overridesself // if +, getting the power again while still under its influence is allowed
}

weapongiver[edit]

Weapon givers give a Weapon type artifact to the player, and optionally any number of Ammo artifact types.

weapongiver <name>
{
 weapon     <str> // Name of a weaponinfo to give to the player
 // Note that you can specify as many ammogiven properties as you want in a single weapongiver
 ammogiven  <ammo>, <amount> [, <dropammount> [, <dmammount> [, <coopweaponsstay>]]] // Ammo type artifact given, and the amounts
                                                                                     // given based on how it was picked up. If the
                                                                                     // last three are left blank, only "amount" is used.
}