HoS_PRC8/_mod/_module/nss/scrollofdarkritu.nss
Jaysyn904 04165202c0 Initial upload
Initial upload
2024-11-25 19:36:07 -05:00

45 lines
1.2 KiB
Plaintext

// Scroll of Dark Ritual
#include "rtsh_multiplay"
#include "hos_alignment"
void fnConvert(object oPC);
void fnChant(object oPlace,object oPC);
void main()
{
object oPC=GetItemActivator();
object oPlace;
DelayCommand(4.0,fnConvert(oPC));
oPlace=CreateObject(OBJECT_TYPE_PLACEABLE,"plc_invisobj",GetLocation(oPC));
fnChant(oPlace,oPC);
}
void fnChant(object oPlace,object oPC)
{ // chanting
AssignCommand(oPlace,PlaySound("as_pl_evilchantm"));
if (GetItemPossessedBy(oPC,"SoulToken")!=OBJECT_INVALID)
{
DelayCommand(5.0,fnChant(oPlace,oPC));
}
else
{
DestroyObject(oPlace);
}
} // fnChant()
void fnConvert(object oPC)
{ // convert the tokens
object oItem=GetItemPossessedBy(oPC,"SoulToken");
effect eVFX=EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE);
int nMana=fnGetTeamMana(oPC);
if (oItem!=OBJECT_INVALID)
{ // convert
DestroyObject(oItem);
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVFX,oPC,1.5);
nMana=nMana+25;
fnSetTeamMana(oPC,nMana);
SendMessageToPC(oPC,"25 mana converted from soul. Current pool of mana is "+IntToString(nMana)+".");
AdjustAlignmentPartyProtected(oPC,ALIGNMENT_EVIL,5);
DelayCommand(1.6,fnConvert(oPC));
} // convert
} // fnConvert()