summaryrefslogblamecommitdiff
path: root/npc/functions/aurora.txt
blob: 44b0c4ebb7ceb15ce324866910dca76d8d3485df (plain) (tree)
























                                                                            

                               
                                                                                                      





              


                                                                      

              



                                                                                                      

              
                             

              
                             

              


                                                                      

              



                                                                                                      

              
                             

              
                             



























                                                                            
                                   







                                                              


                                         







                                                                                  







                                         








                                          
 
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    AURORA EVENT FRAMEWORK
//    Previously known as FY:Event System
//
//    Controls weekly events so Saulc, seeds and I can take vacations.
//    See also: seasons.txt, command/event.txt, event.txt, 003-1/events.txt
//    soulmenhir.txt and, of course, the event maps (if any).
//    Aurora Event Framework functions are called by event.txt
//    specs override and is overriden by those defined in commands/event.txt

// AEF: BEGIN
function	script	FYNewEvent	{
    debugmes "\033[1mFY event is set to happen...";
    $FYEVENT_CYCLE+=1;
    // Overrides standard event system
    $EVENT$="";
    switch ($FYEVENT_CYCLE % 12) {
    case 1:
        $EVENT$="Kamelot";
        kamibroadcast("Kamelot Season is now open!", "Aurora Events");
        break;
    case 2:
        $EVENT$="Regnum";
        callfunc("FYE_Regnum");
        kamibroadcast("Regnum's Blessing: "+$@REGNUM_BLESSMAP_H$+" is now blessed!", "Aurora Events");
        break;
    case 3:
        break;
    case 4:
        break;
    case 5:
        // FIXME: PLACEHOLDER
        $EVENT$="Kamelot";
        kamibroadcast("Kamelot Season is now open!", "Aurora Events");
        break;
    case 6:
        // FIXME: PLACEHOLDER
        $EVENT$="Regnum";
        callfunc("FYE_Regnum");
        kamibroadcast("Regnum's Blessing: "+$@REGNUM_BLESSMAP_H$+" is now blessed!", "Aurora Events");
        break;
    case 7:
        // FIXME: PLACEHOLDER
        break;
    case 8:
        // FIXME: PLACEHOLDER
        break;
    case 9:
        // FIXME: PLACEHOLDER
        $EVENT$="Kamelot";
        kamibroadcast("Kamelot Season is now open!", "Aurora Events");
        break;
    case 10:
        // FIXME: PLACEHOLDER
        $EVENT$="Regnum";
        callfunc("FYE_Regnum");
        kamibroadcast("Regnum's Blessing: "+$@REGNUM_BLESSMAP_H$+" is now blessed!", "Aurora Events");
        break;
    case 11:
        // FIXME: PLACEHOLDER
        break;
    case 12:
        // FIXME: PLACEHOLDER
        break;
    }
    return;
}

// Modify Kamelot
function	script	FYE_Kamelot	{
    .@g=getcharid(2);
    if ($@FYE_KAMELOT[.@g] != gettimeparam(GETTIME_DAYOFMONTH)) {
        mesc l("Kamelot Season is open!");

        // Instance still exists
        if (instanceowner($@KAMELOT_ID[.@g]) == .@g) {
            mesc l("However, your guild just challenged Kamelot Dungeons.");
            mesc l("Please wait a while.");
            return false;
        }
        mesc l("Should we?");
        next;
        if (askyesno() == ASK_NO)
            return false;

        // Someone began while you waited
        if (instanceowner($@KAMELOT_ID[.@g]) == .@g)
            return true;

        // Begin
        callfunc("KamelotCleanup", .@g);
        $KAMELOT_COOLDOWN[.@g] = 0;
        $@FYE_KAMELOT[.@g] = gettimeparam(GETTIME_DAYOFMONTH);
        mesc l("Have fun!");
        next;
        return true;
    }
    return false;
}


// Regnum Blessing
function	script	FYE_Regnum	{
    setarray .@ma$, "004-1", "007-1", "004-2", "010-2", "014-3", "014-5", "015-5",
                    "018-3", "019-1", "025-2", "025-2-1", "soren";
    setarray .@mb$, "Tulimshar Outskirts", "Tulimshar Mines",
                    "Tulimshar (West) Canyon", "Halinarzo (East) Canyon",
                    "Central Woodlands", "North Woodlands",
                    "Abandoned Mines (Woodlands)", "Somber Caves (LoF)",
                    "Snow Field", "Fortress Island - South",
                    "Fortress Island South Cave", "Soren Island";
    .@m=rand2(getarraysize(.@ma$));
    $@REGNUM_BLESSMAP$=.@ma$[.@m];
    $@REGNUM_BLESSMAP_H$=.@mb$[.@m];
    // Apply the blessing
    setmapflag(.@ma$[.@m], mf_bexp, 200);
    return;
}

// Stops any Aurora Event
function	script	FYStopEvent	{
    setarray .@av$, "Kamelot", "Regnum";
    if (array_find(.@av$, $EVENT$) >= 0) {
        sClear();
        $EVENT$="";
    }
    return;
}