45 lines
1.2 KiB
Plaintext
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()
|