summaryrefslogblamecommitdiff
path: root/npc/013-1_Woodland_hills/sagatha.txt
blob: e2e71cdb42a822bd27bbaa1032becf935582dca5 (plain) (tree)

































                                                                                           
                                      
                                                


                                                                      








                                                                           


                                           


                                                                                  









                                                           












                                                                                                           
 





                                                     

                                                           













                                                                                                  



























































































































                                                                            





                                           
 
// Sagatha the witch, expert for nature and ether magic
//----------------------------------------

function	script	QuestSagathaHappy {
        set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
        if (@unhappiness < @value)
		goto L_zero;

	set @unhappiness, @unhappiness - @value;
        goto L_write;

L_zero:
	set @unhappiness, 0;

L_write:
	set QUEST_MAGIC, (QUEST_MAGIC & ~NIBBLE_3_MASK) | (@unhappiness << NIBBLE_3_SHIFT);
}

//----------------------------------------
function	script	QuestSagathaAnnoy {
        set @unhappiness, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
        if ((@unhappiness + @value) > 15)
		goto L_max;

	set @unhappiness, @unhappiness + @value;
        goto L_write;

L_max:
	set @unhappiness, 15;

L_write:
	set QUEST_MAGIC, (QUEST_MAGIC & ~NIBBLE_3_MASK) | (@unhappiness << NIBBLE_3_SHIFT);
}

function	script SagathaStatus {
	set @has_magic, getskilllv(SKILL_MAGIC);
        set @evil, 0;
        set @good, 0;
        set @unhappy, (QUEST_MAGIC & NIBBLE_3_MASK) >> NIBBLE_3_SHIFT;
        set @mouboo, ((QUEST_MAGIC & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT) & 3;

        if (@mouboo == 3)
		set @good, @good + 1;
	if (@mouboo == 2)
		set @evil, 1;
	if (@mouboo == 1)
		set @evil, 1;

        if (MAGIC_FLAGS & FLAG_DID_CUTTREE)
		set @evil, 1;

        set @druid, (((QUEST_MAGIC & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT) & 12) >> 2;
        if (@druid == 3)
		set @good, @good + 1;
}

//----------------------------------------
013-1.gat,131,24,0	script	Sagatha#_M	167,{
	callfunc "SagathaStatus";

        set @Q_MASK, NIBBLE_4_MASK;
        set @Q_SHIFT, NIBBLE_4_SHIFT;

        set @Q_status, (QUEST_MAGIC & @Q_MASK) >> @Q_SHIFT;

        if (MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA)
		mes "[Sagatha the Witch]";
        if (!(MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA))
		mes "[Witch]";

        if (@evil)
		goto L_evil;

        if (@unhappy > 10)
		goto L_unhappy;

        mes "Before you stands a beautiful woman, dressed in dark purple robes and wearing a witch's hat.";

        if (Sex)
		mes "She looks at you suspiciously.";
        if (!Sex)
		mes "She looks at you impassively.";
        next;

        set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_KNOWS_SAGATHA;

L_evil:
	mes "The witch's eyes flare up in anger as she notices you, and she turns away from you.";
        mes "Whatever the reason, she doesn't seem to like you.";
        next;
        close;

L_unhappy:
	mes "The witch glares at you in anger.";
        mes "\"I hope you enjoyed killing those innocent forest creatures!\"";
        mes "She turns away, clearly not interested in any discussion.";
        mes "\"Don't come back until you have come to your senses!\"";
        next;
        close;

L_Main:
	menu "What do you know about...", L_Question;
        close;

L_Question:
        set @QQ_ELANORE, 1;
        set @QQ_MANASEED, 2;
        set @QQ_WYARA, 3;
        set @QQ_AULDSBEL, 5;

        setarray @choice$, "", "", "", "", "", "";
        set @choices_nr, 0;
        setarray @choice_idx, 0, 0, 0, 0, 0, 0;

        set @choice$[@choices_nr], "...Elanore the Healer?";
        set @choice_idx[@choices_nr], @QQ_ELANORE;
        set @choices_nr, @choices_nr + 1;

        if (!(MAGIC_FLAGS & (MFLAG_KNOWS_MANASEED | MFLAG_MANASEED_RUMOUR)))
        	goto L_Q_post_manaseed;
        set @choice$[@choices_nr], "...the Mana Seed?";
        set @choice_idx[@choices_nr], @QQ_MANASEED;
        set @choices_nr, @choices_nr + 1;
L_Q_post_manaseed:

        if (!(MAGIC_FLAGS & MFLAG_KNOWS_MANAPOTION))
        	goto L_Q_post_manapotion;
        set @choice$[@choices_nr], "...Mana Potions?";
        set @choice_idx[@choices_nr], @QQ_MANAPOTION;
        set @choices_nr, @choices_nr + 1;
L_Q_post_manapotion:

        if (!(MAGIC_FLAGS & MFLAG_KNOWS_WYARA))
        	goto L_Q_post_wyara;
        set @choice$[@choices_nr], "...Wyara the Witch?";
        set @choice_idx[@choices_nr], @QQ_WYARA;
        set @choices_nr, @choices_nr + 1;
L_Q_post_wyara:

        if (!(MAGIC_FLAGS & MFLAG_KNOWS_SAGATHA))
        	goto L_Q_post_sagatha;
        set @choice$[@choices_nr], "...Sagatha the Witch?";
        set @choice_idx[@choices_nr], @QQ_SAGATHA;
        set @choices_nr, @choices_nr + 1;
L_Q_post_sagatha:

        if (!(MAGIC_FLAGS & MFLAG_KNOWS_AULDSBEL))
        	goto L_Q_post_auldsbel;
        set @choice$[@choices_nr], "...Auldsbel the Wizard?";
        set @choice_idx[@choices_nr], @QQ_AULDSBEL;
        set @choices_nr, @choices_nr + 1;
L_Q_post_auldsbel:

        set @choice$[@choices_nr], "...never mind.";
        set @choice_idx[@choices_nr], 0;
        set @choices_nr, @choices_nr + 1;

        menu @choice$[0], -,
             @choice$[1], -,
             @choice$[2], -,
             @choice$[3], -,
             @choice$[4], -;

        set @menu, @menu - 1;

        if (@menu >= @choices_nr)
		set @menu, 0;
	
        set @c, @choice_idx[@menu];

        if (@c == 0)		goto L_Main;
        if (@c == @QQ_ELANORE)	goto L_Q_elanore;
        if (@c == @QQ_MANASEED)	goto L_Q_manaseed;
        if (@c == @QQ_MANAPOTION)	goto L_Q_manapotion;
        if (@c == @QQ_WYARA)	goto L_Q_wyara;
        if (@c == @QQ_AULDSBEL)	goto L_Q_auldsbel;
        close;

L_Q_elanore:
        mes "[Sagatha the Witch]";
        mes "\"FIXME.\"";
        next;
        goto L_Main;

L_Q_manaseed:
        mes "[Sagatha the Witch]";
        if (!@has_magic && (MAGIC_FLAGS & MFLAG_TOUCHED_MANASEED))
        	goto L_Q_manaseed_unabsorbed;
        if (@has_magic)
		goto L_Q_manaseed_m;
        mes "\"arimasu\"";
        next;
        goto L_Main;

L_Q_manaseed_unabsorbed:
        mes "[Sagatha the Witch]";
        mes "\"...unattuned.\"";
        next;
        goto L_Main;

L_Q_manaseed_m:
        mes "[Sagatha the Witch]";
        mes "\"...\"";
        next;
        goto L_Main;

L_Q_manapotion:
        mes "[Sagatha the Witch]";
        mes "\"Can't make one without a cauldron.\"";
        next;
        goto L_Main;

L_Q_wyara:
        mes "[Sagatha the Witch]";
        mes "\"\"";
        next;
        goto L_Main;

L_Q_auldsbel:
        mes "[Sagatha the Witch]";
        mes "\"\"";
        next;
        goto L_Main;


S_update_var:
	set QUEST_MAGIC,
		(QUEST_MAGIC & ~(@Q_MASK)
		| (@Q_status << @Q_SHIFT));
	return;
}