Further file organization
Further file organization
This commit is contained in:
113
nwn/nwnprc/trunk/include/inc_poison.nss
Normal file
113
nwn/nwnprc/trunk/include/inc_poison.nss
Normal file
@@ -0,0 +1,113 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Poison System includes
|
||||
//:: inc_poison
|
||||
//::///////////////////////////////////////////////
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Ornedan
|
||||
//:: Created On: 12.12.2004
|
||||
//:: Updated On: 09.01.2005
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
|
||||
const int POISONED_WEAPON_CASTERLEVEL = 1;
|
||||
|
||||
const int STRREF_POISON_WORN_OFF = 16826227;
|
||||
const int STRREF_POISON_APPLY_SUCCESS = 16826228;
|
||||
const int STRREF_POISON_APPLY_FAILURE = 16826230;
|
||||
const int STRREF_POISON_CLEAN_OFF_WEAPON = 16826229;
|
||||
const int STRREF_POISON_NOT_VALID_FOR_WEAPON = 16826231;
|
||||
const int STRREF_SHATTER_HARMLESS = 16826234;
|
||||
const int STRREF_POISON_ITEM_USE_1 = 16826236;
|
||||
const int STRREF_POISON_ITEM_USE_2 = 16826237;
|
||||
const int STRREF_POISON_FOOD_USE_1 = 16826239;
|
||||
const int STRREF_POISON_FOOD_USE_2 = 16826240;
|
||||
const int STRREF_CLEAN_ITEM_SUCCESS = 16826242;
|
||||
const int STRREF_CLEAN_ITEM_FAIL_1 = 16826243;
|
||||
const int STRREF_CLEAN_ITEM_FAIL_2 = 16826244;
|
||||
const int STRREF_INVALID_TARGET = 16826245;
|
||||
const int STRREF_NOT_CONTACT_POISON = 16826246;
|
||||
const int STRREF_TARGET_ALREADY_POISONED = 16826247;
|
||||
const int STRREF_NOT_INGESTED_POISON = 16826251;
|
||||
const int STRREF_TARGET_NOT_FOOD = 16826252;
|
||||
const int STRREF_ACQUIRE_SPOT_SUCCESS1 = 16826253;
|
||||
const int STRREF_ACQUIRE_SPOT_SUCCESS2 = 16826254;
|
||||
const int STRREF_ONEQUIP_CLEAN_ITEM = 16826255;
|
||||
|
||||
const int POISON_TYPE_CONTACT = 0;
|
||||
const int POISON_TYPE_INGESTED = 1;
|
||||
const int POISON_TYPE_INHALED = 2;
|
||||
const int POISON_TYPE_INJURY = 3;
|
||||
|
||||
/**
|
||||
* Gets the type of the given poison.
|
||||
*
|
||||
* @param nPoison POISON_* constant
|
||||
* @return POISON_TYPE_* constant
|
||||
*/
|
||||
int GetPoisonType(int nPoison);
|
||||
|
||||
|
||||
// Poison removal handlers
|
||||
void DoPoisonRemovalFromWeapon(object oWeapon);
|
||||
void DoPoisonRemovalFromItem(object oItem);
|
||||
|
||||
|
||||
//#include "inc_utility"
|
||||
//#include "inc_poison_const"
|
||||
#include "prc_inc_spells"
|
||||
#include "prc_ipfeat_const"
|
||||
|
||||
/****************************************************
|
||||
************** The implementations ******************
|
||||
****************************************************/
|
||||
|
||||
int GetPoisonType(int nPoison)
|
||||
{
|
||||
return StringToInt(Get2DACache("poison", "Poison_Type", nPoison));
|
||||
}
|
||||
|
||||
// Handles removing of itemproperties and locals on a poisoned weapon
|
||||
void DoPoisonRemovalFromWeapon(object oWeapon)
|
||||
{
|
||||
DeleteLocalInt(oWeapon, "pois_wpn_idx");
|
||||
DeleteLocalInt(oWeapon, "pois_wpn_uses");
|
||||
RemoveEventScript(oWeapon, EVENT_ITEM_ONHIT, "poison_wpn_onhit", TRUE, TRUE);
|
||||
|
||||
// Remove the UniquePower only if poisoning the weapon added it.
|
||||
if(GetLocalInt(oWeapon, "PoisonedWeapon_DoDelete"))
|
||||
RemoveSpecificProperty(oWeapon,
|
||||
ITEM_PROPERTY_ONHITCASTSPELL,
|
||||
IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER,
|
||||
0,
|
||||
1,
|
||||
"",
|
||||
-1,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
}
|
||||
|
||||
// Handles removing of itemproperties and locals on a poisoned item
|
||||
void DoPoisonRemovalFromItem(object oItem)
|
||||
{
|
||||
DeleteLocalInt(oItem, "pois_itm_idx");
|
||||
DeleteLocalInt(oItem, "pois_itm_uses");
|
||||
DeleteLocalInt(oItem, "pois_itm_trap_dc");
|
||||
DeleteLocalObject(oItem, "pois_itm_poisoner");
|
||||
|
||||
int nSafeCount = GetLocalInt(oItem, "pois_itm_safecount");
|
||||
DeleteLocalInt(oItem, "pois_itm_safecount");
|
||||
int i;
|
||||
for(i = 1; i <= nSafeCount; i++)
|
||||
DeleteLocalObject(oItem, "pois_itm_safe_" + IntToString(i));
|
||||
|
||||
RemoveSpecificProperty(oItem,
|
||||
ITEM_PROPERTY_CAST_SPELL,
|
||||
IP_CONST_CASTSPELL_CLEAN_POISON_OFF,
|
||||
IP_CONST_CASTSPELL_NUMUSES_UNLIMITED_USE,
|
||||
1,
|
||||
"",
|
||||
-1,
|
||||
DURATION_TYPE_PERMANENT);
|
||||
|
||||
RemoveEventScript(oItem, EVENT_ITEM_ONACQUIREITEM, "poison_onaquire", TRUE, TRUE);
|
||||
RemoveEventScript(oItem, EVENT_ITEM_ONPLAYEREQUIPITEM, "poison_onequip", TRUE, TRUE);
|
||||
}
|
Reference in New Issue
Block a user