Added Wispling race. Wispling qualifies for Shifter (PnP). Bioware poisons now work with "new" PRC8 weapons. Updated PRC8 Tester mod store to have Bioware venoms. Updated PRC8 version. Added Alchemy expansion notes. Updated Starting package TLK notes.
70 lines
2.5 KiB
Plaintext
70 lines
2.5 KiB
Plaintext
//:://////////////////////////////////////////////
|
|
//:: Change Shape use
|
|
//:: prc_chngshp_lern
|
|
//:://////////////////////////////////////////////
|
|
/** @file
|
|
Targets some creature to have it be stored
|
|
as a known template and attempts to shift
|
|
into it.
|
|
|
|
|
|
@author Shane Hennessy
|
|
@date Modified - 2006.10.08 - rewritten by Ornedan - modified by Fox
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_shifting"
|
|
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nSpellID = GetSpellId();
|
|
int nShiftType;
|
|
|
|
switch(nSpellID)
|
|
{
|
|
case SPELL_IRDA_CHANGE_SHAPE_LEARN:
|
|
case SPELL_WISPLING_CHANGE_SHAPE_LEARN:
|
|
case SPELL_FEYRI_CHANGE_SHAPE_LEARN:
|
|
case SPELL_RAKSHASA_CHANGE_SHAPE_LEARN: nShiftType = SHIFTER_TYPE_HUMANOIDSHAPE; break;
|
|
|
|
case SPELL_ALTER_SELF_LEARN: nShiftType = SHIFTER_TYPE_ALTER_SELF; break;
|
|
|
|
case SPELL_DISGUISE_SELF_LEARN:
|
|
case SPELL_CHANGLING_CHANGE_SHAPE_LEARN:
|
|
case SPELL_QUICK_CHANGE_SHAPE_LEARN: nShiftType = SHIFTER_TYPE_DISGUISE_SELF; break;
|
|
}
|
|
|
|
// Store the PC's current appearance as true appearance
|
|
/// @note This may be a bad idea, we have no way of knowing if the current appearance really is the "true appearance" - Ornedan
|
|
StoreCurrentAppearanceAsTrueAppearance(oPC, TRUE);
|
|
|
|
// See if the creature is shiftable to. If so, store it as a template and shift
|
|
if(GetCanShiftIntoCreature(oPC, nShiftType, oTarget))
|
|
{
|
|
StoreShiftingTemplate(oPC, nShiftType, oTarget);
|
|
|
|
// Start shifting. If this fails immediately, refund the shifting use
|
|
if(!ShiftIntoCreature(oPC, nShiftType, oTarget))
|
|
{
|
|
// In case of shifting failure, refund the shifting use
|
|
if(nSpellID == SPELL_IRDA_CHANGE_SHAPE_LEARN)
|
|
IncrementRemainingFeatUses(oPC, FEAT_IRDA_CHANGE_SHAPE);
|
|
|
|
if(nSpellID == SPELL_WISPLING_CHANGE_SHAPE_LEARN)
|
|
IncrementRemainingFeatUses(oPC, FEAT_WISPLING_CHANGE_SHAPE);
|
|
|
|
}
|
|
}
|
|
// Couldn't shift, refund the feat use
|
|
else
|
|
if(nSpellID == SPELL_IRDA_CHANGE_SHAPE_LEARN)
|
|
IncrementRemainingFeatUses(oPC, FEAT_IRDA_CHANGE_SHAPE);
|
|
|
|
if(nSpellID == SPELL_WISPLING_CHANGE_SHAPE_LEARN)
|
|
IncrementRemainingFeatUses(oPC, FEAT_WISPLING_CHANGE_SHAPE);
|
|
}
|