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": [ "include": [
"keywords.json", "keywords.json",
"prefixes.json", "calendar.json",
"prefixes.json",
"e2/terrains.json" "e2/terrains.json"
], ],
"disabled": [ "disabled": [
"jsreport" "jsreport"
], ],
@ -21,13 +22,12 @@
"GiveRestriction": 3, "GiveRestriction": 3,
"hunger.long": true, "hunger.long": true,
"init_spells": 0, "init_spells": 0,
"world.era": 2, "game.era": 2,
"seed.population.min": 8, "game.start": 184,
"seed.population.max": 8,
"rules.reserve.twophase": true, "rules.reserve.twophase": true,
"rules.give.max_men": -1, "rules.give.max_men": -1,
"rules.check_overload": false, "rules.check_overload": false,
"rules.limit.faction": 2500, "rules.limit.faction": 3000,
"rules.maxskills.magic": 5, "rules.maxskills.magic": 5,
"rules.guard.base_stop_prob": 0.30, "rules.guard.base_stop_prob": 0.30,
"rules.guard.skill_stop_prob": 0.05, "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/familiars.xml"/>
<xi:include href="config://game/artrewards.xml"/> <xi:include href="config://game/artrewards.xml"/>
<xi:include href="config://game/buildings.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/equipment.xml"/>
<xi:include href="config://game/items.xml"/> <xi:include href="config://game/items.xml"/>
<xi:include href="config://game/spells.xml"/> <xi:include href="config://game/spells.xml"/>

View file

@ -1,6 +1,7 @@
{ {
"include": [ "include": [
"keywords.json", "keywords.json",
"calendar.json",
"prefixes.json", "prefixes.json",
"e3/terrains.json" "e3/terrains.json"
], ],
@ -51,11 +52,11 @@
"recruit.allow_merge": true, "recruit.allow_merge": true,
"study.expensivemigrants": true, "study.expensivemigrants": true,
"study.speedup": 2, "study.speedup": 2,
"world.era": 3, "game.era": 3,
"seed.population.min": 8, "game.start": 1,
"seed.population.max": 8,
"rules.reserve.twophase": true, "rules.reserve.twophase": true,
"rules.owners.force_leave": false, "rules.owners.force_leave": false,
"rules.wage.function": 2,
"rules.monsters.attack_chance": 0.1, "rules.monsters.attack_chance": 0.1,
"rules.transfermen": false, "rules.transfermen": false,
"stealth.faction.other": false, "stealth.faction.other": false,
@ -87,7 +88,7 @@
"rules.economy.herbrot": 0, "rules.economy.herbrot": 0,
"rules.region_owner_pay_building": "market harbour lighthouse", "rules.region_owner_pay_building": "market harbour lighthouse",
"rules.dwarf_castles": true, "rules.dwarf_castles": true,
"rules.limit.faction": 250, "rules.limit.faction": 500,
"rules.grow.formula": 1, "rules.grow.formula": 1,
"rules.tactics.formula": 1, "rules.tactics.formula": 1,
"rules.help.mask": "fight guard money give", "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/ships.xml"/>
<xi:include href="config://game/shipnames.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/items.xml" />
<xi:include href="config://game/races.xml"/> <xi:include href="config://game/races.xml"/>
<xi:include href="config://game/buildings.xml"/> <xi:include href="config://game/buildings.xml"/>
@ -21,14 +20,9 @@
<xi:include href="config://game/armor.xml" /> <xi:include href="config://game/armor.xml" />
<xi:include href="config://game/resources.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-undead.xml"/>
<xi:include href="config://default/names-skeletons.xml"/> <xi:include href="config://default/names-skeletons.xml"/>
<xi:include href="config://default/names-zombies.xml"/> <xi:include href="config://default/names-zombies.xml"/>
<xi:include href="config://default/names-ghouls.xml"/> <xi:include href="config://default/names-ghouls.xml"/>
<xi:include href="config://default/names-dragons.xml"/> <xi:include href="config://default/names-dragons.xml"/>
<rules>
<function name="wage" value="minimum_wage"/>
</rules>
</eressea> </eressea>

View file

@ -2,11 +2,9 @@
email = eressea-server@kn-bremen.de email = eressea-server@kn-bremen.de
sender = Eressea Server sender = Eressea Server
name = Eressea name = Eressea
base = .
report = reports report = reports
verbose = 0 verbose = 0
lomem = 0 lomem = 0
debug = 0
memcheck = 0 memcheck = 0
locales = de,en 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 # this here script to make a non-blocking syntax check and reject or
# accept the order file. # accept the order file.
if [ "yes" != "$CONFIRM" ] ; then
exit
fi
for GAME in $* for GAME in $*
do do
if [ "$GAME" == "eressea" ]; then GAME=2 ; fi if [ "$GAME" == "eressea" ]; then GAME=2 ; fi

View file

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

View file

@ -1,7 +1,11 @@
#!/bin/bash #!/bin/bash
GAME=$1 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) TURN=$(cat $ERESSEA/game-$GAME/turn)
if [ ! -e $ERESSEA/game-$GAME/data/$TURN.dat ]; then if [ ! -e $ERESSEA/game-$GAME/data/$TURN.dat ]; then
echo "data file $TURN is missing, cannot run turn for game $GAME" echo "data file $TURN is missing, cannot run turn for game $GAME"
@ -14,6 +18,18 @@ fi
mkdir $REPORTS mkdir $REPORTS
cd $ERESSEA/game-$GAME 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 if [ -d test ]; then
touch test/execute.lock touch test/execute.lock
fi 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 GAME=$1
TURN=$2 TURN=$2
@ -12,3 +14,4 @@ echo "running turn $TURN, game $GAME"
$ERESSEA/server/bin/eressea -v3 -t $TURN run-turn.lua $ERESSEA/server/bin/eressea -v3 -t $TURN run-turn.lua
mkdir -p log mkdir -p log
ln -f eressea.log log/eressea.log.$TURN 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"> <item weight="200" score="200">
<construction skill="mining" minskill="8"/> <construction skill="mining" minskill="8"/>
</item> </item>
<resourcelimit>
<modifier building="mine" type="skill" value="1"/> <modifier building="mine" type="skill" value="1"/>
<modifier type="require" building="mine"/> <modifier type="require" building="mine"/>
</resourcelimit>
</resource> </resource>
<resource name="adamantiumaxe"> <resource name="adamantiumaxe">

View file

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

View file

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

View file

@ -1,7 +1,6 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<resource name="plate"> <resource name="plate">
<item weight="400" score="150"> <item weight="400" score="150">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="armorer" minskill="4"> <construction skill="armorer" minskill="4">
<requirement type="iron" quantity="5"/> <requirement type="iron" quantity="5"/>
</construction> </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>
<building name="smithy" capacity="1"> <building name="smithy" capacity="1">
<function name="init" value="init_smithy"/>
<maintenance type="money" amount="300"/> <maintenance type="money" amount="300"/>
<maintenance type="log" amount="1"/> <maintenance type="log" amount="1"/>
<construction skill="building" minskill="3"> <construction skill="building" minskill="3">
@ -102,6 +101,8 @@
<requirement type="iron" quantity="2"/> <requirement type="iron" quantity="2"/>
<requirement type="money" quantity="200"/> <requirement type="money" quantity="200"/>
</construction> </construction>
<modifier type="skill" skill="weaponsmithing" value="1"/>
<modifier type="skill" skill="armorer" value="1"/>
</building> </building>
<building name="magictower" maxcapacity="2" maxsize="50" magic="yes" magres="40" fumblebonus="10" auraregen="1.75"> <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"/> <item weight="0" score="6000"/>
</resource> </resource>
<resource name="aoc" appearance="amulet">
<item weight="100">
<function name="use" value="use_birthdayamulet"/>
</item>
</resource>
<resource name="dreameye"> <resource name="dreameye">
<item weight="100"> <item weight="100" use="yes" />
<function name="use" value="use_tacticcrystal"/>
</item>
</resource> </resource>
<resource name="pegasus"> <resource name="pegasus">
@ -78,9 +70,7 @@
</resource> </resource>
<resource name="elvenhorse"> <resource name="elvenhorse">
<item weight="5000" notlost="yes" big="yes" score="6000" capacity="7000" animal="yes"> <item weight="5000" notlost="yes" big="yes" score="6000" capacity="7000" animal="yes"/>
<function name="give" value="givehorses"/>
</item>
</resource> </resource>
<resource name="dolphin"> <resource name="dolphin">
@ -100,39 +90,34 @@
</resource> </resource>
<!-- XE items --> <!-- XE items -->
<resource name="studypotion" appearance="vial">
<!-- gives user one free learning attempt -->
<item weight="0" use="yes" />
</resource>
<resource name="skillpotion" appearance="vial"> <resource name="skillpotion" appearance="vial">
<!-- gives user one free learning attempt --> <!-- gives user one free learning attempt -->
<item weight="0"> <item weight="0" use="yes" />
<function name="use" value="use_skillpotion"/>
</item>
</resource> </resource>
<resource name="manacrystal" appearance="amulet"> <resource name="manacrystal" appearance="amulet">
<!-- gives user free aura --> <!-- gives user free aura -->
<item weight="0"> <item weight="0" use="yes" />
<function name="use" value="use_manacrystal"/>
</item>
</resource> </resource>
<!-- xmas items --> <!-- xmas items -->
<resource name="mistletoe"> <resource name="mistletoe">
<!-- Sets the chance of escape in a fight to 100 percent --> <!-- Sets the chance of escape in a fight to 100 percent -->
<item notlost="yes" weight="0"> <item notlost="yes" weight="0" use="yes" />
<function name="use" value="usemistletoe"/>
</item>
</resource> </resource>
<resource name="speedsail"> <resource name="speedsail">
<item weight="0"> <item weight="0" use="yes" />
<function name="use" value="use_speedsail"/>
</item>
</resource> </resource>
<!-- items --> <!-- items -->
<resource name="antimagic" appearance="amulet"> <resource name="antimagic" appearance="amulet">
<item weight="0" score="2000"> <item weight="0" score="2000" use="yes" />
<function name="use" value="use_antimagiccrystal"/>
</item>
</resource> </resource>
<resource name="catapultammo"> <resource name="catapultammo">

View file

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

View file

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

View file

@ -444,12 +444,6 @@
<string name="ao_chastity_p"> <string name="ao_chastity_p">
<text locale="en">amulets of chastity</text> <text locale="en">amulets of chastity</text>
</string> </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"> <string name="aod">
<text locale="en">amulet of darkness</text> <text locale="en">amulet of darkness</text>
</string> </string>

View file

@ -458,12 +458,6 @@
<string name="ao_chastity_p"> <string name="ao_chastity_p">
<text locale="fr">amulettes de chasteté</text> <text locale="fr">amulettes de chasteté</text>
</string> </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"> <string name="aod">
<text locale="fr">amulette de ténčbres</text> <text locale="fr">amulette de ténčbres</text>
</string> </string>

View file

@ -5536,8 +5536,8 @@
<arg name="region" type="region"/> <arg name="region" type="region"/>
<arg name="command" type="order"/> <arg name="command" type="order"/>
</type> </type>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Nur Elfen können diese Bögen herstellen."</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)' - Only elves can make these bows."</text> <text locale="en">"$unit($unit) in $region($region): '$order($command)' - This unit cannot produce that."</text>
</message> </message>
<message name="error117" section="errors"> <message name="error117" section="errors">
<type> <type>
@ -5545,8 +5545,8 @@
<arg name="region" type="region"/> <arg name="region" type="region"/>
<arg name="command" type="order"/> <arg name="command" type="order"/>
</type> </type>
<text locale="de">"$unit($unit) in $region($region): '$order($command)' - Nur die EMail-Adresse angeben!"</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)' - Please provide only an email address!"</text> <text locale="en">"$unit($unit) in $region($region): '$order($command)' - This race cannot produce that."</text>
</message> </message>
<message name="error116" section="errors"> <message name="error116" section="errors">
<type> <type>
@ -7678,24 +7678,6 @@
<text locale="en">"$unit($unit) plays the bagpipe. Stricken with fear the peasants give $int($money) silver."</text> <text locale="en">"$unit($unit) plays the bagpipe. Stricken with fear the peasants give $int($money) silver."</text>
</message> </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"> <message name="spellfail_distance" section="errors">
<type> <type>
<arg name="command" type="order"/> <arg name="command" type="order"/>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<resource name="towershield"> <resource name="towershield">
<item weight="200" score="60"> <modifier type="require" race="dwarf"/>
<function name="canuse" value="lua_canuse_item"/> <modifier type="require" race="irongolem"/>
<item weight="200" score="60" allow="dwarf">
<construction skill="armorer" minskill="4"> <construction skill="armorer" minskill="4">
<modifier function="mod_dwarves_only"/>
<requirement type="iron" quantity="1"/> <requirement type="iron" quantity="1"/>
</construction> </construction>
<armor ac="0" penalty="-0.15" projectile="0.25" magres="0.0" shield="yes"> <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" /> <xi:include href="config://default/buildings/castle-2.xml" />
<building name="watch" maxsize="10" capacity="1" fort="yes"> <building name="watch" maxsize="10" capacity="1" fort="yes" taxes="200">
<function name="name" value="fort_name"/> <construction skill="building" minskill="1" maxsize="5" name="scaffolding">
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="5">
<requirement type="log" quantity="1"/> <requirement type="log" quantity="1"/>
</construction> </construction>
<construction skill="building" minskill="2" maxsize="5"> <construction skill="building" minskill="2" maxsize="5" name="guardhouse">
<requirement type="log" quantity="1"/> <requirement type="log" quantity="1"/>
</construction> </construction>
<construction skill="building" minskill="2"> <construction skill="building" minskill="2" name="guardtower">
<requirement type="log" quantity="1"/> <requirement type="log" quantity="1"/>
</construction> </construction>
</building> </building>

View file

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

View file

@ -71,7 +71,11 @@
<familiar race="ghost"/> <familiar race="ghost"/>
</race> </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"/> <ai splitsize="10000" moverandom="yes" learn="yes"/>
<param name="other_race" value="dwarf"/> <param name="other_race" value="dwarf"/>
<param name="luxury_trade" value="600"/> <param name="luxury_trade" value="600"/>
@ -116,7 +120,11 @@
<familiar race="ghost"/> <familiar race="ghost"/>
</race> </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"/> <ai splitsize="10000" moverandom="yes" learn="yes"/>
<skill name="armorer" modifier="-1"/> <skill name="armorer" modifier="-1"/>
<skill name="bow" modifier="2"/> <skill name="bow" modifier="2"/>
@ -156,7 +164,11 @@
<familiar race="rat"/> <familiar race="rat"/>
</race> </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"/> <ai splitsize="10000" moverandom="yes" learn="yes"/>
<skill name="armorer" modifier="2"/> <skill name="armorer" modifier="2"/>
<skill name="bow" modifier="-1"/> <skill name="bow" modifier="-1"/>

View file

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

View file

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

View file

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

View file

@ -38,12 +38,6 @@
<text locale="en">adamantium plates</text> <text locale="en">adamantium plates</text>
</string> </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"> <string name="packice">
<text locale="de">Packeis</text> <text locale="de">Packeis</text>
<text locale="en">fast ice</text> <text locale="en">fast ice</text>
@ -87,6 +81,7 @@
<text locale="en">repeating crossbows</text> <text locale="en">repeating crossbows</text>
</string> </string>
<!--Fort-Ausbaustufen -->
<string name="scaffolding"> <string name="scaffolding">
<text locale="de">Gerüst</text> <text locale="de">Gerüst</text>
<text locale="en">scaffolding</text> <text locale="en">scaffolding</text>
@ -103,6 +98,7 @@
<text locale="de">Wache</text> <text locale="de">Wache</text>
<text locale="en">watch</text> <text locale="en">watch</text>
</string> </string>
<string name="market"> <string name="market">
<text locale="de">Marktplatz</text> <text locale="de">Marktplatz</text>
<text locale="en">marketplace</text> <text locale="en">marketplace</text>
@ -210,7 +206,7 @@
<string name="concealing_aura"> <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="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> <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"> <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="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> <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"?> <?xml version="1.0"?>
<resources xmlns:xi="http://www.w3.org/2001/XInclude"> <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/bow.xml"/>
<xi:include href="config://core/weapons/catapult.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/mallornbow.xml"/>
<xi:include href="config://core/weapons/mallornspear.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/runesword.xml"/>
<xi:include href="config://core/weapons/rustyaxe.xml"/> <xi:include href="config://core/weapons/rustyaxe.xml"/>
<xi:include href="config://core/weapons/rustysword.xml"/> <xi:include href="config://core/weapons/rustysword.xml"/>
<xi:include href="config://core/weapons/spear.xml"/> <xi:include href="config://core/weapons/spear.xml"/>
<xi:include href="config://core/weapons/sword.xml"/> <xi:include href="config://core/weapons/sword.xml"/>
<xi:include href="config://core/weapons/firesword.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/crossbow.xml"/>
<xi:include href="config://game/weapons/greatbow.xml"/> <xi:include href="config://game/weapons/greatbow.xml"/>
<xi:include href="config://game/weapons/greatsword.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 * has lower damage
--> -->
<resource name="greatbow"> <resource name="greatbow">
<item weight="100"> <modifier type="require" race="elf"/>
<function name="canuse" value="lua_canuse_item"/> <item weight="100" allow="elf">
<construction skill="weaponsmithing" minskill="5"> <construction skill="weaponsmithing" minskill="5">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/> <requirement type="mallorn" quantity="2"/>
</construction> </construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.0"> <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 1. you cannt use this with cavalry
--> -->
<resource name="halberd"> <resource name="halberd">
<item weight="200"> <item weight="200" deny="goblin">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3"> <construction skill="weaponsmithing" minskill="3">
<requirement type="log" quantity="2"/> <requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/> <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"?> <?xml version="1.0"?>
<resource name="mallornlance"> <resource name="mallornlance">
<item weight="100"> <item weight="100" deny="goblin">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5"> <construction skill="weaponsmithing" minskill="5">
<requirement type="mallorn" quantity="2"/> <requirement type="mallorn" quantity="2"/>
</construction> </construction>

View file

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

View file

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

View file

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

View file

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

View file

@ -701,7 +701,7 @@
<attack type="4" damage="2d12"/> <attack type="4" damage="2d12"/>
<attack type="4" damage="2d12"/> <attack type="4" damage="2d12"/>
</race> </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"/> <ai splitsize="1" killpeasants="yes" learn="yes"/>
<skill name="magic" modifier="12"/> <skill name="magic" modifier="12"/>
<skill name="tactics" modifier="12"/> <skill name="tactics" modifier="12"/>

View file

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

View file

@ -116,18 +116,6 @@
<text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text> <text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text>
<text locale="en">A birthday cake with 10 candles. Happy Birthday, Eressea!</text> <text locale="en">A birthday cake with 10 candles. Happy Birthday, Eressea!</text>
</string> </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"> <string name="cookie">
<text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text> <text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text>
</string> </string>
@ -374,29 +362,6 @@
</string> </string>
<!-- art rewards end --> <!-- 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"> <string name="rm_adamantium">
<text locale="de">Adamantium</text> <text locale="de">Adamantium</text>
<text locale="en">adamantium</text> <text locale="en">adamantium</text>
@ -427,5 +392,14 @@
<text locale="de">Adamantiumrüstungen</text> <text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text> <text locale="en">adamantium plates</text>
</string> </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> </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" ?> <?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" recruitcost="60" maintenance="6" weight="600" capacity="440"
speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0"
playerrace="yes" walk="yes" giveperson="yes" giveunit="yes" playerrace="yes" walk="yes" giveperson="yes" giveunit="yes"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" ?> <?xml version="1.0" ?>
<race name="goblin" magres="-5" maxaura="1.000000" <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" capacity="440" speed="1.000000" hp="16" damage="1d5"
unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes"
giveperson="yes" giveunit="yes" getitem="yes" equipment="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/\..*//') BRANCH=$(git status -s -b | head -1 | cut -d\ -f 2 | sed 's/\..*//')
if [ "$BRANCH" = "master" ] ; then if [ "$BRANCH" = "master" ] ; then
VERSION=$(git describe --match 'v*.*.*' --tags | sed 's/^v//') VERSION=$(git describe --match 'v*.*.*' --tags | sed 's/^v//')
echo "$BRANCH $VERSION"
cmake -DERESSEA_VERSION="$VERSION" .. cmake -DERESSEA_VERSION="$VERSION" ..
else else
REV=$(git rev-parse --short HEAD) REV=$(git rev-parse --short HEAD)

View file

@ -16,8 +16,3 @@ BIN_DIR="Debug"
cd $ROOT/$BIN_DIR cd $ROOT/$BIN_DIR
make install 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.lua
$ROOT/$BUILD/eressea/eressea -v1 scripts/run-tests-e2.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 -v1 scripts/run-tests-e3.lua
$ROOT/$BUILD/eressea/eressea --version
rm -rf data reports orders.txt score score.alliances datum turn rm -rf data reports orders.txt score score.alliances datum turn
cd $OLDWPD cd $OLDWPD

View file

@ -56,7 +56,7 @@ done
[ -z $INIFILE ] && INIFILE=$TOOLS/inifile [ -z $INIFILE ] && INIFILE=$TOOLS/inifile
[ -e $INIFILE ] || INIFILE=$TOOLS/iniparser/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 cd $ERESSEA
if [ -d $dir ] ; then if [ -d $dir ] ; then

View file

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

View file

@ -1,4 +1,3 @@
require 'eressea.e3.rules'
require 'eressea.spells' require 'eressea.spells'
eressea.log.debug("rules for game E3") 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 function is_winter(turn)
local season = get_season(turn) local season = get_season(turn)
return season == "calendar::winter" return season == "winter"
end end
local function is_spring(turn) local function is_spring(turn)
local season = get_season(turn) local season = get_season(turn)
return season == "calendar::spring" return season == "spring"
end end
local function freeze(r, chance) local function freeze(r, chance)

View file

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

View file

@ -1,16 +1,5 @@
-- global functions used in items.xml -- 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) function peasant_changeresource(u, delta)
local p = u.region:get_resource("peasant") local p = u.region:get_resource("peasant")
p = p + delta p = p + delta
@ -21,10 +10,6 @@ function peasant_changeresource(u, delta)
return p return p
end end
function hp_getresource(u)
return u.hp
end
function hp_changeresource(u, delta) function hp_changeresource(u, delta)
local hp = u.hp + delta local hp = u.hp + delta

View file

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

View file

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

View file

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

View file

@ -6,7 +6,7 @@ local function _test_create_ship(r)
end end
local function create_faction(race) local function create_faction(race)
return faction.create(race .. '@eressea.de', race, "de") return faction.create(race, race .. '@eressea.de', "de")
end end
local function one_unit(r, f) local function one_unit(r, f)
@ -218,6 +218,9 @@ function test_gmtool()
local r1 = region.create(1, 0, "plain") local r1 = region.create(1, 0, "plain")
local r2 = region.create(1, 1, "plain") local r2 = region.create(1, 1, "plain")
local r3 = region.create(1, 2, "plain") local r3 = region.create(1, 2, "plain")
if not gmtool then
return
end
gmtool.open() gmtool.open()
gmtool.select(r1, true) gmtool.select(r1, true)
gmtool.select_at(0, 1, true) gmtool.select_at(0, 1, true)
@ -1033,6 +1036,37 @@ function test_recruit()
end end
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() function test_give_horses()
local r = region.create(0, 0, "plain") local r = region.create(0, 0, "plain")
local f = create_faction('human') local f = create_faction('human')

View file

@ -11,7 +11,7 @@ function test_read_race()
eressea.free_game() eressea.free_game()
assert_not_nil(eressea.config) assert_not_nil(eressea.config)
eressea.config.parse('{ "races": { "orc" : {}}}') 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) assert_not_nil(f)
end end

View file

@ -11,7 +11,7 @@ function setup()
end end
local function create_faction(race) local function create_faction(race)
return faction.create(race .. '@eressea.de', race, "de") return faction.create(race, race .. '@eressea.de', "de")
end end
local function _test_create_adamantium() 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() function disabled_test_dont_move_after_destroy()
local r1 = region.create(0, 0, "plain") local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 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) local u = unit.create(f, r1, 1)
u.building = building.create(u.region, "castle") u.building = building.create(u.region, "castle")
u:clear_orders() u:clear_orders()
@ -26,8 +26,8 @@ end
function test_dont_destroy_after_attack() function test_dont_destroy_after_attack()
local r1 = region.create(0, 0, "plain") 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)
local u2 = unit.create(faction.create("two@example.com", "human", "de"), r1, 1) local u2 = unit.create(faction.create("human", "two@example.com", "de"), r1, 1)
u.building = building.create(u.region, "castle") u.building = building.create(u.region, "castle")
u:clear_orders() u:clear_orders()
u:add_order("ATTACKIERE " .. itoa36(u2.id)) u:add_order("ATTACKIERE " .. itoa36(u2.id))
@ -38,7 +38,7 @@ end
function test_destroy_is_long() function test_destroy_is_long()
local r1 = region.create(0, 0, "plain") 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.building = building.create(u.region, "castle")
u:clear_orders() u:clear_orders()
u:add_order("LERNE Unterhaltung") u:add_order("LERNE Unterhaltung")

View file

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

View file

@ -11,7 +11,7 @@ end
function test_guard_unarmed() function test_guard_unarmed()
local r1 = region.create(0, 0, "plain") 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) local u1 = unit.create(f1, r1, 1)
assert_equal(false, u1.guard) assert_equal(false, u1.guard)
u1:clear_orders() u1:clear_orders()
@ -22,7 +22,7 @@ end
function test_guard_armed() function test_guard_armed()
local r1 = region.create(0, 0, "plain") 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) local u1 = unit.create(f1, r1, 1)
assert_equal(false, u1.guard) assert_equal(false, u1.guard)
u1:add_item("sword", 1) u1:add_item("sword", 1)
@ -36,10 +36,10 @@ end
function test_guard_allows_move_after_combat() -- bug 1493 function test_guard_allows_move_after_combat() -- bug 1493
local r1 = region.create(0, 0, "plain") local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 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 u1 = unit.create(f1, r1, 10)
local uid1 = u1.id 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) local u2 = unit.create(f2, r1, 1)
u1:add_order("BEWACHE") u1:add_order("BEWACHE")
u1:add_item("sword", 10) u1:add_item("sword", 10)
@ -59,10 +59,10 @@ end
function test_no_guard_no_move_after_combat() -- bug 1493 function test_no_guard_no_move_after_combat() -- bug 1493
local r1 = region.create(0, 0, "plain") local r1 = region.create(0, 0, "plain")
local r2 = region.create(1, 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 u1 = unit.create(f1, r1, 10)
local uid1 = u1.id 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) local u2 = unit.create(f2, r1, 1)
u1:add_order("BEWACHE") u1:add_order("BEWACHE")
u1:add_item("sword", 10) 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.adamantium'
require 'tests.e2.undead' require 'tests.e2.undead'
require 'tests.e2.shiplanding' require 'tests.e2.shiplanding'
@ -5,8 +8,9 @@ require 'tests.e2.e2features'
require 'tests.e2.movement' require 'tests.e2.movement'
require 'tests.e2.destroy' require 'tests.e2.destroy'
require 'tests.e2.guard' require 'tests.e2.guard'
require 'tests.e2.spells'
require 'tests.e2.stealth' require 'tests.e2.stealth'
require 'tests.e2.items'
require 'tests.items'
require 'tests.economy' require 'tests.economy'
require 'tests.orders' require 'tests.orders'
require 'tests.common' require 'tests.common'
@ -15,3 +19,5 @@ require 'tests.storage'
require 'tests.magicbag' require 'tests.magicbag'
require 'tests.process' require 'tests.process'
require 'tests.xmas' require 'tests.xmas'
require 'tests.production'
require 'tests.spells'

View file

@ -11,9 +11,41 @@ function setup()
eressea.settings.set("magic.regeneration.enable", "0") eressea.settings.set("magic.regeneration.enable", "0")
end 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() function test_meow()
local r = region.create(0, 0, "plain") 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) local u = unit.create(f, r, 1)
u:add_item("aoc", 1) u:add_item("aoc", 1)
u:clear_orders() u:clear_orders()
@ -27,7 +59,7 @@ end
function test_aurapotion50() function test_aurapotion50()
local r = region.create(0, 0, "plain") 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) local u = unit.create(f, r, 1)
u:add_item("aurapotion50", 1) u:add_item("aurapotion50", 1)
u:set_skill('magic', 10); u:set_skill('magic', 10);
@ -45,33 +77,45 @@ end
function test_bagpipe() function test_bagpipe()
local r = region.create(0, 0, "plain") 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) local u = unit.create(f, r, 1)
turn_begin()
u:add_item("bagpipeoffear", 1) u:add_item("bagpipeoffear", 1)
u:clear_orders() u:clear_orders()
u:add_order("BENUTZEN 1 Dudelsack") 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, u:get_item("bagpipeoffear"))
assert_equal(1, f:count_msg_type('bagpipeoffear_faction')) assert_equal(1, f:count_msg_type('bagpipeoffear_faction'))
assert_equal(1, r:count_msg_type('bagpipeoffear_region')) 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 end
function test_speedsail() function test_speedsail()
local r = region.create(0, 0, "plain") 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) local u = unit.create(f, r, 1)
turn_begin()
u.ship = ship.create(r, "boat") u.ship = ship.create(r, "boat")
u:add_item("speedsail", 2) u:add_item("speedsail", 2)
u:clear_orders() u:clear_orders()
u:add_order("BENUTZEN 1 Sonnensegel") 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, u:get_item("speedsail"))
assert_equal(1, f:count_msg_type('use_speedsail')) assert_equal(1, f:count_msg_type('use_speedsail'))
turn_end()
assert_equal(1, u.ship:get_curse('shipspeed')) -- effect stays forever
end end
function test_foolpotion() function test_foolpotion()
local r = region.create(0, 0, "plain") 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) local u = unit.create(f, r, 1)
turn_begin() turn_begin()
u:add_item("p7", 1) u:add_item("p7", 1)
@ -97,7 +141,7 @@ end
function test_snowman() function test_snowman()
local r = region.create(0, 0, "glacier") 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) local u = unit.create(f, r, 1)
u:add_item("snowman", 1) u:add_item("snowman", 1)
u:clear_orders() u:clear_orders()

View file

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