Editing EDF item effects and inventory

From Eternity Wiki
Jump to navigationJump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
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).


==Thing type based pick-up==
There are many different types of item effect definitions:
The recommended way to define pick-up effects is by adding the '''pickupeffect''' section in the [[thingtype]] definition of a class.


The fields are as such:
===artifact===
 
thingtype <name>
{
  ...
  pickupeffect
  {
  effects      <name>, ...
  flags        <flags>
  changeweapon <name>
  message      <text>
  sound        <name>
  }
  ...
}
For explanation of the fields, see the sprite-based block definition's corresponding fields.
 
==Sprite based pick-ups==
===pickupeffect===
Defines what happens when player picks up an item with the '''SPECIAL''' [[Thing type flags|flag]]. Commonly in DOOM and Heretic, pick-up effects are associated with the visual sprites of the things, instead of being mapped directly to the thing class.
 
In the base game definitions, you can find the pick-up effects defined in sprites.edf.
pickupeffect <name>
{
  sprite      <name>
  effects      <name>, ...
  flags        <flags>
  changeweapon <name>
  message      <text>
  sound        <name>
}
====Explanation of fields====
*'''sprite'''
:Default: no sprite.
:If set as a four-character sprite name, this will associate any [[thingtype]] with the '''SPECIAL''' [[Thing type flags|flag]] whose current sprite shows as this value to trigger this '''pickupeffect'''.
:Example: <code>sprite BON1</code>
*'''effects'''
:Default: no effect.
:This is a list of effects incurred on player when picking up the item. Each one must be defined in EDF as one of the following: '''ammoeffect''', '''armoreffect''', '''artifact''', '''healtheffect''', '''powereffect''' or '''weapongiver'''.
:Example: <code>effects Berserk, BerserkHealth</code>
*'''flags'''
:Default: no flags.
:This is an optional set of one or more flags, joined together by | (vertical bar). The flags you can use are:
:*'''ALWAYSPICKUP''': item shall always be picked, even if according to the '''effects''', there would be no need for the item. Example: health potions in DOOM.
:*'''LEAVEINMULTI''': if game is multiplayer, keep item on the ground for every players to find it. Commonly used by access keys.
:*'''NOSCREENFLASH''': if picked up, item will not flash player's screen.
:*'''SILENTNOBENEFIT''': only has effect in conjunction with '''ALWAYSPICKUP''': if picked up when unneeded, all user feedback (message, sound, flash) is suppressed.
:*'''COMMERCIALONLY''': only relevant for demo compatibility, marks the item as DOOM 2 (the "commercial" release) specific. The megasphere has this flag. Not needed for new mods.
:*'''GIVESBACKPACKAMMO''': commonly used by the entries with the '''BackpackItem''' in '''effects''' (which doubles player's ammo capacity) to also provide the backpack ammo amount for each available ammo '''artifact''' in the game.
*'''changeweapon'''
:Default: nothing.
:If set, causes the item to change player's current weapon to the designated one whenever picked up. Expects a [[weaponinfo]] definition. This is based on how the [[Doom Wiki:Berserk|Berserk pack]] acts in DOOM.
:Example: <code>changeweapon Fist</code>
*'''message'''
:Default: no message.
:What message to display at the top of the view when picking up the item. This doesn't cover special cases such as the medikit low health message or the special BFG9000 variants.
:Example: <code>message "picked up an item."</code>
*'''sound'''
:Default: none
:Sets the [[sound]] to play when picking up the item.
:Example: <code>sound itemup</code>
 
Note: the '''pfxname''' field (which you may encounter in the base EDF) is only needed for compatibility with a deprecated feature.
 
==Effect definitions==
From a '''pickupeffect''''s '''effects''' field, one can add from many different types of item effect definitions:
 
===Base definitions===
 
====artifact====
An artifact is an item which, when collected, goes into the player's inventory.
An artifact is an item which, when collected, goes into the player's inventory.


Line 105: Line 35:
   ammo.backpackmaxamount <int> // max amount after collecting a Backpack
   ammo.backpackmaxamount <int> // max amount after collecting a Backpack
  }
  }
====healtheffect====
===healtheffect===
A health effect gives the player health in one of many possible ways.  
A health effect gives the player health in one of many possible ways.  
  healtheffect <name>
  healtheffect <name>
  {
  {
   amount    <int> // amount of health to give
   amount    <int> // amount of health to give
   maxamount  <int> // max amount this item can health to.
   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
   lowmessage <str> // alternate message to give instead of pickupfx message when
                   // health is less than amount; if starts with $, is a BEX mnemonic.
                   // health is < amount; if starts with $, is a BEX mnemonic.
    
    
   [+-]alwayspickup  // if +, item is picked up even when unneeded (e.g. Health Bonus)
   [+-]alwayspickup  // if +, item is picked up even when unneeded (ie Health Bonus)
   [+-]sethealth    // if +, item SETS health rather than adding to it (e.g. Megasphere)
   [+-]sethealth    // if +, item SETS health rather than adding to it (ie Megasphere)
  }
  }
 
===armoreffect===
====armoreffect====
An armor effect defines the properties of player armor  
An armor effect defines the properties of player armor  
  armoreffect <name>
  armoreffect <name>
Line 132: Line 62:
   [+-]setabsorption  // if +, sets absorption values (savefactor & savedivisor)
   [+-]setabsorption  // if +, sets absorption values (savefactor & savedivisor)
  }
  }
====ammoeffect====
===ammoeffect===
Ammo givers give an Ammo type artifact to the player.
Ammo givers give an Ammo type artifact to the player.
  ammoeffect <name>
  ammoeffect <name>
Line 142: Line 72:
   [+-]ignoreskill  // if +, does not double on skills that give double ammo   
   [+-]ignoreskill  // if +, does not double on skills that give double ammo   
  }
  }
====powereffect====
===powereffect===
Power givers buff the player with a temporary or level-permanent effect. They're typical of artifacts such as the radiation suit or the blur sphere.
Power givers give a power to the player.
  powereffect <name>
  powereffect <name>
  {
  {
Line 153: Line 83:
   [+-]overridesself // if +, getting the power again while still under its influence is allowed
   [+-]overridesself // if +, getting the power again while still under its influence is allowed
  }
  }
 
===weapongiver===
'''Type''' can be any of the following:
*'''PowerAllmap''': Doom computer area map, Heretic map scroll
*'''PowerFlight''': Heretic wings of wrath
*'''PowerGhost''': Heretic shadow sphere
*'''PowerInvulnerable''': Doom invulnerability artifact, Heretic ring of invulnerability
*'''PowerIronFeet''': Doom radiation shielding suit
*'''PowerLightAmp''': Doom light amplification visor
*'''PowerPartialInvisibility''': Doom blur artifact
*'''PowerSilent''': Eternity silencer
*'''PowerStrength''': Doom berserk pack
*'''PowerTorch''': Heretic torch
*'''PowerTotalInvisibility''': Eternity total invisibility
*'''PowerWeaponLevel2''': Heretic tome of power
 
====weapongiver====
Weapon givers give a Weapon type artifact to the player, and optionally any number of Ammo artifact types.
Weapon givers give a Weapon type artifact to the player, and optionally any number of Ammo artifact types.
  weapongiver <name>
  weapongiver <name>
Line 177: Line 92:
                                                                                       // 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]]
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see Eternity Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)