diff options
Diffstat (limited to 'world/map/npc/048-2/bluesageConfig.txt')
-rw-r--r-- | world/map/npc/048-2/bluesageConfig.txt | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/world/map/npc/048-2/bluesageConfig.txt b/world/map/npc/048-2/bluesageConfig.txt new file mode 100644 index 00000000..284aefb6 --- /dev/null +++ b/world/map/npc/048-2/bluesageConfig.txt @@ -0,0 +1,104 @@ +// Blue Sage quest +// The mansion of the Sage is in confusion, because a magic experiment with the slimes went wrong, +// the white and blue slimes got out of control, ate most of the books in the library +// and most of the slimes escaped to the outside world +// Variable used: QUEST_BlueSage +// Author: Jenalya + +// Subquests: + +// Byte 0: +// Bit 0 - 4: Collect missing book pages +// some of the helpers are working on recreating the more valuable books +// they need the missing bookpages for that +// value gives the number of new pages given to the helpers (up to 31) +// bit 5: got Grimoire as reward for collecting the bookpages and bringing material to repair the books +// Bit 6: got reward for defeating the remaining slimes in the library +// Bit 7: unused + +// Nibble 2 as flags: Bring material to repair the books and make new books +// Bit 0: Reed Bundles +// Bit 1: Silk Cocoons +// Bit 2: Yeti Claws +// Bit 3: Inks (Bottle of Water, Iron Powder, Wisp Powder, Spectre Powder, Poltergeist Powder) + +// Nibble 3: Investigation of how the accident could have happened +// state 1: helper who is considered to have caused the accident asks the player to talk to the chief helper to find out if he's going to loose his job +// state 2: talked to chief and get the mission to investigate about what exactly happened +// there are two independent circumstances to gather information about, one is about how the helpers did their job (a) and another about a suspicious visitor shortly before the accident happened (b) +// this is saved as described here: +// (a) (b) +// 0 0 (state 2) started investigation +// 0 1 (state 3) talked to Janitor +// 0 2 (state 4) got more information about visitor +// 1 0 (state 5) talked to Peetu +// 1 1 (state 6) talked to Peetu and talked to Janitor +// 1 2 (state 7) talked to Peetu and got more information about visitor +// 2 0 (state 8) got more information about Peetu +// 2 1 (state 9) got more information about Peetu and talked to Janitor +// 2 2 (state 10) got more information about Peetu and got more information about visitor +// (a) first talk to the helper in the bedroom, who describes how careful he has been +// (a) and then to at least one of the helpers in the library, who supports that +// (a) it's possible to talk to more helpers, who will support too, but it suffices to talk to one +// (b) first talk to the janitor in the entrance room, who mentions the suspicious visitor +// (b) then talk to at least one of the helpers in the entrance room/library who give more information about the visitor +// (b) it's possible to talk to more helpers, who will give redundant information, but it suffices to talk to one +// so to have somed progress in (a) add three to the variable, and for progress in (b) add one +// state 11: reported to chief helper and got a reward +// state 12: told Peetu about the result and eventually got another small reward + +// Byte 2: Hunt some remaining slimes between the bookshelves +// Bit 0: started the subquest +// Bit 1 - 7: each spawn point is unique and saved with a flag + +-|script|#bluesageconfig|-1,{ +OnInit: + set $@Q_BlueSageMinimumLevel, 60; + + set $@Q_BlueSageBookPages_MASK, 0x1F; + set $@Q_BlueSageBookPages_SHIFT, 0; + + set $@Q_BlueSageGrimoire, 0x20; + set $@Q_BlueSageIceSword, 0x40; + + set $@Q_BlueSageMaterial_MASK, NIBBLE_2_MASK; + set $@Q_BlueSageMaterial_SHIFT, NIBBLE_2_SHIFT; + + set $@Q_BlueSageMaterialReed, 0x100; + set $@Q_BlueSageMaterialSilk, 0x200; + set $@Q_BlueSageMaterialClaw, 0x400; + set $@Q_BlueSageMaterialInk, 0x800; + + set $@Q_BlueSageInvestigate_MASK, NIBBLE_3_MASK; + set $@Q_BlueSageInvestigate_SHIFT, NIBBLE_3_SHIFT; + + set $@Q_BlueSageSlimes_MASK, BYTE_2_MASK; + set $@Q_BlueSageSlimes_SHIFT, BYTE_2_SHIFT; + set $@Q_BlueSageSlimesStart, 0x010000; + set $@Q_BlueSageSlime0, 0x020000; + set $@Q_BlueSageSlime1, 0x040000; + set $@Q_BlueSageSlime2, 0x080000; + set $@Q_BlueSageSlime3, 0x100000; + set $@Q_BlueSageSlime4, 0x200000; + set $@Q_BlueSageSlime5, 0x400000; + set $@Q_BlueSageSlime6, 0x800000; + //white + set $@BlueSageSlime0_Amount, 6; + set $@BlueSageSlime1_Amount, 5; + set $@BlueSageSlime2_Amount, 4; + set $@BlueSageSlime3_Amount, 3; + // blue + set $@BlueSageSlime4_Amount, 3; + set $@BlueSageSlime5_Amount, 2; + set $@BlueSageSlime6_Amount, 1; +} + +function|script|updateBlueSageBookPages|{ + set QUEST_BlueSage, (QUEST_BlueSage & ~($@Q_BlueSageBookPages_MASK) | (@bookpages << $@Q_BlueSageBookPages_SHIFT)); + return; +} + +function|script|updateBlueSageInvestigate|{ + set QUEST_BlueSage, (QUEST_BlueSage & ~($@Q_BlueSageInvestigate_MASK) | (@investigate << $@Q_BlueSageInvestigate_SHIFT)); + return; +} |