# HG changeset patch # User unc0rr # Date 1311752503 -14400 # Node ID d080fb32d703642fa0fc797c51f57b18bc887d35 # Parent 0caa7519cbd1af588819f0a34523cf9f14db0b95# Parent 3134fafcfe125c87513d2260d265c7800a38d232 Merge diff -r 0caa7519cbd1 -r d080fb32d703 ChangeLog.txt --- a/ChangeLog.txt Wed Jul 27 11:39:08 2011 +0400 +++ b/ChangeLog.txt Wed Jul 27 11:41:43 2011 +0400 @@ -1,6 +1,46 @@ + features * bugfixes +0.9.15 -> ???: + + New modes: The Specialists, Space Invasion + + Installing content (anything under Data/ - maps, sounds, and any such stuff) to user profile allows custom adding/overriding of any Data/ content + + Sudden Death art + + New Weapon/Utility: Land Spray Gun + + New Game mode: Tag team + + Allow up to 8 teams in a game + + Shoppa scheme by default resets ammo + + Shots are on a tenth of a second delay instead of a 1 and a quarter second delay (fast deagle/portal fire) + + Defective mines explode if they take enough damage + + Rope head can attach to hogs/crates/barrels again (rope still passes through them) + + Control of grenade bounce + + Drill Strike bombs don't explode when leaving ground, but after a (customizable!) timer + + Ukranian localization of Default voice. support for localized voices + + Theme cleanup, including the new theme config file change + + Improvements in scoring and tracking damage + + Camera tracking now toggleable + + Mudball does not end turn + + Indicator for height of plane when using napalm + + Land smoothing (looks less pixelated on generation and damage) + + Improved lua script support (e.g. possibility to change hats) + * Prevent portaling to impossible locations better + * Snow accumulates more smoothly + * Rope should be less sticky now + * Fix for last portal shot always being yellow + * More accurate napalm strike drop location + * AI fixes + * Fixed locales, such as korean + * Code refactoring + * Various bug/leak fixes + +Frontend/Menu and Netgame: + + Drawing straight lines in drawn map mode + + Autokick ignored players joining your room + + Improved nick sorting in lobby and rooms. (not case-sensitive, letters first, friend @ top, ignored @ bottom) + + Display player count in lobby + + Lobby: Player names of online players can be clicked in chat directly so that you don't have to find them in the player list + * Fix invisible icons in popup menus + * Various fixes and adjustments + 0.9.14 -> 0.9.15: + Ability to create, save and load hand drawn maps + New maps: Capture the Flag (Blizzard) Map diff -r 0caa7519cbd1 -r d080fb32d703 QTfrontend/mapContainer.cpp --- a/QTfrontend/mapContainer.cpp Wed Jul 27 11:39:08 2011 +0400 +++ b/QTfrontend/mapContainer.cpp Wed Jul 27 11:41:43 2011 +0400 @@ -175,7 +175,7 @@ connect(cbTemplateFilter, SIGNAL(activated(int)), this, SLOT(setTemplateFilter(int))); maze_size_label = new QLabel(tr("Type"), mapWidget); - mainLayout.addWidget(maze_size_label, 2, 0); + mapLayout->addWidget(maze_size_label, 2, 0); maze_size_label->hide(); cbMazeSize = new QComboBox(mapWidget); cbMazeSize->addItem(tr("Small tunnels"), 0); diff -r 0caa7519cbd1 -r d080fb32d703 QTfrontend/teamselhelper.cpp --- a/QTfrontend/teamselhelper.cpp Wed Jul 27 11:39:08 2011 +0400 +++ b/QTfrontend/teamselhelper.cpp Wed Jul 27 11:41:43 2011 +0400 @@ -49,7 +49,7 @@ QIcon(QString(":/res/botlevels/net%1.png").arg(m_team.difficulty)) : QIcon(QString(":/res/botlevels/%1.png").arg(m_team.difficulty)); - butt = new QPushButton(difficultyIcon, team.TeamName, this); + butt = new QPushButton(difficultyIcon, team.TeamName.replace("&","&&"), this); butt->setFlat(true); butt->setToolTip(team.Owner); mainLayout.addWidget(butt); diff -r 0caa7519cbd1 -r d080fb32d703 gameServer/Actions.hs --- a/gameServer/Actions.hs Wed Jul 27 11:39:08 2011 +0400 +++ b/gameServer/Actions.hs Wed Jul 27 11:41:43 2011 +0400 @@ -45,6 +45,8 @@ | KickClient ClientIndex | KickRoomClient ClientIndex | BanClient NominalDiffTime B.ByteString ClientIndex + | BanIP B.ByteString NominalDiffTime B.ByteString + | BanList | ChangeMaster | RemoveClientTeams ClientIndex | ModifyClient (ClientInfo -> ClientInfo) @@ -393,12 +395,25 @@ modify (\s -> s{clientIndex = Just banId}) clHost <- client's host currentTime <- io getCurrentTime - let msg = B.concat ["Ban for ", B.pack . show $ seconds, "seconds (", reason, ")"] + let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"] mapM_ processAction [ AddIP2Bans clHost msg (addUTCTime seconds currentTime) , KickClient banId ] +processAction (BanIP ip seconds reason) = do + currentTime <- io getCurrentTime + let msg = B.concat ["Ban for ", B.pack . show $ seconds, " (", reason, ")"] + processAction $ + AddIP2Bans ip msg (addUTCTime seconds currentTime) + +processAction BanList = do + ch <- client's sendChan + bans <- gets (bans . serverInfo) + processAction $ + AnswerClients [ch] ["BANLIST", B.pack $ show bans] + + processAction (KickRoomClient kickId) = do modify (\s -> s{clientIndex = Just kickId}) @@ -442,15 +457,13 @@ si <- gets serverInfo let validBans = filter (checkNotExpired clTime) $ bans si let ban = L.find (checkBan clHost clNick) $ validBans - when (isJust ban) $ - mapM_ processAction [ + mapM_ processAction $ ModifyServerInfo (\s -> s{bans = validBans}) - , ByeClient (getBanReason $ fromJust ban) - ] + : [ByeClient (getBanReason $ fromJust ban) | isJust ban] where checkNotExpired testTime (BanByIP _ _ time) = testTime `diffUTCTime` time <= 0 checkNotExpired testTime (BanByNick _ _ time) = testTime `diffUTCTime` time <= 0 - checkBan ip _ (BanByIP bip _ _) = bip == ip + checkBan ip _ (BanByIP bip _ _) = bip `B.isPrefixOf` ip checkBan _ n (BanByNick bn _ _) = bn == n getBanReason (BanByIP _ msg _) = msg getBanReason (BanByNick _ msg _) = msg diff -r 0caa7519cbd1 -r d080fb32d703 gameServer/HWProtoLobbyState.hs --- a/gameServer/HWProtoLobbyState.hs Wed Jul 27 11:39:08 2011 +0400 +++ b/gameServer/HWProtoLobbyState.hs Wed Jul 27 11:41:43 2011 +0400 @@ -154,6 +154,16 @@ cl <- thisClient banId <- clientByNick banNick return [BanClient 60 reason (fromJust banId) | isAdministrator cl && isJust banId && fromJust banId /= ci] + +handleCmd_lobby ["BANIP", ip, reason, duration] = do + (ci, _) <- ask + cl <- thisClient + return [BanIP ip (readInt_ duration) reason | isAdministrator cl] + +handleCmd_lobby ["BANLIST"] = do + (ci, _) <- ask + cl <- thisClient + return [BanList | isAdministrator cl] handleCmd_lobby ["SET_SERVER_VAR", "MOTD_NEW", newMessage] = do diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Locale/bg.txt --- a/share/hedgewars/Data/Locale/bg.txt Wed Jul 27 11:39:08 2011 +0400 +++ b/share/hedgewars/Data/Locale/bg.txt Wed Jul 27 11:41:43 2011 +0400 @@ -12,7 +12,7 @@ 00:09=Пистолет 00:10=Динамит 00:11=Бухалка -00:12=Shoryuken +00:12=Шурикен 00:13=сек 00:14=Парашут 00:15=Въздушна Атака @@ -45,22 +45,22 @@ 01:04=На Пауза 01:05=Наистина ли напускате (Y/Esc)? 01:06=Внезапна смърт! -01:07=%1 Remaining -01:08=Fuel +01:07=%1 остава +01:08=Гориво ; Event messages -; Hog (%1) died -02:00=%1 has kicked the bucket! -02:00=%1 has seen the light! -02:00=%1 never saw that comming! -; Hog (%1) drowned -02:01=%1 plays submarine! -02:01=%1 mimics the Titanic! -02:01=%1 swims like a stone! +; Hog (%1) умря +02:00=%1 гушна букета! +02:00=%1 видя светлината! +02:00=%1 не видя откъде му дойде! +; Таралежа (%1) се удави +02:01=%1 се прави на подводница! +02:01=%1 имитира Титаник! +02:01=%1 плува като камък! ; Match starts -02:02=Let's fight! -02:02=Armed and ready! -; Hog shot an home run (using the bat and another hog) -02:10=Home Run! -02:10=A bird, a plane, ... -02:10=That one is out! +02:02=Бой! +02:02=Зареден и готов! +; Таралежа отбеляза хоумрън (използвайки бухалка и друг таралеж) +02:10=Х!оумрън +02:10=Птица ли е, самолет ли е, ... +02:10=Този е вън от играта! diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Locale/hedgewars_bg.ts --- a/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed Jul 27 11:39:08 2011 +0400 +++ b/share/hedgewars/Data/Locale/hedgewars_bg.ts Wed Jul 27 11:41:43 2011 +0400 @@ -5,18 +5,18 @@ AmmoSchemeModel new - Нов отбор + Нов copy of - + копие на FreqSpinBox Never - + Никога Every %1 turn @@ -30,11 +30,11 @@ GameCFGWidget Edit schemes - + Редактиране на схемите Edit weapons - + Редактиране на оръжията Error @@ -46,26 +46,26 @@ 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 беше премахнат от списъка с игнорирани %1 *** %2 has been added to your ignore list - + %1 *** %2 беше добавен към списъка с игнорирани %1 *** %2 has been removed from your friends list - + %1 *** %2 беше премахнат от списъка с приятели %1 *** %2 has been added to your friends list - + %1 *** %2 беше добавен към списъка с приятели @@ -96,17 +96,17 @@ DefaultTeam - + СтандартенОтбор Hedgewars Demo File File Types - + Файл с демо на Hedgewars Hedgewars Save File File Types - + Файл със запазена игра на Hedgewars @@ -160,31 +160,31 @@ Type - + Тип Small tunnels - + Малки тунели Medium tunnels - + Средни тунели Large tunnels - + Големи тунели Small floating islands - + Малки плаващи острови Medium floating islands - + Средни плаващи острови Large floating islands - + Големи плаващи острови Seed @@ -222,11 +222,11 @@ You got kicked - + Вие бяхте изхвърлен Password - + Парола Quit reason: @@ -238,26 +238,29 @@ %1 *** %2 has joined the room - + %1 *** %2 се присъедини към стаята %1 *** %2 has joined - + %1 *** %2 се присъедини %1 *** %2 has left (%3) - + %1 *** %2 напусна (%3) %1 *** %2 has left - + %1 *** %2 напусна Your nickname %1 is registered on Hedgewars.org Please provide your password below or pick another nickname in game config: - + Прякорът ви %1 е +регистриран на Hedgewars.org +Моля въдете паролата си по-долу +или изберете друг прякор в настройките на играта: @@ -271,69 +274,69 @@ 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 (*.*) - + Начертани карти (*.hwmap);;Всички файлове (*.*) Save drawn map - + Запазване на начертана карта @@ -355,19 +358,19 @@ Details - + Подробности Health graph - + Графика на здрането Ranking - + Класиране The best shot award was won by <b>%1</b> with <b>%2</b> pts. - + Наградата за най-добър изстрел беше спечелена от <b>%1</b> с <b>%2</b> pts. The best killer is <b>%1</b> with <b>%2</b> kills in a turn. @@ -380,7 +383,6 @@ A total of <b>%1</b> hedgehog(s) were killed during this round. - @@ -392,8 +394,7 @@ <b>%1</b> thought it's good to shoot his own hedgehogs with <b>%2</b> pts. - - + @@ -401,14 +402,12 @@ <b>%1</b> killed <b>%2</b> of his own hedgehogs. - <b>%1</b> was scared and skipped turn <b>%2</b> times. - @@ -690,18 +689,18 @@ PageNetGame Control - + Контрол PageNetType LAN game - + Игра по локална мрежа Official server - + Официален сървър @@ -716,35 +715,35 @@ 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 - + Изтриване на комплекта оръжия @@ -794,7 +793,7 @@ Admin features - + Административни функционалности Error @@ -806,37 +805,39 @@ 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. - + %1 е домакина. Той може да променя настройките и да започне играта. 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. @@ -849,7 +850,6 @@ There are %1 teams participating in this room. - @@ -862,36 +862,37 @@ 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? - + Играта, към която се опитвате да се присъедините вече е започнала. +Все още ли желаете да се присъедините към стаята? @@ -1021,11 +1022,11 @@ New - + Ново Copy - + Копиране @@ -1040,7 +1041,7 @@ Training Mode (Practice your skills in a range of training missions). IN DEVELOPMENT - Тренировка (упражнете уменията си в редица тренировъчни мисии). РАЗРАБОТВА СЕ + Тренировка (упражнете уменията си в редица тренировъчни мисии). В ПРОЦЕС НА РАЗРАБОТКА Demos (Watch recorded demos) @@ -1052,7 +1053,7 @@ Campaign Mode (...). IN DEVELOPMENT - + Режим кампания (...). В ПРОЦЕС НА РАЗРАБОТКА @@ -1063,7 +1064,7 @@ Ban - + Забраняване Start @@ -1083,30 +1084,30 @@ Follow - + Следване Ignore - + Игнориране Add friend - + Добавяне на приятел Unignore - + Отмяна на игнориране Remove friend - + Премахване на приятел QCheckBox Check for updates at startup - + Проверяване за обновления при стартиране Enable sound @@ -1130,7 +1131,7 @@ Frontend fullscreen - Преден пълен екран + Пълен екран Append date and time to record file name @@ -1138,19 +1139,19 @@ Show ammo menu tooltips - + Показване на подсказки за боеприпасите Enable frontend sounds - + Включване на звуци Enable frontend music - + Включване на музика Frontend effects - + Ефекти @@ -1169,31 +1170,31 @@ (System default) - + (Стандартно за системата) generated maze... - + генериран лабиринт... Mission - + Мисия Community - + Общност Any - + Без значение In lobby - + В лоби In progress - + В прогрес Default @@ -1201,11 +1202,11 @@ hand drawn map... - + Ръчно нарисувана карта... Disabled - + Изключено Red/Cyan @@ -1248,11 +1249,11 @@ QGroupBox Game Modifiers - + Модификатори на играта Basic Settings - + Основни настройки Team Members @@ -1288,54 +1289,54 @@ Team Settings - + Настройки на отборите Misc - + Разни Schemes and Weapons - + Схеми и оръжия QLabel Game scheme - Игрови настройки + Игрови схеми Damage Modifier - + Модификатор на щетите Turn Time - + Време за ход Initial Health - + Начално здраве Sudden Death Timeout - + Изтичане на времето на внезапната смърт Crate Drops - + Пускане на кашони Mines Time - + Време на мините Mines - + Мини Scheme Name: - + Име на схемата: Net nick @@ -1407,39 +1408,39 @@ 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! @@ -1447,35 +1448,35 @@ Quality - + Качество % Health Crates - + % кашони със здраве Health in Crates - + Здраве в кашоните Sudden Death Water Rise - + Покачване на водата при Внезапна смърт Sudden Death Health Decrease - + Намаляване на здравето при Внезапна смърт % Rope Length - + % Дължина на въжето Gameplay - + Геймплей Stereo rendering - + Стерео режим @@ -1532,39 +1533,39 @@ Can not overwrite default weapon set '%1'! - + Не моге да се презапише стандартния комплект с оръжия '%1'! All file associations have been set. - + Всички файлови асоциации са зададени. File association failed. - + Файловата асоциация се провали. Teams - Отбори + Отбори Really delete this team? - + Наистина ли да бъде изтрит този отбор? Schemes - + Схеми Can not delete default scheme '%1'! - + Стандартната схема '%1' не може да бъде изтрита! Really delete this game scheme? - + Наистина ли да бъде изтрите тази игрова схема? Can not delete default weapon set '%1'! - + Не моге да се изтрие стандартния комплект с оръжия '%1'! @@ -1583,11 +1584,11 @@ Nickname - + Прякор Please enter your nickname - + Моля въведете прякорът си @@ -1654,73 +1655,73 @@ Random Team - + Случаен отбор Associate file extensions - + Асоцииране на файлови разширения more - + повече QTableWidget Room Name - + Име на стаята C - + C T - + T Owner - + Притежател Map - Карта + Карта Rules - + Правила Weapons - Оръжия + Оръжия SelWeaponWidget Weapon set - + Комплект оръжия Probabilities - + Веротности Ammo in boxes - + Боеприпаси в кашоните Delays - + Закъснения new - Нов отбор + нов copy of - + копие на @@ -1742,95 +1743,95 @@ ToggleButtonWidget Fort Mode - + Режим на фортове Divide Teams - + Разделяне на отборите Solid Land - + Твърда земя Add Border - Добави гранична ивица + Добави гранична ивица Low Gravity - + Ниска гравитация Laser Sight - + Лазерен мерник Invulnerable - + Неуязвимост Vampirism - + Вампиризъм Karma - + Карма Artillery - + Артилерия 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 - + Още вятър @@ -1975,120 +1976,120 @@ zoom in - + Приближаване zoom out - + Отдалечаване reset zoom - + Изчиставане на мащабирането long jump - + Дълъг скок high jump - + Висок скок slot 10 - Слот 10 + Слот 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) @@ -2112,11 +2113,11 @@ Button - + Бутон Keyboard - + Клавиатура Delete diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Bamboo_Thicket.lua Wed Jul 27 11:41:43 2011 +0400 @@ -0,0 +1,87 @@ + +loadfile(GetDataPath() .. "Scripts/Locale.lua")() + +local player = nil +local enemy = nil +local firedShell = false +local turnNumber = 0 + +local hhs = {} +local numhhs = 0 + +function onGameInit() + + Seed = 0 + TurnTime = 20000 + CaseFreq = 0 + MinesNum = 0 + Explosives = 0 + Map = "Bamboo" + Theme = "Bamboo" + + AddTeam(loc("Pathetic Resistance"), 14483456, "Simple", "Island", "Default") + player = AddHog("Ikeda", 0, 10, "StrawHat") + + AddTeam(loc("Cybernetic Empire"), 1175851, "Simple", "Island", "Default") + enemy = AddHog(loc("Unit 835"), 5, 10, "cyborg") + + SetGearPosition(player,1166,1680) + SetGearPosition(enemy,2848,1443) + +end + + +function onGameStart() + + ShowMission(loc("Bamboo Thicket"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), -amBazooka, 0) + + --WEAPON CRATE LIST. WCRATES: 1 + SpawnAmmoCrate(1915,1876,amBazooka) + --UTILITY CRATE LIST. UCRATES: 2 + SpawnUtilityCrate(1986,1141,amBlowTorch) + SpawnUtilityCrate(1427,1527,amParachute) + + AddAmmo(enemy, amGrenade, 100) + +end + +function onNewTurn() + SetWind(100) + turnNumber = turnNumber + 1 +end + +function onAmmoStoreInit() + SetAmmo(amSkip, 9, 0, 0, 0) + SetAmmo(amGirder, 4, 0, 0, 0) + SetAmmo(amBlowTorch, 0, 0, 0, 1) + SetAmmo(amParachute, 0, 0, 0, 2) + SetAmmo(amBazooka, 0, 0, 0, 2) +end + + +function onGearAdd(gear) + + if GetGearType(gear) == gtHedgehog then + hhs[numhhs] = gear + numhhs = numhhs + 1 + elseif GetGearType(gear) == gtShell then + firedShell = true + end + +end + +function onGearDelete(gear) + + if (gear == enemy) then + + ShowMission(loc("Bamboo Thicket"), loc("MISSION SUCCESSFUL"), loc("Congratulations!"), 0, 0) + + if (turnNumber < 6) and (firedShell == false) then + AddCaption(loc("Achievement Unlocked") .. ": " .. loc("Energetic Engineer"),0xffba00ff,capgrpMessage2) + end + + elseif gear == player then + ShowMission(loc("Bamboo Thicket"), loc("MISSION FAILED"), loc("Oh no! Just try again!"), -amSkip, 0) + end + +end diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Ball.png Binary file share/hedgewars/Data/Themes/Golf/Ball.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Border.png Binary file share/hedgewars/Data/Themes/Golf/Border.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Car.png Binary file share/hedgewars/Data/Themes/Golf/Car.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Chunk.png Binary file share/hedgewars/Data/Themes/Golf/Chunk.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Clouds.png Binary file share/hedgewars/Data/Themes/Golf/Clouds.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Club.png Binary file share/hedgewars/Data/Themes/Golf/Club.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Flag1.png Binary file share/hedgewars/Data/Themes/Golf/Flag1.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Flag2.png Binary file share/hedgewars/Data/Themes/Golf/Flag2.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Flake.png Binary file share/hedgewars/Data/Themes/Golf/Flake.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Girder.png Binary file share/hedgewars/Data/Themes/Golf/Girder.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Hole.png Binary file share/hedgewars/Data/Themes/Golf/Hole.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/LandBackTex.png Binary file share/hedgewars/Data/Themes/Golf/LandBackTex.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/LandTex.png Binary file share/hedgewars/Data/Themes/Golf/LandTex.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Sky.png Binary file share/hedgewars/Data/Themes/Golf/Sky.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/SkyL.png Binary file share/hedgewars/Data/Themes/Golf/SkyL.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/SkyR.png Binary file share/hedgewars/Data/Themes/Golf/SkyR.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/Tee.png Binary file share/hedgewars/Data/Themes/Golf/Tee.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/horizont.png Binary file share/hedgewars/Data/Themes/Golf/horizont.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/icon.png Binary file share/hedgewars/Data/Themes/Golf/icon.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/icon@2x.png Binary file share/hedgewars/Data/Themes/Golf/icon@2x.png has changed diff -r 0caa7519cbd1 -r d080fb32d703 share/hedgewars/Data/Themes/Golf/theme.cfg --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/hedgewars/Data/Themes/Golf/theme.cfg Wed Jul 27 11:41:43 2011 +0400 @@ -0,0 +1,15 @@ +sky = 117, 141, 186 +border = 38, 114, 35 +water-top = $54, $5C, $9D +water-bottom = $34, $3C, $7D +water-opacity = $80 +music = nature.ogg +clouds = 9 +object = Ball, 3, 0, 18, 24, 6, 1, 0, 0, 24, 13 +object = Tee, 1, 6, 22, 5, 4, 1, 0, 0, 16, 20 +object = Car, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215 +object = Hole, 5, 0, 44, 100, 4, 1, 19, 0, 54, 41 +object = Flag1, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215 +object = Flag2, 1, 65, 258, 80, 2, 1, 0, 0, 240, 215 +object = Club, 2, 162, 254, 21, 6, 1, 0, 0, 240, 245 +flakes = 100, 1, 1000, 50, 50