# HG changeset patch # User Wuzzy # Date 1544423729 -3600 # Node ID 9c7d5f5958818edb2a395aef2dc189bdd771e41c # Parent 352ea82355aeb12510528dd8ad6e40b5ed5b08c7 Longer delays between turns for better readability The control was given too fast to the next hog, this made it hard to see damage and messages. diff -r 352ea82355ae -r 9c7d5f595881 ChangeLog.txt --- a/ChangeLog.txt Mon Dec 10 02:40:27 2018 +0100 +++ b/ChangeLog.txt Mon Dec 10 07:35:29 2018 +0100 @@ -3,6 +3,7 @@ =============== 1.0.0 (unreleased) ================= + New chat command: “/help room” (shows room chat commands within the game) + Colorize switching arrows, pointing arrow and target cross in clan color + + Longer delays between turns so its easier to see damage and messages * King Mode: Fix team sometimes not being killed properly if king drowned * King Mode: Kill resurrected minions if king is not alive * Hide most HUD elements in cinematic mode diff -r 352ea82355ae -r 9c7d5f595881 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Mon Dec 10 02:40:27 2018 +0100 +++ b/hedgewars/uGears.pas Mon Dec 10 07:35:29 2018 +0100 @@ -62,12 +62,19 @@ var delay: LongWord; delay2: LongWord; - step: (stInit, stDelay, stChDmg, stSweep, stTurnStats, stChWin1, - stTurnReact, stAfterDelay, stChWin2, stWater, stChWin3, - stChKing, stHealth, stSpawn, stNTurn); + step: (stInit, stDelay1, stChDmg, stSweep, stTurnStats, stChWin1, + stTurnReact, stDelay2, stChWin2, stWater, stChWin3, + stChKing, stSuddenDeath, stDelay3, stHealth, stSpawn, stDelay4, + stNTurn); NewTurnTick: LongWord; //SDMusic: shortstring; +const delaySDStart = 1600; + delaySDWarning = 1000; + delayDamageTag = 500; + delayTurnReact = 1500; + delayFinal = 100; + function CheckNoDamage: boolean; // returns TRUE in case of no damaged hhs var Gear: PGear; dmg: LongInt; @@ -122,6 +129,15 @@ end; end; +function DoDelay: boolean; +begin +if delay <= 0 then + delay:= 1 +else + dec(delay); +DoDelay:= delay = 0; +end; + function CheckMinionsDie: boolean; var Gear: PGear; begin @@ -296,22 +312,17 @@ ScriptCall('onEndTurn'); inc(step) end; - stDelay: - begin - if delay = 0 then - delay:= cInactDelay - else - dec(delay); - - if delay = 0 then - inc(step) - end; - + stDelay1: + if DoDelay() then + inc(step); stChDmg: if CheckNoDamage then inc(step) else - step:= stDelay; + begin + delay:= delayDamageTag; + step:= stDelay1; + end; stSweep: if SweepDirty then @@ -341,22 +352,16 @@ begin uStats.TurnReaction; uStats.TurnStatsReset; + delay:= delayTurnReact; inc(step) end else inc(step, 2); end; - stAfterDelay: - begin - if delay = 0 then - delay:= cInactDelay - else - dec(delay); - - if delay = 0 then - inc(step) - end; + stDelay2: + if DoDelay() then + inc(step); stChWin2: begin CheckForWin(); @@ -391,39 +396,65 @@ else inc(step); end; - stHealth: + stSuddenDeath: begin if (cWaterRise <> 0) or (cHealthDecrease <> 0) then begin if (TotalRoundsPre = cSuddenDTurns) and (not SuddenDeath) and (not isInMultiShoot) then - StartSuddenDeath() + begin + StartSuddenDeath(); + delay:= delaySDStart; + end else if (TotalRoundsPre < cSuddenDTurns) and (not isInMultiShoot) then begin i:= cSuddenDTurns - TotalRoundsPre; s:= ansistring(inttostr(i)); if i = 1 then - AddCaption(trmsg[sidRoundSD], capcolDefault, capgrpGameState) + begin + AddCaption(trmsg[sidRoundSD], capcolDefault, capgrpGameState); + delay:= delaySDWarning; + end else if (i = 2) or ((i > 0) and ((i mod 50 = 0) or ((i <= 25) and (i mod 5 = 0)))) then + begin AddCaption(FormatA(trmsg[sidRoundsSD], s), capcolDefault, capgrpGameState); + delay:= delaySDWarning; + end end; + inc(step); + end + else + inc(step, 2); + end; + stDelay3: + if DoDelay() then + inc(step); + stHealth: + begin + if bBetweenTurns + or isInMultiShoot + or (TotalRoundsPre = -1) then + inc(step) + else + begin + bBetweenTurns:= true; + HealthMachine; + step:= stChDmg end; - if bBetweenTurns - or isInMultiShoot - or (TotalRoundsPre = -1) then - inc(step) - else - begin - bBetweenTurns:= true; - HealthMachine; - step:= stChDmg - end - end; + end; stSpawn: begin - if not isInMultiShoot then + if (not isInMultiShoot) then + begin SpawnBoxOfSmth; - inc(step) + delay:= delayFinal; + inc(step); + end + else + inc(step, 2) end; + stDelay4: + if DoDelay() then + inc(step); stNTurn: begin if isInMultiShoot then @@ -1367,7 +1398,7 @@ //typed const delay:= 0; delay2:= 0; - step:= stDelay; + step:= stDelay1; upd:= 0; //SDMusic:= 'hell.ogg';