63 lines
1.9 KiB
Plaintext
63 lines
1.9 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Healer perform recovery
|
|
//:: death_ta_casting
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Dauvis
|
|
//:: Created On: 6/28/03
|
|
//::
|
|
//:: This function will perform the recovery on the
|
|
//:: player. If the player does not have enough gold,
|
|
//:: it will return FALSE to indicate to the conversation
|
|
//:: that fact. Otherwise, it will perform the recovery
|
|
//:: and return TRUE
|
|
//:://////////////////////////////////////////////
|
|
#include "death_include"
|
|
|
|
int StartingConditional()
|
|
{
|
|
object oPlayer = GetPCSpeaker();
|
|
int iType;
|
|
|
|
// get the gold and exp
|
|
int iGold = GetCampaignInt(dhDeathGetDatabaseName(oPlayer), "iExpBuyBackCost", oPlayer);
|
|
int iExp = GetCampaignInt(dhDeathGetDatabaseName(oPlayer), "iRecoverableExp", oPlayer);
|
|
|
|
// test to see if player has enough gold
|
|
int iPlayerGold = GetGold(oPlayer);
|
|
if (iPlayerGold < iGold) {
|
|
return FALSE;
|
|
}
|
|
|
|
// Glitz & Glamor
|
|
AssignCommand(OBJECT_SELF, ActionCastFakeSpellAtObject(SPELL_RESTORATION, oPlayer));
|
|
effect effPlayer = EffectVisualEffect(VFX_IMP_HEALING_G);
|
|
DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, effPlayer, oPlayer, 0.0));
|
|
|
|
// remove "rez sick" if still on player
|
|
effPlayer = GetFirstEffect(oPlayer);
|
|
while (GetIsEffectValid(effPlayer)) {
|
|
iType = GetEffectType(effPlayer);
|
|
|
|
if (iType == EFFECT_TYPE_NEGATIVELEVEL) {
|
|
RemoveEffect(oPlayer, effPlayer);
|
|
}
|
|
effPlayer = GetNextEffect(oPlayer);
|
|
}
|
|
|
|
// return exp and take gold
|
|
GiveXPToCreature(oPlayer, iExp);
|
|
TakeGoldFromCreature(iGold, oPlayer, TRUE);
|
|
|
|
// clear the persistant data
|
|
SetCampaignInt(dhDeathGetDatabaseName(oPlayer), "iExpBuyBackCost", 0, oPlayer);
|
|
SetCampaignInt(dhDeathGetDatabaseName(oPlayer), "iRecoverableExp", 0, oPlayer);
|
|
|
|
// done
|
|
return TRUE;
|
|
}
|
|
|