Added henchman rental
Many areas, items, and creatures were adjusted for balance and aesthetics.
This commit is contained in:
79
_module/nss/hench_o0_heal.nss
Normal file
79
_module/nss/hench_o0_heal.nss
Normal file
@@ -0,0 +1,79 @@
|
||||
|
||||
#include "hench_i0_heal"
|
||||
|
||||
void main()
|
||||
{
|
||||
SetCommandable(TRUE);
|
||||
int bPolymorphed = GetHasEffect(EFFECT_TYPE_POLYMORPH);
|
||||
InitializeItemSpells(HenchDetermineClassToUse(), bPolymorphed, HENCH_INIT_ALL_SPELLS);
|
||||
|
||||
// check if run from master shout
|
||||
if (GetLocalInt(OBJECT_SELF, henchHealCountStr) == -1)
|
||||
{
|
||||
DeleteLocalInt(OBJECT_SELF, henchHealCountStr);
|
||||
if(HenchTalentCureCondition(GetMaster()))
|
||||
{
|
||||
DelayCommand(2.0, VoiceCanDo());
|
||||
return;
|
||||
}
|
||||
if(HenchTalentHeal(GetMaster(), bPolymorphed ? HENCH_HAS_POLYMORPH_EFFECT : 0, HENCH_HEAL_FORCE | HENCH_HEAL_NO_POTIONS))
|
||||
{
|
||||
DelayCommand(2.0, VoiceCanDo());
|
||||
return;
|
||||
}
|
||||
DelayCommand(2.5, VoiceCannotDo());
|
||||
return;
|
||||
}
|
||||
|
||||
object oHealTarget = GetLocalObject(OBJECT_SELF, "Henchman_Spell_Target");
|
||||
int curHealCount = GetLocalInt(OBJECT_SELF, henchHealCountStr);
|
||||
|
||||
if (!GetIsObjectValid(oHealTarget))
|
||||
{
|
||||
InitializeAllyTargets(FALSE);
|
||||
if (curHealCount == 0)
|
||||
{
|
||||
ReportUnseenAllies();
|
||||
}
|
||||
}
|
||||
else if (!GetObjectSeen(oHealTarget))
|
||||
{
|
||||
SpeakString(sHenchCantSeeTarget + GetName(oHealTarget));
|
||||
DeleteLocalInt(OBJECT_SELF, henchHealCountStr);
|
||||
SetLocalObject(OBJECT_SELF, "Henchman_Spell_Target", OBJECT_INVALID);
|
||||
return;
|
||||
}
|
||||
if(HenchTalentCureCondition(oHealTarget))
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, henchHealCountStr, curHealCount + 1);
|
||||
return;
|
||||
}
|
||||
|
||||
if (GetIsObjectValid(oHealTarget))
|
||||
{
|
||||
if(HenchTalentHeal(oHealTarget, bPolymorphed ? HENCH_HAS_POLYMORPH_EFFECT : 0, HENCH_HEAL_FORCE | HENCH_HEAL_NO_POTIONS))
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, henchHealCountStr, curHealCount + 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (HenchTalentHealAll(bPolymorphed ? HENCH_HAS_POLYMORPH_EFFECT : 0, HENCH_HEAL_FORCE | HENCH_HEAL_NO_POTIONS))
|
||||
{
|
||||
SetLocalInt(OBJECT_SELF, henchHealCountStr, curHealCount + 1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (curHealCount == 0)
|
||||
{
|
||||
// didn't find any heal spells
|
||||
PlayVoiceChat(VOICE_CHAT_CUSS);
|
||||
}
|
||||
else
|
||||
{
|
||||
PlayVoiceChat(VOICE_CHAT_TASKCOMPLETE);
|
||||
}
|
||||
DeleteLocalInt(OBJECT_SELF, henchHealCountStr);
|
||||
SetLocalObject(OBJECT_SELF, "Henchman_Spell_Target", OBJECT_INVALID);
|
||||
}
|
Reference in New Issue
Block a user