summaryrefslogblamecommitdiff
path: root/world/map/npc/items/check_wand.txt
blob: 4d8016bb2b8f219b704897845f95647fab30e733 (plain) (tree)


































                                                        
                                 










                                                                                                             
                                         


















                                            
// Wands
// Author: Wushin
function|script|WandMana|,
{
    callfunc "CheckWand";
    set @WandCost, (@Wand * ((MaxSp / 10) + 2));
    set @WandAttack, 0;
    if (!(@Wand))
        goto L_NoWand;
    if (Sp >= @WandCost)
        goto L_Attack;
    goto L_LowSp;

L_Attack:
    set Sp, (Sp - @WandCost);
    set @WandAttack, 1;
    goto L_Return;

L_NoWand:
    message strcharinfo(0), "You need a wand Equipped!";
    set @WandAttack, 0;
    goto L_Return;
 
L_LowSp:
    message strcharinfo(0), "Out of Mana";
    set @WandAttack, 0;
    goto L_Return;

L_Return:
    return;
}
function|script|CheckWand|,
{
    setarray $@Wands, 758, 1171;
    setarray $@WandsPwr, 2, 1;
    setarray $@WandsAnim, 35, 33;
    set @Wand, 0;
    set @wand_loop, 0;
    goto L_Loop;

L_Loop:
    if ((getequipid(equip_hand1) == $@Wands[@wand_loop]) || (getequipid(equip_hand2) == $@Wands[@wand_loop]))
        goto L_SetWand;
    goto L_LoopAgain;

L_SetWand:
    set @Wand, $@WandsPwr[@wand_loop];
    set @WandID, $@WandsAnim[@wand_loop];
    callfunc "MorganState";
    if (@morgan == 2)
        goto L_SetCastOnce;
    goto L_Return;

L_LoopAgain:
    set @wand_loop, (@wand_loop + 1);
    if (@wand_loop >= getarraysize($@Wands))
        goto L_Return;
    goto L_Loop;

L_SetCastOnce:
    set @morgan_tmp, 3;
    callfunc "SetMorganMask";
    goto L_Return;

L_Return:
    return;
}