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."); add_string_to_buf(" Demon resisted.");
else { else {
r1 = get_ran(8 + bonus * 2, 1, 11); r1 = get_ran(8 + bonus * 2, 1, 11);
//if(PSD[4][0] == 3) // anama if(univ.party[spell_caster].status[eStatus::DUMB] < 0)
// r1 += 25; r1 += -25 * univ.party[spell_caster].status[eStatus::DUMB] / 3;
//play_sound(53);
hit_space(cur_monst->cur_loc,r1,eDamageType::UNBLOCKABLE,0,current_pc); hit_space(cur_monst->cur_loc,r1,eDamageType::UNBLOCKABLE,0,current_pc);
} }
store_sound = 24; store_sound = 24;
@@ -5273,8 +5272,16 @@ short get_monst_sound(cCreature *attacker,short which_att) {
return 9; return 9;
case eMonstMelee::BITE: case eMonstMelee::BITE:
return 10; return 10;
case eMonstMelee::STING:
default: 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. // 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 // 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) { if(attacker->m_type == eRace::HUMAN) {
@@ -5282,14 +5289,14 @@ short get_monst_sound(cCreature *attacker,short which_att) {
return 3; return 3;
else return 2; 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) if(attacker->m_type == eRace::MAGE)
return 1; return 1;
if(attacker->m_type == eRace::PRIEST) if(attacker->m_type == eRace::PRIEST)
return 4; return 4;
return 0; if(isHumanoid(attacker->m_type) || attacker->m_type == eRace::GIANT) {
return 2;
}
return 1;
} }
return 0; return 0;
} }

View File

@@ -1668,14 +1668,10 @@ void kill_monst(cCreature *which_m,short who_killed,eMainStatus type) {
break; 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)) { if(((is_town()) || (which_combat_type == 1)) && (which_m->summoned == 0)) {
univ.party.m_killed[univ.town.num]++; 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->spec1 = 0; // make sure, if this is a spec. activated monster, it won't come back
which_m->active = 0; which_m->active = 0;