61 lines
1.8 KiB
Plaintext
61 lines
1.8 KiB
Plaintext
|
#include "prc_alterations"
|
||
|
#include "prc_class_const"
|
||
|
|
||
|
void ChooseWeapon(object oPC, object oWeapon)
|
||
|
{
|
||
|
string sName = GetName(oWeapon);
|
||
|
|
||
|
SetLocalInt(oPC, "HAS_CHOSEN_WEAPON", 2);
|
||
|
SetLocalInt(oWeapon, "CHOSEN_WEAPON", 2);
|
||
|
SetLocalObject(oPC, "CHOSEN_WEAPON", oWeapon);
|
||
|
if (GetPlotFlag(oWeapon) == FALSE)
|
||
|
{
|
||
|
SetLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT", TRUE);
|
||
|
SetPlotFlag(oWeapon, TRUE);
|
||
|
}
|
||
|
SendMessageToPC(oPC, "You have chosen "+sName+" to be your chosen weapon.");
|
||
|
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyVisualEffect(ITEM_VISUAL_HOLY), oWeapon, 0.0);
|
||
|
|
||
|
DelayCommand(0.1, ExecuteScript("prc_arcduel", oPC)); // reevaluate things so the weapon bonus is applied.
|
||
|
}
|
||
|
|
||
|
void UnchooseWeapon(object oPC)
|
||
|
{
|
||
|
object oWeapon = GetLocalObject(oPC, "CHOSEN_WEAPON");
|
||
|
string sName = GetName(oWeapon);
|
||
|
|
||
|
DeleteLocalInt(oWeapon, "CHOSEN_WEAPON");
|
||
|
if (GetLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT"))
|
||
|
{
|
||
|
DeleteLocalInt(oWeapon, "CHOSEN_WEAPON_PLOT");
|
||
|
SetPlotFlag(oWeapon, FALSE);
|
||
|
}
|
||
|
SendMessageToPC(oPC, sName+" is no longer your chosen weapon.");
|
||
|
RemoveSpecificProperty(oWeapon, ITEM_PROPERTY_VISUALEFFECT);
|
||
|
}
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
object oWeapon = PRCGetSpellTargetObject();
|
||
|
object oPC = OBJECT_SELF;
|
||
|
int iChosen = GetLocalInt(oPC, "HAS_CHOSEN_WEAPON");
|
||
|
|
||
|
if (iChosen == 2)
|
||
|
{
|
||
|
if (oWeapon == GetLocalObject(oPC, "CHOSEN_WEAPON"))
|
||
|
{
|
||
|
SendMessageToPC(oPC, "That weapon is already your chosen weapon.");
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
SendMessageToPC(oPC, "You begin to bond with the new weapon. It will be your chosen weapon in 20 turns.");
|
||
|
DelayCommand(TurnsToSeconds(20)+0.0, UnchooseWeapon(oPC));
|
||
|
DelayCommand(TurnsToSeconds(20)+0.1, ChooseWeapon(oPC, oWeapon));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
ChooseWeapon(oPC, oWeapon);
|
||
|
}
|
||
|
}
|
||
|
|