ZoriaRPG icon

All npc->Defense[] Defence Types

ZoriaRPG | PRO | 03/29/18 05:56:43 PM UTC | 0 ⭐ | 628 👁️ | Never ⏰ | []
C++ |

5.12 KB

|

None

|

0 👍

/

0 👎

/*
Defence Types (Results/Outcomes) in the Engine for npc->Defense[index]
 
This list may, in the future, equally apply to Link->Defense[]
 
This list is split into five segments:
1. Implemented (old): These are in 2.50.0->2.53.0
2. Implemented (new): These exist only in 2.54, and some only exist in specific builds (and later).
3. Planned: These are likely to be added to 2.54, or 2.55.
4. Planned, Custom: A set of types that are used solely by scripts.
5. Insanity: In-dev discussion occasionally runs into InSomNia madness. These probably won't exist, but: Who knows, eh?
*/
 
 
//! Section 1: Implemented in 2.50.0->2.53.0
NPC Defense types. Use with npc->Defense[]. 
const int NPCDT_NONE            = 0; 
const int NPCDT_HALFDAMAGE      = 1; 
const int NPCDT_QUARTERDAMAGE   = 2; 
const int NPCDT_STUN            = 3; 
const int NPCDT_STUNORBLOCK     = 4; 
const int NPCDT_STUNORIGNORE    = 5; 
const int NPCDT_BLOCK1          = 6; 
const int NPCDT_BLOCK2          = 7; 
const int NPCDT_BLOCK4          = 8; 
const int NPCDT_BLOCK6          = 9; 
const int NPCDT_BLOCK8          = 10; 
const int NPCDT_BLOCK           = 11; 
const int NPCDT_IGNORE1         = 12; 
const int NPCDT_IGNORE          = 13; 
const int NPCDT_ONEHITKILL      = 14;  // One-hit knock-out
    //! 2.50.xx defences ended here
 
//! Section 2: Implemented in 2.54+ 
const int NPCDT_BLOCK10         = 15; //If damage is less than 10 
const int NPCDT_DOUBLE          = 16;  //Double damage 
const int NPCDT_TRIPLE          = 17;  //Triple Damage 
const int NPCDT_QUADRUPLE       = 18;  //4x damage 
const int NPCDT_HEAL            = 19;  //recover the weapon damage in HP
const int NPCDT_TRIGGERSECRETS  = 20; //Triggers all screen secrets. 
const int NPCDT_FREEZE          = 21; //Freeze solid--not finished.
    //! 2.54 Defences that are visible in ZQuest and work, or
    //! partially-work, end here.
 
    //Two internal-only vars here, used as line separators:
const int NPCDT_UNUSED0         = 22; //Used as an editor message. This may be used for something else, later.
const
const int NPCDT_UNUSED1         = 23; //Used to show a horizontal line in the editor list. This may be used for something else, later
 
//! Section 3: Planned for 2.54->2.55, starting at case value '24'.
const int NPCDT_LEVELDAMAGE     = 24; //Damage * item level 
const int NPCDT_LEVELREDUCTION  = 25; //Damage / item level 
const int NPCDT_SPLIT           = 26; //causes the enemy to split if it has a split attribute 
const int NPCDT_REPLACE         = 27; //replaced by next in list? 
const int NPCDT_LEVELBLOCK2     = 28; //If item level is < 2: This needs a weapon variable that is set by 
const int NPCDT_LEVELBLOCK3     = 29; //If item level is < 3: the item that generates it (itemdata::level stored to 
const int NPCDT_LEVELBLOCK4     = 30; //If item level is < 4: weapon::level, or something similar; then a check to 
const int NPCDT_LEVELBLOCK5     = 31; //If item level is < 5: read weapon::level in hit detection. 
const int NPCDT_SHOCK           = 32; //buzz blob 
const int NPCDT_EXPLODESM       = 33; //ew bombblast 
const int NPCDT_EXPLODELG       = 34; //super bomb blast 
//Need 'harmless' versions, but they may as well be new 'Death Type' variable values. -Z
const int NPCDT_STONE           = 35; //deadrock 
const int NPCDT_BREAKSHIELD     = 36; //break the enemy shield 
const int NPCDT_RESTORESHIELD   = 37; //if the enemy had a shield, reset it
const int NPCDT_DROPSPECIAL     = 38; //drops a special item--but where to define it? 
const int NPCDT_INCREASECOUNTER = 39; //but where to define the counter 
const int NPCDT_REDUCECOUNTER   = 40; //same problem 
const int NPCDT_EXPLODENODAMAGE = 41; //boss death explosion 
const int NPCDT_KILLNOSPLIT     = 42; //If sufficient damage to kill it, a splitting enemy just dies. 
const int NPCDT_TRIBBLE         = 43; //Tribbles on hit. 
const int NPCDT_FIREBALLSMALL   = 44; //Makes a 1x1 fireball 
const int NPCDT_FIREBALLLARGE   = 45; //Makes a 3x3 fireball 
const int NPCDT_SUMMON          = 46; //Summons a number of enemies as defined by the summon properties of the npc. 
 
const int NPCDT_WINGAME         = 47; of Gamelon.
const int NPCDT_JUMP            = 48; //Z3 stalfos 
const int NPCDT_EATLINK         = 49; //-G //Is this practical? We need special npc movement for it. -Zl npc movement for it. -Z
 
const int NPCDT_NEVERSPLIT; //Enemies that split on hit or death will not split.
//! Section 4: Custom Types With No Engine-Effects
/*
    These lack an assigned value at present. 
    I would want them to start at an value that ends in
    a '0' or a '1', such as '50' or '51' and run through
    twenty contiguous indices, ending (for example) in
    indices '69' or '70'.
*/
 
const int NPCDT_CUSTOM01;
// ...    --->
const int NPCDT_CUSTOM20; //There would be 20 values for user/script-defined defence outcomes.
 
//! Section 4: Developer Insanity
const int NPCDT_SAVE; //Would call Game->Save()
const int NPCDT_RETRY; //Would act as F6->Retry
const int NPCDT_CONTINUE; //Would act as F6->Continue
const int NPCDT_ENDGAME; //Would act as Game->Quit().
const int NPCT_CRASHZC; //Clearly too little sleep.

Comments