Add a bunch of lua from mikade, update translation files
authormikade+nemo
Fri, 24 Dec 2010 00:53:50 -0500
changeset 4662 63aafc9c2a81
parent 4661 f5d858e4b634
child 4663 49d89e25f196
Add a bunch of lua from mikade, update translation files
share/hedgewars/Data/Locale/de.lua
share/hedgewars/Data/Locale/es.lua
share/hedgewars/Data/Locale/pl.lua
share/hedgewars/Data/Locale/pt_BR.lua
share/hedgewars/Data/Locale/pt_PT.lua
share/hedgewars/Data/Locale/sk.lua
share/hedgewars/Data/Locale/stub.lua
share/hedgewars/Data/Locale/sv.lua
share/hedgewars/Data/Maps/Control/map.cfg
share/hedgewars/Data/Maps/Control/map.lua
share/hedgewars/Data/Maps/Control/map.png
share/hedgewars/Data/Maps/Control/preview.png
share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua
share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua
share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua
share/hedgewars/Data/Missions/Training/Bazooka.lua
share/hedgewars/Data/Missions/Training/Shotgun.lua
share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua
share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua
share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua
share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua
share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua
share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.cfg
share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua
share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.cfg
share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua
share/hedgewars/Data/Themes/Christmas/theme.cfg
--- a/share/hedgewars/Data/Locale/de.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/de.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 locale = {
+--      [":("] = "",
+--      ["!!!"] = "",
 --      ["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: "] = "",
+--      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["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! 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"] = "",
+--      ["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
+--      ["Eliminate Poison before the time runs out"] = "",
+--      ["Eliminate the Blue Team"] = "",
+--      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+--      ["Enjoy the swim..."] = "",
 --	["Fastest lap: "] = "",
+--      ["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!"] = "",
+--      ["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
+--      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["- Jumping is disabled"] = "",
+--      ["Listen up, maggot!!"] = "",
+--      ["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
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 --      ["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]"] = "",
+--      ["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",
+--      ["Spooky Tree"] = "",
 --	["Team %d: "] = "",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["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"] = "",
 --	["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"] = "Die Knalltüten",
     }
--- a/share/hedgewars/Data/Locale/es.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/es.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 locale = {
+--      [":("] = "",
+--      ["!!!"] = "",
 --      ["A game of luck"] = "",
 	["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!",
 	["Bazooka Training"] = "Entrenamiento con bazuca",
 	["Best laps per team: "] = "Mejores tiempos por equipo: ",
+--      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["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! You've eliminated all targets|within the allowed time frame."] = "¡Felicidades! Has destruido todos los objectivos|dentro del tiempo establecido.", --Bazooka, Shotgun, SniperRifle
+--      ["CONTROL"] = "",
+--      ["Control pillars to score points."] = "",
+--      ["CONTROL v0.3"] = "",
+--      ["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."] = "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"] = "",
+--      ["Eliminate the Blue Team"] = "",
+--      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+--      ["Enjoy the swim..."] = "",
 	["Fastest lap: "] = "Vuelta rápida: ",
+--      ["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!"] = "",
+--      ["GO! GO! GO!"] = "",
+--      ["Good birdy......"] = "",
+--      ["Good luck out there!"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Baloncesto",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Hmmm..."] = "",
+--      ["Hooray!"] = "",
 	["Hunter"] = "Artillero", --Bazooka, Shotgun, SniperRifle
+--      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["- Jumping is disabled"] = "",
+--      ["Listen up, maggot!!"] = "",
+--      ["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: "] = "NUEVA vuelta rápida: ",
+--      ["NO JUMPING"] = "",
 	["Not So Friendly Match"] = "Partido no-tan-amistoso", -- 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, no, se te acabó el tiempo! ¿Por qué no lo intentas de nuevo?", --Bazooka, Shotgun, SniperRifle
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 --      ["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]"] = "",
+--      ["See ya!"] = "",
 	["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",
+--      ["Spooky Tree"] = "",
 	["Team %d: "] = "Equipo %d",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["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"] = "",
 	["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"] = "",
+--      ["You have SCORED!!"] = "",
+--      ["You've failed. Try again."] = "",
 	["You've reached the goal!| |Time: "] = "¡Has llegado a la meta!| |Tiempo: ",
 	["'Zooka Team"] = "Bazuqueros",
     }
--- a/share/hedgewars/Data/Locale/pl.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/pl.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 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: ",
+--      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["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! You've eliminated all targets|within the allowed time frame."] = "Gratulacje! Zniszczyłeś wszystkie cele przed upłynięciem czasu.", --Bazooka, Shotgun, SniperRifle
+--      ["CONTROL"] = "",
+--      ["Control pillars to score points."] = "",
+--      ["CONTROL v0.3"] = "",
+--      ["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."] = "Zniszcz wszystkie cele zanim upłynie czas.|W tej misji masz nieskończoną ilość amunicji.", --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: "] = "Najszybsze okrążenie: ",
+--      ["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!"] = "",
+--      ["GO! GO! GO!"] = "",
+--      ["Good birdy......"] = "",
+--      ["Good luck out there!"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Koszykówka",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Hmmm..."] = "",
+--      ["Hooray!"] = "",
 	["Hunter"] = "Strzelec", --Bazooka, Shotgun, SniperRifle
+--      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["- Jumping is disabled"] = "",
+--      ["Listen up, maggot!!"] = "",
+--      ["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: "] = "NOWE najszybsze okrążenie: ",
+--      ["NO JUMPING"] = "",
 	["Not So Friendly Match"] = "Mecz Nie-Do-Końca Towarzyski", -- 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."] = "Ajajaj! Koniec czasu! Spróbuj jeszcze raz.", --Bazooka, Shotgun, SniperRifle
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
     ["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"] = "",
+--      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["See ya!"] = "",
 	["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:", -- 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",
+--      ["Spooky Tree"] = "",
 	["Team %d: "] = "Drużyna %d: ",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
         ["There has been a mix-up with your gear and now you|have to utilize whatever is coming your way!"] = "Ktoś namieszał Tobie w plecaku i musisz sobie poradzić z tym co teraz w nim masz",
+--      ["Toxic Team"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["TrophyRace"] = "TrophyRace",
+--      ["T_T"] = "",
 	["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"] = "",
+--      ["You have SCORED!!"] = "",
+--      ["You've failed. Try again."] = "",
 	["You've reached the goal!| |Time: "] = "Dotarłeś do celu!| |Czas: ",
 	["'Zooka Team"] = "Bazookinierzy",
     }
--- a/share/hedgewars/Data/Locale/pt_BR.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/pt_BR.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 locale = {
+--      [":("] = "",
+--      ["!!!"] = "",
 --      ["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
+--      ["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! 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"] = "",
+--      ["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: ",
+--      ["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!"] = "",
+--      ["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!!"] = "",
+--      ["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
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 --      ["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]"] = "",
+--      ["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: ",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["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"] = "",
 	["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: "] = "Você alcançou o objetivo!| |Tempo: ",
 	["'Zooka Team"] = "Bazuqueiros",
     }
--- a/share/hedgewars/Data/Locale/pt_PT.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/pt_PT.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 locale = {
+--      [":("] = "",
+--      ["!!!"] = "",
 --      ["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
+--      ["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! 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"] = "",
+--      ["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: ",
+--      ["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!"] = "",
+--      ["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!!"] = "",
+--      ["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
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 --      ["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]"] = "",
+--      ["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"] = "",
+--      ["Spooky Tree"] = "",
 	["Team %d: "] = "Equipa %d: ",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["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"] = "",
 	["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: "] = "Chegaste ao fim!| |Tempo: ",
 	["'Zooka Team"] = "Bazuqueiros",
     }
--- a/share/hedgewars/Data/Locale/sk.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/sk.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 locale = {
+--      [":("] = "",
+--      ["!!!"] = "",
 --      ["A game of luck"] = "",
 	["Aiming Practice"] = "Tréning presnosti", --Bazooka, Shotgun, SniperRifle
 	["Bat balls at your enemies and|push them into the sea!"] = "Loptami triafajte vašich nepriateľov|a zhoďte ich tak do mora!",
 	["Bat your opponents through the|baskets and out of the map!"] = "Odpálkujte vašich súperov do koša|a von z mapy!",
 	["Bazooka Training"] = "Tréning s bazukou",
 	["Best laps per team: "] = "Najrýchlejšie kolá podľa tímov: ",
+--      ["Bloody Rookies"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["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! You've eliminated all targets|within the allowed time frame."] = "Gratulujem! Zneškodnili ste všetky ciele|v stanovenom čase.", --Bazooka, Shotgun, SniperRifle
+--      ["CONTROL"] = "",
+--      ["Control pillars to score points."] = "",
+--      ["CONTROL v0.3"] = "",
+--      ["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."] = "Zneškodnite všetky ciele pred vypršaním času.|Na túto misiu máte neobmedzené množstvo streliva.", --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: "] = "Najrýchlejšie kolo: ",
+--      ["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!"] = "",
+--      ["GO! GO! GO!"] = "",
+--      ["Good birdy......"] = "",
+--      ["Good luck out there!"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basketbal",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Hmmm..."] = "",
+--      ["Hooray!"] = "",
 	["Hunter"] = "Lovec", --Bazooka, Shotgun, SniperRifle
+--      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["- Jumping is disabled"] = "",
+--      ["Listen up, maggot!!"] = "",
+--      ["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: "] = "NOVÉ najrýchlejšie kolo: ",
+--      ["NO JUMPING"] = "",
 	["Not So Friendly Match"] = "Nie tak celkom priateľský zápas", -- 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."] = "Ale nie! Čas vypršal! Tak to skúste znovu.", --Bazooka, Shotgun, SniperRifle
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 --      ["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]"] = "",
+--      ["See ya!"] = "",
 	["Shotgun Team"] = "Shotgun tím",
 	["Shotgun Training"] = "Tréning s brokovnicou",
 	["%s is out and Team %d|scored a penalty!| |Score:"] = "%s je mimo hru a tím %d|dostal trestný bod!| |Skóre:", -- Basketball, Knockball
 	["%s is out and Team %d|scored a point!| |Score:"] = "%s je mimo hru a tím %d|získal bod!| |Skóre:", -- Basketball, Knockball
 	["Sniper Training"] = "Tréning pre ostreľovačov",
 	["Sniperz"] = "Ostreľovači",
+--      ["Spooky Tree"] = "",
 	["Team %d: "] = "Tím %d: ",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 --      ["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"] = "Preteky o trofej",
+--      ["T_T"] = "",
 	["Use your rope to get from start to finish as fast as you can!"] = "Použite lano na presun zo štartovnej pozície do cieľa tak rýchlo, ako to len viete!",
+--      ["Victory for the"] = "",
+--      ["You have SCORED!!"] = "",
+--      ["You've failed. Try again."] = "",
 	["You've reached the goal!| |Time: "] = "Dosiahli ste cieľ!| |Čas: ",
 	["'Zooka Team"] = "Bazuka tím",
     }
--- a/share/hedgewars/Data/Locale/stub.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/stub.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 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
+--      ["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! You've eliminated all targets|within the allowed time frame."] = "", --Bazooka, Shotgun, SniperRifle
+--      ["CONTROL"] = "",
+--      ["Control pillars to score points."] = "",
+--      ["CONTROL v0.3"] = "",
+--      ["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"] = "",
+--      ["Enjoy the swim..."] = "",
+--      ["Fastest lap: "] = "",
+--      ["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!"] = "",
+--      ["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!!"] = "",
+--      ["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 #1"] = "",
+--      ["Pathetic Hog #2"] = "",
+--      ["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]"] = "",
+--      ["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:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
+--      ["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"] = "",
+--      ["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"] = "",
     }
--- a/share/hedgewars/Data/Locale/sv.lua	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Locale/sv.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -1,30 +1,84 @@
 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"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings, User_Mission_-_Diver, User_Mission_-_Spooky_Tree
+--      ["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! 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"] = "",
+--      ["Control pillars to score points."] = "",
+--      ["CONTROL v0.3"] = "",
+--      ["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."] = "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"] = "",
+--      ["Eliminate the Blue Team"] = "",
+--      ["- Eliminate Unit 3378 |- Feeble Resistance must survive"] = "",
+--      ["Enjoy the swim..."] = "",
 	["Fastest lap: "] = "Snabbast varv: ",
+--      ["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!"] = "",
+--      ["GO! GO! GO!"] = "",
+--      ["Good birdy......"] = "",
+--      ["Good luck out there!"] = "",
 	["Hedgewars-Basketball"] = "Hedgewars-Basket",
 	["Hedgewars-Knockball"] = "Hedgewars-Knockball",
+--      ["Hmmm..."] = "",
+--      ["Hooray!"] = "",
 	["Hunter"] = "Jägare", --Bazooka, Shotgun, SniperRifle
+--      ["Instructor"] = "", -- 01#Boot_Camp, User_Mission_-_Dangerous_Ducklings
+--      ["- Jumping is disabled"] = "",
+--      ["Listen up, maggot!!"] = "",
+--      ["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: "] = "NYTT snabbast varv: ",
+--      ["NO JUMPING"] = "",
 	["Not So Friendly Match"] = "En inte så vänlig 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."] = "Åh nej! Tiden är ute! Pröva igen.", --Bazooka, Shotgun, SniperRifle
+--      ["Operation Diver"] = "",
+--      ["Opposing Team:"] = "",
+--      ["Pathetic Hog #1"] = "",
+--      ["Pathetic Hog #2"] = "",
 	["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"] = "",
+--      ["RULES OF THE GAME [Press ESC to view]"] = "",
+--      ["See ya!"] = "",
 	["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"] = "",
 	["Team %d: "] = "Lag %d: ",
+--      ["Team Scores:"] = "",
+--      ["The enemy is hiding out on yonder ducky!"] = "",
 	["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"] = "", -- User_Mission_-_Diver, User_Mission_-_Spooky_Tree, User_Mission_-_Teamwork
 	["TrophyRace"] = "TrophyRace",
+--      ["T_T"] = "",
 	["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"] = "",
+--      ["You have SCORED!!"] = "",
+--      ["You've failed. Try again."] = "",
 	["You've reached the goal!| |Time: "] = "Du har nått målet!| |Tid: ",
 	["'Zooka Team"] = "Bazookalaget",
     }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/map.cfg	Fri Dec 24 00:53:50 2010 -0500
@@ -0,0 +1,4 @@
+Deepspace
+48
+Default
+Crazy
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Maps/Control/map.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -0,0 +1,453 @@
+--------------------------------
+-- 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
+
+-----------------
+--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 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()
+
+	ShowMission(loc("CONTROL v0.3"), loc("by mikade"), loc("Control pillars to score points."), 0, 0)
+
+
+	-- 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()
+
+
+	--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
+
+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] >= 150 then
+				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
Binary file share/hedgewars/Data/Maps/Control/map.png has changed
Binary file share/hedgewars/Data/Maps/Control/preview.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Bazooka.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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 = 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
+
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Shotgun.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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 = 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/Basic_Training_-_Sniper_Rifle.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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
--- a/share/hedgewars/Data/Missions/Training/Bazooka.lua	Fri Dec 24 00:21:42 2010 -0500
+++ /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
--- a/share/hedgewars/Data/Missions/Training/Shotgun.lua	Fri Dec 24 00:21:42 2010 -0500
+++ /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
--- a/share/hedgewars/Data/Missions/Training/Sniper_Rifle.lua	Fri Dec 24 00:21:42 2010 -0500
+++ /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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Dangerous_Ducklings.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Diver.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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"), -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Spooky_Tree.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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"), -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Missions/Training/User_Mission_-_Teamwork.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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(loc("Pathetic Hog #1"), 0, 50, "NoHat")
+	p2 = AddHog(loc("Pathetic Hog #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"), 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);
+	elseif (gear == player) or (gear == p2) 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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.cfg	Fri Dec 24 00:53:50 2010 -0500
@@ -0,0 +1,2 @@
+Default
+Default
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Capture_the_Flag.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.cfg	Fri Dec 24 00:53:50 2010 -0500
@@ -0,0 +1,2 @@
+Default
+Default
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/share/hedgewars/Data/Scripts/Multiplayer/No_Jumping.lua	Fri Dec 24 00:53:50 2010 -0500
@@ -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
+
+
+
--- a/share/hedgewars/Data/Themes/Christmas/theme.cfg	Fri Dec 24 00:21:42 2010 -0500
+++ b/share/hedgewars/Data/Themes/Christmas/theme.cfg	Fri Dec 24 00:53:50 2010 -0500
@@ -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