# HG changeset patch # User Wuzzy # Date 1540989353 -3600 # Node ID 44f20c9e6861763916fe4b93c7f6d1e4ed6d5d96 # Parent 128fbd36eee4b21382892725a82b06f6f0e7e9be Add Ouch taunt for particulary damaging hits (fall, bullet, shove, hammer) diff -r 128fbd36eee4 -r 44f20c9e6861 ChangeLog.txt --- a/ChangeLog.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/ChangeLog.txt Wed Oct 31 13:35:53 2018 +0100 @@ -7,7 +7,7 @@ + Rework team rankings + Tied teams now rank equally + Help button in main menu - + 17 new hedgehog taunts + + 18 new hedgehog taunts + Many new Lua API features * Functionality of controllers restored * Fix at least 2 crashes @@ -55,7 +55,7 @@ + Allow to change volume during pause + Add sounds: flamethrower, landspray, idle freezer, shorykuen hit + Add taunts: Amazing, Brilliant, Bugger, Cutitout, Drat, Excellent, Fire, Gonnagetyou, Grenade, - Leavemealone, Ohdear, Revenge, Runaway, Solong, Thisoneismine, Whatthe, Watchthis + Leavemealone, Ohdear, Ouch, Revenge, Runaway, Solong, Thisoneismine, Whatthe, Watchthis * Fix extreme amounts of droplets when shooting with minigun into ocean world edge * Fix some flakes disappearing in world wrap worlds while moving camera * Fix invisible projectile timer, attack bar, target on other side of wrap world edge diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uConsts.pas Wed Oct 31 13:35:53 2018 +0100 @@ -191,6 +191,8 @@ cMaxHogHealth = 268435455; // maximum hedgehog health // cMaxHogHealth was calculated by: High(LongInt) div (cMaxHHIndex+1); + ouchDmg = 55; // least amount of damage a hog must take in one blow for sndOuch to play + // Z levels cHHZ = 1000; cCurrHHZ = Succ(cHHZ); diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uGears.pas Wed Oct 31 13:35:53 2018 +0100 @@ -163,7 +163,7 @@ inc(Gear^.Damage, tmp); if tmp > 0 then // Make hedgehog moan on damage - HHHurt(Gear^.Hedgehog, dsPoison); + HHHurt(Gear^.Hedgehog, dsPoison, tmp); end end; @@ -509,7 +509,9 @@ end; AddRandomness(CheckSum); TurnClockActive:= prevtime <> TurnTimeLeft; -inc(GameTicks) +inc(GameTicks); +if (OuchTauntTimer > 0) then + dec(OuchTauntTimer); end; //Purpose, to reset all transient attributes toggled by a utility and clean up various gears and effects at end of turn diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uGearsUtils.pas --- a/hedgewars/uGearsUtils.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uGearsUtils.pas Wed Oct 31 13:35:53 2018 +0100 @@ -31,7 +31,7 @@ function ModifyDamage(dmg: Longword; Gear: PGear): Longword; procedure ApplyDamage(Gear: PGear; AttackerHog: PHedgehog; Damage: Longword; Source: TDamageSource); procedure spawnHealthTagForHH(HHGear: PGear; dmg: Longword); -procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource); +procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource; Damage: Longword); procedure HHHeal(Hedgehog: PHedgehog; healthBoost: LongInt; showMessage: boolean; vgTint: Longword); procedure HHHeal(Hedgehog: PHedgehog; healthBoost: LongInt; showMessage: boolean); function IncHogHealth(Hedgehog: PHedgehog; healthBoost: LongInt): LongInt; @@ -280,7 +280,7 @@ Gear^.LastDamage := AttackerHog; Gear^.Hedgehog^.Team^.Clan^.Flawless:= false; - HHHurt(Gear^.Hedgehog, Source); + HHHurt(Gear^.Hedgehog, Source, Damage); AddDamageTag(hwRound(Gear^.X), hwRound(Gear^.Y), Damage, Gear^.Hedgehog^.Team^.Clan^.Color); tmpDmg:= min(Damage, max(0,Gear^.Health-Gear^.Damage)); if (Gear <> CurrentHedgehog^.Gear) and (CurrentHedgehog^.Gear <> nil) and (tmpDmg >= 1) then @@ -348,11 +348,17 @@ end; // Play effects for hurt hedgehog -procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource); +procedure HHHurt(Hedgehog: PHedgehog; Source: TDamageSource; Damage: Longword); begin if Hedgehog^.Effects[heFrozen] <> 0 then exit; -if (Source = dsFall) or (Source = dsExplosion) then +if (Damage >= ouchDmg) and (OuchTauntTimer = 0) and ((Source = dsFall) or (Source = dsBullet) or (Source = dsShove) or (Source = dsHammer)) then + begin + PlaySoundV(sndOuch, Hedgehog^.Team^.voicepack); + // Prevent sndOuch from being played too often in short time + OuchTauntTimer:= 1250; + end +else if (Source = dsFall) or (Source = dsExplosion) then case random(3) of 0: PlaySoundV(sndOoff1, Hedgehog^.Team^.voicepack); 1: PlaySoundV(sndOoff2, Hedgehog^.Team^.voicepack); diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uSound.pas Wed Oct 31 13:35:53 2018 +0100 @@ -327,7 +327,8 @@ (FileName: 'Runaway.ogg'; Path: ptVoices; AltPath: ptNone),// sndRunAway (FileName: 'Revenge.ogg'; Path: ptVoices; AltPath: ptNone),// sndRevenge (FileName: 'Cutitout.ogg'; Path: ptVoices; AltPath: ptNone),// sndCutItOut - (FileName: 'Leavemealone.ogg'; Path: ptVoices; AltPath: ptNone) // sndLeaveMeAlone + (FileName: 'Leavemealone.ogg'; Path: ptVoices; AltPath: ptNone),// sndLeaveMeAlone + (FileName: 'Ouch.ogg'; Path: ptVoices; AltPath: ptNone) // sndOuch ); @@ -476,7 +477,7 @@ // Fallback to sndFirePunch1 / sndOw1 / sndOoff1 if a “higher-numbered” sound is missing if (snd in [sndFirePunch2, sndFirePunch3, sndFirePunch4, sndFirePunch5, sndFirePunch6]) then GetFallbackV := sndFirePunch1 - else if (snd in [sndOw2, sndOw3, sndOw4]) then + else if (snd in [sndOw2, sndOw3, sndOw4, sndOuch]) then GetFallbackV := sndOw1 else if (snd in [sndOoff2, sndOoff3]) then GetFallbackV := sndOoff1 diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uTypes.pas Wed Oct 31 13:35:53 2018 +0100 @@ -155,7 +155,7 @@ sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine, sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing, sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut, - sndLeaveMeAlone); + sndLeaveMeAlone, sndOuch); // Available ammo types to be used by hedgehogs TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 diff -r 128fbd36eee4 -r 44f20c9e6861 hedgewars/uVariables.pas --- a/hedgewars/uVariables.pas Wed Oct 31 13:08:56 2018 +0100 +++ b/hedgewars/uVariables.pas Wed Oct 31 13:35:53 2018 +0100 @@ -89,6 +89,7 @@ CheckSum : LongWord; CampaignVariable: shortstring; GameTicks : LongWord; + OuchTauntTimer : LongWord; // Timer which blocks sndOuch from being played too often and fast GameState : TGameState; GameType : TGameType; InputMask : LongWord; @@ -2807,6 +2808,7 @@ CursorMovementX := 0; CursorMovementY := 0; GameTicks := 0; + OuchTauntTimer := 0; CheckSum := 0; cWaterLine := LAND_HEIGHT; cGearScrEdgesDist := 240; diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg diff -r 128fbd36eee4 -r 44f20c9e6861 share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Wed Oct 31 13:08:56 2018 +0100 +++ b/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Wed Oct 31 13:35:53 2018 +0100 @@ -32,6 +32,7 @@ Ohdear.ogg Ooff*.ogg Oops.ogg +Ouch.ogg Ow*.ogg PoisonCough.ogg PoisonMoan.ogg