From d41616db6a74cda63bc5d9b515e1520e3a69633c Mon Sep 17 00:00:00 2001 From: Celtic Minstrel Date: Thu, 18 Dec 2014 20:36:11 -0500 Subject: [PATCH] Some tweaking of monster spell mechanics to bring them more in line with the PC versions - Spark now deals magic damage and Wound deals unblockable damage - Damage is capped for Flame as for the PC version; the damage is still calculated differently though - Poison and Minor Poison damage now depends on the monster's level --- osx/boe.combat.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/osx/boe.combat.cpp b/osx/boe.combat.cpp index e934f701..60f1a763 100644 --- a/osx/boe.combat.cpp +++ b/osx/boe.combat.cpp @@ -3060,7 +3060,7 @@ bool monst_cast_mage(cCreature *caster,short targ) { case eSpell::SPARK: run_a_missile(l,vict_loc,6,1,11,0,0,80); r1 = get_ran(2,1,4); - damage_target(targ,r1,DAMAGE_FIRE); + damage_target(targ,r1,DAMAGE_MAGIC); break; case eSpell::HASTE_MINOR: play_sound(25); @@ -3077,14 +3077,14 @@ bool monst_cast_mage(cCreature *caster,short targ) { case eSpell::FLAME: run_a_missile(l,vict_loc,2,1,11,0,0,80); start_missile_anim(); - r1 = get_ran(caster->level,1,4); + r1 = get_ran(min(15,caster->level),1,4); damage_target(targ,r1,DAMAGE_FIRE); break; case eSpell::POISON_MINOR: run_a_missile(l,vict_loc,11,0,25,0,0,80); if(targ < 6) - poison_pc(targ,2 + get_ran(1,0,1)); - else poison_monst(&univ.town.monst[targ - 100],2 + get_ran(1,0,1)); + poison_pc(targ,2 + get_ran(1,0,caster->level / 2)); + else poison_monst(&univ.town.monst[targ - 100],2 + get_ran(1,0,caster->level / 2)); break; case eSpell::SLOW: run_a_missile(l,vict_loc,15,0,25,0,0,80); @@ -3161,7 +3161,7 @@ bool monst_cast_mage(cCreature *caster,short targ) { break; case eSpell::POISON: run_a_missile(l,vict_loc,11,0,25,0,0,80); - x = get_ran(1,0,3); + x = get_ran(1,0,caster->level / 2); if(targ < 6) poison_pc(targ,4 + x); else poison_monst(&univ.town.monst[targ - 100],4 + x); @@ -3407,7 +3407,7 @@ bool monst_cast_priest(cCreature *caster,short targ) { run_a_missile(l,vict_loc,8,0,24,0,0,80); r1 = get_ran(2,1,6) + 2; start_missile_anim(); - damage_target(targ,r1,DAMAGE_MAGIC); + damage_target(targ,r1,DAMAGE_UNBLOCKABLE); break; case eSpell::SUMMON_SPIRIT: case eSpell::SUMMON_GUARDIAN: play_sound(24);