# HG changeset patch # User Wuzzy # Date 1506554125 -7200 # Node ID 494d3e1c48106dbf31d2b24fb5eb33921202e48f # Parent 459543ef9b1b76e618737c1270bd467e60aaef39 Don't play “missed” taunt if a target has been hit diff -r 459543ef9b1b -r 494d3e1c4810 hedgewars/uGearsHandlersMess.pas --- a/hedgewars/uGearsHandlersMess.pas Thu Sep 28 00:46:06 2017 +0200 +++ b/hedgewars/uGearsHandlersMess.pas Thu Sep 28 01:15:25 2017 +0200 @@ -2153,6 +2153,8 @@ for i:= 0 to 63 do AddGear(x, y, gtFlame, 0, _0, _0, 0); end + else if k = gtTarget then + uStats.TargetHit() else if k = gtExplosives then begin doMakeExplosion(x, y, Gear^.Boom, hog, EXPLAutoSound); diff -r 459543ef9b1b -r 494d3e1c4810 hedgewars/uStats.pas --- a/hedgewars/uStats.pas Thu Sep 28 00:46:06 2017 +0200 +++ b/hedgewars/uStats.pas Thu Sep 28 01:15:25 2017 +0200 @@ -36,6 +36,7 @@ procedure HedgehogPoisoned(Gear: PGear; Attacker: PHedgehog); procedure HedgehogSacrificed(Hedgehog: PHedgehog); procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog; Damage: Longword; killed: boolean); +procedure TargetHit; procedure Skipped; procedure TurnReaction; procedure SendStats; @@ -56,6 +57,7 @@ KillsClan : LongWord = 0; Kills : LongWord = 0; KillsTotal : LongWord = 0; + HitTargets : LongWord = 0; // Target (gtTarget) hits per turn AmmoUsedCount : Longword = 0; AmmoDamagingUsed : boolean = false; SkippedTurns: LongWord = 0; @@ -121,6 +123,11 @@ inc(DamageTurn, Damage) end; +procedure TargetHit(); +begin + inc(HitTargets) +end; + procedure Skipped; begin inc(SkippedTurns); @@ -179,7 +186,8 @@ AddVoice(sndRegret, vpHurtEnemy) // Missed shot - else if AmmoDamagingUsed and (Kills <= killsCheck) and (PoisonTurn = 0) and (PoisonClan = 0) and (DamageTurn = 0) then + // A miss is defined as a shot with a damaging weapon with 0 kills, 0 damage, 0 hogs poisoned and 0 targets hit + else if AmmoDamagingUsed and (Kills <= killsCheck) and (PoisonTurn = 0) and (PoisonClan = 0) and (DamageTurn = 0) and (HitTargets = 0) then // Chance to call hedgehog stupid if sacrificed for nothing if CurrentHedgehog^.stats.Sacrificed then if random(2) = 0 then @@ -233,6 +241,7 @@ KillsClan:= 0; DamageClan:= 0; DamageTurn:= 0; +HitTargets:= 0; PoisonClan:= 0; PoisonTurn:= 0; AmmoUsedCount:= 0; @@ -408,6 +417,7 @@ KillsClan := 0; Kills := 0; KillsTotal := 0; + HitTargets := 0; AmmoUsedCount := 0; AmmoDamagingUsed := false; SkippedTurns:= 0;