From 9a3bba50a6e2a556e21728da15a3055c65910615 Mon Sep 17 00:00:00 2001 From: krzys-h Date: Fri, 11 Sep 2015 18:50:22 +0200 Subject: [PATCH] Added (work in progress) code battle levels --- levels/CMakeLists.txt | 7 +- levels/battles/chapter001/chaptertitle.txt | 1 + levels/battles/chapter001/level001/po/de.po | 29 +++ levels/battles/chapter001/level001/po/fr.po | 29 +++ .../chapter001/level001/po/free101.pot | 29 +++ levels/battles/chapter001/level001/po/pl.po | 29 +++ levels/battles/chapter001/level001/po/ru.po | 29 +++ levels/battles/chapter001/level001/scene.txt | 19 ++ levels/battles/chapter001/level002/po/de.po | 29 +++ levels/battles/chapter001/level002/po/fr.po | 29 +++ .../chapter001/level002/po/free101.pot | 29 +++ levels/battles/chapter001/level002/po/pl.po | 29 +++ levels/battles/chapter001/level002/po/ru.po | 29 +++ .../battles/chapter001/level002/program.txt | 215 ++++++++++++++++++ levels/battles/chapter001/level002/scene.txt | 21 ++ levels/battles/chapter001/level003/po/de.po | 29 +++ levels/battles/chapter001/level003/po/fr.po | 29 +++ .../chapter001/level003/po/free101.pot | 29 +++ levels/battles/chapter001/level003/po/pl.po | 29 +++ levels/battles/chapter001/level003/po/ru.po | 29 +++ levels/battles/chapter001/level003/scene.txt | 20 ++ levels/battles/chapter002/chaptertitle.txt | 1 + levels/battles/chapter002/level001/po/de.po | 29 +++ levels/battles/chapter002/level001/po/fr.po | 29 +++ .../chapter002/level001/po/free101.pot | 29 +++ levels/battles/chapter002/level001/po/pl.po | 29 +++ levels/battles/chapter002/level001/po/ru.po | 29 +++ levels/battles/chapter002/level001/scene.txt | 20 ++ levels/battles/chapter002/level002/po/de.po | 29 +++ levels/battles/chapter002/level002/po/fr.po | 29 +++ .../chapter002/level002/po/free101.pot | 29 +++ levels/battles/chapter002/level002/po/pl.po | 29 +++ levels/battles/chapter002/level002/po/ru.po | 29 +++ .../battles/chapter002/level002/program.txt | 76 +++++++ levels/battles/chapter002/level002/scene.txt | 20 ++ levels/battles/chapter002/level003/po/de.po | 29 +++ levels/battles/chapter002/level003/po/fr.po | 29 +++ .../chapter002/level003/po/free101.pot | 29 +++ levels/battles/chapter002/level003/po/pl.po | 29 +++ levels/battles/chapter002/level003/po/ru.po | 29 +++ levels/battles/chapter002/level003/scene.txt | 16 ++ levels/battles/level_common.txt | 109 +++++++++ levels/battles/po/de.po | 29 +++ levels/battles/po/fr.po | 29 +++ levels/battles/po/freemissions.pot | 29 +++ levels/battles/po/pl.po | 29 +++ levels/battles/po/ru.po | 29 +++ levels/battles/relief.png | Bin 0 -> 18487 bytes levels/battles/res.png | Bin 0 -> 511 bytes 49 files changed, 1537 insertions(+), 3 deletions(-) create mode 100644 levels/battles/chapter001/chaptertitle.txt create mode 100644 levels/battles/chapter001/level001/po/de.po create mode 100644 levels/battles/chapter001/level001/po/fr.po create mode 100644 levels/battles/chapter001/level001/po/free101.pot create mode 100644 levels/battles/chapter001/level001/po/pl.po create mode 100644 levels/battles/chapter001/level001/po/ru.po create mode 100644 levels/battles/chapter001/level001/scene.txt create mode 100644 levels/battles/chapter001/level002/po/de.po create mode 100644 levels/battles/chapter001/level002/po/fr.po create mode 100644 levels/battles/chapter001/level002/po/free101.pot create mode 100644 levels/battles/chapter001/level002/po/pl.po create mode 100644 levels/battles/chapter001/level002/po/ru.po create mode 100644 levels/battles/chapter001/level002/program.txt create mode 100644 levels/battles/chapter001/level002/scene.txt create mode 100644 levels/battles/chapter001/level003/po/de.po create mode 100644 levels/battles/chapter001/level003/po/fr.po create mode 100644 levels/battles/chapter001/level003/po/free101.pot create mode 100644 levels/battles/chapter001/level003/po/pl.po create mode 100644 levels/battles/chapter001/level003/po/ru.po create mode 100644 levels/battles/chapter001/level003/scene.txt create mode 100644 levels/battles/chapter002/chaptertitle.txt create mode 100644 levels/battles/chapter002/level001/po/de.po create mode 100644 levels/battles/chapter002/level001/po/fr.po create mode 100644 levels/battles/chapter002/level001/po/free101.pot create mode 100644 levels/battles/chapter002/level001/po/pl.po create mode 100644 levels/battles/chapter002/level001/po/ru.po create mode 100644 levels/battles/chapter002/level001/scene.txt create mode 100644 levels/battles/chapter002/level002/po/de.po create mode 100644 levels/battles/chapter002/level002/po/fr.po create mode 100644 levels/battles/chapter002/level002/po/free101.pot create mode 100644 levels/battles/chapter002/level002/po/pl.po create mode 100644 levels/battles/chapter002/level002/po/ru.po create mode 100644 levels/battles/chapter002/level002/program.txt create mode 100644 levels/battles/chapter002/level002/scene.txt create mode 100644 levels/battles/chapter002/level003/po/de.po create mode 100644 levels/battles/chapter002/level003/po/fr.po create mode 100644 levels/battles/chapter002/level003/po/free101.pot create mode 100644 levels/battles/chapter002/level003/po/pl.po create mode 100644 levels/battles/chapter002/level003/po/ru.po create mode 100644 levels/battles/chapter002/level003/scene.txt create mode 100644 levels/battles/level_common.txt create mode 100644 levels/battles/po/de.po create mode 100644 levels/battles/po/fr.po create mode 100644 levels/battles/po/freemissions.pot create mode 100644 levels/battles/po/pl.po create mode 100644 levels/battles/po/ru.po create mode 100644 levels/battles/relief.png create mode 100644 levels/battles/res.png diff --git a/levels/CMakeLists.txt b/levels/CMakeLists.txt index ca284ec9..34c35d04 100644 --- a/levels/CMakeLists.txt +++ b/levels/CMakeLists.txt @@ -89,9 +89,10 @@ function(add_level level_dir) endfunction() -add_level_category(challenges) -add_level_category(exercises) -add_level_category(freemissions) add_level_category(missions) +add_level_category(freemissions) +add_level_category(exercises) +add_level_category(challenges) +add_level_category(battles) install(DIRECTORY other DESTINATION ${LEVEL_INSTALL_DATA_DIR}) diff --git a/levels/battles/chapter001/chaptertitle.txt b/levels/battles/chapter001/chaptertitle.txt new file mode 100644 index 00000000..feeac910 --- /dev/null +++ b/levels/battles/chapter001/chaptertitle.txt @@ -0,0 +1 @@ +Title.E text="Code battle" resume="Code battle" diff --git a/levels/battles/chapter001/level001/po/de.po b/levels/battles/chapter001/level001/po/de.po new file mode 100644 index 00000000..76440e6d --- /dev/null +++ b/levels/battles/chapter001/level001/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs aliens" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" +msgstr "" diff --git a/levels/battles/chapter001/level001/po/fr.po b/levels/battles/chapter001/level001/po/fr.po new file mode 100644 index 00000000..32af066e --- /dev/null +++ b/levels/battles/chapter001/level001/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs aliens" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" +msgstr "" diff --git a/levels/battles/chapter001/level001/po/free101.pot b/levels/battles/chapter001/level001/po/free101.pot new file mode 100644 index 00000000..42cdb738 --- /dev/null +++ b/levels/battles/chapter001/level001/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs aliens" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" +msgstr "" diff --git a/levels/battles/chapter001/level001/po/pl.po b/levels/battles/chapter001/level001/po/pl.po new file mode 100644 index 00000000..3e7c1f54 --- /dev/null +++ b/levels/battles/chapter001/level001/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs aliens" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" +msgstr "" diff --git a/levels/battles/chapter001/level001/po/ru.po b/levels/battles/chapter001/level001/po/ru.po new file mode 100644 index 00000000..04c368f4 --- /dev/null +++ b/levels/battles/chapter001/level001/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs aliens" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" +msgstr "" diff --git a/levels/battles/chapter001/level001/scene.txt b/levels/battles/chapter001/level001/scene.txt new file mode 100644 index 00000000..1a80ed6d --- /dev/null +++ b/levels/battles/chapter001/level001/scene.txt @@ -0,0 +1,19 @@ +Title.E text="Code battle - vs aliens" +Resume.E text="A map for begginers! Research all needed technologies and build your infrastructure to kill all the aliens on the opposite side of the river - using programming only!" + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WheeledGrabber team=1 select=true +CreateObject pos=0;-38.5 type=Titanium +CreateObject pos=0;-57.5 dir=1.5 type=Derrick magnifyDamage=0 selectable=false + +// Team "Red" (2) +// TODO: Put some ants there!!! +CreateObject pos=0;40 dir=0.5 type=AlienAnt + +EndMissionTake pos=0;0 dist=10000 type=AlienAnt min=0 max=0 +EndMissionTake pos=0;0 dist=10000 type=Any team=1 lost=0 diff --git a/levels/battles/chapter001/level002/po/de.po b/levels/battles/chapter001/level002/po/de.po new file mode 100644 index 00000000..cb19c76f --- /dev/null +++ b/levels/battles/chapter001/level002/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" +msgstr "" diff --git a/levels/battles/chapter001/level002/po/fr.po b/levels/battles/chapter001/level002/po/fr.po new file mode 100644 index 00000000..b8f042c5 --- /dev/null +++ b/levels/battles/chapter001/level002/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" +msgstr "" diff --git a/levels/battles/chapter001/level002/po/free101.pot b/levels/battles/chapter001/level002/po/free101.pot new file mode 100644 index 00000000..d566c6e9 --- /dev/null +++ b/levels/battles/chapter001/level002/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" +msgstr "" diff --git a/levels/battles/chapter001/level002/po/pl.po b/levels/battles/chapter001/level002/po/pl.po new file mode 100644 index 00000000..5606d5f5 --- /dev/null +++ b/levels/battles/chapter001/level002/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" +msgstr "" diff --git a/levels/battles/chapter001/level002/po/ru.po b/levels/battles/chapter001/level002/po/ru.po new file mode 100644 index 00000000..e5b9b346 --- /dev/null +++ b/levels/battles/chapter001/level002/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" +msgstr "" diff --git a/levels/battles/chapter001/level002/program.txt b/levels/battles/chapter001/level002/program.txt new file mode 100644 index 00000000..6f5c4135 --- /dev/null +++ b/levels/battles/chapter001/level002/program.txt @@ -0,0 +1,215 @@ +object RadarFriendly(int cat) +{ + return radar(cat, 0, 360, 0, 1000, 1, FilterFriendly); +} + +object SearchObjectAt(int cat, point pos) +{ + object item = search(Titanium, pos); + if(item == null) return null; + if(distance(pos, item.position) > 0.5) return null; + return item; +} + +public void object::StandardEnemy_Recharge() +{ + object item = RadarFriendly(PowerStation); + goto(item.position); + if(this.load != null && this.load.category == PowerCell) + { + while(this.load.energyLevel < 1) wait(0.05); + } + while(this.energyLevel < 1) wait(0.05); +} + +void object::GetTitanium() +{ + object item; + do + { + item = radar(TitaniumOre, 0, 360, 0, 40); + } + while(item == null); + goto(item.position); + grab(); + item = RadarFriendly(Converter); + goto(item.position); + drop(); + move(-2.5); + point converterPos = item.position; + while((item = SearchObjectAt(Titanium, converterPos)) == null) wait(0.05); + goto(item.position); + grab(); +} + +void object::GetPowerCell() +{ + object item = radar(PowerCell, 0, 360, 0, 40); + if (item != null) + { + goto(item.position); + grab(); + if(item.energyLevel < 1) + { + StandardEnemy_Recharge(); + } + } + else + { + GetTitanium(); + item = RadarFriendly(PowerPlant); + goto(item.position); + drop(); + while(item.energyCell == null || item.energyCell.category != PowerCell) wait(0.05); + grab(); + } +} + +void object::BuildSomewhere(int cat) +{ + GetTitanium(); + goto(flatspace(this.position, 10, 10, 40, 8)); + drop(); + build(cat); +} + +void object::GoResearch(int what) +{ + GetPowerCell(); + object item = RadarFriendly(ResearchCenter); + goto(item.position); + while(item.busy()) wait(0.05); + if (item.energyCell != null) + { + drop(Behind); + grab(); + turn(90); + drop(); + turn(-90); + grab(Behind); + } + drop(); + item.research(what); +} + +void object::FactoryRobot(int cat, string program) +{ + GetTitanium(); + object item = RadarFriendly(BotFactory); + goto(item.position); + drop(); + move(-5); + item.factory(cat, program); + point pos = this.position; + GetPowerCell(); + goto(pos); + turn(direction(item.position)); + while(radar(cat, 0, 45, 0, 10) == null) wait(0.05); + goto(item.position); + drop(); + move(-5); +} + +extern void object::StandardEnemy() +{ + // TODO: Enable after done debugging + //errmode(0); + + build(Converter); + BuildSomewhere(PowerStation); + BuildSomewhere(BotFactory); + BuildSomewhere(PowerPlant); + BuildSomewhere(ResearchCenter); + GoResearch(ResearchWinged); + GoResearch(ResearchShooter); + while(true) + { + if (this.energyCell.energyLevel < 0.25) + { + StandardEnemy_Recharge(); + } + FactoryRobot(WingedShooter, "StandardEnemy_Attack"); + } +} + +public void object::StandardEnemy_Attack() +{ + while(this.energyCell == null) wait(0.05); + while(radar(Any, 180, 45, 0, 5) != null) wait(0.05); + move(-7.5); + + while(true) + { + if(this.energyCell.energyLevel < 0.3 || this.temperature > 0.5) + { + StandardEnemy_Recharge(); + while(this.temperature > 0) wait(0.05); + } + + bool isInFront = true; + object item = radar(Any, 0, 120, 0, 1000, 1, FilterEnemy); + if (item == null) + { + isInFront = false; + item = radar(Any, 0, 360, 0, 1000, 1, FilterEnemy); + if (item == null) + { + wait(0.05); + continue; + } + } + + float targetHeight = topo(this.position); + if(targetHeight < 0) targetHeight = 0; + targetHeight += 9; + + float targetSpeed = distance(this.position, item.position)/40; + if(targetSpeed > 1) targetSpeed = 1; + if(!isInFront) targetSpeed = 1; + + float targetDirection = direction(item.position); + + bool canShoot = true; + if(abs(targetDirection) > 10) canShoot = false; + if(distance(this.position, item.position) > 40) canShoot = false; + + /* + Here we calculate the aim angle + Take a look at this picture: + (yes, I'm terrible at ASCII-art :P) + + \/ target + *** + * *** + H* *** + * angle** \/ robot + ************* + L + */ + float H = item.position.z-this.position.z; + float L = distance2d(this.position, item.position); + float angle = atan(H/L); + if(aim(angle, -targetDirection) != 0) canShoot = false; // funkcja aim() zwraca != 0 jesli cel poza zasiegiem + + if(!canShoot) targetSpeed = 1; + + jet((targetHeight-this.position.z)/4); + if(targetDirection < 0) + { + motor(targetSpeed, targetSpeed+targetDirection/90); + } + else + { + motor(targetSpeed-targetDirection/90, targetSpeed); + } + + if(canShoot) + { + fire(0.1); + } + else + { + wait(0.05); + } + } +} diff --git a/levels/battles/chapter001/level002/scene.txt b/levels/battles/chapter001/level002/scene.txt new file mode 100644 index 00000000..c2ebabfd --- /dev/null +++ b/levels/battles/chapter001/level002/scene.txt @@ -0,0 +1,21 @@ +Title.E text="Code battle - vs computer" +Resume.E text="Challenge your... computer? Actually, challenge the developers! But, for real, this is just a simple enemy program that you can use if you don't have any real opponent" + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE magnifyDamage=10 + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WheeledGrabber team=1 select=true +CreateObject pos=0;-38.5 type=Titanium +CreateObject pos=0;-57.5 dir=1.5 type=Derrick magnifyDamage=0 selectable=false + +// Team "Red" (2) +// TODO: selectable=0, but only before start? +CreateObject pos=0;40 dir=0.5 type=WheeledGrabber team=2 script1="%lvl%/program.txt" scriptReadOnly1=true run=1 +CreateObject pos=0;38.5 type=Titanium +CreateObject pos=0;57.5 dir=0.5 type=Derrick magnifyDamage=0 selectable=false + +EndMissionTake pos=0;0 dist=10000 type=Any team=1 lost=0 +EndMissionTake pos=0;0 dist=10000 type=Any team=-1 min=0 max=0 diff --git a/levels/battles/chapter001/level003/po/de.po b/levels/battles/chapter001/level003/po/de.po new file mode 100644 index 00000000..91740d79 --- /dev/null +++ b/levels/battles/chapter001/level003/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter001/level003/po/fr.po b/levels/battles/chapter001/level003/po/fr.po new file mode 100644 index 00000000..310f2e54 --- /dev/null +++ b/levels/battles/chapter001/level003/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter001/level003/po/free101.pot b/levels/battles/chapter001/level003/po/free101.pot new file mode 100644 index 00000000..6fcf479c --- /dev/null +++ b/levels/battles/chapter001/level003/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter001/level003/po/pl.po b/levels/battles/chapter001/level003/po/pl.po new file mode 100644 index 00000000..46bb7cfa --- /dev/null +++ b/levels/battles/chapter001/level003/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter001/level003/po/ru.po b/levels/battles/chapter001/level003/po/ru.po new file mode 100644 index 00000000..25204a5f --- /dev/null +++ b/levels/battles/chapter001/level003/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Code battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter001/level003/scene.txt b/levels/battles/chapter001/level003/scene.txt new file mode 100644 index 00000000..600fb5f6 --- /dev/null +++ b/levels/battles/chapter001/level003/scene.txt @@ -0,0 +1,20 @@ +Title.E text="Code battle - vs other player" +Resume.E text="Challenge your friend!" + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE magnifyDamage=10 + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WheeledGrabber team=1 select=true +CreateObject pos=0;-38.5 type=Titanium +CreateObject pos=0;-57.5 dir=1.5 type=Derrick magnifyDamage=0 selectable=false + +// Team "Red" (2) +CreateObject pos=0;40 dir=0.5 type=WheeledGrabber team=2 +CreateObject pos=0;38.5 type=Titanium +CreateObject pos=0;57.5 dir=0.5 type=Derrick magnifyDamage=0 selectable=false + +EndMissionTake pos=0;0 dist=10000 type=Any team=-1 min=0 max=0 winTeam=1 +EndMissionTake pos=0;0 dist=10000 type=Any team=-2 min=0 max=0 winTeam=2 diff --git a/levels/battles/chapter002/chaptertitle.txt b/levels/battles/chapter002/chaptertitle.txt new file mode 100644 index 00000000..af5bec23 --- /dev/null +++ b/levels/battles/chapter002/chaptertitle.txt @@ -0,0 +1 @@ +Title.E text="Shooting battle" resume="Shooting battle" diff --git a/levels/battles/chapter002/level001/po/de.po b/levels/battles/chapter002/level001/po/de.po new file mode 100644 index 00000000..581756f8 --- /dev/null +++ b/levels/battles/chapter002/level001/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs static target" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Just aim & shoot! It looks so simple..." +msgstr "" diff --git a/levels/battles/chapter002/level001/po/fr.po b/levels/battles/chapter002/level001/po/fr.po new file mode 100644 index 00000000..379b2d37 --- /dev/null +++ b/levels/battles/chapter002/level001/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs static target" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Just aim & shoot! It looks so simple..." +msgstr "" diff --git a/levels/battles/chapter002/level001/po/free101.pot b/levels/battles/chapter002/level001/po/free101.pot new file mode 100644 index 00000000..88354924 --- /dev/null +++ b/levels/battles/chapter002/level001/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs static target" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Just aim & shoot! It looks so simple..." +msgstr "" diff --git a/levels/battles/chapter002/level001/po/pl.po b/levels/battles/chapter002/level001/po/pl.po new file mode 100644 index 00000000..3c8b561c --- /dev/null +++ b/levels/battles/chapter002/level001/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs static target" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Just aim & shoot! It looks so simple..." +msgstr "" diff --git a/levels/battles/chapter002/level001/po/ru.po b/levels/battles/chapter002/level001/po/ru.po new file mode 100644 index 00000000..2b53a9d2 --- /dev/null +++ b/levels/battles/chapter002/level001/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs static target" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Just aim & shoot! It looks so simple..." +msgstr "" diff --git a/levels/battles/chapter002/level001/scene.txt b/levels/battles/chapter002/level001/scene.txt new file mode 100644 index 00000000..51592e46 --- /dev/null +++ b/levels/battles/chapter002/level001/scene.txt @@ -0,0 +1,20 @@ +Title.E text="Shooting battle - vs static target" +Resume.E text="Just aim & shoot! It looks so simple..." + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE magnifyDamage=10 + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WingedShooter range=0 power=100 team=1 select=true + +// Team "Red" (2) +// TODO: selectable=0, but only before start? +CreateObject pos=0;40 dir=0.5 type=PracticeBot team=2 script1="flash.txt" scriptReadOnly1=true run=1 + +DoneResearch type=WINGER +DoneResearch type=SHOOTER + +EndMissionTake pos=0;0 dist=10000 type=Any team=1 lost=0 +EndMissionTake pos=0;0 dist=10000 type=Any team=-1 min=0 max=0 diff --git a/levels/battles/chapter002/level002/po/de.po b/levels/battles/chapter002/level002/po/de.po new file mode 100644 index 00000000..5e5af85e --- /dev/null +++ b/levels/battles/chapter002/level002/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "It's getting a bit harder now, isn't it?" +msgstr "" diff --git a/levels/battles/chapter002/level002/po/fr.po b/levels/battles/chapter002/level002/po/fr.po new file mode 100644 index 00000000..1bce39d7 --- /dev/null +++ b/levels/battles/chapter002/level002/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "It's getting a bit harder now, isn't it?" +msgstr "" diff --git a/levels/battles/chapter002/level002/po/free101.pot b/levels/battles/chapter002/level002/po/free101.pot new file mode 100644 index 00000000..35ca7555 --- /dev/null +++ b/levels/battles/chapter002/level002/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "It's getting a bit harder now, isn't it?" +msgstr "" diff --git a/levels/battles/chapter002/level002/po/pl.po b/levels/battles/chapter002/level002/po/pl.po new file mode 100644 index 00000000..0b64598d --- /dev/null +++ b/levels/battles/chapter002/level002/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "It's getting a bit harder now, isn't it?" +msgstr "" diff --git a/levels/battles/chapter002/level002/po/ru.po b/levels/battles/chapter002/level002/po/ru.po new file mode 100644 index 00000000..e68f2a43 --- /dev/null +++ b/levels/battles/chapter002/level002/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs computer" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "It's getting a bit harder now, isn't it?" +msgstr "" diff --git a/levels/battles/chapter002/level002/program.txt b/levels/battles/chapter002/level002/program.txt new file mode 100644 index 00000000..484b86f1 --- /dev/null +++ b/levels/battles/chapter002/level002/program.txt @@ -0,0 +1,76 @@ +extern void object::StandardEnemy_Attack() +{ + while(this.energyCell == null) wait(0.05); + while(radar(Any, 180, 45, 0, 5) != null) wait(0.05); + move(-7.5); + + while(true) + { + bool isInFront = true; + object item = radar(Any, 0, 120, 0, 1000, 1, FilterEnemy); + if (item == null) + { + isInFront = false; + item = radar(Any, 0, 360, 0, 1000, 1, FilterEnemy); + if (item == null) + { + wait(0.05); + continue; + } + } + + float targetHeight = topo(this.position); + if(targetHeight < 0) targetHeight = 0; + targetHeight += 9; + + float targetSpeed = distance(this.position, item.position)/40; + if(targetSpeed > 1) targetSpeed = 1; + if(!isInFront) targetSpeed = 1; + + float targetDirection = direction(item.position); + + bool canShoot = true; + if(abs(targetDirection) > 10) canShoot = false; + if(distance(this.position, item.position) > 40) canShoot = false; + + /* + Here we calculate the aim angle + Take a look at this picture: + (yes, I'm terrible at ASCII-art :P) + + \/ target + *** + * *** + H* *** + * angle** \/ robot + ************* + L + */ + float H = item.position.z-this.position.z; + float L = distance2d(this.position, item.position); + float angle = atan(H/L); + if(aim(angle, -targetDirection) != 0) canShoot = false; // funkcja aim() zwraca != 0 jesli cel poza zasiegiem + + if(!canShoot) targetSpeed = 1; + if(distance(this.position, item.position) < 20) targetSpeed = 0; + + jet((targetHeight-this.position.z)/4); + if(targetDirection < 0) + { + motor(targetSpeed, targetSpeed+targetDirection/90); + } + else + { + motor(targetSpeed-targetDirection/90, targetSpeed); + } + + if(canShoot) + { + fire(0.1); + } + else + { + wait(0.05); + } + } +} diff --git a/levels/battles/chapter002/level002/scene.txt b/levels/battles/chapter002/level002/scene.txt new file mode 100644 index 00000000..255ee760 --- /dev/null +++ b/levels/battles/chapter002/level002/scene.txt @@ -0,0 +1,20 @@ +Title.E text="Shooting battle - vs computer" +Resume.E text="It's getting a bit harder now, isn't it?" + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE magnifyDamage=10 + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WingedShooter range=0 power=100 team=1 select=true + +// Team "Red" (2) +// TODO: selectable=0, but only before start? +CreateObject pos=0;40 dir=0.5 type=WingedShooter range=0 power=100 team=2 script1="%lvl%/program.txt" scriptReadOnly1=true run=1 + +DoneResearch type=WINGER +DoneResearch type=SHOOTER + +EndMissionTake pos=0;0 dist=10000 type=Any team=1 lost=0 +EndMissionTake pos=0;0 dist=10000 type=Any team=-1 min=0 max=0 diff --git a/levels/battles/chapter002/level003/po/de.po b/levels/battles/chapter002/level003/po/de.po new file mode 100644 index 00000000..f59be064 --- /dev/null +++ b/levels/battles/chapter002/level003/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter002/level003/po/fr.po b/levels/battles/chapter002/level003/po/fr.po new file mode 100644 index 00000000..e769c9b5 --- /dev/null +++ b/levels/battles/chapter002/level003/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter002/level003/po/free101.pot b/levels/battles/chapter002/level003/po/free101.pot new file mode 100644 index 00000000..fe893812 --- /dev/null +++ b/levels/battles/chapter002/level003/po/free101.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter002/level003/po/pl.po b/levels/battles/chapter002/level003/po/pl.po new file mode 100644 index 00000000..3ec25a96 --- /dev/null +++ b/levels/battles/chapter002/level003/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter002/level003/po/ru.po b/levels/battles/chapter002/level003/po/ru.po new file mode 100644 index 00000000..f871f331 --- /dev/null +++ b/levels/battles/chapter002/level003/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text +#: ../scene.txt:1 +#, no-wrap +msgid "Shooting battle - vs other player" +msgstr "" + +#. type: Resume-text +#: ../scene.txt:2 +#, no-wrap +msgid "Challenge your friend!" +msgstr "" diff --git a/levels/battles/chapter002/level003/scene.txt b/levels/battles/chapter002/level003/scene.txt new file mode 100644 index 00000000..b047e5a9 --- /dev/null +++ b/levels/battles/chapter002/level003/scene.txt @@ -0,0 +1,16 @@ +Title.E text="Shooting battle - vs other player" +Resume.E text="Challenge your friend!" + +#Include file="%cat%/level_common.txt" +Level type=CODE_BATTLE magnifyDamage=10 + +BeginObject + +// Team "Blue" (1) +CreateObject pos=0;-40 dir=1.5 type=WingedShooter range=0 power=100 team=1 select=true + +// Team "Red" (2) +CreateObject pos=0;40 dir=0.5 type=WingedShooter range=0 power=100 team=2 + +EndMissionTake pos=0;0 dist=10000 type=Any team=-1 min=0 max=0 winTeam=1 +EndMissionTake pos=0;0 dist=10000 type=Any team=-2 min=0 max=0 winTeam=2 diff --git a/levels/battles/level_common.txt b/levels/battles/level_common.txt new file mode 100644 index 00000000..87463bb5 --- /dev/null +++ b/levels/battles/level_common.txt @@ -0,0 +1,109 @@ +HelpFile name="cbot.txt" +EndingFile win=-1 lost=-1 + +AmbientColor air=0.400;0.400;0.400;0.400 water=0.078;0.078;0.078;0.078 // grey +FogColor air=0.816;0.784;0.875;0.000 water=0.369;0.600;0.706;0.000 // magenta +VehicleColor color=0.784;0.769;0.682;0.000 // sable +VehicleColor team=1 color=0;0;1 +VehicleColor team=2 color=1;0;0 +Background up=0.937;0.875;0.878;0.000 down=0.749;0.753;0.875;0.000 cloudUp=0.306;0.306;0.498;0.000 cloudDown=0.306;0.306;0.498; +ForegroundName image="lens5.png" +Planet pos=3.0;0.2 dim=0.35 speed= 0.001 dir=0.4 image="planet03.png" uv1=0.5;0.5 uv2=1.0;1.0 +Planet pos=0.0;0.7 dim=0.20 speed= 0.002 dir=0.3 image="planet03.png" uv1=0.0;0.5 uv2=0.5;1.0 +Planet pos=0.5;0.5 dim=0.15 speed=-0.005 dir=0.5 image="planet03.png" uv1=0.5;0.0 uv2=1.0;0.5 + +TeamName team=1 name="Blue" +TeamName team=2 name="Red" + +TerrainGenerate vision=500.00 depth=1 slope=3.0 hard=0.3 +TerrainWind speed=-2.0;0.0 +TerrainCloud image="cloud02.png" level=87.5 +TerrainRelief image="%cat%/relief.png" factor=1.0 +TerrainResource image="%cat%/res.png" +TerrainWater image="water12.png" level=8.0 moveX=1.0 moveY=0.3 + +TerrainMaterial id=1 image="roca2" u=0.00 v=0.00 up=1 down=1 left=1 right=1 hard=0.8 +TerrainMaterial image="roca2" u=0.25 v=0.00 up=2 down=1 left=1 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.50 v=0.00 up=1 down=1 left=1 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.75 v=0.00 up=2 down=1 left=1 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.00 v=0.25 up=1 down=2 left=1 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.25 v=0.25 up=2 down=2 left=1 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.50 v=0.25 up=1 down=2 left=1 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.75 v=0.25 up=2 down=2 left=1 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.00 v=0.50 up=1 down=1 left=2 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.25 v=0.50 up=2 down=1 left=2 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.50 v=0.50 up=1 down=1 left=2 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.75 v=0.50 up=2 down=1 left=2 right=2 hard=0.6 +TerrainMaterial image="roca2" u=0.00 v=0.75 up=1 down=2 left=2 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.25 v=0.75 up=2 down=2 left=2 right=1 hard=0.6 +TerrainMaterial image="roca2" u=0.50 v=0.75 up=1 down=2 left=2 right=2 hard=0.6 +TerrainMaterial id=2 image="roca2" u=0.75 v=0.75 up=2 down=2 left=2 right=2 hard=0.3 + +TerrainMaterial id=3 image="rocb2" u=0.00 v=0.00 up=1 down=1 left=1 right=1 hard=0.8 +TerrainMaterial image="rocb2" u=0.25 v=0.00 up=3 down=1 left=1 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.50 v=0.00 up=1 down=1 left=1 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.75 v=0.00 up=3 down=1 left=1 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.00 v=0.25 up=1 down=3 left=1 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.25 v=0.25 up=3 down=3 left=1 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.50 v=0.25 up=1 down=3 left=1 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.75 v=0.25 up=3 down=3 left=1 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.00 v=0.50 up=1 down=1 left=3 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.25 v=0.50 up=3 down=1 left=3 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.50 v=0.50 up=1 down=1 left=3 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.75 v=0.50 up=3 down=1 left=3 right=3 hard=0.4 +TerrainMaterial image="rocb2" u=0.00 v=0.75 up=1 down=3 left=3 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.25 v=0.75 up=3 down=3 left=3 right=1 hard=0.4 +TerrainMaterial image="rocb2" u=0.50 v=0.75 up=1 down=3 left=3 right=3 hard=0.4 +TerrainMaterial id=4 image="rocb2" u=0.75 v=0.75 up=3 down=3 left=3 right=3 hard=0.0 + +TerrainInit id=3 +TerrainLevel id=2 min=0.0 max=25.0 slope=100.0 freq=100.0 // grass +TerrainLevel id=4 min=37.5 max=99.0 slope=20.0 freq= 80.0 // snow + +TerrainCreate + +// Normally, objects go here. We'll see if it works in changed order. + +CreateLight dir= 0.0;-1.0; 0.0 color= 0.63; 0.63; 0.63 type=Terrain +CreateLight dir= 1.0; 0.0;-1.0 color=-0.70;-0.70;-0.70 type=Terrain +CreateLight dir=-1.0; 0.0; 1.0 color= 1.40; 1.40; 1.40 type=Terrain +CreateLight dir=-1.0;-1.0; 1.0 color= 0.56; 0.56; 0.56 type=Object +CreateLight dir= 1.0;-1.0; 1.0 color= 0.32; 0.32; 0.32 type=Object +CreateLight dir=-1.0;-1.0;-1.0 color= 0.32; 0.32; 0.32 type=Object +CreateLight dir= 1.0;-1.0;-1.0 color= 0.16; 0.16; 0.16 type=Object +WaterColor color=-0.6;-0.1;-0.1 + +MapColor floor=0.647;0.557;0.420 water=0.604;0.922;1.000 +MapZoom factor=2 + +EnableBuild type=Flag +EnableBuild type=FlatGround +EnableBuild type=BotFactory +EnableBuild type=ResearchCenter +EnableBuild type=RadarStation +EnableBuild type=ExchangePost +EnableBuild type=RepairCenter +EnableBuild type=DefenseTower +EnableBuild type=AutoLab +EnableBuild type=PowerStation +EnableBuild type=PowerPlant +EnableBuild type=NuclearPlant +EnableBuild type=Converter +EnableBuild type=Derrick +EnableBuild type=PowerCaptor + +EnableResearch type=TRACKER +EnableResearch type=WINGER +EnableResearch type=SHOOTER +EnableResearch type=TOWER +EnableResearch type=ATOMIC +EnableResearch type=THUMPER +EnableResearch type=SHIELDER +EnableResearch type=PHAZER +EnableResearch type=iPAW +EnableResearch type=iGUN +EnableResearch type=SUBBER +EnableResearch type=SNIFFER +EnableResearch type=RECYCLER + +Camera eye=0.00;5.00;0.00 lookat=0.00;1.00;0.00 delay=0 diff --git a/levels/battles/po/de.po b/levels/battles/po/de.po new file mode 100644 index 00000000..0ac2f30c --- /dev/null +++ b/levels/battles/po/de.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text, Title-resume +#: ../chapter001/chaptertitle.txt:1 +#, no-wrap +msgid "Code battle" +msgstr "" + +#. type: Title-text, Title-resume +#: ../chapter002/chaptertitle.txt:1 +#, no-wrap +msgid "Shooting battle" +msgstr "" diff --git a/levels/battles/po/fr.po b/levels/battles/po/fr.po new file mode 100644 index 00000000..02dbe3b7 --- /dev/null +++ b/levels/battles/po/fr.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text, Title-resume +#: ../chapter001/chaptertitle.txt:1 +#, no-wrap +msgid "Code battle" +msgstr "" + +#. type: Title-text, Title-resume +#: ../chapter002/chaptertitle.txt:1 +#, no-wrap +msgid "Shooting battle" +msgstr "" diff --git a/levels/battles/po/freemissions.pot b/levels/battles/po/freemissions.pot new file mode 100644 index 00000000..1344294b --- /dev/null +++ b/levels/battles/po/freemissions.pot @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#. type: Title-text, Title-resume +#: ../chapter001/chaptertitle.txt:1 +#, no-wrap +msgid "Code battle" +msgstr "" + +#. type: Title-text, Title-resume +#: ../chapter002/chaptertitle.txt:1 +#, no-wrap +msgid "Shooting battle" +msgstr "" diff --git a/levels/battles/po/pl.po b/levels/battles/po/pl.po new file mode 100644 index 00000000..b1c897fb --- /dev/null +++ b/levels/battles/po/pl.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: pl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text, Title-resume +#: ../chapter001/chaptertitle.txt:1 +#, no-wrap +msgid "Code battle" +msgstr "" + +#. type: Title-text, Title-resume +#: ../chapter002/chaptertitle.txt:1 +#, no-wrap +msgid "Shooting battle" +msgstr "" diff --git a/levels/battles/po/ru.po b/levels/battles/po/ru.po new file mode 100644 index 00000000..5e4c3dde --- /dev/null +++ b/levels/battles/po/ru.po @@ -0,0 +1,29 @@ +# SOME DESCRIPTIVE TITLE +# Copyright (C) YEAR Free Software Foundation, Inc. +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: DATE\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Translate Toolkit 1.11.0\n" + +#. type: Title-text, Title-resume +#: ../chapter001/chaptertitle.txt:1 +#, no-wrap +msgid "Code battle" +msgstr "" + +#. type: Title-text, Title-resume +#: ../chapter002/chaptertitle.txt:1 +#, no-wrap +msgid "Shooting battle" +msgstr "" diff --git a/levels/battles/relief.png b/levels/battles/relief.png new file mode 100644 index 0000000000000000000000000000000000000000..6fef60e123cc419c32a1324830150b61d6ff8e51 GIT binary patch literal 18487 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 literal 0 HcmV?d00001