Further file organization
Further file organization
This commit is contained in:
67
nwn/nwnprc/trunk/scripts/prc_swftwg_wing.nss
Normal file
67
nwn/nwnprc/trunk/scripts/prc_swftwg_wing.nss
Normal file
@@ -0,0 +1,67 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Wing Activation and Deactivation for Swift Wing
|
||||
//:: prc_swftwg_wing.nss
|
||||
//::///////////////////////////////////////////////
|
||||
/*
|
||||
Handles the wing activation and deactivation for the Swift Wing class.
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Fox
|
||||
//:: Created On: Nov 20, 2007
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
#include "pnp_shft_poly"
|
||||
|
||||
//internal fucntion to remove wings
|
||||
void RemoveSWWings(object oPC)
|
||||
{
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
//if not shifted
|
||||
SetPersistantLocalInt(oPC, "WingsOn", FALSE);
|
||||
int nOriginalWings = GetPersistantLocalInt(oPC, "AppearanceStoredWing");
|
||||
SetCreatureWingType(nOriginalWings, oPC);
|
||||
IPRemoveMatchingItemProperties(oSkin, ITEM_PROPERTY_SKILL_BONUS, DURATION_TYPE_TEMPORARY, SKILL_JUMP);
|
||||
}
|
||||
|
||||
//internal function to turn wings on
|
||||
void AddSWWings(object oPC)
|
||||
{
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
//if not shifted
|
||||
//store current appearance to be safe
|
||||
StoreAppearance(oPC);
|
||||
//grant wings
|
||||
SetPersistantLocalInt(oPC, "WingsOn", TRUE);
|
||||
int nWingType = GetHasFeat(FEAT_DRAGON_AFFINITY_BK, oPC) ? PRC_WING_TYPE_DRAGON_BLACK:
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_BL, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_AM, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_SA, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_TP, oPC) ? PRC_WING_TYPE_DRAGON_BLUE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_BS, oPC) ? PRC_WING_TYPE_DRAGON_BRASS :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_BZ, oPC) ? PRC_WING_TYPE_DRAGON_BRONZE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_CP, oPC) ? PRC_WING_TYPE_DRAGON_COPPER :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_GD, oPC) ? PRC_WING_TYPE_DRAGON_GOLD :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_GR, oPC) ? PRC_WING_TYPE_DRAGON_GREEN :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_EM, oPC) ? PRC_WING_TYPE_DRAGON_GREEN :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_SR, oPC) ? PRC_WING_TYPE_DRAGON_SILVER :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_CR, oPC) ? PRC_WING_TYPE_DRAGON_SILVER :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_WH, oPC) ? PRC_WING_TYPE_DRAGON_WHITE :
|
||||
GetHasFeat(FEAT_DRAGON_AFFINITY_RD, oPC) ? PRC_WING_TYPE_DRAGON_RED :
|
||||
CREATURE_WING_TYPE_DRAGON;
|
||||
SetCreatureWingType(nWingType, oPC);
|
||||
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertySkillBonus(SKILL_JUMP, 10), oSkin, 9999.0);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = OBJECT_SELF;
|
||||
if(!GetIsPolyMorphedOrShifted(oPC))
|
||||
{
|
||||
if(!GetPersistantLocalInt(oPC, "WingsOn"))
|
||||
AddSWWings(oPC);
|
||||
else
|
||||
RemoveSWWings(oPC);
|
||||
}
|
||||
else
|
||||
FloatingTextStringOnCreature("You cannot use this ability while shifted.", oPC, FALSE);
|
||||
}
|
Reference in New Issue
Block a user