# HG changeset patch # User unc0rr # Date 1210436813 0 # Node ID c201563285291d1c82df180a80c01dd50eae8bff # Parent 227f9fcdc2f46d7eb5a874c269b5724b2944f7d0 Implement whip weapon diff -r 227f9fcdc2f4 -r c20156328529 QTfrontend/hwconsts.cpp.in --- a/QTfrontend/hwconsts.cpp.in Sat May 10 14:46:02 2008 +0000 +++ b/QTfrontend/hwconsts.cpp.in Sat May 10 16:26:53 2008 +0000 @@ -28,7 +28,7 @@ QStringList * Themes; -QString * cDefaultAmmoStore = new QString("eammstore 939192942219121033235"); +QString * cDefaultAmmoStore = new QString("eammstore 9391929422199121033235"); QColor * color1 = new QColor( 0, 255, 255); QColor * color2 = new QColor(255, 127, 127); diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/GSHandlers.inc --- a/hedgewars/GSHandlers.inc Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/GSHandlers.inc Sat May 10 16:26:53 2008 +0000 @@ -968,7 +968,7 @@ procedure doStepIdle(Gear: PGear); begin AllInactive:= false; -dec(Gear^.Timer);addfilelog(inttostr(Gear^.Timer)); +dec(Gear^.Timer); if Gear^.Timer = 0 then begin DeleteGear(Gear); @@ -988,6 +988,25 @@ end; //////////////////////////////////////////////////////////////////////////////// +procedure doStepWhip(Gear: PGear); +var HHGear: PGear; + i: LongInt; +begin +HHGear:= PHedgehog(Gear^.Hedgehog)^.Gear; +HHGear^.State:= HHGear^.State or gstNoDamage; + +for i:= 0 to 3 do + begin + AmmoShove(Gear, 30, 25); + Gear^.X:= Gear^.X + Gear^.dX * 5 + end; + +HHGear^.State:= HHGear^.State and not gstNoDamage; +Gear^.Timer:= 250; +Gear^.doStep:= @doStepIdle +end; + +//////////////////////////////////////////////////////////////////////////////// procedure doStepFlame(Gear: PGear); begin AllInactive:= false; diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/HHHandlers.inc --- a/hedgewars/HHHandlers.inc Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/HHHandlers.inc Sat May 10 16:26:53 2008 +0000 @@ -117,8 +117,9 @@ end; amDEagle: CurAmmoGear:= AddGear(hwRound(X + xx * cHHRadius), hwRound(Y + yy * cHHRadius), gtDEagleShot, 0, xx * _0_5, yy * _0_5, 0); amDynamite: AddGear(hwRound(X) + hwSign(dX) * 7, hwRound(Y), gtDynamite, 0, SignAs(_0_03, dX), _0, 5000); + amFirePunch: CurAmmoGear:= AddGear(hwRound(X) + hwSign(dX) * 10, hwRound(Y), gtFirePunch, 0, _0, _0, 0); + amWhip: CurAmmoGear:= AddGear(hwRound(X) + hwSign(dX) * 10, hwRound(Y), gtWhip, 0, SignAs(_1, dX), - _0_8, 0); amBaseballBat: CurAmmoGear:= AddGear(hwRound(X) + hwSign(dX) * 10, hwRound(Y), gtShover, 0, xx * _0_5, yy * _0_5, 0); - amFirePunch: CurAmmoGear:= AddGear(hwRound(X) + hwSign(dX) * 10, hwRound(Y), gtFirePunch, 0, _0, _0, 0); amParachute: CurAmmoGear:= AddGear(hwRound(X), hwRound(Y), gtParachute, 0, _0, _0, 0); amAirAttack: AddGear(Ammo^[CurSlot, CurAmmo].Pos, 0, gtAirAttack, 0, _0, _0, 0); amMineStrike: AddGear(Ammo^[CurSlot, CurAmmo].Pos, 0, gtAirAttack, 1, _0, _0, 0); diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/uAIAmmoTests.pas --- a/hedgewars/uAIAmmoTests.pas Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/uAIAmmoTests.pas Sat May 10 16:26:53 2008 +0000 @@ -56,6 +56,7 @@ (proc: @TestDesertEagle; flags: 0), // amDEagle (proc: nil; flags: 0), // amDynamite (proc: @TestFirePunch; flags: 0), // amFirePunch + (proc: nil; flags: 0), // amWhip (proc: @TestBaseballBat; flags: 0), // amBaseballBat (proc: nil; flags: 0), // amParachute (proc: @TestAirAttack; flags: amtest_OnTurn), // amAirAttack diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/uConsts.pas --- a/hedgewars/uConsts.pas Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/uConsts.pas Sat May 10 16:26:53 2008 +0000 @@ -52,7 +52,8 @@ gtTeamHealthSorter, gtClusterBomb, gtCluster, gtShover, gtFlame, gtFirePunch, gtATStartGame, gtATSmoothWindCh, gtATFinishGame, gtParachute, gtAirAttack, gtAirBomb, gtBlowTorch, gtGirder, - gtTeleport, gtSmallDamage, gtSwitcher, gtTarget, gtMortar); + gtTeleport, gtSmallDamage, gtSwitcher, gtTarget, gtMortar, + gtWhip); TVisualGearType = (vgtFlake, vgtCloud); @@ -67,7 +68,7 @@ sndEnemyDown, sndCoward, sndHurry, sndWatchIt); TAmmoType = (amGrenade, amClusterBomb, amBazooka, amUFO, amShotgun, amPickHammer, - amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, + amSkip, amRope, amMine, amDEagle, amDynamite, amFirePunch, amWhip, amBaseballBat, amParachute, amAirAttack, amMineStrike, amBlowTorch, amGirder, amTeleport, amSwitch, amMortar); @@ -650,6 +651,23 @@ isDamaging: true; PosCount: 1; PosSprite: sprWater), + (NameId: sidWhip; + NameTex: nil; + Probability: 0; + NumberInCase: 1; + Ammo: (Propz: ammoprop_NoCrosshair; + Count: AMMO_INFINITE; + NumPerTurn: 0; + Timer: 0; + Pos: 0; + AmmoType: amWhip); + Slot: 3; + TimeAfterTurn: 3000; + MinAngle: 0; + maxAngle: 0; + isDamaging: true; + PosCount: 1; + PosSprite: sprWater), (NameId: sidBaseballBat; NameTex: nil; Probability: 100; diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/uGears.pas --- a/hedgewars/uGears.pas Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/uGears.pas Sat May 10 16:26:53 2008 +0000 @@ -134,7 +134,8 @@ @doStepHealthTag, @doStepSwitcher, @doStepCase, - @doStepMortar + @doStepMortar, + @doStepWhip ); procedure InsertGearToList(Gear: PGear); @@ -303,6 +304,7 @@ Result^.Elasticity:= _0_2; Result^.Friction:= _0_08 end; + gtWhip: Result^.Radius:= 20; end; InsertGearToList(Result); AddGear:= Result diff -r 227f9fcdc2f4 -r c20156328529 hedgewars/uLocale.pas --- a/hedgewars/uLocale.pas Sat May 10 14:46:02 2008 +0000 +++ b/hedgewars/uLocale.pas Sat May 10 16:26:53 2008 +0000 @@ -1,6 +1,6 @@ (* * Hedgewars, a worms-like game - * Copyright (c) 2006, 2007 Andrey Korotaev + * Copyright (c) 2006-2008 Andrey Korotaev * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,7 +22,7 @@ sidPickHammer, sidSkip, sidRope, sidMine, sidDEagle, sidDynamite, sidBaseballBat, sidFirePunch, sidSeconds, sidParachute, sidAirAttack, sidMineStrike, sidBlowTorch, - sidGirder, sidTeleport, sidSwitch, sidMortar); + sidGirder, sidTeleport, sidSwitch, sidMortar, sidWhip); TMsgStrId = (sidStartFight, sidDraw, sidWinner, sidVolume, sidPaused); diff -r 227f9fcdc2f4 -r c20156328529 share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png Binary file share/hedgewars/Data/Graphics/AmmoMenu/Ammos.png has changed diff -r 227f9fcdc2f4 -r c20156328529 share/hedgewars/Data/Locale/en.txt --- a/share/hedgewars/Data/Locale/en.txt Sat May 10 14:46:02 2008 +0000 +++ b/share/hedgewars/Data/Locale/en.txt Sat May 10 16:26:53 2008 +0000 @@ -22,6 +22,7 @@ 00:19=Teleportation 00:20=Switch Hedgehog 00:21=Mortar +00:22=Whip 01:00=Let's fight! 01:01=Round draw diff -r 227f9fcdc2f4 -r c20156328529 share/hedgewars/Data/Locale/pl.txt --- a/share/hedgewars/Data/Locale/pl.txt Sat May 10 14:46:02 2008 +0000 +++ b/share/hedgewars/Data/Locale/pl.txt Sat May 10 16:26:53 2008 +0000 @@ -22,6 +22,7 @@ 00:19=Teleportacja 00:20=Zmień jeża 00:21=Mortar +00:22=Whip 01:00=Walczmy! 01:01=Remis diff -r 227f9fcdc2f4 -r c20156328529 share/hedgewars/Data/Locale/ru.txt --- a/share/hedgewars/Data/Locale/ru.txt Sat May 10 14:46:02 2008 +0000 +++ b/share/hedgewars/Data/Locale/ru.txt Sat May 10 16:26:53 2008 +0000 @@ -22,6 +22,7 @@ 00:19=Телепортация 00:20=Переключить ежа 00:21=Миномёт +00:22=Кнут 01:00=Вперёд к победе! 01:01=Ничья