Merge remote-tracking branch 'upstream/master'

Conflicts:
	scripts/tests/common.lua
This commit is contained in:
Enno Rehling 2017-05-28 12:47:54 +02:00
commit 025a04a5e9
259 changed files with 4509 additions and 4353 deletions

16
CHANGELOG.md Normal file
View File

@ -0,0 +1,16 @@
# Geplante Aenderungen in zukuenftigen Eressea-Versionen
Als Anhaltspunkt fuer die Empfaenger der woechentlichen Testauswertungnen
will ich versuchen, die Liste meiner Aenderungen seit dem letzten Release
zu dokumentieren.
## Version 3.12.0
- [other] optimierte Berechnung der Sichtbarkeit von Leuchttuermen
- [bug] Einheitenlimit bei GIB PERSON beachten
- [bug] Einheitenlimit bei ALLIANCE JOIN beachten
- [rule] Einheiten- und Personenzahl im Report beinhaltet *alle* Einheiten der Partei.
- [other] Statistik fuer Spielleiter zeigt das Parteisilber nicht mehr an.
- [other] Berechnung der Message-Ids optimiert.

22
conf/calendar.json Normal file
View File

@ -0,0 +1,22 @@
{
"calendar" : {
"months" : [
{ "storm" : 60, "season" : 2 },
{ "storm" : 10, "season" : 3 },
{ "storm" : 60, "season" : 3 },
{ "storm" : 10, "season" : 0 },
{ "storm" : 60, "season" : 0 },
{ "storm" : 80, "season" : 0 },
{ "storm" : 50, "season" : 1 },
{ "storm" : 30, "season" : 1 },
{ "storm" : 60, "season" : 2 }
],
"weeks" : [
"firstweek", "secondweek", "thirdweek"
]
}
}

View File

@ -1,9 +1,10 @@
{
"include": [
"keywords.json",
"prefixes.json",
"include": [
"keywords.json",
"calendar.json",
"prefixes.json",
"e2/terrains.json"
],
],
"disabled": [
"jsreport"
],
@ -21,13 +22,12 @@
"GiveRestriction": 3,
"hunger.long": true,
"init_spells": 0,
"world.era": 2,
"seed.population.min": 8,
"seed.population.max": 8,
"game.era": 2,
"game.start": 184,
"rules.reserve.twophase": true,
"rules.give.max_men": -1,
"rules.check_overload": false,
"rules.limit.faction": 2500,
"rules.limit.faction": 3000,
"rules.maxskills.magic": 5,
"rules.guard.base_stop_prob": 0.30,
"rules.guard.skill_stop_prob": 0.05,

View File

@ -15,8 +15,6 @@
<xi:include href="config://game/familiars.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"/>

View File

@ -1,6 +1,7 @@
{
"include": [
"keywords.json",
"calendar.json",
"prefixes.json",
"e3/terrains.json"
],
@ -51,11 +52,11 @@
"recruit.allow_merge": true,
"study.expensivemigrants": true,
"study.speedup": 2,
"world.era": 3,
"seed.population.min": 8,
"seed.population.max": 8,
"game.era": 3,
"game.start": 1,
"rules.reserve.twophase": true,
"rules.owners.force_leave": false,
"rules.wage.function": 2,
"rules.monsters.attack_chance": 0.1,
"rules.transfermen": false,
"stealth.faction.other": false,
@ -87,7 +88,7 @@
"rules.economy.herbrot": 0,
"rules.region_owner_pay_building": "market harbour lighthouse",
"rules.dwarf_castles": true,
"rules.limit.faction": 250,
"rules.limit.faction": 500,
"rules.grow.formula": 1,
"rules.tactics.formula": 1,
"rules.help.mask": "fight guard money give",

View File

@ -10,7 +10,6 @@
<xi:include href="config://game/ships.xml"/>
<xi:include href="config://game/shipnames.xml"/>
<xi:include href="config://core/calendar.xml"/>
<xi:include href="config://game/items.xml" />
<xi:include href="config://game/races.xml"/>
<xi:include href="config://game/buildings.xml"/>
@ -21,14 +20,9 @@
<xi:include href="config://game/armor.xml" />
<xi:include href="config://game/resources.xml" />
<calendar name="thirdage" newyear="month_1" start="1"/>
<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"/>
<rules>
<function name="wage" value="minimum_wage"/>
</rules>
</eressea>

View File

@ -2,11 +2,9 @@
email = eressea-server@kn-bremen.de
sender = Eressea Server
name = Eressea
base = .
report = reports
verbose = 0
lomem = 0
debug = 0
memcheck = 0
locales = de,en

10
etc/report-mail.de.txt Normal file
View File

@ -0,0 +1,10 @@
Freust Du Dich, dass es diese Woche wieder einen Eressea-Report gibt?
Möchtest Du dazu beitragen, dass das auch nächste Woche wieder passiert?
Eressea ist ein freiwilliges gratis-Angebot, und die Spielleitung bezahlt
seit Jahren die Entwicklung und das Hosting aus eigener Tasche. Wenn Dir
das etwas wert ist, kannst Du das auf
https://flattr.com/thing/681354/Eressea zum Ausdruck bringen.
Diese Mail enthält ein Attachment mit Deinem Eressea-Report in
komprimierter Form. Um ihn zu entpacken benötigst Du ein Programm,
das ZIP-Archive öffnen kann, wie z.B. 7-Zip (http://www.7-zip.org/)

6
etc/report-mail.en.txt Normal file
View File

@ -0,0 +1,6 @@
If you feel that getting a report every weekend is worth something to you,
why not flattr Eressea at https://flattr.com/thing/681354/Eressea ?
This email contains an Attachment with your Eressea report in compressed
form. To open the attachment, you will need a program that can extract
ZIP files, e.g. 7-Zip (http://www.7-zip.org/).

14
etc/report-mail.txt Normal file
View File

@ -0,0 +1,14 @@
Freust Du Dich, dass es diese Woche wieder einen Eressea-Report gibt?
Möchtest Du dazu beitragen, dass das auch nächste Woche wieder passiert?
Eressea ist ein freiwilliges gratis-Angebot, und die Spielleitung bezahlt
seit Jahren die Entwicklung und das Hosting aus eigener Tasche. Wenn Dir
das etwas wert ist, kannst Du das auf
https://flattr.com/thing/681354/Eressea zum Ausdruck bringen.
Diese Mail enthält ein Attachment mit Deinem Eressea-Report in
komprimierter Form. Um ihn zu entpacken benötigst Du ein Programm,
das ZIP-Archive öffnen kann, wie z.B. 7-Zip (http://www.7-zip.org/)
This email contains an attachment with your Eressea report in compressed
form. To open the attachment, you will need a program that can extract
ZIP files, e.g. 7-Zip (http://www.7-zip.org/).

View File

@ -1,17 +0,0 @@
# Crontab for Eressea on gruenbaer.kn-bremen.de
PATH=/home/eressea/bin:/opt/bin:/usr/local/bin:/usr/bin:/bin
ERESSEA=/home/eressea/eressea
ENABLED=yes
PREVIEW=yes
CONFIRM=yes
# m h dom mon dow command
00 00 * * * $HOME/bin/fetchmail.cron
00 22 * * * $HOME/bin/backup-db.sh
15 21 * * Sat [ "$ENABLED" = "yes" ] && $ERESSEA/server/bin/run-eressea.cron 3
25 21 * * Sat [ "$ENABLED" = "yes" ] && $ERESSEA/server/bin/run-eressea.cron 4
35 21 * * Sat [ "$ENABLED" = "yes" ] && $ERESSEA/server/bin/run-eressea.cron 2
30 07 * * Sun [ "$PREVIEW" = "yes" ] && $ERESSEA/server/bin/preview.cron
*/5 * * * * [ "$CONFIRM" = "yes" ] && $ERESSEA/server/bin/orders.cron 2 3 4

View File

@ -5,6 +5,10 @@
# this here script to make a non-blocking syntax check and reject or
# accept the order file.
if [ "yes" != "$CONFIRM" ] ; then
exit
fi
for GAME in $*
do
if [ "$GAME" == "eressea" ]; then GAME=2 ; fi

View File

@ -1,6 +1,8 @@
#!/bin/bash
[ -z ${ERESSEA} ] && ERESSEA=~/eressea
[ "$PREVIEW" != "yes" ] && exit
[ -z ${ERESSEA} ] && ERESSEA=$HOME/eressea
branch="develop"
if [ -e ${ERESSEA}/build/.preview ]; then
branch=`cat ${ERESSEA}/build/.preview`

View File

@ -1,7 +1,11 @@
#!/bin/bash
GAME=$1
BIN=$HOME/bin
export ERESSEA=$HOME/eressea
[ "$ENABLED" != "yes" ] && exit
[ -z ${ERESSEA} ] && ERESSEA=$HOME/eressea
export ERESSEA
BIN=$ERESSEA/server/bin
TURN=$(cat $ERESSEA/game-$GAME/turn)
if [ ! -e $ERESSEA/game-$GAME/data/$TURN.dat ]; then
echo "data file $TURN is missing, cannot run turn for game $GAME"
@ -14,6 +18,18 @@ fi
mkdir $REPORTS
cd $ERESSEA/game-$GAME
# wait for the queue lock to go away
maxt=5
to=5
while [ -e orders.queue.lock ] ; do
echo "waiting for orders to finish processing."
sleep $to
let to=$to+$to
let mast=$maxt-1
[ $maxt -lt 0 ] && break
done
if [ -d test ]; then
touch test/execute.lock
fi

View File

@ -1,16 +0,0 @@
#!/bin/bash
## this script processes incoming order files.
# files are delivered into an incoming queue by procmail, then cron runs
# this here script to make a non-blocking syntax check and reject or
# accept the order file.
for GAME in $*
do
if [ "$GAME" == "eressea" ]; then GAME=2 ; fi
if [ "$GAME" == "e3a" ]; then GAME=3 ; fi
if [ -e $HOME/eressea/game-$GAME/orders.queue ]
then
$HOME/bin/orders-process $GAME
fi
done

View File

@ -1,3 +1,5 @@
#!/bin/sh
GAME=$1
TURN=$2
@ -12,3 +14,4 @@ echo "running turn $TURN, game $GAME"
$ERESSEA/server/bin/eressea -v3 -t $TURN run-turn.lua
mkdir -p log
ln -f eressea.log log/eressea.log.$TURN

View File

@ -1,22 +0,0 @@
GAME=$1
TURN=$2
if [ ! -d $ERESSEA/game-$GAME ] ; then
echo "No such game: $GAME"
exit 1
fi
cd $ERESSEA/game-$GAME
if [ -z $TURN ]; then
TURN=$(cat turn)
fi
echo "running turn $TURN, game $GAME"
if [ -d orders.dir.$TURN ]; then
echo "orders.dir.$TURN already exists"
else
mv orders.dir orders.dir.$TURN
mkdir -p orders.dir
fi
ls -1rt orders.dir.$TURN/turn-* | xargs cat > orders.$TURN
$ERESSEA/bin/eressea -t $TURN run-turn.lua

View File

@ -5,10 +5,8 @@
<item weight="200" score="200">
<construction skill="mining" minskill="8"/>
</item>
<resourcelimit>
<modifier building="mine" type="skill" value="1"/>
<modifier type="require" building="mine"/>
</resourcelimit>
</resource>
<resource name="adamantiumaxe">

View File

@ -1,23 +1,21 @@
<?xml version="1.0"?>
<building name="castle" capacity="1" fort="yes">
<function name="name" value="castle_name_2"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="10">
<building name="castle" capacity="1" fort="yes" taxes="100">
<construction skill="building" minskill="1" maxsize="10" name="site">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40">
<construction skill="building" minskill="2" maxsize="40" name="fortification">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200">
<construction skill="building" minskill="3" maxsize="200" name="tower">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000">
<construction skill="building" minskill="4" maxsize="1000" name="castle">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000">
<construction skill="building" minskill="5" maxsize="5000" name="fortress">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6">
<construction skill="building" minskill="6" name="citadel">
<requirement type="stone" quantity="1"/>
</construction>
</building>

View File

@ -1,25 +1,24 @@
<?xml version="1.0"?>
<building name="castle" capacity="1" fort="yes">
<function name="name" value="castle_name"/>
<construction skill="building" minskill="1" maxsize="2">
<construction skill="building" minskill="1" maxsize="2" name="site">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="1" maxsize="8">
<construction skill="building" minskill="1" maxsize="8" name="tradepost">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40">
<construction skill="building" minskill="2" maxsize="40" name="fortification">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200">
<construction skill="building" minskill="3" maxsize="200" name="tower">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000">
<construction skill="building" minskill="4" maxsize="1000" name="castle">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000">
<construction skill="building" minskill="5" maxsize="5000" name="fortress">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6">
<construction skill="building" minskill="6" name="citadel">
<requirement type="stone" quantity="1"/>
</construction>
</building>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="plate">
<item weight="400" score="150">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="armorer" minskill="4">
<requirement type="iron" quantity="5"/>
</construction>

View File

@ -1,23 +0,0 @@
<?xml version="1.0"?>
<calendar name="secondage" newyear="month_1">
<season name="winter">
<month name="month_4" storm="50" />
<month name="month_5" storm="30" />
<month name="month_6" storm="60" />
</season>
<season name="spring">
<month name="month_7" storm="60" />
<month name="month_8" storm="10" />
</season>
<season name="summer">
<month name="month_9" storm="60" />
<month name="month_1" storm="10" />
</season>
<season name="fall">
<month name="month_2" storm="60" />
<month name="month_3" storm="80" />
</season>
<week name="firstweek" />
<week name="secondweek" />
<week name="thirdweek" />
</calendar>

View File

@ -93,7 +93,6 @@
</building>
<building name="smithy" capacity="1">
<function name="init" value="init_smithy"/>
<maintenance type="money" amount="300"/>
<maintenance type="log" amount="1"/>
<construction skill="building" minskill="3">
@ -102,6 +101,8 @@
<requirement type="iron" quantity="2"/>
<requirement type="money" quantity="200"/>
</construction>
<modifier type="skill" skill="weaponsmithing" value="1"/>
<modifier type="skill" skill="armorer" value="1"/>
</building>
<building name="magictower" maxcapacity="2" maxsize="50" magic="yes" magres="40" fumblebonus="10" auraregen="1.75">

View File

@ -61,16 +61,8 @@
<item weight="0" score="6000"/>
</resource>
<resource name="aoc" appearance="amulet">
<item weight="100">
<function name="use" value="use_birthdayamulet"/>
</item>
</resource>
<resource name="dreameye">
<item weight="100">
<function name="use" value="use_tacticcrystal"/>
</item>
<item weight="100" use="yes" />
</resource>
<resource name="pegasus">
@ -78,9 +70,7 @@
</resource>
<resource name="elvenhorse">
<item weight="5000" notlost="yes" big="yes" score="6000" capacity="7000" animal="yes">
<function name="give" value="givehorses"/>
</item>
<item weight="5000" notlost="yes" big="yes" score="6000" capacity="7000" animal="yes"/>
</resource>
<resource name="dolphin">
@ -100,39 +90,34 @@
</resource>
<!-- XE items -->
<resource name="studypotion" appearance="vial">
<!-- gives user one free learning attempt -->
<item weight="0" use="yes" />
</resource>
<resource name="skillpotion" appearance="vial">
<!-- gives user one free learning attempt -->
<item weight="0">
<function name="use" value="use_skillpotion"/>
</item>
<item weight="0" use="yes" />
</resource>
<resource name="manacrystal" appearance="amulet">
<!-- gives user free aura -->
<item weight="0">
<function name="use" value="use_manacrystal"/>
</item>
<item weight="0" use="yes" />
</resource>
<!-- xmas items -->
<resource name="mistletoe">
<!-- Sets the chance of escape in a fight to 100 percent -->
<item notlost="yes" weight="0">
<function name="use" value="usemistletoe"/>
</item>
<item notlost="yes" weight="0" use="yes" />
</resource>
<resource name="speedsail">
<item weight="0">
<function name="use" value="use_speedsail"/>
</item>
<item weight="0" use="yes" />
</resource>
<!-- items -->
<resource name="antimagic" appearance="amulet">
<item weight="0" score="2000">
<function name="use" value="use_antimagiccrystal"/>
</item>
<item weight="0" score="2000" use="yes" />
</resource>
<resource name="catapultammo">

View File

@ -4,8 +4,7 @@
<!-- potions -->
<resource name="p0" appearance="vial">
<item weight="0" score="30">
<function name="use" value="usepotion"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
<construction skill="alchemy" minskill="2">
<requirement type="h4"/>
@ -15,8 +14,7 @@
</resource>
<resource name="goliathwater" appearance="vial">
<item weight="0" score="30">
<function name="use" value="usepotion"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
<construction skill="alchemy" minskill="2">
<requirement type="h6"/>
@ -26,8 +24,7 @@
</resource>
<resource name="truthpotion" appearance="vial">
<item weight="0" score="30">
<function name="use" value="usepotion"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
<construction skill="alchemy" minskill="2">
<requirement type="h0"/>
@ -37,8 +34,7 @@
</resource>
<resource name="p2" appearance="vial">
<item weight="0" score="30">
<function name="use" value="usepotion"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
<construction skill="alchemy" minskill="2">
<requirement type="h5"/>
@ -48,8 +44,7 @@
</resource>
<resource name="p3" appearance="vial">
<item weight="0" score="60">
<function name="use" value="usepotion"/>
<item weight="0" score="60" use="yes">
<potion level="2"/>
<construction skill="alchemy" minskill="4">
<requirement type="h14"/>
@ -61,8 +56,7 @@
<resource name="ointment" appearance="vial">
<!-- Wundsalbe -->
<item weight="0" score="60">
<function name="use" value="usehealingpotion"/>
<item weight="0" score="60" use="yes">
<potion level="2"/>
<construction skill="alchemy" minskill="4">
<requirement type="h19"/>
@ -74,8 +68,7 @@
<resource name="peasantblood" appearance="vial">
<!-- Bauernblut -->
<item weight="0" score="60">
<function name="use" value="usebloodpotion"/>
<item weight="0" score="60" use="yes">
<potion level="2"/>
<construction skill="alchemy" minskill="4">
<requirement type="h17"/>
@ -87,8 +80,7 @@
</resource>
<resource name="p6" appearance="vial">
<item weight="0" score="90">
<function name="use" value="usepotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
<construction skill="alchemy" minskill="6">
<requirement type="h9"/>
@ -100,8 +92,7 @@
</resource>
<resource name="p7" appearance="vial">
<item weight="0" score="90">
<function name="useonother" value="usefoolpotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
<construction skill="alchemy" minskill="6">
<requirement type="h2"/>
@ -113,8 +104,7 @@
</resource>
<resource name="nestwarmth" appearance="vial">
<item weight="0" score="90">
<function name="use" value="usewarmthpotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
<construction skill="alchemy" minskill="6">
<requirement type="h18"/>
@ -126,8 +116,7 @@
</resource>
<resource name="p9" appearance="vial">
<item weight="0" score="90">
<function name="use" value="usepotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
<construction skill="alchemy" minskill="6">
<requirement type="h4"/>
@ -139,8 +128,7 @@
</resource>
<resource name="p10" appearance="vial">
<item weight="0" score="90">
<function name="use" value="usepotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
<construction skill="alchemy" minskill="6">
<requirement type="h19"/>
@ -152,8 +140,7 @@
</resource>
<resource name="p11" appearance="vial">
<item weight="0" score="120">
<function name="use" value="usepotion"/>
<item weight="0" score="120" use="yes">
<potion level="4"/>
<construction skill="alchemy" minskill="8">
<requirement type="h14"/>
@ -166,8 +153,7 @@
</resource>
<resource name="p13" appearance="vial">
<item weight="0" score="120">
<function name="use" value="usepotion"/>
<item weight="0" score="120" use="yes">
<potion level="4"/>
<construction skill="alchemy" minskill="8">
<requirement type="h5"/>
@ -181,8 +167,7 @@
</resource>
<resource name="p14" appearance="vial">
<item weight="0" score="120">
<function name="use" value="usepotion"/>
<item weight="0" score="120" use="yes">
<potion level="4"/>
<construction skill="alchemy" minskill="8">
<requirement type="h6"/>

View File

@ -1458,12 +1458,6 @@
<string name="aots_p">
<text locale="de">Amulette des wahren Sehens</text>
</string>
<string name="aoc">
<text locale="de">Katzenamulett</text>
</string>
<string name="aoc_p">
<text locale="de">Katzenamulette</text>
</string>
<string name="roi">
<text locale="de">Ring der Unsichtbarkeit</text>
</string>
@ -6529,13 +6523,17 @@
<text locale="de">Sonnenfeuer</text>
<text locale="en">sunfire</text>
</string>
<string name="secondage">
<string name="age_1">
<text locale="de">neuer Zeitrechnung</text>
<text locale="en">of the new age</text>
</string>
<string name="age_2">
<text locale="de">des zweiten Zeitalters</text>
<text locale="en">the second age</text>
</string>
<string name="newage">
<text locale="de">neuer Zeitrechnung</text>
<text locale="en">of the new age</text>
<string name="age_3">
<text locale="de">des dritten Zeitalters</text>
<text locale="en">the third age</text>
</string>
</namespace>

View File

@ -444,12 +444,6 @@
<string name="ao_chastity_p">
<text locale="en">amulets of chastity</text>
</string>
<string name="aoc">
<text locale="en">amulet of the kitten</text>
</string>
<string name="aoc_p">
<text locale="en">amulets of the kitten</text>
</string>
<string name="aod">
<text locale="en">amulet of darkness</text>
</string>

View File

@ -458,12 +458,6 @@
<string name="ao_chastity_p">
<text locale="fr">amulettes de chasteté</text>
</string>
<string name="aoc">
<text locale="fr">amulette du chaton</text>
</string>
<string name="aoc_p">
<text locale="fr">amulettes du chaton</text>
</string>
<string name="aod">
<text locale="fr">amulette de ténčbres</text>
</string>

View File

@ -5536,8 +5536,8 @@
<arg name="region" type="region"/>
<arg name="command" type="order"/>
</type>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Nur Elfen können diese Bögen herstellen."</text>
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - Only elves can make these bows."</text>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Diesen Gegenstand kann die Einheit nicht herstellen."</text>
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - This unit cannot produce that."</text>
</message>
<message name="error117" section="errors">
<type>
@ -5545,8 +5545,8 @@
<arg name="region" type="region"/>
<arg name="command" type="order"/>
</type>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Nur die EMail-Adresse angeben!"</text>
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - Please provide only an email address!"</text>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Diese Rasse kann das nicht herstellen."</text>
<text locale="en">"$unit($unit) in $region($region): '$order($command)' - This race cannot produce that."</text>
</message>
<message name="error116" section="errors">
<type>
@ -7678,24 +7678,6 @@
<text locale="en">"$unit($unit) plays the bagpipe. Stricken with fear the peasants give $int($money) silver."</text>
</message>
<message name="artacademy_create" section="magic">
<type>
<arg name="unit" type="unit"/>
<arg name="region" type="region"/>
</type>
<text locale="de">"$unit($unit) in $region($region) erschafft eine Akademie der Künste."</text>
<text locale="en">"$unit($unit) in $region($region) creates an academy of arts."</text>
</message>
<message name="artsculpture_create" section="magic">
<type>
<arg name="unit" type="unit"/>
<arg name="region" type="region"/>
</type>
<text locale="de">"$unit($unit) in $region($region) erschafft eine Skulptur."</text>
<text locale="en">"$unit($unit) in $region($region) creates a sculpture."</text>
</message>
<message name="spellfail_distance" section="errors">
<type>
<arg name="command" type="order"/>

View File

@ -1,11 +1,6 @@
<?xml version="1.0"?>
<resource name="horse" limited="yes">
<item big="yes" weight="5000" score="10" capacity="7000" animal="yes">
<construction skill="training" minskill="1"/>
<function name="give" value="givehorses"/>
<construction skill="training" minskill="1" />
</item>
<resourcelimit>
<function name="produce" value="lua_produceresource"/>
<function name="limit" value="lua_limitresource"/>
</resourcelimit>
</resource>

View File

@ -1,5 +1,4 @@
<?xml version="1.0"?>
<resource name="hp" pooled="false">
<function name="change" value="lua_changeresource"/>
<function name="get" value="lua_getresource"/>
</resource>

View File

@ -1,11 +1,10 @@
<?xml version="1.0"?>
<resource name="iron" limited="yes" material="yes">
<item weight="500" score="10">
<construction skill="mining" minskill="1"/>
</item>
<resourcelimit>
<item weight="500" score="10">
<construction skill="mining" minskill="1"/>
</item>
<modifier building="smithy" type="save" value="2"/>
<modifier building="mine" type="skill" value="1"/>
<modifier building="mine" type="material" value="0.5"/>
<modifier race="dwarf" type="material" value="0.60"/>
</resourcelimit>
<modifier race="dwarf" type="material" value="0.6"/>
</resource>

View File

@ -1,10 +1,8 @@
<?xml version="1.0"?>
<resource name="laen" limited="yes" material="yes">
<item weight="200" score="100">
<construction skill="mining" minskill="7"/>
</item>
<resourcelimit>
<modifier building="mine" type="skill" value="1"/>
<modifier type="require" building="mine"/>
</resourcelimit>
<item weight="200" score="100">
<construction skill="mining" minskill="7"/>
</item>
<modifier building="mine" type="skill" value="1"/>
<modifier type="require" building="mine"/>
</resource>

View File

@ -1,12 +1,8 @@
<?xml version="1.0"?>
<resource name="log">
<item weight="500" score="10">
<construction skill="forestry" minskill="1"/>
</item>
<resourcelimit>
<resource name="log" limited="yes">
<item weight="500" score="10">
<construction skill="forestry" minskill="1"/>
</item>
<modifier building="sawmill" type="skill" value="1"/>
<modifier building="sawmill" type="material" value="0.5"/>
<function name="produce" value="lua_produceresource"/>
<function name="limit" value="lua_limitresource"/>
</resourcelimit>
</resource>

View File

@ -1,12 +1,8 @@
<?xml version="1.0"?>
<resource name="mallorn">
<item weight="500" score="30">
<construction skill="forestry" minskill="2"/>
</item>
<resourcelimit>
<resource name="mallorn" limited="yes">
<item weight="500" score="30">
<construction skill="forestry" minskill="2"/>
</item>
<modifier building="sawmill" type="skill" value="1"/>
<modifier building="sawmill" type="material" value="0.5"/>
<function name="produce" value="lua_produceresource"/>
<function name="limit" value="lua_limitresource"/>
</resourcelimit>
</resource>

View File

@ -3,8 +3,4 @@
<item weight="10" score="100">
<construction skill="herbalism" minskill="4"/>
</item>
<resourcelimit>
<function name="produce" value="lua_produceresource"/>
<function name="limit" value="lua_limitresource"/>
</resourcelimit>
</resource>

View File

@ -1,5 +1,4 @@
<?xml version="1.0"?>
<resource name="peasant" pooled="false">
<function name="change" value="lua_changeresource"/>
<function name="get" value="lua_getresource"/>
</resource>

View File

@ -3,8 +3,4 @@
<item weight="10" score="50">
<construction skill="herbalism" minskill="3"/>
</item>
<resourcelimit>
<function name="produce" value="lua_produceresource"/>
<function name="limit" value="lua_limitresource"/>
</resourcelimit>
</resource>

View File

@ -1,11 +1,9 @@
<?xml version="1.0"?>
<resource name="stone" limited="yes" material="yes">
<item weight="6000" score="10" big="yes">
<construction skill="quarrying" minskill="1"/>
</item>
<resourcelimit>
<item weight="6000" score="10" big="yes">
<construction skill="quarrying" minskill="1"/>
</item>
<modifier building="quarry" type="skill" value="1"/>
<modifier building="quarry" type="material" value="0.5"/>
<modifier race="troll" type="material" value="0.75"/>
</resourcelimit>
</resource>

View File

@ -10,14 +10,12 @@
<!-- shared spells -->
<spell name="create_roi" ship="true" rank="5" index="130">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_aots" ship="true" rank="5" index="125">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -25,12 +23,10 @@
<!-- draig spells -->
<spell name="earn_silver#draig" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_firesword" ship="true" rank="5" index="148">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="p10" amount="1" cost="fixed"/>
<resource name="sword" amount="1" cost="fixed"/>
@ -38,19 +34,16 @@
</spell>
<spell name="create_trollbelt" ship="true" rank="5" index="48">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<!-- gwyrrd spells -->
<spell name="earn_silver#gwyrrd" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_magicherbbag" ship="true" rank="5" index="165">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="p2" amount="1" cost="fixed"/>
@ -58,18 +51,15 @@
<!-- illaun spells -->
<spell name="earn_silver#illaun" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_dreameye" ship="true" rank="5" index="149">
<function name="cast" value="lua_castspell"/>
<resource name="dragonhead" amount="1" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="create_invisibility_sphere" ship="true" rank="5" index="178">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="150" cost="fixed"/>
<resource name="money" amount="30000" cost="fixed"/>
<resource name="permaura" amount="3" cost="fixed"/>
@ -77,12 +67,10 @@
<!-- cerddor spells -->
<spell name="earn_silver#cerddor" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_roqf" ship="true" rank="5" index="63">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -90,25 +78,21 @@
<!-- tybied spells -->
<spell name="earn_silver#tybied" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_antimagic" ship="true" rank="5" index="38">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_rop" ship="true" rank="5" index="1">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="4000" cost="fixed"/>
</spell>
<spell name="create_bagofholding" ship="true" rank="5" index="155">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="5000" cost="fixed"/>
@ -116,7 +100,6 @@
<!-- gray magic -->
<spell name="create_runesword" ship="true" rank="5" index="135">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
@ -124,20 +107,17 @@
</spell>
<spell name="create_chastitybelt" ship="true" rank="5" index="134">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_focus" ship="true" rank="5" index="2">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_ror" ship="true" rank="5" index="3">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="axe">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>

View File

@ -1,9 +1,8 @@
<?xml version="1.0"?>
<resource name="greatbow">
<modifier type="require" race="elf"/>
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.0">

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="greatsword">
<item weight="200" score="30">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="4">
<requirement type="iron" quantity="2"/>
</construction>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="halberd">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="lance">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="2">
<requirement type="log" quantity="2"/>
</construction>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="mallornlance">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5">
<requirement type="mallorn" quantity="2"/>
</construction>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="rustyaxe">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="rustyhalberd">
<item weight="200" score="20">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3">
<requirement type="iron" quantity="1"/>
<requirement type="log" quantity="1"/>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="plate">
<item weight="400" score="150">
<function name="canuse" value="lua_canuse_item"/>
<item weight="400" score="150" deny="goblin">
<construction skill="armorer" minskill="4">
<requirement type="iron" quantity="4"/>
</construction>

View File

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="scale">
<item weight="300" score="150">
<function name="canuse" value="lua_canuse_item"/>
<modifier type="require" race="dwarf"/>
<modifier type="require" race="irongolem"/>
<item weight="300" score="150" allow="dwarf halfling">
<construction skill="armorer" minskill="5">
<modifier function="mod_dwarves_only"/>
<requirement type="iron" quantity="2"/>
</construction>
<armor ac="3" penalty="0.10" projectile="0.05" magres="0.0"/>

View File

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="towershield">
<item weight="200" score="60">
<function name="canuse" value="lua_canuse_item"/>
<modifier type="require" race="dwarf"/>
<modifier type="require" race="irongolem"/>
<item weight="200" score="60" allow="dwarf">
<construction skill="armorer" minskill="4">
<modifier function="mod_dwarves_only"/>
<requirement type="iron" quantity="1"/>
</construction>
<armor ac="0" penalty="-0.15" projectile="0.25" magres="0.0" shield="yes">

View File

@ -3,16 +3,14 @@
<xi:include href="config://default/buildings/castle-2.xml" />
<building name="watch" maxsize="10" capacity="1" fort="yes">
<function name="name" value="fort_name"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="5">
<building name="watch" maxsize="10" capacity="1" fort="yes" taxes="200">
<construction skill="building" minskill="1" maxsize="5" name="scaffolding">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="5">
<construction skill="building" minskill="2" maxsize="5" name="guardhouse">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2">
<construction skill="building" minskill="2" name="guardtower">
<requirement type="log" quantity="1"/>
</construction>
</building>

View File

@ -7,83 +7,72 @@
<resource name="ointment" appearance="vial">
<!-- Wundsalbe -->
<item weight="0" score="60">
<function name="use" value="usehealingpotion"/>
<item weight="0" score="60" use="yes">
<potion level="2"/>
</item>
</resource>
<resource name="p13" appearance="vial">
<!-- Elixier der Macht -->
<item weight="0" score="120">
<function name="use" value="usepotion"/>
<item weight="0" score="120" use="yes">
<potion level="4"/>
</item>
</resource>
<resource name="p3" appearance="vial">
<!-- Schaffenstrunk -->
<item weight="0" score="60">
<function name="use" value="usepotion"/>
<item weight="0" score="60" use ="yes">
<potion level="2"/>
</item>
</resource>
<resource name="p14" appearance="vial">
<!-- Heiltrank -->
<item weight="0" score="120">
<function name="use" value="usepotion"/>
<item weight="0" score="120" use="yes">
<potion level="4"/>
</item>
</resource>
<resource name="p0" appearance="vial">
<!-- Siebenmeilentee -->
<item weight="0" score="30">
<function name="use" value="usepotion"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
</item>
</resource>
<resource name="p2" appearance="vial">
<!-- Wasser des Lebens -->
<item weight="0" score="30">
<function name="use" value="usepotion_delayed"/>
<item weight="0" score="30" use="yes">
<potion level="1"/>
</item>
</resource>
<resource name="peasantblood" appearance="vial">
<!-- Bauernblut -->
<item weight="0" score="60">
<function name="use" value="usebloodpotion"/>
<item weight="0" score="60" use="yes">
<potion level="2"/>
</item>
</resource>
<resource name="p9" appearance="vial">
<!-- Pferdeglück -->
<item weight="0" score="90">
<function name="use" value="usepotion"/>
<item weight="0" score="90" use="yes">
<potion level="3"/>
</item>
</resource>
<resource name="charger">
<item big="yes" weight="5000" score="10" capacity="7000" animal="yes">
<item big="yes" weight="5000" score="20" capacity="7000" animal="yes">
<construction skill="training" minskill="4">
<requirement type="money" quantity="200"/>
<requirement type="iron" quantity="1"/>
<requirement type="horse" quantity="1"/>
</construction>
<function name="give" value="givehorses"/>
</item>
</resource>
<resource name="xmastree">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
<item weight="0" use="yes" />
</resource>
</resources>

View File

@ -71,7 +71,11 @@
<familiar race="ghost"/>
</race>
<race name="halfling" defensemodifier="1" magres="5" maxaura="1.0" regaura="1.0" recruitcost="100" maintenance="10" weight="1000" capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<race name="halfling" defensemodifier="1" magres="5" maxaura="1.0"
regaura="1.0" recruitcost="100" maintenance="10" weight="1000"
capacity="540" speed="1.0" 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"/>
<param name="other_race" value="dwarf"/>
<param name="luxury_trade" value="600"/>
@ -116,7 +120,11 @@
<familiar race="ghost"/>
</race>
<race name="elf" magres="10" maxaura="1.0" regaura="1.1" recruitcost="200" maintenance="10" weight="1000" capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<race name="elf" magres="10" maxaura="1.0" regaura="1.1"
recruitcost="200" maintenance="10" weight="1000" capacity="540"
speed="1.0" 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"/>
<skill name="armorer" modifier="-1"/>
<skill name="bow" modifier="2"/>
@ -156,7 +164,11 @@
<familiar race="rat"/>
</race>
<race name="dwarf" magres="5" maxaura="1.0" regaura="0.9" recruitcost="240" maintenance="10" weight="1000" capacity="540" speed="1.0" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<race name="dwarf" magres="5" maxaura="1.0" regaura="0.9"
recruitcost="240" maintenance="10" weight="1000" capacity="540"
speed="1.0" 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"/>
<skill name="armorer" modifier="2"/>
<skill name="bow" modifier="-1"/>

View File

@ -1,10 +1,9 @@
<?xml version="1.0"?>
<resource name="iron" limited="yes" material="yes">
<item weight="500" score="10">
<construction skill="mining" minskill="1"/>
</item>
<resourcelimit>
<item weight="500" score="10">
<construction skill="mining" minskill="1"/>
</item>
<modifier building="smithy" type="save" value="2"/>
<modifier building="mine" type="skill" value="1"/>
<modifier building="mine" type="material" value="0.5"/>
</resourcelimit>
</resource>

View File

@ -1,10 +1,8 @@
<?xml version="1.0"?>
<resource name="stone" limited="yes" material="yes">
<item weight="6000" score="10" big="yes">
<construction skill="quarrying" minskill="1"/>
</item>
<resourcelimit>
<item weight="6000" score="10" big="yes">
<construction skill="quarrying" minskill="1"/>
</item>
<modifier building="quarry" type="skill" value="1"/>
<modifier building="quarry" type="material" value="0.5"/>
</resourcelimit>
</resource>

View File

@ -10,14 +10,12 @@
<!-- shared spells -->
<spell name="create_roi" ship="true" rank="5" index="130">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_aots" ship="true" rank="5" index="125">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -39,7 +37,6 @@
</spell>
<spell name="earn_silver#illaun" ship="true" variable="true" rank="5" index="159">
<!-- Wahrsagen -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="flee" rank="5" index="20" variable="true" combat="1">
@ -106,7 +103,6 @@
</spell>
<spell name="create_dreameye" ship="true" rank="5" index="149">
<!-- Erschaffe ein Traumauge -->
<function name="cast" value="lua_castspell"/>
<resource name="dragonhead" amount="1" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
@ -119,7 +115,6 @@
</spell>
<spell name="earn_silver#draig" ship="true" variable="true" rank="5" index="159">
<!-- Kleine Flüche -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="fireball" rank="5" index="4" variable="true" combat="2">
@ -189,7 +184,6 @@
</spell>
<spell name="create_firesword" ship="true" rank="5" index="148">
<!-- Erschaffe ein Flammenschwert -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="oil" amount="10" cost="fixed"/>
<resource name="sword" amount="1" cost="fixed"/>
@ -205,7 +199,6 @@
<!-- new cerddor -->
<spell name="earn_silver#cerddor" ship="true" variable="true" rank="5" index="159">
<!-- Gaukeleien -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="song_of_healing" rank="5" index="10" variable="true" combat="3">
@ -269,7 +262,6 @@
</spell>
<spell name="create_roqf" ship="true" rank="5" index="63">
<!-- Miriams flinke Finger -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -304,12 +296,11 @@
<!-- new gwyrrd -->
<spell name="blessedharvest" rank="5" index="25" ship="true" far="true" variable="true">
<!-- Segen der Erde -->
<function name="cast" value="lua_castspell"/>
<function name="cast" value="cast_blessedharvest"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="earn_silver#gwyrrd" ship="true" variable="true" rank="5" index="159">
<!-- Viehheilung -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="stonegolem" rank="4" index="32" variable="true">
@ -394,21 +385,18 @@
<!-- new tybied - spells known to all schools -->
<spell name="create_potion_p2" ship="true" rank="5" variable="true">
<!-- Wasser des Lebens -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="2" cost="linear"/>
<resource name="h4" amount="1" cost="linear"/><!-- Baumringel -->
<resource name="h6" amount="1" cost="linear"/><!-- Gurgelkraut -->
</spell>
<spell name="create_potion_p0" ship="true" rank="5" variable="true">
<!-- Siebenmeilentee -->
<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 -->
</spell>
<spell name="create_potion_p9" ship="true" rank="5" variable="true">
<!-- 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 -->
@ -416,7 +404,6 @@
</spell>
<spell name="create_potion_peasantblood" ship="true" rank="5" variable="true">
<!-- Bauernblut -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="3" cost="linear"/>
<resource name="h14" amount="1" cost="linear"/><!-- Alraune -->
<resource name="h6" amount="1" cost="linear"/><!-- Gurgelkraut -->
@ -426,7 +413,6 @@
<spell name="create_potion_ointment" ship="true" rank="5" variable="true">
<!-- Wundsalbe -->
<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 -->
@ -435,7 +421,6 @@
</spell>
<spell name="create_potion_p3" ship="true" rank="5" variable="true">
<!-- Schaffenstrunk -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="4" cost="linear"/>
<resource name="h12" amount="1" cost="linear"/><!-- Windbeutel -->
<resource name="h6" amount="1" cost="linear"/><!-- Gurgelkraut -->
@ -444,7 +429,6 @@
</spell>
<spell name="create_potion_p14" ship="true" rank="5" variable="true">
<!-- Heiltrank -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="5" cost="linear"/>
<resource name="h0" amount="1" cost="linear"/><!-- Flachwurz -->
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
@ -454,7 +438,6 @@
</spell>
<spell name="create_potion_p13" ship="true" rank="5" variable="true">
<!-- Elixier der Macht -->
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="5" cost="linear"/>
<resource name="h14" amount="1" cost="linear"/><!-- Alraune -->
<resource name="h8" amount="1" cost="linear"/><!-- Blasenmorchel -->
@ -472,39 +455,33 @@
<!-- common spells: randomly given, one per level -->
<spell name="create_trollbelt" ship="true" rank="5" index="48">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_antimagic" ship="true" rank="5" index="38">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_rop" ship="true" rank="5" index="1">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="4000" cost="fixed"/>
</spell>
<spell name="create_bagofholding" ship="true" rank="5" index="155">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="5000" cost="fixed"/>
</spell>
<spell name="create_focus" ship="true" rank="5" index="2">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_ror" ship="true" rank="5" index="3">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
@ -518,7 +495,7 @@
</spell>
<spell name="raindance" rank="5" index="26" ship="true" far="true" variable="true">
<!-- Regentanz -->
<function name="cast" value="lua_castspell"/>
<function name="cast" value="cast_blessedharvest"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="irongolem" rank="4" index="33" variable="true">

View File

@ -38,12 +38,6 @@
<text locale="en">adamantium plates</text>
</string>
<!--Fort-Ausbaustufen -->
<string name="calendar::thirdage">
<text locale="de">des dritten Zeitalters</text>
<text locale="en">the third age</text>
</string>
<string name="packice">
<text locale="de">Packeis</text>
<text locale="en">fast ice</text>
@ -87,6 +81,7 @@
<text locale="en">repeating crossbows</text>
</string>
<!--Fort-Ausbaustufen -->
<string name="scaffolding">
<text locale="de">Gerüst</text>
<text locale="en">scaffolding</text>
@ -103,6 +98,7 @@
<text locale="de">Wache</text>
<text locale="en">watch</text>
</string>
<string name="market">
<text locale="de">Marktplatz</text>
<text locale="en">marketplace</text>
@ -210,7 +206,7 @@
<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>
<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>
<text locale="en">This ancient rite calls upon the forces of life and fertility. For the next few weeks, the peasants' harvest will be extraordinary good.</text>

View File

@ -1,18 +1,18 @@
<?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/rep_crossbow.xml"/>
<xi:include href="config://game/weapons/lance.xml"/>
<xi:include href="config://game/weapons/axe.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"/>

13
res/e3a/weapons/axe.xml Normal file
View File

@ -0,0 +1,13 @@
<?xml version="1.0"?>
<resource name="axe">
<item weight="200" deny="goblin">
<construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="1" defmod="-2">
<damage type="rider" value="2d6+4"/>
<damage type="footman" value="2d6+4"/>
</weapon>
</item>
</resource>

View File

@ -4,10 +4,9 @@
* has lower damage
-->
<resource name="greatbow">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<modifier type="require" race="elf"/>
<item weight="100" allow="elf">
<construction skill="weaponsmithing" minskill="5">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.0">

View File

@ -3,8 +3,7 @@
1. you cannt use this with cavalry
-->
<resource name="halberd">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<item weight="200" deny="goblin">
<construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>

12
res/e3a/weapons/lance.xml Normal file
View File

@ -0,0 +1,12 @@
<?xml version="1.0"?>
<resource name="lance">
<item weight="200" deny="goblin">
<construction skill="weaponsmithing" minskill="2">
<requirement type="log" quantity="2"/>
</construction>
<weapon pierce="true" skill="polearm" offmod="0" defmod="-2">
<damage type="footman" value="1d5"/>
<damage type="rider" value="2d6+5"/>
</weapon>
</item>
</resource>

View File

@ -1,7 +1,6 @@
<?xml version="1.0"?>
<resource name="mallornlance">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<item weight="100" deny="goblin">
<construction skill="weaponsmithing" minskill="5">
<requirement type="mallorn" quantity="2"/>
</construction>

View File

@ -1,9 +1,8 @@
<?xml version="1.0"?>
<resource name="rep_crossbow">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<modifier type="require" race="dwarf"/>
<item weight="100" allow="dwarf halfling">
<construction skill="weaponsmithing" minskill="5">
<modifier function="mod_dwarves_only"/>
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>
</construction>

View File

@ -3,8 +3,7 @@
1. you cannot use this with cavalry
-->
<resource name="rustyhalberd">
<item weight="200" score="20">
<function name="canuse" value="lua_canuse_item"/>
<item weight="200" score="20" deny="goblin">
<construction skill="weaponsmithing" minskill="3">
<requirement type="iron" quantity="1"/>
<requirement type="log" quantity="1"/>

View File

@ -3,16 +3,12 @@
<resource name="aurapotion50">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_aurapotion50"/>
</item>
<item weight="0" use="yes" />
</resource>
<resource name="bagpipeoffear">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_bagpipeoffear"/>
</item>
<item weight="0" use="yes"/>
</resource>
</resources>

View File

@ -17,21 +17,15 @@
</resource>
<resource name="snowman">
<item notlost="yes" weight="1">
<function name="use" value="lua_useitem"/>
</item>
<item notlost="yes" weight="1" use="yes" />
</resource>
<resource name="snowglobe">
<item notlost="yes" weight="1">
<function name="use" value="lua_useitem"/>
</item>
<item notlost="yes" weight="1" use="yes" />
</resource>
<resource name="ring_of_levitation" appearance="ring">
<item notlost="yes" weight="0" cursed="true">
<function name="use" value="lua_useitem"/>
</item>
<item notlost="yes" weight="0" cursed="true" use="yes" />
</resource>
<resource name="birthdaycake">
@ -44,52 +38,38 @@
<!-- ambassador rewards -->
<resource name="seashell">
<item cursed="true" weight="0">
<function name="use" value="lua_useitem"/>
</item>
<item cursed="true" weight="0" use="yes" />
</resource>
<!-- xmas 2005 -->
<resource name="stardust" appearance="vial">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
<item weight="0" use="yes" />
</resource>
<!-- xmas 2006 -->
<resource name="xmastree">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
<item weight="0" use="yes" />
</resource>
<!-- museum items -->
<resource name="questkey1" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" >
<function name="use" value="use_museumkey"/>
</item>
<item notlost="yes" weight="0" use="yes" />
</resource>
<resource name="questkey2" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" >
<function name="use" value="use_museumkey"/>
</item>
<item notlost="yes" weight="0" use="yes" />
</resource>
<resource name="museumexitticket">
<!-- you get your stuff back when leaving the museum -->
<item notlost="yes" weight="0">
<function name="use" value="use_museumexitticket"/>
</item>
<item notlost="yes" weight="0" use="yes" />
</resource>
<resource name="museumticket">
<!-- you get your stuff back when leaving the museum -->
<item weight="0">
<function name="use" value="use_museumticket"/>
</item>
<item weight="0" use="yes" />
</resource>
<!-- gimmicks, etc. -->
@ -98,27 +78,13 @@
<item notlost="yes" cursed="true" weight="0"/>
</resource>
<resource name="ao_daemon">
<!-- summons igjarjuk -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="useigjarjuk"/>
<function name="give" value="giveigjarjuk"/>
</item>
</resource>
<resource name="griphonwing">
<!-- this lets you leave the arena -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="leave_arena"/>
<function name="give" value="giveigjarjuk"/>
</item>
<resource name="aoc" appearance="amulet">
<item weight="100" use="yes" />
</resource>
<resource name="eyeofdragon">
<!-- the arena gate, for one-time entry -->
<item weight="0" score="0">
<function name="use" value="enter_arena"/>
</item>
<item weight="0" score="0"/>
</resource>
<resource name="jadee_ring" appearance="ring">

View File

@ -701,7 +701,7 @@
<attack type="4" damage="2d12"/>
<attack type="4" damage="2d12"/>
</race>
<race name="wyrm" magres="90" maxaura="1.000000" regaura="3.000000" weight="18000" capacity="1000000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" unarmedguard="yes">
<race name="wyrm" magres="90" maxaura="1.000000" regaura="3.000000" weight="18000" capacity="1000000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" dragon="yes" unarmedguard="yes">
<ai splitsize="1" killpeasants="yes" learn="yes"/>
<skill name="magic" modifier="12"/>
<skill name="tactics" modifier="12"/>

View File

@ -10,14 +10,12 @@
<!-- shared spells -->
<spell name="create_roi" ship="true" rank="5" index="130">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_aots" ship="true" rank="5" index="125">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -494,12 +492,10 @@
<!-- draig spells -->
<spell name="earn_silver#draig" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_firesword" ship="true" rank="5" index="148">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="p10" amount="1" cost="fixed"/>
<resource name="sword" amount="1" cost="fixed"/>
@ -507,7 +503,6 @@
</spell>
<spell name="create_trollbelt" ship="true" rank="5" index="48">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
@ -520,12 +515,10 @@
</spell>
<spell name="earn_silver#gwyrrd" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_magicherbbag" ship="true" rank="5" index="165">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="p2" amount="1" cost="fixed"/>
@ -533,18 +526,15 @@
<!-- illaun spells -->
<spell name="earn_silver#illaun" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_dreameye" ship="true" rank="5" index="149">
<function name="cast" value="lua_castspell"/>
<resource name="dragonhead" amount="1" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="create_invisibility_sphere" ship="true" rank="5" index="178">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="150" cost="fixed"/>
<resource name="money" amount="30000" cost="fixed"/>
<resource name="permaura" amount="3" cost="fixed"/>
@ -558,12 +548,10 @@
</spell>
<spell name="earn_silver#cerddor" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_roqf" ship="true" rank="5" index="63">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
@ -583,25 +571,21 @@
<!-- tybied spells -->
<spell name="earn_silver#tybied" ship="true" variable="true" rank="5" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_antimagic" ship="true" rank="5" index="38">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_rop" ship="true" rank="5" index="1">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="4000" cost="fixed"/>
</spell>
<spell name="create_bagofholding" ship="true" rank="5" index="155">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="5000" cost="fixed"/>
@ -609,7 +593,6 @@
<!-- gray magic -->
<spell name="create_runesword" ship="true" rank="5" index="135">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
@ -617,20 +600,17 @@
</spell>
<spell name="create_chastitybelt" ship="true" rank="5" index="134">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_focus" ship="true" rank="5" index="2">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_ror" ship="true" rank="5" index="3">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>

View File

@ -116,18 +116,6 @@
<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="griphonwing">
<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
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
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>
</string>
@ -374,29 +362,6 @@
</string>
<!-- art rewards end -->
<!-- igjarjuk queste begin -->
<string name="ao_daemon">
<text locale="de">Auge des Dämon</text>
<text locale="en">eye of the demon</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="en">eyes of the demon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="griphonwing">
<text locale="de">Schwinge des Greifen</text>
<text locale="en">wing of the gryphon</text>
<text locale="fr">aile du griffon</text>
</string>
<string name="griphonwing_p">
<text locale="de">Schwingen des Greifen</text>
<text locale="en">wings of the gryphon</text>
<text locale="fr">ailes du griffon</text>
</string>
<!-- igjarjuk queste end -->
<string name="rm_adamantium">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
@ -427,5 +392,14 @@
<text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text>
</string>
<string name="aoc">
<text locale="de">Katzenamulett</text>
<text locale="en">amulet of the kitten</text>
<text locale="fr">amulette du chaton</text>
</string>
<string name="aoc_p">
<text locale="en">amulets of the kitten</text>
<text locale="de">Katzenamulette</text>
<text locale="fr">amulettes du chaton</text>
</string>
</strings>

View File

@ -1,14 +0,0 @@
<?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"/>
<xi:include href="races/demon.xml"/>
<xi:include href="races/dwarf.xml"/>
<xi:include href="races/elf.xml"/>
<xi:include href="races/goblin.xml"/>
<xi:include href="races/halfling.xml"/>
<xi:include href="races/human.xml"/>
<xi:include href="races/insect.xml"/>
<xi:include href="races/orc.xml"/>
<xi:include href="races/troll.xml"/>
</races>

View File

@ -1,24 +0,0 @@
<?xml version="1.0" ?>
<race name="goblin" magres="-5" 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" healing="2.0">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<param name="hunger.damage" value="1d8+7"/>
<param name="other_race" value="demon"/>
<param name="recruit_multi" value="0.5"/>
<skill name="building" modifier="1"/>
<skill name="cartmaking" modifier="-1"/>
<skill name="catapult" modifier="1"/>
<skill name="magic" modifier="-99"/>
<skill name="mining" modifier="1"/>
<skill name="roadwork" modifier="-2"/>
<skill name="sailing" modifier="-2"/>
<skill name="shipcraft" modifier="-2"/>
<skill name="tactics" modifier="-2"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
<familiar race="rat" default="yes"/>
<familiar race="imp"/>
</race>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" ?>
<race name="goblin" magres="-5" maxaura="1.0" regaura="1.0"
<race name="goblin" magres="-5" maxaura="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"

View File

@ -1,6 +1,6 @@
<?xml version="1.0" ?>
<race name="goblin" magres="-5" maxaura="1.000000"
regaura="1.000000" recruitcost="40" maintenance="10" weight="600"
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"

View File

@ -35,6 +35,7 @@ cd $ROOT/$BUILD
BRANCH=$(git status -s -b | head -1 | cut -d\ -f 2 | sed 's/\..*//')
if [ "$BRANCH" = "master" ] ; then
VERSION=$(git describe --match 'v*.*.*' --tags | sed 's/^v//')
echo "$BRANCH $VERSION"
cmake -DERESSEA_VERSION="$VERSION" ..
else
REV=$(git rev-parse --short HEAD)

View File

@ -16,8 +16,3 @@ BIN_DIR="Debug"
cd $ROOT/$BIN_DIR
make install
# install crontab, but only on the eressea server:
# in fact, never do this, because it overwrites hand-edits
#WHOAMI=`whoami`@`hostname`
#[ "eressea@gruenbaer" = "$WHOAMI" ] && crontab $ROOT/process/cron/crontab

View File

@ -15,6 +15,7 @@ cd $ROOT
$ROOT/$BUILD/eressea/eressea -v1 scripts/run-tests.lua
$ROOT/$BUILD/eressea/eressea -v1 scripts/run-tests-e2.lua
$ROOT/$BUILD/eressea/eressea -v1 scripts/run-tests-e3.lua
$ROOT/$BUILD/eressea/eressea --version
rm -rf data reports orders.txt score score.alliances datum turn
cd $OLDWPD

View File

@ -56,7 +56,7 @@ done
[ -z $INIFILE ] && INIFILE=$TOOLS/inifile
[ -e $INIFILE ] || INIFILE=$TOOLS/iniparser/inifile
[ -e $SOURCE/conf/$rules/config.xml ] || abort "cannot find conf/$rules/config.xml"
[ -e $SOURCE/conf/$rules/config.json ] || abort "cannot find conf/$rules/config.json"
cd $ERESSEA
if [ -d $dir ] ; then

View File

@ -61,7 +61,7 @@ end
local function seed(r, email, race, lang)
assert(r)
local f = faction.create(email, race, lang)
local f = faction.create(race, email, lang)
assert(f)
local u = unit.create(f, r)
assert(u)

View File

@ -1,4 +1,3 @@
require 'eressea.e3.rules'
require 'eressea.spells'
eressea.log.debug("rules for game E3")

View File

@ -1,73 +0,0 @@
-- when appending to this, make sure the item has a canuse-function!
local goblin_denied = " plate lance mallornlance greatbow axe greatsword halberd rustyaxe rustyhalberd towershield scale "
function item_canuse(u, iname)
local race = u.race
if race=="goblin" then
if string.find(goblin_denied, " " .. iname .. " ") then
return false
end
end
if iname=="rep_crossbow" then
-- only dwarves and halflings allowed to use repeating crossbow
return race=="dwarf" or race=="halfling"
end
if iname=="scale" then
-- only dwarves and halflings can use scale
return race=="dwarf" or race=="halfling"
end
if iname=="towershield" then
-- only dwarves allowed to use towershield
return race=="dwarf"
end
if iname=="greatbow" then
-- only elves use greatbow
return race=="elf"
end
return true
end
function building_taxes(b, blevel)
btype = b.type
if btype=="castle" then
return blevel * 0.01
elseif btype=="watch" then
return blevel * 0.005
end
return 0.0
end
-- the "raindance" spell
function raindance(r, mage, level, force)
if (create_curse(mage, r, "blessedharvest", force, 1+force*2, 100 * force)) then
-- slightly crooked way of reporting an action to everyone in the region
local msg = message.create("raindance_effect")
msg:set_unit("mage", mage)
if (msg:report_action(r, mage, 3)) then
local msg2 = message.create("raindance_effect")
msg2:set_unit("mage", nil)
msg2:report_action(r, mage, 4)
end
end
return level
end
-- the "blessed harvest" spell
function blessedharvest(r, mage, level, force)
if create_curse(mage, r, "blessedharvest", force, 1+force*2, 50 * force) then
-- slightly crooked way of reporting an action to everyone in the region
local msg = message.create("harvest_effect")
msg:set_unit("mage", mage)
if (msg:report_action(r, mage, 3)) then
local msg2 = message.create("harvest_effect")
msg2:set_unit("mage", nil)
msg2:report_action(r, mage, 4)
end
for idx, rn in ipairs(r.adj) do
-- nur landregionen haben moral>=0
if r.morale>=0 then
create_curse(mage, r, "blessedharvest", force, force*2, 50 * force)
end
end
end
return level
end

View File

@ -1,11 +1,11 @@
local function is_winter(turn)
local season = get_season(turn)
return season == "calendar::winter"
return season == "winter"
end
local function is_spring(turn)
local season = get_season(turn)
return season == "calendar::spring"
return season == "spring"
end
local function freeze(r, chance)

View File

@ -38,6 +38,7 @@ function ponnuki.init()
u.name = "Ponnuki"
u.info = "Go, Ponnuki, Go!"
u.race_name = "Ritter von Go"
u.status = 5 -- FLIEHE
print(u:show())
end
else

View File

@ -1,16 +1,5 @@
-- global functions used in items.xml
if not item_canuse then
-- define a default, everyone can use everything
function item_canuse(u, iname)
return true
end
end
function peasant_getresource(u)
return u.region:get_resource("peasant")
end
function peasant_changeresource(u, delta)
local p = u.region:get_resource("peasant")
p = p + delta
@ -21,10 +10,6 @@ function peasant_changeresource(u, delta)
return p
end
function hp_getresource(u)
return u.hp
end
function hp_changeresource(u, delta)
local hp = u.hp + delta

View File

@ -25,6 +25,7 @@ end
function use_stardust(u, amount)
local p = u.region:get_resource("peasant")
assert(p>0)
p = math.ceil(1.5 * p)
u.region:set_resource("peasant", p)
local msg = usepotion_message(u, "stardust")
@ -86,7 +87,7 @@ local self = {}
function self.update()
local turn = get_turn()
local season = get_season(turn)
if season == "calendar::winter" then
if season == "winter" then
eressea.log.debug("it is " .. season .. ", the christmas trees do their magic")
local msg = message.create("xmastree_effect")
for r in regions() do
@ -102,7 +103,7 @@ function self.update()
end
else
local prevseason = get_season(turn-1)
if prevseason == "calendar::winter" then
if prevseason == "winter" then
-- we celebrate knut and kick out the trees.
for r in regions() do
if r:get_key("xm06") then

View File

@ -17,6 +17,7 @@ require 'eressea.path'
require 'tests.e2'
require 'lunit'
rng.inject(0)
rules = require('eressea.' .. config.rules)
result = lunit.main()
return result.errors + result.failed

View File

@ -17,6 +17,7 @@ require 'eressea.xmlconf'
require 'tests.e3'
require 'lunit'
rng.inject(0)
eressea.settings.set("rules.alliances", "0")
rules = require('eressea.' .. config.rules)
result = lunit.main()

View File

@ -6,7 +6,7 @@ local function _test_create_ship(r)
end
local function create_faction(race)
return faction.create(race .. '@eressea.de', race, "de")
return faction.create(race, race .. '@eressea.de', "de")
end
local function one_unit(r, f)
@ -218,6 +218,9 @@ function test_gmtool()
local r1 = region.create(1, 0, "plain")
local r2 = region.create(1, 1, "plain")
local r3 = region.create(1, 2, "plain")
if not gmtool then
return
end
gmtool.open()
gmtool.select(r1, true)
gmtool.select_at(0, 1, true)
@ -1033,6 +1036,37 @@ function test_recruit()
end
end
function test_give_horses()
local r = region.create(0, 0, "plain")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
r:set_resource("horse", 0)
u:add_item("horse", 21)
u:add_item("dolphin", 10)
u:add_order("GIB 0 7 PFERD")
u:add_order("GIB 0 5 DELPHIN")
process_orders()
assert_equal(7, r:get_resource("horse"))
assert_equal(5, u:get_item("dolphin"))
assert_equal(14, u:get_item("horse"))
end
function test_give_silver()
local r = region.create(0, 0, "plain")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
r:set_resource("peasant", 0)
r:set_resource("money", 11)
u:clear_orders()
u:add_item("money", 20)
u:add_order("GIB 0 10 SILBER")
process_orders()
assert_equal(21, r:get_resource("money"))
assert_equal(10, u:get_item("money"))
end
function test_give_horses()
local r = region.create(0, 0, "plain")
local f = create_faction('human')

View File

@ -11,7 +11,7 @@ function test_read_race()
eressea.free_game()
assert_not_nil(eressea.config)
eressea.config.parse('{ "races": { "orc" : {}}}')
f = faction.create("orc@example.com", "orc", "en")
f = faction.create("orc", "orc@example.com", "en")
assert_not_nil(f)
end

View File

@ -11,7 +11,7 @@ function setup()
end
local function create_faction(race)
return faction.create(race .. '@eressea.de', race, "de")
return faction.create(race, race .. '@eressea.de', "de")
end
local function _test_create_adamantium()

View File

@ -0,0 +1,53 @@
require "lunit"
module("tests.e2.buildings", package.seeall, lunit.testcase )
function setup()
eressea.game.reset()
eressea.settings.set("rules.food.flags", "4")
end
function teardown()
eressea.settings.set("rules.food.flags", "0")
end
function test_castle_names()
local r = region.create(0, 0, "plain")
local b = building.create(r, "castle")
assert_equal("site", b:get_typename(1))
assert_equal("tradepost", b:get_typename(2))
assert_equal("tradepost", b:get_typename(9))
assert_equal("fortification", b:get_typename(10))
assert_equal("fortification", b:get_typename(49))
assert_equal("tower", b:get_typename(50))
assert_equal("tower", b:get_typename(249))
assert_equal("castle", b:get_typename(250))
assert_equal("castle", b:get_typename(1249))
assert_equal("fortress", b:get_typename(1250))
assert_equal("fortress", b:get_typename(6249))
assert_equal("citadel", b:get_typename(6250))
end
function test_build_castle_stages()
local r = region.create(0,0, "plain")
local f = faction.create("human")
local u = unit.create(f, r, 1000)
local b = building.create(r, "castle")
u:add_item("stone", 1000)
u:set_skill("building", 1)
u:clear_orders()
u:add_order("MACHE BURG " .. itoa36(b.id))
process_orders()
assert_equal(10, b.size)
u:set_skill("building", 3)
u:clear_orders()
u:add_order("MACHE BURG " .. itoa36(b.id))
process_orders()
assert_equal(250, b.size)
end

View File

@ -10,7 +10,7 @@ end
function disabled_test_dont_move_after_destroy()
local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local f = faction.create("test@example.com", "human", "de")
local f = faction.create("human", "test@example.com", "de")
local u = unit.create(f, r1, 1)
u.building = building.create(u.region, "castle")
u:clear_orders()
@ -26,8 +26,8 @@ end
function test_dont_destroy_after_attack()
local r1 = region.create(0, 0, "plain")
local u = unit.create(faction.create("one@example.com", "human", "de"), r1, 10)
local u2 = unit.create(faction.create("two@example.com", "human", "de"), r1, 1)
local u = unit.create(faction.create("human", "one@example.com", "de"), r1, 10)
local u2 = unit.create(faction.create("human", "two@example.com", "de"), r1, 1)
u.building = building.create(u.region, "castle")
u:clear_orders()
u:add_order("ATTACKIERE " .. itoa36(u2.id))
@ -38,7 +38,7 @@ end
function test_destroy_is_long()
local r1 = region.create(0, 0, "plain")
local u = unit.create(faction.create("one@example.com", "human", "de"), r1, 10)
local u = unit.create(faction.create("human", "one@example.com", "de"), r1, 10)
u.building = building.create(u.region, "castle")
u:clear_orders()
u:add_order("LERNE Unterhaltung")

View File

@ -11,14 +11,14 @@ function setup()
end
function test_calendar()
assert_equal(get_season(1011), "calendar::winter")
assert_equal(get_season(1012), "calendar::spring")
assert_equal("winter", get_season(1011))
assert_equal("spring", get_season(1012))
end
function test_herbalism()
-- OBS: herbalism is currently an E2-only skill
local r = region.create(0, 0, "plain")
local f = faction.create("herbalism@eressea.de", "human", "de")
local f = faction.create("human", "herbalism@eressea.de", "de")
local u = unit.create(f, r, 1)
eressea.settings.set("rules.grow.formula", 0) -- plants do not grow
@ -44,7 +44,7 @@ function test_dwarf_bonus()
r:set_resource("iron", 100)
local level = r:get_resourcelevel("iron")
assert_equal(1, level)
local u = unit.create(faction.create('test@example.com', "dwarf"), r)
local u = unit.create(faction.create("dwarf"), r)
assert_equal("dwarf", u.faction.race)
assert_equal("dwarf", u.race)
u.faction.name = "Zwerge"
@ -65,7 +65,7 @@ end
function test_build_harbour()
-- try to reproduce mantis bug 2221
local r = region.create(0, 0, "plain")
local f = faction.create("harbour@eressea.de", "human", "de")
local f = faction.create("human", "harbour@eressea.de", "de")
local u = unit.create(f, r)
size = 30
u.number = 20
@ -93,8 +93,8 @@ local function one_unit(r, f)
end
local function two_factions()
local f1 = faction.create("one@eressea.de", "human", "de")
local f2 = faction.create("two@eressea.de", "human", "de")
local f1 = faction.create("human", "one@eressea.de", "de")
local f2 = faction.create("human", "two@eressea.de", "de")
return f1, f2
end
@ -105,7 +105,7 @@ 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")
local f = faction.create("human", "noreply@eressea.de", "de")
f.age = 20
local u = unit.create(f, r)
u:clear_orders()
@ -124,7 +124,7 @@ 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")
local f = faction.create("human", "noreply@eressea.de", "de")
f.age = 20
local u = unit.create(f, r, 10)
local u2 = unit.create(f, r)
@ -141,7 +141,7 @@ end
function test_rename()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r)
u:add_item("aoh", 1)
assert_equal(u:get_item("ao_healing"), 1)
@ -149,7 +149,7 @@ end
function test_unit_limit_is_1500()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
for i = 1,1500 do
unit.create(f, r, 1)
end
@ -165,7 +165,7 @@ 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("capacity@eressea.de", "human", "de")
local f = faction.create("human", "capacity@eressea.de", "de")
-- u1 is at the limit and moves
local s1 = ship.create(r, "boat")
@ -202,7 +202,7 @@ end
function test_levitate()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 2)
local s = ship.create(r, "boat")
u.ship = s
@ -228,15 +228,15 @@ 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")
local f = faction.create("human", "noreply@eressea.de", "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 f1 = faction.create("human", "noreply@eressea.de", "de")
local f2 = faction.create("human", "noreply@eressea.de", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
@ -254,29 +254,10 @@ function test_can_give_person()
end
function test_no_uruk()
local f1 = faction.create("noreply@eressea.de", "uruk", "de")
local f1 = faction.create("uruk")
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("snowman", u2.race)
assert_equal(1000, u2.hp)
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")
@ -368,7 +349,7 @@ end
function test_stonegolems()
local r0 = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "stonegolem", "de")
local f1 = faction.create("stonegolem")
local u1 = unit.create(f1, r0, 1)
local u2 = unit.create(f1, r0, 2)
local c1 = building.create(r0, "castle")
@ -397,7 +378,7 @@ end
function test_birthdaycake()
r = region.create(0,0, "plain")
f = faction.create("cake@eressea.de", "human", "de")
f = faction.create("human")
u = unit.create(f, r, 1)
u:add_item("birthdaycake", 1)
u:clear_orders()
@ -408,7 +389,7 @@ end
function test_demonstealth()
local desc, r, f, u
r = region.create(0, 0, "plain")
f = faction.create("demon@eressea.de", "demon", "de")
f = faction.create("demon")
u = unit.create(f, r, 1)
u:clear_orders()
@ -423,3 +404,7 @@ function test_demonstealth()
desc = u:show()
assert_equal(nil, string.find(desc, "Drache"))
end
function test_calendar_season_2328()
assert_equal("fall", get_season(1026))
end

View File

@ -11,7 +11,7 @@ end
function test_guard_unarmed()
local r1 = region.create(0, 0, "plain")
local f1 = faction.create("hodor@eressea.de", "human", "de")
local f1 = faction.create("human", "hodor@eressea.de", "de")
local u1 = unit.create(f1, r1, 1)
assert_equal(false, u1.guard)
u1:clear_orders()
@ -22,7 +22,7 @@ end
function test_guard_armed()
local r1 = region.create(0, 0, "plain")
local f1 = faction.create("hodor@eressea.de", "human", "de")
local f1 = faction.create("human", "hodor@eressea.de", "de")
local u1 = unit.create(f1, r1, 1)
assert_equal(false, u1.guard)
u1:add_item("sword", 1)
@ -36,10 +36,10 @@ end
function test_guard_allows_move_after_combat() -- bug 1493
local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local f1 = faction.create("bernd@eressea.de", "human", "de")
local f1 = faction.create("human", "bernd@eressea.de", "de")
local u1 = unit.create(f1, r1, 10)
local uid1 = u1.id
local f2 = faction.create("horst@eressea.de", "human", "de")
local f2 = faction.create("human", "horst@eressea.de", "de")
local u2 = unit.create(f2, r1, 1)
u1:add_order("BEWACHE")
u1:add_item("sword", 10)
@ -59,10 +59,10 @@ end
function test_no_guard_no_move_after_combat() -- bug 1493
local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local f1 = faction.create("bernd@eressea.de", "human", "de")
local f1 = faction.create("human", "bernd@eressea.de", "de")
local u1 = unit.create(f1, r1, 10)
local uid1 = u1.id
local f2 = faction.create("horst@eressea.de", "human", "de")
local f2 = faction.create("human", "horst@eressea.de", "de")
local u2 = unit.create(f2, r1, 1)
u1:add_order("BEWACHE")
u1:add_item("sword", 10)

View File

@ -1,3 +1,6 @@
require 'tests.e2.spells'
require 'tests.e2.buildings'
require 'tests.e2.production'
require 'tests.e2.adamantium'
require 'tests.e2.undead'
require 'tests.e2.shiplanding'
@ -5,8 +8,9 @@ require 'tests.e2.e2features'
require 'tests.e2.movement'
require 'tests.e2.destroy'
require 'tests.e2.guard'
require 'tests.e2.spells'
require 'tests.e2.stealth'
require 'tests.e2.items'
require 'tests.items'
require 'tests.economy'
require 'tests.orders'
require 'tests.common'
@ -15,3 +19,5 @@ require 'tests.storage'
require 'tests.magicbag'
require 'tests.process'
require 'tests.xmas'
require 'tests.production'
require 'tests.spells'

View File

@ -11,9 +11,41 @@ function setup()
eressea.settings.set("magic.regeneration.enable", "0")
end
function test_nestwarmth_insect()
local r = region.create(0, 0, "plain")
local f = faction.create("insect", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
local flags = u.flags
u:add_item("nestwarmth", 2)
u:clear_orders()
u:add_order("BENUTZEN 1 Nestwaerme")
turn_begin()
turn_process()
assert_equal(flags+64, u.flags) -- UFL_WARMTH
assert_equal(1, u:get_item("nestwarmth"))
assert_equal(1, f:count_msg_type('usepotion'))
turn_end()
end
function test_nestwarmth_other()
local r = region.create(0, 0, "plain")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
local flags = u.flags
u:add_item("nestwarmth", 2)
u:clear_orders()
u:add_order("BENUTZEN 1 Nestwaerme")
turn_begin()
turn_process()
assert_equal(flags, u.flags) -- nothing happens
assert_equal(2, u:get_item("nestwarmth"))
assert_equal(1, f:count_msg_type('error163'))
turn_end()
end
function test_meow()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
u:add_item("aoc", 1)
u:clear_orders()
@ -27,7 +59,7 @@ end
function test_aurapotion50()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
u:add_item("aurapotion50", 1)
u:set_skill('magic', 10);
@ -45,33 +77,45 @@ end
function test_bagpipe()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
turn_begin()
u:add_item("bagpipeoffear", 1)
u:clear_orders()
u:add_order("BENUTZEN 1 Dudelsack")
process_orders()
assert_equal(nil, r:get_curse('depression'))
turn_process()
assert_equal(0, r:get_curse('depression'))
assert_equal(1, u:get_item("bagpipeoffear"))
assert_equal(1, f:count_msg_type('bagpipeoffear_faction'))
assert_equal(1, r:count_msg_type('bagpipeoffear_region'))
turn_end()
-- duration is variable, but at least 4
assert_equal(0, r:get_curse('depression'))
end
function test_speedsail()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
turn_begin()
u.ship = ship.create(r, "boat")
u:add_item("speedsail", 2)
u:clear_orders()
u:add_order("BENUTZEN 1 Sonnensegel")
process_orders()
assert_equal(nil, u.ship:get_curse('shipspeed'))
turn_process()
assert_equal(1, u.ship:get_curse('shipspeed'))
assert_equal(1, u:get_item("speedsail"))
assert_equal(1, f:count_msg_type('use_speedsail'))
turn_end()
assert_equal(1, u.ship:get_curse('shipspeed')) -- effect stays forever
end
function test_foolpotion()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
turn_begin()
u:add_item("p7", 1)
@ -97,7 +141,7 @@ end
function test_snowman()
local r = region.create(0, 0, "glacier")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u = unit.create(f, r, 1)
u:add_item("snowman", 1)
u:clear_orders()

View File

@ -13,8 +13,8 @@ end
local r = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local r3 = region.create(-1, 0, "ocean")
local f = faction.create("pirate@eressea.de", "human", "de")
local f2 = faction.create("elf@eressea.de", "human", "de")
local f = faction.create("human", "pirate@eressea.de", "de")
local f2 = faction.create("human", "elf@eressea.de", "de")
local u1 = unit.create(f, r2, 1)
local u2 = unit.create(f2, r3, 1)
@ -39,7 +39,7 @@ end
function test_dolphin_on_land()
local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u1 = unit.create(f, r1, 1)
u1.race = "dolphin"
u1:clear_orders()
@ -51,7 +51,7 @@ end
function test_dolphin_to_land()
local r1 = region.create(0, 0, "ocean")
local r2 = region.create(1, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u1 = unit.create(f, r1, 1)
u1.race = "dolphin"
u1:clear_orders()
@ -63,7 +63,7 @@ end
function test_dolphin_in_ocean()
local r1 = region.create(0, 0, "ocean")
local r2 = region.create(1, 0, "ocean")
local f = faction.create("noreply@eressea.de", "human", "de")
local f = faction.create("human", "noreply@eressea.de", "de")
local u1 = unit.create(f, r1, 1)
u1.race = "dolphin"
u1:clear_orders()
@ -75,7 +75,7 @@ end
function test_follow()
local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 0, "plain")
local f = faction.create("test@example.com", "human", "de")
local f = faction.create("human", "test@example.com", "de")
local u1 = unit.create(f, r1, 1)
local u2 = unit.create(f, r1, 1)
u1:clear_orders()
@ -93,7 +93,7 @@ function test_follow_ship()
local r1 = region.create(0, 0, "plain")
region.create(1, 0, "ocean")
region.create(2, 0, "ocean")
local f = faction.create("test@example.com", "human", "de")
local f = faction.create("human", "test@example.com", "de")
local u1 = unit.create(f, r1, 1)
local u2 = unit.create(f, r1, 1)
u1:add_item("money", 100)

View File

@ -0,0 +1,78 @@
require "lunit"
module("tests.e2.production", package.seeall, lunit.testcase )
function setup()
eressea.game.reset()
eressea.settings.set("rules.food.flags", "4") -- food is free
eressea.settings.set("NewbieImmunity", "0")
end
local function create_faction(race)
return faction.create(race, race .. '@example.com', "de")
end
function test_greatbow_needs_elf()
-- only elves can build a greatbow
local r = region.create(0, 0, 'mountain')
local f = create_faction('human')
local u = unit.create(f, r, 1)
turn_begin()
u:set_skill('weaponsmithing', 5)
u:add_item('mallorn', 2)
u:add_order("MACHE Elfenbogen")
turn_process() -- humans cannot do it
assert_equal(1, f:count_msg_type("error117"))
assert_equal(0, u:get_item('greatbow'))
assert_equal(2, u:get_item('mallorn'))
u.race = 'elf'
turn_process() -- but elves can
assert_equal(1, u:get_item('greatbow'))
assert_equal(0, u:get_item('mallorn'))
end
function test_troll_quarrying_bonus()
-- Von Trollen abgebaute Steine werden nur zu 75% vom "Regionsvorrat" abgezogen.
-- Dieser Effekt ist kumulativ zu einem Steinbruch.
local r = region.create(0, 0, 'mountain')
local f = create_faction('human')
local u = unit.create(f, r, 1)
turn_begin()
r:set_resource("stone", 100)
u:set_skill('quarrying', 4)
u:add_order("MACHE Steine")
turn_process() -- humans get no bonus
assert_equal(4, u:get_item('stone'))
assert_equal(96, r:get_resource('stone'))
u.race = 'troll'
u:set_skill('quarrying', 2)
turn_process() -- trolls have +2 to quarrying, and save 25%
assert_equal(8, u:get_item('stone'))
assert_equal(93, r:get_resource('stone'))
end
function test_dwarf_mining_bonus()
-- Von Zwergen abgebautes Eisen wird nur zu 60% vom "Regionsvorrat" abgezogen.
-- Dieser Effekt ist kumulativ zu einem Bergwerk (siehe hier und hier).
local r = region.create(0, 0, 'mountain')
local f = create_faction('human')
local u = unit.create(f, r, 1)
turn_begin()
r:set_resource('iron', 100)
u:set_skill('mining', 10)
u:add_order('MACHE Eisen')
turn_process() -- humans get no bonus
assert_equal(10, u:get_item('iron'))
assert_equal(90, r:get_resource('iron'))
u.race = 'dwarf'
u:set_skill('mining', 8)
turn_process() -- dwarves have +2 to mining, and save 40%
assert_equal(20, u:get_item('iron'))
assert_equal(84, r:get_resource('iron'))
end

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