summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/magic.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/functions/magic.txt')
-rw-r--r--world/map/npc/functions/magic.txt191
1 files changed, 0 insertions, 191 deletions
diff --git a/world/map/npc/functions/magic.txt b/world/map/npc/functions/magic.txt
deleted file mode 100644
index 426bf28c..00000000
--- a/world/map/npc/functions/magic.txt
+++ /dev/null
@@ -1,191 +0,0 @@
-// Basic magic functionality
-
-// Magic system uses:
-// - MAGIC_EXP (magic experience points, gained for spellcasting)
-// - MAGIC_FLAGS
-// Magic quests use:
-// - QUEST_MAGIC
-// - QUEST_MAGIC2
-
-// ------------------------------------------------------------
-// Gain initial magic skill
-// ------------------------------------------------------------
-function|script|MagicGainBasic
-{
- set MAGIC_FLAGS, MAGIC_FLAGS | MFLAG_DRANK_POTION;
- // Doomsday Act 5 utils
- if (getmap() == "099-5")
- addtimer 10, "Zax De'Kagen#0::OnAdjustPotion";
- return;
-}
-
-// ------------------------------------------------------------
-// Initialise Menu for selecting a choice of things to ask about
-// ------------------------------------------------------------
-function|script|MagicTalkOptionsSetup
-{
- set @QQ_ELANORE, 1;
- set @QQ_MANASEED, 2;
- set @QQ_MANAPOTION, 4;
- set @QQ_WYARA, 8;
- set @QQ_SAGATHA, 16;
- set @QQ_AULDSBEL, 32;
- set @QQ_IMP, 64;
- set @QQ_OLDWIZ, 128;
- set @QQ_ASTRALSOUL, 256;
- return;
-}
-
-// ------------------------------------------------------------
-// Print and run menu for choice of things to ask about
-// Ignores the entry in @ignore
-// Returns the result in @c, or returns 0 if there is no result
-// ------------------------------------------------------------
-
-function|script|MagicTalkMenu
-{
- setarray @choice$, "", "", "", "", "", "", "", "", "", "";
- set @choices_nr, 0;
- setarray @choice_idx, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
-
- if (@ignore & @QQ_ELANORE)
- goto L_Q_post_elanore;
- set @choice$[@choices_nr], "...Elanore the Healer?";
- set @choice_idx[@choices_nr], @QQ_ELANORE;
- set @choices_nr, @choices_nr + 1;
- goto L_Q_post_elanore;
-
-L_Q_post_elanore:
- if (@ignore == @QQ_MANASEED)
- goto L_Q_post_manaseed;
- 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;
- goto L_Q_post_manaseed;
-
-L_Q_post_manaseed:
- if (@ignore & @QQ_MANAPOTION)
- goto L_Q_post_manapotion;
- 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;
- goto L_Q_post_manapotion;
-
-L_Q_post_manapotion:
- if (@ignore & @QQ_WYARA)
- goto L_Q_post_wyara;
- 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;
- goto L_Q_post_wyara;
-
-L_Q_post_wyara:
- if (@ignore & @QQ_SAGATHA)
- goto L_Q_post_sagatha;
- 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;
- goto L_Q_post_sagatha;
-
-L_Q_post_sagatha:
- if (@ignore & @QQ_AULDSBEL)
- goto L_Q_post_auldsbel;
- 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;
- goto L_Q_post_auldsbel;
-
-L_Q_post_auldsbel:
- if (@ignore & @QQ_OLDWIZ)
- goto L_Q_post_oldwiz;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_OLD_WIZARD))
- goto L_Q_post_oldwiz;
- set @choice$[@choices_nr], "...the Old Wizard?";
- set @choice_idx[@choices_nr], @QQ_OLDWIZ;
- set @choices_nr, @choices_nr + 1;
- goto L_Q_post_oldwiz;
-
-L_Q_post_oldwiz:
- if (@ignore & @QQ_IMP)
- goto L_Q_post_imp;
- if (!(MAGIC_FLAGS & MFLAG_KNOWS_IMP))
- goto L_Q_post_imp;
- set @choice$[@choices_nr], "...the Earth Spirit in the desert well?";
- set @choice_idx[@choices_nr], @QQ_IMP;
- set @choices_nr, @choices_nr + 1;
- goto L_Q_post_imp;
-
-L_Q_post_imp:
- if (@ignore & @QQ_ASTRALSOUL)
- goto L_Q_post_astralsoul;
- if (!(getskilllv(SKILL_MAGIC)))
- goto L_Q_post_astralsoul;
- if (!(getskilllv(SKILL_POOL)))
- goto L_Q_post_astralsoul;
- set @choice$[@choices_nr], "...ways to improve my magic?";
- set @choice_idx[@choices_nr], @QQ_ASTRALSOUL;
- set @choices_nr, @choices_nr + 1;
- goto L_Q_post_astralsoul;
-
-L_Q_post_astralsoul:
- set @choice$[@choices_nr], "...never mind.";
- set @choice_idx[@choices_nr], 0;
- set @choices_nr, @choices_nr + 1;
-
- menu
- @choice$[0], L_MenuItems,
- @choice$[1], L_MenuItems,
- @choice$[2], L_MenuItems,
- @choice$[3], L_MenuItems,
- @choice$[4], L_MenuItems,
- @choice$[5], L_MenuItems,
- @choice$[6], L_MenuItems,
- @choice$[7], L_MenuItems,
- @choice$[8], L_MenuItems,
- @choice$[9], L_MenuItems;
-
-L_MenuItems:
- set @menu, @menu - 1;
-
- if (@menu >= @choices_nr)
- set @menu, 0;
-
- set @c, @choice_idx[@menu];
- return;
-}
-
-
-// ------------------------------------------------------------
-// Level up a skill
-// @SUP_id skill ID to level up
-// @SUP_lvl skill level to attain
-// @SUP_name$ name of the skill to level up
-// @SUP_xp # of experience points to award if the level up succeeds
-// ------------------------------------------------------------
-function|script|SkillUp
-{
- if (getskilllv(@SUP_id) >= @SUP_lvl)
- goto L_shortcut;
-
- misceffect sfx_skillup, strcharinfo(0);
- setskill @SUP_id, @SUP_lvl;
- getexp @SUP_xp, 0;
- if (@SUP_xp)
- mes "[" + @SUP_xp + " experience points]";
- mes "[Level " + @SUP_lvl + " in " + @SUP_name$ + "]";
- return;
-
-L_shortcut:
- mes "[You already have level " + getskilllv(@SUP_id) + " in " + @SUP_name$ + "]";
- return;
-}