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
This commit is contained in:
2014-12-18 20:36:11 -05:00
parent d36f00eb3d
commit d41616db6a

View File

@@ -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);