Merge branch 'develop' into feature/bug-1588-magicpower-limit

Conflicts:
	scripts/tests/e2/init.lua
	src/battle.c
	src/bind_unit.c
	src/kernel/spellid.h
	src/magic.c
	src/magic.h
This commit is contained in:
Enno Rehling 2015-08-06 19:16:05 +02:00
commit 397a157fdc
290 changed files with 6208 additions and 5719 deletions

4
.gitignore vendored
View File

@ -1,3 +1,4 @@
*.orig
eressea.ini
Debug
Release
@ -36,3 +37,6 @@ game-e3/reports/
*.log.*
tags
Thumbs.db
.gdb_history
*.cfg
*.cmd

23
.gitmodules vendored
View File

@ -1,31 +1,34 @@
[submodule "lunit"]
path = lunit
url = git://github.com/badgerman/lunit.git
url = git://github.com/ennorehling/lunit.git
[submodule "crypto"]
path = crypto
url = git://github.com/badgerman/crypto.git
url = git://github.com/ennorehling/crypto.git
[submodule "cmake"]
path = cmake
url = git://github.com/badgerman/cmake.git
url = git://github.com/ennorehling/cmake.git
[submodule "quicklist"]
path = quicklist
url = git://github.com/badgerman/quicklist.git
url = git://github.com/ennorehling/quicklist.git
[submodule "critbit"]
path = critbit
url = git://github.com/badgerman/critbit.git
url = git://github.com/ennorehling/critbit.git
[submodule "dlmalloc"]
path = dlmalloc
url = git://github.com/badgerman/dlmalloc.git
url = git://github.com/ennorehling/dlmalloc.git
[submodule "cutest"]
path = cutest
url = git://github.com/badgerman/cutest.git
url = git://github.com/ennorehling/cutest.git
[submodule "iniparser"]
path = iniparser
url = git://github.com/badgerman/iniparser.git
url = git://github.com/ennorehling/iniparser.git
[submodule "cJSON"]
path = cJSON
url = git://github.com/badgerman/cJSON.git
url = git://github.com/ennorehling/cJSON.git
[submodule "storage"]
path = storage
url = git://github.com/badgerman/storage.git
url = git://github.com/ennorehling/storage.git
branch = master
[submodule "tolua"]
path = tolua
url = git://github.com/ennorehling/tolua.git

View File

@ -1,11 +1,19 @@
sudo: false
language: c
compiler:
- gcc
- clang
script: s/travis-build
before_install:
- sudo apt-get update -qq
- sudo apt-get install -qq libtolua-dev liblua5.1-dev libncurses5-dev libsqlite3-dev libxml2-dev
addons:
apt:
packages:
- liblua5.2-dev
- libncurses5-dev
- libsqlite3-dev
- libxml2-dev
os:
- linux
- osx
- linux
- osx
notifications:
slack:
secure: F89aXLWaE125PaJIlETv12jT4EfH6wLXJmGCPZzrN3OcLn2ahDWqjwuzR7lOEDf2nAISmeMPyDZMhEHXLNHAE5qP6lg9yliYQw5hzGmDK9m1xUq/pPEne/b2Y7K3my1mkRZ6n3asbHgSmBWAfCIk1JN8R5Rv+rmbLuWLc+zofts=

View File

@ -8,6 +8,11 @@ project (eressea-server C)
enable_testing()
find_package (LibXml2)
find_package (SQLite3)
find_package (Curses)
find_package (Lua REQUIRED)
find_package (ToLua REQUIRED)
INCLUDE (CheckIncludeFiles)
INCLUDE (CheckSymbolExists)
@ -57,13 +62,6 @@ CONFIGURE_FILE (
INCLUDE_DIRECTORIES (${CMAKE_BINARY_DIR}/include)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_AUTOCONF")
find_package (LibXml2)
find_package (SQLite3)
find_package (Curses)
find_package (Lua REQUIRED)
find_package (ToLua REQUIRED)
add_subdirectory (cutest)
add_subdirectory (crypto)
add_subdirectory (cJSON)
@ -75,4 +73,4 @@ add_subdirectory (src eressea)
install(DIRECTORY res conf DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.xml")
install(DIRECTORY res conf DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.json")
install(DIRECTORY scripts DESTINATION ${CMAKE_INSTALL_PREFIX} FILES_MATCHING PATTERN "*.lua")
install(DIRECTORY share DESTINATION ${CMAKE_INSTALL_PREFIX})

View File

@ -1,5 +1,9 @@
all:
@echo "Please use the cmake build system by running configure"
s/build
test:
s/runtests
clean:
@rm -f *.log.*
@find . -name "*~" | xargs rm -f

View File

@ -1,6 +1,6 @@
# What is this?
This repository contains an the source code for the Play-by-Mail strategy game [Eressea](http://www.eressea.de/).
This repository contains the source code for the Play-by-Mail strategy game [Eressea](http://www.eressea.de/).
# Prerequisites

2
cmake

@ -1 +1 @@
Subproject commit cd779ba36efb4045a040af170588a8dfe496d7b9
Subproject commit f1fb3943ace59994d90d71a891b80033dc2700a2

View File

@ -5,12 +5,12 @@
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="config:///core/"
uriStartString="config://core/"
rewritePrefix="../../res/core/" />
<rewriteURI
uriStartString="config:///game/"
uriStartString="config://game/"
rewritePrefix="../../res/eressea/" />
<rewriteURI
uriStartString="config:///default/"
uriStartString="config://default/"
rewritePrefix="../../res/" />
</catalog>

View File

@ -1,53 +1,60 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config:///core/messages.xml"/>
<xi:include href="config://core/messages.xml"/>
<!-- Localization -->
<xi:include href="config:///core/de/strings.xml"/>
<xi:include href="config:///core/en/strings.xml"/>
<xi:include href="config:///game/spellinfo.xml" />
<xi:include href="config://core/de/strings.xml"/>
<xi:include href="config://core/en/strings.xml"/>
<xi:include href="config://game/spellinfo.xml" />
<xi:include href="config:///core/common/items.xml" />
<xi:include href="config:///core/common/armor.xml" />
<xi:include href="config:///core/common/weapons.xml" />
<xi:include href="config:///core/common/resources.xml" />
<xi:include href="config:///core/common/luxuries.xml" />
<xi:include href="config:///core/common/herbs.xml" />
<xi:include href="config:///core/common/potions.xml" />
<xi:include href="config:///core/spoils.xml"/>
<xi:include href="config:///game/races.xml"/>
<xi:include href="config:///core/prefixes.xml"/>
<xi:include href="config:///core/ships.xml"/>
<xi:include href="config:///core/common/buildings.xml"/>
<xi:include href="config:///game/familiars.xml"/>
<xi:include href="config:///core/terrains.xml"/>
<xi:include href="config:///game/terrains.xml"/>
<xi:include href="config:///game/artrewards.xml"/>
<xi:include href="config:///game/buildings.xml"/>
<xi:include href="config:///core/calendar.xml"/>
<xi:include href="config://core/common/items.xml" />
<xi:include href="config://core/common/armor.xml" />
<xi:include href="config://core/common/weapons.xml" />
<xi:include href="config://core/common/resources.xml" />
<xi:include href="config://core/common/luxuries.xml" />
<xi:include href="config://core/common/herbs.xml" />
<xi:include href="config://core/common/potions.xml" />
<xi:include href="config://core/spoils.xml"/>
<xi:include href="config://game/races.xml"/>
<xi:include href="config://core/prefixes.xml"/>
<xi:include href="config://core/ships.xml"/>
<xi:include href="config://core/common/buildings.xml"/>
<xi:include href="config://game/familiars.xml"/>
<xi:include href="config://core/terrains.xml"/>
<xi:include href="config://game/terrains.xml"/>
<xi:include href="config://game/artrewards.xml"/>
<xi:include href="config://game/buildings.xml"/>
<xi:include href="config://core/calendar.xml"/>
<calendar name="secondage" newyear="month_1" start="184"/>
<xi:include href="config:///game/equipment.xml"/>
<xi:include href="config:///game/items.xml"/>
<xi:include href="config:///game/spells.xml"/>
<xi:include href="config:///game/strings.xml"/>
<xi:include href="config:///default/adamantium.xml"/>
<xi:include href="config://game/equipment.xml"/>
<xi:include href="config://game/items.xml"/>
<xi:include href="config://game/spells.xml"/>
<xi:include href="config://game/strings.xml"/>
<xi:include href="config://default/adamantium.xml"/>
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="30"/>
<item name="stone" amount="30"/>
<item name="money" amount="4200"/>
<item name="log" amount="50"/>
<item name="stone" amount="50"/>
<item name="iron" amount="50"/>
<item name="laen" amount="10"/>
<item name="sword" amount="1"/>
<item name="mallorn" amount="10"/>
<item name="skillpotion" amount="5"/>
<item name="p2" amount="5"/>
<item name="money" amount="20000"/>
<skill name="perception" level="30"/>
<skill name="melee" level="1"/>
</set>
<set name="new_faction">
<item name="adamantium" amount="1"/>
</set>
</equipment>
<xi:include href="config:///default/names-undead.xml"/>
<xi:include href="config:///default/names-skeletons.xml"/>
<xi:include href="config:///default/names-zombies.xml"/>
<xi:include href="config:///default/names-ghouls.xml"/>
<xi:include href="config:///default/names-dragons.xml"/>
<xi:include href="config://default/names-undead.xml"/>
<xi:include href="config://default/names-skeletons.xml"/>
<xi:include href="config://default/names-zombies.xml"/>
<xi:include href="config://default/names-ghouls.xml"/>
<xi:include href="config://default/names-dragons.xml"/>
<game name="Eressea">
<!-- Game specific settings -->
@ -89,7 +96,7 @@
<param name="entertain.base" value="0"/>
<param name="entertain.perlevel" value="20"/>
<param name="nmr.timeout" value="5"/>
<param name="nmr.removenewbie" value="10"/>
<param name="nmr.removenewbie" value="0"/>
<param name="GiveRestriction" value="3"/>
<param name="hunger.long" value="1"/>
<param name="init_spells" value="0"/>

View File

@ -5,12 +5,12 @@
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="config:///core/"
uriStartString="config://core/"
rewritePrefix="../../res/core/" />
<rewriteURI
uriStartString="config:///game/"
uriStartString="config://game/"
rewritePrefix="../../res/e3a/" />
<rewriteURI
uriStartString="config:///default/"
uriStartString="config://default/"
rewritePrefix="../../res/" />
</catalog>

View File

@ -1,49 +1,48 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config:///core/messages.xml"/>
<xi:include href="config:///core/de/strings.xml"/>
<xi:include href="config:///core/en/strings.xml"/>
<xi:include href="config:///core/common/items.xml"/>
<xi:include href="config:///core/common/herbs.xml" />
<xi:include href="config:///core/spoils.xml"/>
<xi:include href="config:///core/prefixes.xml"/>
<xi:include href="config:///core/common/buildings.xml"/>
<xi:include href="config:///game/familiars.xml"/>
<xi:include href="config://core/messages.xml"/>
<xi:include href="config://core/de/strings.xml"/>
<xi:include href="config://core/en/strings.xml"/>
<xi:include href="config://core/common/items.xml"/>
<xi:include href="config://core/common/herbs.xml" />
<xi:include href="config://core/spoils.xml"/>
<xi:include href="config://core/prefixes.xml"/>
<xi:include href="config://core/common/buildings.xml"/>
<xi:include href="config://game/familiars.xml"/>
<xi:include href="config:///default/adamantium.xml" />
<xi:include href="config://default/adamantium.xml" />
<xi:include href="config:///game/ships.xml"/>
<xi:include href="config:///game/shipnames.xml"/>
<xi:include href="config:///game/terrains.xml"/>
<xi:include href="config:///core/calendar.xml"/>
<xi:include href="config:///game/items.xml" />
<xi:include href="config:///game/strings.xml"/>
<xi:include href="config:///game/messages.xml"/>
<xi:include href="config:///game/races.xml"/>
<xi:include href="config:///game/buildings.xml"/>
<xi:include href="config:///game/equipment.xml"/>
<xi:include href="config:///game/spells.xml"/>
<xi:include href="config:///game/luxuries.xml" />
<xi:include href="config:///game/weapons.xml" />
<xi:include href="config:///game/armor.xml" />
<xi:include href="config:///game/resources.xml" />
<xi:include href="config://game/ships.xml"/>
<xi:include href="config://game/shipnames.xml"/>
<xi:include href="config://game/terrains.xml"/>
<xi:include href="config://core/calendar.xml"/>
<xi:include href="config://game/items.xml" />
<xi:include href="config://game/strings.xml"/>
<xi:include href="config://game/messages.xml"/>
<xi:include href="config://game/races.xml"/>
<xi:include href="config://game/buildings.xml"/>
<xi:include href="config://game/equipment.xml"/>
<xi:include href="config://game/spells.xml"/>
<xi:include href="config://game/luxuries.xml" />
<xi:include href="config://game/weapons.xml" />
<xi:include href="config://game/armor.xml" />
<xi:include href="config://game/resources.xml" />
<calendar name="thirdage" newyear="month_1" start="1"/>
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="10"/>
<item name="stone" amount="10"/>
<item name="money" amount="5000"/>
</set>
</equipment>
<xi:include href="config:///default/names-undead.xml"/>
<xi:include href="config:///default/names-skeletons.xml"/>
<xi:include href="config:///default/names-zombies.xml"/>
<xi:include href="config:///default/names-ghouls.xml"/>
<xi:include href="config:///default/names-dragons.xml"/>
<xi:include href="config://default/names-undead.xml"/>
<xi:include href="config://default/names-skeletons.xml"/>
<xi:include href="config://default/names-zombies.xml"/>
<xi:include href="config://default/names-ghouls.xml"/>
<xi:include href="config://default/names-dragons.xml"/>
<game name="E3">
<!-- Game specific settings -->
@ -116,8 +115,11 @@
<param name="study.expensivemigrants" value="1"/>
<param name="study.speedup" value="2"/>
<param name="world.era" value="3"/>
<param name="seed.population.min" value="8"/>
<param name="seed.population.max" value="8"/>
<param name="rules.migrants" value="0"/>
<param name="rules.reserve.twophase" value="1"/>
<param name="rules.owners.force_leave" value="0"/>
<param name="rules.monsters.attack_chance" value="0.0"/>
<param name="rules.transfermen" value="0"/>
<param name="rules.stealth.faction" value="1"/>

View File

@ -5,12 +5,12 @@
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="config:///core/"
uriStartString="config://core/"
rewritePrefix="../../res/core/" />
<rewriteURI
uriStartString="config:///game/"
uriStartString="config://game/"
rewritePrefix="../../res/e3a/" />
<rewriteURI
uriStartString="config:///default/"
uriStartString="config://default/"
rewritePrefix="../../res/" />
</catalog>

View File

@ -1,49 +1,48 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config:///core/messages.xml"/>
<xi:include href="config:///core/de/strings.xml"/>
<xi:include href="config:///core/en/strings.xml"/>
<xi:include href="config:///core/common/items.xml"/>
<xi:include href="config:///core/common/herbs.xml" />
<xi:include href="config:///core/spoils.xml"/>
<xi:include href="config:///core/prefixes.xml"/>
<xi:include href="config:///core/common/buildings.xml"/>
<xi:include href="config:///game/familiars.xml"/>
<xi:include href="config://core/messages.xml"/>
<xi:include href="config://core/de/strings.xml"/>
<xi:include href="config://core/en/strings.xml"/>
<xi:include href="config://core/common/items.xml"/>
<xi:include href="config://core/common/herbs.xml" />
<xi:include href="config://core/spoils.xml"/>
<xi:include href="config://core/prefixes.xml"/>
<xi:include href="config://core/common/buildings.xml"/>
<xi:include href="config://game/familiars.xml"/>
<xi:include href="config:///default/adamantium.xml" />
<xi:include href="config://default/adamantium.xml" />
<xi:include href="config:///game/ships.xml"/>
<xi:include href="config:///game/shipnames.xml"/>
<xi:include href="config:///game/terrains.xml"/>
<xi:include href="config:///core/calendar.xml"/>
<xi:include href="config:///game/items.xml" />
<xi:include href="config:///game/strings.xml"/>
<xi:include href="config:///game/messages.xml"/>
<xi:include href="config:///game/races.xml"/>
<xi:include href="config:///game/buildings.xml"/>
<xi:include href="config:///game/equipment.xml"/>
<xi:include href="config:///game/spells.xml"/>
<xi:include href="config:///game/luxuries.xml" />
<xi:include href="config:///game/weapons.xml" />
<xi:include href="config:///game/armor.xml" />
<xi:include href="config:///game/resources.xml" />
<xi:include href="config://game/ships.xml"/>
<xi:include href="config://game/shipnames.xml"/>
<xi:include href="config://game/terrains.xml"/>
<xi:include href="config://core/calendar.xml"/>
<xi:include href="config://game/items.xml" />
<xi:include href="config://game/strings.xml"/>
<xi:include href="config://game/messages.xml"/>
<xi:include href="config://game/races.xml"/>
<xi:include href="config://game/buildings.xml"/>
<xi:include href="config://game/equipment.xml"/>
<xi:include href="config://game/spells.xml"/>
<xi:include href="config://game/luxuries.xml" />
<xi:include href="config://game/weapons.xml" />
<xi:include href="config://game/armor.xml" />
<xi:include href="config://game/resources.xml" />
<calendar name="thirdage" newyear="month_1" start="1"/>
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="10"/>
<item name="stone" amount="10"/>
<item name="money" amount="5000"/>
</set>
</equipment>
<xi:include href="config:///default/names-undead.xml"/>
<xi:include href="config:///default/names-skeletons.xml"/>
<xi:include href="config:///default/names-zombies.xml"/>
<xi:include href="config:///default/names-ghouls.xml"/>
<xi:include href="config:///default/names-dragons.xml"/>
<xi:include href="config://default/names-undead.xml"/>
<xi:include href="config://default/names-skeletons.xml"/>
<xi:include href="config://default/names-zombies.xml"/>
<xi:include href="config://default/names-ghouls.xml"/>
<xi:include href="config://default/names-dragons.xml"/>
<game name="Deveron">
<!-- Game specific settings -->
@ -58,7 +57,6 @@
<order name="tax" disable="yes"/>
<order name="entertain" disable="yes"/>
<order name="sell" disable="yes"/>
<order name="origin" disable="yes"/>
<skill name="armorer" enable="true"/>
<skill name="bow" enable="true"/>
@ -119,6 +117,7 @@
<param name="world.era" value="3"/>
<param name="rules.migrants" value="0"/>
<param name="rules.reserve.twophase" value="1"/>
<param name="rules.owners.force_leave" value="0"/>
<param name="rules.transfermen" value="0"/>
<param name="rules.stealth.faction" value="1"/>
<param name="rules.stealth.anon_battle" value="0"/>

View File

@ -12,7 +12,6 @@ locales = de,en
install = .
paths = lunit:scripts
maxnmrs = 20
rules = e2
[editor]
color = 1

@ -1 +1 @@
Subproject commit 61989d93368022602a2a7ac4218c83f254701f0f
Subproject commit e538739b38593b90312831a5e52d2e3bd731069b

2
cutest

@ -1 +1 @@
Subproject commit 788659594ef87e9f497b8039da764182adfd2943
Subproject commit 6e268687dbf6ae55afb63210c3753530d216a622

@ -1 +1 @@
Subproject commit 4292cd5e81395d09a7457ab93659ea3b7784e958
Subproject commit f1446c47ca1774ae84bf86a28502e91daf6b421a

@ -1 +1 @@
Subproject commit f84066fb7d3254bdd9e89694acc4c1c20d001eed
Subproject commit ecf956b9808c28c2db52e6b73930f57876dbb258

View File

@ -38,9 +38,11 @@ for line in infile.readlines():
if not options.has_key("reports"):
continue
reports = options["reports"].split(",")
# reports = reports + [ "iso.cr" ]
prefix = "%(turn)s-%(faction)s." % options
files=[]
times="../parteien"
if os.path.isfile(times):
files = files + [ times ]
if options["compression"]=="zip":
output = prefix+"zip"
files = [output]

@ -1 +1 @@
Subproject commit 40ae383100a8f012393ab29bc3d98e182fe57c19
Subproject commit 45f4577b8205d87b78d2b1f30b5c9baa25c86779

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<resource name="adamantium" limited="yes" material="rm_adamantium">

View File

@ -2,12 +2,12 @@
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- this file contains a lot of armor -->
<xi:include href="eressea:///core/armor/plate.xml"/>
<xi:include href="eressea:///core/armor/chainmail.xml"/>
<xi:include href="eressea:///core/armor/laenmail.xml"/>
<xi:include href="eressea:///core/armor/laenshield.xml"/>
<xi:include href="eressea:///core/armor/rustychainmail.xml"/>
<xi:include href="eressea:///core/armor/rustyshield.xml"/>
<xi:include href="eressea:///core/armor/shield.xml"/>
<xi:include href="eressea://core/armor/plate.xml"/>
<xi:include href="eressea://core/armor/chainmail.xml"/>
<xi:include href="eressea://core/armor/laenmail.xml"/>
<xi:include href="eressea://core/armor/laenshield.xml"/>
<xi:include href="eressea://core/armor/rustychainmail.xml"/>
<xi:include href="eressea://core/armor/rustyshield.xml"/>
<xi:include href="eressea://core/armor/shield.xml"/>
</resources>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="buildings/castle.xml"/>
</buildings>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<!--
_d: dativ (wir erklären allen /Trollen/ den Krieg)
_p: plural (13 /Trolle/)
_x: preposition (15 /Troll/schwerter)
_a: including article (ein Troll, a troll)
_d: dativ (wir erklären allen /Schlümpfen/ den Krieg)
_p: plural (13 /Schlümpfe/)
_x: preposition (15 /Schlumpf/schwerter)
_a: including article (ein Schlumpf, a smurf)
-->
<string name="vortex">
<text locale="de">Wirbel</text>
@ -275,11 +275,6 @@
</string>
</namespace>
<string name="Tresen">
<text locale="de">Tresen</text>
<text locale="en">counter</text>
</string>
<string name="wenige">
<text locale="de">wenige</text>
<text locale="en">few</text>
@ -731,7 +726,7 @@
<text locale="en">an unknown building</text>
</string>
<string name="an_unknown_spell">
<text locale="de">ein unbekannter zauber</text>
<text locale="de">ein unbekannter Zauber</text>
<text locale="en">an unknown spell</text>
</string>
<string name="an_unknown_ship">
@ -746,6 +741,14 @@
<text locale="de">einer unbekannten Einheit</text>
<text locale="en">an unknown unit</text>
</string>
<string name="an_unknown_curse">
<text locale="de">ein unbekannter Zauber</text>
<text locale="en">an unknown curse</text>
</string>
<string name="missing_key">
<text locale="de">Fehler: Unbekannter Schlüssel</text>
<text locale="en">Fehler: Unbekannter Schlüssel</text>
</string>
<!--Meldungssektionen -->
<string name="section_events">
@ -2209,12 +2212,6 @@
<text locale="de">Schaden</text>
</string>
<!--report newbie info -->
<string name="nr_nmr">
<text locale="de">Deine Partei hat letzte Runde keinen Zug
abgegeben!</text>
</string>
<namespace name="race">
<string name="snowman">
<text locale="de">Schneemann</text>
@ -3569,13 +3566,13 @@
</namespace>
<namespace name="damage">
<string name="critical">
<string name="plusstrong">
<text locale="de">sehr stark</text>
<text locale="en">critically wounded</text>
<text locale="en">super strong</text>
</string>
<string name="heavily">
<string name="strong">
<text locale="de">stark</text>
<text locale="en">heavily wounded</text>
<text locale="en">strong</text>
</string>
<string name="badly">
<text locale="de">schwer verwundet</text>
@ -3655,11 +3652,11 @@
<namespace name="spell">
<string name="create_rop">
<text locale="de">Erschaffe einen Ring der Macht</text>
<text locale="en">Create A Ring Of Power</text>
<text locale="en">Create A Ring of Power</text>
</string>
<string name="fish_shield">
<text locale="de">Schild des Fisches</text>
<text locale="en">Shield Of The Fish</text>
<text locale="en">Shield of the Fish</text>
</string>
<string name="protective_runes">
<text locale="de">Runen des Schutzes</text>
@ -3667,7 +3664,7 @@
</string>
<string name="fetch_astral">
<text locale="de">Ruf der Realität</text>
<text locale="en">Call Of Reality</text>
<text locale="en">Call of Reality</text>
</string>
<string name="pull_astral">
<text locale="de">Astraler Ruf</text>
@ -3707,7 +3704,7 @@
</string>
<string name="seduction">
<text locale="de">Lied der Verführung</text>
<text locale="en">Song Of Seduction</text>
<text locale="en">Song of Seduction</text>
</string>
<string name="sound_out">
<text locale="de">Aushorchen</text>
@ -3715,11 +3712,11 @@
</string>
<string name="bloodthirst">
<text locale="de">Kriegsgesang</text>
<text locale="en">Song Of War</text>
<text locale="en">Song of War</text>
</string>
<string name="frighten">
<text locale="de">Gesang der Angst</text>
<text locale="en">Song Of Fear</text>
<text locale="en">Song of Fear</text>
</string>
<string name="analyse_object">
<text locale="de">Lied des Ortes analysieren</text>
@ -3735,7 +3732,7 @@
</string>
<string name="create_chastitybelt">
<text locale="de">Erschaffe ein Amulett der Keuschheit</text>
<text locale="en">Create An Amulet Of Chastity</text>
<text locale="en">Create An Amulet of Chastity</text>
</string>
<string name="combat_speed">
<text locale="de">Beschleunigung</text>
@ -3759,23 +3756,23 @@
</string>
<string name="song_resist_magic">
<text locale="de">Gesang des wachen Geistes</text>
<text locale="en">Song Of The Youthful Spirit</text>
<text locale="en">Song of the Youthful Spirit</text>
</string>
<string name="song_suscept_magic">
<text locale="de">Gesang des schwachen Geistes</text>
<text locale="en">Song Of The Aging Spirit</text>
<text locale="en">Song of the Aging Spirit</text>
</string>
<string name="song_of_peace">
<text locale="de">Gesang der Friedfertigkeit</text>
<text locale="en">Song Of Peace</text>
<text locale="en">Song of Peace</text>
</string>
<string name="song_of_slavery">
<text locale="de">Gesang der Versklavung</text>
<text locale="en">Song Of Slavery</text>
<text locale="en">Song of Slavery</text>
</string>
<string name="big_recruit">
<text locale="de">Hohe Kunst der Überzeugung</text>
<text locale="en">Song Of Slavery</text>
<text locale="en">Song of Slavery</text>
</string>
<string name="double_time">
<text locale="de">Zeitdehnung</text>
@ -3823,7 +3820,7 @@
</string>
<string name="create_ror">
<text locale="de">Erschaffe einen Ring der Regeneration</text>
<text locale="en">Create A Ring Of Regeneration</text>
<text locale="en">Create A Ring of Regeneration</text>
</string>
<string name="raise_mob">
<text locale="de">Mob aufwiegeln</text>
@ -3859,7 +3856,7 @@
</string>
<string name="create_bagofholding">
<text locale="de">Erschaffe einen Beutel des Negativen Gewichts</text>
<text locale="en">Create A Bag Of Holding</text>
<text locale="en">Create A Bag of Holding</text>
</string>
<string name="create_focus">
<text locale="de">Erschaffe einen Aurafocus</text>
@ -3901,18 +3898,10 @@
<text locale="de">Magie analysieren</text>
<text locale="en">Analyze Magic</text>
</string>
<string name="generous">
<text locale="de">Hohes Lied der Gaukelei</text>
<text locale="en">Song of Generosity</text>
</string>
<string name="courting">
<text locale="de">Gesang des Werbens</text>
<text locale="en">Song of Courting</text>
</string>
<string name="itemcloak">
<text locale="de">Schleieraura</text>
<text locale="en">Veil</text>
</string>
<string name="song_of_healing">
<text locale="de">Lied der Heilung</text>
<text locale="en">Blessed Harvest</text>
@ -3933,7 +3922,7 @@
<text locale="de">Gesang des Lebens analysieren</text>
<text locale="en">Analyze Song of Life</text>
</string>
<string name="cerrdorfumbleshield">
<string name="cerddorfumbleshield">
<text locale="de">Bannlied</text>
<text locale="en">Countersong</text>
</string>
@ -3975,11 +3964,11 @@
</string>
<string name="treegrow">
<text locale="de">Hainzauber</text>
<text locale="en">Grove Of Oak Trees</text>
<text locale="en">Grove of Oak Trees</text>
</string>
<string name="rustweapon">
<text locale="de">Rostregen</text>
<text locale="en">Rain Of Rust</text>
<text locale="en">Rain of Rust</text>
</string>
<string name="cold_protection">
<text locale="de">Firuns Fell</text>
@ -4011,7 +4000,7 @@
</string>
<string name="magic_roots">
<text locale="de">Wurzeln der Magie</text>
<text locale="en">Roots Of Magic</text>
<text locale="en">Roots of Magic</text>
</string>
<string name="maelstrom">
<text locale="de">Mahlstrom</text>
@ -4057,12 +4046,12 @@
<string name="create_aots">
<text locale="de">Erschaffe ein Amulett des wahren
Sehens</text>
<text locale="en">Create An Amulet Of True Sight</text>
<text locale="en">Create An Amulet of True Sight</text>
</string>
<string name="create_roi">
<text locale="de">Erschaffe einen Ring der
Unsichtbarkeit</text>
<text locale="en">Create A Ring Of Invisibility</text>
<text locale="en">Create A Ring of Invisibility</text>
</string>
<string name="create_roqf">
<text locale="de">Miriams flinke Finger</text>
@ -4078,7 +4067,7 @@
</string>
<string name="versteinern">
<text locale="de">Blick des Basilisken</text>
<text locale="en">Gaze Of The Basilisk</text>
<text locale="en">Gaze of the Basilisk</text>
</string>
<string name="strongwall">
<text locale="de">Starkes Tor und feste Mauer</text>
@ -4098,11 +4087,11 @@
</string>
<string name="treewalkenter">
<text locale="de">Weg der Bäume</text>
<text locale="en">Path Of Trees</text>
<text locale="en">Path of Trees</text>
</string>
<string name="treewalkexit">
<text locale="de">Sog des Lebens</text>
<text locale="en">Ties Of Life</text>
<text locale="en">Ties of Life</text>
</string>
<string name="holyground">
<text locale="de">Heiliger Boden</text>
@ -4115,7 +4104,7 @@
</string>
<string name="summonent">
<text locale="de">Erwecke Ents</text>
<text locale="en">Awakening Of The Ents</text>
<text locale="en">Awakening of the Ents</text>
</string>
<string name="blessstonecircle">
<text locale="de">Segne Steinkreis</text>
@ -4159,7 +4148,7 @@
</string>
<string name="combatrust">
<text locale="de">Rosthauch</text>
<text locale="en">Winds Of Rust</text>
<text locale="en">Winds of Rust</text>
</string>
<string name="transferaurachaos">
<text locale="de">Machtübertragung</text>
@ -4167,11 +4156,11 @@
</string>
<string name="firewall">
<text locale="de">Feuerwand</text>
<text locale="en">Wall Of Fire</text>
<text locale="en">Wall of Fire</text>
</string>
<string name="plague">
<text locale="de">Fluch der Pestilenz</text>
<text locale="en">Curse Of Pestilence</text>
<text locale="en">Curse of Pestilence</text>
</string>
<string name="chaosrow">
<text locale="de">Wahnsinn des Krieges</text>
@ -4192,7 +4181,7 @@
<string name="create_trollbelt">
<text locale="de">Erschaffe einen Gürtel der
Trollstärke</text>
<text locale="en">Create A Belt Of Troll
<text locale="en">Create A Belt of Troll
Strength</text>
</string>
<string name="auraleak">
@ -4261,11 +4250,11 @@
</string>
<string name="icastle">
<text locale="de">Traumschlößchen</text>
<text locale="en">Castle Of Illusion</text>
<text locale="en">Castle of Illusion</text>
</string>
<string name="transferauratraum">
<text locale="de">Traum der Magie</text>
<text locale="en">Dream Of Magic</text>
<text locale="en">Dream of Magic</text>
</string>
<string name="shapeshift">
<text locale="de">Gestaltwandlung</text>
@ -4335,7 +4324,7 @@
<text locale="de">Kraft der Natur</text>
<text locale="en">force of nature</text>
</string>
<string name="wdwpyramid_cerrdor">
<string name="wdwpyramid_cerddor">
<text locale="de">Gesang der Götter</text>
<text locale="en">Song of the Gods</text>
</string>
@ -4343,6 +4332,150 @@
<text locale="de">Göttliche Macht</text>
<text locale="en">Power of the Gods</text>
</string>
<string name="magicrunes">
<text locale="de">Runen des Schutzes</text>
<text locale="en">Protective Runes</text>
</string>
<string name="astralblock">
<text locale="de">Störe Astrale Integrität</text>
<text locale="en">Astral Disruption</text>
</string>
<string name="auraboost">
<text locale="de">Gabe des Chaos</text>
<text locale="en">Chaos Gift</text>
</string>
<string name="badlearn">
<text locale="de">Schlechter Schlaf</text>
<text locale="en">Insomnia</text>
</string>
<string name="badmagicresistancezone">
<text locale="de">Gesang des schwachen Geistes</text>
<text locale="en">Song of the Aging Spirit</text>
</string>
<string name="calmmonster">
<text locale="de">Monster friedlich stimmen</text>
<text locale="en">Calm Monster</text>
</string>
<string name="depression">
<text locale="de">Gesang der Melancholie</text>
<text locale="en">Song of Melancholy</text>
</string>
<string name="drought">
<text locale="de">Beschwörung eines Hitzeelementar</text>
<text locale="en">Summon Fire Elemental</text>
</string>
<string name="farvision">
<text locale="de">ein unbekannter Zauber</text>
<text locale="en">an unknown spell</text>
</string>
<string name="flyingship">
<text locale="de">Luftschiff</text>
<text locale="en">Airship</text>
</string>
<string name="fogtrap">
<text locale="de">ein unbekannter Zauber</text>
<text locale="en">an unknown spell</text>
</string>
<string name="fumble">
<text locale="de">Chaosfluch</text>
<text locale="en">Chaos Curse</text>
</string>
<string name="gbdream">
<text locale="de">Schöne Träume oder Schlechte Träume</text>
<text locale="en">Good Dreams or Bad Dreams</text>
</string>
<string name="generous">
<text locale="de">Hohes Lied der Gaukelei</text>
<text locale="en">Song of Generosity</text>
</string>
<string name="godcursezone">
<text locale="de">Fluch der Götter</text>
<text locale="en">Curse of the Gods</text>
</string>
<string name="goodmagicresistancezone">
<text locale="de">Gesang des wachen Geistes</text>
<text locale="en">Song of the Youthful Spirit</text>
</string>
<string name="insectfur">
<text locale="de">Firuns Fell</text>
<text locale="en">Firun's Coat</text>
</string>
<string name="itemcloak">
<text locale="de">Schleieraura</text>
<text locale="en">Concealing Aura</text>
</string>
<string name="magicresistance">
<text locale="de">Magieresistenz</text>
<text locale="en">Magic Resistance</text>
</string>
<string name="magicwalls">
<text locale="de">Heimstein</text>
<text locale="en">Homestone</text>
</string>
<string name="nocostbuilding">
<text locale="de">Mauern der Ewigkeit</text>
<text locale="en">Eternal Walls</text>
</string>
<string name="nodrift">
<text locale="de">Wasserelementar</text>
<text locale="en">Water Elemental</text>
</string>
<string name="oldrace">
<text locale="de">Unbekannter Effekt</text>
<text locale="en">Unknown Effect</text>
</string>
<string name="orcish">
<text locale="de">Unbekannter Effekt</text>
<text locale="en">Unknown Effect</text>
</string>
<string name="peacezone">
<text locale="de">Gesang der Friedfertigkeit</text>
<text locale="en">Song of Peace</text>
</string>
<string name="riotzone">
<text locale="de">Aufruhr</text>
<text locale="en">Riot</text>
</string>
<string name="skillmod">
<text locale="de">Unbekannter Effekt</text>
<text locale="en">Unknown Effect</text>
</string>
<string name="slavery">
<text locale="de">Gesang der Versklavung</text>
<text locale="en">Song of Slavery</text>
</string>
<string name="sparkle">
<text locale="de">Unbekannter Effekt</text>
<text locale="en">Unknown Effect</text>
</string>
<string name="speed">
<text locale="de">Zeitdehnung</text>
<text locale="en">Double Time</text>
</string>
<string name="stormwind">
<text locale="de">Sturmelementar</text>
<text locale="en">Storm Elemental</text>
</string>
<string name="strength">
<text locale="de">Unbekannter Effekt</text>
<text locale="en">Unknown Effect</text>
</string>
<string name="worse">
<text locale="de">Alp</text>
<text locale="en">Nightmare</text>
</string>
<string name="Feuerwand">
<text locale="de">Feuerwand</text>
<text locale="en">Firewall</text>
</string>
<string name="healingzone">
<text locale="de">Zone der Heilung</text>
<text locale="en">Zone of Healing</text>
</string>
<string name="shipspeedup">
<text locale="de">Beschleunigung</text>
<text locale="en">Acceleration</text>
</string>
</namespace>
<namespace name="spellinfo">
<string name="create_ror">
@ -4993,7 +5126,7 @@
able to decipher all enchantments or spells, which
aren't disguised beyond your capability.</text>
</string>
<string name="cerrdorfumbleshield">
<string name="cerddorfumbleshield">
<text locale="de">Dieser schrille Gesang hallt über das
ganze Schlachtfeld. Die besonderen Dissonanzen in den
Melodien machen es Magiern fast unmöglich, sich auf ihre
@ -5034,7 +5167,7 @@
STRASSE, so werden pro Golem 4 Steine verbaut und der
Golem löst sich auf. </text>
<text locale="en">'Take a flawless block of crystaline
stone and humidify it with a vial of Water Of Life until
stone and humidify it with a vial of Water of Life until
the potion has been soaked up completely. Then focus
your power on the forming aura of life and shape a
container for the unbound forces'. The more power a magician
@ -5085,7 +5218,7 @@
armor will get rusty. The exact number of
items affected by the rain depends on the
ammount of power invested by the magician. Up to ten
weapons can be destroyed per level - a Ring Of
weapons can be destroyed per level - a Ring of
Power increases the effect like an additional
level.</text>
</string>
@ -5102,7 +5235,7 @@
cold of a glacier. Under the effect of this
spell, insects are able to enter glaciers and
act normally there. Ten insects per level can be
protected in this way. A Ring Of Power increases
protected in this way. A Ring of Power increases
the number by additional ten.</text>
</string>
<string name="hail">
@ -5111,7 +5244,7 @@
sich. Sodann kann er ihnen befehlen, den Gegner
mit Hagelkörnern und Eisbrocken zuzusetzen.</text>
<text locale="en">During a battle the druid calls the
Elemental Spirits Of Cold and binds them to
Elemental Spirits of Cold and binds them to
himself. Then he commands them to attack his
foes with hail and ice missiles.</text>
</string>
@ -5156,7 +5289,7 @@
Windes beschwört plötzliche Windböen, kleine
Windhosen und Luftlöcher herauf, die die
gegnerischen Schützen behindern werden.</text>
<text locale="en">Calling the Elemental Spirits Of Wind
<text locale="en">Calling the Elemental Spirits of Wind
conjurs up sudden breezes, small whirlwinds and
minor turbulences that will hinder enemy
archers.</text>
@ -5179,7 +5312,7 @@
Winde oder Strömungen beeinträchtigt.</text>
<text locale="en">While being aboard a ship, the druid
uses this ritual to force the Elemental Spirits
Of Water to serve him and commands them to carry
of Water to serve him and commands them to carry
the ship across the water at a higher speed. In
addition, the ship will not be affected by
unfavourable winds or currents.</text>
@ -5195,7 +5328,7 @@
who can help those who got injured during a
battle. Druids are, with the help of a summons
of
the Elemental Spirits Of Life, able to heal
the Elemental Spirits of Life, able to heal
wounds, mend broken bones or even regenerate
separated limbs as well.</text>
</string>
@ -5206,7 +5339,7 @@
starke Winde oder gar Stürme und behindern alle
Schützen einer Schlacht.</text>
<text locale="en">This summons opens a gate to the plane
of Elemental Spirits Of Wind. Immediately,
of Elemental Spirits of Wind. Immediately,
strong winds or even storms will rise near the
gate and hinder all archers during a battle.</text>
</string>
@ -5217,7 +5350,7 @@
das Zaubern für die Dauer des Kampfes deutlich
schwerer fallen.</text>
<text locale="en">This ritual summons some Elemental
Spirits Of Magic and sends them into the ranks
Spirits of Magic and sends them into the ranks
of the enemy mages. Casting spells will be much
harder for them during the battle.</text>
</string>
@ -5237,7 +5370,7 @@
Erdbeben wird alle Gebäude in der Region
beschädigen.</text>
<text locale="en">With this ritual the druid summons an
Elemental Spirit Of Earth that brings the ground
Elemental Spirit of Earth that brings the ground
to shake. This earthquake damages all buildings
in the target region.</text>
</string>
@ -5251,7 +5384,7 @@
desto größer ist die Zahl der Elementargeister,
die sich bannen lassen. Für jedes Schiff wird
ein Elementargeist benötigt.</text>
<text locale="en">Calling the Elemental Spirits Of Storm
<text locale="en">Calling the Elemental Spirits of Storm
is an ancient ritual. The druid binds the
elementals to a ship's sails where they can help
to carry the vessel across the waves at an
@ -5305,7 +5438,7 @@
die sich mit ihrem Tarnungs-Talent verstecken,
bleiben weiterhin unentdeckt.</text>
<text locale="en">This spell enables the caster to
create an Amulet Of True Sight. Wearing such an
create an Amulet of True Sight. Wearing such an
amulet, a person can discover anyone wearing a
Ring of Invisibility. Anyway, units concealed by
the use of their stealth skill will remain
@ -5347,11 +5480,11 @@
Wahrnehmung auch sein mag. In einer unsichtbaren
Einheit muss jede Person einen Ring tragen.</text>
<text locale="en">With this spell the caster can create
a Ring Of Invisibility. The wearer of this ring
a Ring of Invisibility. The wearer of this ring
will be invisible to all units of other
factions, no matter how good their perception
skill may be. In an invisible unit, each person
must wear a Ring Of Invisibility.</text>
must wear a Ring of Invisibility.</text>
</string>
<string name="homestone">
<text locale="de">Mit dieser Formel bindet der Magier
@ -5391,7 +5524,7 @@
betroffenen Personen werden nicht mehr kämpfen,
können jedoch auch nicht verwundet werden.</text>
<text locale="en">This complicated but effective spell
uses the Elemental Spirits Of Stone to turn a
uses the Elemental Spirits of Stone to turn a
number of enemies to stone for the duration of
combat. The affected persons won't be able to
fight any more, but they can't be wounded
@ -5405,7 +5538,7 @@
besseren Schutz gegen Angriffe mit dem Schwert
wie mit Magie.</text>
<text locale="en">At the beginning of a battle, the
magician binds some Elemental Spirits Of Rock to
magician binds some Elemental Spirits of Rock to
the walls of the builing in which he currently
is. The structure will then provide a better
protection against attacks by sword or by magic.</text>
@ -5438,7 +5571,7 @@
<text locale="en">A great power lies within those places
that are pulsing with life. A druid can focus
this power and thereby create a gate into the
World Of Spirits. He can then send level*5
World of Spirits. He can then send level*5
weight units of living or dead matter through
the gate.</text>
</string>
@ -5448,7 +5581,7 @@
Zaubers Stufe*5 Gewichtseinheiten in einen Wald
auf der materiellen Welt zurückschicken.</text>
<text locale="en">A druid who has traveled to the World
Of Spirits can use this spell to send level*5
of Spirits can use this spell to send level*5
weight units of living or dead matter back to a
forest in the material world.</text>
</string>
@ -5551,7 +5684,7 @@
und so wird die Phase der Macht abgelöst von
einer Phase der Schwäche.</text>
<text locale="en">The sorcerer opens his mind to the
Spheres Of Chaos so that he can access a greater
Spheres of Chaos so that he can access a greater
ammount of magical power for a while. But the
help of the Chaos Lords has its price - and so
the period of power will be followed by a period
@ -5681,7 +5814,7 @@
Sie sind schwer zu treffen und entziehen ihrem
Gegner Kraft.</text>
<text locale="en">With the help of dark rituals the
sorcerer summons demons from the Sphere Of
sorcerer summons demons from the Sphere of
Shadows. These fearsome creatures can walk
almost unseen among the living, but their dark
aura can be sensed by everyone. Shadow demons
@ -5775,7 +5908,7 @@
Darkness are at their peak, the sorcerer can use
his powers to destroy enchantments. In order to
do so, he draws a pentagram on a surface of the
enchanted object and begins calling the Lords Of
enchanted object and begins calling the Lords of
Darkness. The Lords will aid him, but whether he
is able to undo the target spell or not depends
upon his own power.</text>
@ -5806,7 +5939,7 @@
Schaden zufügen.</text>
<text locale="en">By performing a gruesome ritual and
sacrificing his own blood the Sorcerer conjurs
up a spirit from the Elemental Plane Of Poison.
up a spirit from the Elemental Plane of Poison.
It will take the form of a green cloud of toxic
gases that envelops a whole region and that will
harm anyone within.</text>
@ -5825,7 +5958,7 @@
irresistable scent to dragons. It is not known
whether the dragons come from surrounding
regions or if they have their origin in the
Sphere Of Chaos. The bait will exist for about
Sphere of Chaos. The bait will exist for about
six weeks, but it must be placed in a tarrain
that is suitable for dragons.</text>
</string>
@ -5839,7 +5972,7 @@
Sie sind schwer zu treffen und entziehen ihrem
Gegner Kraft und Leben.</text>
<text locale="en">With the help of dark rituals the
sorcerer summons demons from the Sphere Of
sorcerer summons demons from the Sphere of
Shadows. These fearsome creatures can walk
almost unseen among the living, but their dark
aura can be sensed by everyone. Shadowmasters
@ -5856,7 +5989,7 @@
seiner Macht zu beseelen...'</text>
<text locale="en">'So take the blood of a fierce warrior
and apply it to the steel of the blade. Then
start calling the Spheres Of Chaos. If you did
start calling the Spheres of Chaos. If you did
everything to their pleasure, they will send a
minor one of their kind to fulfill the sword
with his power.'</text>

View File

@ -1660,10 +1660,6 @@
</string>
</namespace>
<string name="nr_nmr">
<text locale="en">No orders were received for your faction!</text>
</string>
<!-- resources -->
<string name="mistletoe">
<text locale="de">Mistelzweig</text>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<!--
Due to extreme lazyness on Enno's part, this file doesn't contain everything.
@ -87,7 +87,7 @@
<text locale="fr">drakkar</text>
</string>
<string name="trireme">
<text locale="fr">galère</text>
<text locale="fr">galčre</text>
</string>
<string name="balloon">
<text locale="fr">ballon</text>
@ -110,7 +110,7 @@
<text locale="fr">un drakkar</text>
</string>
<string name="trireme_a">
<text locale="fr">une galère</text>
<text locale="fr">une galčre</text>
</string>
<!-- Terraintypen -->
@ -121,7 +121,7 @@
<text locale="fr">couloir</text>
</string>
<string name="desert">
<text locale="fr">désert</text>
<text locale="fr">désert</text>
</string>
<string name="firewall">
<text locale="fr">mur de feu</text>
@ -130,7 +130,7 @@
<text locale="fr">brume</text>
</string>
<string name="forest">
<text locale="fr">forêt</text>
<text locale="fr">foręt</text>
</string>
<string name="glacier">
<text locale="fr">glacier</text>
@ -148,13 +148,13 @@
<text locale="fr">iceberg</text>
</string>
<string name="maelstrom">
<text locale="fr">maelström</text>
<text locale="fr">maelström</text>
</string>
<string name="mountain">
<text locale="fr">montagne</text>
</string>
<string name="ocean">
<text locale="fr">océan</text>
<text locale="fr">océan</text>
</string>
<string name="plain">
<text locale="fr">plaine</text>
@ -169,7 +169,7 @@
<text locale="fr">volcan</text>
</string>
<string name="magicstorm">
<text locale="fr">tempête magique</text>
<text locale="fr">tempęte magique</text>
</string>
<string name="activevolcano_trail">
@ -179,7 +179,7 @@
<text locale="fr">un %s</text>
</string>
<string name="desert_trail">
<text locale="fr">le désert de %s</text>
<text locale="fr">le désert de %s</text>
</string>
<string name="firewall_trail">
<text locale="fr">un %s</text>
@ -188,7 +188,7 @@
<text locale="fr">fog_trail %s</text>
</string>
<string name="forest_trail">
<text locale="fr">la forêt de %s</text>
<text locale="fr">la foręt de %s</text>
</string>
<string name="glacier_trail">
<text locale="fr">le glacier de %s</text>
@ -277,11 +277,11 @@
</string>
<string name="unknownunit">
<text locale="fr">une unité inconnue</text>
<text locale="fr">une unité inconnue</text>
</string>
<string name="section_events">
<text locale="fr">Messages et Evénements</text>
<text locale="fr">Messages et Evénements</text>
</string>
<string name="section_errors">
<text locale="fr">Avertissements et Erreurs</text>
@ -296,7 +296,7 @@
<text locale="fr">Magie et Reliques</text>
</string>
<string name="section_movement">
<text locale="fr">Déplacements et Voyages</text>
<text locale="fr">Déplacements et Voyages</text>
</string>
<string name="section_study">
<text locale="fr">Apprentissage et Enseignement</text>
@ -313,25 +313,25 @@
<!-- Building Types -->
<string name="academy">
<text locale="fr">université</text>
<text locale="fr">université</text>
</string>
<string name="blessedstonecircle">
<text locale="fr">cromlech sacré</text>
<text locale="fr">cromlech sacré</text>
</string>
<string name="caravan">
<text locale="fr">caravansérail</text>
<text locale="fr">caravansérail</text>
</string>
<string name="dam">
<text locale="fr">barrage</text>
</string>
<string name="genericbuilding">
<text locale="fr">bâtiment</text>
<text locale="fr">bâtiment</text>
</string>
<string name="harbour">
<text locale="fr">port</text>
</string>
<string name="illusioncastle">
<text locale="fr">château illusoire</text>
<text locale="fr">château illusoire</text>
</string>
<string name="inn">
<text locale="fr">auberge</text>
@ -349,7 +349,7 @@
<text locale="fr">monument</text>
</string>
<string name="quarry">
<text locale="fr">carrière</text>
<text locale="fr">carričre</text>
</string>
<string name="sawmill">
<text locale="fr">scierie</text>
@ -358,7 +358,7 @@
<text locale="fr">forge</text>
</string>
<string name="stables">
<text locale="fr">écurie</text>
<text locale="fr">écurie</text>
</string>
<string name="stonecircle">
<text locale="fr">cromlech</text>
@ -381,7 +381,7 @@
<text locale="fr">tour</text>
</string>
<string name="castle">
<text locale="fr">château</text>
<text locale="fr">château</text>
</string>
<string name="fortress">
<text locale="fr">place-forte</text>
@ -403,10 +403,10 @@
<!-- Resourcen -->
<string name="money">
<text locale="fr">écu</text>
<text locale="fr">écu</text>
</string>
<string name="money_p">
<text locale="fr">écus</text>
<text locale="fr">écus</text>
</string>
<string name="hp">
<text locale="fr">point de vie</text>
@ -453,10 +453,10 @@
<text locale="fr">cristaux antimagie</text>
</string>
<string name="ao_chastity">
<text locale="fr">amulette de chasteté</text>
<text locale="fr">amulette de chasteté</text>
</string>
<string name="ao_chastity_p">
<text locale="fr">amulettes de chasteté</text>
<text locale="fr">amulettes de chasteté</text>
</string>
<string name="aoc">
<text locale="fr">amulette du chaton</text>
@ -465,10 +465,10 @@
<text locale="fr">amulettes du chaton</text>
</string>
<string name="aod">
<text locale="fr">amulette de ténèbres</text>
<text locale="fr">amulette de ténčbres</text>
</string>
<string name="aod_p">
<text locale="fr">amulettes de ténèbres</text>
<text locale="fr">amulettes de ténčbres</text>
</string>
<string name="aog">
<text locale="fr">amulette de rassemblement</text>
@ -483,10 +483,10 @@
<text locale="fr">amulettes de soin</text>
</string>
<string name="aots">
<text locale="fr">amulette de vérité</text>
<text locale="fr">amulette de vérité</text>
</string>
<string name="aots_p">
<text locale="fr">amulettes de vérité</text>
<text locale="fr">amulettes de vérité</text>
</string>
<string name="apple">
<text locale="fr">pomme</text>
@ -531,16 +531,16 @@
<text locale="fr">cottes de mailles</text>
</string>
<string name="cookie">
<text locale="fr">gâteau</text>
<text locale="fr">gâteau</text>
</string>
<string name="cookie_p">
<text locale="fr">gâteaux</text>
<text locale="fr">gâteaux</text>
</string>
<string name="crossbow">
<text locale="fr">arbalète</text>
<text locale="fr">arbalčte</text>
</string>
<string name="crossbow_p">
<text locale="fr">arbalètes</text>
<text locale="fr">arbalčtes</text>
</string>
<string name="dolphin">
<text locale="fr">dauphin</text>
@ -555,13 +555,13 @@
<text locale="fr">sang de dragon</text>
</string>
<string name="dragonhead">
<text locale="fr">tête de dragon</text>
<text locale="fr">tęte de dragon</text>
</string>
<string name="dragonhead_p">
<text locale="fr">têtes de dragons</text>
<text locale="fr">tętes de dragons</text>
</string>
<string name="dragonhoard">
<text locale="fr">trésor de dragon</text>
<text locale="fr">trésor de dragon</text>
</string>
<string name="dreameye">
<text locale="fr">oniroeil</text>
@ -588,10 +588,10 @@
<text locale="fr">bottes elfiques</text>
</string>
<string name="firesword">
<text locale="fr">épée ardente</text>
<text locale="fr">épée ardente</text>
</string>
<string name="firesword_p">
<text locale="fr">épées ardentes</text>
<text locale="fr">épées ardentes</text>
</string>
<string name="greatbow">
<text locale="fr">grand arc</text>
@ -654,10 +654,10 @@
<text locale="fr">boucliers en laen</text>
</string>
<string name="laensword">
<text locale="fr">épée en laen</text>
<text locale="fr">épée en laen</text>
</string>
<string name="laensword_p">
<text locale="fr">épées en laen</text>
<text locale="fr">épées en laen</text>
</string>
<string name="lance">
<text locale="fr">lance</text>
@ -666,10 +666,10 @@
<text locale="fr">lances</text>
</string>
<string name="log">
<text locale="fr">stère</text>
<text locale="fr">stčre</text>
</string>
<string name="log_p">
<text locale="fr">stères</text>
<text locale="fr">stčres</text>
</string>
<string name="magicbag">
<text locale="fr">sac magique</text>
@ -696,10 +696,10 @@
<text locale="fr">arcs en mallorn</text>
</string>
<string name="mallorncrossbow">
<text locale="fr">arbalète en mallorn</text>
<text locale="fr">arbalčte en mallorn</text>
</string>
<string name="mallorncrossbow_p">
<text locale="fr">arbalètes en mallorn</text>
<text locale="fr">arbalčtes en mallorn</text>
</string>
<string name="mallornlance">
<text locale="fr">lance en mallorn</text>
@ -708,10 +708,10 @@
<text locale="fr">lances en mallorn</text>
</string>
<string name="mallornspear">
<text locale="fr">épieu en mallorn</text>
<text locale="fr">épieu en mallorn</text>
</string>
<string name="mallornspear_p">
<text locale="fr">épieux en mallorn</text>
<text locale="fr">épieux en mallorn</text>
</string>
<string name="moneybag">
<text locale="fr">bourse</text>
@ -738,10 +738,10 @@
<text locale="fr">noix</text>
</string>
<string name="pegasus">
<text locale="fr">pégase</text>
<text locale="fr">pégase</text>
</string>
<string name="pegasus_p">
<text locale="fr">pégases</text>
<text locale="fr">pégases</text>
</string>
<string name="person">
<text locale="fr">homme</text>
@ -762,10 +762,10 @@
<text locale="fr">cartes de presse</text>
</string>
<string name="roi">
<text locale="fr">anneau d'invisibilité</text>
<text locale="fr">anneau d'invisibilité</text>
</string>
<string name="roi_p">
<text locale="fr">anneaux d'invisibilité</text>
<text locale="fr">anneaux d'invisibilité</text>
</string>
<string name="rop">
<text locale="fr">anneau de pouvoir</text>
@ -774,46 +774,46 @@
<text locale="fr">anneaux de pouvoir</text>
</string>
<string name="roqf">
<text locale="fr">anneau de dextérité</text>
<text locale="fr">anneau de dextérité</text>
</string>
<string name="roqf_p">
<text locale="fr">anneaux de dextérité</text>
<text locale="fr">anneaux de dextérité</text>
</string>
<string name="ror">
<text locale="fr">anneau de régénération</text>
<text locale="fr">anneau de régénération</text>
</string>
<string name="ror_p">
<text locale="fr">anneaux de régénération</text>
<text locale="fr">anneaux de régénération</text>
</string>
<string name="runesword">
<text locale="fr">épée runique</text>
<text locale="fr">épée runique</text>
</string>
<string name="runesword_p">
<text locale="fr">épées runiques</text>
<text locale="fr">épées runiques</text>
</string>
<string name="rustychainmail">
<text locale="fr">cotte de mailles rouillée</text>
<text locale="fr">cotte de mailles rouillée</text>
</string>
<string name="rustychainmail_p">
<text locale="fr">cottes de mailles rouillées</text>
<text locale="fr">cottes de mailles rouillées</text>
</string>
<string name="rustyshield">
<text locale="fr">bouclier rouillé</text>
<text locale="fr">bouclier rouillé</text>
</string>
<string name="rustyshield_p">
<text locale="fr">boucliers rouillés</text>
<text locale="fr">boucliers rouillés</text>
</string>
<string name="rustysword">
<text locale="fr">épée rouillée</text>
<text locale="fr">épée rouillée</text>
</string>
<string name="rustysword_p">
<text locale="fr">épées rouillées</text>
<text locale="fr">épées rouillées</text>
</string>
<string name="seaserpenthead">
<text locale="fr">tête de serpent de mer</text>
<text locale="fr">tęte de serpent de mer</text>
</string>
<string name="seaserpenthead_p">
<text locale="fr">têtes de serpents de mer</text>
<text locale="fr">tętes de serpents de mer</text>
</string>
<string name="shield">
<text locale="fr">bouclier</text>
@ -828,10 +828,10 @@
<text locale="fr">sacs de contenance</text>
</string>
<string name="spear">
<text locale="fr">épieu</text>
<text locale="fr">épieu</text>
</string>
<string name="spear_p">
<text locale="fr">épieux</text>
<text locale="fr">épieux</text>
</string>
<string name="stone">
<text locale="fr">pierre</text>
@ -840,10 +840,10 @@
<text locale="fr">pierres</text>
</string>
<string name="sword">
<text locale="fr">épée</text>
<text locale="fr">épée</text>
</string>
<string name="sword_p">
<text locale="fr">épées</text>
<text locale="fr">épées</text>
</string>
<string name="toadslime">
<text locale="fr">pot de bave de crapaud</text>
@ -858,16 +858,16 @@
<text locale="fr">ceintures de trolls</text>
</string>
<string name="unit">
<text locale="fr">unité</text>
<text locale="fr">unité</text>
</string>
<string name="unit_p">
<text locale="fr">unités</text>
<text locale="fr">unités</text>
</string>
<string name="skillpotion">
<text locale="fr">potion de compétences</text>
<text locale="fr">potion de compétences</text>
</string>
<string name="skillpotion_p">
<text locale="fr">potions de compétences</text>
<text locale="fr">potions de compétences</text>
</string>
<string name="manacrystal">
<text locale="fr">cristal astral</text>
@ -894,10 +894,10 @@
<text locale="fr">feux d'artifice</text>
</string>
<string name="lebkuchenherz">
<text locale="fr">coeur de pain d'épices</text>
<text locale="fr">coeur de pain d'épices</text>
</string>
<string name="lebkuchenherz_p">
<text locale="fr">coeurs de pain d'épices</text>
<text locale="fr">coeurs de pain d'épices</text>
</string>
<!-- luxury goods -->
@ -905,7 +905,7 @@
<text locale="fr">baume</text>
</string>
<string name="spice">
<text locale="fr">épices</text>
<text locale="fr">épices</text>
</string>
<string name="jewel">
<text locale="fr">joyau</text>
@ -929,7 +929,7 @@
<text locale="fr">baume</text>
</string>
<string name="spice_p">
<text locale="fr">épices</text>
<text locale="fr">épices</text>
</string>
<string name="myrrh_p">
<text locale="fr">myrrhe</text>
@ -946,10 +946,10 @@
<!-- Spezialitems -->
<string name="lmsreward">
<text locale="fr">Ceinture des Légendes</text>
<text locale="fr">Ceinture des Légendes</text>
</string>
<string name="lmsreward_p">
<text locale="fr">Ceintures des Légendes</text>
<text locale="fr">Ceintures des Légendes</text>
</string>
<!-- intranslatables: -->
@ -960,10 +960,10 @@
<text locale="fr">astragales</text>
</string>
<string name="h1">
<text locale="fr">méritoine</text>
<text locale="fr">méritoine</text>
</string>
<string name="h1_p">
<text locale="fr">méritoines</text>
<text locale="fr">méritoines</text>
</string>
<string name="h2">
<text locale="fr">oeil de hibou</text>
@ -972,10 +972,10 @@
<text locale="fr">yeux de hibou</text>
</string>
<string name="h3">
<text locale="fr">soie d'araignée</text>
<text locale="fr">soie d'araignée</text>
</string>
<string name="h3_p">
<text locale="fr">soies d'araignée</text>
<text locale="fr">soies d'araignée</text>
</string>
<string name="h4">
<text locale="fr">obbadion</text>
@ -1026,16 +1026,16 @@
<text locale="fr">fleurs de souffre</text>
</string>
<string name="h12">
<text locale="fr">feuille de Tshaï</text>
<text locale="fr">feuille de Tshaď</text>
</string>
<string name="h12_p">
<text locale="fr">feuilles de Tshaï</text>
<text locale="fr">feuilles de Tshaď</text>
</string>
<string name="h13">
<text locale="fr">bélidane</text>
<text locale="fr">bélidane</text>
</string>
<string name="h13_p">
<text locale="fr">bélidanes</text>
<text locale="fr">bélidanes</text>
</string>
<string name="h14">
<text locale="fr">racine de mandragore</text>
@ -1062,16 +1062,16 @@
<text locale="fr">boralmes</text>
</string>
<string name="h18">
<text locale="fr">ficoïde à cristaux</text>
<text locale="fr">ficoďde ŕ cristaux</text>
</string>
<string name="h18_p">
<text locale="fr">ficoïdes à cristaux</text>
<text locale="fr">ficoďdes ŕ cristaux</text>
</string>
<string name="h19">
<text locale="fr">blémissure</text>
<text locale="fr">blémissure</text>
</string>
<string name="h19_p">
<text locale="fr">blémissures</text>
<text locale="fr">blémissures</text>
</string>
<string name="h20">
<text locale="fr">rose des neiges</text>
@ -1080,10 +1080,10 @@
<text locale="fr">roses des neiges</text>
</string>
<string name="p0">
<text locale="fr">thé de sept lieues</text>
<text locale="fr">thé de sept lieues</text>
</string>
<string name="p0_p">
<text locale="fr">thé de sept lieues</text>
<text locale="fr">thé de sept lieues</text>
</string>
<string name="p1">
<text locale="fr">breuvage de Goliath</text>
@ -1092,16 +1092,16 @@
<text locale="fr">breuvage de Goliath</text>
</string>
<string name="p2">
<text locale="fr">élixir de vie</text>
<text locale="fr">élixir de vie</text>
</string>
<string name="p2_p">
<text locale="fr">élixir de vie</text>
<text locale="fr">élixir de vie</text>
</string>
<string name="p3">
<text locale="fr">vin du travail acharné</text>
<text locale="fr">vin du travail acharné</text>
</string>
<string name="p3_p">
<text locale="fr">vin du travail acharné</text>
<text locale="fr">vin du travail acharné</text>
</string>
<string name="p4">
<text locale="fr">onguent de soin</text>
@ -1134,10 +1134,10 @@
<text locale="fr">extraits de canicule</text>
</string>
<string name="p9">
<text locale="fr">fourrage de l'étalon</text>
<text locale="fr">fourrage de l'étalon</text>
</string>
<string name="p9_p">
<text locale="fr">fourrage de l'étalon</text>
<text locale="fr">fourrage de l'étalon</text>
</string>
<string name="p10">
<text locale="fr">vin de folie</text>
@ -1183,7 +1183,7 @@
<string name="AURA">
<text locale="fr">AURA</text>
</string>
<string name="BÄUME">
<string name="BÄUME">
<text locale="fr">ARBRES</text>
</string>
<string name="BAUERN">
@ -1213,10 +1213,10 @@
<string name="FREMDES">
<text locale="fr">ETRANGER</text>
</string>
<string name="GEBÄUDE">
<string name="GEBÄUDE">
<text locale="fr">BATIMENT</text>
</string>
<string name="GEGENSTÄNDE">
<string name="GEGENSTÄNDE">
<text locale="fr">OBJETS</text>
</string>
<string name="GIB">
@ -1234,16 +1234,16 @@
<string name="KOMMANDO">
<text locale="fr">CONTROLE</text>
</string>
<string name="KRÄUTER">
<string name="KRÄUTER">
<text locale="fr">PLANTES</text>
</string>
<string name="KÄMPFE">
<string name="KÄMPFE">
<text locale="fr">COMBAT</text>
</string>
<string name="NICHT">
<text locale="fr">NON</text>
</string>
<string name="NÄCHSTER">
<string name="NÄCHSTER">
<text locale="fr">SUIVANT</text>
</string>
<string name="PARTEI">
@ -1270,16 +1270,16 @@
<string name="SILBER">
<text locale="fr">ECUS</text>
</string>
<string name="STRAßEN">
<string name="STRAßEN">
<text locale="fr">ROUTES</text>
</string>
<string name="STUFE">
<text locale="fr">NIVEAU</text>
</string>
<string name="TEMPORÄRE">
<string name="TEMPORÄRE">
<text locale="fr">TEMPORAIRE</text>
</string>
<string name="TRÄNKE">
<string name="TRÄNKE">
<text locale="fr">POTIONS</text>
</string>
<string name="VOR">
@ -1303,7 +1303,7 @@
<text locale="fr">arc</text>
</string>
<string name="building">
<text locale="fr">maçon</text>
<text locale="fr">maçon</text>
</string>
<string name="cartmaking">
<text locale="fr">charron</text>
@ -1312,7 +1312,7 @@
<text locale="fr">catapulte</text>
</string>
<string name="crossbow">
<text locale="fr">arbalète</text>
<text locale="fr">arbalčte</text>
</string>
<string name="entertainment">
<text locale="fr">divertissement</text>
@ -1330,7 +1330,7 @@
<text locale="fr">magie</text>
</string>
<string name="melee">
<text locale="fr">mêlée</text>
<text locale="fr">męlée</text>
</string>
<string name="mining">
<text locale="fr">mineur</text>
@ -1345,7 +1345,7 @@
<text locale="fr">perrayeur</text>
</string>
<string name="riding">
<text locale="fr">équitation</text>
<text locale="fr">équitation</text>
</string>
<string name="roadwork">
<text locale="fr">cantonnier</text>
@ -1360,7 +1360,7 @@
<text locale="fr">endurance</text>
</string>
<string name="stealth">
<text locale="fr">discrétion</text>
<text locale="fr">discrétion</text>
</string>
<string name="tactics">
<text locale="fr">tactique</text>
@ -1625,10 +1625,10 @@
<text locale="fr">troll</text>
</string>
<string name="demon_p">
<text locale="fr">démons</text>
<text locale="fr">démons</text>
</string>
<string name="demon">
<text locale="fr">démons</text>
<text locale="fr">démons</text>
</string>
<string name="insect_p">
<text locale="fr">insectes</text>
@ -1703,10 +1703,10 @@
<text locale="fr">draconien</text>
</string>
<string name="special_p">
<text locale="fr">spéciaux</text>
<text locale="fr">spéciaux</text>
</string>
<string name="special">
<text locale="fr">spécial</text>
<text locale="fr">spécial</text>
</string>
<string name="spell_p">
<text locale="fr">enchantements</text>
@ -1733,16 +1733,16 @@
<text locale="fr">ombre</text>
</string>
<string name="shadowmaster_p">
<text locale="fr">lémures</text>
<text locale="fr">lémures</text>
</string>
<string name="shadowmaster">
<text locale="fr">lémure</text>
<text locale="fr">lémure</text>
</string>
<string name="mountainguard_p">
<text locale="fr">yétis</text>
<text locale="fr">yétis</text>
</string>
<string name="mountainguard">
<text locale="fr">yéti</text>
<text locale="fr">yéti</text>
</string>
<string name="alp_p">
<text locale="fr">quauquemaires</text>
@ -1757,10 +1757,10 @@
<text locale="fr">crapaud</text>
</string>
<string name="braineater_p">
<text locale="fr">céphalophages</text>
<text locale="fr">céphalophages</text>
</string>
<string name="braineater">
<text locale="fr">céphalophage</text>
<text locale="fr">céphalophage</text>
</string>
<string name="peasant_p">
<text locale="fr">paysans</text>
@ -1805,16 +1805,16 @@
<text locale="fr">loup</text>
</string>
<string name="ghost_p">
<text locale="fr">fantômes</text>
<text locale="fr">fantômes</text>
</string>
<string name="ghost">
<text locale="fr">fantôme</text>
<text locale="fr">fantôme</text>
</string>
<string name="dreamcat_p">
<text locale="fr">chats des rêves</text>
<text locale="fr">chats des ręves</text>
</string>
<string name="dreamcat">
<text locale="fr">chat des rêves</text>
<text locale="fr">chat des ręves</text>
</string>
<string name="hellcat_p">
<text locale="fr">chats de l'Enfer</text>
@ -1835,10 +1835,10 @@
<text locale="fr">dauphin</text>
</string>
<string name="giantturtle_p">
<text locale="fr">tortues géantes</text>
<text locale="fr">tortues géantes</text>
</string>
<string name="giantturtle">
<text locale="fr">tortue géante</text>
<text locale="fr">tortue géante</text>
</string>
<string name="kraken_p">
<text locale="fr">krakens</text>
@ -1883,10 +1883,10 @@
<text locale="fr">hibou</text>
</string>
<string name="fairy_p">
<text locale="fr">fées</text>
<text locale="fr">fées</text>
</string>
<string name="fairy">
<text locale="fr">fée</text>
<text locale="fr">fée</text>
</string>
<string name="eagle_p">
<text locale="fr">aigles</text>
@ -1937,10 +1937,10 @@
<text locale="fr">spectre</text>
</string>
<string name="museumghost_p">
<text locale="fr">fantômes du musée</text>
<text locale="fr">fantômes du musée</text>
</string>
<string name="museumghost">
<text locale="fr">fantôme du musée</text>
<text locale="fr">fantôme du musée</text>
</string>
<string name="gnome_p">
<text locale="fr">gnomes</text>
@ -1949,16 +1949,16 @@
<text locale="fr">gnome</text>
</string>
<string name="template_p">
<text locale="fr">modèles</text>
<text locale="fr">modčles</text>
</string>
<string name="template">
<text locale="fr">modèle</text>
<text locale="fr">modčle</text>
</string>
<string name="clone_p">
<text locale="fr">métamorphes</text>
<text locale="fr">métamorphes</text>
</string>
<string name="clone">
<text locale="fr">métamorphe</text>
<text locale="fr">métamorphe</text>
</string>
</namespace>
@ -1973,20 +1973,20 @@
<text locale="fr">Statut Politique</text>
</string>
<string name="nr_herbsrequired">
<text locale="fr">Plantes nécessaires</text>
<text locale="fr">Plantes nécessaires</text>
</string>
<string name="nr_undercons">
<text locale="fr">en construction</text>
</string>
<string name="nr_damaged">
<text locale="fr">de dégâts</text>
<text locale="fr">de dégâts</text>
</string>
<string name="nr_youaredead">
<text locale="fr">Votre faction a été éliminée. Nous espérons que vous vous êtes bien amusé malgré tout, et vous encourageons à vous réincrire pour une nouvelle partie.</text>
<text locale="fr">Votre faction a été éliminée. Nous espérons que vous vous ętes bien amusé malgré tout, et vous encourageons ŕ vous réincrire pour une nouvelle partie.</text>
</string>
<!-- TODO: calendar ist noch komplexer -->
<string name="nr_skills">
<text locale="fr">compétences</text>
<text locale="fr">compétences</text>
</string>
<string name="nr_inventory">
<text locale="fr">possessions</text>
@ -2013,13 +2013,13 @@
<text locale="fr">attaque</text>
</string>
<string name="b_defense">
<text locale="fr">défense</text>
<text locale="fr">défense</text>
</string>
<string name="b_armor">
<text locale="fr">armure</text>
</string>
<string name="b_damage">
<text locale="fr">dégâts</text>
<text locale="fr">dégâts</text>
</string>
<!-- Testitem -->
@ -2030,28 +2030,25 @@
<text locale="fr">baguettes</text>
</string>
<!-- Küsten -->
<!-- Küsten -->
<namespace name="coast">
<string name="nw">
<text locale="fr">côte nord-ouest</text>
<text locale="fr">côte nord-ouest</text>
</string>
<string name="ne">
<text locale="fr">côte nord-est</text>
<text locale="fr">côte nord-est</text>
</string>
<string name="e">
<text locale="fr">côte est</text>
<text locale="fr">côte est</text>
</string>
<string name="se">
<text locale="fr">côte sud-est</text>
<text locale="fr">côte sud-est</text>
</string>
<string name="sw">
<text locale="fr">côte sud-ouest</text>
<text locale="fr">côte sud-ouest</text>
</string>
<string name="w">
<text locale="fr">côte ouest</text>
<text locale="fr">côte ouest</text>
</string>
</namespace>
<string name="nr_nmr">
<text locale="fr">Aucun ordre reçu pour votre faction !</text>
</string>
</strings>

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<resource name="cart" big="true">
<item capacity="14000" weight="4000" score="60" vehicle="yes">
<resource name="cart">
<item capacity="14000" weight="4000" score="60" vehicle="yes" big="yes">
<construction skill="cartmaking" minskill="1" reqsize="1">
<requirement type="log" quantity="5"/>
</construction>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="cerddor">
<entry spell="create_roi" level="6" />
<entry spell="earn_silver#cerddor" level="1" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="draig">
<entry spell="create_roi" level="6" />
<entry spell="earn_silver#draig" level="1" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gray">
<entry spell="create_runesword" level="6" />
<entry spell="create_chastitybelt" level="7" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gwyrrd">
<entry spell="create_roi" level="6" />
<entry spell="earn_silver#gwyrrd" level="1" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="illaun">
<entry spell="create_roi" level="6" />
<entry spell="earn_silver#illaun" level="1" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="tybied">
<entry spell="create_roi" level="6" />
<entry spell="earn_silver#tybied" level="1" />

View File

@ -1,6 +1,6 @@
<?xml version="1.0"?>
<resource name="catapult">
<item weight="10000">
<item weight="10000" big="yes">
<construction skill="cartmaking" minskill="5" reqsize="1">
<requirement type="log" quantity="10"/>
</construction>

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config:///default/buildings/castle-2.xml" />
<xi:include href="config://default/buildings/castle-2.xml" />
<building name="watch" capacity="1" maxsize="10">
<function name="name" value="fort_name"/>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" encoding="utf-8"?>
<messages>
<message name="raindance_effect" section="magic">
<type>
<arg name="mage" type="unit"/>
</type>
<text locale="de">"$if($isnull($mage),"Ein unentdeckter Magier",$unit($mage)) führt einen sonderbaren Tanz auf. Kurz darauf beginnt es zu regnen."</text>
<text locale="de">"$if($isnull($mage),"Ein unentdeckter Magier",$unit($mage)) führt einen sonderbaren Tanz auf. Kurz darauf beginnt es zu regnen."</text>
<text locale="en">"$if($isnull($mage),"an unseen magician",$unit($mage)) dances a strange dance. Shortly after, rain begins to fall on the fields."</text>
</message>
</messages>

View File

@ -1,12 +1,12 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<races xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- begin main races -->
<xi:include href="config:///default/races/goblin-3.xml"/>
<xi:include href="config:///default/races/wyrm.xml"/>
<xi:include href="config:///default/races/dragon.xml"/>
<xi:include href="config:///default/races/youngdragon.xml"/>
<xi:include href="config://default/races/goblin-3.xml"/>
<xi:include href="config://default/races/wyrm.xml"/>
<xi:include href="config://default/races/dragon.xml"/>
<xi:include href="config://default/races/youngdragon.xml"/>
<race name="lynx" magres="0.000000" maxaura="0.000000" regaura="0.000000" weight="500" capacity="540" speed="1.0" hp="20" damage="2d3" unarmedattack="0" unarmeddefense="0" attackmodifier="4" defensemodifier="5" walk="yes" teach="no" getitem="yes">
<ai splitsize="99999"/>

View File

@ -2,13 +2,13 @@
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- this file contains resources that can be mined in some way (anything with a resourcelimit) -->
<xi:include href="config:///core/resources/cart.xml"/>
<xi:include href="config:///core/resources/horse.xml"/>
<xi:include href="config:///core/resources/hp.xml"/>
<xi:include href="config:///core/resources/laen.xml"/>
<xi:include href="config:///core/resources/log.xml"/>
<xi:include href="config:///core/resources/mallorn.xml"/>
<xi:include href="config:///core/resources/peasant.xml"/>
<xi:include href="config://core/resources/cart.xml"/>
<xi:include href="config://core/resources/horse.xml"/>
<xi:include href="config://core/resources/hp.xml"/>
<xi:include href="config://core/resources/laen.xml"/>
<xi:include href="config://core/resources/log.xml"/>
<xi:include href="config://core/resources/mallorn.xml"/>
<xi:include href="config://core/resources/peasant.xml"/>
<xi:include href="resources/iron.xml"/>
<xi:include href="resources/mallornseed.xml"/>
<xi:include href="resources/seed.xml"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="cerddor">
<entry spell="create_potion_p2" level="2" />
<entry spell="create_potion_p0" level="3" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="common">
<entry spell="goodwinds" level="4" />
<entry spell="create_trollbelt" level="9" />
@ -37,7 +37,7 @@
<entry spell="summon_familiar" level="9" />
<entry spell="draigfumbleshield" level="9" />
<entry spell="gwyrrdfumbleshield" level="5" />
<entry spell="cerrdorfumbleshield" level="5" />
<entry spell="cerddorfumbleshield" level="5" />
<entry spell="tybiedfumbleshield" level="2" />
<entry spell="concealing_aura" level="1" />
<entry spell="shockwave" level="5" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="draig">
<entry spell="create_potion_p2" level="2" />
<entry spell="create_potion_p0" level="3" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gray">
<entry spell="acidrain" level="8" />
<entry spell="airship" level="6" />
@ -22,7 +22,7 @@
<entry spell="calm_monster" level="6" />
<entry spell="calm_riot" level="14" />
<entry spell="cerddor_destroymagic" level="8" />
<entry spell="cerrdorfumbleshield" level="5" />
<entry spell="cerddorfumbleshield" level="5" />
<entry spell="chaosrow" level="8" />
<entry spell="clone" level="9" />
<entry spell="coldfront" level="8" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gwyrrd">
<entry spell="create_potion_p2" level="2" />
<entry spell="create_potion_p0" level="3" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="illaun">
<entry spell="create_potion_p2" level="2" />
<entry spell="create_potion_p0" level="3" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml version="1.0"?>
<spells xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="spellbooks/common.xml"/>
@ -56,7 +56,7 @@
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="icastle" rank="5" index="137" syntax="buildingtype" parameters="c">
<!-- Traumschlößchen -->
<!-- Traumschlößchen -->
<resource name="aura" amount="3" cost="fixed"/>
</spell>
<spell name="dreamreading" rank="5" index="13" parameters="u" far="true">
@ -82,7 +82,7 @@
<!-- missing syntactical info: ONETARGET | UNITSPELL -->
</spell>
<spell name="gooddreams" rank="5" index="12" far="true">
<!-- Schöne Träume -->
<!-- Schöne Träume -->
<resource name="aura" amount="80" cost="fixed"/>
</spell>
<spell name="illaundestroymagic" rank="2" index="140" parameters="kc+" los="true" ship="true" far="true" variable="true">
@ -97,7 +97,7 @@
<resource name="silk" amount="20" cost="fixed"/>
</spell>
<spell name="bad_dreams" rank="5" index="11" far="true">
<!-- Schlechte Träume -->
<!-- Schlechte Träume -->
<resource name="aura" amount="90" cost="fixed"/>
</spell>
<spell name="mindblast" rank="5" index="78" variable="true" combat="1">
@ -114,11 +114,11 @@
<!-- new draig -->
<spell name="sparklechaos" rank="5" index="153" parameters="u" los="true" variable="true">
<!-- Verwünschung -->
<!-- Verwünschung -->
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="earn_silver#draig" ship="true" variable="true" rank="5" index="159">
<!-- Kleine Flüche -->
<!-- Kleine Flüche -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
@ -149,7 +149,7 @@
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="summonundead" rank="5" index="41" ship="true" far="true" variable="true">
<!-- Mächte des Todes -->
<!-- Mächte des Todes -->
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="firewall" rank="4" index="151" syntax="direction" parameters="c" variable="true">
@ -162,7 +162,7 @@
<resource name="peasant" amount="10" cost="fixed"/>
</spell>
<spell name="summonshadow" rank="5" index="34" variable="true">
<!-- Beschwöre Schattendämonen -->
<!-- Beschwöre Schattendämonen -->
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="undeadhero" rank="5" index="164" variable="true" combat="3">
@ -184,7 +184,7 @@
<resource name="dragonhead" amount="1" cost="fixed"/>
</spell>
<spell name="summonshadowlords" rank="5" index="35" variable="true">
<!-- Beschwöre Schattenmeister -->
<!-- Beschwöre Schattenmeister -->
<resource name="aura" amount="7" cost="level"/>
</spell>
<spell name="create_firesword" ship="true" rank="5" index="148">
@ -235,7 +235,7 @@
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="seduction" rank="5" index="73" parameters="u" los="true">
<!-- Lied der Verführung -->
<!-- Lied der Verführung -->
<resource name="aura" amount="12" cost="fixed"/>
</spell>
<spell name="calm_monster" rank="5" index="75" parameters="u" los="true" ship="true">
@ -288,7 +288,7 @@
</spell>
<!-- TODO: exploitable (transfers items) -->
<spell name="big_recruit" rank="5" index="179" variable="true">
<!-- Hohe Kunst der Überzeugung -->
<!-- Hohe Kunst der Überzeugung -->
<resource name="aura" amount="20" cost="level"/>
</spell>
<spell name="calm_riot" rank="5" index="91" far="true">
@ -330,7 +330,7 @@
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="goodwinds" rank="5" index="56" parameters="s" ship="true" variable="true">
<!-- Beschwörung eines Wasserelementares -->
<!-- Beschwörung eines Wasserelementares -->
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="windshield" rank="5" index="59" variable="true" combat="1">
@ -342,12 +342,12 @@
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="earthquake" rank="5" index="53" far="true">
<!-- Beschwöre einen Erdelementar -->
<!-- Beschwöre einen Erdelementar -->
<resource name="aura" amount="25" cost="fixed"/>
<resource name="laen" amount="2" cost="fixed"/>
</spell>
<spell name="stormwinds" rank="5" index="55" parameters="s+" ship="true" ocean="true" variable="true">
<!-- Beschwöre einen Sturmelementar -->
<!-- Beschwöre einen Sturmelementar -->
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="wolfhowl" rank="5" index="94" variable="true" combat="1">
@ -381,7 +381,7 @@
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="summonfireelemental" rank="5" index="46" far="true">
<!-- Beschwörung eines Hitzeelementar -->
<!-- Beschwörung eines Hitzeelementar -->
<resource name="aura" amount="600" cost="fixed"/>
</spell>
<spell name="maelstrom" rank="5" index="24" ship="true" ocean="true">
@ -404,15 +404,15 @@
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="2" cost="linear"/>
<resource name="h12" amount="1" cost="linear"/><!-- Windbeutel -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
</spell>
<spell name="create_potion_p9" ship="true" rank="5" variable="true">
<!-- Pferdeglück -->
<!-- Pferdeglück -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="3" cost="linear"/>
<resource name="h0" amount="1" cost="linear"/><!-- Flachwurz -->
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
</spell>
<spell name="create_potion_peasantblood" ship="true" rank="5" variable="true">
<!-- Bauernblut -->
@ -420,7 +420,7 @@
<resource name="aura" amount="3" cost="linear"/>
<resource name="h14" amount="1" cost="linear"/><!-- Alraune -->
<resource name="h6" amount="1" cost="linear"/><!-- Gurgelkraut -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
<resource name="peasant" amount="1" cost="fixed"/><!-- Bauer -->
</spell>
@ -429,9 +429,9 @@
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="4" cost="linear"/>
<resource name="h4" amount="1" cost="linear"/><!-- Baumringel -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
<resource name="h18" amount="1" cost="linear"/><!-- Eisblume -->
<resource name="h11" amount="1" cost="linear"/><!-- Sandfäule -->
<resource name="h11" amount="1" cost="linear"/><!-- Sandfäule -->
</spell>
<spell name="create_potion_p3" ship="true" rank="5" variable="true">
<!-- Schaffenstrunk -->
@ -448,7 +448,7 @@
<resource name="aura" amount="5" cost="linear"/>
<resource name="h0" amount="1" cost="linear"/><!-- Flachwurz -->
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
<resource name="h15" amount="1" cost="linear"/><!-- Steinbeißer -->
<resource name="h18" amount="1" cost="linear"/><!-- Eisblume -->
<resource name="h9" amount="1" cost="linear"/><!-- Wasserfinder -->
</spell>
@ -458,9 +458,9 @@
<resource name="aura" amount="5" cost="linear"/>
<resource name="h14" amount="1" cost="linear"/><!-- Alraune -->
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
<resource name="h17" amount="1" cost="linear"/><!-- Höhlenglimm -->
<resource name="h20" amount="1" cost="linear"/><!-- Schneekristall -->
<resource name="h11" amount="1" cost="linear"/><!-- Sandfäule -->
<resource name="h11" amount="1" cost="linear"/><!-- Sandfäule -->
<resource name="dragonblood" amount="1" cost="fixed"/><!-- Drachenblut -->
</spell>
@ -619,7 +619,7 @@
<spell name="gwyrrdfumbleshield" rank="2" index="144" variable="true" combat="1">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="cerrdorfumbleshield" rank="2" index="145" variable="true" combat="1">
<spell name="cerddorfumbleshield" rank="2" index="145" variable="true" combat="1">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="tybiedfumbleshield" rank="2" index="146" variable="true" combat="1">

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="UTF-8"?>
<strings>
<!--
_d: dativ (wir erklären allen /Trollen/ den Krieg)
_d: dativ (wir erklären allen /Trollen/ den Krieg)
_p: plural (13 /Trolle/)
_x: preposition (15 /Troll/schwerter)
_a: including article (ein Troll, a troll)
@ -25,16 +25,16 @@
<text locale="en">adamantium axe</text>
</string>
<string name="adamantiumaxe_p">
<text locale="de">Adamantiumäxte</text>
<text locale="de">Adamantiumäxte</text>
<text locale="en">adamantium axes</text>
</string>
<string name="adamantiumplate">
<text locale="de">Adamantiumrüstung</text>
<text locale="de">Adamantiumrüstung</text>
<text locale="en">adamantium plate</text>
</string>
<string name="adamantiumplate_p">
<text locale="de">Adamantiumrüstungen</text>
<text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text>
</string>
@ -58,7 +58,7 @@
<text locale="en">Certificates</text>
</string>
<string name="rpg_item_2_p">
<text locale="de">Nußhälften</text>
<text locale="de">Nußhälften</text>
<text locale="en">nut halves</text>
</string>
<string name="rpg_item_3_p">
@ -66,11 +66,11 @@
<text locale="en">bottle demons</text>
</string>
<string name="rpg_item_1">
<text locale="de">Pandoras Urkunde für Halbling ehrenhalber, weiblich</text>
<text locale="de">Pandoras Urkunde für Halbling ehrenhalber, weiblich</text>
<text locale="en">Pandora's Certificate</text>
</string>
<string name="rpg_item_2">
<text locale="de">Heilige Nußhälfte</text>
<text locale="de">Heilige Nußhälfte</text>
<text locale="en">piece of a holy nut</text>
</string>
<string name="rpg_item_3">
@ -83,12 +83,12 @@
<text locale="en">repeating crossbow</text>
</string>
<string name="rep_crossbow_p">
<text locale="de">Repetierarmbrüste</text>
<text locale="de">Repetierarmbrüste</text>
<text locale="en">repeating crossbows</text>
</string>
<string name="scaffolding">
<text locale="de">Gerüst</text>
<text locale="de">Gerüst</text>
<text locale="en">scaffolding</text>
</string>
<string name="guardhouse">
@ -110,11 +110,11 @@
<namespace name="morale">
<string name="0">
<text locale="de">aufständische</text>
<text locale="de">aufständische</text>
<text locale="en">rebellious</text>
</string>
<string name="1">
<text locale="de">wütende</text>
<text locale="de">wütende</text>
<text locale="en">mad</text>
</string>
<string name="2">
@ -126,7 +126,7 @@
<text locale="en">agitated</text>
</string>
<string name="4">
<text locale="de">gleichgültige</text>
<text locale="de">gleichgültige</text>
<text locale="en">indifferent</text>
</string>
<string name="5">
@ -138,7 +138,7 @@
<text locale="en">content</text>
</string>
<string name="7">
<text locale="de">glückliche</text>
<text locale="de">glückliche</text>
<text locale="en">happy</text>
</string>
<string name="8">
@ -150,7 +150,7 @@
<text locale="en">devoted</text>
</string>
<string name="10">
<text locale="de">unterwürfige</text>
<text locale="de">unterwürfige</text>
<text locale="en">subservient</text>
</string>
</namespace>
@ -159,7 +159,7 @@
<text locale="en">charger</text>
</string>
<string name="charger_p">
<text locale="de">Streitrösser</text>
<text locale="de">Streitrösser</text>
<text locale="en">chargers</text>
</string>
<string name="towershield">
@ -193,7 +193,7 @@
<text locale="en">brew peasant blood</text>
</string>
<string name="create_potion_p9">
<text locale="de">Braue Pferdeglück</text>
<text locale="de">Braue Pferdeglück</text>
<text locale="en">brew horsepower potion</text>
</string>
<string name="create_potion_p13">
@ -206,24 +206,35 @@
</string>
</namespace>
<namespace name="spellinfo">
<namespace name="spellinfo">
<string name="concealing_aura">
<text locale="de">Dieser Zauber wird die gesamte Ausrüstung der
Zieleinheit für
einige Zeit vor den Blicken anderer verschleiern. Der
Zauber
schützt nicht vor Dieben und Spionen.</text>
<text locale="en">This spell will hide the whole equipment of a target
unit from the
looks of others. It will not protect against thieves or
spies.</text>
</string>
<string name="raindance">
<text locale="de">Durch dieses uralte Tanzritual ruft der Zauberkundige
die Kräfte des Lebens und der Fruchtbarkeit an. Die darauf folgenden
Regenfälle begünstigen das Wachstum und erhöhen die Ernteerträge
einiger Bauern der Region bis der Regen wieder nachlässt.</text>
die Kräfte des Lebens und der Fruchtbarkeit an. Die darauf folgenden
Regenfälle begünstigen das Wachstum und erhöhen die Ernteerträge
einiger Bauern der Region bis der Regen wieder nachlässt.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.
(OBS: this spell has been changed and needs a new translation).</text>
</string>
<string name="blessedharvest">
<text locale="de">Für dieses Ernteritual sendet der Druide seine arkane Energie entlang
<text locale="de">Für dieses Ernteritual sendet der Druide seine arkane Energie entlang
der astralen Kraftlinien der gesamten Umgebung, um selbst weit entfernte
Naturgeister zu erreichen. Die Beschwörung dieser Naturgeister ist eine
hohe Kunst, die höchste Konzentration und vor allem viel Erfahrung
Naturgeister zu erreichen. Die Beschwörung dieser Naturgeister ist eine
hohe Kunst, die höchste Konzentration und vor allem viel Erfahrung
erfordert. Die Bauern werden nach und nach von den besseren Ernten
profitieren und ihre Ersparnisse steigern können.</text>
profitieren und ihre Ersparnisse steigern können.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.
@ -231,13 +242,13 @@
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 25 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
@ -250,10 +261,10 @@
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="de">Niemand kann so gut die Träume deuten
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
sind ihm geläufig. Dafür zahlen ihm die Bauern
25 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also
@ -265,11 +276,11 @@
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 25 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
@ -283,10 +294,10 @@
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
25 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
@ -298,11 +309,11 @@
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 25 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
@ -318,31 +329,31 @@
</string>
<string name="create_potion_p2">
<text locale="en">One of the most strange spells enables the magician to withdraw a little life energy from his surroundings to produce the so called water of life. The juice of some selected herbs is used to conserve the energies of life. As the magician is protected by his magical abilities, he is the only one who can touch the juice without taking damage. This is necessary because the juice must be carried around from place to place to avoid damaging one region by taking too much energy at once.</text>
<text locale="de">In einem der seltsamsten Zauber kann der Magier seiner Umgebung ein klein wenig der Lebensenergie entziehen um das sogenannte Wasser des Lebens herstellen. Als Basis dient ihm hierbei der Saft aus einigen ausgesuchten Kräutern, welcher die Lebensenergie speichern kann. Da der Magier aufgrund seiner magischen Fähigkeiten immun ist, ist er der einzige, der den Saft berühren kann, ohne Schaden zu nehmen. Sodenn muß er diesen eine Woche lang von Ort zu Ort tragen, damit er sich mit Lebensenergie vollsaugt, ohne einem einzelnen Ort soviel zu entfernen, daß er Schaden nimmt. </text>
<text locale="de">In einem der seltsamsten Zauber kann der Magier seiner Umgebung ein klein wenig der Lebensenergie entziehen um das sogenannte Wasser des Lebens herstellen. Als Basis dient ihm hierbei der Saft aus einigen ausgesuchten Kräutern, welcher die Lebensenergie speichern kann. Da der Magier aufgrund seiner magischen Fähigkeiten immun ist, ist er der einzige, der den Saft berühren kann, ohne Schaden zu nehmen. Sodenn muß er diesen eine Woche lang von Ort zu Ort tragen, damit er sich mit Lebensenergie vollsaugt, ohne einem einzelnen Ort soviel zu entfernen, daß er Schaden nimmt. </text>
</string>
<string name="create_potion_p3">
<text locale="en">Busybeer is another application for the knowledge about time a magician accumulates. Even though manual labour is only seldom done by mages, they still show interest in increasing the efficiency of their minions that do this work for them. Mornac the wise was the first to discover how to produce a potion that would enable 10 minions to do the work of 20, thus freeing the other 10 for different experiments.</text>
<text locale="de">Ein weiteres Anwendungsgebiet des Wissens über die Zeit welches ein Magier ansammelt stellt der Schaffenstrunk dar. Auch wenn körperliche Arbeiten eher selten von Magiern ausgeführt werden, so haben diese doch ein Interesse daran, die Effizienz ihrer Untergebenen bei solchen Arbeiten zu steigern. Mornac der Weise war der erste, der entdeckte, daß man einen Trunk herstellen kann, durch den 10 Untergebene die arbeit von 20 erledigen können, wodurch 10 für andere Experimente weiterverwendet werden konnten. </text>
<text locale="de">Ein weiteres Anwendungsgebiet des Wissens über die Zeit welches ein Magier ansammelt stellt der Schaffenstrunk dar. Auch wenn körperliche Arbeiten eher selten von Magiern ausgeführt werden, so haben diese doch ein Interesse daran, die Effizienz ihrer Untergebenen bei solchen Arbeiten zu steigern. Mornac der Weise war der erste, der entdeckte, daß man einen Trunk herstellen kann, durch den 10 Untergebene die arbeit von 20 erledigen können, wodurch 10 für andere Experimente weiterverwendet werden konnten. </text>
</string>
<string name="create_potion_ointment">
<text locale="en">In the aftermath of battle it is vital to heal your own troops. This can be done by a healer as well as by a magician. In contrast to a healer, the magician can fullfill his treatment already before the battle by binding his magical powers into a potent salve. This salve can be stored and only needs to be applied to the wounds after the battle. </text>
<text locale="de">Nach einem harten Kampf sollte man sich heilen lassen. Diese Möglichkeit bietet der Magier ebenso wie der Heiler. Im Gegensatz zum Heiler ist der Magier jedoch in der Lage, seine Behandlung bereits vor dem Kampf durchzuführen, indem er seine Heilkräfte in eine magische Salbe bindet, welche gelagert werden kann und nach dem Kampf nur aufgetragen werden muß.</text>
<text locale="de">Nach einem harten Kampf sollte man sich heilen lassen. Diese Möglichkeit bietet der Magier ebenso wie der Heiler. Im Gegensatz zum Heiler ist der Magier jedoch in der Lage, seine Behandlung bereits vor dem Kampf durchzuführen, indem er seine Heilkräfte in eine magische Salbe bindet, welche gelagert werden kann und nach dem Kampf nur aufgetragen werden muß.</text>
</string>
<string name="create_potion_peasantblood">
<text locale="en">One of the most dangerous and best guarded secrets of all mages is the knowledge about the power of death. Even though most of them would not openly admit it, and it is at least partially forbidden in most countries, each of them studies death sooner or later. When they do, they quickly find out that there is another plane of existance, the home of the demons. Only blood can quelch the thirst of those, when they switch from their home to our world. But experienced mages will find out that the demons bloodwine can be deluted when apropiate herbs are included, making it enough for 100 instead of 10 demons. As the demons may not know about that, the magician has to secretly sacrifice one of his freed minions.</text>
<text locale="de">Zu den gefährlichsten und geheimsten Wissen der Magier zählt das Wissen über die Macht des Todes. Auch wenn die meisten es nicht zugeben, so fasziniert dieses Thema jeden Magier. Früher oder später beschäftigen sich alle mit diesem, teilweise verbotenen, Gebiet. Sodann werden sie feststellen, das es noch eine weitere Ebene der Existenz gibt, in der die Dämonen beheimatet sind. Nur Blut allein vermag den Hunger dieser Wesen zu befriedigen, wenn sie ihre Ebene verlassen und unsere betreten. Erfahrene Magier werden jedoch feststellen, dass man den Blutwein, den die Dämonen zu sich nehmen strecken kann, so daß davon 100 anstatt nur 10 Dämonen satt werden. Da die Dämonen davon jedoch nichts wissen dürfen, muß der Magier selbst klammheimlich einen seiner urplötzlich verfügbar gewordenen Untergebenen opfern. </text>
<text locale="de">Zu den gefährlichsten und geheimsten Wissen der Magier zählt das Wissen über die Macht des Todes. Auch wenn die meisten es nicht zugeben, so fasziniert dieses Thema jeden Magier. Früher oder später beschäftigen sich alle mit diesem, teilweise verbotenen, Gebiet. Sodann werden sie feststellen, das es noch eine weitere Ebene der Existenz gibt, in der die Dämonen beheimatet sind. Nur Blut allein vermag den Hunger dieser Wesen zu befriedigen, wenn sie ihre Ebene verlassen und unsere betreten. Erfahrene Magier werden jedoch feststellen, dass man den Blutwein, den die Dämonen zu sich nehmen strecken kann, so daß davon 100 anstatt nur 10 Dämonen satt werden. Da die Dämonen davon jedoch nichts wissen dürfen, muß der Magier selbst klammheimlich einen seiner urplötzlich verfügbar gewordenen Untergebenen opfern. </text>
</string>
<string name="create_potion_p9">
<text locale="en">Even though mages live in strict cellibate they know a lot about creating certain longings. Peasants keep asking them for this love potion or that. But the penality for bewitching a peasant is death, so the mages offer their services only to farmers for their breeding stock. In an elaborate ritual, which only serves to hide the simplicity of the procedure, the magician draws the fluids from certains plants. while doing so, he calls upon the spirits of fertility which of course only listen when he talkes to them. Now the farmer knows that any attempt to draw the fluids himself will only result in a useless waste of resorces. Finally, the magician hands the vial with the fluids to the farmer, who pours it into his horses drinking water.</text>
<text locale="de">Obwohl für Magier das Gebiet der Liebe Tabu ist und sie im strengen Zölibat leben, haben sie ein großes Wissen darüber, wie man gewisse Bedürfnisse weckt, weshalb sie immer wieder von Dorfbewohnerinnen und Dorfbewohnern nach entsprechenden Zaubern gefragt werden. Da die Verzauberung eines Bewohners jedoch streng verboten ist, bieten sie ihre Dienste nur für die Züchter an. In einem Aufwendigen Ritual, welches jedoch nur dazu dient zu verschleiern, wie einfach dies eigentlich ist, vermischt der Magier vor den Augen des Züchters einige Pflanzensäfte. Dabei ruft er die Geister an die dem Pferdezüchter das Glück bescheren sollen, um klarzumachen, das diese nur mit ihm sprechen und jeglicher Versuch des Züchters, selbst die Kräuter zu mischen nur eine unbrauchbare Pampe produzieren würde. Anschließend überreicht der Magier dem Züchter eine Phiole, die dieser in die Tränke seiner Pferde entleeren muß.</text>
<text locale="de">Obwohl für Magier das Gebiet der Liebe Tabu ist und sie im strengen Zölibat leben, haben sie ein großes Wissen darüber, wie man gewisse Bedürfnisse weckt, weshalb sie immer wieder von Dorfbewohnerinnen und Dorfbewohnern nach entsprechenden Zaubern gefragt werden. Da die Verzauberung eines Bewohners jedoch streng verboten ist, bieten sie ihre Dienste nur für die Züchter an. In einem Aufwendigen Ritual, welches jedoch nur dazu dient zu verschleiern, wie einfach dies eigentlich ist, vermischt der Magier vor den Augen des Züchters einige Pflanzensäfte. Dabei ruft er die Geister an die dem Pferdezüchter das Glück bescheren sollen, um klarzumachen, das diese nur mit ihm sprechen und jeglicher Versuch des Züchters, selbst die Kräuter zu mischen nur eine unbrauchbare Pampe produzieren würde. Anschließend überreicht der Magier dem Züchter eine Phiole, die dieser in die Tränke seiner Pferde entleeren muß.</text>
</string>
<string name="create_potion_p13">
<text locale="en">Just like with the knowledge about death, the peasants feel uncomfortable with the knowledge about monsters. A few warriors though, who have already faced these creatures in combat, foud that the monsters blood had en invigourating effect on them. There is talk about some warriors, who bathed in the blood of the slain monsters to take up their strenght. But this effect ends soon, and only occurs with fresh blood. As no one has time to quickly slay a wyrm before attacking his neighbors, a way had to be found to make the effect last longer. After lots of experiments that cost the life of lots of good warriors who had to constantly bring in fresh dragon blood, Manasouf the black finally found a way. Originally a closely guarded secret, the recipe is now knows in all lands. First, the hardened dragon blood needs to be melted in hot tin. After that, the magician binds the spirit of the dragon to its blood once again. It can not fnd eternal rest until the last bit of blood has been used. </text>
<text locale="de">Ebenso wie das Wissen über den Tod ist das Wissen über gewisse Monster bei der abergläubigen Bevölkerung nicht gerne gesehen. Einige wenige Krieger jedoch, die diesen Kreaturen schon mal im Kampf gegenüberstanden haben entdeckt, daß deren Blut eine belebende Wirkung auf sie hatte. So solle es schon Kriger gegeben haben, die im Blut der erschlagenen Monster badeten, um deren Stärke in sich aufzunehmen. Diese Wirkung verfliegt jedoch rasch, und wirkt nur bei frischen Blut. Da niemand vor dem Kampf gegen seinen Nachbarn die Zeit hat, schnell noch einen Wyrm zu erschlagen musste ein Weg gefunden werden, die Wirkung haltbar zu machen. Manasouf dem schwarzen gelang dies nach zahlreichen Experimenten, die das Leben vieler guter Männer kosteten, welche ständig neues Drachenblut für seine Versuche beschaffen mussten. Ursprünglich ein streng gehütetes Geheimnis, ist das Rezept inzwischen im ganzen Land bekannt. Zunächst muß geronnene Drachenblut muß in einem Tiegel wieder verflüssigt werden. Anschließend wird der Geist des erschlagenen Drachen in der Geisterebene wieder an sein Blut gebunden, und kann solange nicht in frieden ruhen, bis das letzte bisschen seines Blutes verbraucht wurde.</text>
<text locale="de">Ebenso wie das Wissen über den Tod ist das Wissen über gewisse Monster bei der abergläubigen Bevölkerung nicht gerne gesehen. Einige wenige Krieger jedoch, die diesen Kreaturen schon mal im Kampf gegenüberstanden haben entdeckt, daß deren Blut eine belebende Wirkung auf sie hatte. So solle es schon Kriger gegeben haben, die im Blut der erschlagenen Monster badeten, um deren Stärke in sich aufzunehmen. Diese Wirkung verfliegt jedoch rasch, und wirkt nur bei frischen Blut. Da niemand vor dem Kampf gegen seinen Nachbarn die Zeit hat, schnell noch einen Wyrm zu erschlagen musste ein Weg gefunden werden, die Wirkung haltbar zu machen. Manasouf dem schwarzen gelang dies nach zahlreichen Experimenten, die das Leben vieler guter Männer kosteten, welche ständig neues Drachenblut für seine Versuche beschaffen mussten. Ursprünglich ein streng gehütetes Geheimnis, ist das Rezept inzwischen im ganzen Land bekannt. Zunächst muß geronnene Drachenblut muß in einem Tiegel wieder verflüssigt werden. Anschließend wird der Geist des erschlagenen Drachen in der Geisterebene wieder an sein Blut gebunden, und kann solange nicht in frieden ruhen, bis das letzte bisschen seines Blutes verbraucht wurde.</text>
</string>
<string name="create_potion_p14">
<text locale="en">Some mages research deth's secrets until they can bring the dead back to life. But those who are brought back are often only shadows of ther former self and turn against their erstwhile friends. But those mages that study life and its iteraction with death find a possibility, to bring the deceased back as their original selves. A drawback is that this is only possible in the very first minutes after the death. As even mages can not be everywhere at the same time, a way had to be found to give this ability to helpers. All healers who tried to learn this from the mages failed, though, until one of those healers was backstabbingly killed. In the moment of his death he used the knowledge gained and was able to have his murderer executed the following day. The potion he designed has to be blessed by a magician before usage at any given time. This potion gives 4 people (or 1 person 4 times) a 50% chance to survive an otherwise deadly wound. It is used automatically by the victom.</text>
<text locale="de">Manche Magier erforschen den Tod, bis sie verstorbene wieder ins Leben zurück bringen können. Diese sind jedoch meist bösartig und nur noch Schatten ihres früheren selbst. Diejenigen jedoch, die sich intensiv mit dem Leben und seiner Kombination mit dem Tod beschäftigen finden eine Möglichkeit, verstorbene in ihrer wahren Gestallt zurück zu rufen. Dies ist allerdings nur wenige Minuten nach dem Tod möglich. Da selbst Magier nicht überall gleichzeitig sein können, musste ein Weg gefunden werden, diese Fähigkeit auf andere zu übertragen. Alle Versuche, dies feldschern beizubringen scheiterten jedoch, bis einer dieser Felschner von einem Widersacher hinterrücks ermordet wurde. Im Moment seines Todes wandte er sein erworbenes Wissen an und konnte tags darauf den Übeltäter wegen Mordes hinrichten lassen. Der von ihm entwickelte magische Trank muß jedoch von einem der Magie des Lebens kundigen gesegnet werden, um seine volle Wirkung zu entfalten. Ein solcher Trank gibt vier Männern (oder einem Mann vier mal) im Kampf eine Chance von 50%, sonst tödliche Wunden zu überleben. Der Trank wird von ihnen automatisch bei Verletzung angewandt.</text>
<text locale="de">Manche Magier erforschen den Tod, bis sie verstorbene wieder ins Leben zurück bringen können. Diese sind jedoch meist bösartig und nur noch Schatten ihres früheren selbst. Diejenigen jedoch, die sich intensiv mit dem Leben und seiner Kombination mit dem Tod beschäftigen finden eine Möglichkeit, verstorbene in ihrer wahren Gestallt zurück zu rufen. Dies ist allerdings nur wenige Minuten nach dem Tod möglich. Da selbst Magier nicht überall gleichzeitig sein können, musste ein Weg gefunden werden, diese Fähigkeit auf andere zu übertragen. Alle Versuche, dies feldschern beizubringen scheiterten jedoch, bis einer dieser Felschner von einem Widersacher hinterrücks ermordet wurde. Im Moment seines Todes wandte er sein erworbenes Wissen an und konnte tags darauf den Übeltäter wegen Mordes hinrichten lassen. Der von ihm entwickelte magische Trank muß jedoch von einem der Magie des Lebens kundigen gesegnet werden, um seine volle Wirkung zu entfalten. Ein solcher Trank gibt vier Männern (oder einem Mann vier mal) im Kampf eine Chance von 50%, sonst tödliche Wunden zu überleben. Der Trank wird von ihnen automatisch bei Verletzung angewandt.</text>
</string>
</namespace>
@ -356,8 +367,8 @@
<string name="commonfamiliar">
<text locale="de">Einem erfahrenen Magier wird
irgendwann auf seinen Wanderungen ein
ungewöhnliches Exemplar einer Gattung begegnen,
welches sich dem Magier anschließen wird.</text>
ungewöhnliches Exemplar einer Gattung begegnen,
welches sich dem Magier anschließen wird.</text>
<text locale="en">During their travel, seasoned
magicians will occasionally befriend an extraordinary
creature of an unusual species that will join them.</text>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" ?>
<terrains>
<!-- defaults: build="yes" walk="yes" sail="yes" fly="yes" swim="no" forest="no" sea="no" land="yes" forbidden="no" arctic="no" cavalry="no" size="0" -->
<terrain name="ocean" size="100" walk="no" swim="yes" land="no" sea="yes" />

View File

@ -1,25 +1,25 @@
<?xml version="1.0"?>
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="config:///core/weapons/axe.xml"/>
<xi:include href="config:///core/weapons/bow.xml"/>
<xi:include href="config:///core/weapons/catapult.xml"/>
<xi:include href="config:///core/weapons/lance.xml"/>
<xi:include href="config:///core/weapons/mallornbow.xml"/>
<xi:include href="config:///core/weapons/mallornspear.xml"/>
<xi:include href="config:///core/weapons/rep_crossbow.xml"/>
<xi:include href="config:///core/weapons/runesword.xml"/>
<xi:include href="config:///core/weapons/rustyaxe.xml"/>
<xi:include href="config:///core/weapons/rustysword.xml"/>
<xi:include href="config:///core/weapons/spear.xml"/>
<xi:include href="config:///core/weapons/sword.xml"/>
<xi:include href="config:///core/weapons/firesword.xml"/>
<xi:include href="config:///game/weapons/crossbow.xml"/>
<xi:include href="config:///game/weapons/greatbow.xml"/>
<xi:include href="config:///game/weapons/greatsword.xml"/>
<xi:include href="config:///game/weapons/halberd.xml"/>
<xi:include href="config:///game/weapons/laensword.xml"/>
<xi:include href="config:///game/weapons/mallorncrossbow.xml"/>
<xi:include href="config:///game/weapons/mallornlance.xml"/>
<xi:include href="config:///game/weapons/rustygreatsword.xml"/>
<xi:include href="config:///game/weapons/rustyhalberd.xml"/>
<xi:include href="config://core/weapons/axe.xml"/>
<xi:include href="config://core/weapons/bow.xml"/>
<xi:include href="config://core/weapons/catapult.xml"/>
<xi:include href="config://core/weapons/lance.xml"/>
<xi:include href="config://core/weapons/mallornbow.xml"/>
<xi:include href="config://core/weapons/mallornspear.xml"/>
<xi:include href="config://core/weapons/rep_crossbow.xml"/>
<xi:include href="config://core/weapons/runesword.xml"/>
<xi:include href="config://core/weapons/rustyaxe.xml"/>
<xi:include href="config://core/weapons/rustysword.xml"/>
<xi:include href="config://core/weapons/spear.xml"/>
<xi:include href="config://core/weapons/sword.xml"/>
<xi:include href="config://core/weapons/firesword.xml"/>
<xi:include href="config://game/weapons/crossbow.xml"/>
<xi:include href="config://game/weapons/greatbow.xml"/>
<xi:include href="config://game/weapons/greatsword.xml"/>
<xi:include href="config://game/weapons/halberd.xml"/>
<xi:include href="config://game/weapons/laensword.xml"/>
<xi:include href="config://game/weapons/mallorncrossbow.xml"/>
<xi:include href="config://game/weapons/mallornlance.xml"/>
<xi:include href="config://game/weapons/rustygreatsword.xml"/>
<xi:include href="config://game/weapons/rustyhalberd.xml"/>
</resources>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<resources>
<!-- xmas gimmicks -->

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<races xmlns:xi="http://www.w3.org/2001/XInclude">
<race name="snowman" magres="0.800000" maxaura="0.000000"

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="cerddor">
<entry spell="song_of_healing" level="2" />
<entry spell="song_of_confusion" level="4" />
@ -27,7 +27,7 @@
<entry spell="summon_familiar" level="9" />
<entry spell="song_of_slavery" level="13" />
<entry spell="cerddor_destroymagic" level="8" />
<entry spell="cerrdorfumbleshield" level="5" />
<entry spell="cerddorfumbleshield" level="5" />
<entry spell="big_recruit" level="14" />
<entry spell="raindance" level="3" />
<entry spell="create_roi" level="6" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gray">
<entry spell="acidrain" level="8" />
<entry spell="airship" level="6" />
@ -26,7 +26,7 @@
<entry spell="calm_monster" level="6" />
<entry spell="calm_riot" level="15" />
<entry spell="cerddor_destroymagic" level="8" />
<entry spell="cerrdorfumbleshield" level="5" />
<entry spell="cerddorfumbleshield" level="5" />
<entry spell="chaosrow" level="8" />
<entry spell="chaossuction" level="14" />
<entry spell="clone" level="9" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="gwyrrd">
<entry spell="hail" level="3" />
<entry spell="rustweapon" level="3" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="illaun">
<entry spell="bad_dreams" level="10" />
<entry spell="gooddreams" level="8" />

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<spellbook name="tybied">
<entry spell="auratransfer" level="5" />
<entry spell="antimagiczone" level="5" />

View File

@ -1,30 +1,30 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<namespace name="spellinfo">
<string name="raindance">
<text locale="de">Dieses uralte Tanzritual ruft die
Kräfte des Lebens und der Fruchtbarkeit. Die Erträge der
Bauern werden für einige Wochen deutlich besser
Kräfte des Lebens und der Fruchtbarkeit. Die Erträge der
Bauern werden für einige Wochen deutlich besser
ausfallen.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.</text>
</string>
<string name="blessedharvest">
<text locale="de">Dieses Ernteritual verbessert die Erträge der
arbeitenden Bauern in der Region um ein Silberstück. Je mehr Kraft der
Druide investiert, desto länger wirkt der Zauber.</text>
<text locale="de">Dieses Ernteritual verbessert die Erträge der
arbeitenden Bauern in der Region um ein Silberstück. Je mehr Kraft der
Druide investiert, desto länger wirkt der Zauber.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.</text>
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 50 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
@ -38,10 +38,10 @@
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
50 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
@ -53,11 +53,11 @@
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 50 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
@ -69,13 +69,13 @@
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 50 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
@ -88,18 +88,18 @@
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
cristal, les cartes de tarot ou les lignes de la
main. Un mentaliste peut gagner 50 écus par
main. Un mentaliste peut gagner 50 écus par
niveau et par semaine en proposant ses services
aux paysans.</text>
<text locale="de">Niemand kann so gut die Träume deuten
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
sind ihm geläufig. Dafür zahlen ihm die Bauern
50 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also

View File

@ -402,7 +402,7 @@
<spell name="gwyrrdfumbleshield" rank="2" index="144" variable="true" combat="1">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="cerrdorfumbleshield" rank="2" index="145" variable="true" combat="1">
<spell name="cerddorfumbleshield" rank="2" index="145" variable="true" combat="1">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="tybiedfumbleshield" rank="2" index="146" variable="true" combat="1">

View File

@ -1,43 +1,32 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<namespace name="spellinfo">
<string name="concealing_aura">
<text locale="de">Dieser Zauber wird die gesamte Ausrüstung der
Zieleinheit für
einige Zeit vor den Blicken anderer verschleiern. Der
Zauber
schützt nicht vor Dieben und Spionen.</text>
<text locale="en">This spell will hide the whole equipment of a target
unit from the
looks of others. It will not protect against thieves or
spies.</text>
</string>
<string name="headache">
<text locale="de">
Aufzeichung des Vortrags von Selen Ard'Ragorn in Bar'Glingal:
'Es heiss, dieser Spruch wäre wohl in den Spelunken der Westgassen
'Es heiss, dieser Spruch wäre wohl in den Spelunken der Westgassen
entstanden, doch es kann genausogut in jedem andern verrufenen
Viertel gewesen sein. Seine wichtigste Zutat ist etwa ein Fass
schlechtesten Weines, je billiger und ungesunder, desto
wirkungsvoller wird die Essenz. Die Kunst, diesen Wein in pure
Essenz zu destillieren, die weitaus anspruchsvoller als das einfache
Rezeptmischen eines Alchemisten ist, und diese dergestalt zu binden
und konservieren, das sie sich nicht gleich wieder verflüchtigt, wie
es ihre Natur wäre, ja, dies ist etwas, das nur ein Meister des
und konservieren, das sie sich nicht gleich wieder verflüchtigt, wie
es ihre Natur wäre, ja, dies ist etwas, das nur ein Meister des
Cerddor vollbringen kann. Nun besitzt Ihr eine kleine Phiola mit
einer rubinrotschimmernden - nun, nicht flüssig, doch auch nicht
einer rubinrotschimmernden - nun, nicht flüssig, doch auch nicht
ganz Dunst - nennen wir es einfach nur Elixier. Doch nicht dies ist
die wahre Herausforderung, sodann muss, da sich ihre Wirkung leicht
verflüchtigt, diese innerhalb weniger Tage unbemerkt in das Getränk
des Opfers geträufelt werden. Ihr Meister der Betöhrung und
Verführung, hier nun könnt Ihr Eure ganze Kunst unter Beweis
verflüchtigt, diese innerhalb weniger Tage unbemerkt in das Getränk
des Opfers geträufelt werden. Ihr Meister der Betöhrung und
Verführung, hier nun könnt Ihr Eure ganze Kunst unter Beweis
stellen. Doch gebt Acht, nicht unbedacht selbst von dem Elixier zu
kosten, denn wer einmal gekostet hat, der kann vom Weine nicht mehr
lassen, und er säuft sicherlich eine volle Woche lang. Jedoch nicht
die Verführung zum Trunke ist die wahre Gefahr, die dem Elixier
lassen, und er säuft sicherlich eine volle Woche lang. Jedoch nicht
die Verführung zum Trunke ist die wahre Gefahr, die dem Elixier
innewohnt, sondern das der Trunkenheit so sicher ein gar
fürchterliches Leid des Kopfes folgen wird, wie der Tag auf die
Nacht folgt. Und er wird gar sicherlich von seiner besten Fähigkeit
fürchterliches Leid des Kopfes folgen wird, wie der Tag auf die
Nacht folgt. Und er wird gar sicherlich von seiner besten Fähigkeit
einige Tage bis hin zu den Studien zweier Wochen vergessen haben.
Noch ein Wort der Warnung: Dieses ist sehr aufwendig, und so Ihr
noch weitere Zauber in der selben Woche wirken wollt, so werden sie Euch
@ -47,11 +36,11 @@
<string name="analysedream">
<text locale="de">Mit diesem Spruch kann der Traumweber
versuchen, die Verzauberungen einer einzelnen
Einheit zu erkennen. Von allen Sprüchen, die
seine eigenen Fähigkeiten nicht überschreiten,
Einheit zu erkennen. Von allen Sprüchen, die
seine eigenen Fähigkeiten nicht überschreiten,
wird er einen Eindruck ihres Wirkens erhalten
können. Bei stärkeren Sprüchen benötigt er ein
wenig Glück für eine gelungene Analyse.</text>
können. Bei stärkeren Sprüchen benötigt er ein
wenig Glück für eine gelungene Analyse.</text>
<text locale="en">With this spell the mentalist can
attempt to detect enchantments on a target unit.
He will get an idea of the effect of all spells
@ -76,35 +65,35 @@
<text locale="en">snowman</text>
</string>
<string name="snowman_p">
<text locale="de">Schneemänner</text>
<text locale="de">Schneemänner</text>
<text locale="en">snowmen</text>
</string>
</namespace>
<namespace name="shipinfo">
<!-- ship info is not implemented! -->
<string name="no_info">
<text locale="de">Keine Informationen über diesen Schiffstyp verfügbar.</text>
<text locale="de">Keine Informationen über diesen Schiffstyp verfügbar.</text>
<text locale="en">No Information available for this type of ship.</text>
</string>
<string name="balloon">
<text locale="de">Der Sumpfgasballon besteht aus einem großen
<text locale="de">Der Sumpfgasballon besteht aus einem großen
Weidenkorb, welcher Platz
für maximal 5 Personen oder 500 Gewichtseinheiten bietet, und einer
großen, mit Sumpfgas gefüllten Wyrmblase. Bei guten Winden kann sich
der Ballon zwei Regionen pro Woche fortbewegen. Das Führen eines
Ballons ist nicht einfach, und der Kapitän muss mindestens ein
für maximal 5 Personen oder 500 Gewichtseinheiten bietet, und einer
großen, mit Sumpfgas gefüllten Wyrmblase. Bei guten Winden kann sich
der Ballon zwei Regionen pro Woche fortbewegen. Das Führen eines
Ballons ist nicht einfach, und der Kapitän muss mindestens ein
Segeltalent von 6 besitzen. Diese neue Entwicklung auf Eressea wird
ausschließlich für den Xontormia-Expreß hergestellt und die Baupläne
ausschließlich für den Xontormia-Expreß hergestellt und die Baupläne
sind streng geheim. So ist es auch bisher noch niemandem gelungen, ein
Exemplar nachzubauen.</text>
</string>
</namespace>
<namespace name="iteminfo">
<string name="ring_of_levitation">
<text locale="de">Benutzt der Kapitän des Schiffes diesen Talisman, so wird allen an Bord befindlichen Mallornsamen ihre magisch Energie entzogen, und das Schiff kann mit dieser Energie bis zu zwei Wochen lang fliegen.</text>
<text locale="de">Benutzt der Kapitän des Schiffes diesen Talisman, so wird allen an Bord befindlichen Mallornsamen ihre magisch Energie entzogen, und das Schiff kann mit dieser Energie bis zu zwei Wochen lang fliegen.</text>
</string>
<string name="birthdaycake">
<text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text>
<text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text>
<text locale="en">A birthday cake with 10 candles. Happy Birthday, Eressea!</text>
</string>
<string name="no_info">
@ -112,98 +101,98 @@
<text locale="en">No Information available.</text>
</string>
<string name="griphonwing">
<text locale="de">Dieses Fluggerät aus der Schmiede der Zwerge von Celeband galt wie die
<text locale="de">Dieses Fluggerät aus der Schmiede der Zwerge von Celeband galt wie die
'Ebene der Herausforderung' seit Urzeiten als verschollen, ja man
zweifelte seine Existenz an. Die Sage überliefert, das derjenige, der
zweifelte seine Existenz an. Die Sage überliefert, das derjenige, der
sie auf der Spitze des Turmes seiner Gesinnung benutzt, als einziger
die 'Ebene der Herausforderungen' verlassen kann.</text>
</string>
<string name="ao_daemon">
<text locale="de">Glückwunsch, mein Kind. Du bist im Besitz des mächtigsten
<text locale="de">Glückwunsch, mein Kind. Du bist im Besitz des mächtigsten
Artefaktes Eresseas. Ein Fluch, sagt man, liege auf ihm, denn
niemand hat es bisher lange sein Eigen genannt...</text>
</string>
<string name="cookie">
<text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text>
<text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text>
</string>
<string name="eyeofdragon">
<text locale="de">So wisse denn, dass das Auge des Drachen den Weg zur Herausforderung
aufzeigt. Doch die Überlieferung sagt, das nur der Unschuldige und
Ungewappnete es benutzen kann. Sie sagt auch, daß er einen Beutel mit
einem Betrag von bis zu zweitausend Silber mit sich führen soll,
jedoch nicht mehr als einem Fünftel der Stärke seines Volkes
entsprechend - dem Torwächter zum Geschenke als Beweis seiner
aufzeigt. Doch die Überlieferung sagt, das nur der Unschuldige und
Ungewappnete es benutzen kann. Sie sagt auch, daß er einen Beutel mit
einem Betrag von bis zu zweitausend Silber mit sich führen soll,
jedoch nicht mehr als einem Fünftel der Stärke seines Volkes
entsprechend - dem Torwächter zum Geschenke als Beweis seiner
asketischen Gesinnung. Die 5 scheidet ganz aus.</text>
</string>
<string name="almond">
<text locale="de">(Prunus dulcis) [...] Die Nüsse existieren in zwei Varianten, süß und
bitter. Süße Mandeln sind der bekannte eßbare Typ, der in Form von
Nüssen gegessen, beim Kochen verwandt oder zu Mandelöl und Mandelmehl
<text locale="de">(Prunus dulcis) [...] Die Nüsse existieren in zwei Varianten, süß und
bitter. Süße Mandeln sind der bekannte eßbare Typ, der in Form von
Nüssen gegessen, beim Kochen verwandt oder zu Mandelöl und Mandelmehl
verarbeitet wird.</text>
</string>
<string name="apple">
<text locale="en">A tasty fruit.</text>
<text locale="de">Frucht aus der Gattung Malus (ca. 25 Arten), gehört
<text locale="de">Frucht aus der Gattung Malus (ca. 25 Arten), gehört
zur Familie der
Rosengewächse. Die am häufigsten kultivierte Baumfrucht. Der Apfel
gehört zu den fleischigen Früchten, in dem der gereifte Fruchtknoten
Rosengewächse. Die am häufigsten kultivierte Baumfrucht. Der Apfel
gehört zu den fleischigen Früchten, in dem der gereifte Fruchtknoten
und
das umgebende Gewebe fleischig und eßbar werden. Die Apfelblüte der
meisten Varianten erfordert Kreuzbestäubung zur Befruchtung. Form und
Größe des Apfels bei der Ernte variieren abhängig von kulturellen und
umweltbedingten Einflüssen in Größe, Form, Farbe und Geschmack, sind
jedoch nichtsdestotrotz üblicherweise rund, zwischen 50 und 100mm im
Durchmesser und weisen röt- oder gelbliche Farbtöne auf.</text>
das umgebende Gewebe fleischig und eßbar werden. Die Apfelblüte der
meisten Varianten erfordert Kreuzbestäubung zur Befruchtung. Form und
Größe des Apfels bei der Ernte variieren abhängig von kulturellen und
umweltbedingten Einflüssen in Größe, Form, Farbe und Geschmack, sind
jedoch nichtsdestotrotz üblicherweise rund, zwischen 50 und 100mm im
Durchmesser und weisen röt- oder gelbliche Farbtöne auf.</text>
</string>
<string name="nut">
<text locale="de">Nuß, im umgangssprachlichen Sinne alle trockenen,
<text locale="de">Nuß, im umgangssprachlichen Sinne alle trockenen,
hartschaligen
Früchte oder Samen, die eine Schale besitzen, die sich leicht
vom inneren, eßbaren Kern entfernen läßt. In der botanischen
Terminologie beschränkt sich die Bezeichnung Nuß auf eine
Früchte oder Samen, die eine Schale besitzen, die sich leicht
vom inneren, eßbaren Kern entfernen läßt. In der botanischen
Terminologie beschränkt sich die Bezeichnung Nuß auf eine
einsamige Frucht, die aus einem Fruchtknoten (Ovarium)
entstanden ist, dessen äußere Wände sich verholzt haben und der
sich nicht öffnet, um seinen Samen zu entlassen. Solche echten
Nüsse können eßbar, aber auch ungenießbar sein. Bekannte
Beispiele sind Eicheln, Bucheckern, Kastanien und Haselnüsse.
Beispiele für Früchte oder Samen, die vom Volksmund fälschlich
als Nüsse bezeichnet werden, sind Mandeln und Walnüsse: Im
botanischen Sinne sind dies Steinfrüchte, denen die fleischige
äußere Schale entfernt wurde. Andere Beispiele für unechte
Nüsse sind Erdnüsse - in Hülsen eingeschlossene Samen - sowie
Roßkastanien und Paranüsse, bei denen es sich um von Kapseln
umhüllte Samen handelt.</text>
entstanden ist, dessen äußere Wände sich verholzt haben und der
sich nicht öffnet, um seinen Samen zu entlassen. Solche echten
Nüsse können eßbar, aber auch ungenießbar sein. Bekannte
Beispiele sind Eicheln, Bucheckern, Kastanien und Haselnüsse.
Beispiele für Früchte oder Samen, die vom Volksmund fälschlich
als Nüsse bezeichnet werden, sind Mandeln und Walnüsse: Im
botanischen Sinne sind dies Steinfrüchte, denen die fleischige
äußere Schale entfernt wurde. Andere Beispiele für unechte
Nüsse sind Erdnüsse - in Hülsen eingeschlossene Samen - sowie
Roßkastanien und Paranüsse, bei denen es sich um von Kapseln
umhüllte Samen handelt.</text>
</string>
<string name="jadee_ring">
<text locale="de">Zwerge schufen diesen wunderschönen Ring aus Weissgold und Platin. Die
Oberfläche ist so glatt, dass man nur bei genauem Hinsehen entdeckt,
<text locale="de">Zwerge schufen diesen wunderschönen Ring aus Weissgold und Platin. Die
Oberfläche ist so glatt, dass man nur bei genauem Hinsehen entdeckt,
dass hier eigentlich zwei Metalle ineinander verarbeitet worden sind.
In der Innenseite des Rings ist eine Gravur zu lesen: "Wildente, 3.
Woche Eiswind Jahr 8".</text>
</string>
<string name="jadee_dress">
<text locale="de">Dieses Brautkleid ist mit Abstand das schönste, was je jemand
<text locale="de">Dieses Brautkleid ist mit Abstand das schönste, was je jemand
irgendwie irgendwo gesehen hat. Auch wenn nur Wildente und Jadee das
finden müssten, wird jeder Bewohner Eresseas dies neidlos bestätigen.
Das sehr stilvolle Kleid lässt die zarten Schultern seiner Trägerin
frei und liegt am Oberkörper eng an. Dies betont atemberaubend die
zarten Kurven der Braut. Der Rock fällt leicht ausgestellt den ganzen
finden müssten, wird jeder Bewohner Eresseas dies neidlos bestätigen.
Das sehr stilvolle Kleid lässt die zarten Schultern seiner Trägerin
frei und liegt am Oberkörper eng an. Dies betont atemberaubend die
zarten Kurven der Braut. Der Rock fällt leicht ausgestellt den ganzen
langen Weg an den Beinen herunter Richtung Boden, wo er sich in einer
sehr stilvollen Schleppe ergiesst.</text>
</string>
<string name="wente_ring">
<text locale="de">Dieser Ring ist ein wahres Meisterwerk. Obwohl er sehr gross ist
(weil auch sein Träger sehr gross ist), wirkt er filigran. Weissgold
(weil auch sein Träger sehr gross ist), wirkt er filigran. Weissgold
und Platin verschmelzen in diesem Ring zu einer Einheit, die die
Schönheit der einzelnen Elemente nur noch unterstreich. In der
Schönheit der einzelnen Elemente nur noch unterstreich. In der
Innenseite des Rings ist eine Gravur zu lesen: 'Jadee, 3. Woche
Eiswind Jahr 8'.</text>
</string>
<string name="wente_dress">
<text locale="de">Hach! Sieht der Mann beeindruckend aus in diesem Frack! Und so
ordentlich! Und so ernst! Und so beeindruckend! Es fällt ein
wenig schwer, sich auf den Bräutigam zu konzentrieren, weil das
Brautkleid noch daneben strahlt, aber der Anzug des Bräutigams ist
ordentlich! Und so ernst! Und so beeindruckend! Es fällt ein
wenig schwer, sich auf den Bräutigam zu konzentrieren, weil das
Brautkleid noch daneben strahlt, aber der Anzug des Bräutigams ist
auf jeden Fall so, wie er sein soll und sieht toll aus und sehr
geschmackvoll.</text>
</string>
@ -211,7 +200,7 @@
<text locale="en">Orange nose, black hat, frosty character. A snowman.
He'll make a fine guard if you use him in a cold place. (USE 1
snowman)</text>
<text locale="de">Rübennase, schwarzer Hut, kaltes Herz. Ein Schneemann. Er gibt
<text locale="de">Rübennase, schwarzer Hut, kaltes Herz. Ein Schneemann. Er gibt
einen prima Wachmann ab, wenn er in einem Gletscher belebt wird
(BENUTZE 1 Schneemann).</text>
</string>
@ -219,12 +208,12 @@
<text locale="en">These items stay frozen all year round. There seem to be bits of
ice in them - in the right hands, these might put an eye out!</text>
<text locale="de">Ein Schneeball. Es scheinen kleine Eissplitter darin zu sein. In
den richtigen Händen können sie sicher weh tun.</text>
den richtigen Händen können sie sicher weh tun.</text>
</string>
<string name="seashell">
<text locale="en">This badge pronounces its wearer an official visitor to the
embassies of Muschelplateau.</text>
<text locale="de">Dieses Abzeichen identifiziert die Partei seines Trägers offiziell
<text locale="de">Dieses Abzeichen identifiziert die Partei seines Trägers offiziell
als einen Besucher der Botschafterregion 'Muschelplateau'.</text>
</string>
<string name="xmastree">
@ -265,8 +254,8 @@
</string>
<string name="newbie_info_2">
<text locale="de">Die ersten beiden Züge mußt du abgeben, sonst wird deine
Partei sofort wieder gelöscht, um Karteileichen zu vermeiden.</text>
<text locale="de">Die ersten beiden Züge mußt du abgeben, sonst wird deine
Partei sofort wieder gelöscht, um Karteileichen zu vermeiden.</text>
<text locale="en">If you fail to send in orders for one of the first two turns, your faction will be erased from the game to reduce the number of inactive players in Eressea.</text>
</string>
<string name="newbie_info_3">
@ -291,7 +280,7 @@
<text locale="de">Seeschlangenkopf</text>
</string>
<string name="seaserpenthead_p">
<text locale="de">Seeschlangenköpfe</text>
<text locale="de">Seeschlangenköpfe</text>
</string>
<!-- starting here: Wildente and Jadee's wedding -->
@ -341,7 +330,7 @@
</string>
<string name="wente_dress_p">
<text locale="de">Fräcke</text>
<text locale="de">Fräcke</text>
<text locale="en">tuxedos</text>
</string>
@ -362,15 +351,15 @@
<text locale="en">horn of dancing</text>
</string>
<string name="hornofdancing_p">
<text locale="de">Hörner des Tanzes</text>
<text locale="de">Hörner des Tanzes</text>
<text locale="en">horns of dancing</text>
</string>
<string name="instantartacademy">
<text locale="de">Miniatur einer Akademie der Künste</text>
<text locale="de">Miniatur einer Akademie der Künste</text>
<text locale="en">academy of arts in a box</text>
</string>
<string name="instantartacademy_p">
<text locale="de">Miniaturen einer Akademie der Künste</text>
<text locale="de">Miniaturen einer Akademie der Künste</text>
<text locale="en">academies of arts in a box</text>
</string>
<string name="instantartsculpture">
@ -394,7 +383,7 @@
<text locale="en">aura potion</text>
</string>
<string name="aurapotion50_p">
<text locale="de">Auratränke</text>
<text locale="de">Auratränke</text>
<text locale="en">aura potions</text>
</string>
<string name="bagpipeoffear">
@ -402,21 +391,21 @@
<text locale="en">bagpipe of fear</text>
</string>
<string name="bagpipeoffear_p">
<text locale="de">Dudelsäcke der Furcht</text>
<text locale="de">Dudelsäcke der Furcht</text>
<text locale="en">bagpipes of fear</text>
</string>
<!-- art rewards end -->
<!-- igjarjuk queste begin -->
<string name="ao_daemon">
<text locale="de">Auge des Dämon</text>
<text locale="de">Auge des Dämon</text>
<text locale="en">eye of the demon</text>
<text locale="fr">oeil du démon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="ao_daemon_p">
<text locale="de">Augen des Dämon</text>
<text locale="de">Augen des Dämon</text>
<text locale="en">eyes of the demon</text>
<text locale="fr">oeil du démon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="griphonwing">
<text locale="de">Schwinge des Greifen</text>
@ -448,16 +437,16 @@
<text locale="en">adamantium axe</text>
</string>
<string name="adamantiumaxe_p">
<text locale="de">Adamantiumäxte</text>
<text locale="de">Adamantiumäxte</text>
<text locale="en">adamantium axes</text>
</string>
<string name="adamantiumplate">
<text locale="de">Adamantiumrüstung</text>
<text locale="de">Adamantiumrüstung</text>
<text locale="en">adamantium plate</text>
</string>
<string name="adamantiumplate_p">
<text locale="de">Adamantiumrüstungen</text>
<text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text>
</string>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<terrains>
<!-- used by the experimental dungeon -->
<terrain name="hell" fly="no" sail="no" size="0" land="no"/>

View File

@ -1,3 +1,3 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<items>
</items>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<string name="dragon_postfix_0">
@ -8,16 +8,16 @@
<text locale="de">der Allwissende</text>
</string>
<string name="dragon_postfix_2">
<text locale="de">der Mächtige</text>
<text locale="de">der Mächtige</text>
</string>
<string name="dragon_postfix_3">
<text locale="de">die Ehrwürdige</text>
<text locale="de">die Ehrwürdige</text>
</string>
<string name="dragon_postfix_4">
<text locale="de">die Listige</text>
</string>
<string name="dragon_postfix_5">
<text locale="de">der Grüne</text>
<text locale="de">der Grüne</text>
</string>
<string name="dragon_postfix_6">
<text locale="de">die Strafende</text>
@ -44,7 +44,7 @@
<text locale="de">die Alte</text>
</string>
<string name="dragon_postfix_14">
<text locale="de">die Mächtige</text>
<text locale="de">die Mächtige</text>
</string>
<string name="dragon_postfix_15">
<text locale="de">die Goldene</text>
@ -62,7 +62,7 @@
<text locale="de">die Verzehrende</text>
</string>
<string name="dragon_postfix_20">
<text locale="de">die Grüne</text>
<text locale="de">die Grüne</text>
</string>
<string name="dragon_postfix_21">
<text locale="de">die Rote</text>
@ -71,16 +71,16 @@
<text locale="de">der Furchtlose</text>
</string>
<string name="dragon_postfix_23">
<text locale="de">der Allmächtige</text>
<text locale="de">der Allmächtige</text>
</string>
<string name="dragon_postfix_24">
<text locale="de">der Weitblickende</text>
</string>
<string name="dragon_postfix_25">
<text locale="de">der Weiße</text>
<text locale="de">der Weiße</text>
</string>
<string name="dragon_postfix_26">
<text locale="de">die Glänzende</text>
<text locale="de">die Glänzende</text>
</string>
<string name="dragon_postfix_27">
<text locale="de">der Wissende</text>
@ -89,7 +89,7 @@
<text locale="de">die Unbarmherzige</text>
</string>
<string name="dragon_postfix_29">
<text locale="de">die Schöne</text>
<text locale="de">die Schöne</text>
</string>
</strings>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<string name="ghoul_prefix_0">
<text locale="de">Faulende</text>
</string>
<string name="ghoul_prefix_1">
<text locale="de">Angsteinflößende</text>
<text locale="de">Angsteinflößende</text>
</string>
<string name="ghoul_prefix_2">
<text locale="de">Leise</text>
@ -29,7 +29,7 @@
<text locale="de">Dunkle</text>
</string>
<string name="ghoul_prefix_9">
<text locale="de">Fürchterliche</text>
<text locale="de">Fürchterliche</text>
</string>
<string name="ghoul_prefix_10">
<text locale="de">Grauenhafte</text>
@ -47,7 +47,7 @@
<text locale="de">Schreckliche</text>
</string>
<string name="ghoul_prefix_15">
<text locale="de">Düstere</text>
<text locale="de">Düstere</text>
</string>
<string name="ghoul_prefix_16">
<text locale="de">Schaurige</text>
@ -82,7 +82,7 @@
<text locale="de">der Finsternis</text>
</string>
<string name="ghoul_postfix_3">
<text locale="de">des Bösen</text>
<text locale="de">des Bösen</text>
</string>
<string name="ghoul_postfix_4">
<text locale="de">der Erschlagenen</text>

View File

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<string name="skeleton_prefix_0">
<text locale="de">Klapperige</text>
</string>
<string name="skeleton_prefix_1">
<text locale="de">Stöhnende</text>
<text locale="de">Stöhnende</text>
</string>
<string name="skeleton_prefix_2">
<text locale="de">Schwarzknochige</text>
@ -14,7 +14,7 @@
<text locale="de">Schwarzgewandete</text>
</string>
<string name="skeleton_prefix_4">
<text locale="de">Angsteinflößende</text>
<text locale="de">Angsteinflößende</text>
</string>
<string name="skeleton_prefix_5">
<text locale="de">Heulende</text>
@ -32,7 +32,7 @@
<text locale="de">Dunkle</text>
</string>
<string name="skeleton_prefix_10">
<text locale="de">Fürchterliche</text>
<text locale="de">Fürchterliche</text>
</string>
<string name="skeleton_prefix_11">
<text locale="de">Grauenhafte</text>
@ -50,7 +50,7 @@
<text locale="de">Schreckliche</text>
</string>
<string name="skeleton_prefix_16">
<text locale="de">Düstere</text>
<text locale="de">Düstere</text>
</string>
<string name="skeleton_prefix_17">
<text locale="de">Schaurige</text>
@ -69,10 +69,10 @@
<text locale="de">Krieger</text>
</string>
<string name="skeleton_name_3">
<text locale="de">Kämpfer</text>
<text locale="de">Kämpfer</text>
</string>
<string name="skeleton_name_4">
<text locale="de">Rächer</text>
<text locale="de">Rächer</text>
</string>
<string name="skeleton_postfix_0">
@ -85,7 +85,7 @@
<text locale="de">der Finsternis</text>
</string>
<string name="skeleton_postfix_3">
<text locale="de">des Bösen</text>
<text locale="de">des Bösen</text>
</string>
<string name="skeleton_postfix_4">
<text locale="de">der Erschlagenen</text>

View File

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<string name="undead_prefix_0">
<text locale="de">Grausige</text>
</string>
<string name="undead_prefix_1">
<text locale="de">Stöhnende</text>
<text locale="de">Stöhnende</text>
</string>
<string name="undead_prefix_2">
<text locale="de">Schlurfende</text>
@ -16,7 +16,7 @@
<text locale="de">Faulende</text>
</string>
<string name="undead_prefix_5">
<text locale="de">Angsteinflößende</text>
<text locale="de">Angsteinflößende</text>
</string>
<string name="undead_prefix_6">
<text locale="de">Heulende</text>
@ -34,7 +34,7 @@
<text locale="de">Dunkle</text>
</string>
<string name="undead_prefix_11">
<text locale="de">Fürchterliche</text>
<text locale="de">Fürchterliche</text>
</string>
<string name="undead_prefix_12">
<text locale="de">Grauenhafte</text>
@ -58,7 +58,7 @@
<text locale="de">Ekelhafte</text>
</string>
<string name="undead_prefix_19">
<text locale="de">Düstere</text>
<text locale="de">Düstere</text>
</string>
<string name="undead_prefix_20">
<text locale="de">Schaurige</text>
@ -120,7 +120,7 @@
<text locale="de">der Finsternis</text>
</string>
<string name="undead_postfix_3">
<text locale="de">des Bösen</text>
<text locale="de">des Bösen</text>
</string>
<string name="undead_postfix_4">
<text locale="de">der Erschlagenen</text>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" encoding="utf-8" ?>
<strings>
<string name="zombie_prefix_0">
<text locale="de">Faulende</text>
@ -10,7 +10,7 @@
<text locale="de">Gefolterte</text>
</string>
<string name="zombie_prefix_3">
<text locale="de">Angsteinflößende</text>
<text locale="de">Angsteinflößende</text>
</string>
<string name="zombie_prefix_4">
<text locale="de">Leise Schlurfende</text>
@ -25,7 +25,7 @@
<text locale="de">Dunkle</text>
</string>
<string name="zombie_prefix_8">
<text locale="de">Fürchterliche</text>
<text locale="de">Fürchterliche</text>
</string>
<string name="zombie_prefix_9">
<text locale="de">Grauenhafte</text>
@ -43,7 +43,7 @@
<text locale="de">Schreckliche</text>
</string>
<string name="zombie_prefix_14">
<text locale="de">Düstere</text>
<text locale="de">Düstere</text>
</string>
<string name="zombie_prefix_15">
<text locale="de">Schaurige</text>
@ -75,7 +75,7 @@
<text locale="de">der Finsternis</text>
</string>
<string name="zombie_postfix_3">
<text locale="de">des Bösen</text>
<text locale="de">des Bösen</text>
</string>
<string name="zombie_postfix_4">
<text locale="de">der Erschlagenen</text>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<races xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="races/aquarian.xml"/>
<xi:include href="races/cat.xml"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="aquarian" magres="0.000000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" shipspeed="yes" playerrace="yes" coastal="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="demon" magres="0.150000" maxaura="1.000000" regaura="1.250000" recruitcost="150" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="50" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" shapeshift="yes" giveperson="yes" giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="110" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="elf" magres="0.100000" maxaura="1.000000" regaura="1.250000" recruitcost="130" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="600" capacity="440" speed="1.000000" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="halfling" magres="0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="human" magres="0.000000" maxaura="1.000000" regaura="1.000000" recruitcost="75" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="insect" magres="0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="orc" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="70" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<param name="recruit_multi" value="0.5"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="troll" magres="0.100000" maxaura="1.000000" regaura="1.000000" recruitcost="90" maintenance="10" weight="2000" capacity="1080" speed="1.000000" hp="30" ac="1" damage="1d5+3" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<race name="zombie" magres="0.20000" maxaura="1.0" regaura="1.0"
recruitcost="-1" maintenance="0" weight="1000" capacity="440" speed="1.000000"
hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="no"

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<ships xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="ships/boat.xml"/>
</ships>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<?xml version="1.0" ?>
<ship name="boat" range="2" storm="1.00" damage="1.00" cargo="5000" cptskill="1" minskill="1" sumskill="2" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml version="1.0" ?>
<terrains>
<!-- defaults: walk="yes" sail="yes" fly="yes" swim="no" forest="no" sea="no" land="yes" forbidden="no" arctic="no" cavalry="no" size="0" -->
<terrain name="ocean" size="100" walk="no" swim="yes" land="no" sea="yes" />

View File

@ -1,25 +1,25 @@
<?xml version="1.0"?>
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<!-- this file contains a lot of weapons -->
<xi:include href="eressea:///core/weapons/axe.xml"/>
<xi:include href="eressea:///core/weapons/bow.xml"/>
<xi:include href="eressea:///core/weapons/catapult.xml"/>
<xi:include href="eressea:///core/weapons/crossbow.xml"/>
<xi:include href="eressea:///core/weapons/firesword.xml"/>
<xi:include href="eressea:///core/weapons/greatbow.xml"/>
<xi:include href="eressea:///core/weapons/greatsword.xml"/>
<xi:include href="eressea:///core/weapons/halberd.xml"/>
<xi:include href="eressea:///core/weapons/laensword.xml"/>
<xi:include href="eressea:///core/weapons/lance.xml"/>
<xi:include href="eressea:///core/weapons/mallornbow.xml"/>
<xi:include href="eressea:///core/weapons/mallorncrossbow.xml"/>
<xi:include href="eressea:///core/weapons/mallornlance.xml"/>
<xi:include href="eressea:///core/weapons/mallornspear.xml"/>
<xi:include href="eressea:///core/weapons/runesword.xml"/>
<xi:include href="eressea:///core/weapons/rustyaxe.xml"/>
<xi:include href="eressea:///core/weapons/rustygreatsword.xml"/>
<xi:include href="eressea:///core/weapons/rustyhalberd.xml"/>
<xi:include href="eressea:///core/weapons/rustysword.xml"/>
<xi:include href="eressea:///core/weapons/spear.xml"/>
<xi:include href="eressea:///core/weapons/sword.xml"/>
<xi:include href="eressea://core/weapons/axe.xml"/>
<xi:include href="eressea://core/weapons/bow.xml"/>
<xi:include href="eressea://core/weapons/catapult.xml"/>
<xi:include href="eressea://core/weapons/crossbow.xml"/>
<xi:include href="eressea://core/weapons/firesword.xml"/>
<xi:include href="eressea://core/weapons/greatbow.xml"/>
<xi:include href="eressea://core/weapons/greatsword.xml"/>
<xi:include href="eressea://core/weapons/halberd.xml"/>
<xi:include href="eressea://core/weapons/laensword.xml"/>
<xi:include href="eressea://core/weapons/lance.xml"/>
<xi:include href="eressea://core/weapons/mallornbow.xml"/>
<xi:include href="eressea://core/weapons/mallorncrossbow.xml"/>
<xi:include href="eressea://core/weapons/mallornlance.xml"/>
<xi:include href="eressea://core/weapons/mallornspear.xml"/>
<xi:include href="eressea://core/weapons/runesword.xml"/>
<xi:include href="eressea://core/weapons/rustyaxe.xml"/>
<xi:include href="eressea://core/weapons/rustygreatsword.xml"/>
<xi:include href="eressea://core/weapons/rustyhalberd.xml"/>
<xi:include href="eressea://core/weapons/rustysword.xml"/>
<xi:include href="eressea://core/weapons/spear.xml"/>
<xi:include href="eressea://core/weapons/sword.xml"/>
</resources>

24
s/build
View File

@ -4,12 +4,8 @@ while [ ! -d $ROOT/.git ]; do
ROOT=`dirname $ROOT`
done
[ -z $BUILD ] && BUILD=Debug
MACHINE=`uname -m`
[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc"
[ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc"
[ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc"
BIN_DIR="build-$MACHINE-$CC-$BUILD"
[ -z "$CC" ] && CC=clang
[ -z "$BUILD" ] && BUILD=Debug
[ -z "$JOBS" ] && [ "" != "which nproc" ] && JOBS=`nproc`
DISTCC=`which distcc`
@ -22,13 +18,21 @@ CC="$DISTCC $CC"
MAKEOPTS=-j$JOBS
fi
fi
echo "Building with $CC and $JOBS jobs"
echo "Building with CC=$CC and $JOBS jobs"
if [ ! -d $ROOT/$BIN_DIR ]; then
echo "cannot find build directory $BIN_DIR in $ROOT. did you run cmake-init?"
if [ ! -d $ROOT/$BUILD ]; then
echo "cannot find build directory $BUILD in $ROOT. did you run cmake-init?"
exit
fi
cd $ROOT/$BIN_DIR
git submodule update
if [ -z `which tolua` ]; then
echo "build tolua"
cd $ROOT/tolua ; make
fi
echo "build eressea"
cd $ROOT/$BUILD
make $MAKEOPTS && make test
cd $OLDPWD

View File

@ -10,13 +10,13 @@ done
[ -z $BUILD ] && BUILD=Debug
MACHINE=`uname -m`
[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="clang"
[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc"
[ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc"
[ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc"
BIN_DIR="build-$MACHINE-$CC-$BUILD"
BIN_DIR="$ROOT/build-$MACHINE-$CC-$BUILD"
mkdir -p $BIN_DIR
ln -sf $BIN_DIR $BUILD
cd $BIN_DIR
MACHINE=$(gcc -dumpmachine)
rm -f CMakeCache.txt
@ -33,12 +33,26 @@ if [ -d $HOME/usr ]; then
PREFIX_PATH=$HOME/usr:$HOME/usr/local:$PREFIX_PATH
fi
cmake .. \
-DCMAKE_MODULE_PATH=$PWD/../cmake/Modules \
ARGS=" -DCMAKE_MODULE_PATH=$ROOT/cmake/Modules \
-DCMAKE_BUILD_TYPE=$BUILD \
-DCMAKE_LIBRARY_PATH=$LIBRARY_PATH \
-DCMAKE_INCLUDE_PATH=$INCLUDE_PATH \
-DCMAKE_PREFIX_PATH=$PREFIX_PATH \
-DCMAKE_INSTALL_PREFIX=$HOME/eressea/server $*
-DCMAKE_INSTALL_PREFIX=$HOME/eressea/server"
path="$(which tolua)"
if [ "$HAVE_TOLUA" = "0" ] || [ -z $path ] ; then
echo "tolua is not installed, building from source"
cd $ROOT/tolua ; make
ARGS="$ARGS -DPC_TOLUA_DIR=$ROOT/tolua"
else
echo "tolua is $path"
fi
unset path
set -e
cd $BIN_DIR
cmake .. $ARGS $*
cd $OLDPWD

View File

@ -2,7 +2,7 @@
ROOT=$(pwd)
while [ ! -d $ROOT/.git ]; do
ROOT=$(dirname $ROOT)
if [ "$ROOT" == "/" ; then
if [ "/" = "$ROOT" ]; then
echo "could not find root, are you in the git repository?"
exit
fi
@ -25,4 +25,8 @@ programs="create-orders backup-eressea run-turn"
for prg in ${programs} ; do
install -v $ROOT/process/$prg $DEST/bin/
done
crontab $ROOT/process/cron/crontab
# install crontab, but only on the eressea server:
HOST=`hostname`
[ "gruenbaer" = "$HOST" ] && crontab $ROOT/process/cron/crontab

View File

@ -24,6 +24,7 @@ assert_dir $SOURCE
cd $SOURCE
git fetch || abort "failed to update source. do you have local changes?"
[ -z $1 ] || git checkout $1
git pull
git submodule update
s/build || abort "build failed."
}
@ -80,10 +81,11 @@ ln -f $LIVE/data/$turn.dat data/
rm -rf reports
mkdir -p reports
SERVER="$SOURCE/build-x86_64-gcc-Debug/eressea/eressea"
SUPP="$SOURCE/share/ubuntu-12_04.supp"
SERVER="$SOURCE/Debug/eressea/eressea"
VALGRIND=$(which valgrind)
if [ ! -z $VALGRIND ]; then
SERVER="$VALGRIND --leak-check=no $SERVER"
SERVER="$VALGRIND --suppressions=$SUPP --error-exitcode=1 --leak-check=no $SERVER"
fi
$SERVER -v$verbose -t$turn -re$game $SOURCE/scripts/run-turn.lua
let turn=$turn+1
@ -147,7 +149,7 @@ case "$1" in
;;
"run")
if [ $turn -eq 0 ]; then
[ -f $LIVE/turn ] || abort "missing turn file, and no turn specified"
[ -f $LIVE/turn ] || abort "missing turn file in $LIVE, and no turn specified"
let turn=$(cat $LIVE/turn)-1
fi
run

View File

@ -1,24 +1,23 @@
#!/bin/bash
set -e
ROOT=$(pwd)
while [ ! -d $ROOT/.git ]; do
ROOT=$(dirname $ROOT)
done
MACHINE=`uname -m`
[ -z "$CC" ] && [ ! -z `which gcc` ] && CC="gcc"
[ -z "$CC" ] && [ ! -z `which tcc` ] && CC="tcc"
[ -z "$CC" ] && [ ! -z `which cc` ] && CC="cc"
BIN_DIR="build-$MACHINE-$CC-Debug"
[ -z $BUILD ] && BUILD=Debug ; export BUILD
if [ ! -d $ROOT/$BIN_DIR ]; then
echo "cannot find build directory $BIN_DIR in $ROOT. did you run cmake-init?"
if [ ! -e $ROOT/$BUILD ]; then
echo "cannot find build directory $BUILD in $ROOT. did you run cmake-init?"
exit
fi
$ROOT/$BIN_DIR/eressea/test_eressea
$ROOT/$BUILD/eressea/test_eressea
cd $ROOT
[ -e eressea.ini ] || ln -sf conf/eressea.ini
$ROOT/$BIN_DIR/eressea/eressea -v0 scripts/run-tests.lua
$ROOT/$BIN_DIR/eressea/eressea -v0 scripts/run-tests-e2.lua
$ROOT/$BIN_DIR/eressea/eressea -v0 scripts/run-tests-e3.lua
$ROOT/$BUILD/eressea/eressea -v0 scripts/run-tests.lua
$ROOT/$BUILD/eressea/eressea -v0 scripts/run-tests-e2.lua
$ROOT/$BUILD/eressea/eressea -v0 scripts/run-tests-e3.lua
cd $OLDWPD

10
s/setup
View File

@ -91,7 +91,9 @@ ini_add lua install $SOURCE
ini_add lua paths $SOURCE/scripts:$SOURCE/lunit
ini_add lua rules $rules
ln -f $SOURCE/bin/eressea
ln -f $SOURCE/scripts/run-turn.lua
ln -f $SOURCE/scripts/reports.lua
ln -f $SOURCE/scripts/config.lua
echo 0 > turn
touch newfactions
ln -sf $SOURCE/bin/eressea
ln -sf $SOURCE/scripts/run-turn.lua
ln -sf $SOURCE/scripts/reports.lua
ln -sf $SOURCE/scripts/config.lua

View File

@ -1,18 +1,20 @@
#!/bin/sh
ROOT=`pwd`
inifile() {
cd $ROOT
if [ ! -e eressea.ini ]; then
cp conf/eressea.ini .
build/iniparser/inifile eressea.ini add lua:paths lunit:scripts
$BUILD/iniparser/inifile eressea.ini add lua:paths lunit:scripts
fi
}
[ -d build ] || mkdir build
cd build && cmake .. \
-DCMAKE_MODULE_PATH=$PWD/../cmake/Modules \
-DCMAKE_BUILD_TYPE=Debug .. && \
make && cd .. && inifile &&
build/eressea/test_eressea &&
build/eressea/eressea -v0 scripts/run-tests-basic.lua
build/eressea/eressea -v0 scripts/run-tests-e2.lua
build/eressea/eressea -v0 scripts/run-tests-e3.lua
[ -z $BUILD ] && BUILD=Debug ; export BUILD
s/cmake-init
s/build
cd $ROOT
inifile
s/runtests
cd tests
./write-reports.sh

View File

@ -25,7 +25,10 @@ function embassy.init()
end
function embassy.update()
-- Muschelplateau
-- Muschelplateau
if home==nil then
return
end
eressea.log.debug("updating embassies in " .. tostring(home))
local u
for u in home.units do

View File

@ -16,7 +16,7 @@ end
local function repair_ents(r)
for u in r.units do
if u.faction.id==666 and u.race == "undead" and u.name == "Wütende Ents" then
print("ent repair", u)
eressea.log.info("ent repair: " .. tostring(u))
u.race = "ent"
end
end

View File

@ -1,7 +1,5 @@
local pkg = {}
print("loading jsreport module")
function pkg.init()
eressea.settings.set("feature.jsreport.enable", "1")
end
@ -14,7 +12,7 @@ function pkg.update()
local o = f.options
local bit = (math.floor(o / 8) % 2)
if bit==0 then
eressea.log.warning("enable JSON report for " .. tostring(f))
eressea.log.info("enable JSON report for " .. tostring(f))
f.options = o + 8
end
end

View File

@ -1,53 +0,0 @@
require "lunit"
module("tests.eressea.attrib", package.seeall, lunit.testcase)
function has_attrib(u, value)
for a in u.attribs do
if (a.data==value) then return true end
end
return false
end
function test_attrib_global()
a = attrib.create('global', {})
eressea.write_game('attrib.dat')
eressea.free_game()
eressea.read_game('attrib.dat')
end
function test_attrib()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
local u2 = unit.create(f, r, 1)
data = { arr = { 'a', 'b', 'c' }, name = 'familiar', events = { die = 'familiar_died' }, data = { mage = u2 } }
a = { 'a' }
b = { 'a' }
uno = u.id
u2no = u2.id
a = attrib.create(u, 12)
a = attrib.create(u, "enno")
a = attrib.create(u, u2)
a = attrib.create(u, data)
eressea.write_game("attrib.dat")
eressea.free_game()
eressea.read_game("attrib.dat")
u = get_unit(uno)
u2 = get_unit(u2no)
assert_false(has_attrib(u, 42))
assert_true(has_attrib(u, "enno"))
assert_true(has_attrib(u, 12))
for a in u.attribs do
x = a.data
if (type(x)=="table") then
assert_equal('a', x.arr[1])
assert_equal('familiar', x.name)
assert_equal('familiar_died', x.events.die)
assert_equal(u2, x.data.mage)
break
end
end
end

View File

@ -1,65 +0,0 @@
require "lunit"
module("tests.eressea.bson", package.seeall, lunit.testcase)
function setup()
eressea.free_game()
end
function test_bson_create()
local a = attrib.create("global", 12)
assert_not_equal(nil, a)
for a in attrib.get("global") do
assert_equal(a.data, 12)
end
end
function test_illegal_arg()
local a = attrib.create(nil, 42)
assert_equal(nil, a)
a = attrib.create("fred", 42)
assert_equal(nil, a)
end
function test_bson_readwrite()
local i, r = region.create(0, 0, "mountain")
attrib.create(r, 42)
i = eressea.write_game("test_read_write.dat")
assert_equal(0, i)
eressea.free_game()
r = get_region(0, 0)
assert_equal(nil, r)
i = eressea.read_game("test_read_write.dat")
assert_equal(0, i)
r = get_region(0, 0)
assert_not_equal(nil, r)
for a in attrib.get(r) do
assert_equal(a.data, 42)
end
end
function test_bson()
local r = region.create(0, 0, "mountain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
assert_not_equal(nil, u)
assert_not_equal(nil, r)
assert_not_equal(nil, f)
attrib.create(r, 1)
assert_equal(attrib.get(r)().data, 1)
attrib.create(u, 3)
assert_equal(attrib.get(u)().data, 3)
attrib.create(f, 5)
assert_equal(attrib.get(f)().data, 5)
end
function test_bson_with_multiple_attribs()
local r = region.create(0, 0, "mountain")
attrib.create(r, { a=1})
attrib.create(r, { a=5})
local total = 0
for a in attrib.get(r) do
total = total + a.data.a;
end
assert_equal(6, total)
end

View File

@ -1,27 +0,0 @@
require "lunit"
module('tests.eressea.castles', package.seeall, lunit.testcase )
function setup()
eressea.free_game()
end
function test_small_castles()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 1)
local f2 = faction.create("noreply@eressea.de", "halfling", "de")
local u2 = unit.create(f2, r, 1)
u1:add_item("money", 10000)
local b = building.create(r, "castle")
u2.building = b
u1.building = b
b.owner = u2
assert_equal("site", b:get_typename(7))
assert_equal("fortification", b:get_typename(8))
b.owner = u1
assert_equal("site", b:get_typename(9))
assert_equal("fortification", b:get_typename(10))
end

View File

@ -1,39 +0,0 @@
require "lunit"
module("tests.eressea.config", package.seeall, lunit.testcase )
function setup()
eressea.free_game()
end
function test_read_race()
local f
eressea.free_game()
f = faction.create("orc@example.com", "orc", "en")
assert_equal(nil, f)
assert_not_nil(eressea.config)
eressea.config.parse('{ "races": { "orc" : {}}}')
f = faction.create("orc@example.com", "orc", "en")
assert_not_nil(f)
end
function test_read_ship()
local s
eressea.free_game()
s = ship.create(nil, "boat")
assert_equal(nil, s)
assert_not_nil(eressea.config)
conf = [[{
"ships": {
"boat" : {
"construction" : {
"maxsize" : 20
}
}
}
}]]
eressea.config.parse(conf);
s = ship.create(nil, "boat")
assert_not_nil(s)
end

View File

@ -1,735 +0,0 @@
require "lunit"
module("tests.e3.e3features", package.seeall, lunit.testcase)
function setup()
eressea.free_game()
eressea.settings.set("rules.economy.food", "4")
end
function test_no_stealth()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
u:set_skill("stealth", 1)
assert_equal(-1, u:get_skill("stealth"))
u:clear_orders()
u:add_order("LERNEN TARNUNG")
process_orders()
assert_equal(-1, u:get_skill("stealth"))
end
--[[
function test_analyze_magic()
local r1 = region.create(0,0, "plain")
local r2 = region.create(1,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r2, 1)
u.race = "elf"
u:set_skill("magic", 6)
u.magic = "gwyrrd"
u.aura = 60
u:add_spell("analyze_magic")
u:clear_orders()
u:add_order("Zaubere stufe 2 'Magie analysieren' REGION 1,0")
process_orders()
end
]]--
function test_seecast()
local r = region.create(0,0, "plain")
for i = 1,10 do
-- this prevents storms (only high seas have storms)
region.create(i, 1, "plain")
end
for i = 1,10 do
region.create(i, 0, "ocean")
end
local f = faction.create("noreply@eressea.de", "human", "de")
local s1 = ship.create(r, "cutter")
local u1 = unit.create(f, r, 2)
u1:set_skill("sailing", 3)
u1:add_item("money", 1000)
u1.ship = s1
local u2 = unit.create(f, r, 1)
u2.race = "elf"
u2:set_skill("magic", 6)
u2.magic = "gwyrrd"
u2.aura = 60
u2.ship = s1
u2:add_spell("stormwinds")
update_owners()
u2:clear_orders()
u2:add_order("Zaubere stufe 2 'Beschwoere einen Sturmelementar' " .. itoa36(s1.id))
u1:clear_orders()
u1:add_order("NACH O O O O")
process_orders()
assert_equal(4, u2.region.x)
u2:clear_orders()
u2:add_order("Zaubere stufe 2 'Beschwoere einen Sturmelementar' " .. itoa36(s1.id))
u1:clear_orders()
u1:add_order("NACH O O O O")
process_orders()
assert_equal(8, u2.region.x)
end
local function use_tree(terrain)
local r = region.create(0,0, terrain)
local f = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f, r, 5)
r:set_resource("tree", 0)
u1:add_item("xmastree", 1)
u1:clear_orders()
u1:add_order("BENUTZEN 1 Weihnachtsbaum")
process_orders()
return r
end
function test_xmas2009()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f, r, 1)
process_orders()
xmas2009()
assert_equal("xmastree", f.items())
end
function test_xmastree()
local r
r = use_tree("ocean")
assert_equal(0, r:get_resource("tree"))
eressea.free_game()
r = use_tree("plain")
assert_equal(10, r:get_resource("tree"))
end
function test_fishing()
eressea.settings.set("rules.economy.food", "0")
local r = region.create(0,0, "ocean")
local r2 = region.create(1,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local s1 = ship.create(r, "cutter")
local u1 = unit.create(f, r, 3)
u1.ship = s1
u1:set_skill("sailing", 10)
u1:add_item("money", 100)
u1:clear_orders()
u1:add_order("NACH O")
update_owners()
process_orders()
assert_equal(r2, u1.region)
assert_equal(90, u1:get_item("money"))
u1:clear_orders()
u1:add_order("NACH W")
process_orders()
assert_equal(r, u1.region)
assert_equal(60, u1:get_item("money"))
end
function test_ship_capacity()
eressea.settings.set("rules.ship.drifting", "0")
eressea.settings.set("rules.ship.storms", "0")
local r = region.create(0,0, "ocean")
region.create(1,0, "ocean")
local r2 = region.create(2,0, "ocean")
local f = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "goblin", "de")
-- u1 is at the limit and moves
local s1 = ship.create(r, "cutter")
local u1 = unit.create(f, r, 5)
u1.ship = s1
u1:set_skill("sailing", 10)
u1:add_item("sword", 55)
u1:clear_orders()
u1:add_order("NACH O O")
-- u2 has too many people
local s2 = ship.create(r, "cutter")
local u2 = unit.create(f, r, 6)
u2.ship = s2
u2:set_skill("sailing", 10)
u2:clear_orders()
u2:add_order("NACH O O")
-- u3 has goblins, they weigh 40% less
local s3 = ship.create(r, "cutter")
local u3 = unit.create(f2, r, 8)
u3.ship = s3
u3:set_skill("sailing", 10)
u3:add_item("sword", 55)
u3:clear_orders()
u3:add_order("NACH O O")
-- u4 has too much stuff
local s4 = ship.create(r, "cutter")
local u4 = unit.create(f, r, 5)
u4.ship = s4
u4:set_skill("sailing", 10)
u4:add_item("sword", 56)
u4:clear_orders()
u4:add_order("NACH O O")
update_owners()
process_orders()
if r2~=u1.region then
print(get_turn(), u1, u1.faction)
write_reports()
end
assert_equal(r2, u1.region)
assert_not_equal(r2.id, u2.region.id)
if r2~=u3.region then
print(get_turn(), u3, u3.faction)
write_reports()
end
assert_equal(r2, u3.region)
assert_not_equal(r2.id, u4.region.id)
end
function test_owners()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 1)
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u2 = unit.create(f2, r, 1)
local u3 = unit.create(f2, r, 1)
local b3 = building.create(r, "castle")
b3.size = 2
u3.building = b3
local b1 = building.create(r, "castle")
b1.size = 1
u1.building = b1
local b2 = building.create(r, "castle")
b2.size = 2
u2.building = b2
update_owners()
assert(r.owner==u3.faction)
b1.size=3
b2.size=3
update_owners()
assert(r.owner==u2.faction)
b1.size=4
update_owners()
assert(r.owner==u1.faction)
end
function test_taxes()
local r = region.create(0, 0, "plain")
r:set_resource("peasant", 1000)
r:set_resource("money", 5000)
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
u:clear_orders()
u:add_order("LERNE Holzfaellen") -- do not work
local b = building.create(r, "watch")
b.size = 10
u.building = b
update_owners()
assert_equal(1, r.morale)
process_orders()
assert_equal(1, r.morale)
assert_equal(25, u:get_item("money"))
end
function test_region_owner_cannot_leave_castle()
eressea.settings.set("rules.move.owner_leave", "1")
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
f.id = 42
local b1 = building.create(r, "castle")
b1.size = 10
local b2 = building.create(r, "lighthouse")
b2.size = 10
local u = unit.create(f, r, 1)
u.building = b1
u:add_item("money", u.number * 100)
u:clear_orders()
u:add_order("BETRETE BURG " .. itoa36(b2.id))
process_orders()
init_reports()
write_report(u.faction)
assert_equal(b1, u.building, "region owner has left the building") -- region owners may not leave
end
function test_market()
-- if i am the only trader around, i should be getting all the herbs from all 7 regions
local herb_multi = 500 -- from rc_herb_trade()
local r, idx
local herbnames = { 'h0', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'h7', 'h8' }
idx = 1
for x = -1, 1 do for y = -1, 1 do
r = region.create(x, y, "plain")
r:set_resource("peasant", herb_multi * 9 + 50) -- 10 herbs per region
r.herb = herbnames[idx]
idx = idx+1
end end
r = get_region(0, 0)
local b = building.create(r, "market")
b.size = 10
local f = faction.create("noreply@eressea.de", "human", "de")
f.id = 42
local u = unit.create(f, r, 1)
u.building = b
u:add_item("money", u.number * 10000)
for i = 0, 5 do
local rn = r:next(i)
end
b.working = true
eressea.process.markets()
u:add_item("money", -u:get_item("money")) -- now we only have herbs
local len = 0
for i in u.items do
len = len + 1
end
assert_not_equal(0, len, "trader did not get any herbs")
for idx, name in pairs(herbnames) do
local n = u:get_item(name)
if n>0 then
assert_equal(10, n, 'trader did not get exaxtly 10 herbs')
end
end
end
function test_market_gives_items()
local r
for x = -1, 1 do for y = -1, 1 do
r = region.create(x, y, "plain")
r:set_resource("peasant", 5000)
end end
r = get_region(0, 0)
local b = building.create(r, "market")
b.size = 10
local f = faction.create("noreply@eressea.de", "human", "de")
f.id = 42
local u = unit.create(f, r, 1)
u.building = b
u:add_item("money", u.number * 10000)
for i = 0, 5 do
local rn = r:next(i)
end
process_orders()
local len = 0
for i in u.items do
len = len + 1
end
assert(len>1)
end
function test_spells()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
u.race = "elf"
u:clear_orders()
u:add_item("money", 10000)
u:set_skill("magic", 5)
u:add_order("LERNE MAGIE Illaun")
process_orders()
local sp
local nums = 0
if f.spells~=nil then
for sp in f.spells do
nums = nums + 1
end
assert(nums>0)
for sp in u.spells do
nums = nums - 1
end
assert(nums==0)
elseif u.spells~=nil then
for sp in u.spells do
nums = nums + 1
end
assert(nums>0)
end
end
function test_alliance()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 1)
u1:add_item("money", u1.number * 100)
local f2 = faction.create("info@eressea.de", "human", "de")
local u2 = unit.create(f2, r, 1)
u2:add_item("money", u2.number * 100)
assert(f1.alliance==nil)
assert(f2.alliance==nil)
u1:clear_orders()
u2:clear_orders()
u1:add_order("ALLIANZ NEU pink")
u1:add_order("ALLIANZ EINLADEN " .. itoa36(f2.id))
u2:add_order("ALLIANZ BEITRETEN pink")
process_orders()
assert(f1.alliance~=nil)
assert(f2.alliance~=nil)
assert(f2.alliance==f1.alliance)
u1:clear_orders()
u2:clear_orders()
u1:add_order("ALLIANZ KOMMANDO " .. itoa36(f2.id))
process_orders()
assert(f1.alliance~=nil)
assert(f2.alliance~=nil)
assert(f2.alliance==f1.alliance)
for f in f1.alliance.factions do
assert_true(f.id==f1.id or f.id==f2.id)
end
u1:clear_orders()
u2:clear_orders()
u2:add_order("ALLIANZ AUSSTOSSEN " .. itoa36(f1.id))
process_orders()
assert(f1.alliance==nil)
assert(f2.alliance~=nil)
u1:clear_orders()
u2:clear_orders()
u2:add_order("ALLIANZ NEU zing")
u1:add_order("ALLIANZ BEITRETEN zing") -- no invite!
process_orders()
assert(f1.alliance==nil)
assert(f2.alliance~=nil)
u1:clear_orders()
u2:clear_orders()
u1:add_order("ALLIANZ NEU zack")
u1:add_order("ALLIANZ EINLADEN " .. itoa36(f2.id))
u2:add_order("ALLIANZ BEITRETEN zack")
process_orders()
assert(f1.alliance==f2.alliance)
assert(f2.alliance~=nil)
end
function test_canoe_passes_through_land()
local f = faction.create("noreply@eressea.de", "human", "de")
local src = region.create(0, 0, "ocean")
local land = region.create(1, 0, "plain")
region.create(2, 0, "ocean")
local dst = region.create(3, 0, "ocean")
local sh = ship.create(src, "canoe")
local u1 = unit.create(f, src, 1)
local u2 = unit.create(f, src, 1)
u1.ship = sh
u2.ship = sh
u1:set_skill("sailing", 10)
u1:clear_orders()
u1:add_order("NACH O O O")
process_orders()
assert_equal(land, u2.region, "canoe did not stop at coast")
u1:add_order("NACH O O O")
process_orders()
assert_equal(dst, sh.region, "canoe could not leave coast")
assert_equal(dst, u1.region, "canoe could not leave coast")
assert_equal(dst, u2.region, "canoe could not leave coast")
end
function test_give_50_percent_of_money()
local r = region.create(0, 0, "plain")
local u1 = unit.create(faction.create("noreply@eressea.de", "human", "de"), r, 1)
local u2 = unit.create(faction.create("noreply@eressea.de", "orc", "de"), r, 1)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
local m1, m2 = u1:get_item("money"), u2:get_item("money")
u1:clear_orders()
u1:add_order("GIB " .. itoa36(u2.id) .. " 221 Silber")
u2:clear_orders()
u2:add_order("LERNEN Hiebwaffen")
process_orders()
assert_equal(m1, u1:get_item("money"))
assert_equal(m2, u2:get_item("money"))
m1, m2 = u1:get_item("money"), u2:get_item("money")
u1:clear_orders()
u1:add_order("GIB " .. itoa36(u2.id) .. " 221 Silber")
u2:clear_orders()
u2:add_order("HELFEN " .. itoa36(u1.faction.id) .. " GIB")
u2:add_item("horse", 100)
u2:add_order("GIB 0 ALLES PFERD")
local h = r:get_resource("horse")
process_orders()
assert_true(r:get_resource("horse")>=h+100)
assert_equal(m1-221, u1:get_item("money"))
assert_equal(m2+110, u2:get_item("money"))
end
function test_give_100_percent_of_items()
r = region.create(0, 0, "plain")
local u1 = unit.create(faction.create("noreply@eressea.de", "human", "de"), r, 1)
local u2 = unit.create(faction.create("noreply@eressea.de", "orc", "de"), r, 1)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u1:add_item("log", 500)
local m1, m2 = u1:get_item("log"), u2:get_item("log")
u1:clear_orders()
u1:add_order("GIB " .. itoa36(u2.id) .. " 332 Holz")
u2:clear_orders()
u2:add_order("LERNEN Hiebwaffen")
u2:add_order("HELFEN " .. itoa36(u1.faction.id) .. " GIB")
process_orders()
assert_equal(m1-332, u1:get_item("log"))
assert_equal(m2+332, u2:get_item("log"))
end
function test_cannot_give_person()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
u2:clear_orders()
u2:add_order("GIB ".. itoa36(u1.id) .. " 1 PERSON")
u2:add_order("HELFE ".. itoa36(f1.id) .. " GIB")
u1:add_order("HELFE ".. itoa36(f2.id) .. " GIB")
process_orders()
assert_equal(10, u2.number)
assert_equal(10, u1.number)
end
function test_cannot_give_unit()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
u2:clear_orders()
u2:add_order("GIB ".. itoa36(u1.id) .. " EINHEIT")
u2:add_order("HELFE ".. itoa36(f1.id) .. " GIB")
u1:add_order("HELFE ".. itoa36(f2.id) .. " GIB")
process_orders()
assert_not_equal(u2.faction.id, u1.faction.id)
end
function test_guard_by_owners()
-- http://bugs.eressea.de/view.php?id=1756
local r = region.create(0,0, "mountain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
f1.age=20
local f2 = faction.create("noreply@eressea.de", "human", "de")
f2.age=20
local u1 = unit.create(f1, r, 1)
local b = building.create(r, "castle")
b.size = 10
u1.building = b
u1:add_item("money", 100)
local u2 = unit.create(f2, r, 1)
u2:add_item("money", 100)
u2:set_skill("mining", 3)
u2:clear_orders()
u2:add_order("MACHEN EISEN")
process_orders()
local iron = u2:get_item("iron")
process_orders()
assert_equal(iron, u2:get_item("iron"))
end
function test_market_action()
local f = faction.create("noreply@eressea.de", "human", "de")
local x, y, r
for x=0,2 do
for y=0,2 do
r = region.create(x, y, "plain")
r.luxury = "balm"
r.herb = "h2"
r:set_resource("peasant", 5000)
end
end
r = get_region(1, 1)
local u = unit.create(f, r, 1)
b = building.create(r, "market")
b.size = 10
u.building = b
update_owners()
for r in regions() do
market_action(r)
end
assert_equal(35, u:get_item("balm"))
assert_equal(70, u:get_item("h2"))
end
local function setup_packice(x, onfoot)
local f = faction.create("noreply@eressea.de", "human", "de")
local plain = region.create(0,0, "plain")
local ice = region.create(1,0, "packice")
local ocean = region.create(2,0, "ocean")
local u = unit.create(f, get_region(x, 0), 2)
if not onfoot then
local s = ship.create(u.region, "cutter")
u:set_skill("sailing", 3)
u.ship = s
end
u:add_item("money", 400)
return u
end
function test_no_sailing_through_packice()
local u = setup_packice(0)
u:clear_orders()
u:add_order("NACH O O")
process_orders()
assert_equal(0, u.region.x)
end
function test_can_sail_from_packice_to_ocean()
local u = setup_packice(1)
u:clear_orders()
u:add_order("NACH W")
process_orders()
assert_equal(1, u.region.x)
u:clear_orders()
u:add_order("NACH O")
process_orders()
assert_equal(2, u.region.x)
end
function test_can_sail_into_packice()
local u = setup_packice(2)
u:clear_orders()
u:add_order("NACH W W")
process_orders()
assert_equal(1, u.region.x)
end
function test_can_walk_into_packice()
local u = setup_packice(0, true)
u:clear_orders()
u:add_order("NACH O")
process_orders()
assert_equal(1, u.region.x)
end
function test_cannot_walk_into_ocean()
local u = setup_packice(1, true)
u:clear_orders()
u:add_order("NACH O")
process_orders()
assert_equal(1, u.region.x)
end
function test_p2()
local f = faction.create("noreply@eressea.de", "human", "de")
local r = region.create(0, 0, "plain")
local u = unit.create(f, r, 1)
r:set_resource("tree", 0)
u:clear_orders()
u:add_order("BENUTZE 'Wasser des Lebens'")
u:add_item("p2", 1)
u:add_item("log", 10)
u:add_item("mallorn", 10)
process_orders()
assert_equal(5, r:get_resource("tree"))
assert_equal(0, u:get_item("p2"))
assert_equal(15, u:get_item("log") + u:get_item("mallorn"))
end
function test_p2_move()
-- http://bugs.eressea.de/view.php?id=1855
local f = faction.create("noreply@eressea.de", "human", "de")
local r = region.create(0, 0, "plain")
region.create(1, 0, "plain")
local u = unit.create(f, r, 1)
r:set_resource("tree", 0)
u:clear_orders()
u:add_order("BENUTZE 'Wasser des Lebens'")
u:add_order("NACH OST")
u:add_item("horse", 1)
u:add_item("p2", 1)
u:add_item("log", 1)
u:add_item("mallorn", 1)
process_orders()
assert_equal(1, u.region.x)
assert_equal(1, r:get_resource("tree"))
end
function disabled_test_bug_1738_build_castle_e3()
local r = region.create(0, 0, "plain")
local f = faction.create("bug_1738@eressea.de", "human", "de")
local c = building.create(r, "castle")
c.size = 228
local u1 = unit.create(f, r, 1)
u1:set_skill("building", 5)
u1:add_item("stone", 10000)
local u2 = unit.create(f, r, 32)
u2:set_skill("building", 3)
u2:add_item("stone", 10000)
u1:clear_orders()
u1:add_order("MACHE BURG " .. itoa36(c.id))
-- castle now has size 229.
u2:clear_orders()
u2:add_order("MACHE BURG " .. itoa36(c.id))
-- 32 * 3 makes 96 skill points.
-- from size 229 to size 250 needs 21 * 3 = 63 points, rest 33.
-- 33/4 makes 8 points, resulting size is 258.
process_orders()
--[[
init_reports()
write_report(f)
]]--
-- resulting size should be 250 because unit 2
-- does not have the needed minimum skill.
assert_equal(c.size, 250)
end
function test_golem_use_four_iron()
local r0 = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "halfling", "de")
local u1 = unit.create(f1, r0, 3)
u1.race = "irongolem"
u1:set_skill("weaponsmithing", 1)
u1:set_skill("armorer", 1)
u1:clear_orders()
u1:add_order("Mache 4 Turmschild")
process_orders()
assert_equal(2, u1.number)
assert_equal(4, u1:get_item("towershield"))
end
function test_building_owner_can_enter_ship()
local r1 = region.create(1, 2, "plain")
local f1 = faction.create("noreply@tteessttiinngg.de", "human", "de")
local b1 = building.create(r1, "castle")
b1.size = 10
local s1 = ship.create(r1, "cutter")
local u1 = unit.create(f1, r1, 10)
u1.building = b1
u1:add_item("money", u1.number * 100)
u1:clear_orders()
u1:add_order("VERLASSEN")
u1:add_order("BETRETE SCHIFF " .. itoa36(s1.id))
local u2 = unit.create(f1, r1, 10)
u2.ship = s1
u2:add_item("money", u1.number * 100)
u2:clear_orders()
process_orders()
assert_equal(s1, u1.ship)
assert_equal(null, u1.building, "owner of the building can not go into a ship")
end

View File

@ -1,360 +0,0 @@
require "lunit"
module("tests.e3.e2features", package.seeall, lunit.testcase )
local function one_unit(r, f)
local u = unit.create(f, r, 1)
u:add_item("money", u.number * 100)
u:clear_orders()
return u
end
local function two_factions()
local f1 = faction.create("one@eressea.de", "human", "de")
local f2 = faction.create("two@eressea.de", "human", "de")
return f1, f2
end
local function two_units(r, f1, f2)
return one_unit(r, f1), one_unit(r, f2)
end
function setup()
eressea.free_game()
eressea.settings.set("nmr.timeout", "0")
eressea.settings.set("rules.economy.food", "4")
end
function test_learn()
eressea.settings.set("study.random_progress", "0")
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
f.age = 20
local u = unit.create(f, r)
u:clear_orders()
u:add_order("@LERNEN Reiten")
process_orders()
assert_equal(1, u:get_skill("riding"))
process_orders()
process_orders()
assert_equal(2, u:get_skill("riding"))
process_orders()
process_orders()
process_orders()
assert_equal(3, u:get_skill("riding"))
end
function test_teach()
eressea.settings.set("study.random_progress", "0")
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
f.age = 20
local u = unit.create(f, r, 10)
local u2 = unit.create(f, r)
u:clear_orders()
u:add_order("@LERNEN reiten")
u2:clear_orders()
u2:add_order("LEHREN " .. itoa36(u.id))
u2:set_skill("riding", 4)
process_orders()
assert_equal(1, u:get_skill("riding"))
process_orders()
assert_equal(2, u:get_skill("riding"))
end
function test_rename()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r)
u:add_item("aoh", 1)
assert_equal(u:get_item("ao_healing"), 1)
end
function DISABLE_test_alp()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
local u2 = unit.create(f, r, 1)
u.race = "elf"
u:set_skill("magic", 10)
u:add_item("money", 3010)
u.magic = "illaun"
u.aura = 200
u.ship = s1
u:add_spell("summon_alp")
u:clear_orders()
u:add_order("ZAUBERE 'Alp' " .. itoa36(u2.id))
process_orders()
print(get_turn(), f)
write_reports()
end
function test_unit_limit_is_1500()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
for i = 1,1500 do
unit.create(f, r, 1)
end
local u = unit.create(f, r, 0)
u:add_item("money", 20000)
u:clear_orders()
u:add_order("REKRUTIEREN 1")
process_orders()
assert_equal(1, u.number)
end
function test_ship_capacity()
local r = region.create(0,0, "ocean")
region.create(1,0, "ocean")
local r2 = region.create(2,0, "ocean")
local f = faction.create("noreply@eressea.de", "human", "de")
-- u1 is at the limit and moves
local s1 = ship.create(r, "boat")
local u1 = unit.create(f, r, 5)
u1.ship = s1
u1:set_skill("sailing", 10)
u1:clear_orders()
u1:add_order("NACH O O")
-- u2 has too many people
local s2 = ship.create(r, "boat")
local u2 = unit.create(f, r, 6)
u2.ship = s2
u2:set_skill("sailing", 10)
u2:clear_orders()
u2:add_order("NACH O O")
-- u4 has too much stuff
local s4 = ship.create(r, "boat")
local u4 = unit.create(f, r, 5)
u4.ship = s4
u4:set_skill("sailing", 10)
u4:add_item("sword", 1)
u4:clear_orders()
u4:add_order("NACH O O")
process_orders()
-- print(s.region, u.region, r2)
assert_equal(r2, u1.region, "boat with 5 humans did not move")
assert_not_equal(r2, u2.region, "boat with too many people has moved")
assert_not_equal(r2, u4.region, "boat with too much cargo has moved")
end
function test_levitate()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 2)
local s = ship.create(r, "boat")
u.ship = s
u.age = 20
u:set_skill("sailing", 5)
u:add_item("money", 100)
u:clear_orders()
u:add_order("ARBEITE")
levitate_ship(u.ship, u, 2, 1)
assert_equal(32, u.ship.flags)
process_orders()
assert_equal(0, u.ship.flags)
end
function test_terrains()
local terrains = { "hell", "wall1", "corridor1" }
for k,v in ipairs(terrains) do
local r = region.create(k, k, v)
assert_not_equal(nil, r)
end
end
function test_races()
local races = { "wolf", "orc", "human", "demon" }
for k,v in ipairs(races) do
local f = faction.create("noreply@eressea.de", "human", "de")
assert_not_equal(nil, f)
end
end
function test_can_give_person()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
u2:clear_orders()
u2:add_order("GIB ".. itoa36(u1.id) .. " 1 PERSON")
u2:add_order("HELFE ".. itoa36(f1.id) .. " GIB")
u1:add_order("HELFE ".. itoa36(f2.id) .. " GIB")
u1:add_order("KONTAKTIERE ".. itoa36(u2.id))
process_orders()
assert_equal(9, u2.number)
assert_equal(11, u1.number)
end
function test_no_uruk()
local f1 = faction.create("noreply@eressea.de", "uruk", "de")
assert_equal(f1.race, "orc")
end
function test_snowman()
local r = region.create(0, 0, "glacier")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
u:add_item("snowman", 1)
u:clear_orders()
u:add_order("BENUTZEN 1 Schneemann")
process_orders()
for u2 in r.units do
if u2.id~=u.id then
assert_equal(u2.race, "snowman")
u = nil
break
end
end
assert_equal(nil, u)
end
function test_block_movement()
eressea.settings.set("rules.guard.base_stop_prob", "0.3")
eressea.settings.set("rules.guard.amulet_stop_prob", "0.0")
eressea.settings.set("rules.guard.skill_stop_prob", "0.1")
local r0 = region.create(0, 0, "plain")
local r1 = region.create(1, 0, "plain")
local r2 = region.create(2, 0, "plain")
local f1, f2 = two_factions()
f1.age=20
f2.age=20
local u11 = one_unit(r1, f1)
local u2 = { }
for i = 1, 20 do
u2[i] = one_unit(r0, f2)
end
u11:add_item("sword", 1)
u11:add_item("money", 1)
u11:set_skill("melee", 1)
u11:set_skill("perception", 7)
u11:clear_orders()
u11:add_order("BEWACHEN")
process_orders()
for i, u in ipairs(u2) do
u:add_item("horse", 1)
u:set_skill("riding", 1)
u:clear_orders()
u:add_order("NACH o o")
end
u2[1]:set_skill("stealth", 8)
process_orders()
assert_equal(r2, u2[1].region, "nobody should see me")
for i, u in ipairs(u2) do
if i > 1 then
assert_equal(r1, u.region, "perception +7 should always stop me")
end
end
end
function test_block_movement_aots()
eressea.settings.set("rules.guard.base_stop_prob", "0.0")
eressea.settings.set("rules.guard.skill_stop_prob", "1.0")
eressea.settings.set("rules.guard.amulet_stop_prob", "1.1")
local r0 = region.create(0, 0, "plain")
local r1 = region.create(1, 0, "plain")
local r2 = region.create(2, 0, "plain")
local f1, f2 = two_factions()
f1.age=20
f2.age=20
local u11, u12 = two_units(r1, f1, f1)
local u21, u22 = two_units(r0, f2, f2)
for i, u in ipairs ({ u11, u12 }) do
u:add_item("sword", 1)
u:add_item("money", 1)
u:set_skill("melee", 1)
u:clear_orders()
u:add_order("BEWACHEN")
end
process_orders()
for i, u in ipairs ({ u21, u22 }) do
u:add_item("horse", 1)
u:set_skill("riding", 1)
u:clear_orders()
u:add_order("NACH o o")
end
u12:add_item("aots", 10)
u22:set_skill("stealth", 1)
process_orders()
assert_equal(r1, u21.region, "unit with amulet should stop me")
assert_equal(r2, u22.region, "nobody should see me")
end
function test_stonegolems()
local r0 = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "stonegolem", "de")
local u1 = unit.create(f1, r0, 1)
local u2 = unit.create(f1, r0, 2)
local c1 = building.create(r0, "castle")
c1.size = 226
u1:set_skill("building", 1)
u2:set_skill("building", 1)
-- test that no server crash occur
u1:clear_orders()
u1:add_order("Mache Burg")
process_orders()
assert_equal(0 ,u1.number, "There shoud be no Stone Golems")
-- end test server crash
-- test that Stone Golems build for four stones
u2:clear_orders()
u2:add_order("MACHE 4 BURG " .. itoa36(c1.id))
process_orders()
assert_equal(230, c1.size, "resulting size should be 230")
assert_equal(1 ,u2.number, "There shoud be one Stone Golems")
-- end test Stone Golems four stones
end
function test_only_building_owner_can_set_not_paid()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f, r, 1)
local u2 = unit.create(f, r, 1)
local mine = building.create(r, "mine")
mine.size = 2
u1:add_item("money", 500)
u1.building = mine
u2.building = mine
u1:clear_orders()
u2:clear_orders()
-- Test that Bezahle nicht is working
u1:add_order("Bezahle nicht")
process_orders()
assert_equal(500, u1:get_item("money"))
u1:clear_orders()
-- Test that bug fix 0001976 is working
-- Bezahle nicht is not working
u2:add_order("Bezahle nicht")
process_orders()
assert_equal(0, u1:get_item("money"))
end

Some files were not shown because too many files have changed in this diff Show More