summaryrefslogtreecommitdiff
path: root/world/map/npc/033-1
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/033-1')
-rw-r--r--world/map/npc/033-1/_import.txt2
-rw-r--r--world/map/npc/033-1/_mobs.txt2
-rw-r--r--world/map/npc/033-1/_warps.txt3
-rw-r--r--world/map/npc/033-1/birrod.txt91
-rw-r--r--world/map/npc/033-1/debug.txt10
-rw-r--r--world/map/npc/033-1/kimarr.txt17
-rw-r--r--world/map/npc/033-1/yerrnk.txt9
7 files changed, 69 insertions, 65 deletions
diff --git a/world/map/npc/033-1/_import.txt b/world/map/npc/033-1/_import.txt
index eb257c24..bb31437a 100644
--- a/world/map/npc/033-1/_import.txt
+++ b/world/map/npc/033-1/_import.txt
@@ -1,4 +1,4 @@
-// Map 033-1: Snow field
+// Map 033-1: Snow Field
// This file is generated automatically. All manually changes will be removed when running the Converter.
map: 033-1.gat
npc: npc/033-1/_mobs.txt
diff --git a/world/map/npc/033-1/_mobs.txt b/world/map/npc/033-1/_mobs.txt
index daab38d9..96a51f99 100644
--- a/world/map/npc/033-1/_mobs.txt
+++ b/world/map/npc/033-1/_mobs.txt
@@ -1,5 +1,5 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Snow field mobs
+// Snow Field mobs
diff --git a/world/map/npc/033-1/_warps.txt b/world/map/npc/033-1/_warps.txt
index 37bdd507..538a5dcb 100644
--- a/world/map/npc/033-1/_warps.txt
+++ b/world/map/npc/033-1/_warps.txt
@@ -1,3 +1,4 @@
// This file is generated automatically. All manually changes will be removed when running the Converter.
-// Snow field warps
+// Snow Field warps
+033-1.gat,22,20|warp|ToSnowField|-1,0,034-1.gat,159,19
diff --git a/world/map/npc/033-1/birrod.txt b/world/map/npc/033-1/birrod.txt
index f560b0d0..916d4dc4 100644
--- a/world/map/npc/033-1/birrod.txt
+++ b/world/map/npc/033-1/birrod.txt
@@ -1,26 +1,21 @@
033-1.gat,72,27,0|script|Birrod|217,{
-//TODO: minimum level for quests?
+// TODO: check name of wolf monster after it has been added to the mob_db
set @Q_Barbarians_MASK, NIBBLE_0_MASK;
set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;
set @state, ((QUEST_Barbarians & @Q_Barbarians_MASK) >> @Q_Barbarians_SHIFT);
-//TODO: think about amount
- set @candy, 25;
- set @chocolate, 20;
- set @candycane, 15;
- set @sweet_exp, 10000;
-
-// different idea: wolf ambushs on 034-1
-//TODO set @wolfdrop, ;
-//TODO set @wolf_exp, ;
+// TODO: determine values:
+ set @wolvern_level, 40; // minimum level to do the wolvern hunting
+ set @wolvern_amount, 10; // number of script spawned wolverns to kill
+ set @wolvern_exp, 5000;
set @minigame_exp, 5000;
if (@state >= 6) goto L_Impressed;
if (@state == 5) goto L_Questions;
- if (@state == 4) goto L_Warrior;
- if (@state == 3) goto L_Sweets;
+ if (@state == 4) goto L_Wolverns;
+ if (@state == 3) goto L_Hunting;
if (@state == 2) goto L_Kimarr;
if (@state == 1) goto L_Fluffy;
@@ -45,62 +40,46 @@ L_Kimarr:
mes "\"But I think, Kimarr has something for you.\"";
close;
-// TODO: decide whether to leave out this part or not
-L_Sweets:
- mes "Birrod speaks with a lowered voice.";
+L_Hunting:
+ if (baselevel < @wolvern_level)
+ goto L_Weak;
mes "[Birrod]";
- mes "\"" + strcharinfo(0) + ", can I ask you for a favor?\"";
+ mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\"";
next;
- mes "\"I noticed those slime things with the funny hats. And they have so tasty stuff with them!\"";
+ mes "\"I noticed some groups of wolverns in the forest west of here which are unusually aggressive.";
+ mes "This makes dangerous to all the small people from the town nearby to go there.\"";
next;
- mes "He blushes.";
- mes "[Birrod]";
- mes "\"A warrior shouldn't get excited about sweets, so ahm, it would be great if you don't tell Yerrnk and Kimarr about it.\"";
+ mes "\"To prove your skills, go to the forest and hunt down " + @wolvern_amount + " of the very aggressive wolverns.\"";
next;
- mes "\"Do you have " + @candy + " Candys, " + @chocolate + " Chocolate Bars and " + @candycane + " Candy Canes for me?\"";
- menu
- "Sure.",-,
- "I'll see what I can do.",L_Close,
- "I'm a great warrior, I don't have sweets with me!",L_Close;
-
- if ((countitem("Candy") < @candy) || (countitem("ChocolateBar") < @chocolate) || (countitem("CandyCane") < @candycane)) goto L_No_Items;
- delitem "Candy", @candy;
- delitem "ChocolateBar", @chocolate;
- delitem "CandyCane", @candycane;
- getexp @sweet_exp, 0;
+ mes "\"There are also some wolverns that behave normally attacking you when you come to close to them.";
+ mes "Those are not the ones I mean, but those that seek the battle themselves.\"";
set @state, 4;
callsub S_Update_Mask;
- mes "[Birrod]";
- mes "\"Thank you!\"";
- mes "He puts the sweets in his pockets covertly.";
- mes "Then takes one candy and eats it with such a delighted look on his face that's really hard not to burst out in laughter.";
close;
-L_Warrior:
-// TODO: player can show his fighting abilities by bringing some drop of wolve monsters
-// different idea: wolf ambushs on 034-1
-// wolve monsters are more dangerous and harder to hunt than fluffies -> harder task
-// reason to hunt them: there unusual aggressive and are a danger for the people living in that area
-// also use of the items the drop (e.g. fur -> clothes)
+L_Wolverns:
+ if (wolvern_count >= @wolvern_amount)
+ goto L_Wolverns_Done;
mes "[Birrod]";
- mes "\"Hello, " + strcharinfo(0) + "! Would you like to prove your hunting skills again?\"";
+ mes "\"Greetings, my friend.";
+ mes "The aggressive wolverns are still roaming the forest west of here.\"";
next;
-// TODO: check name of monster
- mes "\"I noticed many wolverns in this area. When there are so many of them, they reduce the fluffy population too much.";
- mes "Also they are dangerous to all the small people who live in the town nearby.\"";
- next;
- mes "\"Bring me (amount) (TODO:drop of wolvern).";
- mes "alternative: hunt (amount) of the aggressive wolverns in forest in the west.";
- mes "TODO: add story about what useful can be done with that drop.";
- menu
- "Debug succes",-,
- "Debug no succes",L_Close;
+ mes "\"This is your chance to prove your worth.\"";
+ close;
+
+L_Wolverns_Done:
set @state, 5;
callsub S_Update_Mask;
- if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
+ set wolvern_count, 0;
mes "[Birrod]";
+ mes "\"" + strcharinfo(0) + "!";
+ mes "Good work. Now this area is much safer.\"";
+ next;
+ getexp @wolvern_exp, 0;
+ if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
mes "\"Your skills are impressing. You are worthy to be called a warrior of the Mangarr, if you accept.\"";
next;
+ goto L_Questions;
L_Questions:
if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
@@ -251,7 +230,13 @@ L_No_Member:
mes "Come back when you feel better prepared.\"";
close;
+L_Weak:
+ mes "[Birrod]";
+ mes "\"Hello, " + strcharinfo(0) + "! I might have a task for you when you've grown up a bit.\"";
+ close;
+
L_Close:
+ // TODO: set all variables to 0
close;
S_Update_Mask:
diff --git a/world/map/npc/033-1/debug.txt b/world/map/npc/033-1/debug.txt
index 7db90195..5fab2310 100644
--- a/world/map/npc/033-1/debug.txt
+++ b/world/map/npc/033-1/debug.txt
@@ -5,17 +5,27 @@
menu
"Reset all records", -,
"Reset quest",L_Reset,
+ "Set Fluffy Hunting done", L_Fluffy,
"Close", L_Close;
cleararray $Record_Fluffy_Kills, 0, MAX_HIGH_SCORES;
cleararray $Record_Fluffy_Name$, "", MAX_HIGH_SCORES;
cleararray $Record_Fluffy_Date$, "", MAX_HIGH_SCORES;
+L_Fluffy:
+ set @Q_Barbarians_MASK, NIBBLE_0_MASK;
+ set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;
+ set @state, 3;
+ callsub S_Update_Mask;
+ set wolvern_count, 0;
+ close;
+
L_Reset:
set @Q_Barbarians_MASK, NIBBLE_0_MASK;
set @Q_Barbarians_SHIFT, NIBBLE_0_SHIFT;
set @state, 0;
callsub S_Update_Mask;
+ set wolvern_count, 0;
close;
S_Update_Mask:
diff --git a/world/map/npc/033-1/kimarr.txt b/world/map/npc/033-1/kimarr.txt
index b2a7d2e6..7d565001 100644
--- a/world/map/npc/033-1/kimarr.txt
+++ b/world/map/npc/033-1/kimarr.txt
@@ -64,8 +64,6 @@
"Sure! What shall I do?", -,
"No, I don't need to prove anything.", L_Close;
-L_Explain:
- mes "[Kimarr]";
mes "\"Every young member of our tribe proves his or her worth by hunting monsters.\"";
next;
mes "\"The first monsters to hunt are fluffies. Fluffies give a good meal for a young person and the fur can be used to make clothes and blankets.\"";
@@ -114,7 +112,7 @@ L_Reward1:
// as far as I can tell, this fails because it won't resume from the "next"
// when the script is executed via the "OnFluffyDeath" callback
// (I haven't tried via the 301st call of OnTimer1000)
- message strcharinfo(0), "Kimarr: talk to me for your reward";
+ message strcharinfo(0), "Kimarr: Talk to me for your reward.";
goto L_Close;
// this label is reached on completion of the quest, or, if you inventory was
@@ -128,7 +126,7 @@ L_Reward:
if (@inventorylist_count == 100)
goto L_Full_Inv;
set @inventorylist_count, 0;
- mes "[Kimarr]";
+
mes "\"Take this as a symbol of your strength. You're a member of our tribe now.\"";
getitem "YetiSkinShirt", 1;
set @state, 3;
@@ -137,7 +135,6 @@ L_Reward:
goto L_Close;
L_Full_Inv:
- mes "[Kimarr]";
mes "\"You can't carry the reward I want to give you.\"";
goto L_Close;
@@ -160,7 +157,10 @@ L_Game:
set $@Fluffy_FighterID, getcharid(3);
set $@Fluffy_Time, 180;
-//TODO: set minimum number of killed fluffies (maybe based on level?)
+//TODO: set minimum number of killed fluffies, here are some ideas
+// set $@Fluffy_Min, (baselevel*7)/10;
+// set $@Fluffy_Min, (baselevel*2)/3;
+// set $@Fluffy_Min, (baselevel*3)/4;
set $@Fluffy_Min, 2;
warp "033-1.gat", 79, 34;
initnpctimer;
@@ -212,7 +212,6 @@ L_ContinueTimer:
end;
L_GotOut:
- // TODO: this is the only use of $@Fluffy_Fighter$, can we remove it?
npctalk "What a strange thing... " + $@Fluffy_Fighter$ + " just disappeared!";
callsub S_Clean;
end;
@@ -261,7 +260,7 @@ L_BeginHunting:
areamonster "033-1.gat", 79, 29, 88, 42, "", 1089, $@Fluffy_Spawn, "Kimarr::OnFluffyDeath";
- set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 10 * BaseLevel;
+ set $@Fluffy_Extra, 5 * @Fluffy_XmasCake + 3 * @Fluffy_Cake + 12 * ($@Fluffy_Alive + $@Fluffy_Spawn) + 7 * BaseLevel;
if ((BaseLevel > 40) && (rand($@Fluffy_Extra) > 500)) // Ice Goblin
areamonster "033-1.gat", 79, 29, 88, 42, "", 1058, 1, "Kimarr::OnIceGoblinDeath";
if ((BaseLevel > 60) && (rand($@Fluffy_Extra) > 550)) // Santa Slime
@@ -313,7 +312,7 @@ OnFluffyDeath:
// message strcharinfo(0), "Fluffies killed: " + $@Fluffy_Kills;
if ($@Fluffy_Alive != 0)
end;
- if (attachrid($@Fluffy_FighterID))
+ if (attachrid($@Fluffy_FighterID) == 1)
goto L_Killedall;
goto L_GotOut;
end;
diff --git a/world/map/npc/033-1/yerrnk.txt b/world/map/npc/033-1/yerrnk.txt
index a474a759..4e13a169 100644
--- a/world/map/npc/033-1/yerrnk.txt
+++ b/world/map/npc/033-1/yerrnk.txt
@@ -50,6 +50,8 @@ L_Sorrow:
mes "\"I noticed that you're getting along with Kimarr and Birrod very well. That's good.\"";
mes "He smiles, but then an expression of worry gets back to his face.";
next;
+
+L_Mission:
mes "[Yerrnk]";
mes "\"Our tribe is going through dire straits. We used to live in harmony with the mountain ever since.";
mes "Life is hard in the snowy mountains, but this life suits our nature.\"";
@@ -71,14 +73,21 @@ L_Birrod:
mes "[Yerrnk]";
mes "\"" + strcharinfo(0) + ", I have to admit that I'm surprised by your skills.";
mes "You've proved your braveness and strength.\"";
+ next;
if (getskilllv(SKILL_POOL) == 0) goto L_Not_Ready;
mes "\"Please talk to Birrod to receive the initiation ritual to become a warrior of the Mangarr.\"";
+ menu
+ "Alright.",-,
+ "Can you tell me again what are you here for?",L_Mission;
close;
L_Not_Ready:
mes "[Yerrnk]";
mes "\"But you're not yet ready to become a fully accepted warrior of our tribe.";
mes "You should travel the world to gain the ability to focus on your inner strength.\"";
+ menu
+ "Alright.",-,
+ "What are you doing down here?",L_Mission;
close;
L_Warrior: