"
+ 37
46631
0
""
diff -r 1cc14ece1486 -r 095398eba689 gameServer/HWProtoInRoomState.hs
--- a/gameServer/HWProtoInRoomState.hs Thu Dec 23 21:45:50 2010 +0100
+++ b/gameServer/HWProtoInRoomState.hs Tue Dec 28 22:40:12 2010 +0100
@@ -37,7 +37,7 @@
handleCmd_inRoom clID clients rooms ("ADD_TEAM" : name : color : grave : fort : voicepack : flag : difStr : hhsInfo)
| length hhsInfo == 15 && clientProto client < 30 = handleCmd_inRoom clID clients rooms ("ADD_TEAM" : name : color : grave : fort : voicepack : " " : flag : difStr : hhsInfo)
| length hhsInfo /= 16 = [ProtocolError "Corrupted hedgehogs info"]
- | length (teams room) == 6 = [Warning "too many teams"]
+ | length (teams room) == 8 = [Warning "too many teams"]
| canAddNumber <= 0 = [Warning "too many hedgehogs"]
| isJust findTeam = [Warning "There's already a team with same name in the list"]
| gameinprogress room = [Warning "round in progress"]
diff -r 1cc14ece1486 -r 095398eba689 gameServer/HWProtoLobbyState.hs
--- a/gameServer/HWProtoLobbyState.hs Thu Dec 23 21:45:50 2010 +0100
+++ b/gameServer/HWProtoLobbyState.hs Tue Dec 28 22:40:12 2010 +0100
@@ -102,7 +102,7 @@
toAnswer (paramName, paramStrs) = AnswerThisClient $ "CFG" : paramName : paramStrs
answerFullConfig = map toAnswer ((Data.List.reverse . Data.List.sort $ leftConfigPart) ++ rightConfigPart)
- (leftConfigPart, rightConfigPart) = partition (\(p, _) -> p == "MAP" || p == "MAPGEN") (Map.toList $ params jRoom)
+ (leftConfigPart, rightConfigPart) = partition (\(p, _) -> p == "MAP" || p == "MAPGEN" || p == "SCHEME") (Map.toList $ params jRoom)
watchRound = if not $ gameinprogress jRoom then
[]
diff -r 1cc14ece1486 -r 095398eba689 gameServer/Utils.hs
--- a/gameServer/Utils.hs Thu Dec 23 21:45:50 2010 +0100
+++ b/gameServer/Utils.hs Tue Dec 28 22:40:12 2010 +0100
@@ -112,7 +112,9 @@
protoNumber2ver 33 = "0.9.14"
protoNumber2ver 34 = "0.9.15-dev"
protoNumber2ver 35 = "0.9.14.1"
-protoNumber2ver _ = "Unknown"
+protoNumber2ver 37 = "0.9.15"
+protoNumber2ver 38 = "0.9.16-dev"
+protoNumber2ver w = show w
askFromConsole :: String -> IO String
askFromConsole msg = do
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/GSHandlers.inc
--- a/hedgewars/GSHandlers.inc Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/GSHandlers.inc Tue Dec 28 22:40:12 2010 +0100
@@ -594,42 +594,45 @@
begin
// we've collided with land. draw some stuff and get back into the clouds
move:= true;
-////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
- if cWindSpeed * 1600 + dX < _0 then i:= -1
- else i:= 1;
- if (yy > 0) and ((Land[yy-1, xx] and $FF00) = 0) then dec(yy)
- else dec(xx, i);
- dec(yy,2);
- dec(xx,i);
- s:= SpritesData[sprSnow].Surface;
- p:= s^.pixels;
- allpx:= true;
- for py:= 0 to Pred(s^.h) do
+ if (CurAmmoGear = nil) or (CurAmmoGear^.Kind <> gtRope) then
begin
- for px:= 0 to Pred(s^.w) do
- if ((yy + py and LAND_HEIGHT_MASK) = 0) and ((xx + px and LAND_WIDTH_MASK) = 0) and
- ((Land[yy + py, xx + px] and $FF00) = 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[yy + py, xx + px]:= p^[px]
- else
- LandPixels[(yy + py) div 2, (xx + px) div 2]:= p^[px]
- end
- else allpx:= false;
- p:= @(p^[s^.pitch shr 2])
- end;
- if allpx then UpdateLandTexture(xx, 4, yy, 4)
- else UpdateLandTexture(xx, 1, yy, 1);
- inc(yy,2);
- inc(xx,i);
- if ((xx and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx]:= Land[yy, xx] or lfObject;
- if yy > 0 then
- begin
- Land[yy-1, xx]:= Land[yy-1, xx] or lfObject;
- if ((xx-i and LAND_WIDTH_MASK) = 0) then Land[yy-1, xx-i]:= Land[yy-1, xx-i] or lfObject;
- end;
- if ((xx-i and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx-i]:= Land[yy, xx-i] or lfObject
////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
+ if cWindSpeed * 1600 + dX < _0 then i:= -1
+ else i:= 1;
+ if (yy > 0) and ((Land[yy-1, xx] and $FF00) = 0) then dec(yy)
+ else dec(xx, i);
+ dec(yy,2);
+ dec(xx,i);
+ s:= SpritesData[sprSnow].Surface;
+ p:= s^.pixels;
+ allpx:= true;
+ for py:= 0 to Pred(s^.h) do
+ begin
+ for px:= 0 to Pred(s^.w) do
+ if (((yy + py) and LAND_HEIGHT_MASK) = 0) and (((xx + px) and LAND_WIDTH_MASK) = 0) and
+ ((Land[yy + py, xx + px] and $FF00) = 0) then
+ begin
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[yy + py, xx + px]:= p^[px]
+ else
+ LandPixels[(yy + py) div 2, (xx + px) div 2]:= p^[px]
+ end
+ else allpx:= false;
+ p:= @(p^[s^.pitch shr 2])
+ end;
+ if allpx then UpdateLandTexture(xx, 4, yy, 4)
+ else if ((yy and LAND_HEIGHT_MASK) = 0) and ((xx and LAND_WIDTH_MASK) = 0) then UpdateLandTexture(xx, 1, yy, 1);
+ inc(yy,2);
+ inc(xx,i);
+ if ((xx and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx]:= Land[yy, xx] or lfObject;
+ if yy > 0 then
+ begin
+ Land[yy-1, xx]:= Land[yy-1, xx] or lfObject;
+ if ((xx-i and LAND_WIDTH_MASK) = 0) then Land[yy-1, xx-i]:= Land[yy-1, xx-i] or lfObject;
+ end;
+ if ((xx-i and LAND_WIDTH_MASK) = 0) and ((yy and LAND_HEIGHT_MASK) = 0) then Land[yy, xx-i]:= Land[yy, xx-i] or lfObject
+////////////////////////////////// TODO - ASK UNC0RR FOR A GOOD HOME FOR THIS ////////////////////////////////////
+ end
end;
if move then
begin
@@ -909,6 +912,9 @@
procedure doStepDEagleShot(Gear: PGear);
begin
PlaySound(sndGun);
+ // add an initial step to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths
+ Gear^.X := Gear^.X + Gear^.dX;
+ Gear^.Y := Gear^.Y + Gear^.dY;
Gear^.doStep := @doStepBulletWork
end;
@@ -942,6 +948,9 @@
Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5;
Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5;
PlaySound(sndGun);
+ // add an initial step to avoid problem with ammoshove related to calculation of radius + 1 radius as gear widths
+ Gear^.X := Gear^.X + Gear^.dX;
+ Gear^.Y := Gear^.Y + Gear^.dY;
Gear^.doStep := @doStepBulletWork;
end
else
@@ -1035,7 +1044,7 @@
if (Gear^.Timer mod 47) = 0 then
begin
// ok. this was an attempt to turn off dust if not actually drilling land. I have no idea why it isn't working as expected
- //if ((y + 12 and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y + 12, x] > 255) then
+ if (( (y + 12) and LAND_HEIGHT_MASK) = 0) and ((x and LAND_WIDTH_MASK) = 0) and (Land[y + 12, x] > 255) then
for i:= 0 to 1 do
AddVisualGear(x - 5 + Random(10), y + 12, vgtDust);
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uCollisions.pas
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uCommandHandlers.pas
--- a/hedgewars/uCommandHandlers.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uCommandHandlers.pas Tue Dec 28 22:40:12 2010 +0100
@@ -165,7 +165,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('L');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmLeft and InputMask)
+ Message:= Message or (gmLeft and InputMask);
+ ScriptCall('onLeft');
end;
procedure chLeft_m(var s: shortstring);
@@ -174,7 +175,8 @@
if CheckNoTeamOrHH then exit;
if not CurrentTeam^.ExtDriven then SendIPC('l');
with CurrentHedgehog^.Gear^ do
- Message:= Message and not (gmLeft and InputMask)
+ Message:= Message and not (gmLeft and InputMask);
+ ScriptCall('onLeftUp');
end;
procedure chRight_p(var s: shortstring);
@@ -184,7 +186,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('R');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmRight and InputMask)
+ Message:= Message or (gmRight and InputMask);
+ ScriptCall('onRight');
end;
procedure chRight_m(var s: shortstring);
@@ -193,7 +196,8 @@
if CheckNoTeamOrHH then exit;
if not CurrentTeam^.ExtDriven then SendIPC('r');
with CurrentHedgehog^.Gear^ do
- Message:= Message and not (gmRight and InputMask)
+ Message:= Message and not (gmRight and InputMask);
+ ScriptCall('onRightUp');
end;
procedure chUp_p(var s: shortstring);
@@ -203,7 +207,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('U');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmUp and InputMask)
+ Message:= Message or (gmUp and InputMask);
+ ScriptCall('onUp');
end;
procedure chUp_m(var s: shortstring);
@@ -213,6 +218,7 @@
if not CurrentTeam^.ExtDriven then SendIPC('u');
with CurrentHedgehog^.Gear^ do
Message:= Message and not (gmUp and InputMask);
+ ScriptCall('onUpUp');
end;
procedure chDown_p(var s: shortstring);
@@ -222,7 +228,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('D');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmDown and InputMask)
+ Message:= Message or (gmDown and InputMask);
+ ScriptCall('onDown');
end;
procedure chDown_m(var s: shortstring);
@@ -231,7 +238,8 @@
if CheckNoTeamOrHH then exit;
if not CurrentTeam^.ExtDriven then SendIPC('d');
with CurrentHedgehog^.Gear^ do
- Message:= Message and not (gmDown and InputMask)
+ Message:= Message and not (gmDown and InputMask);
+ ScriptCall('onDownUp');
end;
procedure chPrecise_p(var s: shortstring);
@@ -242,6 +250,7 @@
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
Message:= Message or (gmPrecise and InputMask);
+ ScriptCall('onPrecise');
end;
procedure chPrecise_m(var s: shortstring);
@@ -251,6 +260,7 @@
if not CurrentTeam^.ExtDriven then SendIPC('z');
with CurrentHedgehog^.Gear^ do
Message:= Message and not (gmPrecise and InputMask);
+ ScriptCall('onPreciseUp');
end;
procedure chLJump(var s: shortstring);
@@ -260,7 +270,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('j');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmLJump and InputMask)
+ Message:= Message or (gmLJump and InputMask);
+ ScriptCall('onLJump');
end;
procedure chHJump(var s: shortstring);
@@ -270,7 +281,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('J');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmHJump and InputMask)
+ Message:= Message or (gmHJump and InputMask);
+ ScriptCall('onHJump');
end;
procedure chAttack_p(var s: shortstring);
@@ -285,7 +297,8 @@
begin
FollowGear:= CurrentHedgehog^.Gear;
if not CurrentTeam^.ExtDriven then SendIPC('A');
- Message:= Message or (gmAttack and InputMask)
+ Message:= Message or (gmAttack and InputMask);
+ ScriptCall('onAttack');
end
end
end;
@@ -298,7 +311,8 @@
begin
if not CurrentTeam^.ExtDriven and
((Message and gmAttack) <> 0) then SendIPC('a');
- Message:= Message and not (gmAttack and InputMask)
+ Message:= Message and not (gmAttack and InputMask);
+ ScriptCall('onAttackUp');
end
end;
@@ -309,7 +323,8 @@
if not CurrentTeam^.ExtDriven then SendIPC('S');
bShowFinger:= false;
with CurrentHedgehog^.Gear^ do
- Message:= Message or (gmSwitch and InputMask)
+ Message:= Message or (gmSwitch and InputMask);
+ ScriptCall('onSwitch');
end;
procedure chNextTurn(var s: shortstring);
@@ -332,7 +347,8 @@
with CurrentHedgehog^.Gear^ do
begin
Message:= Message or (gmTimer and InputMask);
- MsgParam:= byte(s[1]) - ord('0')
+ MsgParam:= byte(s[1]) - ord('0');
+ ScriptCall('onTimer');
end
end;
@@ -347,7 +363,8 @@
with CurrentHedgehog^.Gear^ do
begin
Message:= Message or (gmSlot and InputMask);
- MsgParam:= slot
+ MsgParam:= slot;
+ ScriptCall('onSlot');
end
end;
@@ -363,6 +380,7 @@
begin
Message:= Message or (gmWeapon and InputMask);
MsgParam:= byte(s[1]);
+ ScriptCall('onSetWeapon');
end;
end;
@@ -377,7 +395,8 @@
with CurrentHedgehog^.Gear^ do
begin
Message:= Message or (gmAnimate and InputMask);
- MsgParam:= byte(s[1])
+ MsgParam:= byte(s[1]) ;
+ ScriptCall('onTaunt');
end
end;
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uGears.pas
--- a/hedgewars/uGears.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uGears.pas Tue Dec 28 22:40:12 2010 +0100
@@ -1121,9 +1121,12 @@
if (GameFlags and gfArtillery) <> 0 then
cArtillery:= true;
-if (Theme = 'Snow') or (Theme = 'Christmas') then
+if not hasBorder and ((Theme = 'Snow') or (Theme = 'Christmas')) then
+ begin
for i:= 0 to Pred(vobCount*2) do
AddGear(GetRandom(LAND_WIDTH+1024)-512, LAND_HEIGHT - GetRandom(1024), gtFlake, 0, _0, _0, 0);
+ disableLandBack:= true
+ end
end;
procedure doMakeExplosion(X, Y, Radius: LongInt; Mask: LongWord);
@@ -1851,7 +1854,7 @@
Gear^.Text:= text;
Gear^.FrameTicks:= x
end
- else ParseCommand('say ' + text, true)
+ //else ParseCommand('say ' + text, true)
end
else if (x >= 4) then
begin
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uLandGraphics.pas
--- a/hedgewars/uLandGraphics.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uLandGraphics.pas Tue Dec 28 22:40:12 2010 +0100
@@ -190,7 +190,7 @@
t:= y + dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
begin
inc(cnt);
if (cReducedQuality and rqBlurryLand) = 0 then
@@ -198,18 +198,17 @@
else
LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
end
- else if not isMap or ((Land[t, i] and lfObject) <> 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0
- end;
+ else
+ if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[t, i]:= 0
+ else
+ LandPixels[t div 2, i div 2]:= 0;
t:= y - dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
begin
inc(cnt);
if (cReducedQuality and rqBlurryLand) = 0 then
@@ -217,18 +216,17 @@
else
LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
end
- else if not isMap or ((Land[t, i] and lfObject) <> 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0
- end;
+ else
+ if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[t, i]:= 0
+ else
+ LandPixels[t div 2, i div 2]:= 0;
t:= y + dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
begin
inc(cnt);
if (cReducedQuality and rqBlurryLand) = 0 then
@@ -236,18 +234,17 @@
else
LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
end
- else if not isMap or ((Land[t, i] and lfObject) <> 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0
- end;
+ else
+ if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[t, i]:= 0
+ else
+ LandPixels[t div 2, i div 2]:= 0;
t:= y - dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if ((Land[t, i] and lfBasic) <> 0) then
+ if ((Land[t, i] and lfBasic) <> 0) and not disableLandBack then
begin
inc(cnt);
if (cReducedQuality and rqBlurryLand) = 0 then
@@ -255,13 +252,12 @@
else
LandPixels[t div 2, i div 2]:= LandBackPixel(i, t)
end
- else if not isMap or ((Land[t, i] and lfObject) <> 0) then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[t, i]:= 0
- else
- LandPixels[t div 2, i div 2]:= 0
- end;
+ else
+ if ((Land[t, i] and lfObject) <> 0) or (disableLandBack and ((Land[t, i] and lfIndestructible) = 0)) then
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[t, i]:= 0
+ else
+ LandPixels[t div 2, i div 2]:= 0;
FillLandCircleLinesBG:= cnt;
end;
@@ -271,7 +267,7 @@
t:= y + dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
+ if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
begin
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= cExplosionBorderColor
@@ -286,7 +282,7 @@
t:= y - dy;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dx, 0) to Min(x + dx, LAND_WIDTH - 1) do
- if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
+ if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
begin
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= cExplosionBorderColor
@@ -300,7 +296,7 @@
t:= y + dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
+ if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
begin
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= cExplosionBorderColor
@@ -315,7 +311,7 @@
t:= y - dx;
if (t and LAND_HEIGHT_MASK) = 0 then
for i:= Max(x - dy, 0) to Min(x + dy, LAND_WIDTH - 1) do
- if (Land[t, i] and (lfBasic or lfObject)) <> 0 then
+ if ((Land[t, i] and lfBasic) <> 0) or ((Land[t, i] and lfObject) <> 0) then
begin
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[t, i]:= cExplosionBorderColor
@@ -413,18 +409,17 @@
begin
for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
- if (Land[ty, tx] and lfBasic) <> 0 then
+ if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[ty, tx]:= LandBackPixel(tx, ty)
else
LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
- else if not isMap then
- begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= 0
- else
- LandPixels[ty div 2, tx div 2]:= 0
- end;
+ else
+ if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[ty, tx]:= 0
+ else
+ LandPixels[ty div 2, tx div 2]:= 0;
inc(y, dY)
end;
@@ -435,7 +430,7 @@
begin
for ty:= Max(y - Radius, 0) to Min(y + Radius, LAND_HEIGHT) do
for tx:= Max(0, ar^[i].Left - Radius) to Min(LAND_WIDTH, ar^[i].Right + Radius) do
- if (Land[ty, tx] and (lfBasic or lfObject)) <> 0 then
+ if ((Land[ty, tx] and lfBasic) <> 0) or ((Land[ty, tx] and lfObject) <> 0) then
begin
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[ty, tx]:= cExplosionBorderColor
@@ -479,12 +474,13 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and
((tx and LAND_WIDTH_MASK) = 0) and
- ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then
+ (((Land[ty, tx] and lfBasic) <> 0) or
+ ((Land[ty, tx] and lfObject) <> 0)) then
begin
Land[ty, tx]:= Land[ty, tx] or lfDamaged;
- if (cReducedQuality and rqBlurryLand) = 0 then
+ if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[ty, tx]:= cExplosionBorderColor
- else
+ else
LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
end
end;
@@ -504,13 +500,15 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and
((tx and LAND_WIDTH_MASK) = 0) and
- ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then
+ (((Land[ty, tx] and lfBasic) <> 0) or
+ ((Land[ty, tx] and lfObject) <> 0)) then
begin
Land[ty, tx]:= Land[ty, tx] or lfDamaged;
- if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= cExplosionBorderColor
- else
- LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+ if (cReducedQuality and rqBlurryLand) = 0 then
+ LandPixels[ty, tx]:= cExplosionBorderColor
+ else
+ LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+
end
end;
X:= nx;
@@ -523,18 +521,17 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and ((tx and LAND_WIDTH_MASK) = 0) and ((Land[ty, tx] and lfIndestructible) = 0) then
begin
- if (Land[ty, tx] and lfBasic) <> 0 then
+ if ((Land[ty, tx] and lfBasic) <> 0) and not disableLandBack then
if (cReducedQuality and rqBlurryLand) = 0 then
LandPixels[ty, tx]:= LandBackPixel(tx, ty)
else
LandPixels[ty div 2, tx div 2]:= LandBackPixel(tx, ty)
- else if not isMap or ((Land[ty, tx] and lfObject) <> 0) then
- begin
+ else
+ if ((Land[ty, tx] and lfObject) <> 0) or (disableLandBack and ((Land[ty, tx] and lfIndestructible) = 0)) then
if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= 0
+ LandPixels[ty, tx]:= 0
else
- LandPixels[ty div 2, tx div 2]:= 0
- end;
+ LandPixels[ty div 2, tx div 2]:= 0;
Land[ty, tx]:= 0;
end
@@ -547,13 +544,15 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and
((tx and LAND_WIDTH_MASK) = 0) and
- ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then
+ (((Land[ty, tx] and lfBasic) <> 0) or
+ ((Land[ty, tx] and lfObject) <> 0)) then
begin
Land[ty, tx]:= Land[ty, tx] or lfDamaged;
if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= cExplosionBorderColor
+ LandPixels[ty, tx]:= cExplosionBorderColor
else
- LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+ LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+
end
end;
nx:= nx - dY;
@@ -572,13 +571,14 @@
ty:= hwRound(Y);
if ((ty and LAND_HEIGHT_MASK) = 0) and
((tx and LAND_WIDTH_MASK) = 0) and
- ((Land[ty, tx] and (lfBasic or lfObject)) <> 0) then
+ (((Land[ty, tx] and lfBasic) <> 0) or
+ ((Land[ty, tx] and lfObject) <> 0)) then
begin
Land[ty, tx]:= Land[ty, tx] or lfDamaged;
if (cReducedQuality and rqBlurryLand) = 0 then
- LandPixels[ty, tx]:= cExplosionBorderColor
+ LandPixels[ty, tx]:= cExplosionBorderColor
else
- LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
+ LandPixels[ty div 2, tx div 2]:= cExplosionBorderColor
end
end;
nx:= nx - dY;
@@ -670,9 +670,21 @@
// was experimenting with applying as damage occurred.
function Despeckle(X, Y: LongInt): boolean;
-var nx, ny, i, j, c: LongInt;
+var nx, ny, i, j, c, xx, yy: LongInt;
+ pixelsweep: boolean;
begin
-if ((Land[Y, X] and lfDamaged) <> 0) and ((Land[Y, X] and lfIndestructible) = 0) then // check neighbours
+if (cReducedQuality and rqBlurryLand) = 0 then
+ begin
+ xx:= X;
+ yy:= Y;
+ end
+else
+ begin
+ xx:= X div 2;
+ yy:= Y div 2;
+ end;
+pixelsweep:= ((Land[Y, X] and $FF00) = 0) and (LandPixels[yy, xx] <> 0);
+if (((Land[Y, X] and lfDamaged) <> 0) and ((Land[Y, X] and lfIndestructible) = 0)) or pixelsweep then
begin
c:= 0;
for i:= -1 to 1 do
@@ -682,27 +694,29 @@
ny:= Y + i;
nx:= X + j;
if ((ny and LAND_HEIGHT_MASK) = 0) and ((nx and LAND_WIDTH_MASK) = 0) then
- if Land[ny, nx] > 255 then
- inc(c);
+ begin
+ if pixelsweep then
+ begin
+ if ((cReducedQuality and rqBlurryLand) <> 0) then
+ begin
+ nx:= nx div 2;
+ ny:= ny div 2
+ end;
+ if LandPixels[ny, nx] <> 0 then inc(c);
+ end
+ else if Land[ny, nx] > 255 then inc(c);
+ end
end;
if c < 4 then // 0-3 neighbours
begin
- if (cReducedQuality and rqBlurryLand) = 0 then
- begin
- if (Land[Y, X] and lfBasic) <> 0 then
- LandPixels[Y, X]:= LandBackPixel(X, Y)
- else if not isMap or ((Land[Y, X] and lfObject) <> 0) then
- LandPixels[Y, X]:= 0
- end
+ if ((Land[Y, X] and lfBasic) <> 0) and not disableLandBack then
+ LandPixels[yy, xx]:= LandBackPixel(X, Y)
else
- if (Land[Y, X] and lfBasic) <> 0 then
- LandPixels[Y div 2, X div 2]:= LandBackPixel(X, Y)
- else if not isMap or ((Land[Y, X] and lfObject) <> 0) then
- LandPixels[Y div 2, X div 2]:= 0;
+ LandPixels[yy, xx]:= 0;
Land[Y, X]:= 0;
- exit(true);
+ if not pixelsweep then exit(true);
end;
end;
Despeckle:= false
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uLandObjects.pas
--- a/hedgewars/uLandObjects.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uLandObjects.pas Tue Dec 28 22:40:12 2010 +0100
@@ -466,7 +466,7 @@
if (cReducedQuality and rqKillFlakes) <> 0 then
numFlakes:= 0;
-if Theme <> 'Snow' then
+if ((GameFlags and gfBorder) <> 0) or ((Theme <> 'Snow') and (Theme <> 'Christmas')) then
for i:= 0 to Pred(numFlakes) do
AddVisualGear(cLeftScreenBorder + random(cScreenSpace), random(1024+200) - 100 + LAND_HEIGHT, vgtFlake)
else
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uLandPainted.pas
--- a/hedgewars/uLandPainted.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uLandPainted.pas Tue Dec 28 22:40:12 2010 +0100
@@ -149,12 +149,12 @@
begin
if (pe^.point.flags and $80 <> 0) then
begin
- AddFileLog('[DRAW] Move to: ('+inttostr(pe^.point.X)+','+inttostr(pe^.point.Y)+')');
+ {$IFDEF DEBUGFILE}AddFileLog('[DRAW] Move to: ('+inttostr(pe^.point.X)+','+inttostr(pe^.point.Y)+')');{$ENDIF}
FillRoundInLand(pe^.point.X, pe^.point.Y, 34, lfBasic)
end
else
begin
- AddFileLog('[DRAW] Line to: ('+inttostr(pe^.point.X)+','+inttostr(pe^.point.Y)+')');
+ {$IFDEF DEBUGFILE}AddFileLog('[DRAW] Line to: ('+inttostr(pe^.point.X)+','+inttostr(pe^.point.Y)+')');{$ENDIF}
DrawLineOnLand(prevPoint.X, prevPoint.Y, pe^.point.X, pe^.point.Y);
end;
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uRandom.pas
--- a/hedgewars/uRandom.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uRandom.pas Tue Dec 28 22:40:12 2010 +0100
@@ -58,7 +58,7 @@
cirbuf[i]:= byte(Seed[i + 1]);
for i:= Length(Seed) to 54 do
- cirbuf[i]:= $A98765 + (cNetProtoVersion * 2); // odd number
+ cirbuf[i]:= $A98765 + 68; // odd number
for i:= 0 to 1023 do GetNext
end;
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uScript.pas
--- a/hedgewars/uScript.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uScript.pas Tue Dec 28 22:40:12 2010 +0100
@@ -443,6 +443,25 @@
lc_getgearmessage:= 1
end;
+function lc_getgearelasticity(L : Plua_State) : LongInt; Cdecl;
+var gear : PGear;
+begin
+ if lua_gettop(L) <> 1 then
+ begin
+ LuaError('Lua: Wrong number of parameters passed to GetGearElasticity!');
+ lua_pushnil(L); // return value on stack (nil)
+ end
+ else
+ begin
+ gear:= GearByUID(lua_tointeger(L, 1));
+ if gear <> nil then
+ lua_pushinteger(L, hwRound(gear^.elasticity * _10000))
+ else
+ lua_pushnil(L);
+ end;
+ lc_getgearelasticity:= 1
+end;
+
function lc_setgearmessage(L : Plua_State) : LongInt; Cdecl;
var gear : PGear;
begin
@@ -1504,6 +1523,7 @@
lua_register(luaState, 'HogTurnLeft', @lc_hogturnleft);
lua_register(luaState, 'CampaignLock', @lc_campaignlock);
lua_register(luaState, 'CampaignUnlock', @lc_campaignunlock);
+lua_register(luaState, 'GetGearElasticity', @lc_getgearelasticity);
lua_register(luaState, 'GetGearMessage', @lc_getgearmessage);
lua_register(luaState, 'SetGearMessage', @lc_setgearmessage);
lua_register(luaState, 'GetRandom', @lc_getrandom);
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uUtils.pas
--- a/hedgewars/uUtils.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uUtils.pas Tue Dec 28 22:40:12 2010 +0100
@@ -254,15 +254,19 @@
l:= Utf8ToUnicode(@tmpstr, Str2PChar(s), length(s))-1;
i:= 0;
+
while i < l do
begin
u:= tmpstr[i];
- if (#$2E80 <= u) and (
- (u <= #$2FDF ) or // CJK Radicals Supplement / Kangxi Radicals
+ if (#$1100 <= u) and (
+ (u <= #$11FF ) or // Hangul Jamo
+ ((#$2E80 <= u) and (u <= #$2FDF)) or // CJK Radicals Supplement / Kangxi Radicals
((#$2FF0 <= u) and (u <= #$303F)) or // Ideographic Description Characters / CJK Radicals Supplement
+ ((#$3130 <= u) and (u <= #$318F)) or // Hangul Compatibility Jamo
((#$31C0 <= u) and (u <= #$31EF)) or // CJK Strokes
((#$3200 <= u) and (u <= #$4DBF)) or // Enclosed CJK Letters and Months / CJK Compatibility / CJK Unified Ideographs Extension A
((#$4E00 <= u) and (u <= #$9FFF)) or // CJK Unified Ideographs
+ ((#$AC00 <= u) and (u <= #$D7AF)) or // Hangul Syllables
((#$F900 <= u) and (u <= #$FAFF)) or // CJK Compatibility Ideographs
((#$FE30 <= u) and (u <= #$FE4F))) // CJK Compatibility Forms
then exit(THWFont( ord(font) + ((ord(High(THWFont))+1) div 2) ));
@@ -277,18 +281,22 @@
function GetLaunchX(at: TAmmoType; dir: LongInt; angle: LongInt): LongInt;
begin
+ GetLaunchX:= 0
+(*
if (Ammoz[at].ejectX <> 0) or (Ammoz[at].ejectY <> 0) then
GetLaunchX:= sign(dir) * (8 + hwRound(AngleSin(angle) * Ammoz[at].ejectX) + hwRound(AngleCos(angle) * Ammoz[at].ejectY))
else
- GetLaunchX:= 0
+ GetLaunchX:= 0 *)
end;
function GetLaunchY(at: TAmmoType; angle: LongInt): LongInt;
begin
+ GetLaunchY:= 0
+(*
if (Ammoz[at].ejectX <> 0) or (Ammoz[at].ejectY <> 0) then
GetLaunchY:= hwRound(AngleSin(angle) * Ammoz[at].ejectY) - hwRound(AngleCos(angle) * Ammoz[at].ejectX) - 2
else
- GetLaunchY:= 0
+ GetLaunchY:= 0*)
end;
function CheckNoTeamOrHH: boolean;
diff -r 1cc14ece1486 -r 095398eba689 hedgewars/uVariables.pas
--- a/hedgewars/uVariables.pas Thu Dec 23 21:45:50 2010 +0100
+++ b/hedgewars/uVariables.pas Tue Dec 28 22:40:12 2010 +0100
@@ -140,6 +140,7 @@
ScreenFadeSpeed : LongInt;
Theme : shortstring;
+ disableLandBack : boolean;
{$IFDEF SDL13}
SDLwindow : PSDL_Window;
@@ -2240,6 +2241,8 @@
cHasFocus := true;
cInactDelay := 1250;
ReadyTimeLeft := 0;
+
+ disableLandBack := false;
ScreenFade := sfNone;
diff -r 1cc14ece1486 -r 095398eba689 project_files/HedgewarsMobile/Resources/Settings/settings.plist
--- a/project_files/HedgewarsMobile/Resources/Settings/settings.plist Thu Dec 23 21:45:50 2010 +0100
+++ b/project_files/HedgewarsMobile/Resources/Settings/settings.plist Tue Dec 28 22:40:12 2010 +0100
@@ -17,7 +17,7 @@
password_length0enhanced
-
+ multitasking
diff -r 1cc14ece1486 -r 095398eba689 project_files/hedgewars.pro
--- a/project_files/hedgewars.pro Thu Dec 23 21:45:50 2010 +0100
+++ b/project_files/hedgewars.pro Tue Dec 28 22:40:12 2010 +0100
@@ -73,6 +73,7 @@
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_hu.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_it.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_ja.ts
+TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_ko.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_nl.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_pl.ts
TRANSLATIONS += ../share/hedgewars/Data/Locale/hedgewars_pt_BR.ts
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Graphics/Hats/beaver.png
Binary file share/hedgewars/Data/Graphics/Hats/beaver.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png
Binary file share/hedgewars/Data/Graphics/Hedgehog/amSnowball.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Graphics/missions.png
Binary file share/hedgewars/Data/Graphics/missions.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Graphics/missions.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Graphics/missions.svg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,179 @@
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/de.lua
--- a/share/hedgewars/Data/Locale/de.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/de.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,96 @@
locale = {
--- ["A game of luck"] =
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["A game of luck"] = "",
["Aiming Practice"] = "Zielübung", --Bazooka, Shotgun, SniperRifle
["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!",
["Bat your opponents through the|baskets and out of the map!"] = "Schlage deine Widersacher durch|die Körbe und aus der Karte hinaus!",
["Bazooka Training"] = "Bazooka-Training",
--- ["Best laps per team: "] =
+-- ["Best laps per team: "] = "",
+-- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+-- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["CAPTURE THE FLAG"] = "",
+-- ["Codename: Teamwork"] = "",
+-- ["Congratulations!"] = "",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulation! Du hast alle Ziele innerhalb der|verfügbaren Zeit ausgeschaltet.", --Bazooka, Shotgun, SniperRifle
+-- ["CONTROL"] = "",
+-- ["Control pillars to score points."] = "",
+-- ["CONTROL v0.3"] = "",
+-- ["CTF_BLIZZARD"] = "",
+-- ["CUSTOM BUILD 0.2"] = "",
+-- ["Cybernetic Empire"] = "",
+-- ["DAMMIT, ROOKIE!"] = "",
+-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
+-- ["Dangerous Ducklings"] = "",
+-- ["Eliminate all enemies"] = "",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Eliminiere alle Ziele bevor die Zeit ausläuft.|Du hast in dieser Mission unbegrenzte Munition.", --Bazooka, Shotgun, SniperRifle
--- ["Fastest lap: "] =
+-- ["Eliminate Poison before the time runs out"] = "",
+-- ["Eliminate the Blue Team"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["Enjoy the swim..."] = "",
+-- ["Fastest lap: "] = "",
+-- ["Feeble Resistance"] = "",
+-- ["Flag captured!"] = "",
+-- ["Flag respawned!"] = "",
+-- ["Flag returned!"] = "",
+-- ["Flags will be placed where each team ends their turn."] = "",
+-- ["GAME OVER!"] = "",
+-- ["Game Started!"] = "",
+-- ["Get on over there and take him out!"] = "",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+-- ["Good birdy......"] = "",
+-- ["Good luck out there!"] = "",
["Hedgewars-Basketball"] = "Hedgewars-Basketball",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+-- ["Hmmm..."] = "",
+-- ["Hooray!"] = "",
["Hunter"] = "Jäger", --Bazooka, Shotgun, SniperRifle
--- ["NEW fastest lap: "] =
+-- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["- Jumping is disabled"] = "",
+-- ["Listen up, maggot!!"] = "",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["NEW fastest lap: "] = "",
+-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Kein-so-Freundschaftsspiel", -- Basketball, Knockball
+-- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "Oh nein! Die Zeit ist um! Versuche es nochmal.", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] =
+-- ["Operation Diver"] = "",
+-- ["Opposing Team: "] = "",
+-- ["Pathetic Hog #%d"] = "",
+-- ["Poison"] = "",
+-- ["Random Weapons"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["See ya!"] = "",
["Shotgun Team"] = "Entrenamiento con escopeta",
["Shotgun Training"] = "Schrotflinten-Training",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s ist draußen und Team %d|erhält eine Strafe!| |Punktestand:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s ist draußen und Team %d|erhält einen Punkt!| |Punktestand:", -- Basketball, Knockball
["Sniper Training"] = "Scharfschützen-Training",
["Sniperz"] = "Heckenschützen",
--- ["Team %d: "] =
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] =
--- ["TrophyRace"] =
--- ["Use your rope to get from start to finish as fast as you can!"] =
--- ["You've reached the goal!| |Time: "] =
+-- ["Spooky Tree"] = "",
+-- ["Team %d: "] = "",
+-- ["Team Scores:"] = "",
+-- ["That was pointless."] = "",
+-- ["The enemy is hiding out on yonder ducky!"] = "",
+-- ["The flag will respawn next round."] = "",
+-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+-- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["TrophyRace"] = "",
+-- ["T_T"] = "",
+-- ["Unit 3378"] = "",
+-- ["Use your rope to get from start to finish as fast as you can!"] = "",
+-- ["Victory for the"] = "",
+-- ["You have SCORED!!"] = "",
+-- ["You've failed. Try again."] = "",
+-- ["You've reached the goal!| |Time:"] = "",
+-- ["You've reached the goal!| |Time: "] = "",
["'Zooka Team"] = "Die Knalltüten",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/es.lua
--- a/share/hedgewars/Data/Locale/es.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/es.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,96 @@
locale = {
--- ["A game of luck"] =
+ [":("] = ":(",
+ ["!!!"] = "!!!",
+ ["A game of luck"] = "Un juego de azar",
["Aiming Practice"] = "Practica tu puntería", --Bazooka, Shotgun, SniperRifle
- ["Bat balls at your enemies and|push them into the sea!"] = "Schlage Bälle auf deine Widersacher|und lass sie ins Meer fallen!",
- ["Bat your opponents through the|baskets and out of the map!"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!",
+ ["Bat balls at your enemies and|push them into the sea!"] = "¡Batea pelotas hacia tus enemigos|y hazlos caer al agua!",
+ ["Bat your opponents through the|baskets and out of the map!"] = "¡Batea a tus enemigos fuera del campo de juego|a través de las canastas laterales!",
["Bazooka Training"] = "Entrenamiento con bazuca",
["Best laps per team: "] = "Mejores tiempos por equipo: ",
+ ["Bloody Rookies"] = "Reclutas", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+ ["by mikade"] = "por mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["CAPTURE THE FLAG"] = "Capturar la bandera",
+ ["Codename: Teamwork"] = "Nombre en clave: Trabajo en equipo",
+ ["Congratulations!"] = "¡Felicidades!",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.", --Bazooka, Shotgun, SniperRifle
+ ["CONTROL"] = "DOMINACIÓN",
+ ["Control pillars to score points."] = "Controla los pilares para anotar puntos.",
+ ["CONTROL v0.3"] = "DOMINACIÓN v0.3",
+-- ["CTF_BLIZZARD"] = "",
+ ["CUSTOM BUILD 0.2"] = "COMPILACIÓN 0.2",
+ ["Cybernetic Empire"] = "Imperio cibernético",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "¡MALDITA SEA, RECLUTA! ¡FUERA DE MI CABEZA!",
+ ["DAMMIT, ROOKIE!"] = "¡MALDITA SEA, RECLUTA!",
+ ["Dangerous Ducklings"] = "Patitos peligrosos",
+ ["Eliminate all enemies"] = "Elimina a todos los enemigos",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destruye todos los objetivos antes de que se agote el tiempo.|La munición en esta misión es ilimitada.", --Bazooka, Shotgun, SniperRifle
+ ["Eliminate Poison before the time runs out"] = "Acaba con los Tóxicos antes de que se agote el tiempo",
+ ["Eliminate the Blue Team"] = "Elimina al Equipo azul",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Elimina a la Unidad 3378 |- Resustencia Fútil debe sobrevivir",
+ ["Enjoy the swim..."] = "Disfruta del baño...",
["Fastest lap: "] = "Vuelta rápida: ",
+ ["Feeble Resistance"] = "Resistencia Fútil",
+ ["Flag captured!"] = "¡Bandera capturada!",
+ ["Flag respawned!"] = "¡Bandera restablecida!",
+ ["Flag returned!"] = "¡Bandera recuperada!",
+ ["Flags will be placed where each team ends their turn."] = "Las banderas serán colocadas donde los jugadores terminen su primer turno.",
+ ["GAME OVER!"] = "¡FIN DEL JUEGO!",
+ ["Game Started!"] = "¡El juego ha empezado!",
+ ["Get on over there and take him out!"] = "¡Ves allí y elimínalo!",
+-- ["Goal:"] = "",
+ ["GO! GO! GO!"] = "¡VAMOS! ¡VAMOS! ¡VAMOS!",
+ ["Good birdy......"] = "Buen pajarito......",
+ ["Good luck out there!"] = "¡Buena suerte!",
["Hedgewars-Basketball"] = "Hedgewars-Baloncesto",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+ ["Hmmm..."] = "Mmm...",
+ ["Hooray!"] = "¡Hurra!",
["Hunter"] = "Artillero", --Bazooka, Shotgun, SniperRifle
+ ["Instructor"] = "Instructor", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["- Jumping is disabled"] = "- No se puede saltar",
+ ["Listen up, maggot!!"] = "¡Atento, escoria!",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "MISIÓN FALLIDA", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "MISIÓN COMPLETADA", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESS"] = "MISIÓN COMPLETADA", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NUEVA vuelta rápida: ",
+ ["NO JUMPING"] = "PROHIBIDO SALTAR",
["Not So Friendly Match"] = "Partido no-tan-amistoso", -- Basketball, Knockball
+ ["Oh no! Just try again!"] = "¡Oh, no! ¿Por qué no lo intentas de nuevo?", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "¡Oh, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] =
+ ["Operation Diver"] = "Buzo",
+ ["Opposing Team: "] = "Equipo enemigo: ",
+ ["Pathetic Hog #%d"] = "Erizo patético #%d",
+ ["Poison"] = "Veneno",
+ ["Random Weapons"] = "Armas aleatorias",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "- Vuelve a tu base con la bandera enemiga para anotar un punto | - El equipo que anote 3 puntos gana | - Sólo se puede anotar si tu propia bandera está en tu base | - Los erizos resucitan cuando mueren",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+ ["RULES OF THE GAME [Press ESC to view]"] = "REGLAS DEL JUEGO (Presiona ESC para leerlas)",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["See ya!"] = "¡Hasta otra!",
["Shotgun Team"] = "Escopeteros",
["Shotgun Training"] = "Entrenamiento con escopeta",
["%s is out and Team %d|scored a penalty!| |Score:"] = "¡%s cayó y Equipo %d|anotó una falta!| |Puntuación:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "¡%s cayó y Equipo %d|anotó un tanto!| |Puntuación:", -- Basketball, Knockball
["Sniper Training"] = "Entrenamiento con rifle francotirador",
- ["Sniperz"] = "Fusileros",
+ ["Sniperz"] = "Francotiradores",
+ ["Spooky Tree"] = "Árbol tenebroso",
["Team %d: "] = "Equipo %d",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] =
+ ["Team Scores:"] = "Puntuaciones:",
+-- ["That was pointless."] = "",
+ ["The enemy is hiding out on yonder ducky!"] = "¡El enemigo está escondido detrás del patito del fondo!",
+-- ["The flag will respawn next round."] = "",
+ ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "¡Alguien ha saboteado tu arsenal, tendrás|que apañarte con la primera arma que encuentres!",
+ ["Toxic Team"] = "Tóxicos", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "TrophyRace",
+ ["T_T"] = "T_T",
+ ["Unit 3378"] = "Unidad 3378",
["Use your rope to get from start to finish as fast as you can!"] = "¡Usa tu cuerda para llegar a la salida lo más rápido que puedas!",
+ ["Victory for the"] = "La victoria es para",
+ ["You have SCORED!!"] = "¡Has anotado!",
+ ["You've failed. Try again."] = "Has fracasado. Inténtalo de nuevo.",
["You've reached the goal!| |Time: "] = "¡Has llegado a la meta!| |Tiempo: ",
+ ["You've reached the goal!| |Time:"] = "¡Has llegado a la meta!| |Tiempo:",
["'Zooka Team"] = "Bazuqueros",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/es.txt
--- a/share/hedgewars/Data/Locale/es.txt Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/es.txt Tue Dec 28 22:40:12 2010 +0100
@@ -1,5 +1,5 @@
; Spanish locale
-; Revision 3987
+; Revision 4632
00:00=Granada
00:01=Granada de frag.
@@ -51,6 +51,8 @@
00:47=Bomba lapa
00:48=Mazo
00:49=Resurrección
+00:50=Bombardeo perforador aéreo
+00:51=Bola de tierra
01:00=¡Luchad!
01:01=Empate
@@ -430,6 +432,7 @@
03:47=¡Pégalo en un buen sitio!
03:48=Pablo clavó un clavito
03:49=Hace exactamente lo que dice
+03:50=Para los amantes de los topos
; Descripciones de armamento ( líneas delimitadas con | )
04:00=Ataca a tus enemigos usando una sencilla granada.|Explotará una vez el temporizador llegue a cero.|1-5: ajustar temporizador.|Atacar: mantener presionado para lanzar más lejos.
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_ar.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ar.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ar.ts Tue Dec 28 22:40:12 2010 +0100
@@ -191,6 +191,10 @@
+
+
+
+ HWNetServersModel
@@ -1250,10 +1254,6 @@
التلقائي
-
-
-
-
@@ -1671,7 +1671,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_bg.ts
--- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Tue Dec 28 22:40:12 2010 +0100
@@ -190,6 +190,10 @@
+
+
+
+ HWNetServersModel
@@ -1196,10 +1200,6 @@
По подразбиране
-
-
-
-
@@ -1617,7 +1617,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_cs.ts
--- a/share/hedgewars/Data/Locale/hedgewars_cs.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_cs.ts Tue Dec 28 22:40:12 2010 +0100
@@ -191,6 +191,10 @@
+
+
+
+ HWNetServersModel
@@ -1205,10 +1209,6 @@
Základní
-
-
-
-
@@ -1626,7 +1626,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_de.ts
--- a/share/hedgewars/Data/Locale/hedgewars_de.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_de.ts Tue Dec 28 22:40:12 2010 +0100
@@ -194,6 +194,10 @@
+
+
+
+ HWNetServersModel
@@ -1274,10 +1278,6 @@
Standard
-
-
-
-
@@ -1701,7 +1701,7 @@
Ordne Dateitypen zu
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_en.ts
--- a/share/hedgewars/Data/Locale/hedgewars_en.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_en.ts Tue Dec 28 22:40:12 2010 +0100
@@ -45,10 +45,6 @@
Edit schemes
-
- When this option is enabled selecting a game scheme will auto-select a weapon (and vice versa)
-
-
@@ -194,6 +190,10 @@
+
+
+
+ HWNetServersModel
@@ -1258,10 +1258,6 @@
Default
-
-
-
-
@@ -1679,7 +1675,7 @@
Associate file extensions
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_es.ts
--- a/share/hedgewars/Data/Locale/hedgewars_es.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_es.ts Tue Dec 28 22:40:12 2010 +0100
@@ -9,7 +9,7 @@
-
+ Copia de
@@ -50,7 +50,7 @@
-
+ Cuando esta opción esté activada escoger un modo de juego escogerá el set de armas correspondiente
@@ -196,7 +196,11 @@
-
+ Semilla
+
+
+
+ Establecer
@@ -334,31 +338,31 @@
PageDrawMap
-
+ Deshacer
-
+ Limpiar
- Cargar
+ Cargar
-
+ Guardar
-
+ Cargar mapa
-
+ Mapas dibujados a mano (*.hwmap);;Todos los ficheros (*.*)
-
+ Guardar mapa
@@ -789,27 +793,27 @@
-
+ Nuevo modo de juego
-
+ Editar modo de juego
-
+ Eliminar modo de juego
-
+ Nuevo set de armas
-
+ Editar set de armas
-
+ Eliminar set de armas
@@ -1070,15 +1074,15 @@
-
+ No tendrás que volver a preocuparte del viento.
-
+ El viento afectará a (casi) todo.
-
+ Copiar
@@ -1093,11 +1097,11 @@
- Nuevo
+ Nuevo
-
+ Copiar
@@ -1305,11 +1309,11 @@
-
+ Normal
-
+ Mapa dibujado a mano...
@@ -1364,7 +1368,7 @@
-
+ Modos de juego y sets de armas
@@ -1548,11 +1552,11 @@
-
+ % longitud de las cuerdas
-
+ Tipo de juego
@@ -1621,27 +1625,27 @@
- Equipos
+ Equipos
-
+ ¿De verdad quieres eliminar este equipo?
-
+ Modos de juego
-
+ ¡No se puede eliminar el modo de juego predefinido '%1'!
-
+ ¿De verdad quieres eliminar este modo de juego?
-
+ ¡No se puede eliminar el set de armas predefinido '%1'!
@@ -1739,6 +1743,10 @@
+ Establecer
+
+
+
@@ -1781,7 +1789,7 @@
- Probabilidad
+ Probabilidades
@@ -1793,11 +1801,11 @@
- Nuevo
+ Nuevo
-
+ Copia de
@@ -1907,11 +1915,11 @@
-
+ Deshabilitar viento
-
+ Más viento
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_fi.ts
--- a/share/hedgewars/Data/Locale/hedgewars_fi.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fi.ts Tue Dec 28 22:40:12 2010 +0100
@@ -190,6 +190,10 @@
+
+
+
+ HWNetServersModel
@@ -1296,10 +1300,6 @@
Sekopäinen
-
-
-
-
@@ -1717,7 +1717,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_fr.ts
--- a/share/hedgewars/Data/Locale/hedgewars_fr.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_fr.ts Tue Dec 28 22:40:12 2010 +0100
@@ -190,6 +190,10 @@
+
+
+
+ HWNetServersModel
@@ -1238,10 +1242,6 @@
Défaut
-
-
-
-
@@ -1659,7 +1659,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_hu.ts
--- a/share/hedgewars/Data/Locale/hedgewars_hu.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_hu.ts Tue Dec 28 22:40:12 2010 +0100
@@ -189,6 +189,10 @@
+
+
+
+ HWNetServersModel
@@ -1239,10 +1243,6 @@
Default
-
-
-
-
@@ -1666,7 +1666,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_it.ts
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Tue Dec 28 22:40:12 2010 +0100
@@ -194,6 +194,10 @@
+
+
+
+ HWNetServersModel
@@ -1254,10 +1258,6 @@
Default
-
-
-
-
@@ -1681,7 +1681,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_ja.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ja.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ja.ts Tue Dec 28 22:40:12 2010 +0100
@@ -189,6 +189,10 @@
+
+
+
+ HWNetServersModel
@@ -1187,10 +1191,6 @@
デフォールト
-
-
-
-
@@ -1608,7 +1608,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_ko.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/hedgewars_ko.ts Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,2326 @@
+
+
+
+
+ AmmoSchemeModel
+
+
+
+
+
+
+
+
+
+
+ FreqSpinBox
+
+
+
+
+
+
+
+
+
+
+
+
+ GameCFGWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HWChatWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HWForm
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ File Types
+
+
+
+
+ File Types
+
+
+
+
+ HWGame
+
+
+ ko.txt
+
+
+
+
+
+
+
+ HWMapContainer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HWNetServersModel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HWNewNet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ KB
+
+
+
+
+
+
+ PageAdmin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageConnecting
+
+
+
+
+
+
+ PageDrawMap
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageEditTeam
+
+
+
+
+
+
+
+
+
+
+ PageGameStats
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageMain
+
+
+
+
+
+
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ Tips
+
+
+
+
+ PageMultiplayer
+
+
+
+
+
+
+ PageNet
+
+
+
+
+
+
+
+
+
+
+ PageNetGame
+
+
+
+
+
+
+ PageNetType
+
+
+
+
+
+
+
+
+
+
+ PageOptions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PagePlayDemo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageRoomsList
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageScheme
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageSelectWeapon
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PageSinglePlayer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QAction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QCheckBox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QComboBox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QGroupBox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QLabel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QLineEdit
+
+
+
+
+
+
+ QMainWindow
+
+
+
+
+
+
+ QMessageBox
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QPushButton
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ QTableWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SelWeaponWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ TCPBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ToggleButtonWidget
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ binds
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ binds (categories)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ binds (descriptions)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ binds (keys)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_nl.ts
--- a/share/hedgewars/Data/Locale/hedgewars_nl.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_nl.ts Tue Dec 28 22:40:12 2010 +0100
@@ -186,6 +186,10 @@
+
+
+
+ HWNetServersModel
@@ -1194,10 +1198,6 @@
-
-
-
-
@@ -1601,7 +1601,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_pl.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pl.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pl.ts Tue Dec 28 22:40:12 2010 +0100
@@ -9,7 +9,22 @@
-
+ kopia
+
+
+
+ DrawMapWidget
+
+
+ Błąd pliku
+
+
+
+ Nie można otworzyć '%1' do zapisu
+
+
+
+ Nie można odczytać pliku '%1'
@@ -51,7 +66,7 @@
-
+ Kiedy ta opcja jest włączona, wybór ustawień gry zmienia uzbrojenie na odpowiednie
@@ -197,7 +212,11 @@
-
+ Ziarno
+
+
+
+ Ustaw
@@ -257,7 +276,7 @@
- %1 *** %2 dołączył
+ %1 *** %2 dołączył
@@ -335,31 +354,31 @@
PageDrawMap
-
+ Cofnij
-
+ Wyczyść
- Wczytaj
+ Wczytaj
-
+ Zapisz
-
+ Załaduj mapę
-
+ Narysowane mapy (*.hwmap);;Wszystkie pliki (*.*)
-
+ Zapisz mapę
@@ -482,12 +501,12 @@
Tips
- Niektóre z broni zadają mało punktów obrażeń jednak użyte w odpowiednim momencie mogą pokazać swój pazur. Spróbuj użyć pistoletu do strącania swoich przeciwników do wody.
+ Niektóre z broni zadają mało punktów obrażeń jednak użyte w odpowiednim momencie mogą pokazać swój pazur. Na przykład spróbuj użyć pistoletu do strącania swoich przeciwników do wody.Tips
- Jeśli nie jesteś pewien co zrobić w danej turze i nie chcesz tracić amunicji możesz pominąć turę. Nie rób tak jdnak zbyt często gdyż nagła śmierć jest nieuchronna!
+ Jeśli nie jesteś pewien co zrobić w danej turze i nie chcesz tracić amunicji możesz pominąć turę. Nie rób tak jednak zbyt często gdyż nagła śmierć jest nieuchronna!
@@ -497,12 +516,12 @@
Tips
- Jeśli chciałbyś zapobiec uzywania własnego nicka przez kogoś innego, zarejestruj go na http://www.hedgewars.org .
+ Jeśli chciałbyś zapobiec używania własnego nicka przez kogoś innego, zarejestruj go na http://www.hedgewars.org .Tips
- Znudzony domyślnymi ustawieniami gry? Spróbuj zagrać w którąś z misji. - oferulą one zmienione zasady gry w zależności od tej którą wybrałeś.
+ Znudzony domyślnymi ustawieniami gry? Spróbuj zagrać w którąś z misji. - oferują one zmienione zasady gry w zależności od tej którą wybrałeś.
@@ -517,7 +536,7 @@
Tips
- Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli ją lubisz, wspomóż nas małą wpłatą lub stwórz własną czapka bądź mapę!
+ Hedgewars jest darmową grą o otwartym kodzie, którą tworzymy w naszym wolnym czasie. Jeśli ją lubisz, wspomóż nas małą wpłatą lub stwórz własną czapkę bądź mapę!
@@ -527,17 +546,17 @@
Tips
- Od czasu do czasu będą organizowane mistrzostwa. Będą one ogłaszane na parę dni z wyprzedzeniem na http://www.hedgewars.org/ .
+ Od czasu do czasu będą organizowane mistrzostwa. Będą one ogłaszane z wyprzedzeniem na http://www.hedgewars.org/ .Tips
- Hedgewars jest dostępne w wielu językach. Jeśli brakuje tłumaczenia w twoim języku bądź jest ono wybrakowane, nie krępuj się z nami skontaktować!
+ Hedgewars jest dostępne w wielu językach. Jeśli brakuje tłumaczenia w twoim języku bądź jest ono wybrakowane, nie bój się z nami skontaktować!Tips
- Hedgewars może być uruchomione na różnych systemach operacyjnych takich jak Microsoft Wondows, MacOS X oraz Linux.
+ Hedgewars może być uruchomione na różnych systemach operacyjnych takich jak Microsoft Windows, MacOS X oraz Linux.
@@ -572,7 +591,7 @@
Tips
- Bądź kulturalny grając w internecie oraz pamiętaj o tym, że w hedgewars mogą grać także młodsze osoby!
+ Bądź kulturalny grając w internecie oraz pamiętaj o tym, że w Hedgewars mogą grać także młodsze osoby!
@@ -582,22 +601,22 @@
Tips
- Wersja Hedgewars dla systemu Windows wspiera XFire. Upewnij się, że dodałeś Hedgewars do listy gier by twoi znajomi mogli zobaczyć Ciebie w czasie gry.
+ Wersja Hedgewars dla systemu Windows wspiera XFire. Upewnij się, że dodałeś Hedgewars do listy gier by Twoi znajomi mogli zobaczyć Ciebie w czasie gry.Tips
- Nie powinieneś instalowaś Hedgewars na komputerach których nie posiadasz (w szkole, na studiach, w pracy itp.).Zapytaj osoby odpowiedzialnej za te komputery!
+ Nie powinieneś instalować Hedgewars na komputerach których nie posiadasz (w szkole, na studiach, w pracy itp.). Zapytaj osoby odpowiedzialnej za te komputery!Tips
- Hedgewars jest idealny go gry w czasie przerw.Upewnij się, że nei dodałeś zbyt dużej ilości jeży, bądź zbyt dużej mapy. Pomóc może także zmniejszenie długości tury lub obniżenie ilości życia.
+ Hedgewars jest idealny do gry w czasie przerw.Upewnij się, że nie dałeś zbyt dużej ilości jeży, bądź zbyt dużej mapy. Pomóc może także zmniejszenie długości tury lub obniżenie ilości życia.Tips
- Żadny jeż nie został ranny w czasie tworzenia tej gry.
+ Żaden jeż nie został ranny w czasie tworzenia tej gry.
@@ -612,12 +631,12 @@
Tips
- Jeśli podłączysz jeden lub więcej gamepadów przed włączeniem gry, będziesz miał możliwość przypisania klawiszy by sterować nimi własne jeże.
+ Jeśli podłączysz jeden lub więcej gamepadów przed włączeniem gry, będziesz miał możliwość przypisania klawiszy by sterować swoimi jeżami.Tips
- Create an account on %1 to keep others from using your most favourite nickname while playing on the official server.
+ Stwórz konto na %1 by zapobiec używania twojego ulubionego nicku przez innych na oficjalnym serwerze.
@@ -637,7 +656,7 @@
Tips
- Niektóre z broni wymagają specjalnej strategii lub dużo treningu by je popranie używać. Nie poddawaj się gdy nie ychodzi ci za pierwszym razem.
+ Niektóre z broni wymagają specjalnej strategii lub dużo treningu by je popranie używać. Nie poddawaj się gdy nie wychodzi ci za pierwszym razem.
@@ -647,22 +666,22 @@
Tips
- Cuchnący ser nie powoduje wielkiiego wybuchu. Jednakże pod wpływem wiatu chmura śmierdzącego gazu może bardzo daleko zawędrować i otruć wiele jeży naraz.
+ Cuchnący ser nie powoduje wielkiego wybuchu. Jednakże pod wpływem wiatu chmura śmierdzącego gazu może bardzo daleko zawędrować i otruć wiele jeży naraz.Tips
- Zrzut pianina jest najbardziej morderczym atakiem powietrznym. Pamiętaj, że traciśz jeża którym wykonujesz ten atak więc dobrze zaplanuj swój ruch.
+ Zrzut pianina jest najbardziej morderczym atakiem powietrznym. Pamiętaj, że tracisz jeża którym wykonujesz ten atak więc dobrze zaplanuj swój ruch.Tips
- Pszczoła potrafi być ciężka w użyciu. Jej promień skrętu zależy od prędkości lotu, więc nie próbuj używać pełnej mocy podczas strzału.
+ Pszczoła potrafi być ciężka w użyciu. Jej promień skrętu zależy od prędkości lotu, więc nie staraj się nie używać pełnej mocy podczas strzału.Tips
- Miny samoprzylepne są idealnym narzędziem by tworzyć małe reakcje łańcuchowe bądź zmuszenia przeciwnika by popadł w tarapaty lub wpadł do wody.
+ Miny samoprzylepne są idealnym narzędziem by tworzyć małe reakcje łańcuchowe bądź do zmuszenia przeciwnika by popadł w tarapaty lub wpadł do wody.
@@ -672,7 +691,7 @@
Tips
- Jeśli utknąłeś za jeżem przeciwnika, użyj młotka by wbić go w ziemię. Unikniesz wtedy eksplozji która z pewnością zabrała by Tobie punkty życia.
+ Jeśli utknąłeś za jeżem przeciwnika, użyj młotka by wbić go w ziemię. Unikniesz wtedy eksplozji która z pewnością zabrałaby Tobie punkty życia.
@@ -682,7 +701,7 @@
Tips
- Miotacz ognia jest głównie bronią ale moe być użyty również jako narzędzie do kopania tuneli.
+ Miotacz ognia jest śmiercionośną bronią ale może być użyty również jako narzędzie do kopania tuneli.
@@ -692,7 +711,7 @@
Tips
- Chcesz wiedzieć kto tworzy tę grę. Kliknij logo w głównym menu by zobaczyć autorów.
+ Chcesz wiedzieć kto tworzy tę grę? Kliknij logo w głównym menu by zobaczyć autorów.
@@ -702,12 +721,12 @@
Tips
- Możesz rysować własne nagrobki, czapki, flagi lub nawet mapy albo tematy! Miej na uwadze to by udostępnić je każdemu który będzie z tobą grał prze4z sieć.
+ Możesz rysować własne nagrobki, czapki, flagi lub nawet mapy albo tematy! Miej na uwadze to by udostępnić je każdemu który będzie grał z Tobą przez sieć.Tips
- Bardzo chcesz nosić czapkę jaka ci się zamarzy. Wspomóż nas pieniężnie a my zrobimy specjalną czapkę tylko dla Ciebie!
+ Chcesz nosić wymarzoną czapkę? Wspomóż nas pieniężnie a my zrobimy specjalną czapkę tylko dla Ciebie!
@@ -737,7 +756,7 @@
Tips
- Swoje zespoły i konfigurację gry znajdziesz w folderze "Biblioteka/Wsparcie aplikacji/Hedgewars" w towim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.
+ Swoje zespoły i konfigurację gry znajdziesz w folderze "Library/Application Support/Hedgewars" w twoim katalogu domowym. Twórz regularnie kopie zapasowe, ale nie edytuj tych plików własnoręcznie.
@@ -760,7 +779,7 @@
- Wybierz serwer z listy powyżej
+ Wybierz serwer z powyższej listy
@@ -809,31 +828,31 @@
- Nie możesz edytować drużyn z menu wyboru drużyn. Wróć do głównego menu by dodawać, edytować i usuwać drużyny.
+ Nie możesz edytować drużyn z menu wyboru drużyn. By to uczynić, wróć do głównego menu.
-
+ Nowy schemat
-
+ Edytuj schemat
-
+ Usuń schemat
-
+ Nowy zestaw uzbrojenia
-
+ Edytuj zestaw uzbrojenia
-
+ Usuń zestaw uzbrojenia
@@ -919,15 +938,15 @@
- Gry mogą być rozgrywane na losowych lub uprzednio stworznych mapach.
+ Gry mogą być rozgrywane na losowych lub uprzednio stworzonych mapach.
- Schemat określa ustawnienia i preferencje takie jak Czas trwania tury, Nagłą śmierć lub Wampiryzm.
+ Schemat określa ustawnienia i preferencje takie jak Czas trwania tury, Nagłą śmierć, Wampiryzm itp.
- Schemat uzbrojenia określa dostępną broń oraz ilość amunicji.
+ Zestaw uzbrojenia określa dostępną broń oraz ilość amunicji.
@@ -1096,15 +1115,15 @@
-
+ Wiatr nie jest już problemem.
-
+ Wiatr ma wpływ na prawie każdą broń.
-
+ Kopiuj
@@ -1119,11 +1138,11 @@
- Nowy
+ Nowy
-
+ Kopiuj
@@ -1331,11 +1350,11 @@
-
+ Normalna
-
+ Mapa rysowana ręcznie...
@@ -1390,7 +1409,7 @@
-
+ Schematy i uzbrojenie
@@ -1577,11 +1596,11 @@
-
+ Długość liny w %
-
+ Rozgrywka
@@ -1634,7 +1653,7 @@
- Czy naprawdę usunąć ten zestaw uzbrojenia?
+ Czy na pewno usunąć ten zestaw uzbrojenia?
@@ -1650,27 +1669,27 @@
- Drużyny
+ Drużyny
-
+ Na pewno usunąć tę drużynę?
-
+ Schematy
-
+ Nie można usunąć domyśłnego schematu '%1'!
-
+ Na pewno usunąć ten schemat?
-
+ Nie można usunąć domyśłnego zestawu usbrojenia '%1'!
@@ -1768,7 +1787,11 @@
-
+ Ustaw
+
+
+
+ Więcej
@@ -1822,11 +1845,11 @@
- nowy
+ nowy
-
+ kopia
@@ -1936,11 +1959,11 @@
-
+ Wyłącz wiatr
-
+ Więcej wiatru
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_pt_BR.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_BR.ts Tue Dec 28 22:40:12 2010 +0100
@@ -191,6 +191,10 @@
checarSemeie
+
+
+ Esquema
+ HWNetServersModel
@@ -1356,7 +1360,7 @@
- Normal
+ Normal
@@ -1790,7 +1794,11 @@
Esquema esta muito genérico
- Esquema
+ Esquema
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_pt_PT.ts
--- a/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_pt_PT.ts Tue Dec 28 22:40:12 2010 +0100
@@ -9,7 +9,7 @@
-
+ copia de
@@ -46,7 +46,7 @@
-
+ Com esta opção activada o esquema de jogo irá automaticamente seleccionar uma arma
@@ -188,7 +188,11 @@
-
+ Semente
+
+
+
+ Definir
@@ -326,31 +330,31 @@
PageDrawMap
-
+ Anular
-
+ Limpar
- Carregar
+ Carregar
-
+ Gravar
-
+ Carregar mapa desenhado
-
+ Mapas Desenhados (*.hwmap);;Todos os ficheiros (*.*)
-
+ Gravar mapa desenhado
@@ -421,10 +425,6 @@
(%1 mortos)
-
-
- (%1 mortos)
-
@@ -568,11 +568,6 @@
Nenhum ouriço foi mal tratado durante a produção deste jogo.
-
- Tips
- Precisas de poupar as cordas? Solta a corda enquanto no ar e dispara-a novamente. Enquanto não tocares no solo podes usar a mesma corda novamente sem desperdiar outras!
-
- TipsO Hedgewars é Open Source e Freeware desenvolvido durante o tempo livre. Se alguem te vendeu o jogo, tente obter o reembolso!
@@ -665,7 +660,7 @@
Tips
- Gostas do Hedgewars? Torna-te fã no %1 ou segue-nos pelo %!
+ Gostas do Hedgewars? Torna-te fã no %1 ou segue-nos pelo %2!
@@ -688,11 +683,6 @@
Podes encontrar os ficheiros de configuração do Hedgewars em "Documentos\Hedgewars". Cria cópias de segurança ou leva os ficheiros contigo, apenas não os edites.
-
- Tips
- Podes encontrar os ficheiros de configuração do Hedgewars na pasta "Hedgewars" dentro da tua "Pasta Pessoal". Cria cópias de segurança ou leva os ficheiros contigo, apenas não os edites.
-
- TipsÉ possivel associar os ficheiros relacionados com o Hedgewars (partidas e demonstrações) directamente com o jogo para que seja possivel lançalos directamente do teu explorador de ficheiros ou internet favorito.
@@ -705,12 +695,12 @@
Tips
-
+ Podes encontrar os ficheiros de configuração do Hedgewars em "Library/Application Support/Hedgewars" dentro da tua "Pasta Pessoal". Cria cópias de segurança ou leva os ficheiros contigo, mas não os edites manualmente.Tips
-
+ Podes encontrar os ficheiros de configuração do Hedgewars em ".hedgewars" dentro da tua "Pasta Pessoal". Cria cópias de segurança ou leva os ficheiros contigo, mas não os edites manualmente.
@@ -781,27 +771,27 @@
-
+ Novo esquema
-
+ Editar esquema
-
+ Apagar esquema
-
+ Novo esquema de armas
-
+ Editar esquema de armas
-
+ Apagar esquema de armas
@@ -1062,15 +1052,15 @@
-
+ Não vais ter de te preocupar mais com o vento.
-
+ O vento afecta quase tudo.
-
+ Copiar
@@ -1085,11 +1075,11 @@
- Novo
+ Novo
-
+ Copiar
@@ -1268,12 +1258,8 @@
Predefinido
-
-
-
-
-
+ mapa desenhado à mão...
@@ -1328,7 +1314,7 @@
-
+ Esquemas e Armamento
@@ -1499,11 +1485,11 @@
-
+ % Comprimento da Corda
-
+ Jogabilidade
@@ -1572,27 +1558,27 @@
- Equipas
+ Equipas
-
+ Deseja mesmo apagar esta equipa?
-
+ Esquemas
-
+ Não é possível eliminar o esquema por omisão '%1'!
-
+ Deseja mesmo apagar este esquema de jogo?
-
+ Não é possível eliminar o esquema de armas por omisão '%1'!
@@ -1689,8 +1675,8 @@
Associar com as extensões dos ficheiros
-
-
+
+ mais
@@ -1744,11 +1730,11 @@
- novo
+ novo
-
+ copia de
@@ -1858,11 +1844,11 @@
-
+ Desactivar Vento
-
+ Mais Vento
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_ru.ts
--- a/share/hedgewars/Data/Locale/hedgewars_ru.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_ru.ts Tue Dec 28 22:40:12 2010 +0100
@@ -195,6 +195,10 @@
+
+
+
+ HWNetServersModel
@@ -1269,10 +1273,6 @@
По умолчанию
-
-
-
-
@@ -1700,7 +1700,7 @@
Сопоставить расширения файлов
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_sk.ts
--- a/share/hedgewars/Data/Locale/hedgewars_sk.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sk.ts Tue Dec 28 22:40:12 2010 +0100
@@ -195,6 +195,10 @@
Zrno
+
+
+ Nastaviť
+ HWNetServersModel
@@ -1319,7 +1323,7 @@
- Normálna
+ Normálna
@@ -1751,7 +1755,11 @@
- Nastaviť
+ Nastaviť
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_sv.ts
--- a/share/hedgewars/Data/Locale/hedgewars_sv.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_sv.ts Tue Dec 28 22:40:12 2010 +0100
@@ -190,6 +190,10 @@
Frö
+
+
+ Ange
+ HWNetServersModel
@@ -1297,7 +1301,7 @@
- Vanligt
+ Vanligt
@@ -1724,7 +1728,11 @@
- Ange
+ Ange
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_tr_TR.ts
--- a/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_tr_TR.ts Tue Dec 28 22:40:12 2010 +0100
@@ -189,6 +189,10 @@
+
+
+
+ HWNetServersModel
@@ -1199,10 +1203,6 @@
Öntanımlı
-
-
-
-
@@ -1620,7 +1620,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_uk.ts
--- a/share/hedgewars/Data/Locale/hedgewars_uk.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_uk.ts Tue Dec 28 22:40:12 2010 +0100
@@ -195,6 +195,10 @@
+
+
+
+ HWNetServersModel
@@ -1269,10 +1273,6 @@
За замовчуванням
-
-
-
-
@@ -1690,7 +1690,7 @@
Асоціювати файлові розширення
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_zh_CN.ts
--- a/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_CN.ts Tue Dec 28 22:40:12 2010 +0100
@@ -189,6 +189,10 @@
+
+
+
+ HWNetServersModel
@@ -1305,10 +1309,6 @@
疯狂刺猬
-
-
-
-
@@ -1726,7 +1726,7 @@
相关文件扩展
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/hedgewars_zh_TW.ts
--- a/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/hedgewars_zh_TW.ts Tue Dec 28 22:40:12 2010 +0100
@@ -189,6 +189,10 @@
+
+
+
+ HWNetServersModel
@@ -1227,10 +1231,6 @@
默認
-
-
-
-
@@ -1648,7 +1648,7 @@
-
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/ko.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/ko.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,97 @@
+locale = {
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["A game of luck"] = "",
+-- ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Bat balls at your enemies and|push them into the sea!"] = "",
+-- ["Bat your opponents through the|baskets and out of the map!"] = "",
+-- ["Bazooka Training"] = "",
+-- ["Best laps per team: "] = "",
+-- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+-- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["CAPTURE THE FLAG"] = "",
+-- ["Codename: Teamwork"] = "",
+-- ["Congratulations!"] = "",
+-- ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["CONTROL"] = "",
+-- ["Control pillars to score points."] = "",
+-- ["CONTROL v0.3"] = "",
+-- ["CTF_BLIZZARD"] = "",
+-- ["CUSTOM BUILD 0.2"] = "",
+-- ["Cybernetic Empire"] = "",
+-- ["DAMMIT, ROOKIE!"] = "",
+-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
+-- ["Dangerous Ducklings"] = "",
+-- ["Eliminate all enemies"] = "",
+-- ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Eliminate Poison before the time runs out"] = "",
+-- ["Eliminate the Blue Team"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["Enjoy the swim..."] = "",
+-- ["Fastest lap: "] = "",
+-- ["Feeble Resistance"] = "",
+-- ["Flag captured!"] = "",
+-- ["Flag respawned!"] = "",
+-- ["Flag returned!"] = "",
+-- ["Flags will be placed where each team ends their turn."] = "",
+-- ["GAME OVER!"] = "",
+-- ["Game Started!"] = "",
+-- ["Get on over there and take him out!"] = "",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+-- ["Good birdy......"] = "",
+-- ["Good luck out there!"] = "",
+-- ["Hedgewars-Basketball"] = "",
+-- ["Hedgewars-Knockball"] = "",
+-- ["Hmmm..."] = "",
+-- ["Hooray!"] = "",
+-- ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["- Jumping is disabled"] = "",
+-- ["Listen up, maggot!!"] = "",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["NEW fastest lap: "] = "",
+-- ["NO JUMPING"] = "",
+-- ["Not So Friendly Match"] = "", -- Basketball, Knockball
+-- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Operation Diver"] = "",
+-- ["Opposing Team: "] = "",
+-- ["Pathetic Hog #%d"] = "",
+-- ["Poison"] = "",
+-- ["Random Weapons"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["See ya!"] = "",
+-- ["Shotgun Team"] = "",
+-- ["Shotgun Training"] = "",
+-- ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
+-- ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
+-- ["Sniper Training"] = "",
+-- ["Sniperz"] = "",
+-- ["Spooky Tree"] = "",
+-- ["Team %d: "] = "",
+-- ["Team Scores:"] = "",
+-- ["That was pointless."] = "",
+-- ["The enemy is hiding out on yonder ducky!"] = "",
+-- ["The flag will respawn next round."] = "",
+-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+-- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["TrophyRace"] = "",
+-- ["T_T"] = "",
+-- ["Unit 3378"] = "",
+-- ["Use your rope to get from start to finish as fast as you can!"] = "",
+-- ["Victory for the"] = "",
+-- ["You have SCORED!!"] = "",
+-- ["You've failed. Try again."] = "",
+-- ["You've reached the goal!| |Time: "] = "",
+-- ["'Zooka Team"] = "",
+ }
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/ko.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Locale/ko.txt Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,233 @@
+; Korean locale
+
+00:00=수류탄
+00:01=산탄식 폭탄
+00:02=로켓탄 발사기
+00:03=살인벌
+00:04=엽총
+00:05=잭 해머
+00:06=통과
+00:07=밧줄
+00:08=지뢰
+00:09=권총
+00:10=다이너마이트
+00:11=야구 방망이
+00:12=올려치기
+00:13=초
+00:14=낙하산
+00:15=폭탄 공습
+00:16=지뢰 공습
+00:17=발염 장치
+00:18=벽건설
+00:19=텔레포트
+00:20=고슴도치 바꾸기
+00:21=박격포
+00:22=채찍
+00:23=가미가제 공격
+00:24=케이크
+00:25=유혹
+00:26=소박폭탄
+00:27=불지옥 수류탄
+00:28=드릴 발사기
+00:29=구체의 폭탄 발사기
+00:30=네이팜 공습
+00:31=원격조종비행기
+00:32=저중력
+00:33=손상 증가
+00:34=정복 불능
+00:35=시간연장
+00:36=레이저 조준기
+00:37=흡혈귀
+00:38=저격용 소총
+00:39=비행접시
+00:40=화염병
+00:41=못생긴 앵무새
+00:42=포털 건
+00:43=피아노
+00:44=악취가 나는 치즈
+00:45=사인 건
+00:46=화염 방사기
+00:47=접착지뢰
+00:48=망치
+00:49=소생시키기
+
+01:00=시~작!
+01:01=무승부
+01:02=%1 승리!
+01:03=음량 %1%
+01:04=정지
+01:05=그만둘까요? (Y/Esc)?
+01:06=단판 결승!
+01:07=%1 발 남는다
+01:08=연료
+01:09=동시에 발생하고 있다...
+01:10=사용하면 회전 계속할 수 있다
+01:11=아직 사용할 수가 없다
+01:12=1 회전 후에 단판 결승 시작하겠다!
+01:13=%1 회전 후에 단판 결승 시작하겠다!
+01:14=%1 준비됐나요?
+
+; Event messages
+; Hog (%1) died
+02:00=%1 죽었다!
+
+; Hog (%1) drowned
+02:01=%1 !
+
+; Round starts
+02:02=시~작!
+
+; Round ends (win; unused atm)
+02:03=...
+
+; Round ends (draw; unused atm)
+02:04=...
+
+; New health crate
+02:05=구급상자!
+
+; New ammo crate
+02:06=무기상자!
+
+; New utility crate
+02:07=장치상자!
+
+; Hog (%1) skips his turn
+02:08=%1 통과했다.
+
+; Hog (%1) hurts himself only
+02:09=%1 피학대 성애자인 것 캍아...
+
+; Hog shot an home run (using the bat and another hog)
+02:10=홈런!
+
+; Hog (%1) has to leave (team is gone)
+02:11=%1 포기했다!
+
+; Weapon Categories
+03:00=Timed Grenade
+03:01=Timed Grenade
+03:02=Ballistic Weapon
+03:03=Guided Weapon
+03:04=Gun (multiple shots)
+03:05=Digging Tool
+03:06=Action
+03:07=Transport Utility
+03:08=Proximity Bomb
+03:09=Gun (multiple shots)
+03:10=BOOM!
+03:11=Bonk!
+03:12=Martial Arts
+03:13=UNUSED
+03:14=Transport Utility
+03:15=Airborne Attack
+03:16=Airborne Attack
+03:17=Digging Tool
+03:18=Utility
+03:19=Transport Utility
+03:20=Action
+03:21=Ballistic Weapon
+03:22=Call me Indiana!
+03:23=(Really) Martial Arts
+03:24=The cake is NOT a lie!
+03:25=Costume Kit
+03:26=Juicy Grenade
+03:27=Fiery Grenade
+03:28=Ballistic Weapon
+03:29=Ballistic Weapon
+03:30=Airborne Attack
+03:31=Remote Controlled Bomb
+03:32=Temporary Effect
+03:33=Temporary Effect
+03:34=Temporary Effect
+03:35=Temporary Effect
+03:36=Temporary Effect
+03:37=Temporary Effect
+03:38=Gun (multiple shots)
+03:39=Transport Utility
+03:40=Incinerating Grenade
+03:41=Huge fan of Squawks
+03:42=I'm making a note here...
+; the misspelled "Beethoven" is intentional (-> to beat)
+03:43=Performing Beathoven's deadly sonata
+03:44=Best before: 1923
+03:45=The power of science
+03:46=Hot Hot Hot!
+03:47=Stick these somewhere useful!
+03:48=It's Hammer time!
+03:49=Does what you guess
+
+; Weapon Descriptions (use | as line breaks)
+04:00=Attack your enemies using a simple grenade.|It will explode once its timer reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
+04:01=Attack your enemies using a cluster bomb.|It will split into smaller bombs once its timer|reaches zero.|1-5: Set grenade's timer|Attack: Hold to throw with more power
+04:02=Attack your enemies using a ballistic projectile|that might be influenced by wind.|Attack: Hold to shoot with more power
+04:03=Launch an explosive bee that will lock on|the selected target. Don't shoot with full power|to improve its precision.|Cursor: Pick target|Attack: Hold to shoot with more power
+04:04=Attack your enemy using a shotgun with two shots.|Thanks to its spread you don't need direct hits|to harm your opponents.|Attack: Shoot (multiple times)
+04:05=Move underground! Use the pickhammer to drill|a hole into the ground and reach other areas.|Attack: Start or stop digging
+04:06=Bored? No way to attack? Save your ammo?|No problem! Just skip your turn, coward!|Attack: Skip your turn without fighting
+04:07=Bridge huge distances using timed shots with the|rope. Use your momentum to slide into other hogs|or drop grenades and other weapons on them.|Attack: Shoot or release the rope|Long Jump: Drop grenades or similar weapons
+04:08=Keep your enemies away by dropping a mine in|narrow passages or right below their feet. Be|sure to retreat before you trigger it yourself!|Attack: Drop mine next to your feet
+04:09=Not sure about your aiming? Use the Desert|Eagle to attack using up to four shots.|Attack: Shoot (multiple times)
+04:10=Brute force is always an option. Drop this classic|explosive next to your enemies and retreat.|Attack: Drop dynamite next to your feet
+04:11=Get rid of enemy hogs by batting them over|the map borders or into water. Or how about|knocking some mines to your friends?|Attack: Bat everything in front of you
+04:12=Get close and personal to unleash the power of|this almost deadly martial arts technique.|Attack: Perform the Fire Punch
+04:13=UNUSED
+04:14=Fear of heights? Better grab a parachute.|It will unfold once|you fall too far and|save your hog from taking fall damage.|Attack: Unfold the parachute|Long Jump: Drop grenades or similar weapons
+04:15=Call in an airplane to attack your enemies|using a bombing run.|Left/Right: Determine attack direction|Cursor: Select target region
+04:16=Call in an airplane to drop several mines|in the target area.|Left/Right: Determine attack direction|Cursor: Select target region
+04:17=Need shelter? Use the blow torch to dig|a tunnel into solid ground granting you|cover.|Attack: Start or stop digging
+04:18=Need additional protection or want to pass|unpassable ground? Place some girders as you|like.|Left/Right: Select girder to place|Cursor: Place girder in a valid position
+04:19=Used at the right moment teleportation can|be more powerful than almost all weapons as|it allows you to save hogs from dangerous|situations within seconds.|Cursor: Select target region
+04:20=Allows you to play the current turn with|a different hog.|Attack: Enable switching hogs
+04:21=Shoot a grenade-like projectile that will|release multiple bombs upon impact.|Attack: Shoot at full power
+04:22=Not just for Indiana Jones! The whip is a|useful weapon in many situations. Especially|when you'd like to shove someone off a cliff.|Attack: Strike everything in front of you
+04:23=If you have nothing to lose, this might be|quite handy. Sacrifice your hog by launching|him into a specific direction hurting everything|on his way and exploding at the end.|Attack: Launch the devastating and deadly attack
+04:24=Happy Birthday! Launch this cake, let it walk right|next to your enemies and let them have an explosive|party. The cake is able to pass almost all terrain|but he might detonate earlier this way.|Attack: Start the cake or let it stop and explode
+04:25=Use this disguise kit to get your enemies to jump|towards your hog (and into some gap or hole).|Attack: Use the kit and try to seduce another hog
+04:26=Throw this juicy watermelon at your enemies. Once|the timer expires, it will split into several|explosive pieces.|1-5: Set watermelon's timer|Attack: Hold to shoot with more power
+04:27=Let hellfire rain onto your opponents by using|this fiendish explosive. Don't get too close to|the explosion as smaller fires might last longer.|Attack: Hold to shoot with more power
+04:28=Short time after launching this rocket, it will|start drilling through solid ground and explode|once its fuse is triggered or it resurfaces again.|Attack: Hold to shoot with more power
+04:29=This is nothing for small kids! The ball gun fires|tons of small colored balls filled with explosives.|Attack: Shoot at full power|Up/Down: Continue aiming
+04:30=Call in an airplane to launch a powerful napalm|strike. With proper aiming this attack can eradicate|huge parts of landscape including unlucky hogs|sitting there.|Left/Right: Determine attack direction|Cursor: Select target region
+04:31=The RC plane is the ideal weapon to collect crates or|attack far away hogs. Either steer it into enemies or|drop some bombs first.|Attack: Launch the plane or drop bombs|Long Jump: Let the valkyries ride into battle|Up/Down: Steer the plane
+04:32=Low gravity is more effective than any diet! Jump|higher and over greater distances or let your enemies|fly even further.|Attack: Activate
+04:33=Sometimes you just need that little extra boost to|deal some more damage.|Attack: Activate
+04:34=Can't touch me!|Attack: Activate
+04:35=Sometimes time's running too fast. Grab some extra|seconds to finish your attack.|Attack: Activate
+04:36=Well, sometimes you're just too bad in aiming. Get|some assistance using modern day technology.|Attack: Activate
+04:37=Don't fear the daylight. It will just last one turn|but will enable you to absorb the damage you do to|other hogs.|Attack: Activate
+04:38=The sniper rifle can be the most devastating weapon|in your whole arsenal, however it's very ineffective|at close quarters. The damage dealt increases with|the distance to its target.|Attack: Shoot (twice)
+04:39=Fly to other parts of the map using the flying|saucer. This hard to master utility is able to|take you to almost any position on the battlefield.|Attack: Activate|Up/Left/Right: Apply force in one direction|Long Jump: Drop grenades or similar weapons
+04:40=Set some ground on fire using this bottle filled|with (soon to be) burning liquid.|Attack: Hold to shoot with more power
+04:41=The evidence nature might even top the flying|saucer. Birdy can carry your hog around and|drop eggs on your enemies!|Attack: Activate and drop eggs|Up/Left/Right: Flap in one direction
+04:42=This portable portal device is capable|of instantly transporting you, your enemies,|or your weaponry between two points on the|terrain.|Use it wisely and your campaign will be a...|HUGE SUCCESS!|Attack: Shoot a portal|Switch: Cycle portal colours
+04:43=Make your musical debut an explosive success!|Drop a piano from the heavens, but beware...|someone needs to play it, and that may cost you|your life!|Cursor: Select target region|F1-F9: Play the piano
+04:44=This isn't just cheese, it's biological warfare!|It won't cause an huge amount of damage once|the timer reaches zero but it will definitely|poison anyone unlucky to touch the smell!|1-5: Set grenade's timer|Attack: Hold to throw with more power
+04:45=All those physics classes have finally|paid off, launch a devastating Sine|wave at your foes.|Watch out, this weapon packs quite a kick. (This weapon is incomplete)|Attack: Shoot
+04:46=Cover your foes with sizzling liquid flame.|Heartwarming!|Attack: Activate|Up/Down: Continue aiming|Left/Right: Modify spitting power
+04:47=Double the fun with two spiky, sneaky, sticky mines.|Set up a chain reaction or defend yourself (or both!)|Attack: Hold to shoot with more power (twice)
+04:48=Why should the moles get all the abuse?|Wacking a hog can be just as fun! A good|blow from this hammer will shave off one|third of a hog's health and plunge them|underground.|Attack: Activate
+04:49=Resurrect your friends!|But beware that this also resurrects your foes.|Attack: Keep attack pressed to resurrect slowly|Up: Accelerate resurrection
+
+; Game goal strings
+05:00=게임 수정 모드
+05:01=이 규칙은 제정할 것입니다.
+05:02=성 공격 모드
+05:03=저중력
+05:04=정복 불능
+05:05=흡혈귀: Hogs will be healed for the damage dealt
+05:06=카르마: Hogs will be damaged for the damage dealt
+05:07=킹 모드: Don't let your king die!|킹을 배치함: Pick a protected starting point for your King
+05:08=고슴도치를 배치하기
+05:09=움직이지 못함
+05:10=굳은 지반: Most weapons won't destroy terrain
+05:11=공용탄약: All teams of the same color share their ammunition
+05:12=지뢰 타임스위치: %1 초
+05:13=지뢰 타임스위치: 즉각적이다
+05:14=지뢰 타임스위치: 0 - 5 초
+05:15=손상 수정: %1% 손상
+05:16=회전 후에 건강을 재건함
+05:17=컴퓨터 고슴도치들이 자동 소새시킴
+05:18=무한한 탄약
+05:19=회전 후에 탄약을 재건함
+05:20=탄약 종목별기준
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/pl.lua
--- a/share/hedgewars/Data/Locale/pl.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/pl.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,94 @@
locale = {
--- ["A game of luck"] =
- ["Aiming Practice"] = "Potrenuj celność", --Bazooka, Shotgun, SniperRifle
- ["Bat balls at your enemies and|push them into the sea!"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!",
- ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!",
- ["Bazooka Training"] = "Trening bazooki",
- ["Best laps per team: "] = "Najszybsze okrążenie drużyny: ",
- ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.", --Bazooka, Shotgun, SniperRifle
- ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.", --Bazooka, Shotgun, SniperRifle
- ["Fastest lap: "] = "Najszybsze okrążenie: ",
- ["Hedgewars-Basketball"] = "Hedgewars-Koszykówka",
- ["Hedgewars-Knockball"] = "Hedgewars-Knockball",
- ["Hunter"] = "Strzelec", --Bazooka, Shotgun, SniperRifle
- ["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ",
- ["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski", -- Basketball, Knockball
- ["Oh no! Time's up! Just try again."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] =
--- ["Shotgun Team"] =
- ["Shotgun Training"] = "Trening strzelecki",
- ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:", -- Basketball, Knockball
- ["%s is out and Team %d|scored a point!| |Score:"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:", -- Basketball, Knockball
- ["Sniper Training"] = "Trening Snajperski",
- ["Sniperz"] = "Snajperzy",
- ["Team %d: "] = "Drużyna %d: ",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] =
- ["TrophyRace"] = "TrophyRace",
- ["Use your rope to get from start to finish as fast as you can!"] = "Użyj liny by jak najszybciej dotrzec od startu do mety",
- ["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ",
- ["'Zooka Team"] = "Bazookinierzy",
+ [":("] = ":(",
+ ["!!!"] = "!!!",
+ ["A game of luck"] = "Wszystko zależy od losu",
+ ["Aiming Practice"] = "Potrenuj celność",
+ ["Bat balls at your enemies and|push them into the sea!"] = "Uderzaj piłkami w swoich przeciwników|i strącaj ich do wody!",
+ ["Bat your opponents through the|baskets and out of the map!"] = "Uderzaj swoich przekiwników|wyrzucając przez kosz, poza mapę!",
+ ["Bazooka Training"] = "Trening bazooki",
+ ["Best laps per team: "] = "Najszybsze okrążenie drużyny: ",
+ ["Bloody Rookies"] = "Żółtodzioby",
+ ["Boom!"] = "BUM!",
+ ["by mikade"] = "Napisane przez mikade",
+ ["CAPTURE THE FLAG"] = "PRZECHWYĆ FLAGĘ",
+ ["Codename: Teamwork"] = "Kryptonim: Praca zespołowa",
+ ["Congratulations!"] = "Gratulacje",
+ ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.",
+ ["CONTROL"] = "KONTROLA",
+ ["Control pillars to score points."] = "Kontroluj filary by zdobyć punkty",
+ ["CONTROL v0.3"] = "KONTROLA v0.3",
+ ["CTF_BLIZZARD"] = "Śnieżyca",
+ ["CUSTOM BUILD 0.2"] = "Wersja 0.2",
+ ["Cybernetic Empire"] = "Cybernetyczne Imperium",
+ ["DAMMIT, ROOKIE!"] = "Żółtodziobie!",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "Młody!!! Złaź z mojej głowy!!!",
+ ["Dangerous Ducklings"] = "Niebezpieczne Kaczory",
+ ["Eliminate all enemies"] = "Wyeliminuj wszystkich przeciwników",
+ ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.",
+ ["Eliminate Poison before the time runs out"] = "Zabij Truciciela zanim skończy się czas",
+ ["Eliminate the Blue Team"] = "Zniszcz niebieską drużynę",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "Rozwal Jednostkę 3378 | Twoja drużyna musi przetrwać",
+ ["Enjoy the swim..."] = "Popływaj trochę...",
+ ["Fastest lap: "] = "Najszybsze okrążenie: ",
+ ["Feeble Resistance"] = "Ruch Oporu",
+ ["Flag captured!"] = "Flaga przechwycona!",
+ ["Flag respawned!"] = "Flaga przywrócona!",
+ ["Flag returned!"] = "Flaga odzyskana!",
+ ["Flags will be placed where each team ends their turn."] = "Flagi zostaną umieszczone tam, gdzie każda z drużyn zakończy swoją turę",
+ ["GAME OVER!"] = "KONIEC GRY!",
+ ["Game Started!"] = "Gra Rozpoczęta",
+ ["Get on over there and take him out!"] = "Dostań się tam i go wykończ!",
+ ["Goal:"] = "Cel:",
+ ["GO! GO! GO!"] = "RUCHY! RUCHY! RUCHY!",
+ ["Good birdy......"] = "Dooobry ptaszek...",
+ ["Good luck out there!"] = "Powodzenia!",
+ ["Hedgewars-Basketball"] = "Hedgewars-Koszykówka",
+ ["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+ ["Hmmm..."] = "Hmmmm...",
+ ["Hooray!"] = "Hurraaa!",
+ ["Hunter"] = "Strzelec",
+ ["Instructor"] = "Instruktor",
+ ["- Jumping is disabled"] = "- Skakanie jest niemożliwe",
+ ["Listen up, maggot!!"] = "Słuchaj mnie, gnido!",
+ ["|- Mines Time:"] = "|- Czas detonacji min:",
+ ["MISSION FAILED"] = "MISJA ZAKOŃCZONA NIEPOWODZENIEM",
+ ["MISSION SUCCESSFUL"] = "MISJA POWIODŁA SIĘ",
+ ["MISSION SUCCESS"] = "MISJA POWIODŁA SIĘ",
+ ["NEW fastest lap: "] = "NOWE najszybsze okrążenie: ",
+ ["NO JUMPING"] = "BEZ SKAKANIA",
+ ["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski",
+ ["Oh no! Just try again!"] = "Ojojoj! Spróbuj jeszcze raz!",
+ ["Oh no! Time's up! Just try again."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.",
+ ["Operation Diver"] = "Operacja Nurek",
+ ["Opposing Team: "] = "Przeciwna drużyna",
+ ["Pathetic Hog #%d"] = "Załosny Jeż #%d",
+ ["Poison"] = "Truciciel",
+ ["Random Weapons"] = "Losowe uzbrojenie",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Przynieś flagę wroga do swojej bazy by zdobyć punkt | - Pierwszy kto zrobi to 3 razy, wygrywa | - Punkt zdobywasz tylko gdy twoja flaga znajduje się w bazie | - Jeże upuszczą flagę gdy zostaną zabite bądź utopione | - Upuszczona flaga może być przywrócona lub przechwycona ponownie | - Jeże odradzają się po śmierci",
+ ["RULES OF THE GAME [Press ESC to view]"] = "ZASADY GRY [Naciśnij ESC by zobaczyć]",
+ ["sec"] = "sek",
+ ["See ya!"] = "Do zobaczenia!",
+ ["Shotgun Team"] = "Strzelcy",
+ ["Shotgun Training"] = "Trening strzelecki",
+ ["%s is out and Team %d|scored a penalty!| |Score:"] = "%s utonął i drużyna %d|dostała punkt karny!| |Punktacja:",
+ ["%s is out and Team %d|scored a point!| |Score:"] = "%s utonął i drużyna %d|zdobyła punkt!| |Punktacja:",
+ ["Sniper Training"] = "Trening Snajperski",
+ ["Sniperz"] = "Snajperzy",
+ ["Spooky Tree"] = "Straszne drzewo",
+ ["Team %d: "] = "Drużyna %d: ",
+ ["Team Scores:"] = "Punktacja",
+ ["That was pointless."] = "To było bezcelowe",
+ ["The enemy is hiding out on yonder ducky!"] = "Na tamtej kaczce ukrywa się nasz przeciwnik!",
+ ["The flag will respawn next round."] = "Flaga pojawi się ponownie przy następnej rundzie.",
+ ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Ktoś grzebał Ci w plecaku |Musisz sobie poradzić z tym co masz pod ręką",
+ ["Toxic Team"] = "Toksyczny zespół",
+ ["TrophyRace"] = "TrophyRace",
+ ["T_T"] = "T_T",
+ ["Unit 3378"] = "Jednostka 3378",
+ ["Use your rope to get from start to finish as fast as you can!"] = "Użyj liny by jak najszybciej dotrzec od startu do mety",
+ ["Victory for the"] = "Zwycięstwo przypadło",
+ ["You have SCORED!!"] = "Zdobyłeś PUNKT",
+ ["You've failed. Try again."] = "Przegrałeś. Spróbuj jeszcze raz",
+ ["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ",
+ ["'Zooka Team"] = "Bazookinierzy",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/pl.txt
--- a/share/hedgewars/Data/Locale/pl.txt Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/pl.txt Tue Dec 28 22:40:12 2010 +0100
@@ -42,7 +42,7 @@
00:39=Latający Talerz
00:40=Koktajl Mołotowa
00:41=Ptaszek
-00:42=Podręczne Urządzenie Teleportujące
+00:42=Wyrzutnik portali
00:43=Zrzut pianina
00:44=Cuchnący ser
00:45=Sinusoidalna giwera
@@ -50,6 +50,8 @@
00:47=Mina samoprzylepna
00:48=Młotek
00:49=Wskrzeszacz
+00:50=Wiertniczy nalot
+00:51=Kula błotna
01:00=Walczmy!
01:01=Remis
@@ -135,6 +137,12 @@
02:00=%1 wydał ostatnie tchnienie
02:00=%1 przeszedł do historii
02:00=%1 ewakuował się z tego świata
+02:00=%1, machamy na pożegnanie!
+02:00=%1 zatruł się ołowiem
+02:00=%1 się wykrwawił
+02:00=%1 zginął za słuszną sprawę
+02:00=%1 zostawił w domu kamizelkę kuloodporną
+
; Hog (%1) drowned
02:01=%1 robi za łódź podwodną!
@@ -161,7 +169,7 @@
02:01=%1 czuje, że tonie
02:01=%1 ćwiczy pływanie na plecach
02:01=%1 szuka Titanica
-02:01=%1 to z pewnością nie jest Jezus.
+02:01=%1, do Jezusa ci jeszcze daleko
02:01=%1 postanowił odnaleźć Nemo!
02:01=%1 wyczuwa przeciek
02:01=Nie uwierzysz ile ich już utonęło!
@@ -352,9 +360,10 @@
02:08=%1 nie wierzy we własne możliwości.
02:08=%1 decyduje się nic nie robić
02:08=%1 pozwala przeciwnikowi zniszczyć się samemu.
-02:08=%1 byłby marny w imprezowaniu
-02:08=%1 ukrywa się
-02:08=%1 skorzystał z okazji
+02:08=%1 nie nadaje się na wodzireja...
+02:08=%1 się ukrył
+02:08=%1 minimalizuje szanse na pudło
+02:08=%1 nie skorzystał z okazji
02:08=%1 uważa, że najlepszą rzeczą jaką może zrobić to... nic
02:08=%1 jest mięczakiem
02:08=Niuch, Niuch, %1 śmierdzi tchórzem
@@ -415,7 +424,10 @@
02:09=Nie można się spodziewać by %1 był cały czas perfekcyjny.
02:09=Nie martw się %1, Dikt nie jest noskonały...
02:09=%1 zrobił to celowo.
-;02:09=Jeśli ty o tym nie powiesz, ja też dotrzymam tajemnicy %1
+02:09=%1, ta wpadka zostanie między nami
+02:09=%1 zapomniał przeczyścić lufę
+02:09=%1, te kulki to nie guma do żucia!
+02:09=%1, granat po wyjęciu zawleczki przestaje być przyjacielem
02:09=ŻENUA!!!
02:09=Na pewno nikt tego nie zobaczył, %1
02:09=%1 powinien przejrzeć podręcznik walki na froncie...
@@ -494,6 +506,7 @@
03:47=Co Kropelka sklei, sklei...
03:48=Ała! Moja głowa...
03:49=Powrót z zaświatów
+03:50=Krecia brygada
; Weapon Descriptions (use | as line breaks)
04:00=Atakuj przeciwników zwykłym granatem.|Wybuchnie kiedy zapalnik skończy odliczanie.|1-5: Ustawia zapalnik|Atak: Przytrzymaj by rzucić z większą siłą
@@ -542,8 +555,8 @@
04:43=Niech twój debiut będzie WYBUCHOWY!|Zrzuć pianino z nieba, ale uważaj!|Ktoś musi na nim grać więc prawdopodobnie będziesz|musiał poświęcić swojego jeża|Kursor: Wybierz cel|F1-F9: Graj na pianinie
04:44=To nie jest zwykły ser. To broń biologiczna!|Wybuch z pewnością nie będzie potężny, ale gdy|licznik dojdzie do zera, chmura gazu zatruje|każdego nieszczęśnika który będzie w pobliżu|1-5: Ustawia zapalnik|Atak: Przytrzymaj by rzucić z większą siłą
04:45=Wszystkie lekcje fizyki w końcu się opłaciły!|Wystrzel niszczącą sinusoidalną falę|która przechodzi przez teren i uderza|w twoich przeciwników|Uważaj! Ta broń ma kopa!|Atak: Strzelaj
-04:46=Pokrywa twoich wrogów ognistą powłoką.|Czy koś zamawiał pieczonego jeża?|Atak: Aktywuj|Góra/Dół: Celowanie|Lewo/Prawo: Ustaw prędkość wystrzeliwania
-04:47=Podwójna zabawa z podwójną ilością kleistych min.|Spróbuj wywołać reakcję łańcuchową lub chroń|samego siebie (lub obydwie rzeczy na raz!)|Atak: Przytrzymaj by rzucić z większą siłą (dwa razy)
+04:46=Pokrywa twoich wrogów ognistą powłoką.|Czy ktoś zamawiał pieczonego jeża?|Atak: Aktywuj|Góra/Dół: Celowanie|Lewo/Prawo: Ustaw prędkość wystrzeliwania
+04:47=Podwójna zabawa z podwójną ilością lepkich min.|Spróbuj wywołać reakcję łańcuchową lub chroń|samego siebie (albo zrób obydwie rzeczy na raz!)|Atak: Przytrzymaj by rzucić z większą siłą (dwa razy)
04:48=Czyż walenie jeży po głowach nie|jest zabawne? Dobre uderzenie|z młotka zabierze 1/3 życia|przeciwnika i wkopie go w podłoże|Atak: Uderz
04:49=Wskrześ swoich przyjaciół!|Jednakże uważaj byś nie pomógł swojemu wrogowi.|Atak: Przytrzymaj by powoli przywracać życie|Góra: Przyspiesz wskrzeszanie
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/pt_BR.lua
--- a/share/hedgewars/Data/Locale/pt_BR.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/pt_BR.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,96 @@
locale = {
--- ["A game of luck"] =
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["A game of luck"] = "",
["Aiming Practice"] = "Pratique a sua pontaria", --Bazooka, Shotgun, SniperRifle
["Bat balls at your enemies and|push them into the sea!"] = "Rebata as bolas em direção ao seus|e derrube-os no mar!",
["Bat your opponents through the|baskets and out of the map!"] = "Rebata seus oponentes para|fora do mapa através dos cestos!",
["Bazooka Training"] = "Treino com a Bazuca",
["Best laps per team: "] = "Melhor volta por equipe: ",
+-- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+-- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["CAPTURE THE FLAG"] = "",
+-- ["Codename: Teamwork"] = "",
+-- ["Congratulations!"] = "",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Você eliminou todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle
+-- ["CONTROL"] = "",
+-- ["Control pillars to score points."] = "",
+-- ["CONTROL v0.3"] = "",
+-- ["CTF_BLIZZARD"] = "",
+-- ["CUSTOM BUILD 0.2"] = "",
+-- ["Cybernetic Empire"] = "",
+-- ["DAMMIT, ROOKIE!"] = "",
+-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
+-- ["Dangerous Ducklings"] = "",
+-- ["Eliminate all enemies"] = "",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrua todos os alvos antes que o tempo acabe.|Você tem munição infinita para esta missão.", --Bazooka, Shotgun, SniperRifle
+-- ["Eliminate Poison before the time runs out"] = "",
+-- ["Eliminate the Blue Team"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["Enjoy the swim..."] = "",
["Fastest lap: "] = "Volta mais rápida: ",
+-- ["Feeble Resistance"] = "",
+-- ["Flag captured!"] = "",
+-- ["Flag respawned!"] = "",
+-- ["Flag returned!"] = "",
+-- ["Flags will be placed where each team ends their turn."] = "",
+-- ["GAME OVER!"] = "",
+-- ["Game Started!"] = "",
+-- ["Get on over there and take him out!"] = "",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+-- ["Good birdy......"] = "",
+-- ["Good luck out there!"] = "",
["Hedgewars-Basketball"] = "Hedgewars-Basketball",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+-- ["Hmmm..."] = "",
+-- ["Hooray!"] = "",
["Hunter"] = "Artilheiro", --Bazooka, Shotgun, SniperRifle
+-- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["- Jumping is disabled"] = "",
+-- ["Listen up, maggot!!"] = "",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NOVA volta mais rápida: ",
+-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
+-- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "Oh não! O tempo acabou! Tente novamente.", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] =
+-- ["Operation Diver"] = "",
+-- ["Opposing Team: "] = "",
+-- ["Pathetic Hog #%d"] = "",
+-- ["Poison"] = "",
+-- ["Random Weapons"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["See ya!"] = "",
["Shotgun Team"] = "Carabineiros",
["Shotgun Training"] = "Treino com a Escopeta",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a Equipe %d|sofreu uma penalidade!| |Pontuação:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a Equipe %d|marcou um ponto!| |Pontuação:", -- Basketball, Knockball
["Sniper Training"] = "Treino com o Rifle Sniper",
["Sniperz"] = "Franco-Atiradores",
+-- ["Spooky Tree"] = "",
["Team %d: "] = "Equipe %d: ",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] =
+-- ["Team Scores:"] = "",
+-- ["That was pointless."] = "",
+-- ["The enemy is hiding out on yonder ducky!"] = "",
+-- ["The flag will respawn next round."] = "",
+-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+-- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "TrophyRace",
+-- ["T_T"] = "",
+-- ["Unit 3378"] = "",
["Use your rope to get from start to finish as fast as you can!"] = "Use sua corda para ir do início ao fim o mais rápido que você puder!",
+-- ["Victory for the"] = "",
+-- ["You have SCORED!!"] = "",
+-- ["You've failed. Try again."] = "",
+-- ["You've reached the goal!| |Time:"] = "",
["You've reached the goal!| |Time: "] = "Você alcançou o objetivo!| |Tempo: ",
["'Zooka Team"] = "Bazuqueiros",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/pt_PT.lua
--- a/share/hedgewars/Data/Locale/pt_PT.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/pt_PT.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,96 @@
locale = {
--- ["A game of luck"] =
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["A game of luck"] = "",
["Aiming Practice"] = "Pratica a tua pontaria", --Bazooka, Shotgun, SniperRifle
["Bat balls at your enemies and|push them into the sea!"] = "Bate bolas contra os teus|enimigos e empurra-os ao mar!",
["Bat your opponents through the|baskets and out of the map!"] = "Bate os teus adversarios|fora do mapa acertando com eles no cesto!",
["Bazooka Training"] = "Treino com Bazuca",
["Best laps per team: "] = "Melhores voltas por equipa: ",
+-- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+-- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["CAPTURE THE FLAG"] = "",
+-- ["Codename: Teamwork"] = "",
+-- ["Congratulations!"] = "",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Parabéns! Eliminaste todos os alvos|dentro do tempo limite.", --Bazooka, Shotgun, SniperRifle
+-- ["CONTROL"] = "",
+-- ["Control pillars to score points."] = "",
+-- ["CONTROL v0.3"] = "",
+-- ["CTF_BLIZZARD"] = "",
+-- ["CUSTOM BUILD 0.2"] = "",
+-- ["Cybernetic Empire"] = "",
+-- ["DAMMIT, ROOKIE!"] = "",
+-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
+-- ["Dangerous Ducklings"] = "",
+-- ["Eliminate all enemies"] = "",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Destrói todos os alvos antes do tempo terminar.|Tens munições infinitas para esta missão.", --Bazooka, Shotgun, SniperRifle
+-- ["Eliminate Poison before the time runs out"] = "",
+-- ["Eliminate the Blue Team"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["Enjoy the swim..."] = "",
["Fastest lap: "] = "Volta mais rápida: ",
+-- ["Feeble Resistance"] = "",
+-- ["Flag captured!"] = "",
+-- ["Flag respawned!"] = "",
+-- ["Flag returned!"] = "",
+-- ["Flags will be placed where each team ends their turn."] = "",
+-- ["GAME OVER!"] = "",
+-- ["Game Started!"] = "",
+-- ["Get on over there and take him out!"] = "",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+-- ["Good birdy......"] = "",
+-- ["Good luck out there!"] = "",
["Hedgewars-Basketball"] = "Hedgewars-Basketball",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+-- ["Hmmm..."] = "",
+-- ["Hooray!"] = "",
["Hunter"] = "Comando", --Bazooka, Shotgun, SniperRifle
+-- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["- Jumping is disabled"] = "",
+-- ["Listen up, maggot!!"] = "",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NOVA volta recorde: ",
+-- ["NO JUMPING"] = "",
["Not So Friendly Match"] = "Partida não muito amigável", -- Basketball, Knockball
+-- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "Oh não! Acabou o tempo! Tenta novamente.", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] =
+-- ["Operation Diver"] = "",
+-- ["Opposing Team: "] = "",
+-- ["Pathetic Hog #%d"] = "",
+-- ["Poison"] = "",
+-- ["Random Weapons"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["See ya!"] = "",
["Shotgun Team"] = "Caçadores",
["Shotgun Training"] = "Treino com Caçadeira",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s está fora e a equipa %d|perde um ponto!| |Pontuação:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s está fora e a equipa %d|soma um ponto!| |Pontuação:", -- Basketball, Knockball
["Sniper Training"] = "Treino com Sniper",
--- ["Sniperz"] =
+-- ["Sniperz"] = "",
+-- ["Spooky Tree"] = "",
["Team %d: "] = "Equipa %d: ",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] =
+-- ["Team Scores:"] = "",
+-- ["That was pointless."] = "",
+-- ["The enemy is hiding out on yonder ducky!"] = "",
+-- ["The flag will respawn next round."] = "",
+-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+-- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "TrophyRace",
+-- ["T_T"] = "",
+-- ["Unit 3378"] = "",
["Use your rope to get from start to finish as fast as you can!"] = "Utilizando a corda, percorre o percurso do inicio ao fim o mais rápido que conseguires!",
+-- ["Victory for the"] = "",
+-- ["You have SCORED!!"] = "",
+-- ["You've failed. Try again."] = "",
+-- ["You've reached the goal!| |Time:"] = "",
["You've reached the goal!| |Time: "] = "Chegaste ao fim!| |Tempo: ",
["'Zooka Team"] = "Bazuqueiros",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/pt_PT.txt
--- a/share/hedgewars/Data/Locale/pt_PT.txt Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/pt_PT.txt Tue Dec 28 22:40:12 2010 +0100
@@ -50,6 +50,8 @@
00:47=Mina Pegajosa
00:48=Martelo
00:49=Ressuscitador
+00:50=Ataque Perfurador
+00:51=Bola de Lama
01:00=Vamos lutar!
01:01=Ronda empatada
@@ -431,6 +433,7 @@
03:47=Cola-as onde achares mais útil!
03:48=Garantia vitalícia!
03:49=Funciona tal como anunciado
+03:50=Coleccionador de toupeiras
; Weapon Descriptions (use | as line breaks)
04:00=Ataca os teus inimigos usando uma simples granada.|Explodirá quando o tempo chegar a zero.|1-5: Define o temporizador da granada|Ataque: Deixa premido para lançar com mais força
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/ru.txt
--- a/share/hedgewars/Data/Locale/ru.txt Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/ru.txt Tue Dec 28 22:40:12 2010 +0100
@@ -210,7 +210,7 @@
03:10=БУМ!
03:11=Поимел!
03:12=Боевые Исскуства
-03:13=Неиспользуется
+03:13=Не используется
03:14=Инструмент для перемещения
03:15=Атака с воздуха
03:16=Атака с воздуха
@@ -252,9 +252,9 @@
04:08=Держи своих врагов на расстоянии,|бросая мины в узкие проходы или|прямо им под ноги. Убедись, что отступил,|пока мина не сработала рядом с тобой!|Attack: Бросить мину рядом с собой
04:09=Не уверен, что хорошо прицелился?|Используй пистолет Desert Eagle|с возможностью сделать до четырех|выстрелов за ход.|Attack: Выстрелить (несколько раз)
04:10=Грубая сила всегда была в цене.|Брось эту классическую взрывчатку|возле своих врагов и убегай.|Attack: Бросить динамит рядом с собой
-04:11=Избавься от вражеских ежей с помощью|подачи битой, отправив их за край карты|или в воду. Или как насчет отправить ударом|одну из мин на карте в подарок своим друзьям?|Attack: Нанести удар по всему, что стоит перед тобой
-04:12=Стань лицом к лицу со своим врагом,|чтобы обрушить на него всю мошь|смертоносной техники боевых исскуств.|Attack: Исполнить Неистовый Удар
-04:13=Неиспользуется
+04:11=Избавься от вражеских ежей с помощью|подачи битой, отправив их за край карты|или в воду. Или как насчет того, чтобы отправить ударом|одну из мин на карте в подарок своим друзьям?|Attack: Нанести удар по всему, что стоит перед тобой
+04:12=Стань лицом к лицу со своим врагом,|чтобы обрушить на него всю мощь|смертоносной техники боевых исскуств.|Attack: Исполнить Неистовый Удар
+04:13=Не используется
04:14=Боишься высоты? Тогда возьми парашут.|Он раскроется, как только ты начнешь слишком|долго падать, и тем самым убережет ежа|от падения с большой высоты.|Attack: Раскрыть парашут|Long Jump: Сбросить гранаты или похожее вооружение
04:15=Вызови самолет, чтобы атаковать своих врагов|с помощью воздушной бомбардировки.|Left/Right: Определить направление атаки|Cursor: Выбрать бомбардируемую область
04:16=Вызови самолет, чтобы сбросить несколько мин|в заданной области.|Left/Right: Определить направление атаки|Cursor: Выбрать минируемую область
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/sk.lua
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/stub.lua
--- a/share/hedgewars/Data/Locale/stub.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/stub.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,97 @@
locale = {
--- ["A game of luck"] = "",
--- ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
--- ["Bat balls at your enemies and|push them into the sea!"] = "",
--- ["Bat your opponents through the|baskets and out of the map!"] = "",
--- ["Bazooka Training"] = "",
--- ["Best laps per team: "] = "",
--- ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
--- ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
--- ["Fastest lap: "] = "",
--- ["Hedgewars-Basketball"] = "",
--- ["Hedgewars-Knockball"] = "",
--- ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle
--- ["NEW fastest lap: "] = "",
--- ["Not So Friendly Match"] = "", -- Basketball, Knockball
--- ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
--- ["Random Weapons"] = "",
--- ["Shotgun Team"] = "",
--- ["Shotgun Training"] = "",
--- ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
--- ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
--- ["Sniper Training"] = "",
--- ["Sniperz"] = "",
--- ["Team %d: "] = "",
--- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
--- ["TrophyRace"] = "",
--- ["Use your rope to get from start to finish as fast as you can!"] = "",
--- ["You've reached the goal!| |Time: "] = "",
--- ["'Zooka Team"] = "",
+-- [":("] = "",
+-- ["!!!"] = "",
+-- ["A game of luck"] = "",
+-- ["Aiming Practice"] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Bat balls at your enemies and|push them into the sea!"] = "",
+-- ["Bat your opponents through the|baskets and out of the map!"] = "",
+-- ["Bazooka Training"] = "",
+-- ["Best laps per team: "] = "",
+-- ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+-- ["Boom!"] = "",
+-- ["by mikade"] = "", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["CAPTURE THE FLAG"] = "",
+-- ["Codename: Teamwork"] = "",
+-- ["Congratulations!"] = "",
+-- ["Congratulations! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["CONTROL"] = "",
+-- ["Control pillars to score points."] = "",
+-- ["CONTROL v0.3"] = "",
+-- ["CTF_BLIZZARD"] = "",
+-- ["CUSTOM BUILD 0.2"] = "",
+-- ["Cybernetic Empire"] = "",
+-- ["DAMMIT, ROOKIE!"] = "",
+-- ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "",
+-- ["Dangerous Ducklings"] = "",
+-- ["Eliminate all enemies"] = "",
+-- ["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Eliminate Poison before the time runs out"] = "",
+-- ["Eliminate the Blue Team"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+-- ["Enjoy the swim..."] = "",
+-- ["Fastest lap: "] = "",
+-- ["Feeble Resistance"] = "",
+-- ["Flag captured!"] = "",
+-- ["Flag respawned!"] = "",
+-- ["Flag returned!"] = "",
+-- ["Flags will be placed where each team ends their turn."] = "",
+-- ["GAME OVER!"] = "",
+-- ["Game Started!"] = "",
+-- ["Get on over there and take him out!"] = "",
+-- ["Goal:"] = "",
+-- ["GO! GO! GO!"] = "",
+-- ["Good birdy......"] = "",
+-- ["Good luck out there!"] = "",
+-- ["Hedgewars-Basketball"] = "",
+-- ["Hedgewars-Knockball"] = "",
+-- ["Hmmm..."] = "",
+-- ["Hooray!"] = "",
+-- ["Hunter"] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+-- ["- Jumping is disabled"] = "",
+-- ["Listen up, maggot!!"] = "",
+-- ["|- Mines Time:"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION FAILED"] = "", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESSFUL"] = "", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["MISSION SUCCESS"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["NEW fastest lap: "] = "",
+-- ["NO JUMPING"] = "",
+-- ["Not So Friendly Match"] = "", -- Basketball, Knockball
+-- ["Oh no! Just try again!"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["Oh no! Time's up! Just try again."] = "", --Bazooka, Shotgun, SniperRifle
+-- ["Operation Diver"] = "",
+-- ["Opposing Team: "] = "",
+-- ["Pathetic Hog #%d"] = "",
+-- ["Poison"] = "",
+-- ["Random Weapons"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["RULES OF THE GAME [Press ESC to view]"] = "",
+-- ["sec"] = "", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+-- ["See ya!"] = "",
+-- ["Shotgun Team"] = "",
+-- ["Shotgun Training"] = "",
+-- ["%s is out and Team %d|scored a penalty!| |Score:"] = "", -- Basketball, Knockball
+-- ["%s is out and Team %d|scored a point!| |Score:"] = "", -- Basketball, Knockball
+-- ["Sniper Training"] = "",
+-- ["Sniperz"] = "",
+-- ["Spooky Tree"] = "",
+-- ["Team %d: "] = "",
+-- ["Team Scores:"] = "",
+-- ["That was pointless."] = "",
+-- ["The enemy is hiding out on yonder ducky!"] = "",
+-- ["The flag will respawn next round."] = "",
+-- ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "",
+-- ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+-- ["TrophyRace"] = "",
+-- ["T_T"] = "",
+-- ["Unit 3378"] = "",
+-- ["Use your rope to get from start to finish as fast as you can!"] = "",
+-- ["Victory for the"] = "",
+-- ["You have SCORED!!"] = "",
+-- ["You've failed. Try again."] = "",
+-- ["You've reached the goal!| |Time: "] = "",
+-- ["'Zooka Team"] = "",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Locale/sv.lua
--- a/share/hedgewars/Data/Locale/sv.lua Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Locale/sv.lua Tue Dec 28 22:40:12 2010 +0100
@@ -1,30 +1,94 @@
locale = {
+ [":("] = ":(",
+ ["!!!"] = "!!!",
["A game of luck"] = "Ett lyckospel",
["Aiming Practice"] = "Siktesövning", --Bazooka, Shotgun, SniperRifle
["Bat balls at your enemies and|push them into the sea!"] = "Slå bollar mot dina fiender|och slå ner dem i havet",
["Bat your opponents through the|baskets and out of the map!"] = "Slå ner dina motståndare i|korgarna och ut ur kartan!",
["Bazooka Training"] = "Bazookaträning",
["Best laps per team: "] = "Bästa varv per lag: ",
+ ["Bloody Rookies"] = "Blodiga gröngölingar", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+ ["Boom!"] = "Bom!",
+ ["by mikade"] = "av mikade", -- Control, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["CAPTURE THE FLAG"] = "CAPTURE THE FLAG",
+ ["Codename: Teamwork"] = "Kodnamn: Lagarbete",
+ ["Congratulations!"] = "Grattis!",
["Congratulations! You've eliminated all targets|within the allowed time frame."] = "Grattis! Du har förstört alla målen inom den|tillåtna tidsramen.", --Bazooka, Shotgun, SniperRifle
+ ["CONTROL"] = "KONTROLL",
+ ["Control pillars to score points."] = "Kontrollera pelare för att ta poäng",
+ ["CONTROL v0.3"] = "KONTROLL v0.3",
+ ["CTF_BLIZZARD"] = "CTF_BLIZZARD",
+ ["CUSTOM BUILD 0.2"] = "SPECIALVERSION 0.2",
+ ["Cybernetic Empire"] = "Robotriket",
+ ["DAMMIT, ROOKIE! GET OFF MY HEAD!"] = "SATAN, GRÖNGÖLING! SLUTA TJATA!",
+ ["DAMMIT, ROOKIE!"] = "SATAN, GRÖNGÖLING!",
+ ["Dangerous Ducklings"] = "Farliga ankungar",
+ ["Eliminate all enemies"] = "Förgör alla fiender",
["Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."] = "Förstör alla målen innan din tid tar slut.|Du har obegränsad ammunition för deta uppdrag", --Bazooka, Shotgun, SniperRifle
+ ["Eliminate Poison before the time runs out"] = "Förgör Gift innan tiden tar slut",
+ ["Eliminate the Blue Team"] = "Förgör det Blå laget",
+ ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "- Förgör Enhet 3378 |- Klent motstånd måste överleva",
+ ["Enjoy the swim..."] = "Ha en trevlig simtur...",
["Fastest lap: "] = "Snabbast varv: ",
+ ["Feeble Resistance"] = "Klent motstånd",
+ ["Flag captured!"] = "Flagga tagen!",
+ ["Flag respawned!"] = "Flagga återställd!",
+ ["Flag returned!"] = "Flagga återvänd!",
+ ["Flags will be placed where each team ends their turn."] = "Flaggor kommer att placeras där varje lag avslutar sin tur.",
+ ["GAME OVER!"] = "SPELET ÄR SLUT!",
+ ["Game Started!"] = "Spel startat!",
+ ["Get on over there and take him out!"] = "Ta dig bort där och gör dig av med honom!",
+ ["Goal:"] = "Mål:",
+ ["GO! GO! GO!"] = "Kör! Kör! Kör!",
+ ["Good birdy......"] = "Fin fågel......",
+ ["Good luck out there!"] = "Lycka till där ute!",
["Hedgewars-Basketball"] = "Hedgewars-Basket",
["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+ ["Hmmm..."] = "Hmmm...",
+ ["Hooray!"] = "Hurra!",
["Hunter"] = "Jägare", --Bazooka, Shotgun, SniperRifle
+ ["Instructor"] = "Instruktör", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+ ["- Jumping is disabled"] = "- Hoppande är avaktiverat",
+ ["Listen up, maggot!!"] = "Hör här, ynkrygg!!",
+ ["|- Mines Time:"] = "|- Mintid:", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION FAILED"] = "UPPDRAG MISSLYCKADES", -- User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESSFUL"] = "UPPDRAG SLUTFÖRT", -- User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
+ ["MISSION SUCCESS"] = "UPPDRAG LYCKADES", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["NEW fastest lap: "] = "NYTT snabbast varv: ",
+ ["NO JUMPING"] = "INGET HOPPANDE",
["Not So Friendly Match"] = "En inte så vänlig match", -- Basketball, Knockball
+ ["Oh no! Just try again!"] = "Å nej! Bara att försöka igen!", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["Oh no! Time's up! Just try again."] = "Åh nej! Tiden är ute! Pröva igen.", --Bazooka, Shotgun, SniperRifle
+ ["Operation Diver"] = "Operationens dykare",
+ ["Opposing Team: "] = "Motståndarlag: ",
+ ["Pathetic Hog #%d"] = "Patetisk kott #%d",
+ ["Poison"] = "Gift",
["Random Weapons"] = "Slumpade vapen",
+ [" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"] = " - Återvänd med fiendens flagga till din bas för att ta poäng | - Första laget till tre vinner | - Du kan bara ta poäng när din egen flagga är i basen | - Kottar tappar flaggan när de dödas eller drunknar | - Tappade flaggor kan tas tillbaka eller fångas | - Kottar kommer tillbaka när de dör",
+ ["RULES OF THE GAME [Press ESC to view]"] = "SPELREGLER [Tryck ESC för att se]",
+ ["sec"] = "sec", -- CTF_Blizzard, TrophyRace, Basic_Training_-_Bazooka, Basic_Training_-_Shotgun, Basic_Training_-_Sniper_Rifle, User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork, Capture_the_Flag
+ ["See ya!"] = "Ses!",
["Shotgun Team"] = "Hagelgevärslaget",
["Shotgun Training"] = "Hagelgevärsträning",
["%s is out and Team %d|scored a penalty!| |Score:"] = "%s är ute och lag %d|fick ett straff!| |Poängställning:", -- Basketball, Knockball
["%s is out and Team %d|scored a point!| |Score:"] = "%s är ute och lag %d|fick ett poäng!| |Poängställning:", -- Basketball, Knockball
["Sniper Training"] = "Prickskyttesträning",
["Sniperz"] = "Prickskyttarna",
+ ["Spooky Tree"] = "Kusligt träd",
["Team %d: "] = "Lag %d: ",
+ ["Team Scores:"] = "Lagresultat:",
+ ["That was pointless."] = "Det där var meningslöst.",
+ ["The enemy is hiding out on yonder ducky!"] = "Fienden gömmer sig på andra ankan!",
+ ["The flag will respawn next round."] = "Flaggan kommer tillbaka nästa runda.",
["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Det har uppstått ett missförstånd om din utrustning|och nu måste du använda vad du kan hitta!",
+ ["Toxic Team"] = "Förgiftade laget", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
["TrophyRace"] = "TrophyRace",
+ ["T_T"] = "T_T",
+ ["Unit 3378"] = "Enhet 3378",
["Use your rope to get from start to finish as fast as you can!"] = "Använd ditt rep för att ta dig från start till mål så fort som möjligt!",
+ ["Victory for the"] = "Vinst för",
+ ["You have SCORED!!"] = "Du har tagit poäng!",
+ ["You've failed. Try again."] = "Du har misslyckats. Försök igen.",
["You've reached the goal!| |Time: "] = "Du har nått målet!| |Tid: ",
["'Zooka Team"] = "Bazookalaget",
}
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Blizzard/CMakeLists.txt Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,7 @@
+install(FILES
+ map.png
+ map.cfg
+ mask.png
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/Blizzard)
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Blizzard/map.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,1 @@
+Snow
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/map.png
Binary file share/hedgewars/Data/Maps/Blizzard/map.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/map.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Blizzard/map.svg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,1067 @@
+
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/mask.png
Binary file share/hedgewars/Data/Maps/Blizzard/mask.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Blizzard/preview.png
Binary file share/hedgewars/Data/Maps/Blizzard/preview.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/CMakeLists.txt
--- a/share/hedgewars/Data/Maps/CMakeLists.txt Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Maps/CMakeLists.txt Tue Dec 28 22:40:12 2010 +0100
@@ -4,6 +4,7 @@
Basketball
Bath
Battlefield
+ Blizzard
Blox
Bubbleflow
Cake
@@ -11,7 +12,9 @@
Cave
Cheese
Cogs
+ Control
CrazyMission
+ CTF_Blizzard
EarthRise
Eyes
Hammock
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/CMakeLists.txt Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,5 @@
+install(FILES
+ map.cfg
+ map.lua
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/CTF_Blizzard)
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/CTF_Blizzard/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,1 @@
+Snow
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/CTF_Blizzard/map.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/CTF_Blizzard/map.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,754 @@
+--------------------------------
+-- CTF_BLIZZARD 0.4
+--------------------------------
+
+---------
+-- 0.2
+---------
+
+-- disabled super weapons
+
+-- theme modifications
+
+-- improved hog placement system: teams can now be put
+-- in any order and be of any size
+
+---------
+-- 0.3
+---------
+
+-- In this version:
+
+-- changed starting weapons
+-- changed crate drop contents and rate of drops
+
+-- completely removed super weapons and super weapon scripts
+
+-- removed custom respawning
+-- removed set respawn points
+
+-- added AIRespawn-esque respawning
+-- added simple left vs right respawn points
+
+-- added non-lethal poison to flag carriers as an indicator
+
+-- improved flag mechanics and player-flag feedback
+-- flag now instantly respawns if you kill enemy hog and return it,
+-- or if the flag falls in water, _BUT_ not if it is blown up
+
+---------
+-- 0.4
+---------
+
+-- tweaked crate drop rates and crate contents
+-- improved the teleporters, they should now be able to handle rope... hopefully
+-- updated SetEffect calls to be in line with 0.9.15 definitions
+-- added visual gears when hogs respawn
+-- added visual gears when hogs teleport
+-- added visual gear to track flag and flag carriers
+-- removed poisoning of flag carriers
+-- removed health adjustments for flag carriers due to aforementioned poisons
+
+---------
+-- 0.5
+---------
+
+-- added translation support, hopefully
+-- added ctf rules
+-- added effects to the teleporters
+-- added aura round spawning area
+-- changed the aura around the flag carrier / flag to an aura and added some support for this
+-- changed things so the seed is no longer always the same...
+
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+---------------------------------------------------------------
+----------lots of bad variables and things
+----------because someone is too lazy
+----------to read about tables properly
+------------------ "Oh well, they probably have the memory"
+
+local actionReset = 0 -- used in CheckTeleporters()
+
+local roundsCounter = 0 -- used to determine when to spawn more crates
+ -- currently every 6 TURNS, should this work
+ -- on ROUNDS instead?
+local effectTimer = 0
+
+--------------------------
+-- hog and team tracking variales
+--------------------------
+
+local numhhs = 0 -- store number of hedgehogs
+local hhs = {} -- store hedgehog gears
+
+local numTeams -- store the number of teams in the game
+local teamNameArr = {} -- store the list of teams
+local teamSize = {} -- store how many hogs per team
+local teamIndex = {} -- at what point in the hhs{} does each team begin
+
+-------------------
+-- flag variables
+-------------------
+
+local fGear = {} -- pointer to the case gears that represent the flag
+local fThief = {} -- pointer to the hogs who stole the flags
+local fIsMissing = {} -- have the flags been destroyed or captured
+local fNeedsRespawn = {} -- do the flags need to be respawned
+local fCaptures = {} -- the team "scores" how many captures
+local fSpawnX = {} -- spawn X for flags
+local fSpawnY = {} -- spawn Y for flags
+
+local fThiefX = {}
+local fThiefY = {}
+local FTTC = 0 -- flag thief tracker counter
+--local fThiefsHealed = false
+
+local fSpawnC = {}
+local fCirc = {} -- flag/carrier marker circles
+local fCol = {} -- colour of the clans
+
+local vCircX = {}
+local vCircY = {}
+local vCircMinA = {}
+local vCircMaxA = {}
+local vCircType = {}
+local vCircPulse = {}
+local vCircFuckAll = {}
+local vCircRadius = {}
+local vCircWidth = {}
+local vCircCol = {}
+
+
+--------------------------------
+--zone and teleporter variables
+--------------------------------
+
+local redTel
+local orangeTel
+--local areaArr = {} -- no longer used
+
+local zXMin = {}
+local zWidth = {}
+local zYMin = {}
+local zHeight = {}
+local zOccupied = {}
+local zCount = 0
+
+------------------------
+-- zone methods
+------------------------
+-- see on gameTick also
+
+function ManageTeleporterEffects()
+ effectTimer = effectTimer + 1
+ if effectTimer > 50 then -- 100
+ effectTimer = 0
+
+ for i = 0,1 do
+ eX = 10 + zXMin[i] + GetRandom(zWidth[i]-10)
+ eY = 50 + zYMin[i] + GetRandom(zHeight[i]-110)
+
+ -- steam and smoke and DUST look good, smokering looks trippy
+ -- smoketrace and eviltrace are not effected by wind?
+ -- chunk is a LR falling gear
+ tempE = AddVisualGear(eX, eY, vgtDust, 0, false)
+ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 = GetVisualGearValues(tempE)
+ SetVisualGearValues(tempE, eX, eY, g3, g4, g5, g6, g7, g8, g9, fCol[i])
+ end
+ end
+end
+
+function CreateZone(xMin, yMin, width, height)
+
+
+ zXMin[zCount] = xMin
+ zYMin[zCount] = yMin
+ zWidth[zCount] = width
+ zHeight[zCount] = height
+ zOccupied[zCount] = false
+ zCount = zCount + 1
+
+ return (zCount-1)
+
+end
+
+function GearIsInZone(gear, zI)
+
+ if (GetX(gear) > zXMin[zI]) and (GetX(gear) < (zXMin[zI]+zWidth[zI])) and (GetY(gear) > zYMin[zI]) and (GetY(gear) < (zYMin[zI]+zHeight[zI])) then
+ zOccupied[zI] = true
+ else
+ zOccupied[zI] = false
+ end
+
+ return zOccupied[zI]
+
+end
+
+------------------------
+--flag methods
+------------------------
+
+function CheckScore(teamID)
+
+ if teamID == 0 then
+ alt = 1
+ winner = "Red"
+
+ elseif teamID == 1 then
+ alt = 0
+ winner = "Blue"
+ end
+
+ if fCaptures[teamID] == 2 then
+ for i = 0, (numhhs-1) do
+ if GetHogClan(hhs[i]) == alt then
+ SetEffect(hhs[i], heResurrectable, false)
+ SetHealth(hhs[i],0)
+ end
+ end
+ --ShowMission("GAME OVER!", "Victory for the " .. winner .. " Team!", "Hooray!", 0, 0)
+ ShowMission(loc("GAME OVER!"), loc("Victory for the ") .. GetHogTeamName(CurrentHedgehog), loc("Hooray!"), 0, 0)
+ end
+
+end
+
+function HandleRespawns()
+
+ for i = 0, 1 do
+
+ if fNeedsRespawn[i] == true then
+ fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
+ --fGear[i] = SpawnHealthCrate(fSpawnX[i],fSpawnY[i])
+ fNeedsRespawn[i] = false
+ fIsMissing[i] = false -- new, this should solve problems of a respawned flag being "returned" when a player tries to score
+ AddCaption(loc("Flag respawned!"))
+ end
+
+ end
+
+end
+
+function FlagDeleted(gear)
+
+ if (gear == fGear[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fGear[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ --ShowMission("OH HAI!", "FlagDeleted was called", "Oh noes!", -amBazooka, 0)
+
+ if CurrentHedgehog ~= nil then
+
+ --ShowMission("GUESS WAT?", "I'm not nil", "Oh noes!", -amBazooka, 0)
+ --if the player picks up the flag
+ if CheckDistance(CurrentHedgehog, fGear[wtf]) < 1600 then
+
+ fGear[wtf] = nil -- the flag has now disappeared and we shouldnt be pointing to it
+
+ -- player has successfully captured the enemy flag
+ if (GetHogClan(CurrentHedgehog) == wtf) and (CurrentHedgehog == fThief[bbq]) and (fIsMissing[wtf] == false) then
+ fIsMissing[wtf] = false
+ fNeedsRespawn[wtf] = true
+ fIsMissing[bbq] = false
+ fNeedsRespawn[bbq] = true
+ fCaptures[wtf] = fCaptures[wtf] +1 --fCaptures[wtf]
+
+ --ShowMission(loc("You have SCORED!!"), "Red Team: " .. fCaptures[0], "Blue Team: " .. fCaptures[1], -amBazooka, 0)
+ ShowMission(loc("You have SCORED!!"), GetHogTeamName(CurrentHedgehog) .. ": " .. fCaptures[wtf], loc("Opposing Team: ") .. fCaptures[bbq], 0, 0)
+
+ PlaySound(sndVictory)
+ --SetEffect(fThief[bbq], hePoisoned, false)
+ fThief[bbq] = nil -- player no longer has the enemy flag
+ CheckScore(wtf)
+
+ --if the player is returning the flag
+ elseif GetHogClan(CurrentHedgehog) == wtf then
+
+ fNeedsRespawn[wtf] = true
+
+ -- NEW ADDIITON, does this work? Should make it possible to return your flag and then score in the same turn
+ if fIsMissing[wtf] == true then
+ HandleRespawns() -- this will set fIsMissing[wtf] to false :)
+ AddCaption(loc("Flag returned!"))
+ elseif fIsMissing[wtf] == false then
+ AddCaption(loc("That was pointless.") .. loc("The flag will respawn next round."))
+ end
+
+ --fIsMissing[wtf] = false
+ --ShowMission("Flag returned!", "Hooray", "", -amBazooka, 0)
+
+ --if the player is taking the enemy flag
+ elseif GetHogClan(CurrentHedgehog) == bbq then
+ fIsMissing[wtf] = true
+ for i = 0,numhhs-1 do
+ if CurrentHedgehog == hhs[i] then
+ fThief[wtf] = hhs[i]
+ --SetEffect(fThief[wtf], hePoisoned, true)
+ end
+ end
+
+ AddCaption(loc("Flag captured!"))
+
+ else --below line doesnt usually get called
+ AddCaption("Hmm... that wasn't supposed to happen...")
+
+ end
+
+ -- if flag has been destroyed, probably
+ else
+
+ if GetY(fGear[wtf]) > 2025 then
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ HandleRespawns()
+ else
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ AddCaption(loc("Boom!") .. " " .. loc("The flag will respawn next round."))
+ end
+
+ end
+
+ -- if flag has been destroyed deep underwater and player is now nil
+ -- probably only gets called if the flag thief drowns himself
+ -- otherwise the above one will work fine
+ else
+ --ShowMission("NIL PLAYER!", "Oh snap", "Oh noes!", -amBazooka, 0)
+ fGear[wtf] = nil
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ AddCaption(loc("The flag will respawn next round."))
+ end
+
+end
+
+function FlagThiefDead(gear)
+
+ if (gear == fThief[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fThief[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ if fThief[wtf] ~= nil then
+ --SetEffect(fThief[wtf], hePoisoned, false)
+ fGear[wtf] = SpawnAmmoCrate(fThiefX[wtf],fThiefY[wtf]-50,amSkip)
+ AddVisualGear(fThiefX[wtf], fThiefY[wtf], vgtBigExplosion, 0, false)
+ fThief[wtf] = nil
+ end
+
+end
+
+function HandleCircles()
+
+ for i = 0, 1 do
+ if fIsMissing[i] == false then -- draw a circle at the flag's spawning place
+ --SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ elseif (fIsMissing[i] == true) and (fNeedsRespawn[i] == false) then
+ if fThief[i] ~= nil then -- draw circle round flag carrier
+ --SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ elseif fThief[i] == nil then -- draw cirle round dropped flag
+ --SetVisualGearValues(fCirc[i], GetX(fGear[i]), GetY(fGear[i]), 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], GetX(fGear[i]),GetY(fGear[i]), vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ end
+ end
+
+ if fNeedsRespawn[i] == true then -- if the flag has been destroyed, no need for a circle
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 0, 0, fCol[i])
+ end
+ end
+
+end
+
+------------------------
+-- general methods
+------------------------
+
+function CheckDistance(gear1, gear2)
+
+ g1X, g1Y = GetGearPosition(gear1)
+ g2X, g2Y = GetGearPosition(gear2)
+
+ g1X = g1X - g2X
+ g1Y = g1Y - g2Y
+ z = (g1X*g1X) + (g1Y*g1Y)
+
+ --dist = math.sqrt(z)
+
+ dist = z
+
+ return dist
+
+end
+
+function CheckTeleporters()
+
+ teleportActive = false
+
+ if (GearIsInZone(CurrentHedgehog, redTel) == true) and (GetHogClan(CurrentHedgehog) == 0) then
+ teleportActive = true
+ destinationX = 1402
+ destinationY = 321
+ elseif (GearIsInZone(CurrentHedgehog, orangeTel) == true) and (GetHogClan(CurrentHedgehog) == 1) then
+ teleportActive = true
+ destinationX = 2692
+ destinationY = 321
+ end
+
+ if teleportActive == true then
+ if actionReset == 0 then
+ SetGearMessage(CurrentHedgehog, gmAttack)
+ --AddCaption(actionReset .. ";" .. "attack")
+ elseif actionReset == 10 then
+ SetGearMessage(CurrentHedgehog, 0)
+ --AddCaption(actionReset .. ";" .. "reset")
+ elseif actionReset == 20 then
+ AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
+ SetGearPosition(CurrentHedgehog,destinationX,destinationY)
+ AddVisualGear(GetX(CurrentHedgehog), GetY(CurrentHedgehog), vgtBigExplosion, 0, false)
+ --AddCaption(actionReset .. ";" .. "teleport")
+ end
+
+ actionReset = actionReset + 1
+ if actionReset >= 30 then
+ actionReset = 0
+ end
+
+ end
+
+end
+
+function RebuildTeamInfo()
+
+
+ -- make a list of individual team names
+ for i = 0, 5 do
+ teamNameArr[i] = i
+ teamSize[i] = 0
+ teamIndex[i] = 0
+ end
+ numTeams = 0
+
+ for i = 0, (numhhs-1) do
+
+ z = 0
+ unfinished = true
+ while(unfinished == true) do
+
+ newTeam = true
+ tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name
+
+ if tempHogTeamName == teamNameArr[z] then
+ newTeam = false
+ unfinished = false
+ end
+
+ z = z + 1
+
+ if z == TeamsCount then
+ unfinished = false
+ if newTeam == true then
+ teamNameArr[numTeams] = tempHogTeamName
+ numTeams = numTeams + 1
+ end
+ end
+
+ end
+
+ end
+
+ -- find out how many hogs per team, and the index of the first hog in hhs
+ for i = 0, numTeams-1 do
+
+ for z = 0, numhhs-1 do
+ if GetHogTeamName(hhs[z]) == teamNameArr[i] then
+ if teamSize[i] == 0 then
+ teamIndex[i] = z -- should give starting index
+ end
+ teamSize[i] = teamSize[i] + 1
+ --add a pointer so this hog appears at i in hhs
+ end
+ end
+
+ end
+
+end
+
+function HandleCrateDrops()
+
+ roundsCounter = roundsCounter +1
+
+ if roundsCounter == 5 then
+
+ roundsCounter = 0
+
+ r = GetRandom(8)
+ if r == 0 then
+ SpawnUtilityCrate(0,0,amSwitch)
+ elseif r == 1 then
+ SpawnUtilityCrate(0,0,amTeleport)
+ elseif r == 2 then
+ SpawnUtilityCrate(0,0,amJetpack)
+ elseif r == 3 then
+ SpawnUtilityCrate(0,0,amExtraTime)
+ elseif r == 4 then
+ SpawnUtilityCrate(0,0,amGirder)
+ elseif r == 5 then
+ SpawnAmmoCrate(0,0,amDynamite)
+ elseif r == 6 then
+ SpawnAmmoCrate(0,0,amFlamethrower)
+ elseif r == 7 then
+ SpawnUtilityCrate(0,0,amPortalGun)
+ end
+
+ end
+
+end
+
+------------------------
+-- game methods
+------------------------
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+ GameFlags = gfDivideTeams -- Game settings and rules
+ TurnTime = 30000 -- (was 30) The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ MinesTime = 2000
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 10 -- The delay between each round
+ SuddenDeathTurns = 99 -- suddendeath is off, effectively
+ Map = "Blizzard" -- The map to be played
+ Theme = "Snow" -- The theme to be used "Nature"
+
+end
+
+
+function onGameStart()
+
+ --ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0)
+ ShowMission(loc("CTF_BLIZZARD") .. " 0.5", loc("by mikade"), loc(" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"), 0, 0)
+
+
+ -- initialize teleporters
+ redTel = CreateZone(342,1316,42,449) -- red teleporter
+ orangeTel = CreateZone(3719,1330,45,449) -- orange teleporter
+
+
+ --new improved placement schematics aw yeah
+ RebuildTeamInfo()
+ --ShowMission("Team Info Rebuilt", "Here you go:", "TeamCount: " .. TeamsCount .. "|" .. teamNameArr[0] .. ": " .. teamSize[0] .. " Hogs|" .. teamNameArr[1] .. ": " .. teamSize[1] .. " Hogs|" .. teamNameArr[2] .. ": " .. teamSize[2] .. " Hogs|", 0, 0)
+ team1Placed = 0
+ team2Placed = 0
+ for i = 0, (TeamsCount-1) do
+ for g = teamIndex[i], (teamIndex[i]+teamSize[i]-1) do
+ if GetHogClan(hhs[g]) == 0 then
+ SetGearPosition(hhs[g],1403+ ((team1Placed+1)*50),1570)
+ team1Placed = team1Placed +1
+ if team1Placed > 6 then
+ team1Placed = 0
+ end
+ elseif GetHogClan(hhs[g]) == 1 then
+ SetGearPosition(hhs[g],2230+ ((team2Placed+1)*50),1570)
+ team2Placed = team2Placed +1
+ if team2Placed > 6 then
+ team2Placed = 0
+ end
+ end
+ end
+ end
+
+
+
+ --spawn starting ufos and or super weapons
+ SpawnAmmoCrate(2048,1858,amJetpack)
+ --SpawnUtilityCrate(2048,1858,amExtraTime)
+
+ --set flag spawn points and spawn the flags
+ fSpawnX[0] = 957
+ fSpawnY[0] = 1747
+ fSpawnX[1] = 3123
+ fSpawnY[1] = 1747
+
+ for i = 0, 1 do
+ fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
+ fCirc[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ fCol[i] = GetClanColor(i)
+
+ fSpawnC[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 10, 200, 1, 10, 0, 300, 5, fCol[i])
+
+
+ fIsMissing[i] = false
+ fNeedsRespawn[i] = false
+ fCaptures[i] = 0
+
+ vCircMinA[i] = 20
+ vCircMaxA[i] = 255
+ vCircType[i] = 1
+ vCircPulse[i] = 10
+ vCircFuckAll[i] = 0
+ vCircRadius[i] = 150
+ vCircWidth[i] = 5
+ vCircCol[i] = fCol[i]
+
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+
+ end
+
+end
+
+
+function onNewTurn()
+
+ if lastTeam ~= GetHogTeamName(CurrentHedgehog) then
+ lastTeam = GetHogTeamName(CurrentHedgehog)
+ end
+
+ for i = 0, 1 do
+ if fThief[i] ~= nil then
+ --adjust = 5 + GetHealth(fThief[i])
+ --SetHealth(fThief[i], adjust)
+ --AddCaption('Helped out the flag poisoned flag thiefs')
+ end
+ end
+
+ --AddCaption("Handling respawns")
+ HandleRespawns()
+ HandleCrateDrops()
+
+ --myC = AddVisualGear(GetX(CurrentHedgehog),GetY(CurrentHedgehog),vgtCircle,0,true)
+ --SetVisualGearValues(myC, GetX(CurrentHedgehog),GetY(CurrentHedgehog), 20, 200, 0, 0, 100, 50, 3, GetClanColor(GetHogClan(CurrentHedgehog)))
+
+end
+
+function onGameTick()
+
+ -- onRessurect calls AFTER you have resurrected,
+ -- so keeping track of x,y a few milliseconds before
+ -- is useful
+ --FTTC = FTTC + 1
+ --if FTTC == 100 then
+ -- FTTC = 0
+ for i = 0,1 do
+ if fThief[i] ~= nil then
+ fThiefX[i] = GetX(fThief[i])
+ fThiefY[i] = GetY(fThief[i])
+ end
+ end
+ --end
+
+ -- things we wanna check often
+ if (CurrentHedgehog ~= nil) then
+ --AddCaption(GetX(CurrentHedgehog) .. "; " .. GetY(CurrentHedgehog))
+ --AddCaption("Checking Teleporters")
+ CheckTeleporters()
+ end
+
+ HandleCircles()
+ ManageTeleporterEffects()
+
+end
+
+
+function onAmmoStoreInit()
+
+ SetAmmo(amDrill,9,0,0,0)
+ SetAmmo(amMortar,9,0,0,0)
+
+ SetAmmo(amGrenade,9,0,0,0)
+ SetAmmo(amClusterBomb,4,0,0,0)
+
+ --SetAmmo(amDEagle, 4, 0, 0, 0)
+ SetAmmo(amShotgun, 9, 0, 0, 0)
+ SetAmmo(amFlamethrower, 1, 0, 0, 1)
+
+ SetAmmo(amFirePunch, 9, 0, 0, 0)
+ SetAmmo(amBaseballBat, 2, 0, 0, 0)
+
+ SetAmmo(amDynamite,2,0,0,1)
+ SetAmmo(amSMine,4,0,0,0)
+
+ SetAmmo(amBlowTorch, 9, 0, 0, 0)
+ SetAmmo(amPickHammer, 9, 0, 0, 0)
+ SetAmmo(amGirder, 2, 0, 0, 2)
+ SetAmmo(amPortalGun, 2, 0, 0, 2)
+
+ SetAmmo(amParachute, 9, 0, 0, 0)
+ SetAmmo(amRope, 9, 0, 0, 0)
+ SetAmmo(amTeleport, 1, 0, 0, 1)
+ SetAmmo(amJetpack, 1, 0, 0, 1)
+
+ SetAmmo(amSwitch, 2, 0, 0, 1)
+ SetAmmo(amExtraTime,1,0,0,1)
+ SetAmmo(amLowGravity,1,0,0,0)
+ SetAmmo(amSkip, 9, 0, 0, 0)
+
+end
+
+
+function onGearResurrect(gear)
+
+ --AddCaption("A gear has been resurrected!")
+
+ -- mark the flag thief as dead if he needed a respawn
+ for i = 0,1 do
+ if gear == fThief[i] then
+ FlagThiefDead(gear)
+ end
+ end
+
+ -- place hogs belonging to each clan either left or right side of map
+ if GetHogClan(gear) == 0 then
+ FindPlace(gear, false, 0, 2048)
+ elseif GetHogClan(gear) == 1 then
+ FindPlace(gear, false, 2048, LAND_WIDTH)
+ end
+
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+
+end
+
+function onGearDamage(gear, damage)
+
+ -- >_< damn, occurs too fast, before the hog has finished moving / updated his health
+ --if GetGearType(gear) == gtHedgehog then
+ -- if damage > GetHealth(gear) then
+ -- AddVisualGear(GetX(gear), GetY(gear), vgtExplosion, 0, false)
+ -- end
+ --end
+
+end
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, true)
+
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if (gear == fGear[0]) or (gear == fGear[1]) then
+ FlagDeleted(gear)
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/CTF_Blizzard/preview.png
Binary file share/hedgewars/Data/Maps/CTF_Blizzard/preview.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Control/CMakeLists.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/CMakeLists.txt Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,6 @@
+install(FILES
+ map.cfg
+ map.lua
+ map.png
+ preview.png
+ DESTINATION ${SHAREPATH}Data/Maps/Control)
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Control/map.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/map.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,4 @@
+Deepspace
+48
+Default
+Crazy
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Control/map.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/map.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,464 @@
+--------------------------------
+-- CONTROL 0.3
+--------------------------------
+
+-- in this version
+
+---------
+-- 0.2
+---------
+-- fixed score display errrors
+-- added missing resurrection effects
+-- moved hogs off control points if thats where they started
+-- added sanity limit for the above
+-- added tint tags to display clan score on each point as it scors
+-- added gameflags filter
+-- changed scoring rate
+-- hogs now only score point DURING THEIR TURN
+-- map now accepts custom weaponsets and themes
+-- changed win limit
+
+---------
+-- 0.3
+---------
+
+-- added translation support
+
+--------
+-- 0.4
+--------
+
+-- added scaling scoring based on clans: 300 points to win - 25 per team in game
+
+-----------------
+--script begins
+-----------------
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+---------------------------------------------------------------
+----------lots of bad variables and things
+----------because someone is too lazy
+----------to read about tables properly
+------------------ "Oh well, they probably have the memory"
+
+local gameWon = false
+local pointLimit = 300
+
+local vCirc = {}
+local vCircCount = 0
+
+local hGCount = 0
+
+local vCircX = {}
+local vCircY = {}
+local vCircMinA = {}
+local vCircMaxA = {}
+local vCircType = {}
+local vCircPulse = {}
+local vCircFuckAll = {}
+local vCircRadius = {}
+local vCircWidth = {}
+local vCircCol = {}
+
+--------------------------
+-- hog and team tracking variales
+--------------------------
+
+local numhhs = 0 -- store number of hedgehogs
+local hhs = {} -- store hedgehog gears
+
+local numTeams -- store the number of teams in the game
+local teamNameArr = {} -- store the list of teams
+local teamClan = {}
+local teamSize = {} -- store how many hogs per team
+local teamIndex = {} -- at what point in the hhs{} does each team begin
+
+local teamComment = {}
+local teamScore = {}
+
+--------------------------------
+--zone and teleporter variables
+--------------------------------
+
+--local redTel
+--local orangeTel
+--local areaArr = {} -- no longer used
+
+local cPoint = {}
+local cOwnerClan = {}
+
+local zXMin = {}
+local zWidth = {}
+local zYMin = {}
+local zHeight = {}
+local zOccupied = {}
+local zCount = 0
+
+------------------------
+-- zone methods
+------------------------
+-- see on gameTick also
+
+function CreateZone(xMin, yMin, width, height)
+
+
+ zXMin[zCount] = xMin
+ zYMin[zCount] = yMin
+ zWidth[zCount] = width
+ zHeight[zCount] = height
+ zOccupied[zCount] = false
+ zCount = zCount + 1
+
+ return (zCount-1)
+
+end
+
+function GearIsInZone(gear, zI)
+
+ if (GetX(gear) > zXMin[zI]) and (GetX(gear) < (zXMin[zI]+zWidth[zI])) and (GetY(gear) > zYMin[zI]) and (GetY(gear) < (zYMin[zI]+zHeight[zI])) then
+ zOccupied[zI] = true
+ else
+ zOccupied[zI] = false
+ end
+
+ return zOccupied[zI]
+
+end
+
+function ZonesAreEmpty()
+
+ okay = true
+
+ for i = 0,(zCount-1) do
+
+ for k = 0, (numhhs-1) do
+ if (hhs[k] ~= nil) then
+ if (GearIsInZone(hhs[k],i)) == true then
+ FindPlace(hhs[k], false, 0, LAND_WIDTH, true)
+ okay = false
+ end
+ end
+ end
+ end
+
+ return(okay)
+
+end
+
+function CheckZones()
+
+ for i = 0,(zCount-1) do
+ SetVisualGearValues(vCirc[i], vCircX[i], vCircY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], 0xffffffff)
+ cOwnerClan[i] = nil
+ for k = 0, (numhhs-1) do
+ if (hhs[k] ~= nil) then
+ if (GearIsInZone(hhs[k],i)) == true then
+
+ if cOwnerClan[i] ~= nil then
+ if cOwnerClan[i] ~= GetHogClan(hhs[k]) then
+ --if the hog now being compared is different to one that is also here and was previously compared
+
+ SetVisualGearValues(vCirc[i], vCircX[i], vCircY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], 0xffffffff)
+ --SetVisualGearValues(vCirc[i], 2739, 1378, 20, 255, 1, 10, 0, 300, 5, 0xffffffff)
+
+ cOwnerClan[i] = 10 -- this means conflicted
+ end
+ elseif cOwnerClan[i] == nil then
+ cOwnerClan[i] = GetHogClan(hhs[k])
+ --SetVisualGearValues(vCirc[i], 2739, 1378, 20, 255, 1, 10, 0, 300, 5, GetClanColor( GetHogClan(hhs[k])) )
+ SetVisualGearValues(vCirc[i], vCircX[i], vCircY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], GetClanColor( GetHogClan(hhs[k])))
+
+ end
+
+ end
+ end
+ end
+
+ end
+
+end
+
+function AwardPoints()
+
+ for i = 0,(zCount-1) do
+ -- give score to all players controlling points
+ --if (cOwnerClan[i] ~= nil) and (cOwnerClan[i] ~= 10) then
+ -- teamScore[cOwnerClan[i]] = teamScore[cOwnerClan[i]] + 1
+ --end
+
+ -- only give score to the player currently in control
+ if CurrentHedgehog ~= nil then
+ if cOwnerClan[i] == GetHogClan(CurrentHedgehog) then
+ teamScore[cOwnerClan[i]] = teamScore[cOwnerClan[i]] + 1
+ end
+ end
+ end
+
+ -- i want to show all the tags at once as having the SAME score not 1,2,3,4 so alas, repeating the loop seems needed
+ for i = 0,(zCount-1) do
+ if CurrentHedgehog ~= nil then
+ if cOwnerClan[i] == GetHogClan(CurrentHedgehog) then
+ g = AddVisualGear(vCircX[i], vCircY[i], vgtHealthTag, 100, False)
+ SetVisualGearValues(g, vCircX[i], vCircY[i], 0, 0, 0, 0, 0, teamScore[cOwnerClan[i]], 1500, GetClanColor(cOwnerClan[i]))
+ end
+ end
+ end
+
+end
+
+-----------------
+-- general methods
+------------------
+
+function RebuildTeamInfo()
+
+
+ -- make a list of individual team names
+ for i = 0, 5 do
+ teamNameArr[i] = " " -- = i
+ teamSize[i] = 0
+ teamIndex[i] = 0
+ teamScore[i] = 0
+ end
+ numTeams = 0
+
+ for i = 0, (numhhs-1) do
+
+ z = 0
+ unfinished = true
+ while(unfinished == true) do
+
+ newTeam = true
+ tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name
+
+ if tempHogTeamName == teamNameArr[z] then
+ newTeam = false
+ unfinished = false
+ end
+
+ z = z + 1
+
+ if z == TeamsCount then
+ unfinished = false
+ if newTeam == true then
+ teamNameArr[numTeams] = tempHogTeamName
+ numTeams = numTeams + 1
+ end
+ end
+
+ end
+
+ end
+
+ -- find out how many hogs per team, and the index of the first hog in hhs
+ for i = 0, (numTeams-1) do
+ for z = 0, (numhhs-1) do
+ if GetHogTeamName(hhs[z]) == teamNameArr[i] then
+ teamClan[i] = GetHogClan(hhs[z])
+ if teamSize[i] == 0 then
+ teamIndex[i] = z -- should give starting index
+ end
+ teamSize[i] = teamSize[i] + 1
+ --add a pointer so this hog appears at i in hhs
+ end
+ end
+
+ end
+
+end
+
+------------------------
+-- game methods
+------------------------
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+ --GameFlags = gfInfAttack + gfSolidLand -- Game settings and rules
+
+ GameFlags = band(bor(GameFlags, gfInfAttack + gfSolidLand), bnot(gfKing + gfForts))
+
+ SuddenDeathTurns = 99 -- suddendeath is off, effectively
+
+end
+
+
+function onGameStart()
+
+
+
+ -- build zones
+ cPoint[0] = CreateZone(571,47,120,80)
+ cPoint[1] = CreateZone(1029,643,120,80)
+ cPoint[2] = CreateZone(322,1524,120,80)
+ cPoint[3] = CreateZone(1883,38,120,80)
+ cPoint[4] = CreateZone(3821,46,120,80)
+ cPoint[5] = CreateZone(2679,1338,120,80)
+
+ vCircX[0], vCircY[0] = 631, 82
+ vCircX[1], vCircY[1] = 1088, 684
+ vCircX[2], vCircY[2] = 381, 1569
+ vCircX[3], vCircY[3] = 1942, 77
+ vCircX[4], vCircY[4] = 3883, 89
+ vCircX[5], vCircY[5] = 2739, 1378
+
+ for i = 0, 5 do
+ vCirc[i] = AddVisualGear(0,0,vgtCircle,0,true)
+ vCircMinA[i] = 20
+ vCircMaxA[i] = 255
+ vCircType[i] = 1
+ vCircPulse[i] = 10
+ vCircFuckAll[i] = 0
+ vCircRadius[i] = 300
+ vCircWidth[i] = 5
+ vCircCol[i] = 0xffffffff
+
+ SetVisualGearValues(vCirc[i], vCircX[i], vCircY[i], vCircMinA[i], vCircMaxA[i], vCircType[i], vCircPulse[i], vCircFuckAll[i], vCircRadius[i], vCircWidth[i], vCircCol[i])
+ end
+
+ --zxc = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ --SetVisualGearValues(zxc, 1000,1000, 20, 255, 1, 10, 0, 100, 1, GetClanColor(0))
+ --minO,max0 -glowyornot --pulsate timer -- fuckall -- radius -- width -- colour
+
+ --new improved placement schematics aw yeah
+ RebuildTeamInfo()
+
+ for i = 0, (numTeams-1) do
+ pointLimit = pointLimit - 25
+ end
+ --SetGearPosition(hhs[0], 631, 82)
+ --SetGearPosition(hhs[1], 1088, 684)
+ --SetGearPosition(hhs[2], 381, 1569)
+
+ -- reposition hogs if they are on control points until they are not or sanity limit kicks in
+ reN = 0
+ --zz = 0
+ while (reN < 10) do
+ if ZonesAreEmpty() == false then
+ reN = reN + 1
+ --zz = zz + 1
+ --SetGearPosition(hhs[0], 631, 82) -- put this in here to thwart attempts at repositioning and test sanity limit
+ else
+ reN = 15
+ end
+ --AddCaption(zz) -- number of times it took to work
+ end
+
+ ShowMission(loc("CONTROL v0.3"), loc("by mikade"), loc("Control pillars to score points.") .. "|" .. loc("Goal:") .. " " .. pointLimit .. " " .. loc("points"), 0, 0)
+
+
+end
+
+
+function onNewTurn()
+
+
+ if lastTeam ~= GetHogTeamName(CurrentHedgehog) then
+ lastTeam = GetHogTeamName(CurrentHedgehog)
+ end
+
+ if gameWon == false then
+
+ for i = 0, (numTeams-1) do
+ if teamScore[i] >= pointLimit then --150
+ gameWon = true
+ winnerClan = i
+ end
+ end
+
+ if gameWon == true then
+ for i = 0, (numhhs-1) do
+ if hhs[i] ~= nil then
+ if GetHogClan(hhs[i]) ~= winnerClan then
+ SetEffect(hhs[i], heResurrectable, false)
+ SetHealth(hhs[i],0)
+ end
+ end
+ end
+ TurnTimeLeft = 1
+ end
+
+ for i = 0,5 do
+ if teamNameArr[i] ~= " " then -- i
+ teamComment[i] = teamNameArr[i] .. ": " .. teamScore[teamClan[i]] .. loc (" points|")
+ elseif teamNameArr[i] == " " then
+ teamComment[i] = "|"
+ end
+ end
+ ShowMission(loc("CONTROL"), loc("Team Scores:"), teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5], 0, 1600)
+
+ end
+
+end
+
+function onGameTick()
+
+ vCircCount = vCircCount + 1
+ if (vCircCount >= 500) and (gameWon == false) then
+ vCircCount = 0
+ CheckZones()
+ --AwardPoints()
+
+
+ --[[for i = 0,5 do
+
+ if teamNameArr[i] ~= " " then -- i
+ teamComment[i] = teamNameArr[i] .. ": " .. teamScore[teamClan[i] ] .. " points|"
+ elseif teamNameArr[i] == " " then
+ teamComment[i] = "|"
+ end
+ end
+
+ ShowMission("CONTROL", "Team Scores:", teamComment[0] .. teamComment[1] .. teamComment[2] .. teamComment[3] .. teamComment[4] .. teamComment[5], 0, 1600)]]
+
+ end
+
+ -- things we wanna check often
+ if (CurrentHedgehog ~= nil) then
+ -- AddCaption(GetX(CurrentHedgehog) .. "; " .. GetY(CurrentHedgehog))
+ --AddCaption(teamNameArr[0] .. " : " .. teamScore[0])
+ --AddCaption(GetHogTeamName(CurrentHedgehog) .. " : " .. teamScore[GetHogClan(CurrentHedgehog)]) -- this end up 1?
+
+ -- huh? the first clan added seems to be clan 1, not 0 ??
+
+ end
+
+ hGCount = hGCount + 1
+ if (hGCount >= 2000) and (gameWon == false) then
+ hGCount = 0
+ AwardPoints()
+ end
+
+end
+
+function onGearResurrect(gear)
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+end
+
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, true)
+
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ --AddCaption("gear deleted!")
+ for i = 0, (numhhs-1) do
+ if gear == hhs[i] then
+ hhs[i] = nil
+ --AddCaption("for real")
+ end
+ end
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Control/map.png
Binary file share/hedgewars/Data/Maps/Control/map.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Maps/Control/preview.png
Binary file share/hedgewars/Data/Maps/Control/preview.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,178 @@
+-- Hedgewars Bazooka Training
+-- Scripting Example
+
+-- Lines such as this one are comments - they are ignored
+-- by the game, no matter what kind of text is in there.
+-- It's also possible to place a comment after some real
+-- instruction as you see below. In short, everything
+-- following "--" is ignored.
+
+---------------------------------------------------------------
+-- At first we implement the localization library using loadfile.
+-- This allows us to localize strings without needing to think
+-- about translations.
+-- We can use the function loc(text) to localize a string.
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+-- This variable will hold the number of destroyed targets.
+local score = 0
+-- This variable represents the number of targets to destroy.
+local score_goal = 5
+-- This variable controls how many milliseconds/ticks we'd
+-- like to wait before we end the round once all targets
+-- have been destroyed.
+local end_timer = 5000 -- 5000 ms = 5 s
+-- This variable is set to true if the game is lost (i.e.
+-- time runs out).
+local game_lost = false
+-- This variable will point to the hog's gear
+local player = nil
+-- This variable will grab the time left at the end of the round
+local time_goal = 0
+
+-- This is a custom function to make it easier to
+-- spawn more targets with just one line of code
+-- You may define as many custom functions as you
+-- like.
+function spawnTarget()
+ -- add a new target gear
+ gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
+
+ -- move it to a random position within 0 and
+ -- LAND_WIDTH - the width of the map
+ FindPlace(gear, true, 0, LAND_WIDTH)
+
+ -- move the target to a higher vertical position
+ -- to ensure it's not somewhere down below
+ x, y = GetGearPosition(gear)
+ SetGearPosition(gear, x, 500)
+end
+
+-- This function is called before the game loads its
+-- resources.
+-- It's one of the predefined function names that will
+-- be called by the game. They give you entry points
+-- where you're able to call your own code using either
+-- provided instructions or custom functions.
+function onGameInit()
+ -- At first we have to overwrite/set some global variables
+ -- that define the map, the game has to load, as well as
+ -- other things such as the game rules to use, etc.
+ -- Things we don't modify here will use their default values.
+
+ -- The base number for the random number generator
+ Seed = 1
+ -- Game settings and rules
+ GameFlags = gfMultiWeapon + gfOneClanMode + gfSolidLand
+ -- The time the player has to move each round (in ms)
+ TurnTime = 60000
+ -- The frequency of crate drops
+ CaseFreq = 0
+ -- The number of mines being placed
+ MinesNum = 0
+ -- The number of explosives being placed
+ Explosives = 0
+ -- The delay between each round
+ Delay = 0
+ -- The map to be played
+ Map = "Bamboo"
+ -- The theme to be used
+ Theme = "Bamboo"
+
+ -- Create the player team
+ AddTeam(loc("'Zooka Team"), 14483456, "Simple", "Island", "Default")
+ -- And add a hog to it
+ player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+ SetGearPosition(player, 1960, 1160)
+end
+
+-- This function is called when the round starts
+-- it spawns the first target that has to be destroyed.
+-- In addition it shows the scenario goal(s).
+function onGameStart()
+ -- Spawn the first target.
+ spawnTarget()
+
+ -- Show some nice mission goals.
+ -- Parameters are: caption, sub caption, description,
+ -- extra text, icon and time to show.
+ -- A negative icon parameter (-n) represents the n-th weapon icon
+ -- A positive icon paramter (n) represents the (n+1)-th mission icon
+ -- A timeframe of 0 is replaced with the default time to show.
+ ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amBazooka, 0)
+end
+
+function onNewTurn()
+ ParseCommand("setweap " .. string.char(amBazooka))
+end
+
+-- This function is called every game tick.
+-- Note that there are 1000 ticks within one second.
+-- You shouldn't try to calculate too complicated
+-- code here as this might slow down your game.
+function onGameTick()
+ -- If time's up, set the game to be lost.
+ -- We actually check the time to be "1 ms" as it
+ -- will be at "0 ms" right at the start of the game.
+ if TurnTimeLeft == 1 and score < score_goal then
+ game_lost = true
+ -- ... and show a short message.
+ ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
+ -- How about killing our poor hog due to his poor performance?
+ SetHealth(player, 0)
+ -- Just to be sure set the goal time to 1 ms
+ time_goal = 1
+ end
+ -- If the goal is reached or we've lost ...
+ if score == score_goal or game_lost then
+ -- ... check to see if the time we'd like to
+ -- wait has passed and then ...
+ if end_timer == 0 then
+ -- ... end the game ...
+ EndGame()
+ else
+ -- ... or just lower the timer by 1.
+ end_timer = end_timer - 1
+ -- Reset the time left to stop the timer
+ TurnTimeLeft = time_goal
+ end
+ end
+end
+
+-- This function is called when the game is initialized
+-- to request the available ammo and probabilities
+function onAmmoStoreInit()
+ -- add an unlimited supply of bazooka ammo
+ SetAmmo(amBazooka, 9, 0, 0, 0)
+end
+
+-- This function is called when a new gear is added.
+-- We don't need it for this training, so we can
+-- keep it empty.
+function onGearAdd(gear)
+end
+
+-- This function is called before a gear is destroyed.
+-- We use it to count the number of targets destroyed.
+function onGearDelete(gear)
+ -- We're only interested in target gears.
+ if GetGearType(gear) == gtTarget then
+ -- Add one point to our score/counter
+ score = score + 1
+ -- If we haven't reached the goal ...
+ if score < score_goal then
+ -- ... spawn another target.
+ spawnTarget()
+ else
+ if not game_lost then
+ -- Otherwise show that the goal was accomplished
+ ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
+ -- Also let the hogs shout "victory!"
+ PlaySound(sndVictory)
+ -- Save the time left so we may keep it.
+ time_goal = TurnTimeLeft
+ end
+ end
+ end
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,178 @@
+-- Hedgewars Shotgun Training
+-- Scripting Example
+
+-- Lines such as this one are comments - they are ignored
+-- by the game, no matter what kind of text is in there.
+-- It's also possible to place a comment after some real
+-- instruction as you see below. In short, everything
+-- following "--" is ignored.
+
+---------------------------------------------------------------
+-- At first we implement the localization library using loadfile.
+-- This allows us to localize strings without needing to think
+-- about translations.
+-- We can use the function loc(text) to localize a string.
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+-- This variable will hold the number of destroyed targets.
+local score = 0
+-- This variable represents the number of targets to destroy.
+local score_goal = 5
+-- This variable controls how many milliseconds/ticks we'd
+-- like to wait before we end the round once all targets
+-- have been destroyed.
+local end_timer = 5000 -- 5000 ms = 5 s
+-- This variable is set to true if the game is lost (i.e.
+-- time runs out).
+local game_lost = false
+-- This variable will point to the hog's gear
+local player = nil
+-- This variable will grab the time left at the end of the round
+local time_goal = 0
+
+-- This is a custom function to make it easier to
+-- spawn more targets with just one line of code
+-- You may define as many custom functions as you
+-- like.
+function spawnTarget()
+ -- add a new target gear
+ gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
+
+ -- move it to a random position within 0 and
+ -- LAND_WIDTH - the width of the map
+ FindPlace(gear, true, 0, LAND_WIDTH)
+
+ -- move the target to a higher vertical position
+ -- to ensure it's not somewhere down below
+ x, y = GetGearPosition(gear)
+ SetGearPosition(gear, x, 500)
+end
+
+function onNewTurn()
+ ParseCommand("setweap " .. string.char(amShotgun))
+end
+
+-- This function is called before the game loads its
+-- resources.
+-- It's one of the predefined function names that will
+-- be called by the game. They give you entry points
+-- where you're able to call your own code using either
+-- provided instructions or custom functions.
+function onGameInit()
+ -- At first we have to overwrite/set some global variables
+ -- that define the map, the game has to load, as well as
+ -- other things such as the game rules to use, etc.
+ -- Things we don't modify here will use their default values.
+
+ -- The base number for the random number generator
+ Seed = 1
+ -- Game settings and rules
+ GameFlags = gfMultiWeapon + gfOneClanMode
+ -- The time the player has to move each round (in ms)
+ TurnTime = 30000
+ -- The frequency of crate drops
+ CaseFreq = 0
+ -- The number of mines being placed
+ MinesNum = 0
+ -- The number of explosives being placed
+ Explosives = 0
+ -- The delay between each round
+ Delay = 0
+ -- The map to be played
+ Map = "Mushrooms"
+ -- The theme to be used
+ Theme = "Nature"
+
+ -- Create the player team
+ AddTeam(loc("Shotgun Team"), 14483456, "Simple", "Island", "Default")
+ -- And add a hog to it
+ player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+ SetGearPosition(player, 2334, 1254)
+end
+
+-- This function is called when the round starts
+-- it spawns the first target that has to be destroyed.
+-- In addition it shows the scenario goal(s).
+function onGameStart()
+ -- Spawn the first target.
+ spawnTarget()
+
+ -- Show some nice mission goals.
+ -- Parameters are: caption, sub caption, description,
+ -- extra text, icon and time to show.
+ -- A negative icon parameter (-n) represents the n-th weapon icon
+ -- A positive icon paramter (n) represents the (n+1)-th mission icon
+ -- A timeframe of 0 is replaced with the default time to show.
+ ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amShotgun, 0)
+end
+
+-- This function is called every game tick.
+-- Note that there are 1000 ticks within one second.
+-- You shouldn't try to calculate too complicated
+-- code here as this might slow down your game.
+function onGameTick()
+ -- If time's up, set the game to be lost.
+ -- We actually check the time to be "1 ms" as it
+ -- will be at "0 ms" right at the start of the game.
+ if TurnTimeLeft == 1 and score < score_goal then
+ game_lost = true
+ -- ... and show a short message.
+ ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
+ -- How about killing our poor hog due to his poor performance?
+ SetHealth(player, 0)
+ -- Just to be sure set the goal time to 1 ms
+ time_goal = 1
+ end
+ -- If the goal is reached or we've lost ...
+ if score == score_goal or game_lost then
+ -- ... check to see if the time we'd like to
+ -- wait has passed and then ...
+ if end_timer == 0 then
+ -- ... end the game ...
+ EndGame()
+ else
+ -- ... or just lower the timer by 1.
+ end_timer = end_timer - 1
+ -- Reset the time left to stop the timer
+ TurnTimeLeft = time_goal
+ end
+ end
+end
+
+-- This function is called when the game is initialized
+-- to request the available ammo and probabilities
+function onAmmoStoreInit()
+ -- add an unlimited supply of shotgun ammo
+ SetAmmo(amShotgun, 9, 0, 0, 0)
+end
+
+-- This function is called when a new gear is added.
+-- We don't need it for this training, so we can
+-- keep it empty.
+function onGearAdd(gear)
+end
+
+-- This function is called before a gear is destroyed.
+-- We use it to count the number of targets destroyed.
+function onGearDelete(gear)
+ -- We're only interested in target gears.
+ if GetGearType(gear) == gtTarget then
+ -- Add one point to our score/counter
+ score = score + 1
+ -- If we haven't reached the goal ...
+ if score < score_goal then
+ -- ... spawn another target.
+ spawnTarget()
+ else
+ if not game_lost then
+ -- Otherwise show that the goal was accomplished
+ ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
+ -- Also let the hogs shout "victory!"
+ PlaySound(sndVictory)
+ -- Save the time left so we may keep it.
+ time_goal = TurnTimeLeft
+ end
+ end
+ end
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,307 @@
+-- Hedgewars SniperRifle Training
+-- Scripting Example
+
+-- Lines such as this one are comments - they are ignored
+-- by the game, no matter what kind of text is in there.
+-- It's also possible to place a comment after some real
+-- instruction as you see below. In short, everything
+-- following "--" is ignored.
+
+---------------------------------------------------------------
+-- At first we implement the localization library using loadfile.
+-- This allows us to localize strings without needing to think
+-- about translations.
+-- We can use the function loc(text) to localize a string.
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+-- This variable will hold the number of destroyed targets.
+local score = 0
+-- This variable represents the number of targets to destroy.
+local score_goal = 31
+-- This variable controls how many milliseconds/ticks we'd
+-- like to wait before we end the round once all targets
+-- have been destroyed.
+local end_timer = 5000 -- 5000 ms = 5 s
+-- This variable is set to true if the game is lost (i.e.
+-- time runs out).
+local game_lost = false
+-- This variable will point to the hog's gear
+local player = nil
+-- This variable will grab the time left at the end of the round
+local time_goal = 0
+
+local target = nil
+
+local last_hit_time = 0
+-- This is a custom function to make it easier to
+-- spawn more targets with just one line of code
+-- You may define as many custom functions as you
+-- like.
+function spawnTarget(x, y)
+ -- add a new target gear
+ target = AddGear(x, y, gtTarget, 0, 0, 0, 0)
+ -- have the camera move to the target so the player knows where it is
+ FollowGear(target)
+end
+
+function blowUp(x, y)
+ -- adds some TNT
+ gear = AddGear(x, y, gtDynamite, 0, 0, 0, 0)
+end
+
+function onNewTurn()
+ ParseCommand("setweap " .. string.char(amSniperRifle))
+end
+
+-- This function is called before the game loads its
+-- resources.
+-- It's one of the predefined function names that will
+-- be called by the game. They give you entry points
+-- where you're able to call your own code using either
+-- provided instructions or custom functions.
+function onGameInit()
+ -- At first we have to overwrite/set some global variables
+ -- that define the map, the game has to load, as well as
+ -- other things such as the game rules to use, etc.
+ -- Things we don't modify here will use their default values.
+
+ -- The base number for the random number generator
+ Seed = 0
+ -- Game settings and rules
+ GameFlags = gfMultiWeapon + gfOneClanMode + gfArtillery
+ -- The time the player has to move each round (in ms)
+ TurnTime = 150000
+ -- The frequency of crate drops
+ CaseFreq = 0
+ -- The number of mines being placed
+ MinesNum = 0
+ -- The number of explosives being placed
+ Explosives = 0
+ -- The delay between each round
+ Delay = 0
+ -- The map to be played
+ Map = "Ropes"
+ -- The theme to be used
+ Theme = "City"
+
+ -- Create the player team
+ AddTeam(loc("Sniperz"), 14483456, "Simple", "Island", "Default")
+ -- And add a hog to it
+ player = AddHog(loc("Hunter"), 0, 1, "Sniper")
+ SetGearPosition(player, 602, 1465)
+end
+
+-- This function is called when the round starts
+-- it spawns the first target that has to be destroyed.
+-- In addition it shows the scenario goal(s).
+function onGameStart()
+ -- Spawn the first target.
+ spawnTarget(860,1020)
+
+ -- Show some nice mission goals.
+ -- Parameters are: caption, sub caption, description,
+ -- extra text, icon and time to show.
+ -- A negative icon parameter (-n) represents the n-th weapon icon
+ -- A positive icon paramter (n) represents the (n+1)-th mission icon
+ -- A timeframe of 0 is replaced with the default time to show.
+ ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amSniperRifle, 0)
+end
+
+-- This function is called every game tick.
+-- Note that there are 1000 ticks within one second.
+-- You shouldn't try to calculate too complicated
+-- code here as this might slow down your game.
+function onGameTick()
+ if game_lost then
+ return
+ end
+ -- after a target is destroyed, show hog, then target
+ if (target ~= nil) and (TurnTimeLeft + 1300 < last_hit_time) then
+ -- move camera to the target
+ FollowGear(target)
+ elseif TurnTimeLeft + 300 < last_hit_time then
+ -- move camera to the hog
+ FollowGear(player)
+ end
+ -- If time's up, set the game to be lost.
+ -- We actually check the time to be "1 ms" as it
+ -- will be at "0 ms" right at the start of the game.
+ if TurnTimeLeft == 1 and score < score_goal then
+ game_lost = true
+ -- ... and show a short message.
+ ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
+ -- How about killing our poor hog due to his poor performance?
+ SetHealth(player, 0)
+ -- Just to be sure set the goal time to 1 ms
+ time_goal = 1
+ end
+ -- If the goal is reached or we've lost ...
+ if score == score_goal or game_lost then
+ -- ... check to see if the time we'd like to
+ -- wait has passed and then ...
+ if end_timer == 0 then
+ -- ... end the game ...
+ EndGame()
+ else
+ -- ... or just lower the timer by 1.
+ end_timer = end_timer - 1
+ -- Reset the time left to stop the timer
+ TurnTimeLeft = time_goal
+ end
+ end
+end
+
+-- This function is called when the game is initialized
+-- to request the available ammo and probabilities
+function onAmmoStoreInit()
+ -- add an unlimited supply of shotgun ammo
+ SetAmmo(amSniperRifle, 9, 0, 0, 0)
+end
+
+-- This function is called when a new gear is added.
+-- We don't need it for this training, so we can
+-- keep it empty.
+function onGearAdd(gear)
+end
+
+-- This function is called before a gear is destroyed.
+-- We use it to count the number of targets destroyed.
+function onGearDelete(gear)
+
+ if GetGearType(gear) == gtCase then
+ game_lost = true
+ return
+ end
+
+ if (GetGearType(gear) == gtTarget) then
+ -- remember when the target was hit for adjusting the camera
+ last_hit_time = TurnTimeLeft
+ -- Add one point to our score/counter
+ score = score + 1
+ -- If we haven't reached the goal ...
+ if score < score_goal then
+ -- ... spawn another target.
+ if score == 1 then
+ spawnTarget(1520,1350)
+ elseif score == 2 then
+ spawnTarget(1730,1040)
+ elseif score == 3 then
+ spawnTarget(2080,780)
+ elseif score == 4 then
+ blowUp(1730,1226)
+ blowUp(1440,1595)
+ blowUp(1527,1575)
+ blowUp(1614,1595)
+ blowUp(1420,1675)
+ blowUp(1527,1675)
+ blowUp(1634,1675)
+ blowUp(1440,1755)
+ blowUp(1527,1775)
+ blowUp(1614,1755)
+ spawnTarget(1527,1667)
+ elseif score == 5 then
+ spawnTarget(1527,1667)
+ elseif score == 6 then
+ spawnTarget(2175,1300)
+ elseif score == 7 then
+ spawnTarget(2250,940)
+ elseif score == 8 then
+ spawnTarget(2665,1540)
+ elseif score == 9 then
+ spawnTarget(3040,1160)
+ elseif score == 10 then
+ spawnTarget(2930,1500)
+ elseif score == 11 then
+ spawnTarget(700,720)
+ elseif score == 12 then
+ blowUp(914,1222)
+ blowUp(1050,1222)
+ blowUp(1160,1008)
+ blowUp(1160,1093)
+ blowUp(1160,1188)
+ blowUp(375,911)
+ blowUp(510,911)
+ blowUp(640,911)
+ blowUp(780,911)
+ blowUp(920,911)
+ blowUp(1060,913)
+ blowUp(1198,913)
+ spawnTarget(1200,730)
+ elseif score == 13 then
+ spawnTarget(1200,830)
+ elseif score == 14 then
+ spawnTarget(1430,450)
+ elseif score == 15 then
+ spawnTarget(796,240)
+ elseif score == 16 then
+ spawnTarget(300,10)
+ elseif score == 17 then
+ spawnTarget(2080,820)
+ elseif score == 18 then
+ blowUp(2110,920)
+ blowUp(2210,920)
+ blowUp(2200,305)
+ blowUp(2300,305)
+ blowUp(2300,400)
+ blowUp(2300,500)
+ blowUp(2300,600)
+ blowUp(2300,700)
+ blowUp(2300,800)
+ blowUp(2300,900)
+ blowUp(2401,305)
+ blowUp(2532,305)
+ blowUp(2663,305)
+ spawnTarget(2300,760)
+ elseif score == 19 then
+ spawnTarget(2300,760)
+ elseif score == 20 then
+ spawnTarget(2738,190)
+ elseif score == 21 then
+ spawnTarget(2590,-100)
+ elseif score == 22 then
+ blowUp(2790,305)
+ blowUp(2930,305)
+ blowUp(3060,305)
+ blowUp(3190,305)
+ blowUp(3310,305)
+ blowUp(3393,613)
+ blowUp(2805,370)
+ blowUp(2805,500)
+ blowUp(2805,630)
+ blowUp(2805,760)
+ blowUp(2805,890)
+ blowUp(2700,890)
+ blowUp(3258,370)
+ blowUp(3258,475)
+ blowUp(3264,575)
+ spawnTarget(3230,240)
+ elseif score == 23 then
+ spawnTarget(3230,290)
+ elseif score == 24 then
+ spawnTarget(3670,250)
+ elseif score == 25 then
+ spawnTarget(2620,-100)
+ elseif score == 26 then
+ spawnTarget(2870,300)
+ elseif score == 27 then
+ spawnTarget(3850,900)
+ elseif score == 28 then
+ spawnTarget(3780,300)
+ elseif score == 29 then
+ spawnTarget(3670,0)
+ elseif score == 30 then
+ spawnTarget(3480,1200)
+ end
+ else
+ if not game_lost then
+ -- Otherwise show that the goal was accomplished
+ ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
+ -- Also let the hogs shout "victory!"
+ PlaySound(sndVictory)
+ -- Save the time left so we may keep it.
+ time_goal = TurnTimeLeft
+ end
+ end
+ end
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Bazooka.lua
--- a/share/hedgewars/Data/Missions/Training/Bazooka.lua Thu Dec 23 21:45:50 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
--- Hedgewars Bazooka Training
--- Scripting Example
-
--- Lines such as this one are comments - they are ignored
--- by the game, no matter what kind of text is in there.
--- It's also possible to place a comment after some real
--- instruction as you see below. In short, everything
--- following "--" is ignored.
-
----------------------------------------------------------------
--- At first we implement the localization library using loadfile.
--- This allows us to localize strings without needing to think
--- about translations.
--- We can use the function loc(text) to localize a string.
-
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
-
--- This variable will hold the number of destroyed targets.
-local score = 0
--- This variable represents the number of targets to destroy.
-local score_goal = 5
--- This variable controls how many milliseconds/ticks we'd
--- like to wait before we end the round once all targets
--- have been destroyed.
-local end_timer = 5000 -- 5000 ms = 5 s
--- This variable is set to true if the game is lost (i.e.
--- time runs out).
-local game_lost = false
--- This variable will point to the hog's gear
-local player = nil
--- This variable will grab the time left at the end of the round
-local time_goal = 0
-
--- This is a custom function to make it easier to
--- spawn more targets with just one line of code
--- You may define as many custom functions as you
--- like.
-function spawnTarget()
- -- add a new target gear
- gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
-
- -- move it to a random position within 0 and
- -- LAND_WIDTH - the width of the map
- FindPlace(gear, true, 0, LAND_WIDTH)
-
- -- move the target to a higher vertical position
- -- to ensure it's not somewhere down below
- x, y = GetGearPosition(gear)
- SetGearPosition(gear, x, 500)
-end
-
--- This function is called before the game loads its
--- resources.
--- It's one of the predefined function names that will
--- be called by the game. They give you entry points
--- where you're able to call your own code using either
--- provided instructions or custom functions.
-function onGameInit()
- -- At first we have to overwrite/set some global variables
- -- that define the map, the game has to load, as well as
- -- other things such as the game rules to use, etc.
- -- Things we don't modify here will use their default values.
-
- -- The base number for the random number generator
- Seed = 0
- -- Game settings and rules
- GameFlags = gfMultiWeapon + gfOneClanMode + gfSolidLand
- -- The time the player has to move each round (in ms)
- TurnTime = 60000
- -- The frequency of crate drops
- CaseFreq = 0
- -- The number of mines being placed
- MinesNum = 0
- -- The number of explosives being placed
- Explosives = 0
- -- The delay between each round
- Delay = 0
- -- The map to be played
- Map = "Bamboo"
- -- The theme to be used
- Theme = "Bamboo"
-
- -- Create the player team
- AddTeam(loc("'Zooka Team"), 14483456, "Simple", "Island", "Default")
- -- And add a hog to it
- player = AddHog(loc("Hunter"), 0, 1, "NoHat")
- SetGearPosition(player, 1960, 1160)
-end
-
--- This function is called when the round starts
--- it spawns the first target that has to be destroyed.
--- In addition it shows the scenario goal(s).
-function onGameStart()
- -- Spawn the first target.
- spawnTarget()
-
- -- Show some nice mission goals.
- -- Parameters are: caption, sub caption, description,
- -- extra text, icon and time to show.
- -- A negative icon parameter (-n) represents the n-th weapon icon
- -- A positive icon paramter (n) represents the (n+1)-th mission icon
- -- A timeframe of 0 is replaced with the default time to show.
- ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amBazooka, 0)
-end
-
--- This function is called every game tick.
--- Note that there are 1000 ticks within one second.
--- You shouldn't try to calculate too complicated
--- code here as this might slow down your game.
-function onGameTick()
- -- If time's up, set the game to be lost.
- -- We actually check the time to be "1 ms" as it
- -- will be at "0 ms" right at the start of the game.
- if TurnTimeLeft == 1 and score < score_goal then
- game_lost = true
- -- ... and show a short message.
- ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
- -- How about killing our poor hog due to his poor performance?
- SetHealth(player, 0)
- -- Just to be sure set the goal time to 1 ms
- time_goal = 1
- end
- -- If the goal is reached or we've lost ...
- if score == score_goal or game_lost then
- -- ... check to see if the time we'd like to
- -- wait has passed and then ...
- if end_timer == 0 then
- -- ... end the game ...
- EndGame()
- else
- -- ... or just lower the timer by 1.
- end_timer = end_timer - 1
- -- Reset the time left to stop the timer
- TurnTimeLeft = time_goal
- end
- end
-end
-
--- This function is called when the game is initialized
--- to request the available ammo and probabilities
-function onAmmoStoreInit()
- -- add an unlimited supply of bazooka ammo
- SetAmmo(amBazooka, 9, 0, 0, 0)
-end
-
--- This function is called when a new gear is added.
--- We don't need it for this training, so we can
--- keep it empty.
-function onGearAdd(gear)
-end
-
--- This function is called before a gear is destroyed.
--- We use it to count the number of targets destroyed.
-function onGearDelete(gear)
- -- We're only interested in target gears.
- if GetGearType(gear) == gtTarget then
- -- Add one point to our score/counter
- score = score + 1
- -- If we haven't reached the goal ...
- if score < score_goal then
- -- ... spawn another target.
- spawnTarget()
- else
- if not game_lost then
- -- Otherwise show that the goal was accomplished
- ShowMission(loc("Bazooka Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
- -- Also let the hogs shout "victory!"
- PlaySound(sndVictory)
- -- Save the time left so we may keep it.
- time_goal = TurnTimeLeft
- end
- end
- end
-end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Shotgun.lua
--- a/share/hedgewars/Data/Missions/Training/Shotgun.lua Thu Dec 23 21:45:50 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
--- Hedgewars Shotgun Training
--- Scripting Example
-
--- Lines such as this one are comments - they are ignored
--- by the game, no matter what kind of text is in there.
--- It's also possible to place a comment after some real
--- instruction as you see below. In short, everything
--- following "--" is ignored.
-
----------------------------------------------------------------
--- At first we implement the localization library using loadfile.
--- This allows us to localize strings without needing to think
--- about translations.
--- We can use the function loc(text) to localize a string.
-
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
-
--- This variable will hold the number of destroyed targets.
-local score = 0
--- This variable represents the number of targets to destroy.
-local score_goal = 5
--- This variable controls how many milliseconds/ticks we'd
--- like to wait before we end the round once all targets
--- have been destroyed.
-local end_timer = 5000 -- 5000 ms = 5 s
--- This variable is set to true if the game is lost (i.e.
--- time runs out).
-local game_lost = false
--- This variable will point to the hog's gear
-local player = nil
--- This variable will grab the time left at the end of the round
-local time_goal = 0
-
--- This is a custom function to make it easier to
--- spawn more targets with just one line of code
--- You may define as many custom functions as you
--- like.
-function spawnTarget()
- -- add a new target gear
- gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
-
- -- move it to a random position within 0 and
- -- LAND_WIDTH - the width of the map
- FindPlace(gear, true, 0, LAND_WIDTH)
-
- -- move the target to a higher vertical position
- -- to ensure it's not somewhere down below
- x, y = GetGearPosition(gear)
- SetGearPosition(gear, x, 500)
-end
-
--- This function is called before the game loads its
--- resources.
--- It's one of the predefined function names that will
--- be called by the game. They give you entry points
--- where you're able to call your own code using either
--- provided instructions or custom functions.
-function onGameInit()
- -- At first we have to overwrite/set some global variables
- -- that define the map, the game has to load, as well as
- -- other things such as the game rules to use, etc.
- -- Things we don't modify here will use their default values.
-
- -- The base number for the random number generator
- Seed = 0
- -- Game settings and rules
- GameFlags = gfMultiWeapon + gfOneClanMode
- -- The time the player has to move each round (in ms)
- TurnTime = 25000
- -- The frequency of crate drops
- CaseFreq = 0
- -- The number of mines being placed
- MinesNum = 0
- -- The number of explosives being placed
- Explosives = 0
- -- The delay between each round
- Delay = 0
- -- The map to be played
- Map = "Mushrooms"
- -- The theme to be used
- Theme = "Nature"
-
- -- Create the player team
- AddTeam(loc("Shotgun Team"), 14483456, "Simple", "Island", "Default")
- -- And add a hog to it
- player = AddHog(loc("Hunter"), 0, 1, "NoHat")
- SetGearPosition(player, 2334, 1254)
-end
-
--- This function is called when the round starts
--- it spawns the first target that has to be destroyed.
--- In addition it shows the scenario goal(s).
-function onGameStart()
- -- Spawn the first target.
- spawnTarget()
-
- -- Show some nice mission goals.
- -- Parameters are: caption, sub caption, description,
- -- extra text, icon and time to show.
- -- A negative icon parameter (-n) represents the n-th weapon icon
- -- A positive icon paramter (n) represents the (n+1)-th mission icon
- -- A timeframe of 0 is replaced with the default time to show.
- ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amShotgun, 0)
-end
-
--- This function is called every game tick.
--- Note that there are 1000 ticks within one second.
--- You shouldn't try to calculate too complicated
--- code here as this might slow down your game.
-function onGameTick()
- -- If time's up, set the game to be lost.
- -- We actually check the time to be "1 ms" as it
- -- will be at "0 ms" right at the start of the game.
- if TurnTimeLeft == 1 and score < score_goal then
- game_lost = true
- -- ... and show a short message.
- ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
- -- How about killing our poor hog due to his poor performance?
- SetHealth(player, 0)
- -- Just to be sure set the goal time to 1 ms
- time_goal = 1
- end
- -- If the goal is reached or we've lost ...
- if score == score_goal or game_lost then
- -- ... check to see if the time we'd like to
- -- wait has passed and then ...
- if end_timer == 0 then
- -- ... end the game ...
- EndGame()
- else
- -- ... or just lower the timer by 1.
- end_timer = end_timer - 1
- -- Reset the time left to stop the timer
- TurnTimeLeft = time_goal
- end
- end
-end
-
--- This function is called when the game is initialized
--- to request the available ammo and probabilities
-function onAmmoStoreInit()
- -- add an unlimited supply of shotgun ammo
- SetAmmo(amShotgun, 9, 0, 0, 0)
-end
-
--- This function is called when a new gear is added.
--- We don't need it for this training, so we can
--- keep it empty.
-function onGearAdd(gear)
-end
-
--- This function is called before a gear is destroyed.
--- We use it to count the number of targets destroyed.
-function onGearDelete(gear)
- -- We're only interested in target gears.
- if GetGearType(gear) == gtTarget then
- -- Add one point to our score/counter
- score = score + 1
- -- If we haven't reached the goal ...
- if score < score_goal then
- -- ... spawn another target.
- spawnTarget()
- else
- if not game_lost then
- -- Otherwise show that the goal was accomplished
- ShowMission(loc("Shotgun Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
- -- Also let the hogs shout "victory!"
- PlaySound(sndVictory)
- -- Save the time left so we may keep it.
- time_goal = TurnTimeLeft
- end
- end
- end
-end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua
--- a/share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua Thu Dec 23 21:45:50 2010 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
--- Hedgewars SniperRifle Training
--- Scripting Example
-
--- Lines such as this one are comments - they are ignored
--- by the game, no matter what kind of text is in there.
--- It's also possible to place a comment after some real
--- instruction as you see below. In short, everything
--- following "--" is ignored.
-
----------------------------------------------------------------
--- At first we implement the localization library using loadfile.
--- This allows us to localize strings without needing to think
--- about translations.
--- We can use the function loc(text) to localize a string.
-
-loadfile(GetDataPath() .. "Scripts/Locale.lua")()
-
--- This variable will hold the number of destroyed targets.
-local score = 0
--- This variable represents the number of targets to destroy.
-local score_goal = 31
--- This variable controls how many milliseconds/ticks we'd
--- like to wait before we end the round once all targets
--- have been destroyed.
-local end_timer = 5000 -- 5000 ms = 5 s
--- This variable is set to true if the game is lost (i.e.
--- time runs out).
-local game_lost = false
--- This variable will point to the hog's gear
-local player = nil
--- This variable will grab the time left at the end of the round
-local time_goal = 0
-
-local target = nil
-
-local last_hit_time = 0
--- This is a custom function to make it easier to
--- spawn more targets with just one line of code
--- You may define as many custom functions as you
--- like.
-function spawnTarget(x, y)
- -- add a new target gear
- target = AddGear(x, y, gtTarget, 0, 0, 0, 0)
- -- have the camera move to the target so the player knows where it is
- FollowGear(target)
-end
-
-function blowUp(x, y)
- -- adds some TNT
- gear = AddGear(x, y, gtDynamite, 0, 0, 0, 0)
-end
-
--- This function is called before the game loads its
--- resources.
--- It's one of the predefined function names that will
--- be called by the game. They give you entry points
--- where you're able to call your own code using either
--- provided instructions or custom functions.
-function onGameInit()
- -- At first we have to overwrite/set some global variables
- -- that define the map, the game has to load, as well as
- -- other things such as the game rules to use, etc.
- -- Things we don't modify here will use their default values.
-
- -- The base number for the random number generator
- Seed = 0
- -- Game settings and rules
- GameFlags = gfMultiWeapon + gfOneClanMode + gfArtillery
- -- The time the player has to move each round (in ms)
- TurnTime = 150000
- -- The frequency of crate drops
- CaseFreq = 0
- -- The number of mines being placed
- MinesNum = 0
- -- The number of explosives being placed
- Explosives = 0
- -- The delay between each round
- Delay = 0
- -- The map to be played
- Map = "Ropes"
- -- The theme to be used
- Theme = "City"
-
- -- Create the player team
- AddTeam(loc("Sniperz"), 14483456, "Simple", "Island", "Default")
- -- And add a hog to it
- player = AddHog(loc("Hunter"), 0, 1, "Sniper")
- SetGearPosition(player, 602, 1465)
-end
-
--- This function is called when the round starts
--- it spawns the first target that has to be destroyed.
--- In addition it shows the scenario goal(s).
-function onGameStart()
- -- Spawn the first target.
- spawnTarget(860,1020)
-
- -- Show some nice mission goals.
- -- Parameters are: caption, sub caption, description,
- -- extra text, icon and time to show.
- -- A negative icon parameter (-n) represents the n-th weapon icon
- -- A positive icon paramter (n) represents the (n+1)-th mission icon
- -- A timeframe of 0 is replaced with the default time to show.
- ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Eliminate all targets before your time runs out.|You have unlimited ammo for this mission."), -amSniperRifle, 0)
-end
-
--- This function is called every game tick.
--- Note that there are 1000 ticks within one second.
--- You shouldn't try to calculate too complicated
--- code here as this might slow down your game.
-function onGameTick()
- if game_lost then
- return
- end
- -- after a target is destroyed, show hog, then target
- if (target ~= nil) and (TurnTimeLeft + 1300 < last_hit_time) then
- -- move camera to the target
- FollowGear(target)
- elseif TurnTimeLeft + 300 < last_hit_time then
- -- move camera to the hog
- FollowGear(player)
- end
- -- If time's up, set the game to be lost.
- -- We actually check the time to be "1 ms" as it
- -- will be at "0 ms" right at the start of the game.
- if TurnTimeLeft == 1 and score < score_goal then
- game_lost = true
- -- ... and show a short message.
- ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Oh no! Time's up! Just try again."), -amSkip, 0)
- -- How about killing our poor hog due to his poor performance?
- SetHealth(player, 0)
- -- Just to be sure set the goal time to 1 ms
- time_goal = 1
- end
- -- If the goal is reached or we've lost ...
- if score == score_goal or game_lost then
- -- ... check to see if the time we'd like to
- -- wait has passed and then ...
- if end_timer == 0 then
- -- ... end the game ...
- EndGame()
- else
- -- ... or just lower the timer by 1.
- end_timer = end_timer - 1
- -- Reset the time left to stop the timer
- TurnTimeLeft = time_goal
- end
- end
-end
-
--- This function is called when the game is initialized
--- to request the available ammo and probabilities
-function onAmmoStoreInit()
- -- add an unlimited supply of shotgun ammo
- SetAmmo(amSniperRifle, 9, 0, 0, 0)
-end
-
--- This function is called when a new gear is added.
--- We don't need it for this training, so we can
--- keep it empty.
-function onGearAdd(gear)
-end
-
--- This function is called before a gear is destroyed.
--- We use it to count the number of targets destroyed.
-function onGearDelete(gear)
-
- if GetGearType(gear) == gtCase then
- game_lost = true
- return
- end
-
- if (GetGearType(gear) == gtTarget) then
- -- remember when the target was hit for adjusting the camera
- last_hit_time = TurnTimeLeft
- -- Add one point to our score/counter
- score = score + 1
- -- If we haven't reached the goal ...
- if score < score_goal then
- -- ... spawn another target.
- if score == 1 then
- spawnTarget(1520,1350)
- elseif score == 2 then
- spawnTarget(1730,1040)
- elseif score == 3 then
- spawnTarget(2080,780)
- elseif score == 4 then
- blowUp(1730,1226)
- blowUp(1440,1595)
- blowUp(1527,1575)
- blowUp(1614,1595)
- blowUp(1420,1675)
- blowUp(1527,1675)
- blowUp(1634,1675)
- blowUp(1440,1755)
- blowUp(1527,1775)
- blowUp(1614,1755)
- spawnTarget(1527,1667)
- elseif score == 5 then
- spawnTarget(1527,1667)
- elseif score == 6 then
- spawnTarget(2175,1300)
- elseif score == 7 then
- spawnTarget(2250,940)
- elseif score == 8 then
- spawnTarget(2665,1540)
- elseif score == 9 then
- spawnTarget(3040,1160)
- elseif score == 10 then
- spawnTarget(2930,1500)
- elseif score == 11 then
- spawnTarget(700,720)
- elseif score == 12 then
- blowUp(914,1222)
- blowUp(1050,1222)
- blowUp(1160,1008)
- blowUp(1160,1093)
- blowUp(1160,1188)
- blowUp(375,911)
- blowUp(510,911)
- blowUp(640,911)
- blowUp(780,911)
- blowUp(920,911)
- blowUp(1060,913)
- blowUp(1198,913)
- spawnTarget(1200,730)
- elseif score == 13 then
- spawnTarget(1200,830)
- elseif score == 14 then
- spawnTarget(1430,450)
- elseif score == 15 then
- spawnTarget(796,240)
- elseif score == 16 then
- spawnTarget(300,10)
- elseif score == 17 then
- spawnTarget(2080,820)
- elseif score == 18 then
- blowUp(2110,920)
- blowUp(2210,920)
- blowUp(2200,305)
- blowUp(2300,305)
- blowUp(2300,400)
- blowUp(2300,500)
- blowUp(2300,600)
- blowUp(2300,700)
- blowUp(2300,800)
- blowUp(2300,900)
- blowUp(2401,305)
- blowUp(2532,305)
- blowUp(2663,305)
- spawnTarget(2300,760)
- elseif score == 19 then
- spawnTarget(2300,760)
- elseif score == 20 then
- spawnTarget(2738,190)
- elseif score == 21 then
- spawnTarget(2590,-100)
- elseif score == 22 then
- blowUp(2790,305)
- blowUp(2930,305)
- blowUp(3060,305)
- blowUp(3190,305)
- blowUp(3310,305)
- blowUp(3393,613)
- blowUp(2805,370)
- blowUp(2805,500)
- blowUp(2805,630)
- blowUp(2805,760)
- blowUp(2805,890)
- blowUp(2700,890)
- blowUp(3258,370)
- blowUp(3258,475)
- blowUp(3264,575)
- spawnTarget(3230,240)
- elseif score == 23 then
- spawnTarget(3230,290)
- elseif score == 24 then
- spawnTarget(3670,250)
- elseif score == 25 then
- spawnTarget(2620,-100)
- elseif score == 26 then
- spawnTarget(2870,300)
- elseif score == 27 then
- spawnTarget(3850,900)
- elseif score == 28 then
- spawnTarget(3780,300)
- elseif score == 29 then
- spawnTarget(3670,0)
- elseif score == 30 then
- spawnTarget(3480,1200)
- end
- else
- if not game_lost then
- -- Otherwise show that the goal was accomplished
- ShowMission(loc("Sniper Training"), loc("Aiming Practice"), loc("Congratulations! You've eliminated all targets|within the allowed time frame."), 0, 0)
- -- Also let the hogs shout "victory!"
- PlaySound(sndVictory)
- -- Save the time left so we may keep it.
- time_goal = TurnTimeLeft
- end
- end
- end
-end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,158 @@
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+
+local player = nil -- This variable will point to the hog's gear
+local instructor = nil
+local enemy = nil
+--local givenSpeech = false
+
+local speechStage = 0
+
+local gameLost = false
+local gameWon = false
+local notListening = false
+
+local endTimer = 0
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+
+ Seed = 0 -- The base number for the random number generator
+ GameFlags = gfInfAttack -- Game settings and rules
+ TurnTime = 60000 -- The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 0 -- The delay between each round
+ Map = "Bath" -- The map to be played
+ Theme = "Bath" -- The theme to be used
+
+
+ AddTeam(loc("Bloody Rookies"), 14483456, "Simple", "Island", "Default")
+ player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+
+ --AddTeam("Instructors", 14483456, "Simple", "Island", "Default")
+ instructor = AddHog(loc("Instructor"), 1, 1, "Vega")
+
+ AddTeam("Blue Team", 29439, "Simple", "Island", "Default")
+ enemy = AddHog("Filthy Blue", 1, 100, "Skull")
+
+ SetGearPosition(player, 1170, 1926)
+ SetGearPosition(instructor, 1341, 1926)
+ SetGearPosition(enemy, 2942, 1861)
+
+
+ HogSay(player, ".............................", SAY_THINK)
+ HogTurnLeft(instructor, true)
+
+
+end
+
+
+function onGameStart()
+
+ SpawnAmmoCrate(1499,1500,amRope)
+ SpawnAmmoCrate(2753,1500,amFirePunch)
+
+ FollowGear(player)
+
+ --spawnTarget()
+
+ -- Show some nice mission goals.
+ -- Parameters are: caption, sub caption, description,
+ -- extra text, icon and time to show.
+ -- A negative icon parameter (-n) represents the n-th weapon icon
+ -- A positive icon paramter (n) represents the (n+1)-th mission icon
+ -- A timeframe of 0 is replaced with the default time to show.
+ ShowMission(loc("Dangerous Ducklings"), loc("by mikade"), loc("Eliminate the Blue Team"), -amRope, 1);
+
+end
+
+
+function onGameTick()
+
+
+ -- opening speech
+ if (notListening == false) and (gameLost == false) then
+
+ if (TurnTimeLeft == 58000) and (speechStage == 0) then
+ HogSay(instructor, loc("Listen up, maggot!!"), SAY_SHOUT)
+ speechStage = 1
+ elseif (TurnTimeLeft == 57000) and (speechStage == 1) then
+ HogSay(player,loc("!!!"),SAY_SHOUT)
+ elseif (TurnTimeLeft == 55000) and (speechStage == 1) then
+ HogSay(instructor, loc("The enemy is hiding out on yonder ducky!"), SAY_SAY)
+ speechStage = 2
+
+ elseif (TurnTimeLeft == 49000) and (speechStage == 2) then
+ FollowGear(enemy)
+ elseif (TurnTimeLeft == 46500) and (speechStage == 2) then
+ FollowGear(instructor)
+ HogSay(instructor, loc("Get on over there and take him out!"), SAY_SAY)
+ speechStage = 3
+ elseif (TurnTimeLeft == 43500) and (speechStage == 3) then
+ HogSay(instructor, loc("GO! GO! GO!"), SAY_SHOUT)
+ speechStage = 4
+ givenSpeech = true
+ end
+
+ end
+
+
+ -- if player falls in water or if player ignores speech
+ if (CurrentHedgehog ~= nil) and (CurrentHedgehog == player) then
+ if (GetY(player) > 2060) and (gameLost == false) then
+ HogSay(instructor, loc("DAMMIT, ROOKIE!"), SAY_SHOUT)
+ gameLost = true
+ end
+
+ if (GetX(player) > 1324) and (GetY(player) > 1908) and (notListening == false) and (speechStage < 3) then
+ HogSay(instructor, loc("DAMMIT, ROOKIE! GET OFF MY HEAD!"), SAY_SHOUT)
+ notListening = true
+ end
+
+ end
+
+ --player out of time
+ if (TurnTimeLeft == 1) and (gameWon == false) then
+ SetHealth(player, 0)
+ end
+
+ -- meh
+ if gameLost == true then
+ endTimer = endTimer + 1
+ if (CurrentHedgehog ~= nil) and (CurrentHedgehog == instructor) then
+ if endTimer >= 3000 then
+ SetHealth(instructor,0)
+ TurnTimeLeft = 0
+ end
+ ShowMission(loc("MISSION FAILED"), loc(":("), loc("You've failed. Try again."), -amRope, 1);
+ end
+ end
+
+end
+
+
+function onAmmoStoreInit()
+ SetAmmo(amFirePunch, 0, 0, 0, 1)
+ SetAmmo(amParachute, 1, 0, 0, 0)
+ SetAmmo(amRope, 0, 0, 0, 1)
+end
+
+function onGearDelete(gear)
+ if GetGearType(gear) == gtHedgehog then
+ if gear == player then
+ gameLost = true
+ elseif gear == instructor then
+ HogSay(player, loc("See ya!"), SAY_THINK)
+ TurnTimeLeft = 3000
+ elseif gear == enemy then
+ HogSay(player, loc("Enjoy the swim..."), SAY_THINK)
+ gameWon = true
+ TurnTimeLeft = 3000
+ end
+
+ end
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,96 @@
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+local player = nil -- This variable will point to the hog's gear
+local enemy = nil
+
+local GameOver = false
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+
+ Seed = 0 -- The base number for the random number generator
+ GameFlags = gfInfAttack + gfDisableWind-- Game settings and rules
+ TurnTime = 90000 -- The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ MinesTime = 1000
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 10 -- The delay between each round
+ Map = "Hydrant" -- The map to be played
+ Theme = "City" -- The theme to be used
+
+ AddTeam(loc("Bloody Rookies"), 14483456, "Simple", "Island", "Default")
+ player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+
+ AddTeam(loc("Toxic Team"), 1175851, "Simple", "Island", "Default")
+ enemy = AddHog(loc("Poison"), 1, 100, "Skull")
+
+ SetGearPosition(player, 1454, 1540)
+ SetGearPosition(enemy, 2488, 1960)
+
+end
+
+
+function onGameStart()
+
+
+ SpawnAmmoCrate(1450,1910,amJetpack)
+ SpawnAmmoCrate(2568,1714,amFirePunch)
+ SpawnAmmoCrate(1974,1875,amBlowTorch)
+ SpawnAmmoCrate(2056,1877,amParachute)
+
+ AddGear(1603, 1320, gtMine, 0, 0, 0, 0)
+
+ ShowMission(loc("Operation Diver"), loc("by mikade"), loc("Eliminate Poison before the time runs out") .. loc("|- Mines Time:") .. " " .. 1 .. " " .. loc("sec"), -amFirePunch, 0);
+ --SetTag(AddGear(0, 0, gtATSmoothWindCh, 0, 0, 0, 1), -70)
+
+ SetWind(-100)
+
+end
+
+
+function onGameTick()
+
+
+ if (TotalRounds == 3) and (GameOver == false) then
+ SetHealth(player, 0)
+ GameOver = true
+ end
+
+ if TurnTimeLeft == 1 then
+ SetHealth(player, 0)
+ GameOver = true
+ end
+
+end
+
+
+function onAmmoStoreInit()
+ SetAmmo(amFirePunch, 1, 0, 0, 1)
+ SetAmmo(amBlowTorch, 0, 0, 0, 1)
+ SetAmmo(amGirder, 1, 0, 0, 0)
+ SetAmmo(amParachute, 0, 0, 0, 1)
+ SetAmmo(amJetpack, 0, 0, 0, 1)
+end
+
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtJetpack then
+ SetHealth(gear,1000)
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if (gear == enemy) and (GameOver == false) then
+ ShowMission(loc("Operation Diver"), loc("MISSION SUCCESS"), loc("Congratulations!"), 0, 0)
+ elseif gear == player then
+ ShowMission(loc("Operation Diver"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
+ GameOver = true
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,152 @@
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+---------------------------------------------------------------
+
+local player = nil -- This variable will point to the hog's gear
+local instructor = nil
+local enemy = nil
+
+local GameOver = false
+local birdSpeech = false
+local birdSqualk = false
+
+local GirderCrate = nil
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+ Seed = 0 -- The base number for the random number generator
+ GameFlags = gfInfAttack +gfDisableWind-- Game settings and rules
+ TurnTime = 90000 -- The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ MinesTime = 1
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 10 -- The delay between each round
+ Map = "Tree" -- The map to be played
+ Theme = "Halloween" -- The theme to be used
+
+ AddTeam(loc("Bloody Rookies"), 14483456, "Simple", "Island", "Default")
+ player = AddHog(loc("Hunter"), 0, 1, "NoHat")
+ --852718
+ AddTeam(loc("Toxic Team"), 1175851, "Simple", "Island", "Default")
+ enemy = AddHog(loc("Poison"), 1, 10, "Skull")
+
+ SetGearPosition(player, 1994, 1047)
+ SetGearPosition(enemy, 1522, 1830)
+
+end
+
+
+function onGameStart()
+
+ --right side mines
+ AddGear(2705, 1383, gtMine, 0, 0, 0, 0)
+ AddGear(2742, 1542, gtMine, 0, 0, 0, 0)
+ AddGear(2672, 1551, gtMine, 0, 0, 0, 0)
+ AddGear(2608, 1546, gtMine, 0, 0, 0, 0)
+
+ --tunnel mines
+ AddGear(1325, 1593, gtSMine, 0, 0, 0, 0)
+ AddGear(1396, 1632, gtSMine, 0, 0, 0, 0)
+ AddGear(1477, 1652, gtSMine, 0, 0, 0, 0)
+ AddGear(1548, 1635, gtSMine, 0, 0, 0, 0)
+ AddGear(1637, 1635, gtSMine, 0, 0, 0, 0)
+
+ AddGear(1332, 1510, gtSMine, 0, 0, 0, 0)
+ AddGear(1396, 1502, gtSMine, 0, 0, 0, 0)
+ AddGear(1477, 1490, gtSMine, 0, 0, 0, 0)
+ AddGear(1548, 1495, gtSMine, 0, 0, 0, 0)
+ AddGear(1637, 1490, gtSMine, 0, 0, 0, 0)
+
+ --above the tunnel mines
+ AddGear(1355, 1457, gtMine, 0, 0, 0, 0)
+ AddGear(1428, 1444, gtMine, 0, 0, 0, 0)
+ AddGear(1508, 1448, gtMine, 0, 0, 0, 0)
+ AddGear(1586, 1441, gtMine, 0, 0, 0, 0)
+ AddGear(1664, 1436, gtMine, 0, 0, 0, 0)
+
+ -- crates crates and more crates
+ SpawnAmmoCrate(2232,1600,amBlowTorch)
+ SpawnAmmoCrate(2491,1400,amPickHammer)
+ SpawnUtilityCrate(1397,1189,amGirder)
+ SpawnUtilityCrate(1728,1647,amJetpack)
+ SpawnUtilityCrate(2670,1773,amLaserSight)
+
+ SpawnAmmoCrate(1769,1442,amShotgun) --shotgun1
+ SpawnAmmoCrate(1857,1456,amFirePunch) --fire punch
+ GirderCrate = SpawnAmmoCrate(2813,1538,amShotgun) -- final shotgun
+ SpawnAmmoCrate(2205,1443,amBee)
+
+ ShowMission(loc("Spooky Tree"), loc("by mikade"), loc("Eliminate all enemies") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), -amBee, 0)
+
+ SetWind(-75)
+
+end
+
+
+function onGameTick()
+
+
+ if CurrentHedgehog ~= nil then
+
+ if (birdSqualk == false) and (GetX(CurrentHedgehog) == 2126) and (GetY(CurrentHedgehog) == 1157) then
+ birdSqualk = true
+ PlaySound(sndBirdyLay)
+ end
+
+ if (birdSpeech == false) and (GetX(CurrentHedgehog) == 2092) and (GetY(CurrentHedgehog) == 1186) then
+ birdSpeech = true
+ HogSay(player,loc("Good birdy......"),SAY_THINK)
+ end
+ end
+
+ if CurrentHedgehog ~= nil then
+ --AddCaption(GetX(CurrentHedgehog) .. ";" .. GetY(CurrentHedgehog))
+ end
+
+ if (TotalRounds == 2) and (GameOver == false) then -- just in case
+ SetHealth(player, 0)
+ GameOver = true
+ end
+
+ if TurnTimeLeft == 1 then
+ --ShowMission(loc(caption), loc(subcaption), loc(timeout), -amSkip, 0);
+ SetHealth(player, 0)
+ GameOver = true
+ end
+
+end
+
+
+function onAmmoStoreInit()
+ SetAmmo(amShotgun, 0, 0, 0, 1)
+ SetAmmo(amFirePunch, 0, 0, 0, 1)
+ SetAmmo(amBee, 0, 0, 0, 1)
+ SetAmmo(amBlowTorch, 0, 0, 0, 1)
+ SetAmmo(amGirder, 0, 0, 0, 1)
+ SetAmmo(amParachute, 1, 0, 0, 1)
+ SetAmmo(amPickHammer, 0, 0, 0, 1)
+ SetAmmo(amJetpack, 0, 0, 0, 1)
+ SetAmmo(amLaserSight, 0, 0, 0, 1)
+end
+
+function onGearDelete(gear)
+
+ if gear == GirderCrate then
+ TurnTimeLeft = TurnTimeLeft + 30000
+ end
+
+ if GetGearType(gear) == gtCase then
+ TurnTimeLeft = TurnTimeLeft + 5000
+ end
+
+ if (gear == enemy) and (GameOver == false) then
+ ShowMission(loc("Spooky Tree"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0);
+ elseif gear == player then
+ ShowMission(loc("Spooky Tree"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
+ GameOver = true
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,119 @@
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+local player = nil -- This variable will point to the hog's gear
+local p2 = nil
+local enemy = nil
+local bCrate = nil
+
+local GameOver = false
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+ Seed = 0 -- The base number for the random number generator
+ GameFlags = gfDisableWind-- Game settings and rules
+ SuddenDeathTurns = 9999
+ TurnTime = 30000 -- The time the player has to move each round (in ms)
+ CaseFreq = 0 -- The frequency of crate drops
+ MinesNum = 0 -- The number of mines being placed
+ MinesTime = 1
+ Explosives = 0 -- The number of explosives being placed
+ Delay = 10 -- The delay between each round
+ Map = "Mushrooms" -- The map to be played
+ Theme = "Nature" -- The theme to be used
+
+ AddTeam(loc("Feeble Resistance"), 14483456, "Simple", "Island", "Default")
+ player = AddHog(string.format(loc("Pathetic Hog #%d"), 1), 0, 50, "NoHat")
+ p2 = AddHog(string.format(loc("Pathetic Hog #%d"), 2), 0, 20, "NoHat")
+
+ --AddTeam("Toxic Team", 1175851, "Simple", "Island", "Robot","cm_binary")
+ AddTeam(loc("Cybernetic Empire"), 1175851, "Simple", "Island", "Robot", "cm_binary")
+ enemy = AddHog(loc("Unit 3378"), 5, 30, "cyborg")
+
+ SetGearPosition(player, 2427, 1259)
+ SetGearPosition(p2, 2293, 1263)
+ SetGearPosition(enemy, 1516, 1519)
+
+end
+
+
+function onGameStart()
+
+ --mines
+ AddGear(1300, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1325, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1350, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1375, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1400, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1425, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1450, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1475, 1100, gtMine, 0, 0, 0, 0)
+ AddGear(1500, 1100, gtMine, 0, 0, 0, 0)
+
+ AddGear(1910, 1380, gtMine, 0, 0, 0, 0)
+ AddGear(1925, 1380, gtMine, 0, 0, 0, 0)
+ AddGear(1950, 1380, gtMine, 0, 0, 0, 0)
+ AddGear(1975, 1380, gtMine, 0, 0, 0, 0)
+ AddGear(2000, 1380, gtMine, 0, 0, 0, 0)
+ AddGear(2025, 1380, gtMine, 0, 0, 0, 0)
+
+ -- crates crates and more crates
+ bCrate = SpawnAmmoCrate(2712,1500,amBaseballBat)
+ SpawnUtilityCrate(1596,1167,amGirder)
+ SpawnAmmoCrate(2728,1978,amPickHammer)
+ SpawnAmmoCrate(1728,1647,amBlowTorch)
+ SpawnUtilityCrate(2567,1768,amJetpack)
+ SpawnAmmoCrate(1251,1466,amDrill)
+
+ ShowMission(loc("Codename: Teamwork"), loc("by mikade"), loc("- Eliminate Unit 3378 |- Feeble Resistance must survive") .. loc("|- Mines Time:") .. " " .. 0 .. " " .. loc("sec"), 0, 0)
+
+end
+
+
+function onGameTick()
+
+ --if CurrentHedgehog ~= nil then
+ -- AddCaption(GetX(CurrentHedgehog) .. ";" .. GetY(CurrentHedgehog))
+ --end
+
+end
+
+
+function onAmmoStoreInit()
+ SetAmmo(amBlowTorch, 0, 0, 0, 1)
+ SetAmmo(amGirder, 0, 0, 0, 1)
+ SetAmmo(amPickHammer, 0, 0, 0, 2)
+ SetAmmo(amJetpack, 0, 0, 0, 1)
+ SetAmmo(amDrill, 0, 0, 0, 2)
+ SetAmmo(amBaseballBat, 0, 0, 0, 1)
+ SetAmmo(amSwitch, 9, 0, 0, 0)
+ SetAmmo(amSkip, 9, 0, 0, 0)
+end
+
+function onGearDamage(gear, damage)
+ if (gear == player) and (damage == 30) then
+ HogSay(player,loc("T_T"),SAY_SHOUT)
+ end
+end
+
+function onGearDelete(gear)
+
+ if gear == bCrate then
+ HogSay(CurrentHedgehog, loc("Hmmm..."), SAY_THINK)
+ end
+
+ if GetGearType(gear) == gtCase then
+ TurnTimeLeft = TurnTimeLeft + 5000
+ end
+
+ if (gear == enemy) and (GameOver == false) then
+ ShowMission(loc("Codename: Teamwork"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0)
+ GameOver = true
+ elseif ( ((gear == player) or (gear == p2)) and (GameOver == false)) then
+ ShowMission(loc("Codename: Teamwork"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0)
+ GameOver = true
+ SetHealth(p2,0)
+ SetHealth(player,0)
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,2 @@
+Default
+Default
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,597 @@
+--------------------------------
+-- CAPTURE_THE_FLAG_CUSTOM 0.3
+-- by mikade
+--------------------------------
+
+-- Version History
+---------
+-- 0.1
+---------
+
+-- [conversion from map-dependant CTF_Blizzard to map independant Capture the Flag]
+-- added an intial starting stage where flagspawn is decided by the players (weapon set will require a jetpack unless I set)
+-- changed the flag from a crate to a visual gear, and all associated methods and checks relating to flags (five hours later, lol)
+-- changed starting/respawning positioning to accommodate different map sizes
+-- added another circle to mark flag spawn
+-- added gameFlag filter
+-- changed scoring feedback
+-- cleaned up some code
+
+-- removing own flag from spawning point no longer possible
+-- destroying flags no longer possible.
+-- added basic glowing circle effect to spawn area
+-- added expanding circle to fgear itself
+
+-- removed teleporters
+-- removed random crate drops (this should be decided by scheme)
+-- removed set map criteria like minesNum, turnTime, explosives etc. except for sudden death
+-- removed weapon defintions
+-- removed placement and respawning methods, hopefully divideTeams will have this covered
+
+---------
+-- 0.2
+---------
+
+-- [now with user friendliness]
+-- flag is now placed wherever you end up at the end of your first turn, this ensures that it is always placed by turn 3
+-- removed a bunch of backup code and no-longer needed variables / methods from CTF_Blizzard days
+-- removed an aura that was still mistakenly hanging about
+-- added an in-game note about placements
+-- added an in-game note about the rules of the game
+-- added translation support and loc()'ed everything
+-- changed things so the seed is no longer always the same...
+
+-- In this version:
+---------
+-- 0.3
+---------
+-- [fufufufu kamikaze fix]
+-- added nill checks to make sure the player doesn't generate errors by producing a nil value in hhs[] when he uses kamikaze
+-- added a check to make sure the player doesn't kamikaze straight down and make the flag's starting point underwater
+-- added a check to make sure the player drops the flag if he has it and he uses kamikaze
+
+-----------------
+--SCRIPT BEGINS
+-----------------
+
+-- enable awesome translaction support so we can use loc() wherever we want
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+---------------------------------------------------------------
+----------lots of bad variables and things
+----------because someone is too lazy
+----------to read about tables properly
+------------------ "Oh well, they probably have the memory"
+
+local gameStarted = false
+local gameTurns = 0
+
+--------------------------
+-- hog and team tracking variales
+--------------------------
+
+local numhhs = 0 -- store number of hedgehogs
+local hhs = {} -- store hedgehog gears
+
+local numTeams -- store the number of teams in the game
+local teamNameArr = {} -- store the list of teams
+local teamSize = {} -- store how many hogs per team
+local teamIndex = {} -- at what point in the hhs{} does each team begin
+
+-------------------
+-- flag variables
+-------------------
+
+local fPlaced = {} -- has the flag been placed TRUE/FALSE
+
+local fGear = {} -- pointer to the visual gears that represent the flag
+local fGearX = {}
+local fGearY = {}
+
+local fThief = {} -- pointer to the hogs who stole the flags
+local fIsMissing = {} -- have the flags been destroyed or captured
+local fNeedsRespawn = {} -- do the flags need to be respawned
+local fCaptures = {} -- the team "scores" how many captures
+local fSpawnX = {} -- spawn X for flags
+local fSpawnY = {} -- spawn Y for flags
+
+local fThiefX = {}
+local fThiefY = {}
+local FTTC = 0 -- flag thief tracker counter
+
+local fSpawnC = {} -- spawn circle marker
+local fCirc = {} -- flag/carrier marker circles
+local fCol = {} -- colour of the clans
+
+local fGearRad = 0
+local fGearRadMin = 5
+local fGearRadMax = 33
+local fGearTimer = 0
+
+------------------------
+--flag methods
+------------------------
+
+function CheckScore(teamID)
+
+ if teamID == 0 then
+ alt = 1
+ elseif teamID == 1 then
+ alt = 0
+ end
+
+ if fCaptures[teamID] == 3 then
+ for i = 0, (numhhs-1) do
+ if hhs[i] ~= nil then
+ if GetHogClan(hhs[i]) == alt then
+ SetEffect(hhs[i], heResurrectable, false)
+ SetHealth(hhs[i],0)
+ end
+ end
+ end
+ if CurrentHedgehog ~= nil then
+ ShowMission(loc("GAME OVER!"), loc("Victory for the ") .. GetHogTeamName(CurrentHedgehog), loc("Hooray!"), 0, 0)
+ end
+ end
+
+end
+
+function DoFlagStuff(gear)
+
+ if (gear == fGear[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fGear[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ -- player has successfully captured the enemy flag
+ if (GetHogClan(CurrentHedgehog) == wtf) and (CurrentHedgehog == fThief[bbq]) and (fIsMissing[wtf] == false) then
+
+ DeleteVisualGear(fGear[wtf])
+ fGear[wtf] = nil -- the flag has now disappeared
+
+ fIsMissing[wtf] = false
+ fNeedsRespawn[wtf] = true
+ fIsMissing[bbq] = false
+ fNeedsRespawn[bbq] = true
+ fCaptures[wtf] = fCaptures[wtf] +1
+ ShowMission(loc("You have SCORED!!"), GetHogTeamName(CurrentHedgehog) .. ": " .. fCaptures[wtf], loc("Opposing Team: ") .. fCaptures[bbq], 0, 0)
+ PlaySound(sndVictory)
+ fThief[bbq] = nil -- player no longer has the enemy flag
+ CheckScore(wtf)
+
+ --if the player is returning the flag
+ elseif (GetHogClan(CurrentHedgehog) == wtf) and (fIsMissing[wtf] == true) then
+
+ DeleteVisualGear(fGear[wtf])
+ fGear[wtf] = nil -- the flag has now disappeared
+
+ fNeedsRespawn[wtf] = true
+ HandleRespawns() -- this will set fIsMissing[wtf] to false :)
+ AddCaption(loc("Flag returned!"))
+
+ --if the player is taking the enemy flag
+ elseif GetHogClan(CurrentHedgehog) == bbq then
+
+ DeleteVisualGear(fGear[wtf])
+ fGear[wtf] = nil -- the flag has now disappeared
+
+ fIsMissing[wtf] = true
+ for i = 0,numhhs-1 do
+ if CurrentHedgehog ~= nil then
+ if CurrentHedgehog == hhs[i] then
+ fThief[wtf] = hhs[i]
+ end
+ end
+ end
+ AddCaption(loc("Flag captured!"))
+
+ --below line doesnt usually get called
+ --else
+ -- now gets called if you go over your own flag, presumably
+ --AddCaption("Hmm... that wasn't supposed to happen...")
+ end
+
+end
+
+function CheckFlagProximity()
+
+ for i = 0, 1 do
+ if fGear[i] ~= nil then
+
+ g1X = fGearX[i]
+ g1Y = fGearY[i]
+
+ g2X, g2Y = GetGearPosition(CurrentHedgehog)
+
+ q = g1X - g2X
+ w = g1Y - g2Y
+ dist = (q*q) + (w*w)
+
+ if dist < 500 then --1600
+ DoFlagStuff(fGear[i])
+ end
+ end
+ end
+
+end
+
+
+function HandleRespawns()
+
+ for i = 0, 1 do
+
+ if fNeedsRespawn[i] == true then
+ fGear[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ fGearX[i] = fSpawnX[i]
+ fGearY[i] = fSpawnY[i]
+ --fGear[i] = SpawnAmmoCrate(fSpawnX[i],fSpawnY[i],amSkip)
+ fNeedsRespawn[i] = false
+ fIsMissing[i] = false -- new, this should solve problems of a respawned flag being "returned" when a player tries to score
+ AddCaption(loc("Flag respawned!"))
+ end
+
+ end
+
+end
+
+
+function FlagThiefDead(gear)
+
+ if (gear == fThief[0]) then
+ wtf = 0
+ bbq = 1
+ elseif (gear == fThief[1]) then
+ wtf = 1
+ bbq = 0
+ end
+
+ if fThief[wtf] ~= nil then
+ -- falls into water
+ --ShowMission(LAND_HEIGHT, fThiefY[wtf], (LAND_HEIGHT - fThiefY[wtf]), 0, 0)
+ if (LAND_HEIGHT - fThiefY[wtf]) < 15 then
+ fIsMissing[wtf] = true
+ fNeedsRespawn[wtf] = true
+ HandleRespawns()
+ --AddCaption("hah??")
+ else --normally
+ fGearX[wtf] = fThiefX[wtf]
+ fGearY[wtf] = fThiefY[wtf]
+ fGear[wtf] = AddVisualGear(fGearX[wtf],fGearY[wtf],vgtCircle,0,true)
+ --fGear[wtf] = AddVisualGear(fThiefX[wtf],fThiefY[wtf],vgtCircle,0,true)
+ end
+
+ AddVisualGear(fThiefX[wtf], fThiefY[wtf], vgtBigExplosion, 0, false)
+ fThief[wtf] = nil
+ end
+
+end
+
+function HandleCircles()
+
+ fGearTimer = fGearTimer + 1
+ if fGearTimer == 50 then
+ fGearTimer = 0
+ fGearRad = fGearRad + 1
+ if fGearRad > fGearRadMax then
+ fGearRad = fGearRadMin
+ end
+ end
+
+ for i = 0, 1 do
+
+ --SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 50, 3, fCol[i]) -- draw a circ for spawning area
+
+ if fIsMissing[i] == false then -- draw a flag marker at the flag's spawning place
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 20, 0, 10, 0, 33, 3, fCol[i])
+ if fGear[i] ~= nil then -- draw the flag gear itself
+ SetVisualGearValues(fGear[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, fGearRad, 2, fCol[i])
+ end
+ elseif (fIsMissing[i] == true) and (fNeedsRespawn[i] == false) then
+ if fThief[i] ~= nil then -- draw circle round flag carrier
+ SetVisualGearValues(fCirc[i], fThiefX[i], fThiefY[i], 20, 200, 0, 0, 100, 33, 3, fCol[i])
+ --AddCaption("circle marking carrier")
+ elseif fThief[i] == nil then -- draw cirle round dropped flag
+ --g1X,g1Y,g4,g5,g6,g7,g8,g9,g10,g11 = GetVisualGearValues(fGear[i])
+ --SetVisualGearValues(fCirc[i], g1X, g1Y, 20, 200, 0, 0, 100, 33, 2, fCol[i])
+ SetVisualGearValues(fCirc[i], fGearX[i], fGearY[i], 20, 200, 0, 0, 100, 33, 3, fCol[i])
+ --AddCaption('dropped circle marker')
+ if fGear[i] ~= nil then -- flag gear itself
+ --SetVisualGearValues(fGear[i], g1X, g1Y, 20, 200, 0, 0, 100, 10, 4, fCol[i])
+ SetVisualGearValues(fGear[i], fGearX[i], fGearY[i], 20, 200, 0, 0, 100, fGearRad, 2, fCol[i])
+ --AddCaption('dropped flag itself')
+ end
+ end
+ end
+
+ if fNeedsRespawn[i] == true then -- if the flag has been destroyed, no need for a circle
+ SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 200, 0, 0, 100, 0, 0, fCol[i])
+ --AddCaption("needs respawn = true. flag 'destroyed'?")
+ end
+ end
+
+end
+
+------------------------
+-- general methods
+------------------------
+
+function CheckDistance(gear1, gear2)
+
+ g1X, g1Y = GetGearPosition(gear1)
+ g2X, g2Y = GetGearPosition(gear2)
+
+ g1X = g1X - g2X
+ g1Y = g1Y - g2Y
+ z = (g1X*g1X) + (g1Y*g1Y)
+
+ dist = z
+
+ return dist
+
+end
+
+function RebuildTeamInfo()
+
+
+ -- make a list of individual team names
+ for i = 0, 5 do
+ teamNameArr[i] = i
+ teamSize[i] = 0
+ teamIndex[i] = 0
+ end
+ numTeams = 0
+
+ for i = 0, (numhhs-1) do
+
+ z = 0
+ unfinished = true
+ while(unfinished == true) do
+
+ newTeam = true
+ tempHogTeamName = GetHogTeamName(hhs[i]) -- this is the new name
+
+ if tempHogTeamName == teamNameArr[z] then
+ newTeam = false
+ unfinished = false
+ end
+
+ z = z + 1
+
+ if z == TeamsCount then
+ unfinished = false
+ if newTeam == true then
+ teamNameArr[numTeams] = tempHogTeamName
+ numTeams = numTeams + 1
+ end
+ end
+
+ end
+
+ end
+
+ -- find out how many hogs per team, and the index of the first hog in hhs
+ for i = 0, numTeams-1 do
+
+ for z = 0, numhhs-1 do
+ if GetHogTeamName(hhs[z]) == teamNameArr[i] then
+ if teamSize[i] == 0 then
+ teamIndex[i] = z -- should give starting index
+ end
+ teamSize[i] = teamSize[i] + 1
+ --add a pointer so this hog appears at i in hhs
+ end
+ end
+
+ end
+
+end
+
+function StartTheGame()
+
+ gameStarted = true
+ AddCaption(loc("Game Started!"))
+
+ for i = 0, 1 do
+
+ -- if someone uses kamikaze downwards, this can happen as the hog won't respawn
+ if (LAND_HEIGHT - fSpawnY[i]) < 0 then
+ tempG = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
+ FindPlace(tempG, true, 0, LAND_WIDTH, true)
+ fSpawnX[i], fSpawnY[i] = GetGearPosition(tempG)
+ DeleteGear(tempG)
+ end
+
+ fGear[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ fCirc[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+ fSpawnC[i] = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+
+ fGearX[i] = fSpawnX[i]
+ fGearY[i] = fSpawnY[i]
+
+ fCol[i] = GetClanColor(i)
+ fIsMissing[i] = false
+ fNeedsRespawn[i] = false
+ fCaptures[i] = 0
+
+ --SetVisualGearValues(zxc, 1000,1000, 20, 100, 0, 10, 1, 100, 5, GetClanColor(0))
+
+ SetVisualGearValues(fSpawnC[i], fSpawnX[i],fSpawnY[i], 20, 100, 0, 10, 0, 75, 5, fCol[i])
+ --SetVisualGearValues(fCirc[i], fSpawnX[i],fSpawnY[i], 20, 20, 0, 10, 0, 33, 3, fCol[i])
+
+
+ end
+
+end
+
+------------------------
+-- game methods
+------------------------
+
+function onGameInit()
+
+ -- Things we don't modify here will use their default values.
+
+ GameFlags = band(bor(GameFlags, gfDivideTeams), bnot(gfKing + gfForts))
+ SuddenDeathTurns = 99 -- suddendeath is off, effectively
+ --TurnTime = 30000 -- (was 30) The time the player has to move each round (in ms)
+ --Delay = 10 -- The delay between each round
+
+end
+
+
+function onGameStart()
+
+ --ShowMission(loc(caption), loc(subcaption), loc(goal), 0, 0)
+ ShowMission(loc("CAPTURE THE FLAG"), loc("by mikade"), loc("CUSTOM BUILD 0.2"), 0, 0)
+
+ RebuildTeamInfo()
+
+ -- should gfDivideTeams do this automatically?
+ --[[for i = 0, (TeamsCount-1) do
+ for g = teamIndex[i], (teamIndex[i]+teamSize[i]-1) do
+ if GetHogClan(hhs[g]) == 0 then
+ FindPlace(hhs[g], false, 0, LAND_WIDTH/2)
+ elseif GetHogClan(hhs[g]) == 1 then
+ FindPlace(hhs[g], false, LAND_WIDTH/2, LAND_WIDTH)
+ end
+ end
+ end]]
+
+ fPlaced[0] = false
+ fPlaced[1] = false
+
+ --zxc = AddVisualGear(fSpawnX[i],fSpawnY[i],vgtCircle,0,true)
+
+
+ --SetVisualGearValues(zxc, 1000,1000, 20, 255, 1, 10, 0, 200, 1, GetClanColor(0))
+ --minO,max0 -glowyornot --pulsate timer -- fuckall -- radius -- width -- colour
+end
+
+
+function onNewTurn()
+
+ gameTurns = gameTurns + 1
+
+ if lastTeam ~= GetHogTeamName(CurrentHedgehog) then
+ lastTeam = GetHogTeamName(CurrentHedgehog)
+ end
+
+ --AddCaption("Handling respawns")
+ if gameStarted == true then
+ HandleRespawns()
+ --new method of placing starting flags
+ elseif gameTurns == 1 then
+ ShowMission(loc("CAPTURE THE FLAG"), loc("Flags will be placed where each team ends their turn."), "", 0, 0)
+ elseif gameTurns == 2 then
+ fPlaced[0] = true
+ ShowMission(loc("CAPTURE THE FLAG"), loc("RULES OF THE GAME [Press ESC to view]"), loc(" - Return the enemy flag to your base to score | - First team to 3 captures wins | - You may only score when your flag is in your base | - Hogs will drop the flag if killed, or drowned | - Dropped flags may be returned or recaptured | - Hogs respawn when killed"), 0, 0)
+ elseif gameTurns == 3 then
+ fPlaced[1] = true
+ StartTheGame()
+ end
+
+end
+
+function onGameTick()
+
+ -- onRessurect calls AFTER you have resurrected,
+ -- so keeping track of x,y a few milliseconds before
+ -- is useful
+ --FTTC = FTTC + 1
+ --if FTTC == 100 then
+ -- FTTC = 0
+ for i = 0,1 do
+ if fThief[i] ~= nil then
+ fThiefX[i] = GetX(fThief[i])
+ fThiefY[i] = GetY(fThief[i])
+ end
+ end
+ --end
+
+ -- things we wanna check often
+ if (CurrentHedgehog ~= nil) then
+ --AddCaption(LAND_HEIGHT - GetY(CurrentHedgehog))
+ --AddCaption(GetX(CurrentHedgehog) .. "; " .. GetY(CurrentHedgehog))
+ --CheckTeleporters()
+
+ end
+
+ if gameStarted == true then
+ HandleCircles()
+ if CurrentHedgehog ~= nil then
+ CheckFlagProximity()
+ end
+ elseif CurrentHedgehog ~= nil then -- if the game hasn't started yet, keep track of where we are gonna put the flags on turn end
+
+ if GetHogClan(CurrentHedgehog) == 0 then
+ i = 0
+ elseif GetHogClan(CurrentHedgehog) == 1 then
+ i = 1
+ end
+
+ fSpawnX[i] = GetX(CurrentHedgehog)
+ fSpawnY[i] = GetY(CurrentHedgehog)
+
+ end
+
+end
+
+function onGearResurrect(gear)
+
+ --AddCaption("A gear has been resurrected!")
+
+ -- mark the flag thief as dead if he needed a respawn
+ for i = 0,1 do
+ if gear == fThief[i] then
+ FlagThiefDead(gear)
+ end
+ end
+
+ -- should be covered by gfDivideTeams, actually
+ -- place hogs belonging to each clan either left or right side of map
+ --if GetHogClan(gear) == 0 then
+ -- FindPlace(gear, false, 0, LAND_WIDTH/2)
+ --elseif GetHogClan(gear) == 1 then
+ -- FindPlace(gear, false, LAND_WIDTH/2, LAND_WIDTH)
+ --end
+
+ AddVisualGear(GetX(gear), GetY(gear), vgtBigExplosion, 0, false)
+
+end
+
+function onGearDamage(gear, damage)
+--
+end
+
+function onGearAdd(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ hhs[numhhs] = gear
+ numhhs = numhhs + 1
+ SetEffect(gear, heResurrectable, true)
+ end
+
+end
+
+function onGearDelete(gear)
+
+ if GetGearType(gear) == gtHedgehog then
+ --AddCaption("gear deleted!")
+ for i = 0, (numhhs-1) do
+ if gear == hhs[i] then
+
+ for i = 0,1 do
+ if gear == fThief[i] then
+ FlagThiefDead(gear)
+ end
+ end
+ hhs[i] = nil
+ --AddCaption("for real")
+ end
+ end
+ end
+
+end
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.cfg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,2 @@
+Default
+Default
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua Tue Dec 28 22:40:12 2010 +0100
@@ -0,0 +1,16 @@
+--------------------------------
+-- NO JUMPING
+--------------------------------
+
+loadfile(GetDataPath() .. "Scripts/Locale.lua")()
+
+function onGameStart()
+ ShowMission(loc("NO JUMPING"), loc("- Jumping is disabled"), loc("Good luck out there!"), 0, 0)
+end
+
+function onNewTurn()
+ SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump)))
+end
+
+
+
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Themes/Christmas/amSnowball.png
Binary file share/hedgewars/Data/Themes/Christmas/amSnowball.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Themes/Christmas/theme.cfg
--- a/share/hedgewars/Data/Themes/Christmas/theme.cfg Thu Dec 23 21:45:50 2010 +0100
+++ b/share/hedgewars/Data/Themes/Christmas/theme.cfg Tue Dec 28 22:40:12 2010 +0100
@@ -1,26 +1,26 @@
-9 14 45
-141 151 213
-$54 $5C $9D
-$34 $3C $7D $80
-snow.ogg
-9
-6
-reindeer
-1 90 232 94 12 2 55 60 90 73 80 134 105 64
-tree
-1 238 706 36 9 2 122 355 208 293 164 168 82 154
-plant2
-3 0 85 25 25 2 0 0 170 70 50 70 120 40
-plant3
-3 26 0 48 1 1 25 15 50 60
-plant4
-3 45 4 1 45 1 20 45 20 60
-Snowman
-1 38 283 119 14 1 38 21 124 216
-2
-holly
-4
-holly2
-4
-100
-3 99999999 100 300
+9 14 45
+141 151 213
+$54 $5C $9D
+$34 $3C $7D $80
+snow.ogg
+9
+6
+reindeer
+1 90 232 94 12 2 55 60 90 73 80 134 105 64
+tree
+1 238 706 36 9 2 122 355 208 293 164 168 82 154
+plant2
+3 0 85 25 25 2 0 0 170 70 50 70 120 40
+plant3
+3 26 0 48 1 1 25 15 50 60
+plant4
+3 45 4 1 45 1 20 45 20 60
+Snowman
+1 38 283 119 14 1 38 21 124 216
+2
+holly
+4
+holly2
+4
+100
+3 99999999 100 300
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Themes/Compost/amSnowball.png
Binary file share/hedgewars/Data/Themes/Compost/amSnowball.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Themes/Snow/amSnowball.png
Binary file share/hedgewars/Data/Themes/Snow/amSnowball.png has changed
diff -r 1cc14ece1486 -r 095398eba689 share/hedgewars/Data/Themes/Underwater/amSnowball.png
Binary file share/hedgewars/Data/Themes/Underwater/amSnowball.png has changed