# HG changeset patch # User jose1711 # Date 1293572412 -3600 # Node ID 095398eba6896dc1dc2989b08278e3e0dbf1c4b6 # Parent 1cc14ece1486253cf93ad02c440594ded72b07fa# Parent b9a9f70948da1323bfcc3cec98f602a72749ab94 Merge diff -r 1cc14ece1486 -r 095398eba689 CMakeLists.txt --- a/CMakeLists.txt Thu Dec 23 21:45:50 2010 +0100 +++ b/CMakeLists.txt Tue Dec 28 22:40:12 2010 +0100 @@ -239,13 +239,14 @@ "release$" "Debug$" "Release$" - "proto.inc$" - "hwconsts.cpp$" - "playlist.inc$" + "proto\\\\.inc$" + "hwconsts\\\\.cpp$" + "playlist\\\\.inc$" "CPack" - "cmake_install.cmake$" - "config.inc$" - "hwengine.desktop$" + "cmake_install\\\\.cmake$" + "config\\\\.inc$" + "hwengine\\\\.desktop$" + "CMakeCache\\\\.txt$" # "^${CMAKE_CURRENT_SOURCE_DIR}/misc/libopenalbridge" "^${CMAKE_CURRENT_SOURCE_DIR}/project_files/HedgewarsMobile/" "^${CMAKE_CURRENT_SOURCE_DIR}/bin/[a-z]" diff -r 1cc14ece1486 -r 095398eba689 ChangeLog.txt --- a/ChangeLog.txt Thu Dec 23 21:45:50 2010 +0100 +++ b/ChangeLog.txt Tue Dec 28 22:40:12 2010 +0100 @@ -1,6 +1,32 @@ + features * bugfixes +0.9.14 -> 0.9.15: + + Ability to create, save and load hand drawn maps + + New maps: Capture the Flag (Blizzard) Map + + New themes: Christmas + + Snowflakes on Christmas/Snow themes accumulates on the ground + + New game modifiers: No wind, More wind + + New missions: Dangerous ducklings, Diver, Spooky tree, Teamwork + + New weapons: Mudball, Drill strike + + Many more Lua hooks + + Readytimer + + Ability to edit seed + + Ability to select gameplay scripts + + New gameplay scripts: Capture the Flag, No jumping, Random weapon + + New Lua unified translation framework + + Code refactoring + + Max teams upped to 8 + + Cosmetic enhancements to Napalm strike + + Selecting a game scheme selects the corresponding weapon set + + Dust when drills dig + + New hats: beaver, porkey, sheep + + Add density property to Gears + + Reworked management of schemes and weapon sets + + Will ask before deleting teams, schemes and weapon sets + + Explosions detach rope from land + + Allow hog speech when not your turn + 0.9.13 -> 0.9.14: + New audio tracks + New forts: EvilChicken, Tank diff -r 1cc14ece1486 -r 095398eba689 QTfrontend/about.cpp --- a/QTfrontend/about.cpp Thu Dec 23 21:45:50 2010 +0100 +++ b/QTfrontend/about.cpp Tue Dec 28 22:40:12 2010 +0100 @@ -119,6 +119,7 @@ "German: Peter Hüwe <PeterHuewe@gmx.de>, Mario Liebisch <mario.liebisch@gmail.com>
" "Italian: Luca Bonora <bonora.luca@gmail.com>
" "Japanese: ADAM Etienne <etienne.adam@gmail.com>
" + "Korean: Anthony Bellew <webmaster@anthonybellew.com>
" "Polish: Maciej Mroziński <mynick2@o2.pl>, Wojciech Latkowski <magik17l@gmail.com>, Piotr Mitana, Maciej Górny
" "Portuguese: Fábio Canário <inufabie@gmail.com>
" "Russian: Andrey Korotaev <unC0Rr@gmail.com>
" diff -r 1cc14ece1486 -r 095398eba689 QTfrontend/drawmapscene.cpp --- a/QTfrontend/drawmapscene.cpp Thu Dec 23 21:45:50 2010 +0100 +++ b/QTfrontend/drawmapscene.cpp Tue Dec 28 22:40:12 2010 +0100 @@ -87,9 +87,10 @@ { QByteArray b; - foreach(QList points, paths) + for(int i = paths.size() - 1; i >= 0; --i) { int cnt = 0; + QList points = paths.at(i); foreach(QPoint point, points) { qint16 px = qToBigEndian((qint16)point.x()); @@ -124,21 +125,23 @@ quint8 flags = *(quint8 *)data.data(); data.remove(0, 1); - //last chunk or first point - if((data.size() < 5) || (flags & 0x80)) + if((flags & 0x80) && points.size()) { - if(points.size()) - { - addPath(pointsToPath(points), m_pen); - paths.prepend(points); + addPath(pointsToPath(points), m_pen); + paths.prepend(points); - points.clear(); - } + points.clear(); } points.append(QPoint(px, py)); } + if(points.size()) + { + addPath(pointsToPath(points), m_pen); + paths.prepend(points); + } + emit pathChanged(); } diff -r 1cc14ece1486 -r 095398eba689 QTfrontend/gamecfgwidget.cpp --- a/QTfrontend/gamecfgwidget.cpp Thu Dec 23 21:45:50 2010 +0100 +++ b/QTfrontend/gamecfgwidget.cpp Tue Dec 28 22:40:12 2010 +0100 @@ -52,7 +52,7 @@ Scripts = new QComboBox(GBoxOptions); GBoxOptionsLayout->addWidget(Scripts, 0, 1); - Scripts->addItem(QComboBox::tr("Normal")); + Scripts->addItem("Normal"); Scripts->insertSeparator(1); for (int i = 0; i < scriptList->size(); ++i) { @@ -332,6 +332,9 @@ } if (param == "SEED") { pMapContainer->setSeed(value); + if (!QRegExp("\\{[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\\}").exactMatch(value)) { + pMapContainer->seedEdit->setVisible(true); + } return; } if (param == "THEME") { @@ -383,7 +386,7 @@ void GameCFGWidget::mapChanged(const QString & value) { - if(pMapContainer->getCurrentIsMission()) + if(isEnabled() && pMapContainer->getCurrentIsMission()) { Scripts->setEnabled(false); Scripts->setCurrentIndex(0); @@ -458,7 +461,7 @@ emit paramChanged("SCHEME", sl); - if (bindEntries->isEnabled() && bindEntries->isChecked()) { + if (isEnabled() && bindEntries->isEnabled() && bindEntries->isChecked()) { QString schemeName = GameSchemes->itemText(index); for (int i = 0; i < WeaponsName->count(); i++) { QString weapName = WeaponsName->itemText(i); @@ -474,7 +477,7 @@ void GameCFGWidget::scriptChanged(int index) { - if(index > 0) + if(isEnabled() && index > 0) { QString scheme = Scripts->itemData(Scripts->currentIndex()).toList()[1].toString(); QString weapons = Scripts->itemData(Scripts->currentIndex()).toList()[2].toString(); diff -r 1cc14ece1486 -r 095398eba689 QTfrontend/mapContainer.cpp --- a/QTfrontend/mapContainer.cpp Thu Dec 23 21:45:50 2010 +0100 +++ b/QTfrontend/mapContainer.cpp Tue Dec 28 22:40:12 2010 +0100 @@ -177,8 +177,8 @@ connect(maze_size_selection, SIGNAL(currentIndexChanged(int)), this, SLOT(setMaze_size(int))); gbThemes = new IconedGroupBox(mapWidget); - gbThemes->setTitleTextPadding(60); - gbThemes->setContentTopPadding(6); + gbThemes->setTitleTextPadding(80); + gbThemes->setContentTopPadding(15); gbThemes->setTitle(tr("Themes")); //gbThemes->setStyleSheet("padding: 0px"); // doesn't work - stylesheet is set with icon @@ -224,7 +224,7 @@ QGridLayout* seedLayout = new QGridLayout(seedWidget); seedLayout->setMargin(0); - QLabel* seedLabel = new QLabel(tr("Seed"), seedWidget); + seedLabel = new QLabel(tr("Seed"), seedWidget); seedLayout->addWidget(seedLabel, 3, 0); seedEdit = new QLineEdit(seedWidget); seedEdit->setMaxLength(54); @@ -232,11 +232,14 @@ seedLayout->addWidget(seedEdit, 3, 1); seedLayout->setColumnStretch(1, 5); seedSet = new QPushButton(seedWidget); - seedSet->setText(QPushButton::tr("Set")); + seedSet->setText(QPushButton::tr("more")); connect(seedSet, SIGNAL(clicked()), this, SLOT(seedEdited())); seedLayout->setColumnStretch(2, 1); seedLayout->addWidget(seedSet, 3, 2); + seedLabel->setVisible(false); + seedEdit->setVisible(false); + setRandomSeed(); setRandomTheme(); } @@ -370,7 +373,7 @@ chooseMap->setItemData(1, mapInfo); mapInfo[0] = QString("+drawn+"); chooseMap->setItemData(2, mapInfo); - gbThemes->setIcon(QIcon(QString("%1/Themes/%2/icon.png").arg(datadir->absolutePath()).arg(theme))); + gbThemes->setIcon(QIcon(QString("%1/Themes/%2/icon@2x.png").arg(datadir->absolutePath()).arg(theme))); emit themeChanged(theme); } @@ -561,6 +564,14 @@ void HWMapContainer::seedEdited() { + if (seedLabel->isVisible() == false ) + { + seedLabel->setVisible(true); + seedEdit->setVisible(true); + seedSet->setText(tr("Set")); + return; + } + if (seedEdit->text().isEmpty()) seedEdit->setText(m_seed); else diff -r 1cc14ece1486 -r 095398eba689 QTfrontend/mapContainer.h --- a/QTfrontend/mapContainer.h Thu Dec 23 21:45:50 2010 +0100 +++ b/QTfrontend/mapContainer.h Tue Dec 28 22:40:12 2010 +0100 @@ -56,6 +56,7 @@ QByteArray getDrawnMapData(); DrawMapScene * getDrawMapScene(); void mapDrawingFinished(); + QLineEdit* seedEdit; public slots: void askForGeneratedPreview(); @@ -102,8 +103,8 @@ QListWidget* lwThemes; HWMap* pMap; QString m_seed; - QLineEdit* seedEdit; QPushButton* seedSet; + QLabel* seedLabel; int hhLimit; int templateFilter; QPixmap hhSmall; diff -r 1cc14ece1486 -r 095398eba689 doc/Release.txt diff -r 1cc14ece1486 -r 095398eba689 gameServer/CoreTypes.hs --- a/gameServer/CoreTypes.hs Thu Dec 23 21:45:50 2010 +0100 +++ b/gameServer/CoreTypes.hs Tue Dec 28 22:40:12 2010 +0100 @@ -149,8 +149,8 @@ ServerInfo True "

http://www.hedgewars.org/

" - "

Hedgewars 0.9.14.1 is out! Please update.

Download page here" - 35 + "

Hedgewars 0.9.15 is out! Please update.

Download page here" + 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_length 0 enhanced - + 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 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 @@ Seed + + Set + + HWNetServersModel @@ -1250,10 +1254,6 @@ التلقائي - Normal - - - hand drawn map... @@ -1671,7 +1671,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1196,10 +1200,6 @@ По подразбиране - Normal - - - hand drawn map... @@ -1617,7 +1617,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1205,10 +1209,6 @@ Základní - Normal - - - hand drawn map... @@ -1626,7 +1626,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1274,10 +1278,6 @@ Standard - Normal - - - hand drawn map... @@ -1701,7 +1701,7 @@ Ordne Dateitypen zu - Set + more 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 viceversa) - When this option is enabled selecting a game scheme will auto-select a weapon (and vice versa) - - When this option is enabled selecting a game scheme will auto-select a weapon @@ -194,6 +190,10 @@ Seed + + Set + + HWNetServersModel @@ -1258,10 +1258,6 @@ Default - Normal - - - hand drawn map... @@ -1679,7 +1675,7 @@ Associate file extensions - Set + more 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 @@ copy of - + Copia de @@ -50,7 +50,7 @@ When this option is enabled selecting a game scheme will auto-select a weapon - + Cuando esta opción esté activada escoger un modo de juego escogerá el set de armas correspondiente @@ -196,7 +196,11 @@ Seed - + Semilla + + + Set + Establecer @@ -334,31 +338,31 @@ PageDrawMap Undo - + Deshacer Clear - + Limpiar Load - Cargar + Cargar Save - + Guardar Load drawn map - + Cargar mapa Drawn Maps (*.hwmap);;All files (*.*) - + Mapas dibujados a mano (*.hwmap);;Todos los ficheros (*.*) Save drawn map - + Guardar mapa @@ -789,27 +793,27 @@ New scheme - + Nuevo modo de juego Edit scheme - + Editar modo de juego Delete scheme - + Eliminar modo de juego New weapon set - + Nuevo set de armas Edit weapon set - + Editar set de armas Delete weapon set - + Eliminar set de armas @@ -1070,15 +1074,15 @@ You will not have to worry about wind anymore. - + No tendrás que volver a preocuparte del viento. Wind will affect almost everything. - + El viento afectará a (casi) todo. Copy - + Copiar @@ -1093,11 +1097,11 @@ New - Nuevo + Nuevo Copy - + Copiar @@ -1305,11 +1309,11 @@ Normal - + Normal hand drawn map... - + Mapa dibujado a mano... @@ -1364,7 +1368,7 @@ Schemes and Weapons - + Modos de juego y sets de armas @@ -1548,11 +1552,11 @@ % Rope Length - + % longitud de las cuerdas Gameplay - + Tipo de juego @@ -1621,27 +1625,27 @@ Teams - Equipos + Equipos Really delete this team? - + ¿De verdad quieres eliminar este equipo? Schemes - + Modos de juego Can not delete default scheme '%1'! - + ¡No se puede eliminar el modo de juego predefinido '%1'! Really delete this game scheme? - + ¿De verdad quieres eliminar este modo de juego? Can not delete default weapon set '%1'! - + ¡No se puede eliminar el set de armas predefinido '%1'! @@ -1739,6 +1743,10 @@ Set + Establecer + + + more @@ -1781,7 +1789,7 @@ Probabilities - Probabilidad + Probabilidades Ammo in boxes @@ -1793,11 +1801,11 @@ new - Nuevo + Nuevo copy of - + Copia de @@ -1907,11 +1915,11 @@ Disable Wind - + Deshabilitar viento More Wind - + 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 @@ Seed + + Set + + HWNetServersModel @@ -1296,10 +1300,6 @@ Sekopäinen - Normal - - - hand drawn map... @@ -1717,7 +1717,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1238,10 +1242,6 @@ Défaut - Normal - - - hand drawn map... @@ -1659,7 +1659,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1239,10 +1243,6 @@ Default - Normal - - - hand drawn map... @@ -1666,7 +1666,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1254,10 +1258,6 @@ Default - Normal - - - hand drawn map... @@ -1681,7 +1681,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1187,10 +1191,6 @@ デフォールト - Normal - - - hand drawn map... @@ -1608,7 +1608,7 @@ - Set + more 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 + + new + + + + copy of + + + + + FreqSpinBox + + Never + + + + Every %1 turn + + + + + + + GameCFGWidget + + Edit weapons + + + + Error + + + + Illegal ammo scheme + + + + Edit schemes + + + + When this option is enabled selecting a game scheme will auto-select a weapon + + + + + HWChatWidget + + %1 *** %2 has been removed from your ignore list + + + + %1 *** %2 has been added to your ignore list + + + + %1 *** %2 has been removed from your friends list + + + + %1 *** %2 has been added to your friends list + + + + + HWForm + + Error + + + + OK + + + + Unable to start the server + + + + Cannot save record to file %1 + + + + Please select record from the list above + + + + DefaultTeam + + + + Hedgewars Demo File + File Types + + + + Hedgewars Save File + File Types + + + + + HWGame + + en.txt + ko.txt + + + Cannot open demofile %1 + + + + + HWMapContainer + + Map + + + + Themes + + + + Filter + + + + All + + + + Small + + + + Medium + + + + Large + + + + Cavern + + + + Wacky + + + + Type + + + + Small tunnels + + + + Medium tunnels + + + + Large tunnels + + + + Small floating islands + + + + Medium floating islands + + + + Large floating islands + + + + Seed + + + + Set + + + + + HWNetServersModel + + Title + + + + IP + + + + Port + + + + + HWNewNet + + The host was not found. Please check the host name and port settings. + + + + Connection refused + + + + Room destroyed + + + + Quit reason: + + + + You got kicked + + + + Password + + + + %1 *** %2 has joined the room + + + + %1 *** %2 has joined + + + + %1 *** %2 has left (%3) + + + + %1 *** %2 has left + + + + Your nickname %1 is +registered on Hedgewars.org +Please provide your password below +or pick another nickname in game config: + + + + + KB + + SDL_ttf returned error while rendering text, most propably it is related to the bug in freetype2. It's recommended to update your freetype lib. + + + + + PageAdmin + + Clear Accounts Cache + + + + Fetch data + + + + Server message for latest version: + + + + Server message for previous versions: + + + + Latest version protocol number: + + + + MOTD preview: + + + + Set data + + + + + PageConnecting + + Connecting... + + + + + PageDrawMap + + Undo + + + + Clear + + + + Load + + + + Save + + + + Load drawn map + + + + Drawn Maps (*.hwmap);;All files (*.*) + + + + Save drawn map + + + + + PageEditTeam + + General + + + + Advanced + + + + + PageGameStats + + Details + + + + Health graph + + + + Ranking + + + + The best shot award was won by <b>%1</b> with <b>%2</b> pts. + + + + The best killer is <b>%1</b> with <b>%2</b> kills in a turn. + + + + + + A total of <b>%1</b> hedgehog(s) were killed during this round. + + + + + + (%1 kill) + + + + + + <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts. + + + + + + <b>%1</b> killed <b>%2</b> of his own hedgehogs. + + + + + + <b>%1</b> was scared and skipped turn <b>%2</b> times. + + + + + + + PageMain + + Local Game (Play a game on a single computer) + + + + Network Game (Play a game across a network) + + + + Simply pick the same color as a friend to play together as a team. Each of you will still control his or her own hedgehogs but they'll win or lose together. + Tips + + + + Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water. + Tips + + + + If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death! + Tips + + + + If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/. + Tips + + + + You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked. + Tips + + + + By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them. + Tips + + + + Hedgewars is Open Source and Freeware we create in our spare time. If you've got problems, ask on our forums but please don't expect 24/7 support! + Tips + + + + Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work! + Tips + + + + Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like! + Tips + + + + From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance. + Tips + + + + Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us! + Tips + + + + Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux. + Tips + + + + Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option. + Tips + + + + While playing you should give yourself a short break at least once an hour. + Tips + + + + If your graphics card isn't able to provide hardware accelerated OpenGL, try to enable the low quality mode to improve performance. + Tips + + + + We're open to suggestions and constructive feedback. If you don't like something or got a great idea, let us know! + Tips + + + + Especially while playing online be polite and always remember there might be some minors playing with or against you as well! + Tips + + + + Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game! + Tips + + + + The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing. + Tips + + + + You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead! + Tips + + + + Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well. + Tips + + + + No hedgehogs were harmed in making this game. + Tips + + + + Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund! + Tips + + + + Connect one or more gamepads before starting the game to be able to assign their controls to your teams. + Tips + + + + Create an account on %1 to keep others from using your most favourite nickname while playing on the official server. + Tips + + + + If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers. + Tips + + + + There are three different jumps available. Tap [high jump] twice to do a very high/backwards jump. + Tips + + + + Afraid of falling off a cliff? Hold down [precise] to turn [left] or [right] without actually moving. + Tips + + + + Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once. + Tips + + + + Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this. + Tips + + + + The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once. + Tips + + + + The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well. + Tips + + + + The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power. + Tips + + + + Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water. + Tips + + + + The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground. + Tips + + + + If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion. + Tips + + + + The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early. + Tips + + + + The Flame Thrower is a weapon but it can be used for tunnel digging as well. + Tips + + + + Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms. + Tips + + + + Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits. + Tips + + + + Like Hedgewars? Become a fan on %1 or follow us on %2! + Tips + + + + Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online. + Tips + + + + Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice! + Tips + + + + Keep your video card drivers up to date to avoid issues playing the game. + Tips + + + + You can find your Hedgewars configuration files under "My Documents\Hedgewars". Create backups or take the files with you, but don't edit them by hand. + Tips + + + + You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser. + Tips + + + + Want to save ropes? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo! + Tips + + + + You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. + Tips + + + + You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. + Tips + + + + + PageMultiplayer + + Start + + + + + PageNet + + Error + + + + Please select server from the list above + + + + + PageNetGame + + Control + + + + + PageNetType + + LAN game + + + + Official server + + + + + PageOptions + + New team + + + + Edit team + + + + Delete team + + + + You can't edit teams from team selection. Go back to main menu to add, edit or delete teams. + + + + New scheme + + + + Edit scheme + + + + Delete scheme + + + + New weapon set + + + + Edit weapon set + + + + Delete weapon set + + + + + PagePlayDemo + + Error + + + + OK + + + + Rename dialog + + + + Enter new file name: + + + + Cannot rename to + + + + Cannot delete file + + + + Please select record from the list + + + + + PageRoomsList + + Create + + + + Join + + + + Refresh + + + + Error + + + + OK + + + + Admin features + + + + Room Name: + + + + This game is in lobby. +You may join and start playing once the game starts. + + + + This game is in progress. +You may join and spectate now but you'll have to wait for the game to end to start playing. + + + + %1 is the host. He may adjust settings and start the game. + + + + Random Map + + + + Games may be played on precreated or randomized maps. + + + + The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism. + + + + The Weapon Scheme defines available weapons and their ammunition count. + + + + There are %1 clients connected to this room. + + + + + + There are %1 teams participating in this room. + + + + + + Please enter room name + + + + Please select room from the list + + + + Random Maze + + + + State: + + + + Rules: + + + + Weapons: + + + + Search: + + + + Clear + + + + Warning + + + + The game you are trying to join has started. +Do you still want to join the room? + + + + + PageScheme + + Defend your fort and destroy the opponents, two team colours max! + + + + Teams will start on opposite sides of the terrain, two team colours max! + + + + Land can not be destroyed! + + + + Add an indestructable border around the terrain + + + + Lower gravity + + + + Assisted aiming with laser sight + + + + All hogs have a personal forcefield + + + + Gain 80% of the damage you do back in health + + + + Share your opponents pain, share their damage + + + + Your hogs are unable to move, put your artillery skills to the test + + + + Random + + + + Seconds + + + + New + + + + Delete + + + + Order of play is random instead of in room order. + + + + Play with a King. If he dies, your side dies. + + + + Take turns placing your hedgehogs before the start of play. + + + + Ammo is shared between all teams that share a colour. + + + + Disable girders when generating random maps. + + + + Disable land objects when generating random maps. + + + + AI respawns on death. + + + + All (living) hedgehogs are fully restored at the end of turn + + + + Attacking does not end your turn. + + + + Weapons are reset to starting values each turn. + + + + Each hedgehog has its own ammo. It does not share with the team. + + + + You will not have to worry about wind anymore. + + + + Wind will affect almost everything. + + + + Copy + + + + + PageSelectWeapon + + Default + + + + Delete + + + + New + + + + Copy + + + + + PageSinglePlayer + + Simple Game (a quick game against the computer, settings are chosen for you) + + + + Multiplayer (play a hotseat game against your friends, or AI teams) + + + + Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT + + + + Demos (Watch recorded demos) + + + + Load (Load a previously saved game) + + + + Campaign Mode (...). IN DEVELOPMENT + + + + + QAction + + Kick + + + + Info + + + + Start + + + + Restrict Joins + + + + Restrict Team Additions + + + + Ban + + + + Follow + + + + Ignore + + + + Add friend + + + + Unignore + + + + Remove friend + + + + + QCheckBox + + Check for updates at startup + + + + Fullscreen + + + + Frontend fullscreen + + + + Enable sound + + + + Enable music + + + + Show FPS + + + + Alternative damage show + + + + Append date and time to record file name + + + + Show ammo menu tooltips + + + + Enable frontend sounds + + + + Enable frontend music + + + + Frontend effects + + + + + QComboBox + + generated map... + + + + Human + + + + Level + + + + (System default) + + + + Mission + + + + generated maze... + + + + Community + + + + Any + + + + In lobby + + + + In progress + + + + hand drawn map... + + + + + QGroupBox + + Team Members + + + + Fort + + + + Key binds + + + + Teams + + + + Audio/Graphic options + + + + Net game + + + + Playing teams + + + + Game Modifiers + + + + Basic Settings + + + + Team Settings + + + + Misc + + + + Schemes and Weapons + + + + + QLabel + + Mines Time + + + + Mines + + + + Version + + + + This program is distributed under the GNU General Public License + + + + Developers: + + + + Art: + + + + Sounds: + + + + Translations: + + + + Special thanks: + + + + Weapons + + + + Host: + + + + Port: + + + + Net nick + + + + Resolution + + + + FPS limit + + + + Server name: + + + + Server port: + + + + Initial sound volume + + + + Damage Modifier + + + + Turn Time + + + + Initial Health + + + + Sudden Death Timeout + + + + Scheme Name: + + + + Crate Drops + + + + Game scheme + + + + % Dud Mines + + + + Name + + + + Type + + + + Grave + + + + Flag + + + + Voice + + + + Locale + + + + Restart game to apply + + + + Explosives + + + + Tip: + + + + This development build is 'work in progress' and may not be compatible with other versions of the game. Some features might be broken or incomplete. Use at your own risk! + + + + Quality + + + + % Health Crates + + + + Health in Crates + + + + Sudden Death Water Rise + + + + Sudden Death Health Decrease + + + + % Rope Length + + + + Gameplay + + + + + QLineEdit + + unnamed + + + + + QMainWindow + + Hedgewars %1 + + + + + QMessageBox + + Network + + + + Connection to server is lost + + + + Error + + + + Failed to open data directory: +%1 +Please check your installation + + + + Weapons + + + + Really delete this weapon set? + + + + Can not overwrite default weapon set '%1'! + + + + All file associations have been set. + + + + File association failed. + + + + Teams + + + + Really delete this team? + + + + Schemes + + + + Can not delete default scheme '%1'! + + + + Really delete this game scheme? + + + + Can not delete default weapon set '%1'! + + + + + QObject + + Error + + + + Cannot create directory %1 + + + + OK + + + + Nickname + + + + Please enter your nickname + + + + + QPushButton + + default + + + + OK + + + + Cancel + + + + Start server + + + + Connect + + + + Update + + + + Specify + + + + Start + + + + Go! + + + + Play demo + + + + Rename + + + + Delete + + + + Load + + + + Setup + + + + Ready + + + + Random Team + + + + Associate file extensions + + + + more + + + + + QTableWidget + + Room Name + + + + C + + + + T + + + + Owner + + + + Map + + + + Rules + + + + Weapons + + + + + SelWeaponWidget + + Weapon set + + + + Probabilities + + + + Ammo in boxes + + + + Delays + + + + new + + + + copy of + + + + + TCPBase + + Error + + + + Unable to start the server: %1. + + + + Unable to run engine: %1 ( + + + + + ToggleButtonWidget + + Vampirism + + + + Karma + + + + Artillery + + + + Fort Mode + + + + Divide Teams + + + + Solid Land + + + + Add Border + + + + Low Gravity + + + + Laser Sight + + + + Invulnerable + + + + Random Order + + + + King + + + + Place Hedgehogs + + + + Clan Shares Ammo + + + + Disable Girders + + + + Disable Land Objects + + + + AI Survival Mode + + + + Reset Health + + + + Unlimited Attacks + + + + Reset Weapons + + + + Per Hedgehog Ammo + + + + Disable Wind + + + + More Wind + + + + + binds + + up + + + + left + + + + right + + + + down + + + + attack + + + + precise aim + + + + put + + + + switch + + + + find hedgehog + + + + ammo menu + + + + slot 1 + + + + slot 2 + + + + slot 3 + + + + slot 4 + + + + slot 5 + + + + slot 6 + + + + slot 7 + + + + slot 8 + + + + slot 9 + + + + timer 1 sec + + + + timer 2 sec + + + + timer 3 sec + + + + timer 4 sec + + + + timer 5 sec + + + + chat + + + + chat history + + + + pause + + + + confirmation + + + + volume down + + + + volume up + + + + change mode + + + + capture + + + + hedgehogs +info + + + + quit + + + + zoom in + + + + zoom out + + + + reset zoom + + + + long jump + + + + high jump + + + + slot 10 + + + + + binds (categories) + + Basic controls + + + + Weapon controls + + + + Camera and cursor controls + + + + Other + + + + + binds (descriptions) + + Move your hogs and aim: + + + + Traverse gaps and obstacles by jumping: + + + + Fire your selected weapon or trigger an utility item: + + + + Pick a weapon or a target location under the cursor: + + + + Switch your currently active hog (if possible): + + + + Pick a weapon or utility item: + + + + Set the timer on bombs and timed weapons: + + + + Move the camera to the active hog: + + + + Move the cursor or camera without using the mouse: + + + + Modify the camera's zoom level: + + + + Talk to your team or all participants: + + + + Pause, continue or leave your game: + + + + Modify the game's volume while playing: + + + + Toggle fullscreen mode: + + + + Take a screenshot: + + + + Toggle labels above hedgehogs: + + + + + binds (keys) + + Axis + + + + (Up) + + + + (Down) + + + + Hat + + + + (Left) + + + + (Right) + + + + Button + + + + Keyboard + + + + Delete + + + + Mouse: Left button + + + + Mouse: Middle button + + + + Mouse: Right button + + + + Mouse: Wheel up + + + + Mouse: Wheel down + + + + Backspace + + + + Tab + + + + Clear + + + + Return + + + + Pause + + + + Escape + + + + Space + + + + Numpad 0 + + + + Numpad 1 + + + + Numpad 2 + + + + Numpad 3 + + + + Numpad 4 + + + + Numpad 5 + + + + Numpad 6 + + + + Numpad 7 + + + + Numpad 8 + + + + Numpad 9 + + + + Numpad . + + + + Numpad / + + + + Numpad * + + + + Numpad - + + + + Numpad + + + + + Enter + + + + Equals + + + + Up + + + + Down + + + + Right + + + + Left + + + + Insert + + + + Home + + + + End + + + + Page up + + + + Page down + + + + Num lock + + + + Caps lock + + + + Scroll lock + + + + Right shift + + + + Left shift + + + + Right ctrl + + + + Left ctrl + + + + Right alt + + + + Left alt + + + + Right meta + + + + Left meta + + + + A button + + + + B button + + + + X button + + + + Y button + + + + LB button + + + + RB button + + + + Back button + + + + Start button + + + + Left stick + + + + Right stick + + + + Left stick (Right) + + + + Left stick (Left) + + + + Left stick (Down) + + + + Left stick (Up) + + + + Left trigger + + + + Right trigger + + + + Right stick (Down) + + + + Right stick (Up) + + + + Right stick (Right) + + + + Right stick (Left) + + + + DPad + + + + 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 @@ Seed + + Set + + HWNetServersModel @@ -1194,10 +1198,6 @@ - Normal - - - hand drawn map... @@ -1601,7 +1601,7 @@ - Set + more 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 @@ copy of - + kopia + + + + DrawMapWidget + + File error + Błąd pliku + + + Cannot open file '%1' for writing + Nie można otworzyć '%1' do zapisu + + + Cannot read file '%1' + Nie można odczytać pliku '%1' @@ -51,7 +66,7 @@ When this option is enabled selecting a game scheme will auto-select a weapon - + Kiedy ta opcja jest włączona, wybór ustawień gry zmienia uzbrojenie na odpowiednie @@ -197,7 +212,11 @@ Seed - + Ziarno + + + Set + Ustaw @@ -257,7 +276,7 @@ %1 *** %2 has joined - %1 *** %2 dołączył + %1 *** %2 dołączył %1 *** %2 has left (%3) @@ -335,31 +354,31 @@ PageDrawMap Undo - + Cofnij Clear - + Wyczyść Load - Wczytaj + Wczytaj Save - + Zapisz Load drawn map - + Załaduj mapę Drawn Maps (*.hwmap);;All files (*.*) - + Narysowane mapy (*.hwmap);;Wszystkie pliki (*.*) Save drawn map - + Zapisz mapę @@ -482,12 +501,12 @@ Some weapons might do only low damage but they can be a lot more devastating in the right situation. Try to use the Desert Eagle to knock multiple hedgehogs into the water. 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. If you're unsure what to do and don't want to waste ammo, skip one round. But don't let too much time pass as there will be Sudden Death! 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! Want to save ropse? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo! @@ -497,12 +516,12 @@ If you'd like to keep others from using your preferred nickname on the official server, register an account at http://www.hedgewars.org/. 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 . You're bored of default gameplay? Try one of the missions - they'll offer different gameplay depending on the one you picked. 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ś. By default the game will always record the last game played as a demo. Select 'Local Game' and pick the 'Demos' button on the lower right corner to play or manage them. @@ -517,7 +536,7 @@ Hedgewars is Open Source and Freeware we create in our spare time. If you like it, help us with a small donation or contribute your own work! 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ę! Hedgewars is Open Source and Freeware we create in our spare time. Share it with your family and friends as you like! @@ -527,17 +546,17 @@ From time to time there will be official tournaments. Upcoming events will be announced at http://www.hedgewars.org/ some days in advance. 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/ . Hedgewars is available in many languages. If the translation in your language seems to be missing or outdated, feel free to contact us! 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ć! Hedgewars can be run on lots of different operating systems including Microsoft Windows, Mac OS X and Linux. 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. Always remember you're able to set up your own games in local and network/online play. You're not restricted to the 'Simple Game' option. @@ -572,7 +591,7 @@ Especially while playing online be polite and always remember there might be some minors playing with or against you as well! 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! Special game modes such as 'Vampirism' or 'Karma' allow you to develop completely new tactics. Try them in a custom game! @@ -582,22 +601,22 @@ The Windows version of Hedgewars supports Xfire. Make sure to add Hedgwars to its game list so your friends can see you playing. 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. You should never install Hedgewars on computers you don't own (school, university, work, etc.). Please ask the responsible person instead! 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! Hedgewars can be perfect for short games during breaks. Just ensure you don't add too many hedgehogs or use an huge map. Reducing time and health might help as well. 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. No hedgehogs were harmed in making this game. Tips - Żadny jeż nie został ranny w czasie tworzenia tej gry. + Żaden jeż nie został ranny w czasie tworzenia tej gry. Connect one or more gamepads before launching the game to be able to assign their controls to your teams. @@ -612,12 +631,12 @@ Connect one or more gamepads before starting the game to be able to assign their controls to your teams. 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. Create an account on %1 to keep others from using your most favourite nickname while playing on the official server. 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. If your graphics card isn't able to provide hardware accelerated OpenGL, try to update the associated drivers. @@ -637,7 +656,7 @@ Some weapons require special strategies or just lots of training, so don't give up on a particular tool if you miss an enemy once. 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. Most weapons won't work once they touch the water. The Homing Bee as well as the Cake are exceptions to this. @@ -647,22 +666,22 @@ The Old Limbuger only causes a small explosion. However the wind affected smelly cloud can poison lots of hogs at once. 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. The Piano Strike is the most damaging air strike. You'll lose the hedgehog performing it, so there's a huge downside as well. 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. The Homing Bee can be tricky to use. It's turn radius depends on it's velocity, so try to not use full power. 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. Sticky Mines are a perfect tool to create small chain reactions knocking enemy hedgehogs into dire situations ... or water. 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. The Hammer is most effective when used on bridges or girders. Hit hogs will just break through the ground. @@ -672,7 +691,7 @@ If you're stuck behind an enemy hedgehog, use the Hammer to free yourself without getting damaged by an explosion. 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. The Cake's maximum walking distance depends on the ground it has to pass. Use [attack] to detonate it early. @@ -682,7 +701,7 @@ The Flame Thrower is a weapon but it can be used for tunnel digging as well. 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. Use the Incinerating Grenade to temporary keep hedgehogs from passing terrain such as tunnels or platforms. @@ -692,7 +711,7 @@ Want to know who's behind the game? Click on the Hedgewars logo in the main menu to see the credits. 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. Like Hedgewars? Become a fan on %1 or follow us on %2! @@ -702,12 +721,12 @@ Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online. 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ć. Really want to wear a specific hat? Donate to us and receive an exclusive hat of your choice! 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! Keep your video card drivers up to date to avoid issues playing the game. @@ -737,7 +756,7 @@ You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. 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. You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. @@ -760,7 +779,7 @@ Please select server from the list above - Wybierz serwer z listy powyżej + Wybierz serwer z powyższej listy @@ -809,31 +828,31 @@ You can't edit teams from team selection. Go back to main menu to add, edit or delete teams. - 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. New scheme - + Nowy schemat Edit scheme - + Edytuj schemat Delete scheme - + Usuń schemat New weapon set - + Nowy zestaw uzbrojenia Edit weapon set - + Edytuj zestaw uzbrojenia Delete weapon set - + Usuń zestaw uzbrojenia @@ -919,15 +938,15 @@ Games may be played on precreated or randomized maps. - Gry mogą być rozgrywane na losowych lub uprzednio stworznych mapach. + Gry mogą być rozgrywane na losowych lub uprzednio stworzonych mapach. The Game Scheme defines general options and preferences like Round Time, Sudden Death or Vampirism. - 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. The Weapon Scheme defines available weapons and their ammunition count. - Schemat uzbrojenia określa dostępną broń oraz ilość amunicji. + Zestaw uzbrojenia określa dostępną broń oraz ilość amunicji. There are %1 clients connected to this room. @@ -1096,15 +1115,15 @@ You will not have to worry about wind anymore. - + Wiatr nie jest już problemem. Wind will affect almost everything. - + Wiatr ma wpływ na prawie każdą broń. Copy - + Kopiuj @@ -1119,11 +1138,11 @@ New - Nowy + Nowy Copy - + Kopiuj @@ -1331,11 +1350,11 @@ Normal - + Normalna hand drawn map... - + Mapa rysowana ręcznie... @@ -1390,7 +1409,7 @@ Schemes and Weapons - + Schematy i uzbrojenie @@ -1577,11 +1596,11 @@ % Rope Length - + Długość liny w % Gameplay - + Rozgrywka @@ -1634,7 +1653,7 @@ Really delete this weapon set? - Czy naprawdę usunąć ten zestaw uzbrojenia? + Czy na pewno usunąć ten zestaw uzbrojenia? Can not overwrite default weapon set '%1'! @@ -1650,27 +1669,27 @@ Teams - Drużyny + Drużyny Really delete this team? - + Na pewno usunąć tę drużynę? Schemes - + Schematy Can not delete default scheme '%1'! - + Nie można usunąć domyśłnego schematu '%1'! Really delete this game scheme? - + Na pewno usunąć ten schemat? Can not delete default weapon set '%1'! - + Nie można usunąć domyśłnego zestawu usbrojenia '%1'! @@ -1768,7 +1787,11 @@ Set - + Ustaw + + + more + Więcej @@ -1822,11 +1845,11 @@ new - nowy + nowy copy of - + kopia @@ -1936,11 +1959,11 @@ Disable Wind - + Wyłącz wiatr More Wind - + 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 @@ checar Semeie + + Set + Esquema + HWNetServersModel @@ -1356,7 +1360,7 @@ Normal - Normal + Normal hand drawn map... @@ -1790,7 +1794,11 @@ Set Esquema esta muito genérico - Esquema + Esquema + + + more + 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 @@ copy of - + copia de @@ -46,7 +46,7 @@ When this option is enabled selecting a game scheme will auto-select a weapon - + Com esta opção activada o esquema de jogo irá automaticamente seleccionar uma arma @@ -188,7 +188,11 @@ Seed - + Semente + + + Set + Definir @@ -326,31 +330,31 @@ PageDrawMap Undo - + Anular Clear - + Limpar Load - Carregar + Carregar Save - + Gravar Load drawn map - + Carregar mapa desenhado Drawn Maps (*.hwmap);;All files (*.*) - + Mapas Desenhados (*.hwmap);;Todos os ficheiros (*.*) Save drawn map - + Gravar mapa desenhado @@ -421,10 +425,6 @@ (%1 mortos) - - (%1 kills) - (%1 mortos) - <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts. @@ -568,11 +568,6 @@ Nenhum ouriço foi mal tratado durante a produção deste jogo. - Want to save ropse? Release the rope in mid air and then shoot again. As long as you don't touch the ground you'll reuse your rope without wasting ammo! - 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! - - Hedgewars is Open Source and Freeware we create in our spare time. If someone sold you the game, you should try get a refund! Tips O Hedgewars é Open Source e Freeware desenvolvido durante o tempo livre. Se alguem te vendeu o jogo, tente obter o reembolso! @@ -665,7 +660,7 @@ Like Hedgewars? Become a fan on %1 or follow us on %2! 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! Feel free to draw your own graves, hats, flags or even maps and themes! But note that you'll have to share them somewhere to use them online. @@ -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. - You can find your Hedgewars configuration files under "Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. - 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. - - You're able to associate Hedgewars related files (savegames and demo recordings) with the game to launch them right from your favorite file or internet browser. 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 @@ You can find your Hedgewars configuration files under "Library/Application Support/Hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. 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. You can find your Hedgewars configuration files under ".hedgewars" in your home directory. Create backups or take the files with you, but don't edit them by hand. 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 @@ New scheme - + Novo esquema Edit scheme - + Editar esquema Delete scheme - + Apagar esquema New weapon set - + Novo esquema de armas Edit weapon set - + Editar esquema de armas Delete weapon set - + Apagar esquema de armas @@ -1062,15 +1052,15 @@ You will not have to worry about wind anymore. - + Não vais ter de te preocupar mais com o vento. Wind will affect almost everything. - + O vento afecta quase tudo. Copy - + Copiar @@ -1085,11 +1075,11 @@ New - Novo + Novo Copy - + Copiar @@ -1268,12 +1258,8 @@ Predefinido - Normal - - - hand drawn map... - + mapa desenhado à mão... @@ -1328,7 +1314,7 @@ Schemes and Weapons - + Esquemas e Armamento @@ -1499,11 +1485,11 @@ % Rope Length - + % Comprimento da Corda Gameplay - + Jogabilidade @@ -1572,27 +1558,27 @@ Teams - Equipas + Equipas Really delete this team? - + Deseja mesmo apagar esta equipa? Schemes - + Esquemas Can not delete default scheme '%1'! - + Não é possível eliminar o esquema por omisão '%1'! Really delete this game scheme? - + Deseja mesmo apagar este esquema de jogo? Can not delete default weapon set '%1'! - + Não é possível eliminar o esquema de armas por omisão '%1'! @@ -1689,8 +1675,8 @@ Associar com as extensões dos ficheiros - Set - + more + mais @@ -1744,11 +1730,11 @@ new - novo + novo copy of - + copia de @@ -1858,11 +1844,11 @@ Disable Wind - + Desactivar Vento More Wind - + 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 @@ Seed + + Set + + HWNetServersModel @@ -1269,10 +1273,6 @@ По умолчанию - Normal - - - hand drawn map... @@ -1700,7 +1700,7 @@ Сопоставить расширения файлов - Set + more 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 @@ Seed Zrno + + Set + Nastaviť + HWNetServersModel @@ -1319,7 +1323,7 @@ Normal - Normálna + Normálna hand drawn map... @@ -1751,7 +1755,11 @@ Set - Nastaviť + Nastaviť + + + more + 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 @@ Seed Frö + + Set + Ange + HWNetServersModel @@ -1297,7 +1301,7 @@ Normal - Vanligt + Vanligt hand drawn map... @@ -1724,7 +1728,11 @@ Set - Ange + Ange + + + more + 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 @@ Seed + + Set + + HWNetServersModel @@ -1199,10 +1203,6 @@ Öntanımlı - Normal - - - hand drawn map... @@ -1620,7 +1620,7 @@ - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1269,10 +1273,6 @@ За замовчуванням - Normal - - - hand drawn map... @@ -1690,7 +1690,7 @@ Асоціювати файлові розширення - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1305,10 +1309,6 @@ 疯狂刺猬 - Normal - - - hand drawn map... @@ -1726,7 +1726,7 @@ 相关文件扩展 - Set + more 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 @@ Seed + + Set + + HWNetServersModel @@ -1227,10 +1231,6 @@ 默認 - Normal - - - hand drawn map... @@ -1648,7 +1648,7 @@ - Set + more 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 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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