From e2338c522a4eb22c431e23d181bde27b0849d668 Mon Sep 17 00:00:00 2001 From: Fate Date: Sun, 24 May 2009 16:08:53 +0000 Subject: Added #L20, the cure-poison spell, and made Elanore explain it. --- conf/magic.conf.template | 20 ++++++++++++++++++++ npc/001-1_Tulimshar/elanore.txt | 25 +++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/conf/magic.conf.template b/conf/magic.conf.template index 48a685f4..8c5ac05d 100644 --- a/conf/magic.conf.template +++ b/conf/magic.conf.template @@ -23,6 +23,7 @@ CONST ELT_GHOST = 8 CONST ELT_UNDEAD = 9 # Schools of magic +CONST SC_POISON = 132 CONST SC_SHEARED = 194 # This is the same as SC_HIDE, since mobs can't hide and shearing is only used for mobs. Feel free to fix! CONST SC_HIDE = 194 CONST SC_HALT_REGENERATE = 195 @@ -935,6 +936,25 @@ SPELL hide (target : PC) : "#A13" = # Level 2 spells #-------------------------------------------------------------------------------- +SPELL cure-poison (target : PC) : "#L20" = + LET level = 2 + school = LIFE + IN (MANA 15, CASTTIME 1000, + REQUIRE skill(caster, MAGIC) > level, + REQUIRE skill(caster, school) > level, + REQUIRE (rdistance(location(caster), + location(pc(target))) < 1 + (spellpower / 60)), + COMPONENTS ["GambogeHerb"]) + => EFFECT CALL adjust_spellpower(school); + CALL default_effect(); + IF (running_status_update (target, SC_POISON)) + THEN (CALL gain_heal_xp(40, 1, 2, 2); + stop_status_change (target, SC_POISON); + CALL gain_xp(2); + IF caster <> target + THEN sfx(target, SFX_HEAL, 0);); + + SPELL fire-ball : "#W22" = LET level = 2 school = WAR diff --git a/npc/001-1_Tulimshar/elanore.txt b/npc/001-1_Tulimshar/elanore.txt index 1402f044..a2afb2d3 100644 --- a/npc/001-1_Tulimshar/elanore.txt +++ b/npc/001-1_Tulimshar/elanore.txt @@ -16,6 +16,7 @@ set @STATUS_LEARNED_LAY_ON_HANDS, 3; set @STATUS_WAITING_FOR_KADIYA, 4; set @STATUS_READY_TO_LEARN_CURE_POISON, 5; + set @STATUS_LEARNED_CURE_POISON, 6; if (sc_check(sc_poison)) goto L_CurePoison; @@ -228,6 +229,7 @@ L_Teach: if (@Q_status == @STATUS_LEARNED_LAY_ON_HANDS) goto L_Teach_Explain3; if (@Q_status == @STATUS_WAITING_FOR_KADIYA) goto L_Teach_CheckAdvanceTo3; if (@Q_status == @STATUS_READY_TO_LEARN_CURE_POISON) goto L_Teach_CurePosion; + if (@Q_status == @STATUS_LEARNED_CURE_POISON) goto L_Teach_dunno; mes "[Elanore the Healer]"; mes "\"You have made good progress, but you lack the magical power to advance further. Also, I would like to observe you some more to be certain that you will make a good healer.\""; @@ -502,6 +504,29 @@ L_Teach_AdvanceTo3Ready: goto L_Main; L_Teach_CurePosion: + mes "[Elanore the Healer]"; + mes "\"Thank you again for your help with Kadiya!\""; + mes "\"Curing sicknesses is often quite difficult; most of them require complicated potions to be brewed.\""; + next; + mes "[Elanore the Healer]"; + mes "\"Fortunately, things are much easier with most poisons. For those we have a simple spell that only requires a Gamboge leaf.\""; + mes "\"This is the next spell that I would like to teach you.\""; + next; + mes "[Elanore the Healer]"; + mes "\"If you would like to cure someone who is poisoned, first rub a Gamboge leaf between your hands. Your hands must be covered in Gamboge liquid for this to work.\""; + mes "\"Speak the invocation, `" + getspellinvocation("cure-poison") + "'.\""; + mes "\"Next, you either touch the poisoned person with your hands, or speak their name. You have to be close for this to work, though.\""; + next; + mes "[Elanore the Healer]"; + mes "\"Once again, the invocation is `" + getspellinvocation("cure-poison") + "'.\""; + mes "\"Come back again soon; there is another spell I would like to teach you.\""; + next; + set @Q_status, @STATUS_LEARNED_CURE_POISON; + callsub S_update_var; + + goto L_Main; + +L_Teach_dunno: mes "[Elanore the Healer]"; mes "\"Hmm. I wanted to teach you something, but I've forgotten what it was... please come back later.\""; next; -- cgit v1.2.3-60-g2f50