--- /smaug/src/fight.c Thu Feb 6 09:22:48 1997 +++ /game/dist/src/fight.c Fri May 30 00:54:18 1997 @@ -150,7 +150,7 @@ */ sh_int VAMP_AC( CHAR_DATA * ch ) { if ( IS_VAMPIRE( ch ) || IS_OUTSIDE( ch ) ) { switch(weather_info.sunlight) { @@ -606,7 +606,7 @@ /* Very high chance of hitting compared to chance of going berserk */ /* 40% or higher is always hit.. don't learn anything here though. */ /* -- Altrag */ - chance = IS_NPC(ch) ? 100 : (ch->pcdata->learned[gsn_berserk]*5/2); + chance = IS_NPC(ch) ? 100 : (ch->pcdata->learned[gsn_berserk]*6/2); if ( IS_AFFECTED(ch, AFF_BERSERK) && number_percent() < chance ) if ( (retcode = one_hit( ch, victim, dt )) != rNONE || who_fighting( ch ) != victim ) @@ -694,6 +694,30 @@ else learn_from_failure( ch, gsn_fifth_attack ); + chance = IS_NPC(ch) ? ch->level + : (int) ((ch->pcdata->learned[gsn_sixth_attack]+(dual_bonus*4))/4); + if ( number_percent( ) < chance ) + { + learn_from_success( ch, gsn_sixth_attack ); + retcode = one_hit( ch, victim, dt ); + if ( retcode != rNONE || who_fighting( ch ) != victim ) + return retcode; + } + else + learn_from_failure( ch, gsn_sixth_attack ); + + chance = IS_NPC(ch) ? ch->level + : (int) ((ch->pcdata->learned[gsn_seventh_attack]+(dual_bonus*5))/4); + if ( number_percent( ) < chance ) + { + learn_from_success( ch, gsn_seventh_attack ); + retcode = one_hit( ch, victim, dt ); + if ( retcode != rNONE || who_fighting( ch ) != victim ) + return retcode; + } + else + learn_from_failure( ch, gsn_seventh_attack ); + retcode = rNONE; chance = IS_NPC(ch) ? (int) (ch->level / 2) : 0; @@ -1715,7 +1739,7 @@ /* * Vampire self preservation -Thoric */ - if ( IS_VAMPIRE(victim) ) + if ( IS_VAMPIRE(victim) || IS_DEMON(victim) ) { if ( dam >= (victim->max_hit / 10) ) /* get hit hard, lose blood */ gain_condition(victim, COND_BLOODTHIRST, -1 - (victim->level / 20)); @@ -2647,7 +2671,7 @@ } victim->pcdata->condition[COND_FULL] = 12; victim->pcdata->condition[COND_THIRST] = 12; - if ( IS_VAMPIRE( victim ) ) + if ( IS_VAMPIRE( victim ) || IS_DEMON( victim ) ) victim->pcdata->condition[COND_BLOODTHIRST] = (victim->level / 2); if ( IS_SET( sysdata.save_flags, SV_DEATH ) )