EDF item effects and inventory: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
m (Add link to "Creating a pickup" article.)
No edit summary
Line 1: Line 1:
Define what happens when an item is picked up and used (and eventually, dropped from the inventory - this is not complete yet). A tutorial on defining each of these can be found at [[Creating a pickup]].
Define what happens when an item is picked up and used (and eventually, dropped from the inventory - this is not complete yet). A tutorial on defining each of these can be found at [[Creating a pickup]].


==Base definitions==
There are many different types of item effect definitions:
There are many different types of item effect definitions:


Line 92: Line 93:
                                                                                       // given based on how it was picked up. If the
                                                                                       // given based on how it was picked up. If the
                                                                                       // last three are left blank, only "amount" is used.
                                                                                       // last three are left blank, only "amount" is used.
}
==Delta structures==
The following can be used to replace already defined effects. They can be cascaded (i.e. any number of loaded mods can change the previous definition and all its deltas). For each of them, the '''name''' field represents the name of the base to modify. They are the following:
healthdelta
{
  name <name>
  ...
}
armordelta
{
  name <name>
  ...
}
ammodelta
{
  name <name>
  ...
}
powerdelta
{
  name <name>
  ...
}
weapongiverdelta
{
  name <name>
  clearammogiven  // if added, removes the "given ammo" definitions
  ...
}
artifactdelta
{
  name <name>
  ...
  }
  }


[[Category:EDF]]
[[Category:EDF]]

Revision as of 04:16, 22 March 2020

Define what happens when an item is picked up and used (and eventually, dropped from the inventory - this is not complete yet). A tutorial on defining each of these can be found at Creating a pickup.

Base definitions

There are many different types of item effect definitions:

artifact

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

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.
 lowmessage <str> // alternate message to give instead of pickupfx message when
                  // health is less than amount; if starts with $, is a BEX mnemonic.
 
 [+-]alwayspickup  // if +, item is picked up even when unneeded (e.g. Health Bonus)
 [+-]sethealth     // if +, item SETS health rather than adding to it (e.g. Megasphere)
}

armoreffect

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

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

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

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.
}

Delta structures

The following can be used to replace already defined effects. They can be cascaded (i.e. any number of loaded mods can change the previous definition and all its deltas). For each of them, the name field represents the name of the base to modify. They are the following:

healthdelta
{
 name <name>
 ...
}
armordelta
{
 name <name>
 ...
}
ammodelta
{
 name <name>
 ...
}
powerdelta
{
 name <name>
 ...
}
weapongiverdelta
{
 name <name>
 clearammogiven   // if added, removes the "given ammo" definitions
 ...
}
artifactdelta
{
 name <name>
 ...
}