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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
Reference in New Issue
Block a user