summaryrefslogblamecommitdiff
path: root/world/map/npc/easter/2010/Doctor2.txt
blob: 02a2e7f74c30ba8e2b621e17c4b56c039a123d7f (plain) (tree)



























































































































































































                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
                        
                                                                                                                 
                                           
                                                                                                       
                                           
                                                                                  
                                           
                                                                                             
                        

























































































































































































                                                                                                                                                                                                                                                              
                                                                          












                                                 
                                                        














































                                                                                                                                                                
 






















































































































































































































                                                                                                                                                                                                                                
// Doctor 2, at the island.

028-1.gat,83,34,0	script	Doctor#who2	184,{
// States here
    callsub S_Helped_Count;
    if (@Easter_2010_helper >= 2 && !((Easter_2010_QuestState >> E10_FLAG_MID_REWARD_SHIFT) & E10_FLAG_MID_REWARD_MASK))
        goto L_MidReward;
    if (@Easter_2010_helper == 4 && !((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK))
        goto L_Defeat_Invader;
    if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK == E10_FLAG_RETURN_READY && (Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE)
        goto L_Return_Ready_Optional;

// =======================
// === Second location ===
// =======================

L_At_Island:
    // Checks for if the player has already helped the doctor, either here or elsewhere, go here.
    if ((Easter_2010_QuestState >> E10_FLAG_HELPED_DOCTOR_ISLAND_SHIFT) & E10_FLAG_HELPED_DOCTOR_ISLAND_MASK == E10_FLAG_HELPED_DOCTOR_ISLAND)
        goto L_At_Island_Helped;

    if ((Easter_2010_QuestState >> E10_FLAG_KNOWS_DOCTOR_SHIFT) & E10_FLAG_KNOWS_DOCTOR_MASK == E10_FLAG_KNOWS_DOCTOR)
        goto L_At_Island_Knows_Doctor;

    setarray @responses$, "\"Odd spheres of energy floating about... Interesting. The decay is very severe here...\" He looks over, as if only now noticing your presence. \"Excuse me, how do you do? Don't mean to be rude, just lost in thought...\"", "There's a man in glasses, scanning the area carefully. \"There are more trees affected than I had thought.\" He extends his hand, waving a small device around carefully.", "\"Well, so what does that mea--oh, sorry! Please don't mind me, but right now I'm trying to figure out why this world is dying.\"", "A somewhat oddly dressed man turns about. Suddenly, he speaks up, \"No, no, something's definitely wrong. Explain it? Well... it's complicated.\"";
    callsub S_Update_Knows;
    close;

L_At_Island_Knows_Doctor:
    setarray @responses$, "\"Oi! What killed these trees...\" He takes a moment, studying carefully. \"And this open area--there don't seem to be any creatures around. Interesting.",
                          "\"Hm, do you know anything about those spheres of energy?\" The device he's holding glows briefly. \"Well, that's what I thought. If you'll excuse me for a moment.\" He adjusts his glasses and continues his work.",
                          "\"There's the other, big tree... Then there are these trees, and... glowing orbs. Some... force is slowly destroying this world.\" The Doctor finishes his thought and continues pacing.",
                          "The Doctor takes out the same strange device, anticipating a question and responding. \"Oh, this, it's good for everything. Right now I'm looking for what might be controlling these blobs of light; they don't seem to be moving on their own.\"",
                         "\"I know there is some other agent at work here. I don't quite know what it is yet, but... Well, if you have any information that could help, please do share.\"";

    callsub S_Dialogue_Knows;
    next;

L_At_Island_Menu:
    setarray @menuitems$, "", "", "", "", "";
    set @c, 0;

    set @menuitems$[@c], "What's going on here? It looks like everything is dying! The trees are dead and decaying, the grass is weak and easily crushed, and the animals are gone!";
    set @menuid[@c], E10_ISLAND_MENU_DEATH_AWE;
    set @c, @c + 1;

    set @menuitems$[@c], "There's an eerie sort of silence about this place, don't you think? ... Er, what was that?! ... It doesn't seem all that safe here...";
    set @menuid[@c], E10_ISLAND_MENU_SCARED;
    set @c, @c + 1;

    set @menuitems$[@c], "The orbs of light flying about? Wisps. And you know, they do seem to be behaving strangely, or as much is possible given the circumstances. You think there's a reason for that?";
    set @menuid[@c], E10_ISLAND_MENU_WISPS;
    set @c, @c + 1;


    if (!(Easter_2010_QuestState & (E10_FLAG_HELPED_DOCTOR_TREE << E10_FLAG_HELPED_DOCTOR_TREE_SHIFT))) goto L_post_tree_help;
    set @menuitems$[@c], "This place looks dead... do you need any more lifestones?";
    set @menuid[@c], E10_ISLAND_MENU_OFFER_LIFESTONE;
    set @c, @c + 1;

L_post_tree_help:
    menu
        @menuitems$[0], -,
        @menuitems$[1], -,
        @menuitems$[2], -,
        @menuitems$[3], -,
        @menuitems$[4], -,
        "I'm actually more interested in going home.", L_Warning;

    set @menu, @menu -1;
    if (@menu >= @c) close;
    if (@menuid[@menu] == E10_ISLAND_MENU_DEATH_AWE) goto L_At_Island_Death_Awe;
    if (@menuid[@menu] == E10_ISLAND_MENU_SCARED) goto L_At_Island_Scared;
    if (@menuid[@menu] == E10_ISLAND_MENU_WISPS) goto L_At_Island_Wisps;
    if (@menuid[@menu] == E10_ISLAND_MENU_OFFER_LIFESTONE) goto L_At_Island_Offer_Lifestone;
    close;

L_At_Island_Death_Awe:
    mes "[Doctor]";
    mes "";
    mes "\"Yes, yes. For most, death can't be avoided, but this...\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"So much death, and so quickly, even. It doesn't seem quite natural, does it?\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Take a look at this, won't you?\"";
    next;
    menu "I'm not sure, what am I looking for exactly?", -;
    mes "[Doctor]";
    mes "";
    mes "\"Ah, you don't see it? Well, these glasses of mine--well, here, take a look\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "The Doctor takes off his red-blue glasses and holds them up. You peer through and examine the surroundings.";
    next;
    menu "I... don't see anything unusual, sorry.", -,
            "Oh, something about the grass?", L_At_Island_Grass,
            "Er, what exactly do these glasses do?", L_At_Island_Glasses,
            "Oh, so the... the um... that?", -,
            "Right, of course, that is... very... interesting?", -,
            "Could you hold that thought? I need to check on something else first.", -;
    close;

L_At_Island_Grass:
    mes "[Doctor]";
    mes "";
    mes "The Doctor pauses, examining the ground. \"Now that you mention it...\" He holds up a blade of grass between his fingers. \"There is a sort of strange texture about it, perhaps slightly grating.\"";
    next;
    menu "Yes, I had noticed that, too. Do you think it's relevant?", L_At_Island_Explain,
            "Hm, now that I think about it, it doesn't seem all too different from my own world's.", L_At_Island_Explain,
            "Do you think it's a result of all the death here?", L_At_Island_Explain,
            "Oh, excuse me for just a second.", -;
    close;

L_At_Island_Glasses:
    mes "[Doctor]";
    mes "";
    mes "\"Well, I had suspected that what may have been causing damage to this world was in fact from another universe.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"So you can think of these glasses as the means to identifying when something or someone has gone through the Void.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Here, let me show you.\" The Doctor turns the glasses so you can view him and moves around.";
    next;
    menu "Oh, wow. There's a sort of... grainy effect about you. Like particles?", -;
    mes "[Doctor]";
    mes "";
    mes "\"Yes, stuff from the Void. I saw something earlier, but nothing now. Strange.\"";
    close;

L_At_Island_Explain:
    mes "[Doctor]";
    mes "";
    mes "\"Well, from the other things I've seen here, I wouldn't couldn't say so definitively, but it's possible.\"";
    next;
    mes "Your eyes follow the Doctor as he begins to pace. He pauses to continue his thought.";
    next;
    mes "[Doctor]";
    mes "";
    if ((Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK)
        goto L_At_Island_Theory;
    mes "\"Well, it's interesting. I'll have to take a closer look.\"";
    close;

L_At_Island_Theory:
    mes "[Doctor]";
    mes "";
    mes "\"Based on what we had uncovered before, I think some force is exerting its will on those glowing entities.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"How it all ties together is what I'm still trying to figure out.\" He adjusts his glasses again.";
    next;
    menu "It is very strange, can't argue there.", -,
            "I have faith in you.", -,
            "What if--oh, are you thinking about something?", L_At_Island_Knows_Doctor,
            "Yes, that is an interesting idea. I will think it over for a bit.", -;
    close;

L_At_Island_Scared:
    mes "[Doctor]";
    mes "";
    mes "\"Ahh, feeling a bit anxious are we? I don't blame you, chap, it is a bit unnerving here.\" The Doctor continues to analyze the environment with his various instruments, apparently lost in thought.";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"It's really quite strange... the levels of electromagnetic energy in the area seem to be spiking regularly, almost in time with the movements of these glowing blobs.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Judging from these readouts, it would seem that either some force is acting upon these orbs of light, or they are in fact creating a sporadic magnetic field.\"";
    next;
    menu "What? I'm just really, really scared!", L_At_Island_Terror,
            "Electromagnetic what now?", L_At_Island_Magnetic,
            "I've got to get out of here!", L_At_Island_Terror,
            "Um, uh, I... gotta run... to some place more safe.", L_At_Island_Terror;
    close;

L_At_Island_Terror:
    mes "[Doctor]";
    mes "";
    if (BaseLevel == 99)
        mes "\"Really? Out of those I've detected here, I would have thought you'd be among the most skilled.\"";
    if (BaseLevel >= 90 && BaseLevel <= 98)
        mes "\"Er, um? I'm so sorry, I had assumed you were more than capable for this sort of thing.";
    if (BaseLevel >= 70 && BaseLevel <= 89)
        mes "\"Please excuse me, but I had sensed you were stronger than that.\"";
    if (BaseLevel >= 50 && BaseLevel <= 69)
        mes "\"Ah... well, I have seen others here, too. Perhaps you could work together?\"";
    if (BaseLevel <= 49)
        mes "\"Don't lose hope, you're not alone in all this. We'll get through it.\"";
    next;
    menu "I don't know what to say...", -,
            "Yes, yes, you're absolutely right!", L_At_Island_Calm,
            "I-I need a moment to think.", -;
    close;

L_At_Island_Magnetic:
    mes "[Doctor]";
    mes "";
    mes "\"Well, haven't you noticed the strange behaviour of those blobs of light?\"";
    next;
    menu "Um, strange doesn't even begin to cover this world.", -,
            "Sure, I can never find enough stuff after fighting them.", L_At_Island_Loot,
            "Other than the fact that they wish to kill me?", L_At_Island_Wisps,
            "Blobs? I hadn't noticed anything.",L_At_Island_Knows_Doctor;
    close;

L_At_Island_Calm:
    mes "[Doctor]";
    mes "";
    mes "\"There, isn't that better?\" He smiles warmly. \"Now, I was thinking--\"";
    next;
    menu "Sorry to interrupt, but...", L_At_Island_Menu,
            "*I* was thin--oh, thought you were pausing. Sorry, please continue.", L_At_Island_Theory,
            "Sorry, I need another moment to regain my composure.", -;
    close;

L_At_Island_Loot:
    mes "[Doctor]";
    mes "";
    mes "He seems confused. \"Find enough stuff? I'm not sure I could help you there, but perhaps someone else can?\"";
    close;

L_At_Island_Wisps:
    mes "[Doctor]";
    mes "";
    mes "\"I'm glad you asked! You see, the behaviour of these creatures doesn't appear to be very natural at all; the elephant in the room if you will.\" The Doctor pauses temporarily to check his instruments again.";
    next;
    menu "Well, they are normally very peaceful; they'll only attack if you attack them.", -;
    mes "[Doctor]";
    mes "";
    mes "\"Interesting! I've seen them attack with no discernable provocation. This is quite ominous. \"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\If it didn't sound so mad, I'd postulate that something is controlling these things... some malevolent force or entity.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Oh, sorry, what do you think?\"";
    next;
    menu "That doesn't seem quite right, to be honest.", -,
            "Now that you mention it, I had some ideas.", L_At_Island_Ideas,
            "Malevolent? Where did you get that idea?", -,
            "Instruments? They seem quite versatile.", L_At_Island_Devices,
            "That's a lot for me to take in right now. Excuse me.", -;
    close;

L_At_Island_Ideas:
    menu "Strange behaviour comes up with magic in my world, like agitating creatures to do harm.", L_At_Island_Magic,
            "Maybe something or someone is summoning them?", L_At_Island_Summon,
            "Could it be possible they're not from this place, either?", L_At_Island_Void,
            "Maybe this sounds crazy, but... could these be the remains of all the entities that have died?", L_At_Island_Spirits,
            "I don't understand time all that well, but perhaps the wisps indicate a rip... in the fabric?", L_At_Island_Time,
            "Er, how embarrassing. I seem to have forgotten what I was going to say.", -;
    close;

L_At_Island_Devices:
    mes "[Doctor]";
    mes "";
    mes "\"Hm? Oh, ha-ha, like this?\" The Doctor points out one of the instruments.";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"They are very useful, yes! Fantastic, even. Proved invaluable in so many circumstances.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Yes. Well, then.\" He continues his analysis, putting something away, almost in anticipation of your next question.";
    close;

L_At_Island_Magic:
    mes "[Doctor]";
    mes "";
    mes "\"Magic, you say? Yes, I have been hearing about that from others, too.\"";
    mes "The Doctor looks off into the distance.";
    next;
    menu "Erm? Hello?", -;
    mes "[Doctor]";
    mes "";
    mes "\"Still here, just wondering. So you say it's possible to aggravate creatures where you come from?\"";
    next;
    menu "Yes, within a certain radius of the caster, it is possible.", -;
    mes "[Doctor]";
    mes "";
    mes "\"Really? Ha-ha! I knew it. Tell me more, could you? Anything particular about the practice of magic in your world?\"";
    next;
    menu "Well... it is possible to follow a darker path, so to speak, when it comes to practicing magic.", L_At_Island_Dark,
            "Hm. Not sure if it's relevant, but I have often suspected an unknown evil in my own world.", L_At_Island_Dark,
            "Even the 'good' practicioners seem to exhibit malicious behaviour at times.", L_At_Island_Evil,
            "I don't know much more than that, I'm afraid.", -;
    close;

L_At_Island_Summon:
    mes "[Doctor]";
    mes "";
    mes "\"Summoning them? Via some sort of magic, presumably, or do you mean by other means?\"";
    next;
    menu "Yes, with magic, I think. The creatures can be aggravated, even.", L_At_Island_Magic,
            "Other means? I never thought of that. Could you explain?", L_At_Island_Void,
            "On second thought, I've lost my train of thought.", -;
    close;

L_At_Island_Void:
    mes "[Doctor]";
    mes "";
    mes "\"Sure, it is a distinct possibility.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"The Void, or otherwise this sort of, empty space between universes.\"";
    mes "\"It might be easier to think about the universes as being stacked on top of one another, though can't quite say there's an up or a down about the Void.\"";
    close;

L_At_Island_Spirits:
    mes "[Doctor]";
    mes "";
    mes "\"Sort of like spirits?\" Or are you suggesting that these blobs are the collective energy lost upon death?\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Um, I'm not sure what to make of that.\"";
    close;

L_At_Island_Time:
    mes "[Doctor]";
    mes "\"Time, did you say?\" He takes a moment. \"Well, it's more like a big ball--it's probably not what you think. But you know? I have detected temporal abnormalities here.\"";
    close;

L_At_Island_Dark:
    mes "[Doctor]";
    mes "";
    mes "\"Your home isn't all that safe? Are there regular patrols, or is there a shortage of help?\"";
    next;
    menu "I forgot what we were talking about. Something about the wisps?", L_At_Island_Wisps,
            "Well, either way, I can't quite compare that to this... sinister atmosphere.", -,
            "It--wait, a shortage? Well...", L_At_Island_Help;
    mes "[Doctor]";
    mes "";
    mes "\"That feeling does pervade this world. A darkness that wishes to smother and extinguish all in its path.\"";
    next;
    menu "Maybe a poison was unleashed, and it's what's causing the death, and the erratic behaviour?", -,
            "So, could the behaviour of these wisps be explained by magic?", -,
            "Could we start over? I was trying to recall what you said--hello?", L_At_Island_Knows_Doctor,
             "Well, the effects, though widespread, seem to be more severe at times.", L_At_Island_Evil;
    mes "[Doctor]";
    mes "";
    mes "\"A very valid idea. Hm...\"";
    close;

L_At_Island_Evil:
    mes "[Doctor]";
    mes "";
    mes "\"Yes, sadly that does seem to be the case at times. I feel we've almost solved at least this mystery. Just... definitively, what would you say is going on here?\"";
    next;
    setarray @menuitems$,
     "I think the wisps are drawn to those that have died, like... me? And when they become aggravated they end up destroying more of the world.",
        "In order to escape, the beings that have died and ended up here are forced to... fight?",
        "An evil force placed a curse on all of us, dooming us to fight here, pitted against one another in pointless battle--for all eternity!",
        "The trees are dead as a result of the fighting, and the wisps are angry spirits looking for revenge?",
        "This world is in disarray, subject to chaos, and ultimately, utter destruction. Those, like me, have been given an opportunity, a choice--to put an end to this, to drive out the evil stench that plagues this land.",
        "Unlike me, the old woman that led me here was not without hidden motives. So, she planted a way to bring me here, and in doing so, eliminated the ones that could foil her plans.",
        "When I died and came here, my soul was fragmented, and part of it manifested as the tormented wisps here now?",
        "You do seem rather odd, using those alien devices. I think you're to blame for what's happened here!",
        "Something, or someone, perhaps, walks this world, appearing from the shadows. With it come misery and pain. But it is up to us to rid this world of its blight.",
        "There is an intermittent, evil presence in this world. When it arrives it brings about more destruction, resulting in these dead trees. Then, at the whim of its madness, it uses magic to incite the wisps to attack and be unwilling accomplices.";
    setarray @submenu$, "", "", "", "";
    setarray @submenuindex, 0, 0, 0, 0;
    set @c, 0;

L_island_end_menu_loop:
    set @index, rand(getarraysize(@menuitems$));
    set @i, 0;
    if (@c == 0) goto L_island_post_menu_loop_sub;
L_island_end_menu_loop_sub:
    if (@submenu$[@i] == @menuitems$[@index]) goto L_island_end_menu_loop;
    set @i, @i + 1;
    if (@i < @c) goto L_island_end_menu_loop_sub;
L_island_post_menu_loop_sub:
    set @submenu$[@i], @menuitems$[@index];
    set @submenuindex[@i], @index;
    set @c, @c + 1;
    if (@c < 4) goto L_island_end_menu_loop;

    menu @submenu$[0], -,
         @submenu$[1], -,
         @submenu$[2], -,
         @submenu$[3], -;
    set @menu, @menu - 1;
    if (@menu >= 4 || @menu < 0) goto L_island_oo_range;
    if (@submenuindex[@menu] == 8 || @submenuindex[@menu] == 9)
        goto L_At_Island_Resolve;

L_island_oo_range:
    mes "[Doctor]";
    mes "";
    mes "\"Ah, I'm sorry, but that doesn't seem to fit with what we know. Perhaps we should give this some more thought.\"";
    close;

L_At_Island_Help:
    menu "Yes, help is probably needed, but I hadn't really considered my own role...", -,
            "Perhaps, but it's not really my problem.", -;
    mes "[Doctor]";
    mes "";
    mes "\"Just as you are helping here, I believe that if it is what you desire, you can find a suitable way to help elsewhere, too.\"";
    close;

L_At_Island_Resolve:
    callsub S_Update_Helped;
    mes "[Doctor]";
    mes "";
    mes "\"Ha-ha, that's it! Brilliant!\" He shakes your hand enthusiastically. \"I knew you could do it! You don't know how much your help means!\"";
    close;

L_At_Island_Offer_Lifestone:
    mes "[Doctor]";
    mes "";
    mes "\"Hm, no, while I appreciate your generosity, I don't think that will be necessary.\"";
    mes "He looks off into the distance. \"Strange things...\"";
    close;

L_At_Island_Helped:
    mes "[Doctor]";
    mes "";
    mes "The Doctor smiles. \"A disturbing force is devastating this world. But with your help I think we're well on our way. Indeed.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Well, I won't keep you, still rather busy. Should probably survey some other regions, too.\" The Doctor's words trail off as he returns to thought.";
    next;
    menu "Okay, I'll see you around!", -,
            "Actually, I'd like to go home now. Any chance you could help?", L_Warning;
    close;

// ===================================================================
// Helper portions, duplicated in each script for want of time, sorry.
// ===================================================================

// The player has defeated the invader and helped enough times.
L_Return_Ready_Optional:
    if (!(~(Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK) || ((Easter_2010_QuestState >> E10_HELPED_DOCTOR_ISLAND_SHIFT) & E10_HELPED_DOCTOR_ISLAND_MASK))
        goto L_Return_Ready;

    // Player can help one more time, if so desired.
    mes "[Doctor]";
    mes "";
    mes "\"Well... this has been quite an adventure, hasn't it? I'd say it's about timey--er, time for me to go, but I think I can stick around for a little while longer to tie up some loose ends for myself.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Oh, did you want to help again?\"";
    next;
    menu "Sure, that sounds good", L_At_Island,
            "Hm, I can't right now, but maybe later.", L_Return_Ready,
            "I was looking for a way to go home.", L_Return_Capable,
            "No, sorry, I don't think so.", L_Return_Ready;
    close;

// Player has done "everything" to do in this world, just talking to the Doctor.
L_Return_Ready:
    set @parting$, "!";
    if (strcharinfo(0) == "Alonso" || strcharinfo(0) == "AlOnS") set @parting$, ", Alonso!";
    mes "[Doctor]";
    mes "";
    mes "\"Well, you have been absolutely brilliant! Brilliant! Very impressive.\" He smiles kindly and shakes your hand. \"It has been a pleasure. Now for the next adventure. Allons-y" + @parting$ + "\"";
    close;

L_Defeat_Invader:
    mes "[Doctor]";
    mes "";
    mes "\"Ah-ha! It's nice to see you again. How goes the battle?\"";
    next;
    menu "I'm having a hard time, actually. I'd like to go home...", -,
            "Regrouping now for the next encounter, actually.", L_Encourage;
    goto L_Warning;

L_Encourage:
    mes "[Doctor]";
    mes "";
    mes "\"Oh, well, I think you'll prevail in the end! If you'll excuse me, I still have some things to see to.\"";
    close;

L_MidReward:
    if (((Easter_2010_QuestState >> E10_FLAG_MID_REWARD_SHIFT) & E10_FLAG_MID_REWARD_MASK)) close;
    mes "[Doctor]";
    mes "";
    mes "\"Fantastic! You have really been quite helpful.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Er, now that I think about it, perhaps I have something you'd be interested in.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"While visiting another dimension--hm, as a matter of fact, it was quite like this one. But their choices in the past seem to have differed from the ones here...\"";
	next;
    mes "[Doctor]";
    mes "";
    mes "The Doctor reflects on his words. \"Interesting how things turn out. Well, I now have a lot of these Valentine's Glasses, if you'd like a pair.\"";
    next;
    getinventorylist;
    if (@inventorylist_count == 100)
        goto L_MidReward_NoRoom;
    mes "[Doctor]";
    mes "";
    mes "He hands you the glasses.";
    mes "\"They're not too brainy, or suited for detecting background radiation, but they are charming.\"";
    set Easter_2010_QuestState, Easter_2010_QuestState & ~(E10_FLAG_MID_REWARD_MASK << E10_FLAG_MID_REWARD_SHIFT) | (E10_FLAG_MID_REWARD << E10_FLAG_MID_REWARD_SHIFT);
    getitem E10_MIDREWARD_ID, 1;
    close;

L_MidReward_NoRoom:
    mes "[Doctor]";
    mes "";
    mes "\"Oh, I don't think you have room for these. Well, I suppose I'll hold on to them for now.\"";
    close;

// Warning about the potential perils ahead, but the player must still want to abort the quest.
L_Warning:
    mes "[Doctor]";
    mes "";
    mes "\"There is no doubt in my mind that what awaits us is both powerful and dangerous, to say the least.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"If this... destruction, this disregard for life isn't an indication, what is?\"";
    mes "He takes a moment, searching your face.";
    next;
    mes "[Doctor]";
    mes "";
    if (((Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK))
        mes "\"I do appreciate your help thus far, really. And I did look forward to working with you again in putting an end to this devastation.\"";
    if (!((Easter_2010_QuestState >> E10_HELPED_DOCTOR_SHIFT) & E10_HELPED_DOCTOR_MASK))
        mes "\"Despite the danger, I think pressing on would certainly be a brave choice.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"But if you were to leave now, I'm afraid it would be impossible to return...\"";
    mes "He pauses again. \"There is still time for you to turn back now, while it's relatively easy.\"";
    next;
    menu "N-no, I-I think I will continue... Yes, I'm ready!", -,
            "Now that you mention it, maybe I'd better leave now while I can.", L_Turn_Back,
            "Um, could I have a minute to think it over?", -;
    close;

L_Turn_Back:
    mes "[Doctor]";
    mes "";
    mes "\"You really want to turn back now?\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"I don't think there's any shame in going back. Quite the contrary. You're brave for even being here.\"";
    mes "He hesitates ever so slightly, choosing his words. \"I just wanted to make sure you were certain about your decision.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Once you've left, I don't see how you'll be able to return.\"";
    next;
    menu "On second thought, perhaps I will stick around.", -,
            "No, no, I'm quite sure I want to leave.", L_Really_Return;
    close;

// The player definitely wants to go back, and there's no returning.
L_Really_Return:
    if ((Easter_2010_QuestState >> E10_FLAG_RETURN_READY_SHIFT) & E10_FLAG_RETURN_READY_MASK == E10_FLAG_RETURN_READY && (Easter_2010_QuestState >> E10_STATE_ROSE_SHIFT) & E10_STATE_ROSE_MASK == E10_STATE_ROSE_ROSE_COMPLETE)
        goto L_Return_Capable;
    mes "[Doctor]";
    mes "";
    mes "\"If that is what you want, then consider it done. And good luck.\"";
    next;
    goto L_Return_Player;

L_Return_Player:
    callsub S_Helped_Count;
    if (countitem("DarkPetal") == 0 && @Easter_2010_helper < 3) goto L_Difficult_Return;
    set Easter_2010_QuestState, (Easter_2010_QuestState & ~(E10_STATE_ROSE_MASK << E10_STATE_ROSE_SHIFT)) | (E10_STATE_ROSE_RETURNED << E10_STATE_ROSE_SHIFT);
    if (@Easter_2010_helper < 3)
        delitem "DarkPetal", 1;
    savepoint "009-1", 52, 40;
    warp "009-1", 0, 0;
    close;

L_Difficult_Return:
    mes "[Doctor]";
    mes "";
    mes "\"Hm... you don't seem to have the thing that brought you here, that petal, that I could have used to send you back... assuming you really do want to give up.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Others have been able to battle some darkness directly, which might serve as a substitute.\"";
    mes "\"You could still help me here and elsewhere if you want to try to get this done once and for all, but if you want to go early you will need to fight, somehow.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"Though there are others helping, too. No doubt that soon enough, you'll be able to go anyway...\"";
    close;

L_Return_Capable:
    mes "[Doctor]";
    mes "";
    mes "\"Hm. Oh, it looks like you've learned how to travel between these worlds on your own. Don't you remember the way?\"";
    next;
    menu "Oh, you're right! It was a spell, um..." + getspellinvocation("world-shift") + " was the name!", -;
    mes "[Doctor]";
    mes "";
    mes "\"Excellent! Though I suspect its effects will work best when you are closer to where you started.\"";
    next;
    mes "[Doctor]";
    mes "";
    mes "\"When you came to this world, where did you end up? I trust that is your origin.\"";
    close;

S_Dialogue_Knows:
    mes "[Doctor]";
    mes "";
    mes "\"Oh, hello again... hm...\"";
    next;
    mes "[Doctor]";
    mes "";
    mes @responses$[rand(getarraysize(@responses$))];
    return;

S_Update_Knows:
    // Working "name" for when he hasn't introduced himself (can be changed).
    mes "[Mysterious Man]";
    mes "";
    mes @responses$[rand(getarraysize(@responses$))];
    next;
    set Easter_2010_QuestState, Easter_2010_QuestState & ~(E10_FLAG_KNOWS_DOCTOR_MASK << E10_FLAG_KNOWS_DOCTOR_SHIFT) | (E10_FLAG_KNOWS_DOCTOR << E10_FLAG_KNOWS_DOCTOR_SHIFT);
    mes "[Doctor]";
    mes "";
    mes "\"Oh, excuse me,\" he gestures. \"I'm the Doctor.\"";
    return;

S_Update_Helped:
    set Easter_2010_QuestState, Easter_2010_QuestState & ~(E10_FLAG_HELPED_DOCTOR_ISLAND_MASK << E10_FLAG_HELPED_DOCTOR_ISLAND_SHIFT) | (E10_FLAG_HELPED_DOCTOR_ISLAND << E10_FLAG_HELPED_DOCTOR_ISLAND_SHIFT);
    callsub S_Helped_Count;
    if (@Easter_2010_helper == 3) set Easter_2010_QuestState, (Easter_2010_QuestState & ~(E10_STATE_ROSE_MASK << E10_STATE_ROSE_SHIFT)) | (E10_STATE_ROSE_ROSE_COMPLETE << E10_STATE_ROSE_SHIFT);
    return;

S_Helped_Count:
    set @Easter_2010_helper, 0;
    if ((Easter_2010_QuestState >> E10_FLAG_HELPED_DOCTOR_TREE_SHIFT) & E10_FLAG_HELPED_DOCTOR_TREE_MASK == E10_FLAG_HELPED_DOCTOR_TREE)
        set @Easter_2010_helper, @Easter_2010_helper + 1;
    if ((Easter_2010_QuestState >> E10_FLAG_HELPED_DOCTOR_ISLAND_SHIFT) & E10_FLAG_HELPED_DOCTOR_ISLAND_MASK == E10_FLAG_HELPED_DOCTOR_ISLAND)
        set @Easter_2010_helper, @Easter_2010_helper + 1;
    if ((Easter_2010_QuestState >> E10_FLAG_HELPED_DOCTOR_STONES_SHIFT) & E10_FLAG_HELPED_DOCTOR_STONES_MASK == E10_FLAG_HELPED_DOCTOR_STONES)
        set @Easter_2010_helper, @Easter_2010_helper + 1;
    if ((Easter_2010_QuestState >> E10_FLAG_HELPED_DOCTOR_FRUIT_SHIFT) & E10_FLAG_HELPED_DOCTOR_FRUIT_MASK == E10_FLAG_HELPED_DOCTOR_FRUIT)
        set @Easter_2010_helper, @Easter_2010_helper + 1;
    return;
}