A few small tweaks

- Add something similar to the Anama ravage spirit bonus, but caused by negative dumbfounding
- Change some of the melee attack sounds based on attack type
- Don't increment total monsters killed if the monster wasn't killed by the party
This commit is contained in:
2015-01-28 17:23:39 -05:00
parent a4350ca8b2
commit ef288f118f
2 changed files with 16 additions and 13 deletions

View File

@@ -1432,9 +1432,8 @@ void do_combat_cast(location target) {
add_string_to_buf(" Demon resisted.");
else {
r1 = get_ran(8 + bonus * 2, 1, 11);
//if(PSD[4][0] == 3) // anama
// r1 += 25;
//play_sound(53);
if(univ.party[spell_caster].status[eStatus::DUMB] < 0)
r1 += -25 * univ.party[spell_caster].status[eStatus::DUMB] / 3;
hit_space(cur_monst->cur_loc,r1,eDamageType::UNBLOCKABLE,0,current_pc);
}
store_sound = 24;
@@ -5273,8 +5272,16 @@ short get_monst_sound(cCreature *attacker,short which_att) {
return 9;
case eMonstMelee::BITE:
return 10;
default:
case eMonstMelee::STING:
return 12;
case eMonstMelee::CLUB:
return 4;
case eMonstMelee::BURN:
return 5;
case eMonstMelee::HARM:
return 0;
case eMonstMelee::STAB:
case eMonstMelee::SWING:
// TODO: These sounds don't quite seem right.
// They're passed to boom_space, so 0 = ouch, 1 = small sword, 2 = loud sword, 3 = pole, 4 = club
if(attacker->m_type == eRace::HUMAN) {
@@ -5282,14 +5289,14 @@ short get_monst_sound(cCreature *attacker,short which_att) {
return 3;
else return 2;
}
if(attacker->m_type == eRace::HUMAN || attacker->m_type == eRace::IMPORTANT || attacker->m_type == eRace::GIANT) {
return 2;
}
if(attacker->m_type == eRace::MAGE)
return 1;
if(attacker->m_type == eRace::PRIEST)
return 4;
return 0;
if(isHumanoid(attacker->m_type) || attacker->m_type == eRace::GIANT) {
return 2;
}
return 1;
}
return 0;
}

View File

@@ -1668,14 +1668,10 @@ void kill_monst(cCreature *which_m,short who_killed,eMainStatus type) {
break;
}
// TODO: Check that this function is not called when a monster kills a monster, since that would lead to false incrementing of the stats.
if(((is_town()) || (which_combat_type == 1)) && (which_m->summoned == 0)) {
univ.party.m_killed[univ.town.num]++;
}
univ.party.total_m_killed++;
which_m->spec1 = 0; // make sure, if this is a spec. activated monster, it won't come back
which_m->active = 0;