# HG changeset patch # User Wuzzy # Date 1540696873 -3600 # Node ID ecfd131281006083cc1861f547b7419122b677f4 # Parent f9281c294a4c63214ed05f3af5b2c7b66760a396 Add taunts: Leavemealone, Cutitout (when attacked many times) diff -r f9281c294a4c -r ecfd13128100 ChangeLog.txt --- a/ChangeLog.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/ChangeLog.txt Sun Oct 28 04:21:13 2018 +0100 @@ -7,7 +7,7 @@ + Rework team rankings + Tied teams now rank equally + Help button in main menu - + 15 new hedgehog taunts + + 17 new hedgehog taunts + Many new Lua API features * Functionality of controllers restored * Fix at least 2 crashes @@ -54,7 +54,8 @@ + New default brown clan color for better contrast + Allow to change volume during pause + Add sounds: flamethrower, landspray, idle freezer, shorykuen hit - + Add taunts: Amazing, Brilliant, Bugger, Drat, Excellent, Fire, Gonnagetyou, Grenade, Ohdear, Revenge, Runaway, Solong, Thisoneismine, Whatthe, Watchthis + + Add taunts: Amazing, Brilliant, Bugger, Cutitout, Drat, Excellent, Fire, Gonnagetyou, Grenade, + Leavemealone, Ohdear, 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 f9281c294a4c -r ecfd13128100 hedgewars/uSound.pas --- a/hedgewars/uSound.pas Sun Oct 28 02:24:06 2018 +0200 +++ b/hedgewars/uSound.pas Sun Oct 28 04:21:13 2018 +0100 @@ -320,7 +320,9 @@ (FileName: 'Fire.ogg'; Path: ptVoices; AltPath: ptNone),// sndFire (FileName: 'Watchthis.ogg'; Path: ptVoices; AltPath: ptNone),// sndWatchThis (FileName: 'Runaway.ogg'; Path: ptVoices; AltPath: ptNone),// sndRunAway - (FileName: 'Revenge.ogg'; Path: ptVoices; AltPath: ptNone) // sndRevenge + (FileName: 'Revenge.ogg'; Path: ptVoices; AltPath: ptNone),// sndRevenge + (FileName: 'Cutitout.ogg'; Path: ptVoices; AltPath: ptNone),// sndCutItOut + (FileName: 'Leavemealone.ogg'; Path: ptVoices; AltPath: ptNone) // sndLeaveMeAlone ); @@ -534,7 +536,7 @@ snd := sndUhOh else if (snd in [sndDrat, sndBugger]) then snd := sndStupid - else if (snd = sndGonnaGetYou) then + else if (snd in [sndGonnaGetYou, sndCutItOut, sndLeaveMeAlone]) then snd := sndRegret else if (snd in [sndOhDear, sndSoLong]) then snd := sndByeBye diff -r f9281c294a4c -r ecfd13128100 hedgewars/uStats.pas --- a/hedgewars/uStats.pas Sun Oct 28 02:24:06 2018 +0200 +++ b/hedgewars/uStats.pas Sun Oct 28 04:21:13 2018 +0100 @@ -64,6 +64,7 @@ HitTargets : LongWord = 0; // Target (gtTarget) hits per turn AmmoUsedCount : Longword = 0; AmmoDamagingUsed : boolean = false; + LeaveMeAlone : boolean = false; SkippedTurns: LongWord = 0; isTurnSkipped: boolean = false; vpHurtSameClan: PVoicepack = nil; @@ -99,10 +100,15 @@ vpHurtEnemy:= Gear^.Hedgehog^.Team^.voicepack; if (not killed) then begin + // Check if victim got attacked by RevengeHog again + if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) then + LeaveMeAlone:= true; // Check if attacker got revenge if (Attacker^.RevengeHog <> nil) and (Attacker^.RevengeHog = Gear^.Hedgehog) then begin Attacker^.stats.GotRevenge:= true; + // Also reset the "in-row" counter to restore LeaveMeAlone/CutItOut taunts + Attacker^.stats.StepDamageRecvInRow:= 0; Attacker^.RevengeHog:= nil; end // If not, victim remembers their attacker to plan *their* revenge @@ -161,6 +167,7 @@ for t:= 0 to Pred(TeamsCount) do // send even on zero turn with TeamsArray[t]^ do for i:= 0 to cMaxHHIndex do + begin with Hedgehogs[i].stats do begin inc(DamageRecv, StepDamageRecv); @@ -171,7 +178,18 @@ MaxStepDamageGiven:= StepDamageGiven; if StepKills > MaxStepKills then MaxStepKills:= StepKills; + if (Hedgehogs[i].Team <> nil) and (Hedgehogs[i].Team^.Clan^.ClanIndex <> CurrentHedgehog^.Team^.Clan^.ClanIndex) then + begin + if StepDamageRecv > 0 then + inc(StepDamageRecvInRow) + else + StepDamageRecvInRow:= 0; + if StepDamageRecvInRow >= 3 then + LeaveMeAlone:= true; + end; end; + end; + // Write into the death log which clans died in this turn, // important for final rankings. @@ -276,15 +294,23 @@ AddVoice(sndEnemyDown, CurrentTeam^.voicepack) // 0 kills, only damage or poison else + // possible reactions of victim, in the order of preference: + // 1. claiming revenge + // 2. complaining about getting attacked too often + // 3. threatening enemy with retaliation if CurrentHedgehog^.stats.GotRevenge then AddVoice(sndRevenge, CurrentHedgehog^.Team^.voicepack) else - // TODO: Maybe play sndExcellent for a high damage shot. - // Not done yet because the fallback is sndEnemyDown. - if random(2) = 0 then - AddVoice(sndRegret, vpHurtEnemy) + if LeaveMeAlone then + if random(2) = 0 then + AddVoice(sndCutItOut, vpHurtEnemy) + else + AddVoice(sndLeaveMeAlone, vpHurtEnemy) else - AddVoice(sndGonnaGetYou, vpHurtEnemy) + if random(2) = 0 then + AddVoice(sndRegret, vpHurtEnemy) + else + AddVoice(sndGonnaGetYou, vpHurtEnemy) // Missed shot // A miss is defined as a shot with a damaging weapon with 0 kills, 0 damage, 0 hogs poisoned and 0 targets hit @@ -336,6 +362,7 @@ PoisonClan:= 0; PoisonTurn:= 0; AmmoUsedCount:= 0; +LeaveMeAlone:= false; AmmoDamagingUsed:= false; isTurnSkipped:= false; end; @@ -541,6 +568,7 @@ HitTargets := 0; AmmoUsedCount := 0; AmmoDamagingUsed := false; + LeaveMeAlone := false; SkippedTurns:= 0; isTurnSkipped:= false; vpHurtSameClan:= nil; diff -r f9281c294a4c -r ecfd13128100 hedgewars/uTypes.pas --- a/hedgewars/uTypes.pas Sun Oct 28 02:24:06 2018 +0200 +++ b/hedgewars/uTypes.pas Sun Oct 28 04:21:13 2018 +0100 @@ -154,7 +154,8 @@ sndCustom5, sndCustom6, sndCustom7, sndCustom8, sndMinigun, sndFlamethrower, sndIceBeamIdle, sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine, sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing, - sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge); + sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut, + sndLeaveMeAlone); // Available ammo types to be used by hedgehogs TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6 @@ -330,19 +331,20 @@ end; TStatistics = record - DamageRecv, - DamageGiven: Longword; - StepDamageRecv, - StepDamageGiven, - StepKills: Longword; - StepPoisoned, - StepDied, - Sacrificed: boolean; - MaxStepDamageRecv, - MaxStepDamageGiven, - MaxStepKills: Longword; + DamageRecv, // total damage received + DamageGiven: Longword; // total damage dealt + StepDamageRecvInRow, // number of enemy turns in row this hog received any damage + StepDamageRecv, // damage received in this turn + StepDamageGiven, // damage dealt in this turn + StepKills: Longword; // kills in this turn + StepPoisoned, // whether hog got poisoned this turn + StepDied, // whether hog died this turn + Sacrificed, // whether hog was sacrificed in suicide attack (kamikaze, piano) + GotRevenge: boolean; // whether hog got revenge in this turn + MaxStepDamageRecv, // most damage received in one turn + MaxStepDamageGiven, // most damage dealt in one turn + MaxStepKills: Longword; // most kills in one turn FinishedTurns: Longword; - GotRevenge: boolean; // True if hog got revenge in this turn end; TTeamStats = record diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/British/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Classic/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Default/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Default_uk/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Mobster/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Pirate/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Robot/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Russian/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Singer/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg diff -r f9281c294a4c -r ecfd13128100 share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt --- a/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Sun Oct 28 02:24:06 2018 +0200 +++ b/share/hedgewars/Data/Sounds/voices/Surfer/CMakeLists.txt Sun Oct 28 04:21:13 2018 +0100 @@ -6,6 +6,7 @@ Byebye.ogg Comeonthen.ogg Coward.ogg +Cutitout.ogg Drat.ogg Enemydown.ogg Excellent.ogg @@ -23,6 +24,7 @@ Justyouwait.ogg Kamikaze.ogg Laugh.ogg +Leavemealone.ogg Melon.ogg Missed.ogg Nooo.ogg