use libraries from the external folder, don't depend on any additional installations (VS 2010)

This commit is contained in:
Enno Rehling 2010-08-07 22:53:41 -07:00
parent 381b25d464
commit f8094f77dc
130 changed files with 23651 additions and 23652 deletions

10
.gitignore vendored
View file

@ -1,6 +1,6 @@
bin/
*.ncb
*.suo
*.ncb
bin/
*.ncb
*.suo
*.ncb
*.suo

File diff suppressed because it is too large Load diff

View file

@ -1,49 +1,49 @@
Konzepte:
- Astralraum abschaffen
= done (modules.astralspace).
= done (Zauber entfernt).
- Regionsbesitz und Moral
- Allianzen
- GIB abstellen
= done
Talente:
- Talentlimit 10 + Rassenbonus
= done
- Ausdauer wirkt sich nicht auf Trefferpunkte aus
= done (rules.stamina)
- Wahrnehmung und Tarnung abschalten
= done
Kampf:
- Regionen belagern
- Allianz ersetzt HELFE KAEMPFE
- Reduktion auf 1 Kampfrunde
= done (rules.combat_turns)
- neue Trefferchanceberechnung
- neue Beuteregelung
- Gegnerlimits
Gegenstände:
- Waffen mit höherem Schaden.
- RdU und AdwS überarbeiten
Diverse:
- neue Terraintypen (weniger Bauern, knappere Ressourcen)
- limitiertes Rekrutieren von Migranten erlauben
- Parteitarnung fällt weg
= done (disable TARNEN)
- Monster entfernen
Ökonomie:
- UNTERHALTEN abstellen
= done (Befehl & Skill)
- TREIBEN abstellen
= done (Befehl & Skill)
- ARBEITEN abstellen
= done (Befehl)
- LEHREN abstellen
= done (Befehl)
- VERKAUFEN abstellen.
= done (Befehl)
- Steuern für den Regionsbesitzer
Konzepte:
- Astralraum abschaffen
= done (modules.astralspace).
= done (Zauber entfernt).
- Regionsbesitz und Moral
- Allianzen
- GIB abstellen
= done
Talente:
- Talentlimit 10 + Rassenbonus
= done
- Ausdauer wirkt sich nicht auf Trefferpunkte aus
= done (rules.stamina)
- Wahrnehmung und Tarnung abschalten
= done
Kampf:
- Regionen belagern
- Allianz ersetzt HELFE KAEMPFE
- Reduktion auf 1 Kampfrunde
= done (rules.combat_turns)
- neue Trefferchanceberechnung
- neue Beuteregelung
- Gegnerlimits
Gegenstände:
- Waffen mit höherem Schaden.
- RdU und AdwS überarbeiten
Diverse:
- neue Terraintypen (weniger Bauern, knappere Ressourcen)
- limitiertes Rekrutieren von Migranten erlauben
- Parteitarnung fällt weg
= done (disable TARNEN)
- Monster entfernen
Ökonomie:
- UNTERHALTEN abstellen
= done (Befehl & Skill)
- TREIBEN abstellen
= done (Befehl & Skill)
- ARBEITEN abstellen
= done (Befehl)
- LEHREN abstellen
= done (Befehl)
- VERKAUFEN abstellen.
= done (Befehl)
- Steuern für den Regionsbesitzer

View file

@ -1,90 +1,90 @@
Was ist das hier?
Dieses File ist eine Sammlung von kleinen Artikeln zum Code -
Designgedanken, hauptsächlich, keine Anleitungen.
- Die Variable buf
wird an zu vielen Stellen im Source benutzt. Können wir zumindest in
Zukunft versuchen, auf sie zu verzichten? Mir ist nie sehr wohl, wen ich
die irgendwo sehe.
- Bibliotheken, module
Jedes Verzeichnis in common/ erzeugt eine Bibliothek. Je nach Bedarf
muss aber nicht jeder Server die ganze Bibliothek linken (die ist eher
was für den mapper), sondern kann die Files auch einzeln linken. Jedes
modul, item, attribut, usw. sollte eine Funktion zur Verfügung stellen,
die seine typen initialisiert, also it_register respektive at_register
o.ä. aufruft. Jede Biliothek hat ein File, das ihren Namen trägt (z.b.
items.txt) mit einer eigenen init_-Funktion, die alle init_funktionen
der enthaltenen objekte enthält. (init_items, init_attributes, usw).
Neue Files hinzufügen heißt also bitte, die Registrierung in den
"bibliotheks-file" zu machen.
- KI
Beim Anblick des enums mit Rassen-Flags sieht man schnell, das die in
mehrere Kategorien fallen. Eine davon ist die KI-Steuerung, und könnte
man die vielleicht getrennt von den anderen speichern?
- Worüber man nachdenken sollte, ehe man etwas neues hinzufügt
90% aller Erweiterungen sind eigentlich optional. Ein Eressea ist z.B.
auch ohne die Rasse Troll denkbar. Leider ist die rasse Troll an derart
viele Stellen hartgecodet, das man Eressea ohne Trolle nie übersetzen
könnte (Im Kampfsystem bekommen z.B. Trolle -1 beim Reitenbonus). Immer
drüber nachdenken, ob man hartcoden muß, oder ob es auch einen anderen
Weg gibt (in diesem Fall z.B. ein at_skillmod attribut an der Rasse
Troll).
- RC_SPELL
Es gibt einen Zauber (Ferne Vision) der Einheiten vom Typ RC_SPELL
erzeugt, aber 36 Stellen, an denen auf diesen Typ abgetestet werden muß
(vielleicht sogar mehr?). Können wir das mal auf einen curse umstellen?
Am besten in Kombination mit einem allgemeinen "diese Einheit/Region
soll in den Report der PArtei x", das man dann auch für Spionage usw.
benutzen kann, und das im Fall von Antimagie oder Zauberende durch einen
Trigger am entsprechenden curse mit zerlegt wird?
- Wie komplex macht man einen Curse?
siehe vorangegangener Absatz. Generell gilt hier: Lieber zwei
vielseitige Dinge machen, als ein unflexibles - der curse sollte
lediglich der container seiin, der die wirkung aufrechterhält (das
attribut an der region überwacht, und per trigger-funktion bei ende des
curse oder antimagie entfernt). die eigentliche wirkung kann man in ein
separates attribut stecken, dann ist sie auch in anderen kontexten als
zauberei verwendbar (gebaüde oder items mit der gleichen wirkung, z.b.).
Tests sollten so wenig wie möglich auf einen curse gehen (in fact,
eigentlich nur bei der antimagie) sondern immer auf die wirkung (das
attribut).
- wie benenne ich Sourcedateien?
lang drüber nachgedacht, bin ich zum schluss gekommen: kleinbuchstaben,
keien unterstriche. Es kann sich nie jemand merken, ob testplayer oder
test_player jetzt richtig ist, und wir kommen sicher selten in die
situation, das wir zwischen opium_bringen.c und opi_umbringen.c
unterscheiden müssen.
- wie benenne ich variablen?
da gilt das gleiceh wie bei den files, mit einer ausnahme:
typspezifikation, also zum beispiel at_ für attributstypen, mit einem
unterstrich. dann ist auch klar, was at_work ist: ein attribut, das was
mit arbeit zu tun hat, keine boolean-variable die sagt ob man auf der
arbeit ist.
- faction::units
Die Variable funktioniert und kann benutzt werden. folgendes:
for (r=regions;r;r=r->next) for (u=r->units;u;u=u->next) if (u->faction==f) {}
schreibt sich viel einfacher so:
for (u=f->units;u;u=u->nextF) {}
und ja, es wird garantiert, das das funktioiniert, und regionsreihenfolge
einhalten tut es auch. weshalb wahlloses erzeugen von einheiten per calloc und
ohne createunit() aufruf schon seit längerem ein NoNo ist.
- buffer length
Namen von attributen, hashcodes für items, usw. sollten kurz sein.
schliesslich landen sie im Datenfile. Eine Funktion, die sie einlädt,
sollte mit 32 byte speicherbedarf rechnen.
- FL_MARK und FL_DH:
Der unterschied zwischen diesen beiden Flags ist:
FL_DH sollte man vor der Benutzung auf einen Wert setzen, den man coraussetzt
(man kriegt keinen wert garanteirt).
FL_MARK ist immer 0. jede routine die es setzt, muss es am ende wieder auf 0
zurücksetzen. code-beispiel ist z.b. die SORTIERE-funktion.
Was ist das hier?
Dieses File ist eine Sammlung von kleinen Artikeln zum Code -
Designgedanken, hauptsächlich, keine Anleitungen.
- Die Variable buf
wird an zu vielen Stellen im Source benutzt. Können wir zumindest in
Zukunft versuchen, auf sie zu verzichten? Mir ist nie sehr wohl, wen ich
die irgendwo sehe.
- Bibliotheken, module
Jedes Verzeichnis in common/ erzeugt eine Bibliothek. Je nach Bedarf
muss aber nicht jeder Server die ganze Bibliothek linken (die ist eher
was für den mapper), sondern kann die Files auch einzeln linken. Jedes
modul, item, attribut, usw. sollte eine Funktion zur Verfügung stellen,
die seine typen initialisiert, also it_register respektive at_register
o.ä. aufruft. Jede Biliothek hat ein File, das ihren Namen trägt (z.b.
items.txt) mit einer eigenen init_-Funktion, die alle init_funktionen
der enthaltenen objekte enthält. (init_items, init_attributes, usw).
Neue Files hinzufügen heißt also bitte, die Registrierung in den
"bibliotheks-file" zu machen.
- KI
Beim Anblick des enums mit Rassen-Flags sieht man schnell, das die in
mehrere Kategorien fallen. Eine davon ist die KI-Steuerung, und könnte
man die vielleicht getrennt von den anderen speichern?
- Worüber man nachdenken sollte, ehe man etwas neues hinzufügt
90% aller Erweiterungen sind eigentlich optional. Ein Eressea ist z.B.
auch ohne die Rasse Troll denkbar. Leider ist die rasse Troll an derart
viele Stellen hartgecodet, das man Eressea ohne Trolle nie übersetzen
könnte (Im Kampfsystem bekommen z.B. Trolle -1 beim Reitenbonus). Immer
drüber nachdenken, ob man hartcoden muß, oder ob es auch einen anderen
Weg gibt (in diesem Fall z.B. ein at_skillmod attribut an der Rasse
Troll).
- RC_SPELL
Es gibt einen Zauber (Ferne Vision) der Einheiten vom Typ RC_SPELL
erzeugt, aber 36 Stellen, an denen auf diesen Typ abgetestet werden muß
(vielleicht sogar mehr?). Können wir das mal auf einen curse umstellen?
Am besten in Kombination mit einem allgemeinen "diese Einheit/Region
soll in den Report der PArtei x", das man dann auch für Spionage usw.
benutzen kann, und das im Fall von Antimagie oder Zauberende durch einen
Trigger am entsprechenden curse mit zerlegt wird?
- Wie komplex macht man einen Curse?
siehe vorangegangener Absatz. Generell gilt hier: Lieber zwei
vielseitige Dinge machen, als ein unflexibles - der curse sollte
lediglich der container seiin, der die wirkung aufrechterhält (das
attribut an der region überwacht, und per trigger-funktion bei ende des
curse oder antimagie entfernt). die eigentliche wirkung kann man in ein
separates attribut stecken, dann ist sie auch in anderen kontexten als
zauberei verwendbar (gebaüde oder items mit der gleichen wirkung, z.b.).
Tests sollten so wenig wie möglich auf einen curse gehen (in fact,
eigentlich nur bei der antimagie) sondern immer auf die wirkung (das
attribut).
- wie benenne ich Sourcedateien?
lang drüber nachgedacht, bin ich zum schluss gekommen: kleinbuchstaben,
keien unterstriche. Es kann sich nie jemand merken, ob testplayer oder
test_player jetzt richtig ist, und wir kommen sicher selten in die
situation, das wir zwischen opium_bringen.c und opi_umbringen.c
unterscheiden müssen.
- wie benenne ich variablen?
da gilt das gleiceh wie bei den files, mit einer ausnahme:
typspezifikation, also zum beispiel at_ für attributstypen, mit einem
unterstrich. dann ist auch klar, was at_work ist: ein attribut, das was
mit arbeit zu tun hat, keine boolean-variable die sagt ob man auf der
arbeit ist.
- faction::units
Die Variable funktioniert und kann benutzt werden. folgendes:
for (r=regions;r;r=r->next) for (u=r->units;u;u=u->next) if (u->faction==f) {}
schreibt sich viel einfacher so:
for (u=f->units;u;u=u->nextF) {}
und ja, es wird garantiert, das das funktioiniert, und regionsreihenfolge
einhalten tut es auch. weshalb wahlloses erzeugen von einheiten per calloc und
ohne createunit() aufruf schon seit längerem ein NoNo ist.
- buffer length
Namen von attributen, hashcodes für items, usw. sollten kurz sein.
schliesslich landen sie im Datenfile. Eine Funktion, die sie einlädt,
sollte mit 32 byte speicherbedarf rechnen.
- FL_MARK und FL_DH:
Der unterschied zwischen diesen beiden Flags ist:
FL_DH sollte man vor der Benutzung auf einen Wert setzen, den man coraussetzt
(man kriegt keinen wert garanteirt).
FL_MARK ist immer 0. jede routine die es setzt, muss es am ende wieder auf 0
zurücksetzen. code-beispiel ist z.b. die SORTIERE-funktion.

View file

@ -1,28 +1,28 @@
src/util
1. Was ist hier drin?
Hier drin steckt Code, der nicht nur für Eressea zu gebrauchen ist. Wann immer möglich, sollte man versuchen, Code hier unterzubringen. Code in diesem Verzeichnis verwendet config.h, aber unter keinen Umständen eressea.h oder anderen code aus src/common.
2. Beispiele:
attrib, event, base36, rand
src/common
1. Was ist hier drin?
Der Kern des Spiels. Funktionen, ohne die ein Eressea-Spiel nicht existieren kann. Zum Beispiel Kampfsystem, Magiesystem, item-typen (aber möglichst wenige items). Je allgemeiner gehalten der Code ist, desto weniger muß in common, desto mehr kann in "pluggable" Modulen untergebracht werden.
Bei Code im Kern des Spiels sollte man beachten, das eine Abfrage auf einen konkreten item-typ immer zu einer Abhängigkeit mit Code führt, der eigentlich nicht dem Kern zuzurechnen ist. Wenn im Kampf z.B. eine Spezialwaffe erfragt wird, dann kann man kein Eressea-Spiel erzeugen, ohne diese Waffe mit zu linken, selbst wenn man sie nicht benutzt. Besser ist es in diesem Fall, wiederverwendbare attribute oder itemtype-flags zu benutzen. Analog gilt das für alle anderen typen: rassen, gebäude, schiffe, Regionstypen, Zauber.
2. Beispiele:
battle, economy, magic (vormals newmagic), item (allerdings ohne konkret items zu enthalten), build, building, ship
src/common/gamecode
1. Was ist hier drin?
Code, der nur die Auswertung und den Ablauf betrifft, aber keine statischen Tools wie z.B. den Mapper.
2. Beispiele:
Hier ist die Ökonomie drin, Zufallsereignisse, Reportgenerierung.
src/common/modules
1. Was ist hier drin?
"Pluggable" Module, wie Questen, Spezial-Planes, Events. Alles, was dem Spiel Leben einhaucht, ohne im Kern verankert zu sein.
2. Beispiele:
arena, xmas2000, museum, score (?).
3. Style
Ein Modul sollte aus main.c heraus initialisiert werden können. Ideal ist, wenn ein Aufruf von init_<module>() genügt, um es zu aktivieren. Das sorgt z.B. beim Weihnachtsmann-Modul für die Erzeugung der Plane und der Units, der Registrierung der nötigen Items und Attribute, und mehr muß nicht getan werden.
Darf keine Funktionen aus gamecode() benutzen, oder sollte selber im gamecode landen.
src/triggers
src/items
src/spells
src/util
1. Was ist hier drin?
Hier drin steckt Code, der nicht nur für Eressea zu gebrauchen ist. Wann immer möglich, sollte man versuchen, Code hier unterzubringen. Code in diesem Verzeichnis verwendet config.h, aber unter keinen Umständen eressea.h oder anderen code aus src/common.
2. Beispiele:
attrib, event, base36, rand
src/common
1. Was ist hier drin?
Der Kern des Spiels. Funktionen, ohne die ein Eressea-Spiel nicht existieren kann. Zum Beispiel Kampfsystem, Magiesystem, item-typen (aber möglichst wenige items). Je allgemeiner gehalten der Code ist, desto weniger muß in common, desto mehr kann in "pluggable" Modulen untergebracht werden.
Bei Code im Kern des Spiels sollte man beachten, das eine Abfrage auf einen konkreten item-typ immer zu einer Abhängigkeit mit Code führt, der eigentlich nicht dem Kern zuzurechnen ist. Wenn im Kampf z.B. eine Spezialwaffe erfragt wird, dann kann man kein Eressea-Spiel erzeugen, ohne diese Waffe mit zu linken, selbst wenn man sie nicht benutzt. Besser ist es in diesem Fall, wiederverwendbare attribute oder itemtype-flags zu benutzen. Analog gilt das für alle anderen typen: rassen, gebäude, schiffe, Regionstypen, Zauber.
2. Beispiele:
battle, economy, magic (vormals newmagic), item (allerdings ohne konkret items zu enthalten), build, building, ship
src/common/gamecode
1. Was ist hier drin?
Code, der nur die Auswertung und den Ablauf betrifft, aber keine statischen Tools wie z.B. den Mapper.
2. Beispiele:
Hier ist die Ökonomie drin, Zufallsereignisse, Reportgenerierung.
src/common/modules
1. Was ist hier drin?
"Pluggable" Module, wie Questen, Spezial-Planes, Events. Alles, was dem Spiel Leben einhaucht, ohne im Kern verankert zu sein.
2. Beispiele:
arena, xmas2000, museum, score (?).
3. Style
Ein Modul sollte aus main.c heraus initialisiert werden können. Ideal ist, wenn ein Aufruf von init_<module>() genügt, um es zu aktivieren. Das sorgt z.B. beim Weihnachtsmann-Modul für die Erzeugung der Plane und der Units, der Registrierung der nötigen Items und Attribute, und mehr muß nicht getan werden.
Darf keine Funktionen aus gamecode() benutzen, oder sollte selber im gamecode landen.
src/triggers
src/items
src/spells

View file

@ -1,185 +1,185 @@
Stufe, Name, Kosten, Auswirkung
Kosten: *L = pro Level, P = Permanente Aura, M = Materialien (zB Holz),
B = Bauern, $ = Silber, H = Hitpoints
(K) = Kampfzauber, (+K) = Prekampfzauber, (K+) = Postkampfzauber
Druide/Gwyrrd (38 Sprüche):
---------------------------
1 Segen der Erde 1*L Bauern verdienen 1 Silber mehr
1 Viehheilung 1*L Magier verdient 50$*L
1 Erschaffe Steingolems 2*L,M Magische Strassen/Burgenbauer
2 Erschaffe Eisengolems 2*L,M Magische Rüstungsbauer
2 Hainzauber 2*L,$ Erschafft Bäume
3 Rostregen 2*L Vernichtet Eisenwaffen
3 Firuns Fell 2*L Insekten können auf Gletscher
3 Hagel (K) 1*L verursacht leichten Schaden
3 Bergwächter 3*L Verhindert Eisenabbau
4 Magischer Pfad 1*L,M Magische Strasse
4 Windschild (+K) 2*L behindert Schützen
4 B... Wasserelementar 1*L Schiffe +1 Bewegung und keine Abdrift
5 Heilung (K+) 1*L heilt bis zu 11 Personen pro Stufe
5 Wirbelwind (+K) 15 behindert alle Schützen zu 50%
5 Astralschutzgeister (+K) 5*L behindert Kampfzauber
5 E... magischen Kräuterb. 30,1P,M Artefakt
6 Meditation 2 überträgt Aura
6 B... einen Erdelementar 25,M Beschädigt alle Gebäude einer Region
6 B... Sturmelementar 6*L verdoppelt Schiffsbewegung
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Heimstein 50,1P verbessert Burg dauerhaft
7 Wolfsgeheul (+K) 2*L ruft Wölfe für den Kampf
8 Blick des Basilisken (K) 1*L entfernt Gegner aus Kampf
8 Starkes Tor und ... (+K) 2*L verbessert Schutz der Burg
8 Geister bannen 6*L Antimagie
9 Weg der Bäume 3*L Stufe*5 GE aus Wald in Astralebene
9 Sog des Lebens 2*L Stufe*5 GE aus Astralebene in Wald
9 Heiliger Boden 80,3P
10 Erwecke Ents 6*L Erschafft Einheit
10 Vertrauten binden 100,5P Vertrauter
11 Segne Steinkreis 350,5P Wandelt Steinkreis zum gesegneten St.
12 Rindenhaut (+K) 4*L Verbessert Rüstung
13 B... Hitzeelementar 600 halbiert Fruchtbarkeit der Region
14 Nebel der Verwirrung 8*L Bewegung wird zufällig (nur Wald+Ozean)
15 Mahlstrom 200,M Ozeanfeld beschädigt Schiffe schwer
16 Wurzeln der Magie 250,10P,M Wald wird permanent Mallornwald
17 T... die Ebene der Hitze 800 stärker als L13, kann Region wandeln
Chaos/Draig (27 Sprüche):
-------------------------
1 Verwünschung 1*L nur Showeffekt
1 Kleine Flüche 1*L Magier verdient 50$*L
2 Feuerball (K) 1*L Schaden
3 Gabe des Chaos 2*L Magicboost
4 Mächte des Todes 5*L Erschafft Untote
5 Blutrausch (+K) 5*L,B Verbessert Kampfkraft
5 Chaosfluch 4*L behindert Zauberer
6 Rosthauch (K) 2*L zerstört Eisenwaffen
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Machtübertragung 2 überträgt Aura
7 Feuerwand 6*L Wall, macht Schaden
7 Fluch der Pestilenz 30,B erzeugt Pest
8 Wahnsinn des Krieges (+K) 3*L,B verwirbelt gegnerische Reihen
8 Beschwöre Schattendämonen 3*L erzeugt Einheit
9 E... der Trollstärke 20,1P Artefakt
9 Astraler Riss 35,M Magier der Region verlieren Aura
9 Astrales Chaos (+K) 6*L behindert Kampfzauber
10 Feuerteufel 50,M vernichtet Wälder
10 Pentagramm 10*L Antimagie
10 Unheilige Kraft 8*L,M Transformiert Untote
11 Todeswolke 40,H alle Personen der Region verlieren HP
11 Drachenruf 80,M lockt Drachen an
12 Beschwöre Schattenmeister 7*L erzeugt Einheit
12 E... ein Flammenschwert 150,M Artefakt
13 Vertrauten rufen 100,5P Vertrauter
14 Chaossog 150,B nächste Runde Tor zur Astralebene
Traum/Illaun (27 Sprüche):
--------------------------
1 Traumsenden 1*L nur Showeffekt
1 Wahrsagen 1*L Magier verdient 50$*L
1 Schattenritter (+K) 1*L Illusionen, fangen Angriffe ab
2 Grauen der Schlacht (+K) 1*L verleitet Gegner zur Flucht
2 Seelenfrieden 3*L,M reduziert deathcount der Region
3 Traumschlößchen 1*L Illusion einer Burg
3 Traum der Magie 2 Auratransfer
3 Gestaltwandlung 1*L Einheit erscheint als andere Rasse
4 Traumlesen 8 Magier erhält Regionsbericht
4 Schwere Glieder (+K) 4*L -2 Def, 50% Chance dass keine Att
5 Wiederbelebung (K+) 1*L holt Tote zurück
5 Traumbilder analysieren 5*L analysiert Sprüche auf Einheiten
6 Schlechter Schlaf 18 vermindert Lernrate in einer Region
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Schlaf (K) 1*L -2 Def, kein Att, solange bis getroffen
7 Irrlichter 2*L Bewegung wird zufällig?
7 Traumdeuten 20 spioniert Einheit aus
8 Schöne Träume 8*L zeitweilig Bonus auf alle Talente
8 Traumbilder entwirren 6*L Antimagie
9 Vertrauten rufen 100,5P Vertrauter
9 Seelenkopie 100,20P+ Reserveklon
10 Schlechte Träume 9*L zeitweilig -L/4 Talentstufen
11 Tod des Geistes (K) 2*L vermindert Talente, töten bei 0 Tagen
12 Süße Träume 30 Vermehrung wie bei Orks
14 Erschaffe ein Traumauge 10P,M Artefakt
15 Alp 350,5P,M Monster, sucht Opfer => -2 auf Talente
16 Schleier der Verwirrung 7*L mehrere Regionen: Bewegung wird zufällig
Barde/Cerddor (33 Sprüche):
---------------------------
1 Friedenslied (+K) 2 Magier kann vor Angriff fliehen
1 Gaukelleien 1*L Magier verdient 50$*L
2 Lied der Heilung (K+) 1*L heilt Verwundete
2 Hohes Lied der Gaukelei 2*L Unterhaltungsmaximum zeitweilig doppelt
3 Regentanz 1*L Bauern verdienen 1 Silber mehr
3 Gesang der Furcht (K) 1*L Gegner versuchen zu fliehen
4 Gesang des Werbens 2*L rekrutiert Bauern
4 Gesang der Verwirrung (+K) 2*L verwirbelt gegnerische Reihen
4 Plappermaul 10 spioniert Einheit aus
5 Heldengesang (+K) 2*L Krieger widerstehen einigen Effekten
5 Gesang des Auratransfers 2 überträgt Aura
5 G... Lebens analysieren 10 analysiert Zauber auf Einheit
5 Bannlied (+K) 5*L behindert Kampfzauber
6 Monster friedlich stimmen 15 verhindert Monsterangriffe
6 Lied der Verführung 12 Einheit schenkt Magier 50% Besitz
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Schaler Wein 4*L,M,$ Opfer vergißt bis 60 Talenttage
7 Aushorchen 4,$ Magier erhält Regionsbericht
7 Kriegsgesang (+K) 5*L verbessert Kampfkraft
8 Gesang der Angst 5*L Malus auf Att und Def
8 L... Ortes analysieren 3*L analysiert Zauber auf Objekten/Regionen
8 Lebenslied festigen 5*L Antimagie
9 Ritual der Aufnahme 3*L,1P*L L Personen können Partei wechseln
9 Vertrauten rufen 100,5P Vertrauter
10 Mob aufwiegeln 4*L Erzeugt Einheit
10 Gesang des wachen Geistes 2*L verbessert Magieresistenz in Region
11 Gesang der Melancholie 40 kein Unterhaltunssilber verfügbar
11 Miriams flinke Finger 20,1P,$ Artefakt
12 G... schwachen Geistes 2*L vermindert Magieresistenz in Region
12 G... der Friedfertigkeit 20*L verhindert Kämpfe
13 Gesang der Versklavung 40 Opfer wechselt zeitweilig Partei
15 Aufruhr beschwichtigen 30 Löst Mob (L10) auf
Astral/Tybied (32 Sprüche):
---------------------------
1 Magie analysieren 1*L analysiert Zauber
1 Schleieraura 1*L verbirgt Ausrüstung einer Einheit
1 Wunderdoktor 1*L Magier verdient 50$*L
2 Schutz vor Magie (+K) 3*L behindert Kampfzauber
2 Astraler Blick 1*L sieht Einheiten in Astralebene
3 Schutzzauber 5*L verbessert Magieresistenz einer Einheit
3 Beute bewahren (K+) 1*L vermindert Zerstörung von Gegenständen
4 Astraler Weg 2*L schiebt (L-3)*15 GE in Astralebene
4 Astraler Ausgang 2*L schiebt (L-3)*15 GE in Realität
5 Auratransfer 1 transferiert Aura, auch andere Gebiete
5 Schockwelle (K) 1*L verhindert nächste Attacke
5 Astrale Schwächezone 3*L Antimagiezone
5 E... des wahren Sehens 50,$ Artefakt
6 Astraler Ruf 2*L zieht (L-3)*15 GE in Astralebene
6 Ruf der Realität 2*L zieht (L-3)*15 GE in Realität
6 Stehle Aura 2*L entzieht anderem Magier Aura
6 Luftschiff 10,M läßt Boot/Langboot fliegen
6 E... der Unsichtbarkeit 50,$ Artefakt
7 E... Antimagiekristall 50,$ Item, das Antimagiezone erzeugt
7 Magiefresser 3*L Antimagie
8 Runen des Schutzes 20 +20% Magieresistenz bei Burgen/Schiffen
8 Schild des Fisches (+K) 4*L vermindert Schaden
9 Beschleunigung (+K) 5*L verdoppelt Attacken
9 E... einen Ring der Macht 100,$ Artefakt
10 Blick in die Realität 40 sieht Region aus Astralebene
10 E... Negativen Gewichts 30,1P,$ Artefakt
11 Zeitdehnung 5*L Doppelte Bewegung und Angriffe
12 Rüstschild (+K) 4*L verbessert Rüstung
12 Vertrauten rufen 100,5P Vertrauter
13 Belebtes Gestein 10,5P,M Versetzt Burg samt Besatzung
14 Störe Astrale Integrität 140
15 Opfere Kraft 100 transferiert permanente Aura
Stufe, Name, Kosten, Auswirkung
Kosten: *L = pro Level, P = Permanente Aura, M = Materialien (zB Holz),
B = Bauern, $ = Silber, H = Hitpoints
(K) = Kampfzauber, (+K) = Prekampfzauber, (K+) = Postkampfzauber
Druide/Gwyrrd (38 Sprüche):
---------------------------
1 Segen der Erde 1*L Bauern verdienen 1 Silber mehr
1 Viehheilung 1*L Magier verdient 50$*L
1 Erschaffe Steingolems 2*L,M Magische Strassen/Burgenbauer
2 Erschaffe Eisengolems 2*L,M Magische Rüstungsbauer
2 Hainzauber 2*L,$ Erschafft Bäume
3 Rostregen 2*L Vernichtet Eisenwaffen
3 Firuns Fell 2*L Insekten können auf Gletscher
3 Hagel (K) 1*L verursacht leichten Schaden
3 Bergwächter 3*L Verhindert Eisenabbau
4 Magischer Pfad 1*L,M Magische Strasse
4 Windschild (+K) 2*L behindert Schützen
4 B... Wasserelementar 1*L Schiffe +1 Bewegung und keine Abdrift
5 Heilung (K+) 1*L heilt bis zu 11 Personen pro Stufe
5 Wirbelwind (+K) 15 behindert alle Schützen zu 50%
5 Astralschutzgeister (+K) 5*L behindert Kampfzauber
5 E... magischen Kräuterb. 30,1P,M Artefakt
6 Meditation 2 überträgt Aura
6 B... einen Erdelementar 25,M Beschädigt alle Gebäude einer Region
6 B... Sturmelementar 6*L verdoppelt Schiffsbewegung
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Heimstein 50,1P verbessert Burg dauerhaft
7 Wolfsgeheul (+K) 2*L ruft Wölfe für den Kampf
8 Blick des Basilisken (K) 1*L entfernt Gegner aus Kampf
8 Starkes Tor und ... (+K) 2*L verbessert Schutz der Burg
8 Geister bannen 6*L Antimagie
9 Weg der Bäume 3*L Stufe*5 GE aus Wald in Astralebene
9 Sog des Lebens 2*L Stufe*5 GE aus Astralebene in Wald
9 Heiliger Boden 80,3P
10 Erwecke Ents 6*L Erschafft Einheit
10 Vertrauten binden 100,5P Vertrauter
11 Segne Steinkreis 350,5P Wandelt Steinkreis zum gesegneten St.
12 Rindenhaut (+K) 4*L Verbessert Rüstung
13 B... Hitzeelementar 600 halbiert Fruchtbarkeit der Region
14 Nebel der Verwirrung 8*L Bewegung wird zufällig (nur Wald+Ozean)
15 Mahlstrom 200,M Ozeanfeld beschädigt Schiffe schwer
16 Wurzeln der Magie 250,10P,M Wald wird permanent Mallornwald
17 T... die Ebene der Hitze 800 stärker als L13, kann Region wandeln
Chaos/Draig (27 Sprüche):
-------------------------
1 Verwünschung 1*L nur Showeffekt
1 Kleine Flüche 1*L Magier verdient 50$*L
2 Feuerball (K) 1*L Schaden
3 Gabe des Chaos 2*L Magicboost
4 Mächte des Todes 5*L Erschafft Untote
5 Blutrausch (+K) 5*L,B Verbessert Kampfkraft
5 Chaosfluch 4*L behindert Zauberer
6 Rosthauch (K) 2*L zerstört Eisenwaffen
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Machtübertragung 2 überträgt Aura
7 Feuerwand 6*L Wall, macht Schaden
7 Fluch der Pestilenz 30,B erzeugt Pest
8 Wahnsinn des Krieges (+K) 3*L,B verwirbelt gegnerische Reihen
8 Beschwöre Schattendämonen 3*L erzeugt Einheit
9 E... der Trollstärke 20,1P Artefakt
9 Astraler Riss 35,M Magier der Region verlieren Aura
9 Astrales Chaos (+K) 6*L behindert Kampfzauber
10 Feuerteufel 50,M vernichtet Wälder
10 Pentagramm 10*L Antimagie
10 Unheilige Kraft 8*L,M Transformiert Untote
11 Todeswolke 40,H alle Personen der Region verlieren HP
11 Drachenruf 80,M lockt Drachen an
12 Beschwöre Schattenmeister 7*L erzeugt Einheit
12 E... ein Flammenschwert 150,M Artefakt
13 Vertrauten rufen 100,5P Vertrauter
14 Chaossog 150,B nächste Runde Tor zur Astralebene
Traum/Illaun (27 Sprüche):
--------------------------
1 Traumsenden 1*L nur Showeffekt
1 Wahrsagen 1*L Magier verdient 50$*L
1 Schattenritter (+K) 1*L Illusionen, fangen Angriffe ab
2 Grauen der Schlacht (+K) 1*L verleitet Gegner zur Flucht
2 Seelenfrieden 3*L,M reduziert deathcount der Region
3 Traumschlößchen 1*L Illusion einer Burg
3 Traum der Magie 2 Auratransfer
3 Gestaltwandlung 1*L Einheit erscheint als andere Rasse
4 Traumlesen 8 Magier erhält Regionsbericht
4 Schwere Glieder (+K) 4*L -2 Def, 50% Chance dass keine Att
5 Wiederbelebung (K+) 1*L holt Tote zurück
5 Traumbilder analysieren 5*L analysiert Sprüche auf Einheiten
6 Schlechter Schlaf 18 vermindert Lernrate in einer Region
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Schlaf (K) 1*L -2 Def, kein Att, solange bis getroffen
7 Irrlichter 2*L Bewegung wird zufällig?
7 Traumdeuten 20 spioniert Einheit aus
8 Schöne Träume 8*L zeitweilig Bonus auf alle Talente
8 Traumbilder entwirren 6*L Antimagie
9 Vertrauten rufen 100,5P Vertrauter
9 Seelenkopie 100,20P+ Reserveklon
10 Schlechte Träume 9*L zeitweilig -L/4 Talentstufen
11 Tod des Geistes (K) 2*L vermindert Talente, töten bei 0 Tagen
12 Süße Träume 30 Vermehrung wie bei Orks
14 Erschaffe ein Traumauge 10P,M Artefakt
15 Alp 350,5P,M Monster, sucht Opfer => -2 auf Talente
16 Schleier der Verwirrung 7*L mehrere Regionen: Bewegung wird zufällig
Barde/Cerddor (33 Sprüche):
---------------------------
1 Friedenslied (+K) 2 Magier kann vor Angriff fliehen
1 Gaukelleien 1*L Magier verdient 50$*L
2 Lied der Heilung (K+) 1*L heilt Verwundete
2 Hohes Lied der Gaukelei 2*L Unterhaltungsmaximum zeitweilig doppelt
3 Regentanz 1*L Bauern verdienen 1 Silber mehr
3 Gesang der Furcht (K) 1*L Gegner versuchen zu fliehen
4 Gesang des Werbens 2*L rekrutiert Bauern
4 Gesang der Verwirrung (+K) 2*L verwirbelt gegnerische Reihen
4 Plappermaul 10 spioniert Einheit aus
5 Heldengesang (+K) 2*L Krieger widerstehen einigen Effekten
5 Gesang des Auratransfers 2 überträgt Aura
5 G... Lebens analysieren 10 analysiert Zauber auf Einheit
5 Bannlied (+K) 5*L behindert Kampfzauber
6 Monster friedlich stimmen 15 verhindert Monsterangriffe
6 Lied der Verführung 12 Einheit schenkt Magier 50% Besitz
6 E... des wahren Sehens 50,$ Artefakt
6 E... der Unsichtbarkeit 50,$ Artefakt
7 Schaler Wein 4*L,M,$ Opfer vergißt bis 60 Talenttage
7 Aushorchen 4,$ Magier erhält Regionsbericht
7 Kriegsgesang (+K) 5*L verbessert Kampfkraft
8 Gesang der Angst 5*L Malus auf Att und Def
8 L... Ortes analysieren 3*L analysiert Zauber auf Objekten/Regionen
8 Lebenslied festigen 5*L Antimagie
9 Ritual der Aufnahme 3*L,1P*L L Personen können Partei wechseln
9 Vertrauten rufen 100,5P Vertrauter
10 Mob aufwiegeln 4*L Erzeugt Einheit
10 Gesang des wachen Geistes 2*L verbessert Magieresistenz in Region
11 Gesang der Melancholie 40 kein Unterhaltunssilber verfügbar
11 Miriams flinke Finger 20,1P,$ Artefakt
12 G... schwachen Geistes 2*L vermindert Magieresistenz in Region
12 G... der Friedfertigkeit 20*L verhindert Kämpfe
13 Gesang der Versklavung 40 Opfer wechselt zeitweilig Partei
15 Aufruhr beschwichtigen 30 Löst Mob (L10) auf
Astral/Tybied (32 Sprüche):
---------------------------
1 Magie analysieren 1*L analysiert Zauber
1 Schleieraura 1*L verbirgt Ausrüstung einer Einheit
1 Wunderdoktor 1*L Magier verdient 50$*L
2 Schutz vor Magie (+K) 3*L behindert Kampfzauber
2 Astraler Blick 1*L sieht Einheiten in Astralebene
3 Schutzzauber 5*L verbessert Magieresistenz einer Einheit
3 Beute bewahren (K+) 1*L vermindert Zerstörung von Gegenständen
4 Astraler Weg 2*L schiebt (L-3)*15 GE in Astralebene
4 Astraler Ausgang 2*L schiebt (L-3)*15 GE in Realität
5 Auratransfer 1 transferiert Aura, auch andere Gebiete
5 Schockwelle (K) 1*L verhindert nächste Attacke
5 Astrale Schwächezone 3*L Antimagiezone
5 E... des wahren Sehens 50,$ Artefakt
6 Astraler Ruf 2*L zieht (L-3)*15 GE in Astralebene
6 Ruf der Realität 2*L zieht (L-3)*15 GE in Realität
6 Stehle Aura 2*L entzieht anderem Magier Aura
6 Luftschiff 10,M läßt Boot/Langboot fliegen
6 E... der Unsichtbarkeit 50,$ Artefakt
7 E... Antimagiekristall 50,$ Item, das Antimagiezone erzeugt
7 Magiefresser 3*L Antimagie
8 Runen des Schutzes 20 +20% Magieresistenz bei Burgen/Schiffen
8 Schild des Fisches (+K) 4*L vermindert Schaden
9 Beschleunigung (+K) 5*L verdoppelt Attacken
9 E... einen Ring der Macht 100,$ Artefakt
10 Blick in die Realität 40 sieht Region aus Astralebene
10 E... Negativen Gewichts 30,1P,$ Artefakt
11 Zeitdehnung 5*L Doppelte Bewegung und Angriffe
12 Rüstschild (+K) 4*L verbessert Rüstung
12 Vertrauten rufen 100,5P Vertrauter
13 Belebtes Gestein 10,5P,M Versetzt Burg samt Besatzung
14 Störe Astrale Integrität 140
15 Opfere Kraft 100 transferiert permanente Aura

View file

@ -1,84 +1,84 @@
Elfen
-----
Waldelfen
Hochelfen
Grauelfen
Meerelfen
Auelfen
Dunkelelfen
Sylphen
Halblinge
---------
Kender
Meermenschen
------------
Nymphen
Meervolk
Echsen
Zentauren
---------
Satyre
Zwerge
------
Duergar
Katzen
------
Tiger
Löwen
Panter
Wolf
Rakshasa
Trolle
------
Olog-Hai
Riesen
Oger
Orks
----
Uruks
Gnolle
Hobgoblin
Troglodyte
Insekten
--------
Dämonen
-------
Teufel
Goblins
-------
Kobolde
Gnome
Wichtel
Elfen
-----
Waldelfen
Hochelfen
Grauelfen
Meerelfen
Auelfen
Dunkelelfen
Sylphen
Halblinge
---------
Kender
Meermenschen
------------
Nymphen
Meervolk
Echsen
Zentauren
---------
Satyre
Zwerge
------
Duergar
Katzen
------
Tiger
Löwen
Panter
Wolf
Rakshasa
Trolle
------
Olog-Hai
Riesen
Oger
Orks
----
Uruks
Gnolle
Hobgoblin
Troglodyte
Insekten
--------
Dämonen
-------
Teufel
Goblins
-------
Kobolde
Gnome
Wichtel

View file

@ -1,239 +1,239 @@
TODO, FEATURES, usw:
- alte Artefakte sollten auch permanente Aura kosten
- Traumauge auf 5 PA senken.
- news.silly:
- Statistik der Regionen mit den meisten Gräbern
- Wahl zur unbeliebtesten Region der Welt (Wo Bauern am wenigsten gern sein
wollen).
- NEW_ITEMS:
- SILVERWEIGHT, silber nicth doppelt berechnen.
- Monster sollten die Runde nach dem Auftauchen nicht angreifen können.
- Alchemie: Mehr als einen Trank/Runde brauen
Tränke aufwerte/billiger machen
- items, die man selber benennen kann.
namen werden reserviert für eine partei, jede partei nur endlich viele.
derartige items wiegen nichts, können frei gehandelt werden
spezielle option, um solche items an beliebige einheiten zu übergeben
(amulett des treffens, u.ä.)
- Tränke aufwerten,
- Gebäude für Dämonen?
- Parteiwissen
- Mails "von Einheiten an Einheiten".
- Neue Schiffstypen
- Meditation / Trance?
langer Befehl, bringt doppelte Regeneration, braucht Heiligen Hain
oder Magierturm?
- Linear Stufenabhängige Zauber ausbauen, ist wohl zu verwirrend, das
ein Zauber Stufenabhängig ist aber nicht in der Stufe variiert werden
kann.
- parteigetarnte alliierte angreifbar machen. siehe mail an e-kom, enno, 29.8.00
- Anmeldungen direkt in den mapper integrieren
+ HELFE-Gruppen
- Wiederanmeldungen im Wochenbericht von Erstanmeldungen trennen
- Nichtmeermenschen Piraterie einfacher machen. (20 Lerntage auf See?
Geringer Arbeitslohn?)
- battle.c: evtl. kann man sich b->fighters sparen?
- struct building: ein paar der variablen können auch attribute sein, siehe header
+ battle.c: b->see_matrix = calloc((max_fac_no+1), sizeof(boolean *));
(enno) die see_matrix ist als speichermethode ziemlich ineffizient,
da es eine sparse matrix ist. besser so machen wie in cansee()
- battle.c: Drüber nachdenken, ob struct battle wirklich dynamisch angelegt werden sollte.
(enno) nein, eigentlich sollte sie das nicht...
- mehr Geländeunterschiede. Vorschläge:
- Sumpf: bewegung -1
+ potion effects werden bei transfermen nicht skaliert.
spätestens im item-source wird das gefixt.
- Durch übergeben kann man Silber vor Beklaue schützen
- Botschaft an Einheit <nr> gibt als Meldung nur
'Eine Botschaft von xyz: "<nr>"'
- Schiffeversenken gibt kaputte Meldung
Cef'az (c142) in Dór'Aglar (18,-16) versenkt die X~Lc^H~@~[c^H^X~Gc^Hm
(17).
(Das Schiff war die Cir'mor (1142), Langboot)
- Monsterauseinanderlaufen klappt nicht.
+ cansee() fehlt in vielen Zaubern.
+ parser hat neuerdings ein umlautproblem (unter windows) (Öl->l)
+ gräber verwittern
- kampfzauber im cr anzeigen.
- umlautfix fixen.
+ Frubilaszat (Lhmc) findet 0 Blasenmorcheln.
+ schiffsfix fixen.
+ handel vereinfachen.
? Durch Fahre/Transportiere können Nichtschwimmer/Nichtflieger über
Meerengen, wenn ein Schwimmer/Flieger sie transportiert. Rast auf
dem Meer ist für sie aber nicht möglich. Evt. kann man da tricksen,
muß überprüft werden.
- Transportkapazität sollte in race[].
+ Lehre-Meldungen:
skill-Nummern werden nirgends definiert.
(enno) da muß eine liste her, in einem rules.cr
(enno) oder besser, wir geben die namen aus.
- Fehler-beschreibungen sind inkonsistent:
> "Dusei-Endlager (cawk) ist mindestens gleich gut wie wir.";error
aber
> 65;errno
(statt "Die Lernkosten können nicht bezahlt werden")
- Unterhalt-Zahlungen:
Es fehlt Unterscheidung zwischen Bezahlung und nicht-bezahlung,
sowie der Betrag.
(enno) ja, ist schwer, wegen der komplexen message.
+ Luxusgut-Ein-/Verkauf:
Warum auf 2 Messages aufspalten ?
(enno) warum nicht.
(corwin) Weil nur noch ne uninteressante Message mehr?
? casualties-Messages nicht definiert. (Was soll die machen?)
(enno)
- Die sollen in render.c eine Spezialbehandlung bekommen.
+ Quickfix: Eine einfache Ausgabe für den NR.
+ hilfen für ehmv/vorlage im CR (NUMMER, TEMP)
- Werte mit 0 wieder in den CR aufnehmen (angefangen)
+ lerntage -> lernpunkte (doku)
- Eine Konstruktion der Form
new_message(...,"%s:bla",buf) funktioniert nicht. Es werden
Nonsens-Strings ausgegeben:
Nummer 5r94 (5r94) in Syvanrylfed (4,4) produziert 85 Schwerter aus
Optionen: AUSWERTUNG ZUGVORLAGE SILBERPOOL STATISTIK MERIAN ADRESSEN
Wird da evt. nur der Zeiger auf Buf gespeichert? Oha, dann haben
wir bei vielen Messages ein Problem.
-> (enno) stimmt. Der übergebene String darf nicht mehr verändert werden,
strdup() ist dein freund. Um das anders zu machen, könnte man in
new_message() einstrdup() machen, wenn der typ %s gefuden wird.
-> strings sollten allerdings eh selten sein, da ja meist locale-dependent.
ausnahmen sind eigentlich nur namen.
-> passiert bei allen Zauberfehlermeldungen
- Einordnung der Messages klappt scheinbar nicht, es stehen auch
Produktionsmessages unter Meldungen und Fehler.
-> Die Einordnung ist erst später dazugekommen, und wird noch kaum
irgendwo benutzt
+ Unterscheidung unitid(mage), "Jemand" in der Ausgabe ist z.B.
beim Zauber Erwecke Ents fehlerhaft. (Die zaubernde Partei bekommt
ein 'Jemand ...' in den Regionsmessages.) Fehler wohl erst beim
Rendering: v_mage_de bekommt i=0 obwohl bei allen Erzeugern ein
mage angegeben wird.
(katja) scheint zu funktionieren
Implementationslücken:
Es fehlen noch Sprüche für
- Tybied (20):
Stufe 13
Artefakte zerstören (ist noch unsinnig, da es keine Artefakte mit
mehr als 1 Aura gibt)
zusätzlich wäre schön:
niedrigstufiger Combatspell
Stufe 11 Non-Combat
Stufe 12 Non-Combat
- Illaun(15):
Stufe 1
Stufe 13
Stufe 14
Für diese Zauber fehlen noch Ideen
zusätzlich wäre schön:
Stufe 2 Non-Combat
Stufe 7 Non-Combat
- Gwyrrd(27):
Stufe 11
Stufe 12
Hier sind noch einige nicht weiter ausgearbeitete Zauberideen
vorhanden
- Cerddor(26):
Stufe 14
Hier sind noch einige nicht weiter ausgearbeitete Zauberideen
vorhanden, aber alles eher niedrigstufige
- Draig(18):
Stufe 1
Stufe 13
Wahnsinn (Einheit, negativ)
Hier fehlt nur die Implementation
zusätzlich wäre schön:
Stufe 2 Non-Combat
Dann gibt es für jedes Gebiet zu jeder Stufe kleiner 15 mindestens einen
normalen Spruch.
Kristall des Schutzes
Der Kristall erhöht im Kampf die für die Berechnung der
Magieresistenz angesetzte Stufe von 500 Personen (wenn
Besitzer ein Magier) oder 200 Personen (wenn Besitzer kein
Magier) der eigenen Partei (oder, wenn alle Personen der eigenen
geschützt sind, von Alliierten) um 25%. Der Besitzer muß kein
Magier sein. Implementation über ein Flag, welches vor dem Kampf
gesetzt wird. Sollte teuer sein, da Wirkung ziemlich heftig.
TODO, FEATURES, usw:
- alte Artefakte sollten auch permanente Aura kosten
- Traumauge auf 5 PA senken.
- news.silly:
- Statistik der Regionen mit den meisten Gräbern
- Wahl zur unbeliebtesten Region der Welt (Wo Bauern am wenigsten gern sein
wollen).
- NEW_ITEMS:
- SILVERWEIGHT, silber nicth doppelt berechnen.
- Monster sollten die Runde nach dem Auftauchen nicht angreifen können.
- Alchemie: Mehr als einen Trank/Runde brauen
Tränke aufwerte/billiger machen
- items, die man selber benennen kann.
namen werden reserviert für eine partei, jede partei nur endlich viele.
derartige items wiegen nichts, können frei gehandelt werden
spezielle option, um solche items an beliebige einheiten zu übergeben
(amulett des treffens, u.ä.)
- Tränke aufwerten,
- Gebäude für Dämonen?
- Parteiwissen
- Mails "von Einheiten an Einheiten".
- Neue Schiffstypen
- Meditation / Trance?
langer Befehl, bringt doppelte Regeneration, braucht Heiligen Hain
oder Magierturm?
- Linear Stufenabhängige Zauber ausbauen, ist wohl zu verwirrend, das
ein Zauber Stufenabhängig ist aber nicht in der Stufe variiert werden
kann.
- parteigetarnte alliierte angreifbar machen. siehe mail an e-kom, enno, 29.8.00
- Anmeldungen direkt in den mapper integrieren
+ HELFE-Gruppen
- Wiederanmeldungen im Wochenbericht von Erstanmeldungen trennen
- Nichtmeermenschen Piraterie einfacher machen. (20 Lerntage auf See?
Geringer Arbeitslohn?)
- battle.c: evtl. kann man sich b->fighters sparen?
- struct building: ein paar der variablen können auch attribute sein, siehe header
+ battle.c: b->see_matrix = calloc((max_fac_no+1), sizeof(boolean *));
(enno) die see_matrix ist als speichermethode ziemlich ineffizient,
da es eine sparse matrix ist. besser so machen wie in cansee()
- battle.c: Drüber nachdenken, ob struct battle wirklich dynamisch angelegt werden sollte.
(enno) nein, eigentlich sollte sie das nicht...
- mehr Geländeunterschiede. Vorschläge:
- Sumpf: bewegung -1
+ potion effects werden bei transfermen nicht skaliert.
spätestens im item-source wird das gefixt.
- Durch übergeben kann man Silber vor Beklaue schützen
- Botschaft an Einheit <nr> gibt als Meldung nur
'Eine Botschaft von xyz: "<nr>"'
- Schiffeversenken gibt kaputte Meldung
Cef'az (c142) in Dór'Aglar (18,-16) versenkt die X~Lc^H~@~[c^H^X~Gc^Hm
(17).
(Das Schiff war die Cir'mor (1142), Langboot)
- Monsterauseinanderlaufen klappt nicht.
+ cansee() fehlt in vielen Zaubern.
+ parser hat neuerdings ein umlautproblem (unter windows) (Öl->l)
+ gräber verwittern
- kampfzauber im cr anzeigen.
- umlautfix fixen.
+ Frubilaszat (Lhmc) findet 0 Blasenmorcheln.
+ schiffsfix fixen.
+ handel vereinfachen.
? Durch Fahre/Transportiere können Nichtschwimmer/Nichtflieger über
Meerengen, wenn ein Schwimmer/Flieger sie transportiert. Rast auf
dem Meer ist für sie aber nicht möglich. Evt. kann man da tricksen,
muß überprüft werden.
- Transportkapazität sollte in race[].
+ Lehre-Meldungen:
skill-Nummern werden nirgends definiert.
(enno) da muß eine liste her, in einem rules.cr
(enno) oder besser, wir geben die namen aus.
- Fehler-beschreibungen sind inkonsistent:
> "Dusei-Endlager (cawk) ist mindestens gleich gut wie wir.";error
aber
> 65;errno
(statt "Die Lernkosten können nicht bezahlt werden")
- Unterhalt-Zahlungen:
Es fehlt Unterscheidung zwischen Bezahlung und nicht-bezahlung,
sowie der Betrag.
(enno) ja, ist schwer, wegen der komplexen message.
+ Luxusgut-Ein-/Verkauf:
Warum auf 2 Messages aufspalten ?
(enno) warum nicht.
(corwin) Weil nur noch ne uninteressante Message mehr?
? casualties-Messages nicht definiert. (Was soll die machen?)
(enno)
- Die sollen in render.c eine Spezialbehandlung bekommen.
+ Quickfix: Eine einfache Ausgabe für den NR.
+ hilfen für ehmv/vorlage im CR (NUMMER, TEMP)
- Werte mit 0 wieder in den CR aufnehmen (angefangen)
+ lerntage -> lernpunkte (doku)
- Eine Konstruktion der Form
new_message(...,"%s:bla",buf) funktioniert nicht. Es werden
Nonsens-Strings ausgegeben:
Nummer 5r94 (5r94) in Syvanrylfed (4,4) produziert 85 Schwerter aus
Optionen: AUSWERTUNG ZUGVORLAGE SILBERPOOL STATISTIK MERIAN ADRESSEN
Wird da evt. nur der Zeiger auf Buf gespeichert? Oha, dann haben
wir bei vielen Messages ein Problem.
-> (enno) stimmt. Der übergebene String darf nicht mehr verändert werden,
strdup() ist dein freund. Um das anders zu machen, könnte man in
new_message() einstrdup() machen, wenn der typ %s gefuden wird.
-> strings sollten allerdings eh selten sein, da ja meist locale-dependent.
ausnahmen sind eigentlich nur namen.
-> passiert bei allen Zauberfehlermeldungen
- Einordnung der Messages klappt scheinbar nicht, es stehen auch
Produktionsmessages unter Meldungen und Fehler.
-> Die Einordnung ist erst später dazugekommen, und wird noch kaum
irgendwo benutzt
+ Unterscheidung unitid(mage), "Jemand" in der Ausgabe ist z.B.
beim Zauber Erwecke Ents fehlerhaft. (Die zaubernde Partei bekommt
ein 'Jemand ...' in den Regionsmessages.) Fehler wohl erst beim
Rendering: v_mage_de bekommt i=0 obwohl bei allen Erzeugern ein
mage angegeben wird.
(katja) scheint zu funktionieren
Implementationslücken:
Es fehlen noch Sprüche für
- Tybied (20):
Stufe 13
Artefakte zerstören (ist noch unsinnig, da es keine Artefakte mit
mehr als 1 Aura gibt)
zusätzlich wäre schön:
niedrigstufiger Combatspell
Stufe 11 Non-Combat
Stufe 12 Non-Combat
- Illaun(15):
Stufe 1
Stufe 13
Stufe 14
Für diese Zauber fehlen noch Ideen
zusätzlich wäre schön:
Stufe 2 Non-Combat
Stufe 7 Non-Combat
- Gwyrrd(27):
Stufe 11
Stufe 12
Hier sind noch einige nicht weiter ausgearbeitete Zauberideen
vorhanden
- Cerddor(26):
Stufe 14
Hier sind noch einige nicht weiter ausgearbeitete Zauberideen
vorhanden, aber alles eher niedrigstufige
- Draig(18):
Stufe 1
Stufe 13
Wahnsinn (Einheit, negativ)
Hier fehlt nur die Implementation
zusätzlich wäre schön:
Stufe 2 Non-Combat
Dann gibt es für jedes Gebiet zu jeder Stufe kleiner 15 mindestens einen
normalen Spruch.
Kristall des Schutzes
Der Kristall erhöht im Kampf die für die Berechnung der
Magieresistenz angesetzte Stufe von 500 Personen (wenn
Besitzer ein Magier) oder 200 Personen (wenn Besitzer kein
Magier) der eigenen Partei (oder, wenn alle Personen der eigenen
geschützt sind, von Alliierten) um 25%. Der Besitzer muß kein
Magier sein. Implementation über ein Flag, welches vor dem Kampf
gesetzt wird. Sollte teuer sein, da Wirkung ziemlich heftig.

View file

@ -1,111 +1,111 @@
==-------------------==
New Style Eventhandling
==-------------------==
Zweck des ganzen ist es, möglichst frei Reaktionen auf Ereignisse zu
implementieren. Dazu muß natürlich defineirt sein, was so ein Ereignis
ist. Sowohl die Eriegnisse als auch das, was daraufhin geschieht, muß
möglichst flexibel erweiterbar sein. außerdem sollen solche
Ereigniss-Behandlungen zur Laufzeit defineirt werden können. Die möglichen
Events kann man nur zur Compilezeit definieren, und auch die Klassen von
Behandlungsroutinen, aber festzulegen wer wann auf was reagiert sollte
durch einen Spruch, das auftauchen eines Drachen, einen Event oder den Tod
einer Einheit ausgelöst werden können, und beliebiges anderes.
Wie's geht:
Wenn durch den Code ein Event "event" ausgelöst wird, dann wird für das
betroffene Objekt X die Funktion handle_event(X->attribs, "event")
aufgerufen. Ja, der Event ist ein String.
handle_event(a, e) sucht in der Liste der attribute nach einem
at_eventhandler Objekt. So ein at_eventhandler verwaltet eine Liste von
Trigger-Objekten trigger_list mit Daten und handle() Funktion, die im Fall
des Events aufgerufen wird. Für jeden event-typ (string) gibt es ein
solches at_eventhandler Attribut in der Attributliste, das mehrere
Trigger-Funktionen beinhalten kann. Ich glaube, die hat Ingo in seinem
Ansatz "action" getauft.
Wurde ein Passendes gefunden, dann wird der Reihe nach jeder Trigger
ausgeführt.
Das ganze wird im Datenfile sogar ziemlich lesbar, wie man hier an diesem
Magier sieht:
eventhandler destroy killunit LeL end
Hier ist ein eventhandler, der im falle eines "destroy" Events auch die
Einheit LeL killt (LeL ist der Vertraute des Magiers).
Neue Trigger-Typen machen:
Neue Trigger zu definieren ist ziemlich leicht, und ich habe schonmal ein
paar flexible vordefiniert. Sie sollten möglichst im Verzeichnis triggers/
landen. Dran denken, das jeder in Eressea verwendete trigger-typ mit
tt_register() angemeldet werden muß. Das passiert in der Datei
eressea/triggers.c
Dabei lohnt es sich, die trigger etwas genereller zu mchen. Für viele von
ihnen sollte man resolve.[hc] verstanden haben, da man das zum Speichern
von Referenzen auf Parteien, Einheiten, usw. benötigt.
Trigger aktivieren:
Der Trigger sollte jeweils in der Attributliste des Objektes landen,
dessen Existnez für die Ausführung nötig ist. z.B. der Trigger zum Töten
des Familiars beim Magier, der zum übergeben eines item an eine person die
ein gebäude betritt, in das Gebäude.
Beispiel: Wenn die verzauberte Burg b zerstört wird, soll der zaubernde
Magier einen Schock erleiden:
add_trigger(&b->attribs, "destroy", trigger_shock(mage));
Steht die Burg jedoch nach 10 Runden noch an ihrem Fleck, bekommt er einen
Schatz von 100 Silber:
trigger * ttreasure = trigger_giveitem(mage, &i_silver, 100);
trigger * ttimer = trigger_timetrigger(10, ttreasure);
add_trigger(&b-attribs, "timer", ttimer);
Wie man sieht, kann ein trigger einen anderen auslösen, und mit etwas
Geschick kann man ganze Ketten von Ereignissen hinbekommen, die wieder
neue Trigger setzen, usw.
Bisher definierte Events: (NI=Not Implemented)
{building|faction|unit|ship}:"destroy" - Das Objekt verschwindet.
{building|faction|unit|ship|region}:"timer" - einmal pro Runde in
eressea.c::ageing()
{building}"enter" - Gebäude oder Schiff wird betreten (NI)
Bisher definierte trigger:
- timeout: meta-trigger, aktiviert eine liste von triggern nach einer
zeitspanne.
- changerace: ändert race/irace für eine einheit
- giveitem: gibt items eines typs an eine einheit.
- killunit: tötet die angegebene einhiet.
- shock: schockt einen magier.
- changefaction
- removecurse
adaptierte alte trigger:
- famililars:
familiar: on "destroy" shock(mage)
mage: on "destroy" killunit(familiar)
- toad:
mage: on "timer" timeout([changerace(), giveitem(toadslime)])
- summondragon:
region: on "timer" timeout([createunit()])
- magicboost:
mage: on "timer" timeout(createcurse())
- charm:
target: on "timer" changefaction(target)
new faction: on "destroy" destroy(target)
problems to be solved:
- propagation of triggers/attributes in general
- was, wenn ein removecurse(c) ausgefuehrt werden soll, aber der curse
sich propagiert hat? dafür waere wohl ein forwarding-graph ganz geeignet.
(spells:5066, alp)
TODO:
- fprintf/fscanf nochmal checken.
==-------------------==
New Style Eventhandling
==-------------------==
Zweck des ganzen ist es, möglichst frei Reaktionen auf Ereignisse zu
implementieren. Dazu muß natürlich defineirt sein, was so ein Ereignis
ist. Sowohl die Eriegnisse als auch das, was daraufhin geschieht, muß
möglichst flexibel erweiterbar sein. außerdem sollen solche
Ereigniss-Behandlungen zur Laufzeit defineirt werden können. Die möglichen
Events kann man nur zur Compilezeit definieren, und auch die Klassen von
Behandlungsroutinen, aber festzulegen wer wann auf was reagiert sollte
durch einen Spruch, das auftauchen eines Drachen, einen Event oder den Tod
einer Einheit ausgelöst werden können, und beliebiges anderes.
Wie's geht:
Wenn durch den Code ein Event "event" ausgelöst wird, dann wird für das
betroffene Objekt X die Funktion handle_event(X->attribs, "event")
aufgerufen. Ja, der Event ist ein String.
handle_event(a, e) sucht in der Liste der attribute nach einem
at_eventhandler Objekt. So ein at_eventhandler verwaltet eine Liste von
Trigger-Objekten trigger_list mit Daten und handle() Funktion, die im Fall
des Events aufgerufen wird. Für jeden event-typ (string) gibt es ein
solches at_eventhandler Attribut in der Attributliste, das mehrere
Trigger-Funktionen beinhalten kann. Ich glaube, die hat Ingo in seinem
Ansatz "action" getauft.
Wurde ein Passendes gefunden, dann wird der Reihe nach jeder Trigger
ausgeführt.
Das ganze wird im Datenfile sogar ziemlich lesbar, wie man hier an diesem
Magier sieht:
eventhandler destroy killunit LeL end
Hier ist ein eventhandler, der im falle eines "destroy" Events auch die
Einheit LeL killt (LeL ist der Vertraute des Magiers).
Neue Trigger-Typen machen:
Neue Trigger zu definieren ist ziemlich leicht, und ich habe schonmal ein
paar flexible vordefiniert. Sie sollten möglichst im Verzeichnis triggers/
landen. Dran denken, das jeder in Eressea verwendete trigger-typ mit
tt_register() angemeldet werden muß. Das passiert in der Datei
eressea/triggers.c
Dabei lohnt es sich, die trigger etwas genereller zu mchen. Für viele von
ihnen sollte man resolve.[hc] verstanden haben, da man das zum Speichern
von Referenzen auf Parteien, Einheiten, usw. benötigt.
Trigger aktivieren:
Der Trigger sollte jeweils in der Attributliste des Objektes landen,
dessen Existnez für die Ausführung nötig ist. z.B. der Trigger zum Töten
des Familiars beim Magier, der zum übergeben eines item an eine person die
ein gebäude betritt, in das Gebäude.
Beispiel: Wenn die verzauberte Burg b zerstört wird, soll der zaubernde
Magier einen Schock erleiden:
add_trigger(&b->attribs, "destroy", trigger_shock(mage));
Steht die Burg jedoch nach 10 Runden noch an ihrem Fleck, bekommt er einen
Schatz von 100 Silber:
trigger * ttreasure = trigger_giveitem(mage, &i_silver, 100);
trigger * ttimer = trigger_timetrigger(10, ttreasure);
add_trigger(&b-attribs, "timer", ttimer);
Wie man sieht, kann ein trigger einen anderen auslösen, und mit etwas
Geschick kann man ganze Ketten von Ereignissen hinbekommen, die wieder
neue Trigger setzen, usw.
Bisher definierte Events: (NI=Not Implemented)
{building|faction|unit|ship}:"destroy" - Das Objekt verschwindet.
{building|faction|unit|ship|region}:"timer" - einmal pro Runde in
eressea.c::ageing()
{building}"enter" - Gebäude oder Schiff wird betreten (NI)
Bisher definierte trigger:
- timeout: meta-trigger, aktiviert eine liste von triggern nach einer
zeitspanne.
- changerace: ändert race/irace für eine einheit
- giveitem: gibt items eines typs an eine einheit.
- killunit: tötet die angegebene einhiet.
- shock: schockt einen magier.
- changefaction
- removecurse
adaptierte alte trigger:
- famililars:
familiar: on "destroy" shock(mage)
mage: on "destroy" killunit(familiar)
- toad:
mage: on "timer" timeout([changerace(), giveitem(toadslime)])
- summondragon:
region: on "timer" timeout([createunit()])
- magicboost:
mage: on "timer" timeout(createcurse())
- charm:
target: on "timer" changefaction(target)
new faction: on "destroy" destroy(target)
problems to be solved:
- propagation of triggers/attributes in general
- was, wenn ein removecurse(c) ausgefuehrt werden soll, aber der curse
sich propagiert hat? dafür waere wohl ein forwarding-graph ganz geeignet.
(spells:5066, alp)
TODO:
- fprintf/fscanf nochmal checken.

View file

@ -1,17 +1,17 @@
[eressea]
base = .
load = setup.lua
report = reports
verbose = 0
lomem = 0
debug = 0
memcheck = 0
locales = de,en
[config]
game = eressea
source_dir = ../..
maxnmrs = 10
[editor]
color = 1
[eressea]
base = .
load = setup.lua
report = reports
verbose = 0
lomem = 0
debug = 0
memcheck = 0
locales = de,en
[config]
game = eressea
source_dir = ../..
maxnmrs = 10
[editor]
color = 1

View file

@ -1,15 +1,15 @@
local srcpath = config.source_dir
local respath = srcpath .. '/eressea/res'
local paths = {
'eressea/scripts/?.lua',
'server/scripts/?.lua',
'external/lunit/?.lua'
}
for idx, path in pairs(paths) do
package.path = srcpath .. '/' .. path .. ';' .. package.path
end
read_xml(respath..'/config-eressea.xml', respath..'/catalog-eressea.xml')
require "init"
local srcpath = config.source_dir
local respath = srcpath .. '/eressea/res'
local paths = {
'eressea/scripts/?.lua',
'server/scripts/?.lua',
'external/lunit/?.lua'
}
for idx, path in pairs(paths) do
package.path = srcpath .. '/' .. path .. ';' .. package.path
end
read_xml(respath..'/config-eressea.xml', respath..'/catalog-eressea.xml')
require "init"

View file

@ -1,17 +1,17 @@
[eressea]
base = .
load = setup.lua
report = reports
verbose = 0
lomem = 0
debug = 0
memcheck = 0
locales = de,en
[config]
game = e3a
source_dir = ../..
maxnmrs = 10
[editor]
color = 1
[eressea]
base = .
load = setup.lua
report = reports
verbose = 0
lomem = 0
debug = 0
memcheck = 0
locales = de,en
[config]
game = e3a
source_dir = ../..
maxnmrs = 10
[editor]
color = 1

View file

@ -1,15 +1,15 @@
local srcpath = config.source_dir
local respath = srcpath .. '/eressea/res'
local paths = {
'eressea/scripts/?.lua',
'server/scripts/?.lua',
'external/lunit/?.lua'
}
for idx, path in pairs(paths) do
package.path = srcpath .. '/' .. path .. ';' .. package.path
end
read_xml(respath..'/config-e3a.xml', respath..'/catalog-e3a.xml')
require "init"
local srcpath = config.source_dir
local respath = srcpath .. '/eressea/res'
local paths = {
'eressea/scripts/?.lua',
'server/scripts/?.lua',
'external/lunit/?.lua'
}
for idx, path in pairs(paths) do
package.path = srcpath .. '/' .. path .. ';' .. package.path
end
read_xml(respath..'/config-e3a.xml', respath..'/catalog-e3a.xml')
require "init"

View file

@ -1,24 +1,24 @@
<?xml version="1.0"?>
<building name="castle" capacity="1">
<function name="name" value="castle_name_2"/>
<function name="protection" value="lua_building_protection"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="10" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
</building>
<?xml version="1.0"?>
<building name="castle" capacity="1">
<function name="name" value="castle_name_2"/>
<function name="protection" value="lua_building_protection"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="10" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
</building>

View file

@ -1,26 +1,26 @@
<?xml version="1.0"?>
<building name="castle" capacity="1">
<function name="name" value="castle_name"/>
<function name="protection" value="eressea_building_protection"/>
<construction skill="building" minskill="1" maxsize="2" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="1" maxsize="8" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
</building>
<?xml version="1.0"?>
<building name="castle" capacity="1">
<function name="name" value="castle_name"/>
<function name="protection" value="eressea_building_protection"/>
<construction skill="building" minskill="1" maxsize="2" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="1" maxsize="8" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="40" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="3" maxsize="200" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="4" maxsize="1000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="5" maxsize="5000" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
<construction skill="building" minskill="6" reqsize="1">
<requirement type="stone" quantity="1"/>
</construction>
</building>

View file

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="eressea:///core/"
rewritePrefix="../../server/res/" />
</catalog>
<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="eressea:///core/"
rewritePrefix="../../server/res/" />
</catalog>

View file

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="eressea:///core/"
rewritePrefix="../../server/res/" />
</catalog>
<?xml version="1.0"?>
<!DOCTYPE catalog
PUBLIC "-//OASIS/DTD Entity Resolution XML Catalog V1.0//EN"
"http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<rewriteURI
uriStartString="eressea:///core/"
rewritePrefix="../../server/res/" />
</catalog>

View file

@ -1,193 +1,193 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="eressea:///core/messages.xml"/>
<!-- Localization -->
<xi:include href="eressea:///core/de/strings.xml"/>
<xi:include href="eressea:///core/en/strings.xml"/>
<xi:include href="eressea:///core/common/items.xml"/>
<xi:include href="eressea:///core/common/herbs.xml" />
<xi:include href="eressea:///core/spoils.xml"/>
<xi:include href="eressea:///core/prefixes.xml"/>
<xi:include href="eressea:///core/common/buildings.xml"/>
<xi:include href="eressea:///core/equipment.xml"/>
<xi:include href="directions.xml"/>
<xi:include href="e3a/ships.xml"/>
<xi:include href="e3a/shipnames.xml"/>
<xi:include href="e3a/terrains.xml"/>
<xi:include href="eressea:///core/calendar.xml"/>
<calendar name="thirdage" newyear="month_1" start="1"/>
<xi:include href="e3a/items.xml" />
<xi:include href="e3a/strings.xml"/>
<xi:include href="e3a/messages.xml"/>
<xi:include href="e3a/races.xml"/>
<xi:include href="e3a/buildings.xml"/>
<xi:include href="e3a/equipment.xml"/>
<xi:include href="e3a/spells.xml"/>
<xi:include href="e3a/luxuries.xml" />
<xi:include href="e3a/weapons.xml" />
<xi:include href="e3a/armor.xml" />
<xi:include href="e3a/resources.xml" />
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="10"/>
<item name="stone" amount="10"/>
<item name="money" amount="5000"/>
</set>
</equipment>
<xi:include href="names-undead.xml"/>
<xi:include href="names-skeletons.xml"/>
<xi:include href="names-zombies.xml"/>
<xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/>
<game name="E3">
<!-- Game specific settings -->
<param name="database.gameid" value="7"></param>
<!--order name="ARBEITEN" disable="yes"/-->
<order name="BETEN" disable="yes"/>
<order name="BELAGERE" disable="yes"/>
<order name="BEKLAUEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" disable="yes"/>
<order name="KAUFEN" disable="yes"/>
<order name="LEHREN" disable="yes"/>
<order name="LIEFERE" disable="yes"/>
<order name="OPFERE" disable="yes"/>
<order name="SABOTIEREN" disable="yes"/>
<order name="SPIONIEREN" disable="yes"/>
<order name="TARNEN" disable="yes"/>
<order name="TREIBEN" disable="yes"/>
<order name="UNTERHALTEN" disable="yes"/>
<order name="VERKAUFEN" disable="yes"/>
<order name="WERWESEN" disable="yes"/>
<order name="XONTORMIA" disable="yes"/>
<skill name="armorer" enable="true"/>
<skill name="bow" enable="true"/>
<skill name="building" enable="true"/>
<skill name="cartmaking" enable="true"/>
<skill name="catapult" enable="true"/>
<skill name="crossbow" enable="true"/>
<skill name="forestry" enable="true"/>
<skill name="magic" enable="true"/>
<skill name="melee" enable="true"/>
<skill name="mining" enable="true"/>
<skill name="polearm" enable="true"/>
<skill name="quarrying" enable="true"/>
<skill name="riding" enable="true"/>
<skill name="roadwork" enable="true"/>
<skill name="sailing" enable="true"/>
<skill name="shipcraft" enable="true"/>
<skill name="stamina" enable="true"/>
<skill name="tactics" enable="true"/>
<skill name="training" enable="true"/>
<skill name="unarmed" enable="true"/>
<skill name="weaponsmithing" enable="true"/>
<skill name="herbalism" enable="false"/>
<skill name="alchemy" enable="false"/>
<skill name="entertainment" enable="false"/>
<skill name="espionage" enable="false"/>
<skill name="perception" enable="false"/>
<skill name="stealth" enable="false"/>
<skill name="taxation" enable="false"/>
<skill name="trade" enable="false"/>
<param name="NewbieImmunity" value="9"/> <!-- ends after turn 9 -->
<param name="modules.astralspace" value="0"/>
<param name="modules.wormholes" value="0"/>
<param name="modules.markets" value="1"/>
<!-- resource limitations -->
<param name="magic.regeneration" value="0.75"/>
<param name="magic.power" value="0.5"/>
<param name="resource.factor" value="0.25"/>
<param name="skills.cost.tactics" value="500"/>
<param name="entertain.base" value="0"/>
<param name="entertain.perlevel" value="20"/>
<param name="nmr.timeout" value="5"/>
<param name="nmr.removenewbie" value="0"/>
<param name="GiveRestriction" value="3"/>
<param name="hunger.long" value="0"/>
<param name="hunger.demon.skill" value="1"/>
<param name="hunger.damage" value="1d9+9"/>
<param name="hunger.demons" value="1"/>
<param name="init_spells" value="0"/>
<param name="recruit.allow_merge" value="1"/>
<param name="study.expensivemigrants" value="1"/>
<param name="study.speedup" value="0"/>
<param name="world.era" value="3"/>
<param name="rules.migrants" value="0"/>
<param name="rules.transfermen" value="0"/>
<param name="rules.stealth.faction" value="0"/>
<param name="rules.check_overload" value="0"/>
<param name="rules.combat.goblinbonus" value="3"/>
<param name="rules.ship.damage_drift" value="0.00"/> <!-- percent damage from drifting-->
<param name="rules.alliances" value="1"/>
<param name="rules.combat.herospeed" value="3"/>
<param name="rules.combat.demon_vampire" value="5"/> <!-- regen 1 hp per X points of damage done -->
<param name="rules.combat.skill_bonus" value="0"/>
<!--param name="rules.combat.loot" value="5"/--> <!-- only self + others - keeploot -->
<param name="rules.items.loot_divisor" value="2"/> <!-- damage skims off 1/2 of goods transfers -->
<param name="rules.items.give_divisor" value="2"/> <!-- corruption skims off 1/2 of goods transfers -->
<param name="rules.move.owner_leave" value="1"/> <!-- owner must leave before moving -->
<param name="rules.region_owners" value="1"/>
<param name="rules.cavalry.skill" value="2"/>
<param name="rules.cavalry.mode" value="1"/>
<param name="rules.magic.multipotion" value="1"/>
<param name="rules.magic.wol_effect" value="5"/>
<param name="rules.magic.factionlist" value="1"/>
<param name="rules.magic.wol_type" value="2"/>
<param name="rules.magic.blessed_harvest" value="1"/>
<param name="rules.magic.common" value="tybied"/> <!-- tybied spells can be cast by anyone -->
<param name="rules.magic.elfpower" value="1"/> <!-- elves get ring-of-power bonus in a forest -->
<param name="rules.magic.playerschools" value="gwyrrd illaun draig cerddor"/>
<param name="rules.build.other_buildings" value="1"/>
<param name="rules.economy.taxation" value="1"/>
<param name="rules.economy.food" value="2"/>
<param name="rules.economy.wages" value="1"/>
<param name="rules.economy.roqf" value="5"/>
<param name="rules.economy.herbrot" value="0"/>
<param name="rules.dwarf_castles" value="1"/>
<!-- param name="rules.nmr.destroy" value="1"/ -->
<param name="rules.limit.faction" value="250"/>
<!--param name="rules.give" value="15"/ --> <!-- self + peasants + herbs + lux - goods -->
<param name="rules.economy.grow" value="1"/>
<param name="rules.tactics.formula" value="1"/> <!-- 10% per skilldiff -->
<param name="rules.help.mask" value="fight guard money give"/>
<param name="movement.shipspeed.skillbonus" value="6"/>
<param name="alliance.auto" value="fight"/>
<param name="alliance.restricted" value="fight"/>
</game>
<rules>
<function name="wage" value="minimum_wage"/>
</rules>
<strings>
<string name="mailto">
<text locale="de">eressea-server@eressea.de</text>
<text locale="en">eressea-server@eressea.de</text>
</string>
<string name="newbie_info_1">
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
E3 BEFEHLE an eressea-server@eressea.de zu senden.</text>
<text locale="en">Remember to send your orders to
eressea-server@eressea.de with the subject E3 ORDERS.</text>
</string>
<string name="mailcmd">
<text locale="de">E3 BEFEHLE</text>
<text locale="en">E3 ORDERS</text>
</string>
</strings>
</eressea>
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="eressea:///core/messages.xml"/>
<!-- Localization -->
<xi:include href="eressea:///core/de/strings.xml"/>
<xi:include href="eressea:///core/en/strings.xml"/>
<xi:include href="eressea:///core/common/items.xml"/>
<xi:include href="eressea:///core/common/herbs.xml" />
<xi:include href="eressea:///core/spoils.xml"/>
<xi:include href="eressea:///core/prefixes.xml"/>
<xi:include href="eressea:///core/common/buildings.xml"/>
<xi:include href="eressea:///core/equipment.xml"/>
<xi:include href="directions.xml"/>
<xi:include href="e3a/ships.xml"/>
<xi:include href="e3a/shipnames.xml"/>
<xi:include href="e3a/terrains.xml"/>
<xi:include href="eressea:///core/calendar.xml"/>
<calendar name="thirdage" newyear="month_1" start="1"/>
<xi:include href="e3a/items.xml" />
<xi:include href="e3a/strings.xml"/>
<xi:include href="e3a/messages.xml"/>
<xi:include href="e3a/races.xml"/>
<xi:include href="e3a/buildings.xml"/>
<xi:include href="e3a/equipment.xml"/>
<xi:include href="e3a/spells.xml"/>
<xi:include href="e3a/luxuries.xml" />
<xi:include href="e3a/weapons.xml" />
<xi:include href="e3a/armor.xml" />
<xi:include href="e3a/resources.xml" />
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="10"/>
<item name="stone" amount="10"/>
<item name="money" amount="5000"/>
</set>
</equipment>
<xi:include href="names-undead.xml"/>
<xi:include href="names-skeletons.xml"/>
<xi:include href="names-zombies.xml"/>
<xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/>
<game name="E3">
<!-- Game specific settings -->
<param name="database.gameid" value="7"></param>
<!--order name="ARBEITEN" disable="yes"/-->
<order name="BETEN" disable="yes"/>
<order name="BELAGERE" disable="yes"/>
<order name="BEKLAUEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" disable="yes"/>
<order name="KAUFEN" disable="yes"/>
<order name="LEHREN" disable="yes"/>
<order name="LIEFERE" disable="yes"/>
<order name="OPFERE" disable="yes"/>
<order name="SABOTIEREN" disable="yes"/>
<order name="SPIONIEREN" disable="yes"/>
<order name="TARNEN" disable="yes"/>
<order name="TREIBEN" disable="yes"/>
<order name="UNTERHALTEN" disable="yes"/>
<order name="VERKAUFEN" disable="yes"/>
<order name="WERWESEN" disable="yes"/>
<order name="XONTORMIA" disable="yes"/>
<skill name="armorer" enable="true"/>
<skill name="bow" enable="true"/>
<skill name="building" enable="true"/>
<skill name="cartmaking" enable="true"/>
<skill name="catapult" enable="true"/>
<skill name="crossbow" enable="true"/>
<skill name="forestry" enable="true"/>
<skill name="magic" enable="true"/>
<skill name="melee" enable="true"/>
<skill name="mining" enable="true"/>
<skill name="polearm" enable="true"/>
<skill name="quarrying" enable="true"/>
<skill name="riding" enable="true"/>
<skill name="roadwork" enable="true"/>
<skill name="sailing" enable="true"/>
<skill name="shipcraft" enable="true"/>
<skill name="stamina" enable="true"/>
<skill name="tactics" enable="true"/>
<skill name="training" enable="true"/>
<skill name="unarmed" enable="true"/>
<skill name="weaponsmithing" enable="true"/>
<skill name="herbalism" enable="false"/>
<skill name="alchemy" enable="false"/>
<skill name="entertainment" enable="false"/>
<skill name="espionage" enable="false"/>
<skill name="perception" enable="false"/>
<skill name="stealth" enable="false"/>
<skill name="taxation" enable="false"/>
<skill name="trade" enable="false"/>
<param name="NewbieImmunity" value="9"/> <!-- ends after turn 9 -->
<param name="modules.astralspace" value="0"/>
<param name="modules.wormholes" value="0"/>
<param name="modules.markets" value="1"/>
<!-- resource limitations -->
<param name="magic.regeneration" value="0.75"/>
<param name="magic.power" value="0.5"/>
<param name="resource.factor" value="0.25"/>
<param name="skills.cost.tactics" value="500"/>
<param name="entertain.base" value="0"/>
<param name="entertain.perlevel" value="20"/>
<param name="nmr.timeout" value="5"/>
<param name="nmr.removenewbie" value="0"/>
<param name="GiveRestriction" value="3"/>
<param name="hunger.long" value="0"/>
<param name="hunger.demon.skill" value="1"/>
<param name="hunger.damage" value="1d9+9"/>
<param name="hunger.demons" value="1"/>
<param name="init_spells" value="0"/>
<param name="recruit.allow_merge" value="1"/>
<param name="study.expensivemigrants" value="1"/>
<param name="study.speedup" value="0"/>
<param name="world.era" value="3"/>
<param name="rules.migrants" value="0"/>
<param name="rules.transfermen" value="0"/>
<param name="rules.stealth.faction" value="0"/>
<param name="rules.check_overload" value="0"/>
<param name="rules.combat.goblinbonus" value="3"/>
<param name="rules.ship.damage_drift" value="0.00"/> <!-- percent damage from drifting-->
<param name="rules.alliances" value="1"/>
<param name="rules.combat.herospeed" value="3"/>
<param name="rules.combat.demon_vampire" value="5"/> <!-- regen 1 hp per X points of damage done -->
<param name="rules.combat.skill_bonus" value="0"/>
<!--param name="rules.combat.loot" value="5"/--> <!-- only self + others - keeploot -->
<param name="rules.items.loot_divisor" value="2"/> <!-- damage skims off 1/2 of goods transfers -->
<param name="rules.items.give_divisor" value="2"/> <!-- corruption skims off 1/2 of goods transfers -->
<param name="rules.move.owner_leave" value="1"/> <!-- owner must leave before moving -->
<param name="rules.region_owners" value="1"/>
<param name="rules.cavalry.skill" value="2"/>
<param name="rules.cavalry.mode" value="1"/>
<param name="rules.magic.multipotion" value="1"/>
<param name="rules.magic.wol_effect" value="5"/>
<param name="rules.magic.factionlist" value="1"/>
<param name="rules.magic.wol_type" value="2"/>
<param name="rules.magic.blessed_harvest" value="1"/>
<param name="rules.magic.common" value="tybied"/> <!-- tybied spells can be cast by anyone -->
<param name="rules.magic.elfpower" value="1"/> <!-- elves get ring-of-power bonus in a forest -->
<param name="rules.magic.playerschools" value="gwyrrd illaun draig cerddor"/>
<param name="rules.build.other_buildings" value="1"/>
<param name="rules.economy.taxation" value="1"/>
<param name="rules.economy.food" value="2"/>
<param name="rules.economy.wages" value="1"/>
<param name="rules.economy.roqf" value="5"/>
<param name="rules.economy.herbrot" value="0"/>
<param name="rules.dwarf_castles" value="1"/>
<!-- param name="rules.nmr.destroy" value="1"/ -->
<param name="rules.limit.faction" value="250"/>
<!--param name="rules.give" value="15"/ --> <!-- self + peasants + herbs + lux - goods -->
<param name="rules.economy.grow" value="1"/>
<param name="rules.tactics.formula" value="1"/> <!-- 10% per skilldiff -->
<param name="rules.help.mask" value="fight guard money give"/>
<param name="movement.shipspeed.skillbonus" value="6"/>
<param name="alliance.auto" value="fight"/>
<param name="alliance.restricted" value="fight"/>
</game>
<rules>
<function name="wage" value="minimum_wage"/>
</rules>
<strings>
<string name="mailto">
<text locale="de">eressea-server@eressea.de</text>
<text locale="en">eressea-server@eressea.de</text>
</string>
<string name="newbie_info_1">
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
E3 BEFEHLE an eressea-server@eressea.de zu senden.</text>
<text locale="en">Remember to send your orders to
eressea-server@eressea.de with the subject E3 ORDERS.</text>
</string>
<string name="mailcmd">
<text locale="de">E3 BEFEHLE</text>
<text locale="en">E3 ORDERS</text>
</string>
</strings>
</eressea>

View file

@ -1,121 +1,121 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="eressea:///core/messages.xml"/>
<!-- Localization -->
<xi:include href="eressea:///core/de/strings.xml"/>
<xi:include href="eressea:///core/en/strings.xml"/>
<xi:include href="eressea/spellinfo.xml" />
<xi:include href="eressea:///core/common/items.xml" />
<xi:include href="eressea:///core/common/armor.xml" />
<xi:include href="eressea:///core/common/weapons.xml" />
<xi:include href="eressea:///core/common/resources.xml" />
<xi:include href="eressea:///core/common/luxuries.xml" />
<xi:include href="eressea:///core/common/herbs.xml" />
<xi:include href="eressea:///core/common/potions.xml" />
<xi:include href="eressea:///core/spoils.xml"/>
<xi:include href="eressea/races.xml"/>
<xi:include href="eressea:///core/prefixes.xml"/>
<xi:include href="eressea:///core/ships.xml"/>
<xi:include href="eressea:///core/common/buildings.xml"/>
<xi:include href="eressea:///core/equipment.xml"/>
<xi:include href="eressea:///core/terrains.xml"/>
<xi:include href="eressea/terrains.xml"/>
<xi:include href="directions.xml"/>
<xi:include href="eressea/artrewards.xml"/>
<xi:include href="eressea/buildings.xml"/>
<xi:include href="eressea:///core/calendar.xml"/>
<calendar name="secondage" newyear="month_1" start="184"/>
<xi:include href="eressea/equipment.xml"/>
<xi:include href="eressea/items.xml"/>
<xi:include href="eressea/spells.xml"/>
<xi:include href="eressea/strings.xml"/>
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="30"/>
<item name="stone" amount="30"/>
<item name="money" amount="4200"/>
</set>
<set name="new_faction">
<item name="adamantium" amount="1"/>
</set>
</equipment>
<xi:include href="names-undead.xml"/>
<xi:include href="names-skeletons.xml"/>
<xi:include href="names-zombies.xml"/>
<xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/>
<game name="Eressea">
<!-- Game specific settings -->
<order name="BEZAHLEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" disable="yes"/>
<order name="WERWESEN" disable="yes"/>
<order name="XONTORMIA" disable="yes"/>
<skill name="alchemy" enable="true"/>
<skill name="crossbow" enable="true"/>
<skill name="mining" enable="true"/>
<skill name="bow" enable="true"/>
<skill name="building" enable="true"/>
<skill name="trade" enable="true"/>
<skill name="forestry" enable="true"/>
<skill name="catapult" enable="true"/>
<skill name="herbalism" enable="true"/>
<skill name="magic" enable="true"/>
<skill name="training" enable="true"/>
<skill name="riding" enable="true"/>
<skill name="armorer" enable="true"/>
<skill name="shipcraft" enable="true"/>
<skill name="melee" enable="true"/>
<skill name="sailing" enable="true"/>
<skill name="polearm" enable="true"/>
<skill name="espionage" enable="true"/>
<skill name="quarrying" enable="true"/>
<skill name="roadwork" enable="true"/>
<skill name="tactics" enable="true"/>
<skill name="stealth" enable="true"/>
<skill name="entertainment" enable="true"/>
<skill name="weaponsmithing" enable="true"/>
<skill name="cartmaking" enable="true"/>
<skill name="perception" enable="true"/>
<skill name="taxation" enable="true"/>
<skill name="stamina" enable="true"/>
<skill name="unarmed" enable="true"/>
<param name="NewbieImmunity" value="8"/>
<param name="modules.wormholes" value="1"/>
<param name="entertain.base" value="0"/>
<param name="entertain.perlevel" value="20"/>
<param name="nmr.timeout" value="5"/>
<param name="nmr.removenewbie" value="10"/>
<param name="GiveRestriction" value="3"/>
<param name="hunger.long" value="1"/>
<param name="init_spells" value="0"/>
<param name="rules.check_overload" value="0"/>
<param name="rules.limit.faction" value="1500"/>
</game>
<strings>
<string name="mailto">
<text locale="de">eressea-server@eressea.de</text>
<text locale="en">eressea-server@eressea.de</text>
</string>
<string name="newbie_info_1">
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
ERESSEA BEFEHLE an eressea-server@eressea.de zu senden.</text>
<text locale="en">Remember to send your orders to
eressea-server@eressea.de with the subject ERESSEA ORDERS.</text>
</string>
<string name="mailcmd">
<text locale="de">ERESSEA BEFEHLE</text>
<text locale="en">ERESSEA ORDERS</text>
</string>
</strings>
</eressea>
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="eressea:///core/messages.xml"/>
<!-- Localization -->
<xi:include href="eressea:///core/de/strings.xml"/>
<xi:include href="eressea:///core/en/strings.xml"/>
<xi:include href="eressea/spellinfo.xml" />
<xi:include href="eressea:///core/common/items.xml" />
<xi:include href="eressea:///core/common/armor.xml" />
<xi:include href="eressea:///core/common/weapons.xml" />
<xi:include href="eressea:///core/common/resources.xml" />
<xi:include href="eressea:///core/common/luxuries.xml" />
<xi:include href="eressea:///core/common/herbs.xml" />
<xi:include href="eressea:///core/common/potions.xml" />
<xi:include href="eressea:///core/spoils.xml"/>
<xi:include href="eressea/races.xml"/>
<xi:include href="eressea:///core/prefixes.xml"/>
<xi:include href="eressea:///core/ships.xml"/>
<xi:include href="eressea:///core/common/buildings.xml"/>
<xi:include href="eressea:///core/equipment.xml"/>
<xi:include href="eressea:///core/terrains.xml"/>
<xi:include href="eressea/terrains.xml"/>
<xi:include href="directions.xml"/>
<xi:include href="eressea/artrewards.xml"/>
<xi:include href="eressea/buildings.xml"/>
<xi:include href="eressea:///core/calendar.xml"/>
<calendar name="secondage" newyear="month_1" start="184"/>
<xi:include href="eressea/equipment.xml"/>
<xi:include href="eressea/items.xml"/>
<xi:include href="eressea/spells.xml"/>
<xi:include href="eressea/strings.xml"/>
<equipment>
<set name="first_unit">
<item name="conquesttoken" amount="1"/>
<item name="log" amount="30"/>
<item name="stone" amount="30"/>
<item name="money" amount="4200"/>
</set>
<set name="new_faction">
<item name="adamantium" amount="1"/>
</set>
</equipment>
<xi:include href="names-undead.xml"/>
<xi:include href="names-skeletons.xml"/>
<xi:include href="names-zombies.xml"/>
<xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/>
<game name="Eressea">
<!-- Game specific settings -->
<order name="BEZAHLEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" disable="yes"/>
<order name="WERWESEN" disable="yes"/>
<order name="XONTORMIA" disable="yes"/>
<skill name="alchemy" enable="true"/>
<skill name="crossbow" enable="true"/>
<skill name="mining" enable="true"/>
<skill name="bow" enable="true"/>
<skill name="building" enable="true"/>
<skill name="trade" enable="true"/>
<skill name="forestry" enable="true"/>
<skill name="catapult" enable="true"/>
<skill name="herbalism" enable="true"/>
<skill name="magic" enable="true"/>
<skill name="training" enable="true"/>
<skill name="riding" enable="true"/>
<skill name="armorer" enable="true"/>
<skill name="shipcraft" enable="true"/>
<skill name="melee" enable="true"/>
<skill name="sailing" enable="true"/>
<skill name="polearm" enable="true"/>
<skill name="espionage" enable="true"/>
<skill name="quarrying" enable="true"/>
<skill name="roadwork" enable="true"/>
<skill name="tactics" enable="true"/>
<skill name="stealth" enable="true"/>
<skill name="entertainment" enable="true"/>
<skill name="weaponsmithing" enable="true"/>
<skill name="cartmaking" enable="true"/>
<skill name="perception" enable="true"/>
<skill name="taxation" enable="true"/>
<skill name="stamina" enable="true"/>
<skill name="unarmed" enable="true"/>
<param name="NewbieImmunity" value="8"/>
<param name="modules.wormholes" value="1"/>
<param name="entertain.base" value="0"/>
<param name="entertain.perlevel" value="20"/>
<param name="nmr.timeout" value="5"/>
<param name="nmr.removenewbie" value="10"/>
<param name="GiveRestriction" value="3"/>
<param name="hunger.long" value="1"/>
<param name="init_spells" value="0"/>
<param name="rules.check_overload" value="0"/>
<param name="rules.limit.faction" value="1500"/>
</game>
<strings>
<string name="mailto">
<text locale="de">eressea-server@eressea.de</text>
<text locale="en">eressea-server@eressea.de</text>
</string>
<string name="newbie_info_1">
<text locale="de">Bitte denke daran, deine Befehle mit dem Betreff
ERESSEA BEFEHLE an eressea-server@eressea.de zu senden.</text>
<text locale="en">Remember to send your orders to
eressea-server@eressea.de with the subject ERESSEA ORDERS.</text>
</string>
<string name="mailcmd">
<text locale="de">ERESSEA BEFEHLE</text>
<text locale="en">ERESSEA ORDERS</text>
</string>
</strings>
</eressea>

View file

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<directions>
<dir name="vortex" desc="vortex_desc"/>
</directions>
<?xml version="1.0"?>
<directions>
<dir name="vortex" desc="vortex_desc"/>
</directions>

View file

@ -1,12 +1,12 @@
<?xml version="1.0"?>
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="armor/chainmail.xml"/>
<xi:include href="armor/laenmail.xml"/>
<xi:include href="armor/laenshield.xml"/>
<xi:include href="armor/plate.xml"/>
<xi:include href="armor/rustychainmail.xml"/>
<xi:include href="armor/rustyshield.xml"/>
<xi:include href="armor/scale.xml"/>
<xi:include href="armor/shield.xml"/>
<xi:include href="armor/towershield.xml"/>
</resources>
<?xml version="1.0"?>
<resources xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="armor/chainmail.xml"/>
<xi:include href="armor/laenmail.xml"/>
<xi:include href="armor/laenshield.xml"/>
<xi:include href="armor/plate.xml"/>
<xi:include href="armor/rustychainmail.xml"/>
<xi:include href="armor/rustyshield.xml"/>
<xi:include href="armor/scale.xml"/>
<xi:include href="armor/shield.xml"/>
<xi:include href="armor/towershield.xml"/>
</resources>

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="chainmail">
<item weight="200" score="90">
<construction skill="armorer" minskill="3" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<armor ac="2" penalty="0.10" projectile="0.0" magres="0.0"/>
</item>
</resource>
<?xml version="1.0"?>
<resource name="chainmail">
<item weight="200" score="90">
<construction skill="armorer" minskill="3" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<armor ac="2" penalty="0.10" projectile="0.0" magres="0.0"/>
</item>
</resource>

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="laenmail">
<item weight="100" score="1000">
<construction skill="armorer" minskill="9" reqsize="1">
<requirement type="laen" quantity="2"/>
</construction>
<armor ac="3" penalty="0.0" projectile="0.10" magres="0.3" laen="yes" />
</item>
</resource>
<?xml version="1.0"?>
<resource name="laenmail">
<item weight="100" score="1000">
<construction skill="armorer" minskill="9" reqsize="1">
<requirement type="laen" quantity="2"/>
</construction>
<armor ac="3" penalty="0.0" projectile="0.10" magres="0.3" laen="yes" />
</item>
</resource>

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="laenshield">
<item weight="0" score="1000">
<construction skill="armorer" minskill="7" reqsize="1">
<requirement type="laen" quantity="1"/>
</construction>
<armor ac="1" penalty="-0.10" magres="0.3" laen="yes" shield="yes" />
</item>
</resource>
<?xml version="1.0"?>
<resource name="laenshield">
<item weight="0" score="1000">
<construction skill="armorer" minskill="7" reqsize="1">
<requirement type="laen" quantity="1"/>
</construction>
<armor ac="1" penalty="-0.10" magres="0.3" laen="yes" shield="yes" />
</item>
</resource>

View file

@ -1,10 +1,10 @@
<?xml version="1.0"?>
<resource name="plate">
<item weight="400" score="150">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="armorer" minskill="4" reqsize="1">
<requirement type="iron" quantity="4"/>
</construction>
<armor ac="3" penalty="0.15" projectile="0.10" magres="0.0"/>
</item>
</resource>
<?xml version="1.0"?>
<resource name="plate">
<item weight="400" score="150">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="armorer" minskill="4" reqsize="1">
<requirement type="iron" quantity="4"/>
</construction>
<armor ac="3" penalty="0.15" projectile="0.10" magres="0.0"/>
</item>
</resource>

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="rustychainmail">
<item weight="200" score="30">
<construction skill="armorer" minskill="3" reqsize="1">
<requirement type="iron" quantity="3"/>
</construction>
<armor ac="1" penalty="0.20" magres="0.0"/>
</item>
</resource>
<?xml version="1.0"?>
<resource name="rustychainmail">
<item weight="200" score="30">
<construction skill="armorer" minskill="3" reqsize="1">
<requirement type="iron" quantity="3"/>
</construction>
<armor ac="1" penalty="0.20" magres="0.0"/>
</item>
</resource>

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="rustyshield">
<item weight="100" score="10">
<construction skill="armorer" minskill="2" reqsize="1">
<requirement type="iron" quantity="1"/>
</construction>
<armor ac="0" penalty="-0.05" magres="0.0" shield="yes"/>
</item>
</resource>
<?xml version="1.0"?>
<resource name="rustyshield">
<item weight="100" score="10">
<construction skill="armorer" minskill="2" reqsize="1">
<requirement type="iron" quantity="1"/>
</construction>
<armor ac="0" penalty="-0.05" magres="0.0" shield="yes"/>
</item>
</resource>

View file

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

View file

@ -1,9 +1,9 @@
<?xml version="1.0"?>
<resource name="shield">
<item weight="100" score="30">
<construction skill="armorer" minskill="2" reqsize="1">
<requirement type="iron" quantity="1"/>
</construction>
<armor ac="0" penalty="-0.10" magres="0.0" shield="yes"/>
</item>
</resource>
<?xml version="1.0"?>
<resource name="shield">
<item weight="100" score="30">
<construction skill="armorer" minskill="2" reqsize="1">
<requirement type="iron" quantity="1"/>
</construction>
<armor ac="0" penalty="-0.10" magres="0.0" shield="yes"/>
</item>
</resource>

View file

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

View file

@ -1,30 +1,30 @@
<?xml version="1.0"?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="../buildings/castle-2.xml" />
<building name="watch" capacity="1" maxsize="10">
<function name="name" value="fort_name"/>
<function name="protection" value="lua_building_protection"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="5" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="5" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</building>
<building name="market" capacity="1" maxsize="10">
<maintenance type="money" amount="200" vital="yes"/>
<construction skill="building" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="stone" quantity="1"/>
</construction>
</building>
</buildings>
<?xml version="1.0"?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="../buildings/castle-2.xml" />
<building name="watch" capacity="1" maxsize="10">
<function name="name" value="fort_name"/>
<function name="protection" value="lua_building_protection"/>
<function name="taxes" value="lua_building_taxes"/>
<construction skill="building" minskill="1" maxsize="5" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2" maxsize="5" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<construction skill="building" minskill="2" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</building>
<building name="market" capacity="1" maxsize="10">
<maintenance type="money" amount="200" vital="yes"/>
<construction skill="building" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="stone" quantity="1"/>
</construction>
</building>
</buildings>

View file

@ -1,78 +1,78 @@
<?xml version="1.0"?>
<equipment>
<!-- equipment given to new units -->
<set name="new_demon_unit">
<!--skill name="stamina" level="6"/-->
</set>
<set name="new_troll_unit">
<!--skill name="stamina" level="2"/-->
</set>
<set name="seaserpent_spoils">
<item name="dragonblood" amount="2"/>
<item name="seaserpenthead" amount="1"/>
</set>
<set name="goblin_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="chainmail" amount="1"/>
</set>
<set name="troll_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="front_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="front_2">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="towershield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="rear_1">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="crossbow" amount="1"/>
<item name="shield" amount="1"/>
</set>
<set name="rear_2">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="crossbow" amount="1"/>
<item name="shield" amount="1"/>
</set>
<set name="dwarf_2">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="halfling_2">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="rep_crossbow" amount="1"/>
</set>
</equipment>
<?xml version="1.0"?>
<equipment>
<!-- equipment given to new units -->
<set name="new_demon_unit">
<!--skill name="stamina" level="6"/-->
</set>
<set name="new_troll_unit">
<!--skill name="stamina" level="2"/-->
</set>
<set name="seaserpent_spoils">
<item name="dragonblood" amount="2"/>
<item name="seaserpenthead" amount="1"/>
</set>
<set name="goblin_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="chainmail" amount="1"/>
</set>
<set name="troll_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="front_1">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="front_2">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="towershield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="rear_1">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="crossbow" amount="1"/>
<item name="shield" amount="1"/>
</set>
<set name="rear_2">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="crossbow" amount="1"/>
<item name="shield" amount="1"/>
</set>
<set name="dwarf_2">
<skill name="melee" level="7"/>
<skill name="stamina" level="3"/>
<item name="sword" amount="1"/>
<item name="shield" amount="1"/>
<item name="plate" amount="1"/>
</set>
<set name="halfling_2">
<skill name="crossbow" level="7"/>
<skill name="stamina" level="3"/>
<item name="rep_crossbow" amount="1"/>
</set>
</equipment>

View file

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

View file

@ -1,23 +1,23 @@
<?xml version="1.0"?>
<resources>
<!-- this file contains luxury items that are part of the trade system -->
<resource name="balm">
<item weight="200"><luxury price="4"/></item>
</resource>
<resource name="jewel">
<item weight="100"><luxury price="7"/></item>
</resource>
<resource name="myrrh">
<item weight="200"><luxury price="5"/></item>
</resource>
<resource name="oil">
<item weight="300"><luxury price="3"/></item>
</resource>
<resource name="silk">
<item weight="300"><luxury price="6"/></item>
</resource>
<resource name="incense">
<item weight="200"><luxury price="4"/></item>
</resource>
</resources>
<?xml version="1.0"?>
<resources>
<!-- this file contains luxury items that are part of the trade system -->
<resource name="balm">
<item weight="200"><luxury price="4"/></item>
</resource>
<resource name="jewel">
<item weight="100"><luxury price="7"/></item>
</resource>
<resource name="myrrh">
<item weight="200"><luxury price="5"/></item>
</resource>
<resource name="oil">
<item weight="300"><luxury price="3"/></item>
</resource>
<resource name="silk">
<item weight="300"><luxury price="6"/></item>
</resource>
<resource name="incense">
<item weight="200"><luxury price="4"/></item>
</resource>
</resources>

View file

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

File diff suppressed because it is too large Load diff

View file

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

View file

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

View file

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<resource name="mallornseed" limited="yes">
<item weight="10" score="100"/>
</resource>
<?xml version="1.0"?>
<resource name="mallornseed" limited="yes">
<item weight="10" score="100"/>
</resource>

View file

@ -1,4 +1,4 @@
<?xml version="1.0"?>
<resource name="seed" limited="yes">
<item weight="10" score="50"/>
</resource>
<?xml version="1.0"?>
<resource name="seed" limited="yes">
<item weight="10" score="50"/>
</resource>

View file

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

View file

@ -1,108 +1,108 @@
<?xml version="1.0" encoding="UTF-8"?>
<strings>
<string name="canoe_a">
<text locale="de">ein Einbaum</text>
<text locale="en">a canoe</text>
</string>
<string name="raft_a">
<text locale="de">ein Floß</text>
<text locale="en">a raft</text>
</string>
<string name="cutter_a">
<text locale="de">ein Kutter</text>
<text locale="en">a cutter</text>
</string>
<string name="barge_a">
<text locale="de">eine Barke</text>
<text locale="en">a barge</text>
</string>
<string name="royalbarge_a">
<text locale="de">eine Königsbarke</text>
<text locale="en">a royal barge</text>
</string>
<string name="catamaran_a">
<text locale="de">ein Katamaran</text>
<text locale="en">a catamaran</text>
</string>
<string name="cog_a">
<text locale="de">eine Kogge</text>
<text locale="en">a cog</text>
</string>
<string name="caravel_a">
<text locale="de">eine Karavelle</text>
<text locale="en">a caravel</text>
</string>
<string name="frigate_a">
<text locale="de">eine Fregatte</text>
<text locale="en">a frigate</text>
</string>
<string name="galleon_a">
<text locale="de">eine Galeone</text>
<text locale="en">a galleon</text>
</string>
<string name="dragonship_a">
<text locale="de">ein Drachenschiff</text>
<text locale="en">a dragonship</text>
</string>
<string name="trireme_a">
<text locale="de">eine Trireme</text>
<text locale="en">a trireme</text>
</string>
<string name="canoe">
<text locale="de">Einbaum</text>
<text locale="en">canoe</text>
</string>
<string name="raft">
<text locale="de">Floß</text>
<text locale="en">raft</text>
</string>
<string name="cutter">
<text locale="de">Kutter</text>
<text locale="en">cutter</text>
</string>
<string name="barge">
<text locale="de">Barke</text>
<text locale="en">barge</text>
</string>
<string name="royalbarge">
<text locale="de">Königsbarke</text>
<text locale="en">royal barge</text>
</string>
<string name="catamaran">
<text locale="de">Katamaran</text>
<text locale="en">catamaran</text>
</string>
<string name="cog">
<text locale="de">Kogge</text>
<text locale="en">cog</text>
</string>
<string name="caravel">
<text locale="de">Karavelle</text>
<text locale="en">caravel</text>
</string>
<string name="frigate">
<text locale="de">Fregatte</text>
<text locale="en">frigate</text>
</string>
<string name="galleon">
<text locale="de">Galeone</text>
<text locale="en">galleon</text>
</string>
<string name="dragonship">
<text locale="de">Drachenschiff</text>
<text locale="en">dragonship</text>
</string>
<string name="trireme">
<text locale="de">Trireme</text>
<text locale="en">trireme</text>
</string>
</strings>
<?xml version="1.0" encoding="UTF-8"?>
<strings>
<string name="canoe_a">
<text locale="de">ein Einbaum</text>
<text locale="en">a canoe</text>
</string>
<string name="raft_a">
<text locale="de">ein Floß</text>
<text locale="en">a raft</text>
</string>
<string name="cutter_a">
<text locale="de">ein Kutter</text>
<text locale="en">a cutter</text>
</string>
<string name="barge_a">
<text locale="de">eine Barke</text>
<text locale="en">a barge</text>
</string>
<string name="royalbarge_a">
<text locale="de">eine Königsbarke</text>
<text locale="en">a royal barge</text>
</string>
<string name="catamaran_a">
<text locale="de">ein Katamaran</text>
<text locale="en">a catamaran</text>
</string>
<string name="cog_a">
<text locale="de">eine Kogge</text>
<text locale="en">a cog</text>
</string>
<string name="caravel_a">
<text locale="de">eine Karavelle</text>
<text locale="en">a caravel</text>
</string>
<string name="frigate_a">
<text locale="de">eine Fregatte</text>
<text locale="en">a frigate</text>
</string>
<string name="galleon_a">
<text locale="de">eine Galeone</text>
<text locale="en">a galleon</text>
</string>
<string name="dragonship_a">
<text locale="de">ein Drachenschiff</text>
<text locale="en">a dragonship</text>
</string>
<string name="trireme_a">
<text locale="de">eine Trireme</text>
<text locale="en">a trireme</text>
</string>
<string name="canoe">
<text locale="de">Einbaum</text>
<text locale="en">canoe</text>
</string>
<string name="raft">
<text locale="de">Floß</text>
<text locale="en">raft</text>
</string>
<string name="cutter">
<text locale="de">Kutter</text>
<text locale="en">cutter</text>
</string>
<string name="barge">
<text locale="de">Barke</text>
<text locale="en">barge</text>
</string>
<string name="royalbarge">
<text locale="de">Königsbarke</text>
<text locale="en">royal barge</text>
</string>
<string name="catamaran">
<text locale="de">Katamaran</text>
<text locale="en">catamaran</text>
</string>
<string name="cog">
<text locale="de">Kogge</text>
<text locale="en">cog</text>
</string>
<string name="caravel">
<text locale="de">Karavelle</text>
<text locale="en">caravel</text>
</string>
<string name="frigate">
<text locale="de">Fregatte</text>
<text locale="en">frigate</text>
</string>
<string name="galleon">
<text locale="de">Galeone</text>
<text locale="en">galleon</text>
</string>
<string name="dragonship">
<text locale="de">Drachenschiff</text>
<text locale="en">dragonship</text>
</string>
<string name="trireme">
<text locale="de">Trireme</text>
<text locale="en">trireme</text>
</string>
</strings>

View file

@ -1,154 +1,154 @@
<?xml version="1.0"?>
<ships>
<ship name="canoe" nocoast="true" range="3" fishing="20" storm="1.00" damage="1.00" cabins="2" cargo="2000" cptskill="1" minskill="1" sumskill="2" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="1" maxsize="3" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="raft" range="1" fishing="20" storm="1.00" damage="1.00" cabins="5" cargo="50000" cptskill="1" minskill="1" sumskill="5" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<construction skill="shipcraft" minskill="1" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="cutter" range="2" fishing="20" storm="1.00" damage="1.00" cabins="5" cargo="5500" cptskill="2" minskill="1" sumskill="5" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="2" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="barge" range="3" fishing="20" storm="1.00" damage="1.00" cabins="11" cargo="5000" cptskill="2" minskill="1" sumskill="5" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="2" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="royalbarge" range="5" storm="0.25" damage="1.00" cabins="11" cargo="5000" cptskill="5" minskill="1" sumskill="10" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="6" maxsize="10" reqsize="1">
<requirement type="mallorn" quantity="1"/>
<requirement type="money" quantity="100"/>
</construction>
</ship>
<ship name="catamaran" range="7" storm="0.25" damage="1.00" cabins="22" cargo="10000" cptskill="7" minskill="1" sumskill="20" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="8" maxsize="30" reqsize="1">
<requirement type="mallorn" quantity="1"/>
<requirement type="money" quantity="100"/>
</construction>
</ship>
<ship name="cog" range="4" storm="0.50" damage="1.00" cabins="50" cargo="200000" cptskill="4" minskill="1" sumskill="20" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="4" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="caravel" range="4" storm="0.50" damage="1.00" cabins="150" cargo="600000" cptskill="6" minskill="1" sumskill="30" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="6" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="frigate" range="4" storm="1.00" damage="1.00" cabins="110" cargo="100000" cptskill="5" minskill="1" sumskill="40" opensea="yes">
<modifier type="defense" value="+2"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="5" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="galleon" range="4" storm="1.00" damage="1.00" cabins="310" cargo="300000" cptskill="7" minskill="1" sumskill="60" opensea="yes">
<modifier type="defense" value="+2"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="7" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="dragonship" range="6" storm="1.00" damage="1.00" cabins="110" cargo="50000" cptskill="5" minskill="1" sumskill="60" opensea="yes">
<modifier type="attack" value="+1"/>
<modifier type="tactics" factor="2.00"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="5" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="trireme" range="6" storm="1.00" damage="1.00" cabins="310" cargo="150000" cptskill="7" minskill="1" sumskill="90" opensea="yes">
<modifier type="attack" value="+1"/>
<modifier type="tactics" factor="2.00"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="7" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
</ships>
<?xml version="1.0"?>
<ships>
<ship name="canoe" nocoast="true" range="3" fishing="20" storm="1.00" damage="1.00" cabins="2" cargo="2000" cptskill="1" minskill="1" sumskill="2" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="1" maxsize="3" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="raft" range="1" fishing="20" storm="1.00" damage="1.00" cabins="5" cargo="50000" cptskill="1" minskill="1" sumskill="5" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<construction skill="shipcraft" minskill="1" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="cutter" range="2" fishing="20" storm="1.00" damage="1.00" cabins="5" cargo="5500" cptskill="2" minskill="1" sumskill="5" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="2" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="barge" range="3" fishing="20" storm="1.00" damage="1.00" cabins="11" cargo="5000" cptskill="2" minskill="1" sumskill="5" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="2" maxsize="10" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="royalbarge" range="5" storm="0.25" damage="1.00" cabins="11" cargo="5000" cptskill="5" minskill="1" sumskill="10" opensea="no">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<coast terrain="swamp"/>
<coast terrain="desert"/>
<coast terrain="highland"/>
<coast terrain="mountain"/>
<coast terrain="glacier"/>
<coast terrain="volcano"/>
<coast terrain="activevolcano"/>
<coast terrain="iceberg_sleep"/>
<coast terrain="iceberg"/>
<construction skill="shipcraft" minskill="6" maxsize="10" reqsize="1">
<requirement type="mallorn" quantity="1"/>
<requirement type="money" quantity="100"/>
</construction>
</ship>
<ship name="catamaran" range="7" storm="0.25" damage="1.00" cabins="22" cargo="10000" cptskill="7" minskill="1" sumskill="20" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="8" maxsize="30" reqsize="1">
<requirement type="mallorn" quantity="1"/>
<requirement type="money" quantity="100"/>
</construction>
</ship>
<ship name="cog" range="4" storm="0.50" damage="1.00" cabins="50" cargo="200000" cptskill="4" minskill="1" sumskill="20" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="4" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="caravel" range="4" storm="0.50" damage="1.00" cabins="150" cargo="600000" cptskill="6" minskill="1" sumskill="30" opensea="yes">
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="6" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
</ship>
<ship name="frigate" range="4" storm="1.00" damage="1.00" cabins="110" cargo="100000" cptskill="5" minskill="1" sumskill="40" opensea="yes">
<modifier type="defense" value="+2"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="5" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="galleon" range="4" storm="1.00" damage="1.00" cabins="310" cargo="300000" cptskill="7" minskill="1" sumskill="60" opensea="yes">
<modifier type="defense" value="+2"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="7" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="dragonship" range="6" storm="1.00" damage="1.00" cabins="110" cargo="50000" cptskill="5" minskill="1" sumskill="60" opensea="yes">
<modifier type="attack" value="+1"/>
<modifier type="tactics" factor="2.00"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="5" maxsize="100" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
<ship name="trireme" range="6" storm="1.00" damage="1.00" cabins="310" cargo="150000" cptskill="7" minskill="1" sumskill="90" opensea="yes">
<modifier type="attack" value="+1"/>
<modifier type="tactics" factor="2.00"/>
<coast terrain="ocean"/>
<coast terrain="plain"/>
<construction skill="shipcraft" minskill="7" maxsize="300" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="money" quantity="10"/>
</construction>
</ship>
</ships>

File diff suppressed because it is too large Load diff

View file

@ -1,335 +1,335 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<!--
_d: dativ (wir erklären allen /Trollen/ den Krieg)
_p: plural (13 /Trolle/)
_x: preposition (15 /Troll/schwerter)
_a: including article (ein Troll, a troll)
-->
<!--Fort-Ausbaustufen -->
<string name="calendar::thirdage">
<text locale="de">des dritten Zeitalters</text>
<text locale="en">the third age</text>
</string>
<string name="rpg_item_1_p">
<text locale="de">Urkunden</text>
<text locale="en">Certificates</text>
</string>
<string name="rpg_item_2_p">
<text locale="de">Nußhälften</text>
<text locale="en">nut halves</text>
</string>
<string name="rpg_item_3_p">
<text locale="de">Flaschengeister</text>
<text locale="en">bottle demons</text>
</string>
<string name="rpg_item_1">
<text locale="de">Pandoras Urkunde für Halbling ehrenhalber, weiblich</text>
<text locale="en">Pandora's Certificate</text>
</string>
<string name="rpg_item_2">
<text locale="de">Heilige Nußhälfte</text>
<text locale="en">piece of a holy nut</text>
</string>
<string name="rpg_item_3">
<text locale="de">Flaschengeist Zhardamon</text>
<text locale="en">bottle demon Zhardamon</text>
</string>
<string name="rep_crossbow">
<text locale="de">Repetierarmbrust</text>
<text locale="en">repeating crossbow</text>
</string>
<string name="rep_crossbow_p">
<text locale="de">Repetierarmbrüste</text>
<text locale="en">repeating crossbows</text>
</string>
<string name="scaffolding">
<text locale="de">Gerüst</text>
<text locale="en">scaffolding</text>
</string>
<string name="guardhouse">
<text locale="de">Wachstube</text>
<text locale="en">guard house</text>
</string>
<string name="guardtower">
<text locale="de">Wachturm</text>
<text locale="en">guard tower</text>
</string>
<string name="watch">
<text locale="de">Wache</text>
<text locale="en">watch</text>
</string>
<string name="market">
<text locale="de">Marktplatz</text>
<text locale="en">marketplace</text>
</string>
<namespace name="morale">
<string name="0">
<text locale="de">aufständische</text>
<text locale="en">rebellious</text>
</string>
<string name="1">
<text locale="de">wütende</text>
<text locale="en">mad</text>
</string>
<string name="2">
<text locale="de">zornige</text>
<text locale="en">angry</text>
</string>
<string name="3">
<text locale="de">unruhige</text>
<text locale="en">agitated</text>
</string>
<string name="4">
<text locale="de">gleichgültige</text>
<text locale="en">indifferent</text>
</string>
<string name="5">
<text locale="de">entspannte</text>
<text locale="en">relaxed</text>
</string>
<string name="6">
<text locale="de">zufriedene</text>
<text locale="en">content</text>
</string>
<string name="7">
<text locale="de">glückliche</text>
<text locale="en">happy</text>
</string>
<string name="8">
<text locale="de">treue</text>
<text locale="en">loyal</text>
</string>
<string name="9">
<text locale="de">ergebene</text>
<text locale="en">devoted</text>
</string>
<string name="10">
<text locale="de">unterwürfige</text>
<text locale="en">subservient</text>
</string>
</namespace>
<string name="charger">
<text locale="de">Streitross</text>
<text locale="en">charger</text>
</string>
<string name="charger_p">
<text locale="de">Streitrösser</text>
<text locale="en">chargers</text>
</string>
<string name="towershield">
<text locale="de">Turmschild</text>
<text locale="en">tower shield</text>
</string>
<string name="towershield_p">
<text locale="de">Turmschilde</text>
<text locale="en">tower shields</text>
</string>
<namespace name="spell">
<string name="create_potion_p0">
<text locale="de">Braue Siebenmeilentee</text>
<text locale="en">brew seven mile tea</text>
</string>
<string name="create_potion_p2">
<text locale="de">Braue Wasser des Lebens</text>
<text locale="en">brew water of life</text>
</string>
<string name="create_potion_p3">
<text locale="de">Braue Schaffenstrunk</text>
<text locale="en">brew busy beer</text>
</string>
<string name="create_potion_ointment">
<text locale="de">Braue Wundsalbe</text>
<text locale="en">brew ointment</text>
</string>
<string name="create_potion_peasantblood">
<text locale="de">Braue Bauernblut</text>
<text locale="en">brew peasant blood</text>
</string>
<string name="create_potion_p9">
<text locale="de">Braue Pferdeglück</text>
<text locale="en">brew horsepower potion</text>
</string>
<string name="create_potion_p13">
<text locale="de">Braue Elixier der Macht</text>
<text locale="en">brew elixir of power</text>
</string>
<string name="create_potion_p14">
<text locale="de">Braue Heiltrank</text>
<text locale="en">brew healing potion</text>
</string>
</namespace>
<namespace name="spellinfo">
<string name="raindance">
<text locale="de">Durch dieses uralte Tanzritual ruft der Zauberkundige
die Kräfte des Lebens und der Fruchtbarkeit an. Die darauf folgenden
Regenfälle begünstigen das Wachstum und erhöhen die Ernteerträge
einiger Bauern der Region bis der Regen wieder nachlässt.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.
(OBS: this spell has been changed and needs a new translation).</text>
</string>
<string name="blessedharvest">
<text locale="de">Für dieses Ernteritual sendet der Druide seine arkane Energie entlang
der astralen Kraftlinien der gesamten Umgebung, um selbst weit entfernte
Naturgeister zu erreichen. Die Beschwörung dieser Naturgeister ist eine
hohe Kunst, die höchste Konzentration und vor allem viel Erfahrung
erfordert. Die Bauern werden nach und nach von den besseren Ernten
profitieren und ihre Ersparnisse steigern können.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.
(OBS: this spell has been changed and needs a new translation).</text>
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 25 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
who sell curses and hexes on demand - but you
can buy the apropriate counterspells from the
followers of Draig as well. May it be a love
spell for the son of a neighbour or a wart in
the face of a rival. For offering these
services, the sorcerer charges 25 silver pieces.
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
cristal, les cartes de tarot ou les lignes de la
main. Un mentaliste peut gagner 25 écus par
niveau et par semaine en proposant ses services
aux paysans.</text>
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
25 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also
familiar with all other common means of
foretelling the future like crystal balls, tarot
cards or palms. A mentalist can earn 25 silver
pieces per level and week for offering these
services to peasants.</text>
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 25 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
scholar of Tybied. His potions and tinctures may help when nothing
else does. If the cryptic formula under the wooden shoes of the
unfaithful husband really helped? - well, the peasant, who isn't
capable of reading, will never know. At least it helped the magician...
to fill his purse. In one week he can earn 25 silver per level that
way.</text>
</string>
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
25 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
entertain the crowds and to be the center of attention.
Even the apprentices study those little magic tricks,
which attract and fascinate the people and thus ensnare
them into leaving a few coins or more for the artist. By
the end of the week, the bard will have earned 25 silver
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 25 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
appreciated among the peasants. Especially at the
markets, their services are demanded frequently. Some of
them also use their talents to sell an animal at a
higher price. A magician can earn 25 silver pieces per level
in this way.</text>
</string>
<string name="create_potion_p0">
<text locale="en">Time is one of the first mysteries every magician tries to solve. If he succeeds, he can focus all his energies on his magical studies as the ways between dormatory, library and magician tower now pass much faster. To keep his heart in tune the magician uses a special self made tey. Some mages even share it with up to 10 people</text>
<text locale="de">Die Zeit ist eines der ersten Geheimnisse, die jeder Magier zu erkunden versucht. Gelingt ihm dies, kann er alle seine Energie auf das Studium der Magie verwenden, die Wege zwischen Dormitorium, Bibliothek und Magierturm schafft er nun viel schneller. Um sein Herz im Takt zu halten verwendet er einen speziellen selbstgemachten Tee. Manche Magier teilen diesen Tee mit bis zu 10 Personen. </text>
</string>
<string name="create_potion_p2">
<text locale="en">One of the most strange spells enables the magician to withdraw a little life energy from his surroundings to produce the so called water of life. The juice of some selected herbs is used to conserve the energies of life. As the magician is protected by his magical abilities, he is the only one who can touch the juice without taking damage. This is necessary because the juice must be carried around from place to place to avoid damaging one region by taking too much energy at once.</text>
<text locale="de">In einem der seltsamsten Zauber kann der Magier seiner Umgebung ein klein wenig der Lebensenergie entziehen um das sogenannte Wasser des Lebens herstellen. Als Basis dient ihm hierbei der Saft aus einigen ausgesuchten Kräutern, welcher die Lebensenergie speichern kann. Da der Magier aufgrund seiner magischen Fähigkeiten immun ist, ist er der einzige, der den Saft berühren kann, ohne Schaden zu nehmen. Sodenn muß er diesen eine Woche lang von Ort zu Ort tragen, damit er sich mit Lebensenergie vollsaugt, ohne einem einzelnen Ort soviel zu entfernen, daß er Schaden nimmt. </text>
</string>
<string name="create_potion_p3">
<text locale="en">Busybeer is another application for the knowledge about time a magician accumulates. Even though manual labour is only seldom done by mages, they still show interest in increasing the efficiency of their minions that do this work for them. Mornac the wise was the first to discover how to produce a potion that would enable 10 minions to do the work of 20, thus freeing the other 10 for different experiments.</text>
<text locale="de">Ein weiteres Anwendungsgebiet des Wissens über die Zeit welches ein Magier ansammelt stellt der Schaffenstrunk dar. Auch wenn körperliche Arbeiten eher selten von Magiern ausgeführt werden, so haben diese doch ein Interesse daran, die Effizienz ihrer Untergebenen bei solchen Arbeiten zu steigern. Mornac der Weise war der erste, der entdeckte, daß man einen Trunk herstellen kann, durch den 10 Untergebene die arbeit von 20 erledigen können, wodurch 10 für andere Experimente weiterverwendet werden konnten. </text>
</string>
<string name="create_potion_ointment">
<text locale="en">In the aftermath of battle it is vital to heal your own troops. This can be done by a healer as well as by a magician. In contrast to a healer, the magician can fullfill his treatment already before the battle by binding his magical powers into a potent salve. This salve can be stored and only needs to be applied to the wounds after the battle. </text>
<text locale="de">Nach einem harten Kampf sollte man sich heilen lassen. Diese Möglichkeit bietet der Magier ebenso wie der Heiler. Im Gegensatz zum Heiler ist der Magier jedoch in der Lage, seine Behandlung bereits vor dem Kampf durchzuführen, indem er seine Heilkräfte in eine magische Salbe bindet, welche gelagert werden kann und nach dem Kampf nur aufgetragen werden muß.</text>
</string>
<string name="create_potion_peasantblood">
<text locale="en">One of the most dangerous and best guarded secrets of all mages is the knowledge about the power of death. Even though most of them would not openly admit it, and it is at least partially forbidden in most countries, each of them studies death sooner or later. When they do, they quickly find out that there is another plane of existance, the home of the demons. Only blood can quelch the thirst of those, when they switch from their home to our world. But experienced mages will find out that the demons bloodwine can be deluted when apropiate herbs are included, making it enough for 100 instead of 10 demons. As the demons may not know about that, the magician has to secretly sacrifice one of his freed minions.</text>
<text locale="de">Zu den gefährlichsten und geheimsten Wissen der Magier zählt das Wissen über die Macht des Todes. Auch wenn die meisten es nicht zugeben, so fasziniert dieses Thema jeden Magier. Früher oder später beschäftigen sich alle mit diesem, teiweise verbotenen, Gebiet. Sodann werden sie feststellen, das es noch eine weitere Ebene der Existenz gibt, in der die Dämonen beheimatet sind. Nur Blut allein vermag den Hunger dieser Wesen zu befriedigen, wenn sie ihre Ebene verlassen und unsere betreten. Erfahrene Magier werden jedoch feststellen, dass man den Blutwein, den die Dämonen zu sich nehmen strecken kann, so daß davon 100 anstatt nur 10 Dämonen satt werden. Da die Dämonen davon jedoch nichts wissen dürfen, muß der Magier selbst klammheimlich einen seiner urplötzlich verfügbar gewordenen Untergebenen opfern. </text>
</string>
<string name="create_potion_p9">
<text locale="en">Even though mages live in strict cellibate they know a lot about creating certain longings. Peasants keep asking them for this love potion or that. But the penality for bewitching a peasant is death, so the mages offer their services only to farmers for their breeding stock. In an elaborate ritual, which only serves to hide the simplicity of the procedure, the magician draws the fluids from certains plants. while doing so, he calls upon the spirits of fertility which of course only listen when he talkes to them. Now the farmer knows that any attempt to draw the fluids himself will only result in a useless waste of resorces. Finally, the magician hands the vial with the fluids to the farmer, who pours it into his horses drinking water.</text>
<text locale="de">Obwohl für Magier das Gebiet der Liebe Tabu ist und sie im strengen Zölibat leben, haben sie ein großes Wissen darüber, wie man gewisse Bedürfnisse weckt, weshalb sie immer wieder von Dorfbewohnerinnen und Dorfbewohnern nach entsprechenden Zaubern gefragt werden. Da die Verzauberung eines Bewohners jedoch streng verboten ist, bieten sie ihre Dienste nur für die Züchter an. In einem Aufwendigen Ritual, welches jedoch nur dazu dient zu verschleiern, wie einfach dies eigentlich ist, vermischt der Magier vor den Augen des Züchters einige Pflanzensäfte. Dabei ruft er die Geister an die dem Pferdezüchter das Glück bescheren sollen, um klarzumachen, das diese nur mit ihm sprechen und jeglicher Versuch des Züchters, selbst die Kräuter zu mischen nur eine unbrauchbare Pampe produzieren würde. Anschließend überreicht der Magier dem Züchter eine Phiole, die dieser in die Tränke seiner Pferde entleeren muß.</text>
</string>
<string name="create_potion_p13">
<text locale="en">Just like with the knowledge about death, the peasants feel uncomfortable with the knowledge about monsters. A few warriors though, who have already faced these creatures in combat, foud that the monsters blood had en invigourating effect on them. There is talk about some warriors, who bathed in the blood of the slain monsters to take up their strenght. But this effect ends soon, and only occurs with fresh blood. As no one has time to quickly slay a wyrm before attacking his neighbors, a way had to be found to make the effect last longer. After lots of experiments that cost the life of lots of good warriors who had to constantly bring in fresh dragon blood, Manasouf the black finally found a way. Originally a closely guarded secret, the recipe is now knows in all lands. First, the hardened dragon blood needs to be melted in hot tin. After that, the magician binds the spirit of the dragon to its blood once again. It can not fnd eternal rest until the last bit of blood has been used. </text>
<text locale="de">Ebenso wie das Wissen über den Tod ist das Wissen über gewisse Monster bei der abergläubigen Bevölkerung nicht gerne gesehen. Einige wenige Krieger jedoch, die diesen Kreaturen schon mal im Kampf gegenüberstanden haben entdeckt, daß deren Blut eine belebende Wirkung auf sie hatte. So solle es schon Kriger gegeben haben, die im Blut der erschlagenen Monster badeten, um deren Stärke in sich aufzunehmen. Diese Wirkung verfliegt jedoch rasch, und wirkt nur bei frischen Blut. Da niemand vor dem Kampf gegen seinen Nachbarn die Zeit hat, schnell noch einen Wyrm zu erschlagen musste ein Weg gefunden werden, die Wirkung haltbar zu machen. Manasouf dem schwarzen gelang dies nach zahlreichen Experimenten, die das Leben vieler guter Männer kosteten, welche ständig neues Drachenblut für seine Versuche beschaffen mussten. Ursprünglich ein streng gehütetes Geheimnis, ist das Rezept inzwischen im ganzen Land bekannt. Zunächst muß geronnene Drachenblut muß in einem Tiegel wieder verflüssigt werden. Anschließend wird der Geist des erschlagenen Drachen in der Geisterebene wieder an sein Blut gebunden, und kann solange nicht in frieden ruhen, bis das letzte bisschen seines Blutes verbraucht wurde.</text>
</string>
<string name="create_potion_p14">
<text locale="en">Some mages research deth's secrets until they can bring the dead back to life. But those who are brought back are often only shadows of ther former self and turn against their erstwhile friends. But those mages that study life and its iteraction with death find a possibility, to bring the deceased back as their original selves. A drawback is that this is only possible in the very first minutes after the death. As even mages can not be everywhere at the same time, a way had to be found to give this ability to helpers. All healers who tried to learn this from the mages failed, though, until one of those healers was backstabbingly killed. In the moment of his death he used the knowledge gained and was able to have his murderer executed the following day. The potion he designed has to be blessed by a magician before usage at any given time. This potion gives 4 people (or 1 person 4 times) a 50% chance to survive an otherwise deadly wound. It is used automatically by the victom.</text>
<text locale="de">Manche Magier erforschen den Tod, bis sie verstorbene wieder ins Leben zurück bringen können. Diese sind jedoch meist bösartig und nur noch Schatten ihres früheren selbst. Diejenigen jedoch, die sich intensiv mit dem Leben und seiner Kombination mit dem Tod beschäftigen finden eine Möglichkeit, verstorbene in ihrer wahren Gestallt zurück zu rufen. Dies ist allerdings nur wenige Minuten nach dem Tod möglich. Da selbst Magier nicht überall gleichzeitig sein können, musste ein Weg gefunden werden, diese Fähigkeit auf andere zu übertragen. Alle Versuche, dies feldschern beizubringen scheiterten jedoch, bis einer dieser Felschner von einem Widersacher hinterrücks ermordet wurde. Im Moment seines Todes wandte er sein erworbenes Wissen an und konnte tags darauf den Übeltäter wegen Mordes hinrichten lassen. Der von ihm entwickelte magische Trank muß jedoch von einem der Magie des Lebens kundigen gesegnet werden, um seine volle Wirkung zu entfalten. Ein solcher Trank gibt vier Männern (oder einem Mann vier mal) im Kampf eine Chance von 50%, sonst tödliche Wunden zu überleben. Der Trank wird von ihnen automatisch bei Verletzung angewandt.</text>
</string>
</namespace>
<namespace name="spell">
<string name="commonfamiliar">
<text locale="de">Vertrauten binden</text>
<text locale="en">Bind Familiar</text>
</string>
</namespace>
<namespace name="spellinfo">
<string name="commonfamiliar">
<text locale="de">Einem erfahrenen Magier wird
irgendwann auf seinen Wanderungen ein
ungewöhnliches Exemplar einer Gattung begegnen,
welches sich dem Magier anschließen wird.</text>
<text locale="en">During their travel, seasoned
magicians will occasionally befriend an extraordinary
creature of an unusual species that will join them.</text>
</string>
</namespace>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<!--
_d: dativ (wir erklären allen /Trollen/ den Krieg)
_p: plural (13 /Trolle/)
_x: preposition (15 /Troll/schwerter)
_a: including article (ein Troll, a troll)
-->
<!--Fort-Ausbaustufen -->
<string name="calendar::thirdage">
<text locale="de">des dritten Zeitalters</text>
<text locale="en">the third age</text>
</string>
<string name="rpg_item_1_p">
<text locale="de">Urkunden</text>
<text locale="en">Certificates</text>
</string>
<string name="rpg_item_2_p">
<text locale="de">Nußhälften</text>
<text locale="en">nut halves</text>
</string>
<string name="rpg_item_3_p">
<text locale="de">Flaschengeister</text>
<text locale="en">bottle demons</text>
</string>
<string name="rpg_item_1">
<text locale="de">Pandoras Urkunde für Halbling ehrenhalber, weiblich</text>
<text locale="en">Pandora's Certificate</text>
</string>
<string name="rpg_item_2">
<text locale="de">Heilige Nußhälfte</text>
<text locale="en">piece of a holy nut</text>
</string>
<string name="rpg_item_3">
<text locale="de">Flaschengeist Zhardamon</text>
<text locale="en">bottle demon Zhardamon</text>
</string>
<string name="rep_crossbow">
<text locale="de">Repetierarmbrust</text>
<text locale="en">repeating crossbow</text>
</string>
<string name="rep_crossbow_p">
<text locale="de">Repetierarmbrüste</text>
<text locale="en">repeating crossbows</text>
</string>
<string name="scaffolding">
<text locale="de">Gerüst</text>
<text locale="en">scaffolding</text>
</string>
<string name="guardhouse">
<text locale="de">Wachstube</text>
<text locale="en">guard house</text>
</string>
<string name="guardtower">
<text locale="de">Wachturm</text>
<text locale="en">guard tower</text>
</string>
<string name="watch">
<text locale="de">Wache</text>
<text locale="en">watch</text>
</string>
<string name="market">
<text locale="de">Marktplatz</text>
<text locale="en">marketplace</text>
</string>
<namespace name="morale">
<string name="0">
<text locale="de">aufständische</text>
<text locale="en">rebellious</text>
</string>
<string name="1">
<text locale="de">wütende</text>
<text locale="en">mad</text>
</string>
<string name="2">
<text locale="de">zornige</text>
<text locale="en">angry</text>
</string>
<string name="3">
<text locale="de">unruhige</text>
<text locale="en">agitated</text>
</string>
<string name="4">
<text locale="de">gleichgültige</text>
<text locale="en">indifferent</text>
</string>
<string name="5">
<text locale="de">entspannte</text>
<text locale="en">relaxed</text>
</string>
<string name="6">
<text locale="de">zufriedene</text>
<text locale="en">content</text>
</string>
<string name="7">
<text locale="de">glückliche</text>
<text locale="en">happy</text>
</string>
<string name="8">
<text locale="de">treue</text>
<text locale="en">loyal</text>
</string>
<string name="9">
<text locale="de">ergebene</text>
<text locale="en">devoted</text>
</string>
<string name="10">
<text locale="de">unterwürfige</text>
<text locale="en">subservient</text>
</string>
</namespace>
<string name="charger">
<text locale="de">Streitross</text>
<text locale="en">charger</text>
</string>
<string name="charger_p">
<text locale="de">Streitrösser</text>
<text locale="en">chargers</text>
</string>
<string name="towershield">
<text locale="de">Turmschild</text>
<text locale="en">tower shield</text>
</string>
<string name="towershield_p">
<text locale="de">Turmschilde</text>
<text locale="en">tower shields</text>
</string>
<namespace name="spell">
<string name="create_potion_p0">
<text locale="de">Braue Siebenmeilentee</text>
<text locale="en">brew seven mile tea</text>
</string>
<string name="create_potion_p2">
<text locale="de">Braue Wasser des Lebens</text>
<text locale="en">brew water of life</text>
</string>
<string name="create_potion_p3">
<text locale="de">Braue Schaffenstrunk</text>
<text locale="en">brew busy beer</text>
</string>
<string name="create_potion_ointment">
<text locale="de">Braue Wundsalbe</text>
<text locale="en">brew ointment</text>
</string>
<string name="create_potion_peasantblood">
<text locale="de">Braue Bauernblut</text>
<text locale="en">brew peasant blood</text>
</string>
<string name="create_potion_p9">
<text locale="de">Braue Pferdeglück</text>
<text locale="en">brew horsepower potion</text>
</string>
<string name="create_potion_p13">
<text locale="de">Braue Elixier der Macht</text>
<text locale="en">brew elixir of power</text>
</string>
<string name="create_potion_p14">
<text locale="de">Braue Heiltrank</text>
<text locale="en">brew healing potion</text>
</string>
</namespace>
<namespace name="spellinfo">
<string name="raindance">
<text locale="de">Durch dieses uralte Tanzritual ruft der Zauberkundige
die Kräfte des Lebens und der Fruchtbarkeit an. Die darauf folgenden
Regenfälle begünstigen das Wachstum und erhöhen die Ernteerträge
einiger Bauern der Region bis der Regen wieder nachlässt.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.
(OBS: this spell has been changed and needs a new translation).</text>
</string>
<string name="blessedharvest">
<text locale="de">Für dieses Ernteritual sendet der Druide seine arkane Energie entlang
der astralen Kraftlinien der gesamten Umgebung, um selbst weit entfernte
Naturgeister zu erreichen. Die Beschwörung dieser Naturgeister ist eine
hohe Kunst, die höchste Konzentration und vor allem viel Erfahrung
erfordert. Die Bauern werden nach und nach von den besseren Ernten
profitieren und ihre Ersparnisse steigern können.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.
(OBS: this spell has been changed and needs a new translation).</text>
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 25 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
who sell curses and hexes on demand - but you
can buy the apropriate counterspells from the
followers of Draig as well. May it be a love
spell for the son of a neighbour or a wart in
the face of a rival. For offering these
services, the sorcerer charges 25 silver pieces.
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
cristal, les cartes de tarot ou les lignes de la
main. Un mentaliste peut gagner 25 écus par
niveau et par semaine en proposant ses services
aux paysans.</text>
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
25 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also
familiar with all other common means of
foretelling the future like crystal balls, tarot
cards or palms. A mentalist can earn 25 silver
pieces per level and week for offering these
services to peasants.</text>
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 25 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
scholar of Tybied. His potions and tinctures may help when nothing
else does. If the cryptic formula under the wooden shoes of the
unfaithful husband really helped? - well, the peasant, who isn't
capable of reading, will never know. At least it helped the magician...
to fill his purse. In one week he can earn 25 silver per level that
way.</text>
</string>
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
25 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
entertain the crowds and to be the center of attention.
Even the apprentices study those little magic tricks,
which attract and fascinate the people and thus ensnare
them into leaving a few coins or more for the artist. By
the end of the week, the bard will have earned 25 silver
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 25 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
appreciated among the peasants. Especially at the
markets, their services are demanded frequently. Some of
them also use their talents to sell an animal at a
higher price. A magician can earn 25 silver pieces per level
in this way.</text>
</string>
<string name="create_potion_p0">
<text locale="en">Time is one of the first mysteries every magician tries to solve. If he succeeds, he can focus all his energies on his magical studies as the ways between dormatory, library and magician tower now pass much faster. To keep his heart in tune the magician uses a special self made tey. Some mages even share it with up to 10 people</text>
<text locale="de">Die Zeit ist eines der ersten Geheimnisse, die jeder Magier zu erkunden versucht. Gelingt ihm dies, kann er alle seine Energie auf das Studium der Magie verwenden, die Wege zwischen Dormitorium, Bibliothek und Magierturm schafft er nun viel schneller. Um sein Herz im Takt zu halten verwendet er einen speziellen selbstgemachten Tee. Manche Magier teilen diesen Tee mit bis zu 10 Personen. </text>
</string>
<string name="create_potion_p2">
<text locale="en">One of the most strange spells enables the magician to withdraw a little life energy from his surroundings to produce the so called water of life. The juice of some selected herbs is used to conserve the energies of life. As the magician is protected by his magical abilities, he is the only one who can touch the juice without taking damage. This is necessary because the juice must be carried around from place to place to avoid damaging one region by taking too much energy at once.</text>
<text locale="de">In einem der seltsamsten Zauber kann der Magier seiner Umgebung ein klein wenig der Lebensenergie entziehen um das sogenannte Wasser des Lebens herstellen. Als Basis dient ihm hierbei der Saft aus einigen ausgesuchten Kräutern, welcher die Lebensenergie speichern kann. Da der Magier aufgrund seiner magischen Fähigkeiten immun ist, ist er der einzige, der den Saft berühren kann, ohne Schaden zu nehmen. Sodenn muß er diesen eine Woche lang von Ort zu Ort tragen, damit er sich mit Lebensenergie vollsaugt, ohne einem einzelnen Ort soviel zu entfernen, daß er Schaden nimmt. </text>
</string>
<string name="create_potion_p3">
<text locale="en">Busybeer is another application for the knowledge about time a magician accumulates. Even though manual labour is only seldom done by mages, they still show interest in increasing the efficiency of their minions that do this work for them. Mornac the wise was the first to discover how to produce a potion that would enable 10 minions to do the work of 20, thus freeing the other 10 for different experiments.</text>
<text locale="de">Ein weiteres Anwendungsgebiet des Wissens über die Zeit welches ein Magier ansammelt stellt der Schaffenstrunk dar. Auch wenn körperliche Arbeiten eher selten von Magiern ausgeführt werden, so haben diese doch ein Interesse daran, die Effizienz ihrer Untergebenen bei solchen Arbeiten zu steigern. Mornac der Weise war der erste, der entdeckte, daß man einen Trunk herstellen kann, durch den 10 Untergebene die arbeit von 20 erledigen können, wodurch 10 für andere Experimente weiterverwendet werden konnten. </text>
</string>
<string name="create_potion_ointment">
<text locale="en">In the aftermath of battle it is vital to heal your own troops. This can be done by a healer as well as by a magician. In contrast to a healer, the magician can fullfill his treatment already before the battle by binding his magical powers into a potent salve. This salve can be stored and only needs to be applied to the wounds after the battle. </text>
<text locale="de">Nach einem harten Kampf sollte man sich heilen lassen. Diese Möglichkeit bietet der Magier ebenso wie der Heiler. Im Gegensatz zum Heiler ist der Magier jedoch in der Lage, seine Behandlung bereits vor dem Kampf durchzuführen, indem er seine Heilkräfte in eine magische Salbe bindet, welche gelagert werden kann und nach dem Kampf nur aufgetragen werden muß.</text>
</string>
<string name="create_potion_peasantblood">
<text locale="en">One of the most dangerous and best guarded secrets of all mages is the knowledge about the power of death. Even though most of them would not openly admit it, and it is at least partially forbidden in most countries, each of them studies death sooner or later. When they do, they quickly find out that there is another plane of existance, the home of the demons. Only blood can quelch the thirst of those, when they switch from their home to our world. But experienced mages will find out that the demons bloodwine can be deluted when apropiate herbs are included, making it enough for 100 instead of 10 demons. As the demons may not know about that, the magician has to secretly sacrifice one of his freed minions.</text>
<text locale="de">Zu den gefährlichsten und geheimsten Wissen der Magier zählt das Wissen über die Macht des Todes. Auch wenn die meisten es nicht zugeben, so fasziniert dieses Thema jeden Magier. Früher oder später beschäftigen sich alle mit diesem, teiweise verbotenen, Gebiet. Sodann werden sie feststellen, das es noch eine weitere Ebene der Existenz gibt, in der die Dämonen beheimatet sind. Nur Blut allein vermag den Hunger dieser Wesen zu befriedigen, wenn sie ihre Ebene verlassen und unsere betreten. Erfahrene Magier werden jedoch feststellen, dass man den Blutwein, den die Dämonen zu sich nehmen strecken kann, so daß davon 100 anstatt nur 10 Dämonen satt werden. Da die Dämonen davon jedoch nichts wissen dürfen, muß der Magier selbst klammheimlich einen seiner urplötzlich verfügbar gewordenen Untergebenen opfern. </text>
</string>
<string name="create_potion_p9">
<text locale="en">Even though mages live in strict cellibate they know a lot about creating certain longings. Peasants keep asking them for this love potion or that. But the penality for bewitching a peasant is death, so the mages offer their services only to farmers for their breeding stock. In an elaborate ritual, which only serves to hide the simplicity of the procedure, the magician draws the fluids from certains plants. while doing so, he calls upon the spirits of fertility which of course only listen when he talkes to them. Now the farmer knows that any attempt to draw the fluids himself will only result in a useless waste of resorces. Finally, the magician hands the vial with the fluids to the farmer, who pours it into his horses drinking water.</text>
<text locale="de">Obwohl für Magier das Gebiet der Liebe Tabu ist und sie im strengen Zölibat leben, haben sie ein großes Wissen darüber, wie man gewisse Bedürfnisse weckt, weshalb sie immer wieder von Dorfbewohnerinnen und Dorfbewohnern nach entsprechenden Zaubern gefragt werden. Da die Verzauberung eines Bewohners jedoch streng verboten ist, bieten sie ihre Dienste nur für die Züchter an. In einem Aufwendigen Ritual, welches jedoch nur dazu dient zu verschleiern, wie einfach dies eigentlich ist, vermischt der Magier vor den Augen des Züchters einige Pflanzensäfte. Dabei ruft er die Geister an die dem Pferdezüchter das Glück bescheren sollen, um klarzumachen, das diese nur mit ihm sprechen und jeglicher Versuch des Züchters, selbst die Kräuter zu mischen nur eine unbrauchbare Pampe produzieren würde. Anschließend überreicht der Magier dem Züchter eine Phiole, die dieser in die Tränke seiner Pferde entleeren muß.</text>
</string>
<string name="create_potion_p13">
<text locale="en">Just like with the knowledge about death, the peasants feel uncomfortable with the knowledge about monsters. A few warriors though, who have already faced these creatures in combat, foud that the monsters blood had en invigourating effect on them. There is talk about some warriors, who bathed in the blood of the slain monsters to take up their strenght. But this effect ends soon, and only occurs with fresh blood. As no one has time to quickly slay a wyrm before attacking his neighbors, a way had to be found to make the effect last longer. After lots of experiments that cost the life of lots of good warriors who had to constantly bring in fresh dragon blood, Manasouf the black finally found a way. Originally a closely guarded secret, the recipe is now knows in all lands. First, the hardened dragon blood needs to be melted in hot tin. After that, the magician binds the spirit of the dragon to its blood once again. It can not fnd eternal rest until the last bit of blood has been used. </text>
<text locale="de">Ebenso wie das Wissen über den Tod ist das Wissen über gewisse Monster bei der abergläubigen Bevölkerung nicht gerne gesehen. Einige wenige Krieger jedoch, die diesen Kreaturen schon mal im Kampf gegenüberstanden haben entdeckt, daß deren Blut eine belebende Wirkung auf sie hatte. So solle es schon Kriger gegeben haben, die im Blut der erschlagenen Monster badeten, um deren Stärke in sich aufzunehmen. Diese Wirkung verfliegt jedoch rasch, und wirkt nur bei frischen Blut. Da niemand vor dem Kampf gegen seinen Nachbarn die Zeit hat, schnell noch einen Wyrm zu erschlagen musste ein Weg gefunden werden, die Wirkung haltbar zu machen. Manasouf dem schwarzen gelang dies nach zahlreichen Experimenten, die das Leben vieler guter Männer kosteten, welche ständig neues Drachenblut für seine Versuche beschaffen mussten. Ursprünglich ein streng gehütetes Geheimnis, ist das Rezept inzwischen im ganzen Land bekannt. Zunächst muß geronnene Drachenblut muß in einem Tiegel wieder verflüssigt werden. Anschließend wird der Geist des erschlagenen Drachen in der Geisterebene wieder an sein Blut gebunden, und kann solange nicht in frieden ruhen, bis das letzte bisschen seines Blutes verbraucht wurde.</text>
</string>
<string name="create_potion_p14">
<text locale="en">Some mages research deth's secrets until they can bring the dead back to life. But those who are brought back are often only shadows of ther former self and turn against their erstwhile friends. But those mages that study life and its iteraction with death find a possibility, to bring the deceased back as their original selves. A drawback is that this is only possible in the very first minutes after the death. As even mages can not be everywhere at the same time, a way had to be found to give this ability to helpers. All healers who tried to learn this from the mages failed, though, until one of those healers was backstabbingly killed. In the moment of his death he used the knowledge gained and was able to have his murderer executed the following day. The potion he designed has to be blessed by a magician before usage at any given time. This potion gives 4 people (or 1 person 4 times) a 50% chance to survive an otherwise deadly wound. It is used automatically by the victom.</text>
<text locale="de">Manche Magier erforschen den Tod, bis sie verstorbene wieder ins Leben zurück bringen können. Diese sind jedoch meist bösartig und nur noch Schatten ihres früheren selbst. Diejenigen jedoch, die sich intensiv mit dem Leben und seiner Kombination mit dem Tod beschäftigen finden eine Möglichkeit, verstorbene in ihrer wahren Gestallt zurück zu rufen. Dies ist allerdings nur wenige Minuten nach dem Tod möglich. Da selbst Magier nicht überall gleichzeitig sein können, musste ein Weg gefunden werden, diese Fähigkeit auf andere zu übertragen. Alle Versuche, dies feldschern beizubringen scheiterten jedoch, bis einer dieser Felschner von einem Widersacher hinterrücks ermordet wurde. Im Moment seines Todes wandte er sein erworbenes Wissen an und konnte tags darauf den Übeltäter wegen Mordes hinrichten lassen. Der von ihm entwickelte magische Trank muß jedoch von einem der Magie des Lebens kundigen gesegnet werden, um seine volle Wirkung zu entfalten. Ein solcher Trank gibt vier Männern (oder einem Mann vier mal) im Kampf eine Chance von 50%, sonst tödliche Wunden zu überleben. Der Trank wird von ihnen automatisch bei Verletzung angewandt.</text>
</string>
</namespace>
<namespace name="spell">
<string name="commonfamiliar">
<text locale="de">Vertrauten binden</text>
<text locale="en">Bind Familiar</text>
</string>
</namespace>
<namespace name="spellinfo">
<string name="commonfamiliar">
<text locale="de">Einem erfahrenen Magier wird
irgendwann auf seinen Wanderungen ein
ungewöhnliches Exemplar einer Gattung begegnen,
welches sich dem Magier anschließen wird.</text>
<text locale="en">During their travel, seasoned
magicians will occasionally befriend an extraordinary
creature of an unusual species that will join them.</text>
</string>
</namespace>
</strings>

View file

@ -1,73 +1,73 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<terrains>
<!-- defaults: walk="yes" sail="yes" fly="yes" shallow="yes" swim="no" forest="no" sea="no" land="yes" forbidden="no" arctic="no" cavalry="no" size="0" -->
<terrain name="ocean" size="100" shallow="no" walk="no" swim="yes" land="no" sea="yes" />
<terrain name="plain" size="4000" road="50" shallow="no" forest="yes" cavalry="yes" seed="3">
<herb name="h0" />
<herb name="h4" />
<resource name="iron" chance="0.1" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.15" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.01" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="swamp" size="1200" road="75" seed="2">
<herb name="h6" />
<herb name="h8" />
<resource name="iron" chance="0.02" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.02" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.02" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="desert" size="400" road="100" cavalry="yes" seed="2">
<herb name="h9" />
<herb name="h11" />
<resource name="iron" chance="0.15" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.25" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.025" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="highland" size="2300" road="100" cavalry="yes" seed="2">
<herb name="h12" />
<herb name="h14" />
<resource name="iron" chance="0.15" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.25" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.025" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="mountain" size="600" road="250" seed="2">
<herb name="h15" />
<herb name="h17" />
<resource name="iron" chance="1.0" level="1" base="50" div="50" />
<resource name="stone" chance="1.0" level="1" base="100" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="glacier" size="150" road="250" arctic="yes" seed="2">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="1.0" level="1" base="3" div="50" />
<resource name="stone" chance="1.0" level="1" base="2" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="iceberg_sleep" size="150" road="250" arctic="yes">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="0.9" level="1" base="3" div="50" />
<resource name="stone" chance="0.9" level="1" base="2" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="iceberg" size="150" arctic="yes">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="0.9" level="1" base="3" div="50" />
<resource name="stone" chance="0.9" level="1" base="2" div="100" />
</terrain>
<terrain name="firewall" road="250" land="no" walk="no" sail="no" fly="no" forbidden="yes" />
<terrain name="fog" sail="no" land="no" />
<terrain name="thickfog" forbidden="yes" sail="no" walk="no" fly="no" land="no" />
<terrain name="volcano" size="400" road="250" seed="1">
<resource name="iron" chance="0.5" level="1" base="50" div="50" />
<resource name="stone" chance="0.5" level="1" base="100" div="100" />
<resource name="laen" chance="0.075" level="1" base="4" div="100" />
</terrain>
<terrain name="activevolcano" size="400" road="250">
<resource name="iron" chance="0.5" level="1" base="50" div="50" />
<resource name="stone" chance="0.5" level="1" base="100" div="100" />
<resource name="laen" chance="0.075" level="1" base="4" div="100" />
</terrain>
</terrains>
<?xml version="1.0" encoding="ISO-8859-1"?>
<terrains>
<!-- defaults: walk="yes" sail="yes" fly="yes" shallow="yes" swim="no" forest="no" sea="no" land="yes" forbidden="no" arctic="no" cavalry="no" size="0" -->
<terrain name="ocean" size="100" shallow="no" walk="no" swim="yes" land="no" sea="yes" />
<terrain name="plain" size="4000" road="50" shallow="no" forest="yes" cavalry="yes" seed="3">
<herb name="h0" />
<herb name="h4" />
<resource name="iron" chance="0.1" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.15" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.01" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="swamp" size="1200" road="75" seed="2">
<herb name="h6" />
<herb name="h8" />
<resource name="iron" chance="0.02" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.02" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.02" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="desert" size="400" road="100" cavalry="yes" seed="2">
<herb name="h9" />
<herb name="h11" />
<resource name="iron" chance="0.15" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.25" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.025" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="highland" size="2300" road="100" cavalry="yes" seed="2">
<herb name="h12" />
<herb name="h14" />
<resource name="iron" chance="0.15" level="2d4-1" base="5d8" div="2d20+10" />
<resource name="stone" chance="0.25" level="1d4" base="5d8" div="2d30+20" />
<resource name="laen" chance="0.025" level="1d4" base="1d4" div="2d20+50" />
</terrain>
<terrain name="mountain" size="600" road="250" seed="2">
<herb name="h15" />
<herb name="h17" />
<resource name="iron" chance="1.0" level="1" base="50" div="50" />
<resource name="stone" chance="1.0" level="1" base="100" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="glacier" size="150" road="250" arctic="yes" seed="2">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="1.0" level="1" base="3" div="50" />
<resource name="stone" chance="1.0" level="1" base="2" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="iceberg_sleep" size="150" road="250" arctic="yes">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="0.9" level="1" base="3" div="50" />
<resource name="stone" chance="0.9" level="1" base="2" div="100" />
<resource name="laen" chance="0.05" level="1" base="4" div="100" />
</terrain>
<terrain name="iceberg" size="150" arctic="yes">
<herb name="h18" />
<herb name="h20" />
<resource name="iron" chance="0.9" level="1" base="3" div="50" />
<resource name="stone" chance="0.9" level="1" base="2" div="100" />
</terrain>
<terrain name="firewall" road="250" land="no" walk="no" sail="no" fly="no" forbidden="yes" />
<terrain name="fog" sail="no" land="no" />
<terrain name="thickfog" forbidden="yes" sail="no" walk="no" fly="no" land="no" />
<terrain name="volcano" size="400" road="250" seed="1">
<resource name="iron" chance="0.5" level="1" base="50" div="50" />
<resource name="stone" chance="0.5" level="1" base="100" div="100" />
<resource name="laen" chance="0.075" level="1" base="4" div="100" />
</terrain>
<terrain name="activevolcano" size="400" road="250">
<resource name="iron" chance="0.5" level="1" base="50" div="50" />
<resource name="stone" chance="0.5" level="1" base="100" div="100" />
<resource name="laen" chance="0.075" level="1" base="4" div="100" />
</terrain>
</terrains>

View file

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

View file

@ -1,13 +1,13 @@
<?xml version="1.0"?>
<resource name="crossbow">
<item weight="100">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<weapon armorpiercing="true" pierce="true" missile="true" skill="crossbow" offmod="0" defmod="0" reload="2">
<damage type="rider" value="3d4+5"/>
<damage type="footman" value="3d4+5"/>
<modifier type="missile_target" value="0"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<resource name="crossbow">
<item weight="100">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<weapon armorpiercing="true" pierce="true" missile="true" skill="crossbow" offmod="0" defmod="0" reload="2">
<damage type="rider" value="3d4+5"/>
<damage type="footman" value="3d4+5"/>
<modifier type="missile_target" value="0"/>
</weapon>
</item>
</resource>

View file

@ -1,22 +1,22 @@
<?xml version="1.0"?>
<!-- changes:
* has a lua canuse function
* has lower damage
-->
<resource name="greatbow">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.0">
<damage type="rider" value="2d4+5"/>
<damage type="footman" value="2d4+5"/>
<modifier type="missile_target" value="2"/>
<modifier type="damage" value="1">
<race name="elf"/>
</modifier>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes:
* has a lua canuse function
* has lower damage
-->
<resource name="greatbow">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<modifier function="mod_elves_only"/>
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.0">
<damage type="rider" value="2d4+5"/>
<damage type="footman" value="2d4+5"/>
<modifier type="missile_target" value="2"/>
<modifier type="damage" value="1">
<race name="elf"/>
</modifier>
</weapon>
</item>
</resource>

View file

@ -1,15 +1,15 @@
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="greatsword">
<item weight="200" score="30">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon useshield="false" cut="true" skill="melee" offmod="-1" defmod="-2" horse="false">
<damage type="rider" value="2d8+3"/>
<damage type="footman" value="2d8+3"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="greatsword">
<item weight="200" score="30">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon useshield="false" cut="true" skill="melee" offmod="-1" defmod="-2" horse="false">
<damage type="rider" value="2d8+3"/>
<damage type="footman" value="2d8+3"/>
</weapon>
</item>
</resource>

View file

@ -1,18 +1,18 @@
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="halberd">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon useshield="false" cut="true" skill="polearm" offmod="-1" defmod="2" magres="0.0" horse="false">
<damage type="rider" value="2d6+3"/>
<damage type="footman" value="2d6+3"/>
<modifier type="skill" value="1" walking="true" against_riding="true" defensive="true"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="halberd">
<item weight="200">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon useshield="false" cut="true" skill="polearm" offmod="-1" defmod="2" magres="0.0" horse="false">
<damage type="rider" value="2d6+3"/>
<damage type="footman" value="2d6+3"/>
<modifier type="skill" value="1" walking="true" against_riding="true" defensive="true"/>
</weapon>
</item>
</resource>

View file

@ -1,15 +1,15 @@
<?xml version="1.0"?>
<!-- changes:
* has lower damage
-->
<resource name="laensword">
<item weight="100" score="400">
<construction skill="weaponsmithing" minskill="8" reqsize="1">
<requirement type="laen" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="1" defmod="1" magres="0.30">
<damage type="rider" value="2d9+4"/>
<damage type="footman" value="2d9+4"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes:
* has lower damage
-->
<resource name="laensword">
<item weight="100" score="400">
<construction skill="weaponsmithing" minskill="8" reqsize="1">
<requirement type="laen" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="1" defmod="1" magres="0.30">
<damage type="rider" value="2d9+4"/>
<damage type="footman" value="2d9+4"/>
</weapon>
</item>
</resource>

View file

@ -1,13 +1,13 @@
<?xml version="1.0"?>
<resource name="mallorncrossbow">
<item weight="100">
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="1"/>
</construction>
<weapon armorpiercing="true" pierce="true" missile="true" skill="crossbow" offmod="0" defmod="0" reload="2" magres="0.15">
<damage type="rider" value="3d4+6"/>
<damage type="footman" value="3d4+6"/>
<modifier type="missile_target" value="0"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<resource name="mallorncrossbow">
<item weight="100">
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="1"/>
</construction>
<weapon armorpiercing="true" pierce="true" missile="true" skill="crossbow" offmod="0" defmod="0" reload="2" magres="0.15">
<damage type="rider" value="3d4+6"/>
<damage type="footman" value="3d4+6"/>
<modifier type="missile_target" value="0"/>
</weapon>
</item>
</resource>

View file

@ -1,13 +1,13 @@
<?xml version="1.0"?>
<resource name="mallornlance">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" skill="polearm" minskill="5" offmod="0" defmod="0" magres="0.15">
<damage type="footman" value="1d5+2"/>
<damage type="rider" value="2d6+7"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<resource name="mallornlance">
<item weight="100">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="2"/>
</construction>
<weapon pierce="true" skill="polearm" minskill="5" offmod="0" defmod="0" magres="0.15">
<damage type="footman" value="1d5+2"/>
<damage type="rider" value="2d6+7"/>
</weapon>
</item>
</resource>

View file

@ -1,15 +1,15 @@
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="rustygreatsword">
<item weight="200" score="20">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon useshield="false" cut="true" skill="melee" offmod="-2" defmod="-3" horse="false">
<damage type="rider" value="2d8"/>
<damage type="footman" value="2d8"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannt use this with cavalry
-->
<resource name="rustygreatsword">
<item weight="200" score="20">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon useshield="false" cut="true" skill="melee" offmod="-2" defmod="-3" horse="false">
<damage type="rider" value="2d8"/>
<damage type="footman" value="2d8"/>
</weapon>
</item>
</resource>

View file

@ -1,17 +1,17 @@
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannot use this with cavalry
-->
<resource name="rustyhalberd">
<item weight="200" score="20">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="iron" quantity="1"/>
<requirement type="log" quantity="1"/>
</construction>
<weapon useshield="false" cut="true" skill="polearm" offmod="-2" defmod="-1" horse="false">
<damage type="rider" value="2d6"/>
<damage type="footman" value="2d6"/>
</weapon>
</item>
</resource>
<?xml version="1.0"?>
<!-- changes to the regular weapon:
1. you cannot use this with cavalry
-->
<resource name="rustyhalberd">
<item weight="200" score="20">
<function name="canuse" value="lua_canuse_item"/>
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="iron" quantity="1"/>
<requirement type="log" quantity="1"/>
</construction>
<weapon useshield="false" cut="true" skill="polearm" offmod="-2" defmod="-1" horse="false">
<damage type="rider" value="2d6"/>
<damage type="footman" value="2d6"/>
</weapon>
</item>
</resource>

View file

@ -1,32 +1,32 @@
<?xml version="1.0"?>
<resources>
<resource name="instantartsculpture">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_instantartsculpture"/>
</item>
</resource>
<resource name="instantartacademy">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_instantartacademy"/>
</item>
</resource>
<resource name="aurapotion50">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_aurapotion50"/>
</item>
</resource>
<resource name="bagpipeoffear">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_bagpipeoffear"/>
</item>
</resource>
</resources>
<?xml version="1.0"?>
<resources>
<resource name="instantartsculpture">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_instantartsculpture"/>
</item>
</resource>
<resource name="instantartacademy">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_instantartacademy"/>
</item>
</resource>
<resource name="aurapotion50">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_aurapotion50"/>
</item>
</resource>
<resource name="bagpipeoffear">
<function name="change" value="changeitem"/>
<item weight="0">
<function name="use" value="use_bagpipeoffear"/>
</item>
</resource>
</resources>

View file

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="../buildings/castle.xml"/>
<building name="temple" maxsize="50" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" auraregen="1.00" />
<building name="portal" maxsize="2" capacity="1" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" />
<building name="pavilion" maxsize="2" capacity="1" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" />
</buildings>
<?xml version="1.0"?>
<buildings xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="../buildings/castle.xml"/>
<building name="temple" maxsize="50" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" auraregen="1.00" />
<building name="portal" maxsize="2" capacity="1" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" />
<building name="pavilion" maxsize="2" capacity="1" maxcapacity="2" nobuild="yes" nodestroy="yes" unique="yes" />
</buildings>

View file

@ -1,19 +1,19 @@
<?xml version="1.0"?>
<equipment>
<set name="new_orc_unit">
<skill name="polearm" level="1"/>
<skill name="melee" level="1"/>
</set>
<set name="new_centaur_unit">
<skill name="polearm" level="1"/>
<skill name="melee" level="1"/>
</set>
<set name="seaserpent_spoils">
<item name="dragonblood" amount="6"/>
<item name="seaserpenthead" amount="1"/>
</set>
</equipment>
<?xml version="1.0"?>
<equipment>
<set name="new_orc_unit">
<skill name="polearm" level="1"/>
<skill name="melee" level="1"/>
</set>
<set name="new_centaur_unit">
<skill name="polearm" level="1"/>
<skill name="melee" level="1"/>
</set>
<set name="seaserpent_spoils">
<item name="dragonblood" amount="6"/>
<item name="seaserpenthead" amount="1"/>
</set>
</equipment>

View file

@ -1,199 +1,199 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<resources>
<!-- xmas gimmicks -->
<resource name="snowball">
<item notlost="yes" weight="0">
<weapon bash="true" missile="true" skill="unarmed" offmod="0" defmod="0" reload="0" magres="0.0">
<damage type="rider" value="3d8+8"/>
<damage type="footman" value="3d8+8"/>
<modifier type="missile_target" value="2"/>
<modifier type="skill" value="-90"/>
<modifier type="skill" value="100">
<race name="snowman"/>
</modifier>
</weapon>
</item>
</resource>
<resource name="snowman">
<item notlost="yes" weight="1">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<resource name="ring_of_levitation" appearance="ring">
<item notlost="yes" weight="0" cursed="true">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<resource name="birthdaycake">
<item notlost="yes" weight="0"/>
</resource>
<resource name="lebkuchenherz">
<item notlost="yes" weight="0"/>
</resource>
<!-- ambassador rewards -->
<resource name="seashell">
<item cursed="true" weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- xmas 2005 -->
<resource name="stardust" appearance="vial">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- xmas 2006 -->
<resource name="xmastree">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- art rewards -->
<resource name="trappedairelemental">
<item weight="0">
<function name="use" value="use_trappedairelemental"/>
</item>
</resource>
<resource name="hornofdancing">
<item weight="0">
<function name="use" value="use_hornofdancing"/>
</item>
</resource>
<!-- museum items -->
<resource name="museumexitticket">
<!-- you get your stuff back when leaving the museum -->
<item notlost="yes" weight="0">
<function name="use" value="use_museumexitticket"/>
</item>
</resource>
<resource name="museumticket">
<!-- you get your stuff back when leaving the museum -->
<item weight="0">
<function name="use" value="use_museumticket"/>
</item>
</resource>
<!-- gimmicks, etc. -->
<resource name="aog">
<!-- Amulett des Treffens -->
<item notlost="yes" cursed="true" weight="0"/>
</resource>
<resource name="ao_daemon">
<!-- summons igjarjuk -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="useigjarjuk"/>
<function name="give" value="giveigjarjuk"/>
</item>
</resource>
<resource name="griphonwing">
<!-- this lets you leave the arena -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="leave_arena"/>
<function name="give" value="giveigjarjuk"/>
</item>
</resource>
<resource name="eyeofdragon">
<!-- the arena gate, for one-time entry -->
<item weight="0" score="0">
<function name="use" value="enter_arena"/>
</item>
</resource>
<resource name="questkey1" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" />
</resource>
<resource name="questkey2" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" />
</resource>
<resource name="jadee_ring" appearance="ring">
<!-- Wedding ring for Jadee -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="wente_ring" appearance="ring">
<!-- Wedding ring for Wildente -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="jadee_dress">
<!-- Wedding dress for Jadee -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="wente_dress">
<!-- Wedding dress for Wildente -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="lmsreward">
<!-- LMS reward -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<!-- christmas items: start -->
<resource name="almond">
<item weight="0"/>
</resource>
<resource name="apple">
<item weight="0"/>
</resource>
<resource name="nut">
<item weight="0"/>
</resource>
<resource name="cookie">
<item weight="0"/>
</resource>
<!-- christmas items: end -->
<resource name="adamantium" limited="yes" material="rm_adamantium">
<item weight="200" score="200">
<construction skill="mining" minskill="8" reqsize="1"/>
</item>
<resourcelimit>
<modifier type="require" building="mine"/>
<guard flag="mining"/>
</resourcelimit>
</resource>
<resource name="adamantiumaxe">
<item weight="100" score="500">
<construction skill="weaponsmithing" minskill="8" reqsize="1">
<requirement type="adamantium" quantity="1"/>
<requirement type="log" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="2" defmod="-2" magres="0.30">
<damage type="rider" value="3d4+15"/>
<damage type="footman" value="3d4+15"/>
</weapon>
</item>
</resource>
<resource name="adamantiumplate">
<item weight="100" score="2000">
<construction skill="armorer" minskill="10" reqsize="1">
<requirement type="adamantium" quantity="3"/>
</construction>
<armor ac="7" penalty="0.1"/>
</item>
</resource>
</resources>
<?xml version="1.0" encoding="iso-8859-1" ?>
<resources>
<!-- xmas gimmicks -->
<resource name="snowball">
<item notlost="yes" weight="0">
<weapon bash="true" missile="true" skill="unarmed" offmod="0" defmod="0" reload="0" magres="0.0">
<damage type="rider" value="3d8+8"/>
<damage type="footman" value="3d8+8"/>
<modifier type="missile_target" value="2"/>
<modifier type="skill" value="-90"/>
<modifier type="skill" value="100">
<race name="snowman"/>
</modifier>
</weapon>
</item>
</resource>
<resource name="snowman">
<item notlost="yes" weight="1">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<resource name="ring_of_levitation" appearance="ring">
<item notlost="yes" weight="0" cursed="true">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<resource name="birthdaycake">
<item notlost="yes" weight="0"/>
</resource>
<resource name="lebkuchenherz">
<item notlost="yes" weight="0"/>
</resource>
<!-- ambassador rewards -->
<resource name="seashell">
<item cursed="true" weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- xmas 2005 -->
<resource name="stardust" appearance="vial">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- xmas 2006 -->
<resource name="xmastree">
<item weight="0">
<function name="use" value="lua_useitem"/>
</item>
</resource>
<!-- art rewards -->
<resource name="trappedairelemental">
<item weight="0">
<function name="use" value="use_trappedairelemental"/>
</item>
</resource>
<resource name="hornofdancing">
<item weight="0">
<function name="use" value="use_hornofdancing"/>
</item>
</resource>
<!-- museum items -->
<resource name="museumexitticket">
<!-- you get your stuff back when leaving the museum -->
<item notlost="yes" weight="0">
<function name="use" value="use_museumexitticket"/>
</item>
</resource>
<resource name="museumticket">
<!-- you get your stuff back when leaving the museum -->
<item weight="0">
<function name="use" value="use_museumticket"/>
</item>
</resource>
<!-- gimmicks, etc. -->
<resource name="aog">
<!-- Amulett des Treffens -->
<item notlost="yes" cursed="true" weight="0"/>
</resource>
<resource name="ao_daemon">
<!-- summons igjarjuk -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="useigjarjuk"/>
<function name="give" value="giveigjarjuk"/>
</item>
</resource>
<resource name="griphonwing">
<!-- this lets you leave the arena -->
<item weight="0" score="6000" notlost="true" cursed="true">
<function name="use" value="leave_arena"/>
<function name="give" value="giveigjarjuk"/>
</item>
</resource>
<resource name="eyeofdragon">
<!-- the arena gate, for one-time entry -->
<item weight="0" score="0">
<function name="use" value="enter_arena"/>
</item>
</resource>
<resource name="questkey1" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" />
</resource>
<resource name="questkey2" appearance="key">
<!-- Key for an old quest. placeholder item -->
<item notlost="yes" weight="0" />
</resource>
<resource name="jadee_ring" appearance="ring">
<!-- Wedding ring for Jadee -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="wente_ring" appearance="ring">
<!-- Wedding ring for Wildente -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="jadee_dress">
<!-- Wedding dress for Jadee -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="wente_dress">
<!-- Wedding dress for Wildente -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<resource name="lmsreward">
<!-- LMS reward -->
<item cursed="yes" notlost="yes" weight="0" />
</resource>
<!-- christmas items: start -->
<resource name="almond">
<item weight="0"/>
</resource>
<resource name="apple">
<item weight="0"/>
</resource>
<resource name="nut">
<item weight="0"/>
</resource>
<resource name="cookie">
<item weight="0"/>
</resource>
<!-- christmas items: end -->
<resource name="adamantium" limited="yes" material="rm_adamantium">
<item weight="200" score="200">
<construction skill="mining" minskill="8" reqsize="1"/>
</item>
<resourcelimit>
<modifier type="require" building="mine"/>
<guard flag="mining"/>
</resourcelimit>
</resource>
<resource name="adamantiumaxe">
<item weight="100" score="500">
<construction skill="weaponsmithing" minskill="8" reqsize="1">
<requirement type="adamantium" quantity="1"/>
<requirement type="log" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="2" defmod="-2" magres="0.30">
<damage type="rider" value="3d4+15"/>
<damage type="footman" value="3d4+15"/>
</weapon>
</item>
</resource>
<resource name="adamantiumplate">
<item weight="100" score="2000">
<construction skill="armorer" minskill="10" reqsize="1">
<requirement type="adamantium" quantity="3"/>
</construction>
<armor ac="7" penalty="0.1"/>
</item>
</resource>
</resources>

File diff suppressed because it is too large Load diff

View file

@ -1,113 +1,113 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<namespace name="spellinfo">
<string name="raindance">
<text locale="de">Dieses uralte Tanzritual ruft die
Kräfte des Lebens und der Fruchtbarkeit. Die Erträge der
Bauern werden für einige Wochen deutlich besser
ausfallen.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.</text>
</string>
<string name="blessedharvest">
<text locale="de">Dieses Ernteritual verbessert die Erträge der
arbeitenden Bauern in der Region um ein Silberstück. Je mehr Kraft der
Druide investiert, desto länger wirkt der Zauber.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.</text>
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 50 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
scholar of Tybied. His potions and tinctures may help when nothing
else does. If the cryptic formula under the wooden shoes of the
unfaithful husband really helped? - well, the peasant, who isn't
capable of reading, will never know. At least it helped the magician...
to fill his purse. In one week he can earn 50 silver per level that
way.</text>
</string>
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
50 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
entertain the crowds and to be the center of attention.
Even the apprentices study those little magic tricks,
which attract and fascinate the people and thus ensnare
them into leaving a few coins or more for the artist. By
the end of the week, the bard will have earned 50 silver
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 50 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
appreciated among the peasants. Especially at the
markets, their services are demanded frequently. Some of
them also use their talents to sell an animal at a
higher price. A magician can earn 50 silver pieces per level
in this way.</text>
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 50 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
who sell curses and hexes on demand - but you
can buy the apropriate counterspells from the
followers of Draig as well. May it be a love
spell for the son of a neighbour or a wart in
the face of a rival. For offering these
services, the sorcerer charges 50 silver pieces
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
cristal, les cartes de tarot ou les lignes de la
main. Un mentaliste peut gagner 50 écus par
niveau et par semaine en proposant ses services
aux paysans.</text>
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
50 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also
familiar with all other common means of
foretelling the future like crystal balls, tarot
cards or palms. A mentalist can earn 50 silver
pieces per level and week for offering these
services to peasants.</text>
</string>
</namespace>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<namespace name="spellinfo">
<string name="raindance">
<text locale="de">Dieses uralte Tanzritual ruft die
Kräfte des Lebens und der Fruchtbarkeit. Die Erträge der
Bauern werden für einige Wochen deutlich besser
ausfallen.</text>
<text locale="en">This ancient rite calls upon the
forces of life and fertility. For the next few weeks,
the peasant's harvest will be extraordinary good.</text>
</string>
<string name="blessedharvest">
<text locale="de">Dieses Ernteritual verbessert die Erträge der
arbeitenden Bauern in der Region um ein Silberstück. Je mehr Kraft der
Druide investiert, desto länger wirkt der Zauber.</text>
<text locale="en">This ritual increases the output of the local farms.
Peasants in the region produce an extra silverpiece. The stronger the
druid's spell is, the longer the effect will last.</text>
</string>
<string name="earn_silver#tybied">
<text locale="de">Wenn einem der Alchemist nicht weiterhelfen kann, geht man zu dem
gelehrten Tybiedmagier. Seine Tränke und Tinkturen helfen gegen
alles, was man sonst nicht bekommen kann. Ob nun die kryptische
Formel unter dem Holzschuh des untreuen Ehemannes wirklich geholfen
hat - nun, der des Lesens nicht mächtige Bauer wird es nie wissen.
Dem Magier hilft es auf jeden Fall... beim Füllen seines
Geldbeutels. 50 Silber pro Stufe lassen sich so in einer Woche
verdienen.</text>
<text locale="en">If the local alchemist could not help you, you should visit a
scholar of Tybied. His potions and tinctures may help when nothing
else does. If the cryptic formula under the wooden shoes of the
unfaithful husband really helped? - well, the peasant, who isn't
capable of reading, will never know. At least it helped the magician...
to fill his purse. In one week he can earn 50 silver per level that
way.</text>
</string>
<string name="earn_silver#cerddor">
<text locale="de">Cerddormagier sind _die_ Gaukler unter
den Magiern, sie lieben es das Volk zu unterhalten und
im Mittelpunkt zu stehen. Schon Anfänger lernen die
kleinen Kunststücke und magischen Tricks, mit denen man
das Volk locken und verführen kann, den Geldbeutel ganz
weit zu öffnen, und am Ende der Woche wird der Gaukler
50 Silber pro Stufe verdient haben.</text>
<text locale="en">The mages of Cerddor truly are the
bards of the wizards; they love to use their sorcery to
entertain the crowds and to be the center of attention.
Even the apprentices study those little magic tricks,
which attract and fascinate the people and thus ensnare
them into leaving a few coins or more for the artist. By
the end of the week, the bard will have earned 50 silver
per level. </text>
</string>
<string name="earn_silver#gwyrrd">
<text locale="de">Die Fähigkeiten der Gwyrrd-Magier in
der Viehzucht und Heilung sind bei den Bauern sehr
begehrt. Gerade auf Märkten sind ihre Dienste häufig sehr
gefragt. Manch einer mag auch sein Talent dazu nutzen,
ein Tier für einen besseren Preis zu verkaufen. Pro
Stufe kann der Magier so 50 Silber verdienen.</text>
<text locale="en">The abilities of the mages of Gwyrrd
concerning the breeding and healing of cattle are highly
appreciated among the peasants. Especially at the
markets, their services are demanded frequently. Some of
them also use their talents to sell an animal at a
higher price. A magician can earn 50 silver pieces per level
in this way.</text>
</string>
<string name="earn_silver#draig">
<text locale="de">In den dunkleren Gassen gibt es sie,
die Flüche und Verhexungen auf Bestellung. Aber
auch Gegenzauber hat der Jünger des Draigs
natürlich im Angebot. Ob nun der Sohn des
Nachbarn in einen Liebesbann gezogen werden soll
oder die Nebenbuhlerin Pickel und Warzen
bekommen soll, niemand gibt gerne zu, zu solchen
Mitteln gegriffen zu haben. Für diese
Dienstleistung streicht der Magier 50 Silber pro
Stufe ein.</text>
<text locale="en">In the dark alleys you can find those
who sell curses and hexes on demand - but you
can buy the apropriate counterspells from the
followers of Draig as well. May it be a love
spell for the son of a neighbour or a wart in
the face of a rival. For offering these
services, the sorcerer charges 50 silver pieces
per level.</text>
</string>
<string name="earn_silver#illaun">
<text locale="fr">Personne n'interprète aussi bien les
rêves que les mages d'Illaun. Ils sont également
versés dans l'utilisation des objets utilisés
pour prédire le futur comme les boules de
cristal, les cartes de tarot ou les lignes de la
main. Un mentaliste peut gagner 50 écus par
niveau et par semaine en proposant ses services
aux paysans.</text>
<text locale="de">Niemand kann so gut die Träume deuten
wie ein Magier des Illaun. Auch die Kunst der
Wahrsagerei, des Kartenlegens und des Handlesens
sind ihm geläufig. Dafür zahlen ihm die Bauern
50 Silber pro Stufe.</text>
<text locale="en">No one can read dreams as well as the
mages of Illaun. Furthermore, they are also
familiar with all other common means of
foretelling the future like crystal balls, tarot
cards or palms. A mentalist can earn 50 silver
pieces per level and week for offering these
services to peasants.</text>
</string>
</namespace>
</strings>

File diff suppressed because it is too large Load diff

View file

@ -1,392 +1,392 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<namespace name="race">
<string name="snowman">
<text locale="de">Schneemann</text>
<text locale="en">snowman</text>
</string>
<string name="snowman_p">
<text locale="de">Schneemänner</text>
<text locale="en">snowmen</text>
</string>
</namespace>
<namespace name="shipinfo">
<!-- ship info is not implemented! -->
<string name="no_info">
<text locale="de">Keine Informationen über diesen Schiffstyp verfügbar.</text>
<text locale="en">No Information available for this type of ship.</text>
</string>
<string name="balloon">
<text locale="de">Der Sumpfgasballon besteht aus einem großen
Weidenkorb, welcher Platz
für maximal 5 Personen oder 500 Gewichtseinheiten bietet, und einer
großen, mit Sumpfgas gefüllten Wyrmblase. Bei guten Winden kann sich
der Ballon zwei Regionen pro Woche fortbewegen. Das Führen eines
Ballons ist nicht einfach, und der Kapitän muss mindestens ein
Segeltalent von 6 besitzen. Diese neue Entwicklung auf Eressea wird
ausschließlich für den Xontormia-Expreß hergestellt und die Baupläne
sind streng geheim. So ist es auch bisher noch niemandem gelungen, ein
Exemplar nachzubauen.</text>
</string>
</namespace>
<namespace name="iteminfo">
<string name="ring_of_levitation">
<text locale="de">Benutzt der Kapitän des Schiffes diesen Talisman, so wird allen an Bord befindlichen Mallornsamen ihre magisch Energie entzogen, und das Schiff kann mit dieser Energie bis zu zwei Wochen lang fliegen.</text>
</string>
<string name="birthdaycake">
<text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text>
<text locale="en">A birthday cake with 10 candles. Happy Birthday, Eressea!</text>
</string>
<string name="no_info">
<text locale="de">Keine Informationen.</text>
<text locale="en">No Information available.</text>
</string>
<string name="griphonwing">
<text locale="de">Dieses Fluggerät aus der Schmiede der Zwerge von Celeband galt wie die
'Ebene der Herausforderung' seit Urzeiten als verschollen, ja man
zweifelte seine Existenz an. Die Sage überliefert, das derjenige, der
sie auf der Spitze des Turmes seiner Gesinnung benutzt, als einziger
die 'Ebene der Herausforderungen' verlassen kann.</text>
</string>
<string name="ao_daemon">
<text locale="de">Glückwunsch, mein Kind. Du bist im Besitz des mächtigsten
Artefaktes Eresseas. Ein Fluch, sagt man, liege auf ihm, denn
niemand hat es bisher lange sein Eigen genannt...</text>
</string>
<string name="cookie">
<text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text>
</string>
<string name="eyeofdragon">
<text locale="de">So wisse denn, dass das Auge des Drachen den Weg zur Herausforderung
aufzeigt. Doch die Überlieferung sagt, das nur der Unschuldige und
Ungewappnete es benutzen kann. Sie sagt auch, daß er einen Beutel mit
einem Betrag von bis zu zweitausend Silber mit sich führen soll,
jedoch nicht mehr als einem Fünftel der Stärke seines Volkes
entsprechend - dem Torwächter zum Geschenke als Beweis seiner
asketischen Gesinnung. Die 5 scheidet ganz aus.</text>
</string>
<string name="almond">
<text locale="de">(Prunus dulcis) [...] Die Nüsse existieren in zwei Varianten, süß und
bitter. Süße Mandeln sind der bekannte eßbare Typ, der in Form von
Nüssen gegessen, beim Kochen verwandt oder zu Mandelöl und Mandelmehl
verarbeitet wird.</text>
</string>
<string name="apple">
<text locale="en">A tasty fruit.</text>
<text locale="de">Frucht aus der Gattung Malus (ca. 25 Arten), gehört
zur Familie der
Rosengewächse. Die am häufigsten kultivierte Baumfrucht. Der Apfel
gehört zu den fleischigen Früchten, in dem der gereifte Fruchtknoten
und
das umgebende Gewebe fleischig und eßbar werden. Die Apfelblüte der
meisten Varianten erfordert Kreuzbestäubung zur Befruchtung. Form und
Größe des Apfels bei der Ernte variieren abhängig von kulturellen und
umweltbedingten Einflüssen in Größe, Form, Farbe und Geschmack, sind
jedoch nichtsdestotrotz üblicherweise rund, zwischen 50 und 100mm im
Durchmesser und weisen röt- oder gelbliche Farbtöne auf.</text>
</string>
<string name="nut">
<text locale="de">Nuß, im umgangssprachlichen Sinne alle trockenen,
hartschaligen
Früchte oder Samen, die eine Schale besitzen, die sich leicht
vom inneren, eßbaren Kern entfernen läßt. In der botanischen
Terminologie beschränkt sich die Bezeichnung Nuß auf eine
einsamige Frucht, die aus einem Fruchtknoten (Ovarium)
entstanden ist, dessen äußere Wände sich verholzt haben und der
sich nicht öffnet, um seinen Samen zu entlassen. Solche echten
Nüsse können eßbar, aber auch ungenießbar sein. Bekannte
Beispiele sind Eicheln, Bucheckern, Kastanien und Haselnüsse.
Beispiele für Früchte oder Samen, die vom Volksmund fälschlich
als Nüsse bezeichnet werden, sind Mandeln und Walnüsse: Im
botanischen Sinne sind dies Steinfrüchte, denen die fleischige
äußere Schale entfernt wurde. Andere Beispiele für unechte
Nüsse sind Erdnüsse - in Hülsen eingeschlossene Samen - sowie
Roßkastanien und Paranüsse, bei denen es sich um von Kapseln
umhüllte Samen handelt.</text>
</string>
<string name="jadee_ring">
<text locale="de">Zwerge schufen diesen wunderschönen Ring aus Weissgold und Platin. Die
Oberfläche ist so glatt, dass man nur bei genauem Hinsehen entdeckt,
dass hier eigentlich zwei Metalle ineinander verarbeitet worden sind.
In der Innenseite des Rings ist eine Gravur zu lesen: "Wildente, 3.
Woche Eiswind Jahr 8".</text>
</string>
<string name="jadee_dress">
<text locale="de">Dieses Brautkleid ist mit Abstand das schönste, was je jemand
irgendwie irgendwo gesehen hat. Auch wenn nur Wildente und Jadee das
finden müssten, wird jeder Bewohner Eresseas dies neidlos bestätigen.
Das sehr stilvolle Kleid lässt die zarten Schultern seiner Trägerin
frei und liegt am Oberkörper eng an. Dies betont atemberaubend die
zarten Kurven der Braut. Der Rock fällt leicht ausgestellt den ganzen
langen Weg an den Beinen herunter Richtung Boden, wo er sich in einer
sehr stilvollen Schleppe ergiesst.</text>
</string>
<string name="wente_ring">
<text locale="de">Dieser Ring ist ein wahres Meisterwerk. Obwohl er sehr gross ist
(weil auch sein Träger sehr gross ist), wirkt er filigran. Weissgold
und Platin verschmelzen in diesem Ring zu einer Einheit, die die
Schönheit der einzelnen Elemente nur noch unterstreich. In der
Innenseite des Rings ist eine Gravur zu lesen: 'Jadee, 3. Woche
Eiswind Jahr 8'.</text>
</string>
<string name="wente_dress">
<text locale="de">Hach! Sieht der Mann beeindruckend aus in diesem Frack! Und so
ordentlich! Und so ernst! Und so beeindruckend! Es fällt ein
wenig schwer, sich auf den Bräutigam zu konzentrieren, weil das
Brautkleid noch daneben strahlt, aber der Anzug des Bräutigams ist
auf jeden Fall so, wie er sein soll und sieht toll aus und sehr
geschmackvoll.</text>
</string>
<string name="snowman">
<text locale="en">Orange nose, black hat, frosty character. A snowman.
He'll make a fine guard if you use him in a cold place. (USE 1
snowman)</text>
<text locale="de">Rübennase, schwarzer Hut, kaltes Herz. Ein Schneemann. Er gibt
einen prima Wachmann ab, wenn er in einem Gletscher belebt wird
(BENUTZE 1 Schneemann).</text>
</string>
<string name="snowball">
<text locale="en">These items stay frozen all year round. There seem to be bits of
ice in them - in the right hands, these might put an eye out!</text>
<text locale="de">Ein Schneeball. Es scheinen kleine Eissplitter darin zu sein. In
den richtigen Händen können sie sicher weh tun.</text>
</string>
<string name="seashell">
<text locale="en">This badge pronounces its wearer an official visitor to the
region of Muschelplateau.</text>
<text locale="de">Dieses Abzeichen identifiziert die Partei seines Trägers offiziell
als einen Besucher der Botschafterregion 'Muschelplateau'.</text>
</string>
<string name="xmastree">
<text locale="de">Dieser wunderschoen geschmueckte Baum entfaltet in den Wintermonaten eine magische Wirkung auf den ganzen Wald.</text>
<text locale="en">In the winter months, this beautifully decorated tree has a magical effect on the entire forest.</text>
</string>
<string name="stardust">
<text locale="de">Dieser magische Staub ist aus einem im Winter vom Himmel gefallenen
Stern gewonnen worden, und ihm werden aphrodisiakische Eigenschaften
nachgesagt.</text>
<text locale="en">This vial of dust, made from the remains of a star that fell from
the sky one cold winter night, is said to have aphrodisiacal powers.</text>
</string>
</namespace>
<string name="ring_of_levitation">
<text locale="de">Ring der Levitation</text>
<text locale="en">ring of levitation</text>
</string>
<string name="ring_of_levitation_p">
<text locale="de">Ringe der Levitation</text>
<text locale="en">rings of levitation</text>
</string>
<string name="birthdaycake">
<text locale="de">Geburtstagstorte</text>
<text locale="en">birthday cake</text>
</string>
<string name="birthdaycake_p">
<text locale="de">Geburtstagstorten</text>
<text locale="en">birthday cakes</text>
</string>
<string name="seashell">
<text locale="de">Muschel</text>
<text locale="en">seashell</text>
</string>
<string name="seashell_p">
<text locale="de">Muscheln</text>
<text locale="en">seashells</text>
</string>
<string name="newbie_info_2">
<text locale="de">Die ersten beiden Züge mußt du abgeben, sonst wird deine
Partei sofort wieder gelöscht, um Karteileichen zu vermeiden.</text>
<text locale="en">If you fail to send in orders for one of the first two turns, your faction will be erased from the game to reduce the number of inactive players in Eressea.</text>
</string>
<string name="newbie_info_3">
<text locale="de">Mit der ersten Auswertung bekommst du einen
Computerreport, den du mit vielen der Tools auf
http://eressea-pbem.de/download.html benutzen kannst. Wenn du ihn
weiterhin bekommen willst, gib einer deiner Einheiten den Befehl OPTION
COMPUTER.</text>
<text locale="en">With the first two turns, you will get a computer report (CR). It can be used with many of the tools on http://eressea-pbem.de/download.html. If you want to continue getting it after the second turn, please make one of your units give the order OPTION COMPUTER.</text>
</string>
<string name="defaultorder">
<text locale="de">ARBEITEN</text>
<text locale="en">WORK</text>
</string>
<string name="temple">
<text locale="de">Tempel</text>
<text locale="en">temple</text>
</string>
<string name="seaserpenthead">
<text locale="de">Seeschlangenkopf</text>
</string>
<string name="seaserpenthead_p">
<text locale="de">Seeschlangenköpfe</text>
</string>
<!-- starting here: Wildente and Jadee's wedding -->
<string name="pavilion">
<text locale="de">Pavillion</text>
<text locale="en">pavilion</text>
</string>
<string name="portal">
<text locale="de">Portal</text>
<text locale="en">portal</text>
</string>
<string name="jadee_ring">
<text locale="de">Jadees Hochzeitsring</text>
<text locale="en">Jadee's wedding ring</text>
</string>
<string name="jadee_ring_p">
<text locale="de">Jadees Hochzeitsringe</text>
<text locale="en">Jadee's wedding rings</text>
</string>
<string name="wente_ring">
<text locale="de">Wildentes Hochzeitsring</text>
<text locale="en">Wildente's wedding ring</text>
</string>
<string name="wente_ring_p">
<text locale="de">Wildentes Hochzeitsringe</text>
<text locale="en">Wildente's wedding rings</text>
</string>
<string name="jadee_dress">
<text locale="de">Hochzeitskleid</text>
<text locale="en">wedding dress</text>
</string>
<string name="jadee_dress_p">
<text locale="de">Hochzeitskleider</text>
<text locale="en">wedding dresses</text>
</string>
<string name="wente_dress">
<text locale="de">Frack</text>
<text locale="en">tuxedo</text>
</string>
<string name="wente_dress_p">
<text locale="de">Fräcke</text>
<text locale="en">tuxedos</text>
</string>
<string name="ring">
<text locale="de">Ring</text>
<text locale="en">ring</text>
</string>
<string name="ring_p">
<text locale="de">Ringe</text>
<text locale="en">rings</text>
</string>
<!-- ending here: Wildente and Jadee's wedding -->
<!-- art rewards begin -->
<string name="hornofdancing">
<text locale="de">Horn des Tanzes</text>
<text locale="en">horn of dancing</text>
</string>
<string name="hornofdancing_p">
<text locale="de">Hörner des Tanzes</text>
<text locale="en">horns of dancing</text>
</string>
<string name="instantartacademy">
<text locale="de">Miniatur einer Akademie der Künste</text>
<text locale="en">academy of arts in a box</text>
</string>
<string name="instantartacademy_p">
<text locale="de">Miniaturen einer Akademie der Künste</text>
<text locale="en">academies of arts in a box</text>
</string>
<string name="instantartsculpture">
<text locale="de">Miniatur einer Skulptur</text>
<text locale="en">art sculpture in a box</text>
</string>
<string name="instantartsculpture_p">
<text locale="de">Miniaturen einer Skulptur</text>
<text locale="en">art sculptures in a box</text>
</string>
<string name="trappedairelemental">
<text locale="de">Gefangener Windgeist</text>
<text locale="en">trapped air elemental</text>
</string>
<string name="trappedairelemental_p">
<text locale="de">Gefangene Windgeister</text>
<text locale="en">trapped air elementals</text>
</string>
<string name="aurapotion50">
<text locale="de">Auratrank</text>
<text locale="en">aura potion</text>
</string>
<string name="aurapotion50_p">
<text locale="de">Auratränke</text>
<text locale="en">aura potions</text>
</string>
<string name="bagpipeoffear">
<text locale="de">Dudelsack der Furcht</text>
<text locale="en">bagpipe of fear</text>
</string>
<string name="bagpipeoffear_p">
<text locale="de">Dudelsäcke der Furcht</text>
<text locale="en">bagpipes of fear</text>
</string>
<!-- art rewards end -->
<!-- igjarjuk queste begin -->
<string name="ao_daemon">
<text locale="de">Auge des Dämon</text>
<text locale="en">eye of the demon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="ao_daemon_p">
<text locale="de">Augen des Dämon</text>
<text locale="en">eyes of the demon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="griphonwing">
<text locale="de">Schwinge des Greifen</text>
<text locale="en">wing of the gryphon</text>
<text locale="fr">aile du griffon</text>
</string>
<string name="griphonwing_p">
<text locale="de">Schwingen des Greifen</text>
<text locale="en">wings of the gryphon</text>
<text locale="fr">ailes du griffon</text>
</string>
<!-- igjarjuk queste end -->
<string name="rm_adamantium">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantium">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantium_p">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantiumaxe">
<text locale="de">Adamantiumaxt</text>
<text locale="en">adamantium axe</text>
</string>
<string name="adamantiumaxe_p">
<text locale="de">Adamantiumäxte</text>
<text locale="en">adamantium axes</text>
</string>
<string name="adamantiumplate">
<text locale="de">Adamantiumrüstung</text>
<text locale="en">adamantium plate</text>
</string>
<string name="adamantiumplate_p">
<text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<namespace name="race">
<string name="snowman">
<text locale="de">Schneemann</text>
<text locale="en">snowman</text>
</string>
<string name="snowman_p">
<text locale="de">Schneemänner</text>
<text locale="en">snowmen</text>
</string>
</namespace>
<namespace name="shipinfo">
<!-- ship info is not implemented! -->
<string name="no_info">
<text locale="de">Keine Informationen über diesen Schiffstyp verfügbar.</text>
<text locale="en">No Information available for this type of ship.</text>
</string>
<string name="balloon">
<text locale="de">Der Sumpfgasballon besteht aus einem großen
Weidenkorb, welcher Platz
für maximal 5 Personen oder 500 Gewichtseinheiten bietet, und einer
großen, mit Sumpfgas gefüllten Wyrmblase. Bei guten Winden kann sich
der Ballon zwei Regionen pro Woche fortbewegen. Das Führen eines
Ballons ist nicht einfach, und der Kapitän muss mindestens ein
Segeltalent von 6 besitzen. Diese neue Entwicklung auf Eressea wird
ausschließlich für den Xontormia-Expreß hergestellt und die Baupläne
sind streng geheim. So ist es auch bisher noch niemandem gelungen, ein
Exemplar nachzubauen.</text>
</string>
</namespace>
<namespace name="iteminfo">
<string name="ring_of_levitation">
<text locale="de">Benutzt der Kapitän des Schiffes diesen Talisman, so wird allen an Bord befindlichen Mallornsamen ihre magisch Energie entzogen, und das Schiff kann mit dieser Energie bis zu zwei Wochen lang fliegen.</text>
</string>
<string name="birthdaycake">
<text locale="de">Eine Geburtstagstorte mit 10 Kerzen. Herzlichen Glückwunsch, Eressea!</text>
<text locale="en">A birthday cake with 10 candles. Happy Birthday, Eressea!</text>
</string>
<string name="no_info">
<text locale="de">Keine Informationen.</text>
<text locale="en">No Information available.</text>
</string>
<string name="griphonwing">
<text locale="de">Dieses Fluggerät aus der Schmiede der Zwerge von Celeband galt wie die
'Ebene der Herausforderung' seit Urzeiten als verschollen, ja man
zweifelte seine Existenz an. Die Sage überliefert, das derjenige, der
sie auf der Spitze des Turmes seiner Gesinnung benutzt, als einziger
die 'Ebene der Herausforderungen' verlassen kann.</text>
</string>
<string name="ao_daemon">
<text locale="de">Glückwunsch, mein Kind. Du bist im Besitz des mächtigsten
Artefaktes Eresseas. Ein Fluch, sagt man, liege auf ihm, denn
niemand hat es bisher lange sein Eigen genannt...</text>
</string>
<string name="cookie">
<text locale="de">Kleines trockenes Dauergebäck, m od. s; - u. -es, - u. -e</text>
</string>
<string name="eyeofdragon">
<text locale="de">So wisse denn, dass das Auge des Drachen den Weg zur Herausforderung
aufzeigt. Doch die Überlieferung sagt, das nur der Unschuldige und
Ungewappnete es benutzen kann. Sie sagt auch, daß er einen Beutel mit
einem Betrag von bis zu zweitausend Silber mit sich führen soll,
jedoch nicht mehr als einem Fünftel der Stärke seines Volkes
entsprechend - dem Torwächter zum Geschenke als Beweis seiner
asketischen Gesinnung. Die 5 scheidet ganz aus.</text>
</string>
<string name="almond">
<text locale="de">(Prunus dulcis) [...] Die Nüsse existieren in zwei Varianten, süß und
bitter. Süße Mandeln sind der bekannte eßbare Typ, der in Form von
Nüssen gegessen, beim Kochen verwandt oder zu Mandelöl und Mandelmehl
verarbeitet wird.</text>
</string>
<string name="apple">
<text locale="en">A tasty fruit.</text>
<text locale="de">Frucht aus der Gattung Malus (ca. 25 Arten), gehört
zur Familie der
Rosengewächse. Die am häufigsten kultivierte Baumfrucht. Der Apfel
gehört zu den fleischigen Früchten, in dem der gereifte Fruchtknoten
und
das umgebende Gewebe fleischig und eßbar werden. Die Apfelblüte der
meisten Varianten erfordert Kreuzbestäubung zur Befruchtung. Form und
Größe des Apfels bei der Ernte variieren abhängig von kulturellen und
umweltbedingten Einflüssen in Größe, Form, Farbe und Geschmack, sind
jedoch nichtsdestotrotz üblicherweise rund, zwischen 50 und 100mm im
Durchmesser und weisen röt- oder gelbliche Farbtöne auf.</text>
</string>
<string name="nut">
<text locale="de">Nuß, im umgangssprachlichen Sinne alle trockenen,
hartschaligen
Früchte oder Samen, die eine Schale besitzen, die sich leicht
vom inneren, eßbaren Kern entfernen läßt. In der botanischen
Terminologie beschränkt sich die Bezeichnung Nuß auf eine
einsamige Frucht, die aus einem Fruchtknoten (Ovarium)
entstanden ist, dessen äußere Wände sich verholzt haben und der
sich nicht öffnet, um seinen Samen zu entlassen. Solche echten
Nüsse können eßbar, aber auch ungenießbar sein. Bekannte
Beispiele sind Eicheln, Bucheckern, Kastanien und Haselnüsse.
Beispiele für Früchte oder Samen, die vom Volksmund fälschlich
als Nüsse bezeichnet werden, sind Mandeln und Walnüsse: Im
botanischen Sinne sind dies Steinfrüchte, denen die fleischige
äußere Schale entfernt wurde. Andere Beispiele für unechte
Nüsse sind Erdnüsse - in Hülsen eingeschlossene Samen - sowie
Roßkastanien und Paranüsse, bei denen es sich um von Kapseln
umhüllte Samen handelt.</text>
</string>
<string name="jadee_ring">
<text locale="de">Zwerge schufen diesen wunderschönen Ring aus Weissgold und Platin. Die
Oberfläche ist so glatt, dass man nur bei genauem Hinsehen entdeckt,
dass hier eigentlich zwei Metalle ineinander verarbeitet worden sind.
In der Innenseite des Rings ist eine Gravur zu lesen: "Wildente, 3.
Woche Eiswind Jahr 8".</text>
</string>
<string name="jadee_dress">
<text locale="de">Dieses Brautkleid ist mit Abstand das schönste, was je jemand
irgendwie irgendwo gesehen hat. Auch wenn nur Wildente und Jadee das
finden müssten, wird jeder Bewohner Eresseas dies neidlos bestätigen.
Das sehr stilvolle Kleid lässt die zarten Schultern seiner Trägerin
frei und liegt am Oberkörper eng an. Dies betont atemberaubend die
zarten Kurven der Braut. Der Rock fällt leicht ausgestellt den ganzen
langen Weg an den Beinen herunter Richtung Boden, wo er sich in einer
sehr stilvollen Schleppe ergiesst.</text>
</string>
<string name="wente_ring">
<text locale="de">Dieser Ring ist ein wahres Meisterwerk. Obwohl er sehr gross ist
(weil auch sein Träger sehr gross ist), wirkt er filigran. Weissgold
und Platin verschmelzen in diesem Ring zu einer Einheit, die die
Schönheit der einzelnen Elemente nur noch unterstreich. In der
Innenseite des Rings ist eine Gravur zu lesen: 'Jadee, 3. Woche
Eiswind Jahr 8'.</text>
</string>
<string name="wente_dress">
<text locale="de">Hach! Sieht der Mann beeindruckend aus in diesem Frack! Und so
ordentlich! Und so ernst! Und so beeindruckend! Es fällt ein
wenig schwer, sich auf den Bräutigam zu konzentrieren, weil das
Brautkleid noch daneben strahlt, aber der Anzug des Bräutigams ist
auf jeden Fall so, wie er sein soll und sieht toll aus und sehr
geschmackvoll.</text>
</string>
<string name="snowman">
<text locale="en">Orange nose, black hat, frosty character. A snowman.
He'll make a fine guard if you use him in a cold place. (USE 1
snowman)</text>
<text locale="de">Rübennase, schwarzer Hut, kaltes Herz. Ein Schneemann. Er gibt
einen prima Wachmann ab, wenn er in einem Gletscher belebt wird
(BENUTZE 1 Schneemann).</text>
</string>
<string name="snowball">
<text locale="en">These items stay frozen all year round. There seem to be bits of
ice in them - in the right hands, these might put an eye out!</text>
<text locale="de">Ein Schneeball. Es scheinen kleine Eissplitter darin zu sein. In
den richtigen Händen können sie sicher weh tun.</text>
</string>
<string name="seashell">
<text locale="en">This badge pronounces its wearer an official visitor to the
region of Muschelplateau.</text>
<text locale="de">Dieses Abzeichen identifiziert die Partei seines Trägers offiziell
als einen Besucher der Botschafterregion 'Muschelplateau'.</text>
</string>
<string name="xmastree">
<text locale="de">Dieser wunderschoen geschmueckte Baum entfaltet in den Wintermonaten eine magische Wirkung auf den ganzen Wald.</text>
<text locale="en">In the winter months, this beautifully decorated tree has a magical effect on the entire forest.</text>
</string>
<string name="stardust">
<text locale="de">Dieser magische Staub ist aus einem im Winter vom Himmel gefallenen
Stern gewonnen worden, und ihm werden aphrodisiakische Eigenschaften
nachgesagt.</text>
<text locale="en">This vial of dust, made from the remains of a star that fell from
the sky one cold winter night, is said to have aphrodisiacal powers.</text>
</string>
</namespace>
<string name="ring_of_levitation">
<text locale="de">Ring der Levitation</text>
<text locale="en">ring of levitation</text>
</string>
<string name="ring_of_levitation_p">
<text locale="de">Ringe der Levitation</text>
<text locale="en">rings of levitation</text>
</string>
<string name="birthdaycake">
<text locale="de">Geburtstagstorte</text>
<text locale="en">birthday cake</text>
</string>
<string name="birthdaycake_p">
<text locale="de">Geburtstagstorten</text>
<text locale="en">birthday cakes</text>
</string>
<string name="seashell">
<text locale="de">Muschel</text>
<text locale="en">seashell</text>
</string>
<string name="seashell_p">
<text locale="de">Muscheln</text>
<text locale="en">seashells</text>
</string>
<string name="newbie_info_2">
<text locale="de">Die ersten beiden Züge mußt du abgeben, sonst wird deine
Partei sofort wieder gelöscht, um Karteileichen zu vermeiden.</text>
<text locale="en">If you fail to send in orders for one of the first two turns, your faction will be erased from the game to reduce the number of inactive players in Eressea.</text>
</string>
<string name="newbie_info_3">
<text locale="de">Mit der ersten Auswertung bekommst du einen
Computerreport, den du mit vielen der Tools auf
http://eressea-pbem.de/download.html benutzen kannst. Wenn du ihn
weiterhin bekommen willst, gib einer deiner Einheiten den Befehl OPTION
COMPUTER.</text>
<text locale="en">With the first two turns, you will get a computer report (CR). It can be used with many of the tools on http://eressea-pbem.de/download.html. If you want to continue getting it after the second turn, please make one of your units give the order OPTION COMPUTER.</text>
</string>
<string name="defaultorder">
<text locale="de">ARBEITEN</text>
<text locale="en">WORK</text>
</string>
<string name="temple">
<text locale="de">Tempel</text>
<text locale="en">temple</text>
</string>
<string name="seaserpenthead">
<text locale="de">Seeschlangenkopf</text>
</string>
<string name="seaserpenthead_p">
<text locale="de">Seeschlangenköpfe</text>
</string>
<!-- starting here: Wildente and Jadee's wedding -->
<string name="pavilion">
<text locale="de">Pavillion</text>
<text locale="en">pavilion</text>
</string>
<string name="portal">
<text locale="de">Portal</text>
<text locale="en">portal</text>
</string>
<string name="jadee_ring">
<text locale="de">Jadees Hochzeitsring</text>
<text locale="en">Jadee's wedding ring</text>
</string>
<string name="jadee_ring_p">
<text locale="de">Jadees Hochzeitsringe</text>
<text locale="en">Jadee's wedding rings</text>
</string>
<string name="wente_ring">
<text locale="de">Wildentes Hochzeitsring</text>
<text locale="en">Wildente's wedding ring</text>
</string>
<string name="wente_ring_p">
<text locale="de">Wildentes Hochzeitsringe</text>
<text locale="en">Wildente's wedding rings</text>
</string>
<string name="jadee_dress">
<text locale="de">Hochzeitskleid</text>
<text locale="en">wedding dress</text>
</string>
<string name="jadee_dress_p">
<text locale="de">Hochzeitskleider</text>
<text locale="en">wedding dresses</text>
</string>
<string name="wente_dress">
<text locale="de">Frack</text>
<text locale="en">tuxedo</text>
</string>
<string name="wente_dress_p">
<text locale="de">Fräcke</text>
<text locale="en">tuxedos</text>
</string>
<string name="ring">
<text locale="de">Ring</text>
<text locale="en">ring</text>
</string>
<string name="ring_p">
<text locale="de">Ringe</text>
<text locale="en">rings</text>
</string>
<!-- ending here: Wildente and Jadee's wedding -->
<!-- art rewards begin -->
<string name="hornofdancing">
<text locale="de">Horn des Tanzes</text>
<text locale="en">horn of dancing</text>
</string>
<string name="hornofdancing_p">
<text locale="de">Hörner des Tanzes</text>
<text locale="en">horns of dancing</text>
</string>
<string name="instantartacademy">
<text locale="de">Miniatur einer Akademie der Künste</text>
<text locale="en">academy of arts in a box</text>
</string>
<string name="instantartacademy_p">
<text locale="de">Miniaturen einer Akademie der Künste</text>
<text locale="en">academies of arts in a box</text>
</string>
<string name="instantartsculpture">
<text locale="de">Miniatur einer Skulptur</text>
<text locale="en">art sculpture in a box</text>
</string>
<string name="instantartsculpture_p">
<text locale="de">Miniaturen einer Skulptur</text>
<text locale="en">art sculptures in a box</text>
</string>
<string name="trappedairelemental">
<text locale="de">Gefangener Windgeist</text>
<text locale="en">trapped air elemental</text>
</string>
<string name="trappedairelemental_p">
<text locale="de">Gefangene Windgeister</text>
<text locale="en">trapped air elementals</text>
</string>
<string name="aurapotion50">
<text locale="de">Auratrank</text>
<text locale="en">aura potion</text>
</string>
<string name="aurapotion50_p">
<text locale="de">Auratränke</text>
<text locale="en">aura potions</text>
</string>
<string name="bagpipeoffear">
<text locale="de">Dudelsack der Furcht</text>
<text locale="en">bagpipe of fear</text>
</string>
<string name="bagpipeoffear_p">
<text locale="de">Dudelsäcke der Furcht</text>
<text locale="en">bagpipes of fear</text>
</string>
<!-- art rewards end -->
<!-- igjarjuk queste begin -->
<string name="ao_daemon">
<text locale="de">Auge des Dämon</text>
<text locale="en">eye of the demon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="ao_daemon_p">
<text locale="de">Augen des Dämon</text>
<text locale="en">eyes of the demon</text>
<text locale="fr">oeil du démon</text>
</string>
<string name="griphonwing">
<text locale="de">Schwinge des Greifen</text>
<text locale="en">wing of the gryphon</text>
<text locale="fr">aile du griffon</text>
</string>
<string name="griphonwing_p">
<text locale="de">Schwingen des Greifen</text>
<text locale="en">wings of the gryphon</text>
<text locale="fr">ailes du griffon</text>
</string>
<!-- igjarjuk queste end -->
<string name="rm_adamantium">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantium">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantium_p">
<text locale="de">Adamantium</text>
<text locale="en">adamantium</text>
</string>
<string name="adamantiumaxe">
<text locale="de">Adamantiumaxt</text>
<text locale="en">adamantium axe</text>
</string>
<string name="adamantiumaxe_p">
<text locale="de">Adamantiumäxte</text>
<text locale="en">adamantium axes</text>
</string>
<string name="adamantiumplate">
<text locale="de">Adamantiumrüstung</text>
<text locale="en">adamantium plate</text>
</string>
<string name="adamantiumplate_p">
<text locale="de">Adamantiumrüstungen</text>
<text locale="en">adamantium plates</text>
</string>
</strings>

View file

@ -1,10 +1,10 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<terrains>
<!-- used by the experimental dungeon -->
<terrain name="hell" fly="no" sail="no" size="0" land="no"/>
<!-- used for the museum only -->
<terrain name="hall1" fly="no" size="0" />
<terrain name="corridor1" fly="no" size="0" />
<terrain name="wall1" sail="no" walk="no" fly="no" forbidden="yes" size="0" />
</terrains>
<?xml version="1.0" encoding="iso-8859-1" ?>
<terrains>
<!-- used by the experimental dungeon -->
<terrain name="hell" fly="no" sail="no" size="0" land="no"/>
<!-- used for the museum only -->
<terrain name="hall1" fly="no" size="0" />
<terrain name="corridor1" fly="no" size="0" />
<terrain name="wall1" sail="no" walk="no" fly="no" forbidden="yes" size="0" />
</terrains>

View file

@ -1,95 +1,95 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="dragon_postfix_0">
<text locale="de">der Weise</text>
</string>
<string name="dragon_postfix_1">
<text locale="de">der Allwissende</text>
</string>
<string name="dragon_postfix_2">
<text locale="de">der Mächtige</text>
</string>
<string name="dragon_postfix_3">
<text locale="de">die Ehrwürdige</text>
</string>
<string name="dragon_postfix_4">
<text locale="de">die Listige</text>
</string>
<string name="dragon_postfix_5">
<text locale="de">der Grüne</text>
</string>
<string name="dragon_postfix_6">
<text locale="de">die Strafende</text>
</string>
<string name="dragon_postfix_7">
<text locale="de">der Sehende</text>
</string>
<string name="dragon_postfix_8">
<text locale="de">der Reisende</text>
</string>
<string name="dragon_postfix_9">
<text locale="de">die Wissende</text>
</string>
<string name="dragon_postfix_10">
<text locale="de">der Goldene</text>
</string>
<string name="dragon_postfix_11">
<text locale="de">der Graue</text>
</string>
<string name="dragon_postfix_12">
<text locale="de">der Steinerne</text>
</string>
<string name="dragon_postfix_13">
<text locale="de">die Alte</text>
</string>
<string name="dragon_postfix_14">
<text locale="de">die Mächtige</text>
</string>
<string name="dragon_postfix_15">
<text locale="de">die Goldene</text>
</string>
<string name="dragon_postfix_16">
<text locale="de">der Grausame</text>
</string>
<string name="dragon_postfix_17">
<text locale="de">der Sanddrache</text>
</string>
<string name="dragon_postfix_18">
<text locale="de">der Durstige</text>
</string>
<string name="dragon_postfix_19">
<text locale="de">die Verzehrende</text>
</string>
<string name="dragon_postfix_20">
<text locale="de">die Grüne</text>
</string>
<string name="dragon_postfix_21">
<text locale="de">die Rote</text>
</string>
<string name="dragon_postfix_22">
<text locale="de">der Furchtlose</text>
</string>
<string name="dragon_postfix_23">
<text locale="de">der Allmächtige</text>
</string>
<string name="dragon_postfix_24">
<text locale="de">der Weitblickende</text>
</string>
<string name="dragon_postfix_25">
<text locale="de">der Weiße</text>
</string>
<string name="dragon_postfix_26">
<text locale="de">die Glänzende</text>
</string>
<string name="dragon_postfix_27">
<text locale="de">der Wissende</text>
</string>
<string name="dragon_postfix_28">
<text locale="de">die Unbarmherzige</text>
</string>
<string name="dragon_postfix_29">
<text locale="de">die Schöne</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="dragon_postfix_0">
<text locale="de">der Weise</text>
</string>
<string name="dragon_postfix_1">
<text locale="de">der Allwissende</text>
</string>
<string name="dragon_postfix_2">
<text locale="de">der Mächtige</text>
</string>
<string name="dragon_postfix_3">
<text locale="de">die Ehrwürdige</text>
</string>
<string name="dragon_postfix_4">
<text locale="de">die Listige</text>
</string>
<string name="dragon_postfix_5">
<text locale="de">der Grüne</text>
</string>
<string name="dragon_postfix_6">
<text locale="de">die Strafende</text>
</string>
<string name="dragon_postfix_7">
<text locale="de">der Sehende</text>
</string>
<string name="dragon_postfix_8">
<text locale="de">der Reisende</text>
</string>
<string name="dragon_postfix_9">
<text locale="de">die Wissende</text>
</string>
<string name="dragon_postfix_10">
<text locale="de">der Goldene</text>
</string>
<string name="dragon_postfix_11">
<text locale="de">der Graue</text>
</string>
<string name="dragon_postfix_12">
<text locale="de">der Steinerne</text>
</string>
<string name="dragon_postfix_13">
<text locale="de">die Alte</text>
</string>
<string name="dragon_postfix_14">
<text locale="de">die Mächtige</text>
</string>
<string name="dragon_postfix_15">
<text locale="de">die Goldene</text>
</string>
<string name="dragon_postfix_16">
<text locale="de">der Grausame</text>
</string>
<string name="dragon_postfix_17">
<text locale="de">der Sanddrache</text>
</string>
<string name="dragon_postfix_18">
<text locale="de">der Durstige</text>
</string>
<string name="dragon_postfix_19">
<text locale="de">die Verzehrende</text>
</string>
<string name="dragon_postfix_20">
<text locale="de">die Grüne</text>
</string>
<string name="dragon_postfix_21">
<text locale="de">die Rote</text>
</string>
<string name="dragon_postfix_22">
<text locale="de">der Furchtlose</text>
</string>
<string name="dragon_postfix_23">
<text locale="de">der Allmächtige</text>
</string>
<string name="dragon_postfix_24">
<text locale="de">der Weitblickende</text>
</string>
<string name="dragon_postfix_25">
<text locale="de">der Weiße</text>
</string>
<string name="dragon_postfix_26">
<text locale="de">die Glänzende</text>
</string>
<string name="dragon_postfix_27">
<text locale="de">der Wissende</text>
</string>
<string name="dragon_postfix_28">
<text locale="de">die Unbarmherzige</text>
</string>
<string name="dragon_postfix_29">
<text locale="de">die Schöne</text>
</string>
</strings>

View file

@ -1,115 +1,115 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="ghoul_prefix_0">
<text locale="de">Faulende</text>
</string>
<string name="ghoul_prefix_1">
<text locale="de">Angsteinflößende</text>
</string>
<string name="ghoul_prefix_2">
<text locale="de">Leise</text>
</string>
<string name="ghoul_prefix_3">
<text locale="de">Kinderfressende</text>
</string>
<string name="ghoul_prefix_4">
<text locale="de">Menschenfressende</text>
</string>
<string name="ghoul_prefix_5">
<text locale="de">Wahnsinnige</text>
</string>
<string name="ghoul_prefix_6">
<text locale="de">Brutale</text>
</string>
<string name="ghoul_prefix_7">
<text locale="de">Schwarze</text>
</string>
<string name="ghoul_prefix_8">
<text locale="de">Dunkle</text>
</string>
<string name="ghoul_prefix_9">
<text locale="de">Fürchterliche</text>
</string>
<string name="ghoul_prefix_10">
<text locale="de">Grauenhafte</text>
</string>
<string name="ghoul_prefix_11">
<text locale="de">Furchtbare</text>
</string>
<string name="ghoul_prefix_12">
<text locale="de">Entsetzliche</text>
</string>
<string name="ghoul_prefix_13">
<text locale="de">Schauderhafte</text>
</string>
<string name="ghoul_prefix_14">
<text locale="de">Schreckliche</text>
</string>
<string name="ghoul_prefix_15">
<text locale="de">Düstere</text>
</string>
<string name="ghoul_prefix_16">
<text locale="de">Schaurige</text>
</string>
<string name="ghoul_name_0">
<text locale="de">Ghoule</text>
</string>
<string name="ghoul_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="ghoul_name_2">
<text locale="de">Verlorene</text>
</string>
<string name="ghoul_name_3">
<text locale="de">Erschlagene</text>
</string>
<string name="ghoul_name_4">
<text locale="de">Verdammte</text>
</string>
<string name="ghoul_name_5">
<text locale="de">Schlurfende Ghoule</text>
</string>
<string name="ghoul_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="ghoul_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="ghoul_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="ghoul_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="ghoul_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="ghoul_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="ghoul_postfix_6">
<text locale="de">der Ruhelosen</text>
</string>
<string name="ghoul_postfix_7">
<text locale="de">aus dem Nebel</text>
</string>
<string name="ghoul_postfix_8">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="ghoul_postfix_9">
<text locale="de">der Tiefe</text>
</string>
<string name="ghoul_postfix_10">
<text locale="de">in Ketten</text>
</string>
<string name="ghoul_postfix_11">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="ghoul_postfix_12">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="ghoul_prefix_0">
<text locale="de">Faulende</text>
</string>
<string name="ghoul_prefix_1">
<text locale="de">Angsteinflößende</text>
</string>
<string name="ghoul_prefix_2">
<text locale="de">Leise</text>
</string>
<string name="ghoul_prefix_3">
<text locale="de">Kinderfressende</text>
</string>
<string name="ghoul_prefix_4">
<text locale="de">Menschenfressende</text>
</string>
<string name="ghoul_prefix_5">
<text locale="de">Wahnsinnige</text>
</string>
<string name="ghoul_prefix_6">
<text locale="de">Brutale</text>
</string>
<string name="ghoul_prefix_7">
<text locale="de">Schwarze</text>
</string>
<string name="ghoul_prefix_8">
<text locale="de">Dunkle</text>
</string>
<string name="ghoul_prefix_9">
<text locale="de">Fürchterliche</text>
</string>
<string name="ghoul_prefix_10">
<text locale="de">Grauenhafte</text>
</string>
<string name="ghoul_prefix_11">
<text locale="de">Furchtbare</text>
</string>
<string name="ghoul_prefix_12">
<text locale="de">Entsetzliche</text>
</string>
<string name="ghoul_prefix_13">
<text locale="de">Schauderhafte</text>
</string>
<string name="ghoul_prefix_14">
<text locale="de">Schreckliche</text>
</string>
<string name="ghoul_prefix_15">
<text locale="de">Düstere</text>
</string>
<string name="ghoul_prefix_16">
<text locale="de">Schaurige</text>
</string>
<string name="ghoul_name_0">
<text locale="de">Ghoule</text>
</string>
<string name="ghoul_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="ghoul_name_2">
<text locale="de">Verlorene</text>
</string>
<string name="ghoul_name_3">
<text locale="de">Erschlagene</text>
</string>
<string name="ghoul_name_4">
<text locale="de">Verdammte</text>
</string>
<string name="ghoul_name_5">
<text locale="de">Schlurfende Ghoule</text>
</string>
<string name="ghoul_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="ghoul_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="ghoul_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="ghoul_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="ghoul_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="ghoul_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="ghoul_postfix_6">
<text locale="de">der Ruhelosen</text>
</string>
<string name="ghoul_postfix_7">
<text locale="de">aus dem Nebel</text>
</string>
<string name="ghoul_postfix_8">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="ghoul_postfix_9">
<text locale="de">der Tiefe</text>
</string>
<string name="ghoul_postfix_10">
<text locale="de">in Ketten</text>
</string>
<string name="ghoul_postfix_11">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="ghoul_postfix_12">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>

View file

@ -1,121 +1,121 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="skeleton_prefix_0">
<text locale="de">Klapperige</text>
</string>
<string name="skeleton_prefix_1">
<text locale="de">Stöhnende</text>
</string>
<string name="skeleton_prefix_2">
<text locale="de">Schwarzknochige</text>
</string>
<string name="skeleton_prefix_3">
<text locale="de">Schwarzgewandete</text>
</string>
<string name="skeleton_prefix_4">
<text locale="de">Angsteinflößende</text>
</string>
<string name="skeleton_prefix_5">
<text locale="de">Heulende</text>
</string>
<string name="skeleton_prefix_6">
<text locale="de">Wartende</text>
</string>
<string name="skeleton_prefix_7">
<text locale="de">Grauenvolle</text>
</string>
<string name="skeleton_prefix_8">
<text locale="de">Schwarze</text>
</string>
<string name="skeleton_prefix_9">
<text locale="de">Dunkle</text>
</string>
<string name="skeleton_prefix_10">
<text locale="de">Fürchterliche</text>
</string>
<string name="skeleton_prefix_11">
<text locale="de">Grauenhafte</text>
</string>
<string name="skeleton_prefix_12">
<text locale="de">Furchtbare</text>
</string>
<string name="skeleton_prefix_13">
<text locale="de">Entsetzliche</text>
</string>
<string name="skeleton_prefix_14">
<text locale="de">Schauderhafte</text>
</string>
<string name="skeleton_prefix_15">
<text locale="de">Schreckliche</text>
</string>
<string name="skeleton_prefix_16">
<text locale="de">Düstere</text>
</string>
<string name="skeleton_prefix_17">
<text locale="de">Schaurige</text>
</string>
<string name="skeleton_prefix_18">
<text locale="de">Erbarmungslose</text>
</string>
<string name="skeleton_name_0">
<text locale="de">Skelette</text>
</string>
<string name="skeleton_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="skeleton_name_2">
<text locale="de">Krieger</text>
</string>
<string name="skeleton_name_3">
<text locale="de">Kämpfer</text>
</string>
<string name="skeleton_name_4">
<text locale="de">Rächer</text>
</string>
<string name="skeleton_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="skeleton_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="skeleton_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="skeleton_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="skeleton_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="skeleton_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="skeleton_postfix_6">
<text locale="de">der Gefolterten</text>
</string>
<string name="skeleton_postfix_7">
<text locale="de">der Ruhelosen</text>
</string>
<string name="skeleton_postfix_8">
<text locale="de">aus dem Nebel</text>
</string>
<string name="skeleton_postfix_9">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="skeleton_postfix_10">
<text locale="de">der Tiefe</text>
</string>
<string name="skeleton_postfix_11">
<text locale="de">in Ketten</text>
</string>
<string name="skeleton_postfix_12">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="skeleton_postfix_13">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="skeleton_prefix_0">
<text locale="de">Klapperige</text>
</string>
<string name="skeleton_prefix_1">
<text locale="de">Stöhnende</text>
</string>
<string name="skeleton_prefix_2">
<text locale="de">Schwarzknochige</text>
</string>
<string name="skeleton_prefix_3">
<text locale="de">Schwarzgewandete</text>
</string>
<string name="skeleton_prefix_4">
<text locale="de">Angsteinflößende</text>
</string>
<string name="skeleton_prefix_5">
<text locale="de">Heulende</text>
</string>
<string name="skeleton_prefix_6">
<text locale="de">Wartende</text>
</string>
<string name="skeleton_prefix_7">
<text locale="de">Grauenvolle</text>
</string>
<string name="skeleton_prefix_8">
<text locale="de">Schwarze</text>
</string>
<string name="skeleton_prefix_9">
<text locale="de">Dunkle</text>
</string>
<string name="skeleton_prefix_10">
<text locale="de">Fürchterliche</text>
</string>
<string name="skeleton_prefix_11">
<text locale="de">Grauenhafte</text>
</string>
<string name="skeleton_prefix_12">
<text locale="de">Furchtbare</text>
</string>
<string name="skeleton_prefix_13">
<text locale="de">Entsetzliche</text>
</string>
<string name="skeleton_prefix_14">
<text locale="de">Schauderhafte</text>
</string>
<string name="skeleton_prefix_15">
<text locale="de">Schreckliche</text>
</string>
<string name="skeleton_prefix_16">
<text locale="de">Düstere</text>
</string>
<string name="skeleton_prefix_17">
<text locale="de">Schaurige</text>
</string>
<string name="skeleton_prefix_18">
<text locale="de">Erbarmungslose</text>
</string>
<string name="skeleton_name_0">
<text locale="de">Skelette</text>
</string>
<string name="skeleton_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="skeleton_name_2">
<text locale="de">Krieger</text>
</string>
<string name="skeleton_name_3">
<text locale="de">Kämpfer</text>
</string>
<string name="skeleton_name_4">
<text locale="de">Rächer</text>
</string>
<string name="skeleton_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="skeleton_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="skeleton_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="skeleton_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="skeleton_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="skeleton_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="skeleton_postfix_6">
<text locale="de">der Gefolterten</text>
</string>
<string name="skeleton_postfix_7">
<text locale="de">der Ruhelosen</text>
</string>
<string name="skeleton_postfix_8">
<text locale="de">aus dem Nebel</text>
</string>
<string name="skeleton_postfix_9">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="skeleton_postfix_10">
<text locale="de">der Tiefe</text>
</string>
<string name="skeleton_postfix_11">
<text locale="de">in Ketten</text>
</string>
<string name="skeleton_postfix_12">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="skeleton_postfix_13">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>

View file

@ -1,156 +1,156 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="undead_prefix_0">
<text locale="de">Grausige</text>
</string>
<string name="undead_prefix_1">
<text locale="de">Stöhnende</text>
</string>
<string name="undead_prefix_2">
<text locale="de">Schlurfende</text>
</string>
<string name="undead_prefix_3">
<text locale="de">Schwarzgewandete</text>
</string>
<string name="undead_prefix_4">
<text locale="de">Faulende</text>
</string>
<string name="undead_prefix_5">
<text locale="de">Angsteinflößende</text>
</string>
<string name="undead_prefix_6">
<text locale="de">Heulende</text>
</string>
<string name="undead_prefix_7">
<text locale="de">Wartende</text>
</string>
<string name="undead_prefix_8">
<text locale="de">Grauenvolle</text>
</string>
<string name="undead_prefix_9">
<text locale="de">Schwarze</text>
</string>
<string name="undead_prefix_10">
<text locale="de">Dunkle</text>
</string>
<string name="undead_prefix_11">
<text locale="de">Fürchterliche</text>
</string>
<string name="undead_prefix_12">
<text locale="de">Grauenhafte</text>
</string>
<string name="undead_prefix_13">
<text locale="de">Furchtbare</text>
</string>
<string name="undead_prefix_14">
<text locale="de">Entsetzliche</text>
</string>
<string name="undead_prefix_15">
<text locale="de">Schauderhafte</text>
</string>
<string name="undead_prefix_16">
<text locale="de">Schreckliche</text>
</string>
<string name="undead_prefix_17">
<text locale="de">Gespenstische</text>
</string>
<string name="undead_prefix_18">
<text locale="de">Ekelhafte</text>
</string>
<string name="undead_prefix_19">
<text locale="de">Düstere</text>
</string>
<string name="undead_prefix_20">
<text locale="de">Schaurige</text>
</string>
<string name="undead_prefix_21">
<text locale="de">Erbarmungslose</text>
</string>
<string name="undead_prefix_22">
<text locale="de">Hungrige</text>
</string>
<string name="undead_name_0">
<text locale="de">Geister</text>
</string>
<string name="undead_name_1">
<text locale="de">Phantome</text>
</string>
<string name="undead_name_2">
<text locale="de">Vampire</text>
</string>
<string name="undead_name_3">
<text locale="de">Zombies</text>
</string>
<string name="undead_name_4">
<text locale="de">Gespenster</text>
</string>
<string name="undead_name_5">
<text locale="de">Kreaturen</text>
</string>
<string name="undead_name_6">
<text locale="de">Gestalten</text>
</string>
<string name="undead_name_7">
<text locale="de">Schemen</text>
</string>
<string name="undead_name_8">
<text locale="de">Monster</text>
</string>
<string name="undead_name_9">
<text locale="de">Krieger</text>
</string>
<string name="undead_name_10">
<text locale="de">Ghule</text>
</string>
<string name="undead_name_11">
<text locale="de">Kopflose</text>
</string>
<string name="undead_name_12">
<text locale="de">Irrlichter</text>
</string>
<string name="undead_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="undead_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="undead_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="undead_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="undead_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="undead_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="undead_postfix_6">
<text locale="de">der Gefolterten</text>
</string>
<string name="undead_postfix_7">
<text locale="de">der Ruhelosen</text>
</string>
<string name="undead_postfix_8">
<text locale="de">aus dem Nebel</text>
</string>
<string name="undead_postfix_9">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="undead_postfix_10">
<text locale="de">der Tiefe</text>
</string>
<string name="undead_postfix_11">
<text locale="de">in Ketten</text>
</string>
<string name="undead_postfix_12">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="undead_postfix_13">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="undead_prefix_0">
<text locale="de">Grausige</text>
</string>
<string name="undead_prefix_1">
<text locale="de">Stöhnende</text>
</string>
<string name="undead_prefix_2">
<text locale="de">Schlurfende</text>
</string>
<string name="undead_prefix_3">
<text locale="de">Schwarzgewandete</text>
</string>
<string name="undead_prefix_4">
<text locale="de">Faulende</text>
</string>
<string name="undead_prefix_5">
<text locale="de">Angsteinflößende</text>
</string>
<string name="undead_prefix_6">
<text locale="de">Heulende</text>
</string>
<string name="undead_prefix_7">
<text locale="de">Wartende</text>
</string>
<string name="undead_prefix_8">
<text locale="de">Grauenvolle</text>
</string>
<string name="undead_prefix_9">
<text locale="de">Schwarze</text>
</string>
<string name="undead_prefix_10">
<text locale="de">Dunkle</text>
</string>
<string name="undead_prefix_11">
<text locale="de">Fürchterliche</text>
</string>
<string name="undead_prefix_12">
<text locale="de">Grauenhafte</text>
</string>
<string name="undead_prefix_13">
<text locale="de">Furchtbare</text>
</string>
<string name="undead_prefix_14">
<text locale="de">Entsetzliche</text>
</string>
<string name="undead_prefix_15">
<text locale="de">Schauderhafte</text>
</string>
<string name="undead_prefix_16">
<text locale="de">Schreckliche</text>
</string>
<string name="undead_prefix_17">
<text locale="de">Gespenstische</text>
</string>
<string name="undead_prefix_18">
<text locale="de">Ekelhafte</text>
</string>
<string name="undead_prefix_19">
<text locale="de">Düstere</text>
</string>
<string name="undead_prefix_20">
<text locale="de">Schaurige</text>
</string>
<string name="undead_prefix_21">
<text locale="de">Erbarmungslose</text>
</string>
<string name="undead_prefix_22">
<text locale="de">Hungrige</text>
</string>
<string name="undead_name_0">
<text locale="de">Geister</text>
</string>
<string name="undead_name_1">
<text locale="de">Phantome</text>
</string>
<string name="undead_name_2">
<text locale="de">Vampire</text>
</string>
<string name="undead_name_3">
<text locale="de">Zombies</text>
</string>
<string name="undead_name_4">
<text locale="de">Gespenster</text>
</string>
<string name="undead_name_5">
<text locale="de">Kreaturen</text>
</string>
<string name="undead_name_6">
<text locale="de">Gestalten</text>
</string>
<string name="undead_name_7">
<text locale="de">Schemen</text>
</string>
<string name="undead_name_8">
<text locale="de">Monster</text>
</string>
<string name="undead_name_9">
<text locale="de">Krieger</text>
</string>
<string name="undead_name_10">
<text locale="de">Ghule</text>
</string>
<string name="undead_name_11">
<text locale="de">Kopflose</text>
</string>
<string name="undead_name_12">
<text locale="de">Irrlichter</text>
</string>
<string name="undead_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="undead_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="undead_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="undead_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="undead_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="undead_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="undead_postfix_6">
<text locale="de">der Gefolterten</text>
</string>
<string name="undead_postfix_7">
<text locale="de">der Ruhelosen</text>
</string>
<string name="undead_postfix_8">
<text locale="de">aus dem Nebel</text>
</string>
<string name="undead_postfix_9">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="undead_postfix_10">
<text locale="de">der Tiefe</text>
</string>
<string name="undead_postfix_11">
<text locale="de">in Ketten</text>
</string>
<string name="undead_postfix_12">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="undead_postfix_13">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>

View file

@ -1,108 +1,108 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="zombie_prefix_0">
<text locale="de">Faulende</text>
</string>
<string name="zombie_prefix_1">
<text locale="de">Zerschlagene</text>
</string>
<string name="zombie_prefix_2">
<text locale="de">Gefolterte</text>
</string>
<string name="zombie_prefix_3">
<text locale="de">Angsteinflößende</text>
</string>
<string name="zombie_prefix_4">
<text locale="de">Leise Schlurfende</text>
</string>
<string name="zombie_prefix_5">
<text locale="de">Kinderfressende</text>
</string>
<string name="zombie_prefix_6">
<text locale="de">Schwarze</text>
</string>
<string name="zombie_prefix_7">
<text locale="de">Dunkle</text>
</string>
<string name="zombie_prefix_8">
<text locale="de">Fürchterliche</text>
</string>
<string name="zombie_prefix_9">
<text locale="de">Grauenhafte</text>
</string>
<string name="zombie_prefix_10">
<text locale="de">Furchtbare</text>
</string>
<string name="zombie_prefix_11">
<text locale="de">Entsetzliche</text>
</string>
<string name="zombie_prefix_12">
<text locale="de">Schauderhafte</text>
</string>
<string name="zombie_prefix_13">
<text locale="de">Schreckliche</text>
</string>
<string name="zombie_prefix_14">
<text locale="de">Düstere</text>
</string>
<string name="zombie_prefix_15">
<text locale="de">Schaurige</text>
</string>
<string name="zombie_name_0">
<text locale="de">Zombies</text>
</string>
<string name="zombie_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="zombie_name_2">
<text locale="de">Verlorene</text>
</string>
<string name="zombie_name_3">
<text locale="de">Erschlagene</text>
</string>
<string name="zombie_name_4">
<text locale="de">Verdammte</text>
</string>
<string name="zombie_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="zombie_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="zombie_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="zombie_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="zombie_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="zombie_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="zombie_postfix_6">
<text locale="de">der Ruhelosen</text>
</string>
<string name="zombie_postfix_7">
<text locale="de">aus dem Nebel</text>
</string>
<string name="zombie_postfix_8">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="zombie_postfix_9">
<text locale="de">der Tiefe</text>
</string>
<string name="zombie_postfix_10">
<text locale="de">in Ketten</text>
</string>
<string name="zombie_postfix_11">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="zombie_postfix_12">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>
<?xml version="1.0" encoding="iso-8859-1" ?>
<strings>
<string name="zombie_prefix_0">
<text locale="de">Faulende</text>
</string>
<string name="zombie_prefix_1">
<text locale="de">Zerschlagene</text>
</string>
<string name="zombie_prefix_2">
<text locale="de">Gefolterte</text>
</string>
<string name="zombie_prefix_3">
<text locale="de">Angsteinflößende</text>
</string>
<string name="zombie_prefix_4">
<text locale="de">Leise Schlurfende</text>
</string>
<string name="zombie_prefix_5">
<text locale="de">Kinderfressende</text>
</string>
<string name="zombie_prefix_6">
<text locale="de">Schwarze</text>
</string>
<string name="zombie_prefix_7">
<text locale="de">Dunkle</text>
</string>
<string name="zombie_prefix_8">
<text locale="de">Fürchterliche</text>
</string>
<string name="zombie_prefix_9">
<text locale="de">Grauenhafte</text>
</string>
<string name="zombie_prefix_10">
<text locale="de">Furchtbare</text>
</string>
<string name="zombie_prefix_11">
<text locale="de">Entsetzliche</text>
</string>
<string name="zombie_prefix_12">
<text locale="de">Schauderhafte</text>
</string>
<string name="zombie_prefix_13">
<text locale="de">Schreckliche</text>
</string>
<string name="zombie_prefix_14">
<text locale="de">Düstere</text>
</string>
<string name="zombie_prefix_15">
<text locale="de">Schaurige</text>
</string>
<string name="zombie_name_0">
<text locale="de">Zombies</text>
</string>
<string name="zombie_name_1">
<text locale="de">Kreaturen</text>
</string>
<string name="zombie_name_2">
<text locale="de">Verlorene</text>
</string>
<string name="zombie_name_3">
<text locale="de">Erschlagene</text>
</string>
<string name="zombie_name_4">
<text locale="de">Verdammte</text>
</string>
<string name="zombie_postfix_0">
<text locale="de">der Nacht</text>
</string>
<string name="zombie_postfix_1">
<text locale="de">der Schatten</text>
</string>
<string name="zombie_postfix_2">
<text locale="de">der Finsternis</text>
</string>
<string name="zombie_postfix_3">
<text locale="de">des Bösen</text>
</string>
<string name="zombie_postfix_4">
<text locale="de">der Erschlagenen</text>
</string>
<string name="zombie_postfix_5">
<text locale="de">der Verfluchten</text>
</string>
<string name="zombie_postfix_6">
<text locale="de">der Ruhelosen</text>
</string>
<string name="zombie_postfix_7">
<text locale="de">aus dem Nebel</text>
</string>
<string name="zombie_postfix_8">
<text locale="de">aus dem Dunkel</text>
</string>
<string name="zombie_postfix_9">
<text locale="de">der Tiefe</text>
</string>
<string name="zombie_postfix_10">
<text locale="de">in Ketten</text>
</string>
<string name="zombie_postfix_11">
<text locale="de">aus dem Totenreich</text>
</string>
<string name="zombie_postfix_12">
<text locale="de">aus der Unterwelt</text>
</string>
</strings>

View file

@ -1,14 +1,14 @@
<race name="dragon" magres="0.700000" maxaura="1.0" regaura="2.000000" weight="10000" capacity="1000000" speed="1.500000" hp="900" ac=
"6" damage="2d30" unarmedattack="0" unarmeddefense="0" attackmodifier="7" defensemodifier="7" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" giveitem="yes" resistbash="yes">
<ai splitsize="2" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="age" value="agedragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="8"/>
<skill name="tactics" modifier="8"/>
<attack type="4" damage="2d20"/>
<attack type="4" damage="2d20"/>
<attack type="4" damage="3d30"/>
<attack type="6" spell="icy_dragonbreath"/>
</race>
<race name="dragon" magres="0.700000" maxaura="1.0" regaura="2.000000" weight="10000" capacity="1000000" speed="1.500000" hp="900" ac=
"6" damage="2d30" unarmedattack="0" unarmeddefense="0" attackmodifier="7" defensemodifier="7" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" giveitem="yes" resistbash="yes">
<ai splitsize="2" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="age" value="agedragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="8"/>
<skill name="tactics" modifier="8"/>
<attack type="4" damage="2d20"/>
<attack type="4" damage="2d20"/>
<attack type="4" damage="3d30"/>
<attack type="6" spell="icy_dragonbreath"/>
</race>

View file

@ -1,22 +1,22 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<param name="hunger.damage" value="1d8+7"/>
<param name="other_race" value="demon"/>
<param name="other_cost" value="500"/>
<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>
<?xml version="1.0" encoding="iso-8859-1" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<param name="hunger.damage" value="1d8+7"/>
<param name="other_race" value="demon"/>
<param name="other_cost" value="500"/>
<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,22 +1,22 @@
<?xml version="1.0" encoding="iso-8859-1" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<param name="hunger.damage" value="1d8+7"/>
<param name="other_race" value="demon"/>
<param name="other_cost" value="500"/>
<param name="recruit_multi" value="0.5"/>
<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"/>
<skill name="weaponsmithing" modifier="-1"/>
<attack type="1" damage="1d5"/>
<familiar race="rat" default="yes"/>
<familiar race="imp"/>
</race>
<?xml version="1.0" encoding="iso-8859-1" ?>
<race name="goblin" magres="-0.05" maxaura="1.0" regaura="1.0" recruitcost="60" maintenance="6" weight="600" capacity="440" speed="1.0" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<param name="hunger.damage" value="1d8+7"/>
<param name="other_race" value="demon"/>
<param name="other_cost" value="500"/>
<param name="recruit_multi" value="0.5"/>
<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"/>
<skill name="weaponsmithing" modifier="-1"/>
<attack type="1" damage="1d5"/>
<familiar race="rat" default="yes"/>
<familiar race="imp"/>
</race>

View file

@ -1,11 +1,11 @@
<race name="wyrm" magres="0.900000" maxaura="1.0" regaura="3.000000" weight="18000" capacity="1000000" speed="1.0" 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">
<ai splitsize="1" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="12"/>
<skill name="tactics" modifier="12"/>
<attack type="4" damage="3d20"/>
<attack type="4" damage="3d20"/>
<attack type="4" damage="5d30"/>
<attack type="6" spell="powerful_dragonbreath"/>
</race>
<race name="wyrm" magres="0.900000" maxaura="1.0" regaura="3.000000" weight="18000" capacity="1000000" speed="1.0" 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">
<ai splitsize="1" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="12"/>
<skill name="tactics" modifier="12"/>
<attack type="4" damage="3d20"/>
<attack type="4" damage="3d20"/>
<attack type="4" damage="5d30"/>
<attack type="6" spell="powerful_dragonbreath"/>
</race>

View file

@ -1,13 +1,13 @@
<race name="youngdragon" magres="0.500000" maxaura="1.0" regaura="1.0" weight="20000" capacity="10000" speed="1.0" hp="300" ac="4" damage="2d15" unarmedattack="0" unarmeddefense="0" attackmodifier="4" defensemodifier="4" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes">
<ai splitsize="6" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="age" value="agefiredragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="4"/>
<skill name="tactics" modifier="4"/>
<attack type="4" damage="1d30"/>
<attack type="4" damage="1d30"/>
<attack type="4" damage="1d30"/>
<attack type="6" spell="fiery_dragonbreath"/>
</race>
<race name="youngdragon" magres="0.500000" maxaura="1.0" regaura="1.0" weight="20000" capacity="10000" speed="1.0" hp="300" ac="4" damage="2d15" unarmedattack="0" unarmeddefense="0" attackmodifier="4" defensemodifier="4" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes">
<ai splitsize="6" killpeasants="yes" learn="yes"/>
<function name="name" value="namedragon"/>
<function name="age" value="agefiredragon"/>
<function name="move" value="movedragon"/>
<skill name="magic" modifier="4"/>
<skill name="tactics" modifier="4"/>
<attack type="4" damage="1d30"/>
<attack type="4" damage="1d30"/>
<attack type="4" damage="1d30"/>
<attack type="6" spell="fiery_dragonbreath"/>
</race>

View file

@ -1,194 +1,194 @@
function size()
return 16
end
function make_island(pl, x, y, a, b)
if b==nil then b = a/3 end
local nx, ny = plane.normalize(pl, x, y)
gmtool.make_island(nx, ny, a, b)
end
function make_block(pl, x, y, r)
local nx, ny = plane.normalize(pl, x, y)
gmtool.make_block(nx, ny, r)
end
function find(email)
for f in factions() do if f.email==email then return f end end
return nil
end
function give_item(email, id, uname, iname)
f = find(email)
for u in f.units do
u.id=atoi36(id)
u.name=uname
u:add_item(iname, 1)
break
end
end
function give_items()
give_item("hongeldongel@web.de", "boss", "Drollitz", "rpg_item_1")
give_item("zangerl.helmut@chello.at", "holb", "Holbard", "rpg_item_2")
give_item("r.lang@chello.at", "brtL", "Bertl", "rpg_item_2")
give_item("schlaustauch@gmx.de", "bert", "Bertram", "rpg_item_3")
end
function island(pl, x, y, r)
make_block(pl, x, y, r)
make_island(pl, x+r/2+2, y+r/2, size() * 3)
make_island(pl, x-r-2, y+r/2, size() * 3)
make_island(pl, x-r/2-2, y-r/2, size() * 3)
make_island(pl, x+r+2, y-r/2, size() * 3)
make_island(pl, x+r/2+2, y-r-2, size() * 3)
make_island(pl, x-r/2-2, y+r+2, size() * 3)
end
function cross(pl, x, y, r)
make_block(pl, x-r, y+r*2, r)
make_block(pl, x+r*4/3, y, r)
make_block(pl, x-r*4/3, y, r)
make_block(pl, x+r, y-r*2, r)
make_island(pl, x, y, size() * 3)
make_island(pl, x, y-r*4/3, size() * 3)
make_island(pl, x, y+r*4/3, size() * 3)
make_island(pl, x+r*4/3, y-r*4/3, size() * 3)
make_island(pl, x-r*4/3, y+r*4/3, size() * 3)
end
function clean()
for r in regions() do
if r.terrain=="ocean" then
-- print(r)
region.destroy(r)
end
end
end
function count()
local i = 0
for f in factions() do i = i + 1 end
print(i)
end
function line(pl)
local m = 0
local i = 0
local x, y = plane.normalize(pl, 0, i)
local r = get_region(x, y)
while true do
if r==nil then
if m==0 and (i>=0 or i<-10) then
local s = size()
gmtool.make_island(x, y, s*3, s)
else
gmtool.make_block(x, y, 6)
end
r = get_region(x, y)
if r==nil then
r = region.create(x, y, "ocean")
end
m = 1 - m
end
i = r.y + 1
x, y = plane.normalize(pl, 0, i)
r = get_region(x, y)
if r~=nil and r.y==0 then break end
end
end
function build(pl)
local d = 28
local h = 20
line(pl)
island(pl, d+15, -6, 11)
island(pl, -d, -h-10, 11)
cross(pl, -d, h-10, 6)
island(pl, d, 2*h, 11)
end
function fill(pl, w, h)
local x, y
for x=0,w do
for y=0,h do
local nx, ny = plane.normalize(pl, x, y)
local r = get_region(nx, ny)
if r==nil then
r = region.create(nx, ny, "ocean")
end
end
end
end
function seed()
local input = io.open(config.basepath .. "/parteien.txt")
for f in factions() do
if f.race=="vampunicorn" then
local str = input:read("*line")
if str==nil then break end
local race, lang, email = str:match("([^ ]*) ([^ ]*) ([^ ]*)")
f.race = race:lower()
f.options = f.options + 4096
f.email = email
f.locale = lang
for u in f.units do
u.race = race:lower()
u.hp = u.hp_max
local b = building.create(u.region, "castle")
if lang=="de" then
u.name = "Entdecker"
b.name = "Heimat"
else
u.name = "Explorer"
b.name = "Home"
end
b.size = 10
u.building = b
end
end
end
for r in regions() do
r:set_resource("sapling", r:get_resource("tree")/4)
r:set_resource("seed", 0)
end
update_owners()
end
function select()
for f in factions() do
if f.email=="enno@eressea.de" then
for u in f.units do
gmtool.select(u.region, true)
u.number = 0
end
end
end
end
function justWords(str)
local t = {}
local function helper(word) table.insert(t, word) return "" end
if not str:gsub("%w+", helper):find"%S" then return t end
end
function rebuild()
free_game()
local w = 110
local h = 80
local pl = plane.create(0, -w/2, -h/2, w+1, h+1)
build(pl)
fill(pl, w, h)
write_map("export.cr")
end
function testwelt()
free_game()
local w = 10
local h = 10
local pl = plane.create(0, -w/2, -h/2, w+1, h+1)
gmtool.make_island(0, 0, 30, 3)
fill(pl, w, h)
write_map("export.cr")
end
function size()
return 16
end
function make_island(pl, x, y, a, b)
if b==nil then b = a/3 end
local nx, ny = plane.normalize(pl, x, y)
gmtool.make_island(nx, ny, a, b)
end
function make_block(pl, x, y, r)
local nx, ny = plane.normalize(pl, x, y)
gmtool.make_block(nx, ny, r)
end
function find(email)
for f in factions() do if f.email==email then return f end end
return nil
end
function give_item(email, id, uname, iname)
f = find(email)
for u in f.units do
u.id=atoi36(id)
u.name=uname
u:add_item(iname, 1)
break
end
end
function give_items()
give_item("hongeldongel@web.de", "boss", "Drollitz", "rpg_item_1")
give_item("zangerl.helmut@chello.at", "holb", "Holbard", "rpg_item_2")
give_item("r.lang@chello.at", "brtL", "Bertl", "rpg_item_2")
give_item("schlaustauch@gmx.de", "bert", "Bertram", "rpg_item_3")
end
function island(pl, x, y, r)
make_block(pl, x, y, r)
make_island(pl, x+r/2+2, y+r/2, size() * 3)
make_island(pl, x-r-2, y+r/2, size() * 3)
make_island(pl, x-r/2-2, y-r/2, size() * 3)
make_island(pl, x+r+2, y-r/2, size() * 3)
make_island(pl, x+r/2+2, y-r-2, size() * 3)
make_island(pl, x-r/2-2, y+r+2, size() * 3)
end
function cross(pl, x, y, r)
make_block(pl, x-r, y+r*2, r)
make_block(pl, x+r*4/3, y, r)
make_block(pl, x-r*4/3, y, r)
make_block(pl, x+r, y-r*2, r)
make_island(pl, x, y, size() * 3)
make_island(pl, x, y-r*4/3, size() * 3)
make_island(pl, x, y+r*4/3, size() * 3)
make_island(pl, x+r*4/3, y-r*4/3, size() * 3)
make_island(pl, x-r*4/3, y+r*4/3, size() * 3)
end
function clean()
for r in regions() do
if r.terrain=="ocean" then
-- print(r)
region.destroy(r)
end
end
end
function count()
local i = 0
for f in factions() do i = i + 1 end
print(i)
end
function line(pl)
local m = 0
local i = 0
local x, y = plane.normalize(pl, 0, i)
local r = get_region(x, y)
while true do
if r==nil then
if m==0 and (i>=0 or i<-10) then
local s = size()
gmtool.make_island(x, y, s*3, s)
else
gmtool.make_block(x, y, 6)
end
r = get_region(x, y)
if r==nil then
r = region.create(x, y, "ocean")
end
m = 1 - m
end
i = r.y + 1
x, y = plane.normalize(pl, 0, i)
r = get_region(x, y)
if r~=nil and r.y==0 then break end
end
end
function build(pl)
local d = 28
local h = 20
line(pl)
island(pl, d+15, -6, 11)
island(pl, -d, -h-10, 11)
cross(pl, -d, h-10, 6)
island(pl, d, 2*h, 11)
end
function fill(pl, w, h)
local x, y
for x=0,w do
for y=0,h do
local nx, ny = plane.normalize(pl, x, y)
local r = get_region(nx, ny)
if r==nil then
r = region.create(nx, ny, "ocean")
end
end
end
end
function seed()
local input = io.open(config.basepath .. "/parteien.txt")
for f in factions() do
if f.race=="vampunicorn" then
local str = input:read("*line")
if str==nil then break end
local race, lang, email = str:match("([^ ]*) ([^ ]*) ([^ ]*)")
f.race = race:lower()
f.options = f.options + 4096
f.email = email
f.locale = lang
for u in f.units do
u.race = race:lower()
u.hp = u.hp_max
local b = building.create(u.region, "castle")
if lang=="de" then
u.name = "Entdecker"
b.name = "Heimat"
else
u.name = "Explorer"
b.name = "Home"
end
b.size = 10
u.building = b
end
end
end
for r in regions() do
r:set_resource("sapling", r:get_resource("tree")/4)
r:set_resource("seed", 0)
end
update_owners()
end
function select()
for f in factions() do
if f.email=="enno@eressea.de" then
for u in f.units do
gmtool.select(u.region, true)
u.number = 0
end
end
end
end
function justWords(str)
local t = {}
local function helper(word) table.insert(t, word) return "" end
if not str:gsub("%w+", helper):find"%S" then return t end
end
function rebuild()
free_game()
local w = 110
local h = 80
local pl = plane.create(0, -w/2, -h/2, w+1, h+1)
build(pl)
fill(pl, w, h)
write_map("export.cr")
end
function testwelt()
free_game()
local w = 10
local h = 10
local pl = plane.create(0, -w/2, -h/2, w+1, h+1)
gmtool.make_island(0, 0, 30, 3)
fill(pl, w, h)
write_map("export.cr")
end

View file

@ -1,63 +1,63 @@
require "multis"
function process(orders)
local confirmed_multis = { }
local suspected_multis = { }
if open_game(get_turn())~=0 then
print("could not read game")
return -1
end
init_summary()
-- kill multi-players (external script)
kill_multis(confirmed_multis, false)
mark_multis(suspected_multis, false)
-- run the turn:
if read_orders(orders) ~= 0 then
print("could not read " .. orders)
return -1
end
-- plan_monsters()
local mon = get_faction(666)
if mon ~= nil then
mon.lastturn = get_turn()
end
if nmr_check(config.maxnmrs or 30)~=0 then
return -1
end
process_orders()
if xmas2009~=nil then
xmas2009()
end
-- create new monsters:
spawn_dragons()
spawn_undead()
-- spawn_braineaters(0.25)
-- spawn_ents()
kill_nonstarters()
-- post-turn updates:
update_guards()
update_scores()
local localechange = { de = { "ii" } }
change_locales(localechange)
-- use newfactions file to place out new players
-- autoseed(config.basepath .. "/newfactions", false)
write_files(config.locales)
file = "" .. get_turn() .. ".dat"
if write_game(file, "binary")~=0 then
print("could not write game")
return -1
end
return 0
end
require "multis"
function process(orders)
local confirmed_multis = { }
local suspected_multis = { }
if open_game(get_turn())~=0 then
print("could not read game")
return -1
end
init_summary()
-- kill multi-players (external script)
kill_multis(confirmed_multis, false)
mark_multis(suspected_multis, false)
-- run the turn:
if read_orders(orders) ~= 0 then
print("could not read " .. orders)
return -1
end
-- plan_monsters()
local mon = get_faction(666)
if mon ~= nil then
mon.lastturn = get_turn()
end
if nmr_check(config.maxnmrs or 30)~=0 then
return -1
end
process_orders()
if xmas2009~=nil then
xmas2009()
end
-- create new monsters:
spawn_dragons()
spawn_undead()
-- spawn_braineaters(0.25)
-- spawn_ents()
kill_nonstarters()
-- post-turn updates:
update_guards()
update_scores()
local localechange = { de = { "ii" } }
change_locales(localechange)
-- use newfactions file to place out new players
-- autoseed(config.basepath .. "/newfactions", false)
write_files(config.locales)
file = "" .. get_turn() .. ".dat"
if write_game(file, "binary")~=0 then
print("could not write game")
return -1
end
return 0
end

View file

@ -1,89 +1,89 @@
function get_markets(r, result)
local n = 0
result = result or {}
for b in r.buildings do
if b.type=="market" then
u = b.owner
if u~=nil then
table.insert(result, u)
n = n + 1
end
end
end
return n, result
end
function collect_markets(r, result)
local result = result or {}
local n = 0
n, result = get_markets(r, result)
for i, r in ipairs(r.adj) do
if r then
local x, result = get_markets(r, result)
n = n + x
end
end
return n, result
end
function market_action(r)
local f = r.owner
local trade = 1000
if f~=nil and f.race=="halfling" then
trade = 600
end
local p = r:get_resource("peasant")
if p > 500 then
local n, markets = collect_markets(r)
if n>0 then
local give
if r.luxury~=nil then
give = {}
local numlux = p / trade
for x = 1, numlux do
local m = 1+math.mod(rng_int(), n)
u = markets[m]
if give[u] then
give[u] = give[u] + 1
else
give[u] = 1
end
end
for u, v in pairs(give) do
u:add_item(r.luxury, v)
end
end
if r.herb~=nil then
give = {}
local numherb = p / 500
for x = 1, numherb do
local m = 1+math.mod(rng_int(), n)
u = markets[m]
if give[u] then
give[u] = give[u] + 1
else
give[u] = 1
end
end
for u, v in pairs(give) do
u:add_item(r.herb, v)
end
end
end
end
end
local function markets()
local r
for r in regions() do
market_action(r)
end
end
-- add_proc(markets, "Markets", "Bauernwanderung")
function get_markets(r, result)
local n = 0
result = result or {}
for b in r.buildings do
if b.type=="market" then
u = b.owner
if u~=nil then
table.insert(result, u)
n = n + 1
end
end
end
return n, result
end
function collect_markets(r, result)
local result = result or {}
local n = 0
n, result = get_markets(r, result)
for i, r in ipairs(r.adj) do
if r then
local x, result = get_markets(r, result)
n = n + x
end
end
return n, result
end
function market_action(r)
local f = r.owner
local trade = 1000
if f~=nil and f.race=="halfling" then
trade = 600
end
local p = r:get_resource("peasant")
if p > 500 then
local n, markets = collect_markets(r)
if n>0 then
local give
if r.luxury~=nil then
give = {}
local numlux = p / trade
for x = 1, numlux do
local m = 1+math.mod(rng_int(), n)
u = markets[m]
if give[u] then
give[u] = give[u] + 1
else
give[u] = 1
end
end
for u, v in pairs(give) do
u:add_item(r.luxury, v)
end
end
if r.herb~=nil then
give = {}
local numherb = p / 500
for x = 1, numherb do
local m = 1+math.mod(rng_int(), n)
u = markets[m]
if give[u] then
give[u] = give[u] + 1
else
give[u] = 1
end
end
for u, v in pairs(give) do
u:add_item(r.herb, v)
end
end
end
end
end
local function markets()
local r
for r in regions() do
market_action(r)
end
end
-- add_proc(markets, "Markets", "Bauernwanderung")

View file

@ -1,12 +1,12 @@
require "spells"
require "e3a.xmas2009"
require "e3a.rules"
require "e3a.markets"
local srcpath = config.source_dir
tests = {
srcpath .. '/eressea/scripts/tests/castles.lua',
srcpath .. '/eressea/scripts/tests/morale.lua',
srcpath .. '/server/scripts/tests/common.lua',
srcpath .. '/eressea/scripts/tests/e3a.lua',
}
require "spells"
require "e3a.xmas2009"
require "e3a.rules"
require "e3a.markets"
local srcpath = config.source_dir
tests = {
srcpath .. '/eressea/scripts/tests/castles.lua',
srcpath .. '/eressea/scripts/tests/morale.lua',
srcpath .. '/server/scripts/tests/common.lua',
srcpath .. '/eressea/scripts/tests/e3a.lua',
}

View file

@ -1,77 +1,77 @@
-- 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 towershield
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_protection(b, u)
return 1
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
-- 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 towershield
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_protection(b, u)
return 1
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,26 +1,26 @@
function xmas2009()
if not get_key("xm09") then
-- print("Es weihnachtet sehr (2009)")
set_key("xm09", true)
for f in factions() do
f:add_item("xmastree", 1)
local msg = message.create("msg_event")
msg:set_string("string", translate("santa2006"))
msg:send_faction(f)
end
end
return 0
end
function use_xmastree(u, amount)
if u.region.herb~=nil then
local trees = u.region:get_resource("tree")
u.region:set_resource("tree", 10+trees)
u:use_pooled("xmastree", amount)
local msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", "xmastree")
msg:send_region(u.region)
return 0
end
end
function xmas2009()
if not get_key("xm09") then
-- print("Es weihnachtet sehr (2009)")
set_key("xm09", true)
for f in factions() do
f:add_item("xmastree", 1)
local msg = message.create("msg_event")
msg:set_string("string", translate("santa2006"))
msg:send_faction(f)
end
end
return 0
end
function use_xmastree(u, amount)
if u.region.herb~=nil then
local trees = u.region:get_resource("tree")
u.region:set_resource("tree", 10+trees)
u:use_pooled("xmastree", amount)
local msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", "xmastree")
msg:send_region(u.region)
return 0
end
end

View file

@ -1,78 +1,78 @@
-- adamant gifts and setup for tunnels
-- use only once to hand out some items to existing factions
function adamant_gifts()
for f in factions() do
local i = math.mod(test.rng_int(), 2)
if i==0 then
f:add_item("adamantium", 1)
f:add_item("adamantiumplate", 1)
else
f:add_item("adamantium", 3)
f:add_item("adamantiumaxe", 1)
end
end
end
function adamant_seeds()
for r in regions() do
if r:get_key("tnnL") then
print("1 ", r:get_resource("adamantium"), r)
test.adamantium_island(r)
print("2 ", r:get_resource("adamantium"))
end
end
end
-- create a fixed path to a specific region
local function create_path(from, to)
local param = tostring(to.uid)
local b = add_building(from, "portal")
b.name = "Weltentor"
b.size = 1
b:add_action("tunnel_action", param)
end
-- create a wonky tunnel wth more than one exit
local function create_tunnel(from, param)
local b = add_building(from, "portal")
b.name = "Weltentor"
b.size = 1
b:add_action("tunnel_action", param)
end
-- make a tunnel from the cursor to the first selected region
function mktunnel()
local from = gmtool.get_cursor()
local to = gmtool.get_selection()()
if to~=nil then
region.create(from.x, from.y, "glacier")
create_tunnel(from, to)
gmtool.select(to, 0)
gmtool.highlight(to, 1)
end
end
-- turn all selected regions into targets for a wonky tunnel ("tnnL")
function mkanchors()
for r in gmtool.get_selection() do
if not r:get_key("tnnL") then
r:set_key("tnnL", true)
if r:get_flag(0) then
-- RF_CHAOTIC
r:set_flag(0, true)
end
r:set_resource("peasant", r:get_resource("peasant") + 1)
end
end
end
-- region.create and prepare all hell-regions to become wonky gates
function mkgates()
for r in regions() do
if r.plane_id==0 and r.terrain=="hell" then
create_tunnel(r, "tnnL")
region.create(r.x, r.y, "glacier")
end
end
end
-- adamant gifts and setup for tunnels
-- use only once to hand out some items to existing factions
function adamant_gifts()
for f in factions() do
local i = math.mod(test.rng_int(), 2)
if i==0 then
f:add_item("adamantium", 1)
f:add_item("adamantiumplate", 1)
else
f:add_item("adamantium", 3)
f:add_item("adamantiumaxe", 1)
end
end
end
function adamant_seeds()
for r in regions() do
if r:get_key("tnnL") then
print("1 ", r:get_resource("adamantium"), r)
test.adamantium_island(r)
print("2 ", r:get_resource("adamantium"))
end
end
end
-- create a fixed path to a specific region
local function create_path(from, to)
local param = tostring(to.uid)
local b = add_building(from, "portal")
b.name = "Weltentor"
b.size = 1
b:add_action("tunnel_action", param)
end
-- create a wonky tunnel wth more than one exit
local function create_tunnel(from, param)
local b = add_building(from, "portal")
b.name = "Weltentor"
b.size = 1
b:add_action("tunnel_action", param)
end
-- make a tunnel from the cursor to the first selected region
function mktunnel()
local from = gmtool.get_cursor()
local to = gmtool.get_selection()()
if to~=nil then
region.create(from.x, from.y, "glacier")
create_tunnel(from, to)
gmtool.select(to, 0)
gmtool.highlight(to, 1)
end
end
-- turn all selected regions into targets for a wonky tunnel ("tnnL")
function mkanchors()
for r in gmtool.get_selection() do
if not r:get_key("tnnL") then
r:set_key("tnnL", true)
if r:get_flag(0) then
-- RF_CHAOTIC
r:set_flag(0, true)
end
r:set_resource("peasant", r:get_resource("peasant") + 1)
end
end
end
-- region.create and prepare all hell-regions to become wonky gates
function mkgates()
for r in regions() do
if r.plane_id==0 and r.terrain=="hell" then
create_tunnel(r, "tnnL")
region.create(r.x, r.y, "glacier")
end
end
end

View file

@ -1,37 +1,37 @@
require "callbacks"
require "dumptable"
local function trigger_alp_destroyed(alp, event)
m = message.create("alp_destroyed")
m:set_region("region", alp.region)
m:send_faction(alp.faction)
end
local function trigger_alp_dissolve(u, event, attr)
local alp = attr.alp
attr.alp.number = 0 -- kills the alp
end
local function init_alp(attr)
-- dumptable(attr)
eventbus.register(attr.alp, "destroy", trigger_alp_destroyed)
eventbus.register(attr.mage, "destroy", trigger_alp_dissolve, attr)
eventbus.register(attr.target, "destroy", trigger_alp_dissolve, attr)
end
callbacks["init_alp"] = init_alp
-- Spell: summon alp
function summon_alp(r, mage, level, force, params)
local alp = unit.create(mage.faction, r, 1, "alp")
local target = params[1]
alp:set_skill("stealth", 7)
alp.status = 5 -- FLEE
attr = attrib.create(alp, { ['name'] = 'alp', ['target'] = target, ['alp'] = alp, ['mage'] = mage })
init_alp(attr)
msg = message.create("summon_alp_effect")
m:set_unit("mage", mage)
m:set_unit("alp", alp)
m:set_unit("target", target)
m:send_faction(mage.faction)
end
require "callbacks"
require "dumptable"
local function trigger_alp_destroyed(alp, event)
m = message.create("alp_destroyed")
m:set_region("region", alp.region)
m:send_faction(alp.faction)
end
local function trigger_alp_dissolve(u, event, attr)
local alp = attr.alp
attr.alp.number = 0 -- kills the alp
end
local function init_alp(attr)
-- dumptable(attr)
eventbus.register(attr.alp, "destroy", trigger_alp_destroyed)
eventbus.register(attr.mage, "destroy", trigger_alp_dissolve, attr)
eventbus.register(attr.target, "destroy", trigger_alp_dissolve, attr)
end
callbacks["init_alp"] = init_alp
-- Spell: summon alp
function summon_alp(r, mage, level, force, params)
local alp = unit.create(mage.faction, r, 1, "alp")
local target = params[1]
alp:set_skill("stealth", 7)
alp.status = 5 -- FLEE
attr = attrib.create(alp, { ['name'] = 'alp', ['target'] = target, ['alp'] = alp, ['mage'] = mage })
init_alp(attr)
msg = message.create("summon_alp_effect")
m:set_unit("mage", mage)
m:set_unit("alp", alp)
m:set_unit("target", target)
m:send_faction(mage.faction)
end

View file

@ -1,30 +1,30 @@
function use_seashell(u, amount)
-- Muschelplateau...
local r = get_region(165,30)
local visit = u.faction.objects:get("embassy_muschel")
if visit~=nil and u.region~= r then
local turns = get_turn() - visit
local msg = message.create("msg_event")
msg:set_string("string", u.name .. "(" .. itoa36(u.id) .. ") erzählt den Bewohnern von " .. u.region.name .. " von Muschelplateau, das die Partei " .. u.faction.name .. " vor " .. turns .. " Wochen besucht hat." )
msg:send_region(u.region)
return 0
end
return -4
end
function update_embassies()
-- Muschelplateau
local r = get_region(165,30)
if r~=nil then
local u
for u in r.units do
if u.faction.objects:get("embassy_muschel")==nil then
if (u.faction:add_item("seashell", 1)>0) then
print(u.faction)
u.faction.objects:set("embassy_muschel", get_turn())
end
end
end
end
end
function use_seashell(u, amount)
-- Muschelplateau...
local r = get_region(165,30)
local visit = u.faction.objects:get("embassy_muschel")
if visit~=nil and u.region~= r then
local turns = get_turn() - visit
local msg = message.create("msg_event")
msg:set_string("string", u.name .. "(" .. itoa36(u.id) .. ") erzählt den Bewohnern von " .. u.region.name .. " von Muschelplateau, das die Partei " .. u.faction.name .. " vor " .. turns .. " Wochen besucht hat." )
msg:send_region(u.region)
return 0
end
return -4
end
function update_embassies()
-- Muschelplateau
local r = get_region(165,30)
if r~=nil then
local u
for u in r.units do
if u.faction.objects:get("embassy_muschel")==nil then
if (u.faction:add_item("seashell", 1)>0) then
print(u.faction)
u.faction.objects:set("embassy_muschel", get_turn())
end
end
end
end
end

View file

@ -1,32 +1,32 @@
local function create_ents(r, number)
local f = get_faction(0)
if f~=nil and number>0 then
u = add_unit(f, r)
u.number = number
u.name = "Wütende Ents"
u:set_skill("perception", 2)
msg = message.create("entrise")
msg:set_region("region", r)
msg:send_region(r)
return u
end
return nil
end
function spawn_ents()
local r
for r in regions() do
if r:get_flag(0) then -- RF_CHAOTIC
if r.terrain == "plain" and r:get_resource("tree")==0 then
if math.random(3)==1 then
u = create_ents(r, math.random(30))
if u ~= nil then
r:set_resource("tree", u.number)
end
end
end
end
end
end
local function create_ents(r, number)
local f = get_faction(0)
if f~=nil and number>0 then
u = add_unit(f, r)
u.number = number
u.name = "Wütende Ents"
u:set_skill("perception", 2)
msg = message.create("entrise")
msg:set_region("region", r)
msg:send_region(r)
return u
end
return nil
end
function spawn_ents()
local r
for r in regions() do
if r:get_flag(0) then -- RF_CHAOTIC
if r.terrain == "plain" and r:get_resource("tree")==0 then
if math.random(3)==1 then
u = create_ents(r, math.random(30))
if u ~= nil then
r:set_resource("tree", u.number)
end
end
end
end
end
end

View file

@ -1,18 +1,18 @@
require "gates"
local function eternath_exchange(b1, b2, size)
local units1 = gate_units(b1, size)
local units2 = gate_units(b2, size)
gate_travel(b2, units1)
gate_travel(b1, units2)
end
function eternathgate_action(b)
if eternathgate == nil then
eternathgate = b
else
eternath_exchange(eternathgate, b, 10)
end
return 1
end
require "gates"
local function eternath_exchange(b1, b2, size)
local units1 = gate_units(b1, size)
local units2 = gate_units(b2, size)
gate_travel(b2, units1)
gate_travel(b1, units2)
end
function eternathgate_action(b)
if eternathgate == nil then
eternathgate = b
else
eternath_exchange(eternathgate, b, 10)
end
return 1
end

View file

@ -1,59 +1,59 @@
function teleport_all(map, grave)
print("- teleporting all quest members to the grave")
local index
local r
for index, r in pairs(map) do
local u
for u in r.units do
u.region = grave
print (" .teleported " .. u.name)
grave:add_notice("Ein Portal öffnet sich, und " .. u.name .. " erscheint in " .. grave.name)
end
end
end
function wyrm()
print("- running the wyrm quest")
local grave = get_region(-9995,4)
local plane = get_plane_id("arena")
local map = {}
local mapsize = 0
local r
for r in regions() do
if r.plane_id==plane then
mapsize=mapsize+1
map[mapsize] = r
end
end
local u
for u in grave.units do
if u.faction.id~=atoi36("rr") then
teleport_all(map, grave)
break
end
end
local index
local r
for index, r in pairs(map) do
if r~=grave then
if (math.mod(r.x,2)==math.mod(get_turn(),2)) then
r:add_notice("Eine Botschaft von Igjarjuk, Herr der Wyrme: 'Die Zeit des Wartens ist beinahe vorrüber. Euer Fürst kehrt aus dem Grabe zurück.'")
else
r:add_notice("Eine Botschaft von Gwaewar, Herr der Greife: 'Das Ende naht. Igjarjuk ist aus seinem Grab auferstanden. Eilt, noch ist die Welt zu retten!'")
end
end
end
local gryph=get_unit(atoi36("gfd4"))
local igjar=get_unit(atoi36("igjr"))
if grave~=nil and gryph~=nil and igjar~=nil then
gryph.region=grave
igjar.region=grave
grave:add_notice("Eine Botschaft von Gwaewar, Herr der Greife: 'Ihr, die Ihr die Strapazen der letzten Jahre überstanden habt: Lasst nicht zu, dass Igjarjuk wieder in die Welt der Lebenden zurückkehrt. Vernichtet das Auge - jetzt und hier!'")
grave:add_notice("Eine Botschaft von Igjarjuk, Herr der Wyrme: 'Gwaewar, Du wirst dereinst an Deinem Glauben an das Gute in den Sterblichen verrecken... So wie ich es einst tat. Der Krieg ist die einzige Sprache die sie verstehen, und derjenige, der mir hilft, wird ihn gewinnen.'")
end
end
function teleport_all(map, grave)
print("- teleporting all quest members to the grave")
local index
local r
for index, r in pairs(map) do
local u
for u in r.units do
u.region = grave
print (" .teleported " .. u.name)
grave:add_notice("Ein Portal öffnet sich, und " .. u.name .. " erscheint in " .. grave.name)
end
end
end
function wyrm()
print("- running the wyrm quest")
local grave = get_region(-9995,4)
local plane = get_plane_id("arena")
local map = {}
local mapsize = 0
local r
for r in regions() do
if r.plane_id==plane then
mapsize=mapsize+1
map[mapsize] = r
end
end
local u
for u in grave.units do
if u.faction.id~=atoi36("rr") then
teleport_all(map, grave)
break
end
end
local index
local r
for index, r in pairs(map) do
if r~=grave then
if (math.mod(r.x,2)==math.mod(get_turn(),2)) then
r:add_notice("Eine Botschaft von Igjarjuk, Herr der Wyrme: 'Die Zeit des Wartens ist beinahe vorrüber. Euer Fürst kehrt aus dem Grabe zurück.'")
else
r:add_notice("Eine Botschaft von Gwaewar, Herr der Greife: 'Das Ende naht. Igjarjuk ist aus seinem Grab auferstanden. Eilt, noch ist die Welt zu retten!'")
end
end
end
local gryph=get_unit(atoi36("gfd4"))
local igjar=get_unit(atoi36("igjr"))
if grave~=nil and gryph~=nil and igjar~=nil then
gryph.region=grave
igjar.region=grave
grave:add_notice("Eine Botschaft von Gwaewar, Herr der Greife: 'Ihr, die Ihr die Strapazen der letzten Jahre überstanden habt: Lasst nicht zu, dass Igjarjuk wieder in die Welt der Lebenden zurückkehrt. Vernichtet das Auge - jetzt und hier!'")
grave:add_notice("Eine Botschaft von Igjarjuk, Herr der Wyrme: 'Gwaewar, Du wirst dereinst an Deinem Glauben an das Gute in den Sterblichen verrecken... So wie ich es einst tat. Der Krieg ist die einzige Sprache die sie verstehen, und derjenige, der mir hilft, wird ihn gewinnen.'")
end
end

View file

@ -1,19 +1,19 @@
function use_ring_of_levitation(u, amount)
if u.ship~=nil and amount>0 then
local mallorn = 0
for u2 in u.region.units do
if u2.ship==u.ship then
local i = u2:get_item("mallornseed")
if i>0 then
u2:use_pooled("mallornseed", i)
u2:use_pooled("seed", i)
mallorn = mallorn + i
end
end
end
if mallorn>0 then
levitate_ship(u.ship, u, mallorn, 2)
end
end
return 0
end
function use_ring_of_levitation(u, amount)
if u.ship~=nil and amount>0 then
local mallorn = 0
for u2 in u.region.units do
if u2.ship==u.ship then
local i = u2:get_item("mallornseed")
if i>0 then
u2:use_pooled("mallornseed", i)
u2:use_pooled("seed", i)
mallorn = mallorn + i
end
end
end
if mallorn>0 then
levitate_ship(u.ship, u, mallorn, 2)
end
end
return 0
end

View file

@ -1,63 +1,63 @@
require "multis"
function apply_fixes()
local turn = get_turn()
if config.game=="eressea" and turn>654 and turn<662 then
print("Fixing familiars")
fix_familiars()
end
end
function process(orders)
local confirmed_multis = { }
local suspected_multis = { }
if open_game(get_turn())~=0 then
print("could not read game")
return -1
end
apply_fixes()
init_summary()
-- kill multi-players (external script)
kill_multis(confirmed_multis, false)
mark_multis(suspected_multis, false)
-- run the turn:
if read_orders(orders) ~= 0 then
print("could not read " .. orders)
return -1
end
plan_monsters()
if nmr_check(config.maxnmrs or 80)~=0 then
return -1
end
process_orders()
-- create new monsters:
spawn_dragons()
spawn_undead()
spawn_braineaters(0.25)
spawn_ents()
-- post-turn updates:
update_xmas2006()
update_embassies()
update_guards()
update_scores()
local localechange = { de = { "ii" } }
change_locales(localechange)
write_files(config.locales)
file = "" .. get_turn() .. ".dat"
if write_game(file, "binary")~=0 then
print("could not write game")
return -1
end
return 0
end
require "multis"
function apply_fixes()
local turn = get_turn()
if config.game=="eressea" and turn>654 and turn<662 then
print("Fixing familiars")
fix_familiars()
end
end
function process(orders)
local confirmed_multis = { }
local suspected_multis = { }
if open_game(get_turn())~=0 then
print("could not read game")
return -1
end
apply_fixes()
init_summary()
-- kill multi-players (external script)
kill_multis(confirmed_multis, false)
mark_multis(suspected_multis, false)
-- run the turn:
if read_orders(orders) ~= 0 then
print("could not read " .. orders)
return -1
end
plan_monsters()
if nmr_check(config.maxnmrs or 80)~=0 then
return -1
end
process_orders()
-- create new monsters:
spawn_dragons()
spawn_undead()
spawn_braineaters(0.25)
spawn_ents()
-- post-turn updates:
update_xmas2006()
update_embassies()
update_guards()
update_scores()
local localechange = { de = { "ii" } }
change_locales(localechange)
write_files(config.locales)
file = "" .. get_turn() .. ".dat"
if write_game(file, "binary")~=0 then
print("could not write game")
return -1
end
return 0
end

View file

@ -1,21 +1,21 @@
require "spells"
require "gates"
require "eressea.alp"
require "eressea.eternath"
require "eressea.wedding-jadee"
require "eressea.ponnuki"
require "eressea.items"
require "eressea.rules"
-- require "eressea.10years"
require "eressea.xmas2004"
require "eressea.xmas2005"
require "eressea.xmas2006"
require "eressea.embassy"
require "eressea.tunnels"
require "eressea.ents"
local srcpath = config.source_dir
tests = {
srcpath .. '/server/scripts/tests/common.lua',
srcpath .. '/eressea/scripts/tests/eressea.lua',
}
require "spells"
require "gates"
require "eressea.alp"
require "eressea.eternath"
require "eressea.wedding-jadee"
require "eressea.ponnuki"
require "eressea.items"
require "eressea.rules"
-- require "eressea.10years"
require "eressea.xmas2004"
require "eressea.xmas2005"
require "eressea.xmas2006"
require "eressea.embassy"
require "eressea.tunnels"
require "eressea.ents"
local srcpath = config.source_dir
tests = {
srcpath .. '/server/scripts/tests/common.lua',
srcpath .. '/eressea/scripts/tests/eressea.lua',
}

View file

@ -1,42 +1,42 @@
function ponnuki_brain(u)
jokes = {
"Ein Bummerang ist, wenn man ihn wegwirft und er kommt nicht wieder, dann war's keiner.",
"Merke: Mit Schwabenwitzen soll man ganz sparsam sein.",
"Was bekommt man, wenn man Katzen und Elfen kreuzt? Elfen ohne Rheuma.",
"Was bekommt man, wenn man Insekten und Katzen kreuzt? Tiger, die Crisan benutzen."
}
local i = math.random(table.getn(jokes))
u.region:add_notice(jokes[i])
local d = math.random(6)
r = u.region:next(d-1)
u:clear_orders()
directions = { "NW", "NO", "O", "SO", "SW", "W" }
u:add_order("NACH " .. directions[d])
end
local function init_ponnuki(home)
local f = get_faction(0)
local u = get_unit(atoi36("ponn"))
if u == nil then
u = add_unit(f, home)
u.id = atoi36("ponn")
u.name = "Ponnuki"
u.info = "Go, Ponnuki, Go!"
u.race = "illusion"
u:set_racename("Ritter von Go")
end
if u.faction==f then
set_unit_brain(u, ponnuki_brain)
end
end
-- initialize other scripts
local magrathea = get_region(-67, -5)
if magrathea~=nil and init_ponnuki~=nil then
init_ponnuki(magrathea)
return
end
function ponnuki_brain(u)
jokes = {
"Ein Bummerang ist, wenn man ihn wegwirft und er kommt nicht wieder, dann war's keiner.",
"Merke: Mit Schwabenwitzen soll man ganz sparsam sein.",
"Was bekommt man, wenn man Katzen und Elfen kreuzt? Elfen ohne Rheuma.",
"Was bekommt man, wenn man Insekten und Katzen kreuzt? Tiger, die Crisan benutzen."
}
local i = math.random(table.getn(jokes))
u.region:add_notice(jokes[i])
local d = math.random(6)
r = u.region:next(d-1)
u:clear_orders()
directions = { "NW", "NO", "O", "SO", "SW", "W" }
u:add_order("NACH " .. directions[d])
end
local function init_ponnuki(home)
local f = get_faction(0)
local u = get_unit(atoi36("ponn"))
if u == nil then
u = add_unit(f, home)
u.id = atoi36("ponn")
u.name = "Ponnuki"
u.info = "Go, Ponnuki, Go!"
u.race = "illusion"
u:set_racename("Ritter von Go")
end
if u.faction==f then
set_unit_brain(u, ponnuki_brain)
end
end
-- initialize other scripts
local magrathea = get_region(-67, -5)
if magrathea~=nil and init_ponnuki~=nil then
init_ponnuki(magrathea)
return
end

View file

@ -1,8 +1,8 @@
function item_canuse(u, iname)
local race = u.race
if iname=="greatbow" then
-- only elves use greatbow
return race=="elf"
end
return true
end
function item_canuse(u, iname)
local race = u.race
if iname=="greatbow" then
-- only elves use greatbow
return race=="elf"
end
return true
end

View file

@ -1,62 +1,62 @@
local function tunnel_travelers(b)
local units = nil
for u in b.units do
if units==nil then
units = {}
end
units[u] = u
end
return units
end
targets = nil
ntargets = 0
local function get_target(param)
-- print("finding targets: " .. param)
if targets == nil then
targets = {}
local r
for r in regions() do
if r:get_key(param) then
if (r:get_flag(0)) then
r:set_flag(0, false)
end
if (r.terrain=="ocean") then
r = region.create(r.x, r.y, "plain")
end
targets[ntargets] = r
ntargets = ntargets + 1
-- print("target: " .. tostring(r))
end
end
end
if ntargets==0 then
return nil
end
local rn = math.mod(rng_int(), ntargets)
return targets[rn]
end
-- export, will be called from lc_age()
function tunnel_action(b, param)
local r = nil
if tonumber(param)~=nil then
r = get_region_by_id(tonumber(param))
end
local units = tunnel_travelers(b)
if units~=nil then
print("Tunnel from " .. tostring(b) .. " [" .. param .. "]")
for key, u in pairs(units) do
local rto = r
if r==nil then
rto = get_target(param)
end
if rto~=nil then
u.region = rto
print(" - teleported " .. tostring(u) .. " to " .. tostring(rto))
end
end
end
return 1 -- return 0 to destroy
end
local function tunnel_travelers(b)
local units = nil
for u in b.units do
if units==nil then
units = {}
end
units[u] = u
end
return units
end
targets = nil
ntargets = 0
local function get_target(param)
-- print("finding targets: " .. param)
if targets == nil then
targets = {}
local r
for r in regions() do
if r:get_key(param) then
if (r:get_flag(0)) then
r:set_flag(0, false)
end
if (r.terrain=="ocean") then
r = region.create(r.x, r.y, "plain")
end
targets[ntargets] = r
ntargets = ntargets + 1
-- print("target: " .. tostring(r))
end
end
end
if ntargets==0 then
return nil
end
local rn = math.mod(rng_int(), ntargets)
return targets[rn]
end
-- export, will be called from lc_age()
function tunnel_action(b, param)
local r = nil
if tonumber(param)~=nil then
r = get_region_by_id(tonumber(param))
end
local units = tunnel_travelers(b)
if units~=nil then
print("Tunnel from " .. tostring(b) .. " [" .. param .. "]")
for key, u in pairs(units) do
local rto = r
if r==nil then
rto = get_target(param)
end
if rto~=nil then
u.region = rto
print(" - teleported " .. tostring(u) .. " to " .. tostring(rto))
end
end
end
return 1 -- return 0 to destroy
end

View file

@ -1,47 +1,47 @@
-- this script contains the action functions for the two portals
-- used on the jadee/wildente wedding island. the two _action functions
-- are used as age() functions for a building_action with b:addaction("name")
if gate_travel==nil then
loadscript("gates.lua")
end
hellgate = nil
peacegate = nil
local function wedding_travellers(b)
local units = {}
for u in b.units do
if u:get_flag("wdgt") then
units[u] = u
end
end
return units
end
local function wedding_exchange(b1, b2)
local units1 = wedding_travellers(b1)
local units2 = wedding_travellers(b2)
gate_travel(b2, units1)
gate_travel(b1, units2)
end
function hellgate_action(b)
if hellgate == nil then
hellgate = b
else
wedding_exchange(hellgate, b)
end
return 1
end
function peacegate_action(b)
if peacegate == nil then
peacegate = b
else
wedding_exchange(peacegate, b)
end
return 1
end
-- this script contains the action functions for the two portals
-- used on the jadee/wildente wedding island. the two _action functions
-- are used as age() functions for a building_action with b:addaction("name")
if gate_travel==nil then
loadscript("gates.lua")
end
hellgate = nil
peacegate = nil
local function wedding_travellers(b)
local units = {}
for u in b.units do
if u:get_flag("wdgt") then
units[u] = u
end
end
return units
end
local function wedding_exchange(b1, b2)
local units1 = wedding_travellers(b1)
local units2 = wedding_travellers(b2)
gate_travel(b2, units1)
gate_travel(b1, units2)
end
function hellgate_action(b)
if hellgate == nil then
hellgate = b
else
wedding_exchange(hellgate, b)
end
return 1
end
function peacegate_action(b)
if peacegate == nil then
peacegate = b
else
wedding_exchange(peacegate, b)
end
return 1
end

View file

@ -1,25 +1,25 @@
function use_snowman(u, amount)
if u.region.terrain == "glacier" then
local man = add_unit(u.faction, u.region)
man.race = "snowman"
man.number = amount
u:add_item("snowman", -amount)
return 0
end
return -4
end
function xmas2004()
if get_gamename() == "Eressea" then
if not get_key("xm04") then
print("Es weihnachtet sehr (2004)")
set_key("xm04", true)
for f in factions() do
f:add_item("speedsail", 1)
f:add_notice("santa2004")
end
end
end
end
-- xmas2004()
function use_snowman(u, amount)
if u.region.terrain == "glacier" then
local man = add_unit(u.faction, u.region)
man.race = "snowman"
man.number = amount
u:add_item("snowman", -amount)
return 0
end
return -4
end
function xmas2004()
if get_gamename() == "Eressea" then
if not get_key("xm04") then
print("Es weihnachtet sehr (2004)")
set_key("xm04", true)
for f in factions() do
f:add_item("speedsail", 1)
f:add_notice("santa2004")
end
end
end
end
-- xmas2004()

View file

@ -1,31 +1,31 @@
function usepotion_message(u, potion)
msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", potion)
return msg
end
function use_stardust(u, amount)
local p = u.region:get_resource("peasant")
p = math.ceil(1.5 * p)
u.region:set_resource("peasant", p)
local msg = usepotion_message(u, "stardust")
msg:send_region(u.region)
u:use_pooled("stardust", amount)
return 0
end
function xmas2005()
if get_gamename() == "Eressea" then
if not get_flag("xm05") then
print("Es weihnachtet sehr (2005)")
set_flag("xm05", true)
for f in factions() do
f:add_item("stardust", 1)
f:add_notice("santa2005")
end
end
end
end
-- xmas2005()
function usepotion_message(u, potion)
msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", potion)
return msg
end
function use_stardust(u, amount)
local p = u.region:get_resource("peasant")
p = math.ceil(1.5 * p)
u.region:set_resource("peasant", p)
local msg = usepotion_message(u, "stardust")
msg:send_region(u.region)
u:use_pooled("stardust", amount)
return 0
end
function xmas2005()
if get_gamename() == "Eressea" then
if not get_flag("xm05") then
print("Es weihnachtet sehr (2005)")
set_flag("xm05", true)
for f in factions() do
f:add_item("stardust", 1)
f:add_notice("santa2005")
end
end
end
end
-- xmas2005()

View file

@ -1,54 +1,54 @@
function use_xmastree(u, amount)
u.region:set_key("xm06", true)
u:use_pooled("xmastree", amount)
local msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", "xmastree")
msg:send_region(u.region)
return 0
end
function update_xmas2006()
local turn = get_turn()
local season = get_season(turn)
if season == "calendar::winter" then
print("it is " .. season .. ", the christmas trees do their magic")
local msg = message.create("xmastree_effect")
for r in regions() do
if r:get_key("xm06") then
trees = r:get_resource("tree")
if trees*0.1>=1 then
r:set_resource("tree", trees * 1.1)
msg:send_region(r)
end
if clear then
end
end
end
else
local prevseason = get_season(turn-1)
if prevseason == "calendar::winter" then
-- we celebrate knut and kick out the trees.
for r in regions() do
if r:get_key("xm06") then
r:set_key("xm06", false)
end
end
end
end
end
function xmas2006()
if get_gamename() == "Eressea" then
if not get_key("xm06") then
print("Es weihnachtet sehr (2006)")
set_key("xm06", true)
for f in factions() do
f:add_item("xmastree", 1)
f:add_notice("santa2006")
end
end
end
end
-- xmas2006()
function use_xmastree(u, amount)
u.region:set_key("xm06", true)
u:use_pooled("xmastree", amount)
local msg = message.create("usepotion")
msg:set_unit("unit", u)
msg:set_resource("potion", "xmastree")
msg:send_region(u.region)
return 0
end
function update_xmas2006()
local turn = get_turn()
local season = get_season(turn)
if season == "calendar::winter" then
print("it is " .. season .. ", the christmas trees do their magic")
local msg = message.create("xmastree_effect")
for r in regions() do
if r:get_key("xm06") then
trees = r:get_resource("tree")
if trees*0.1>=1 then
r:set_resource("tree", trees * 1.1)
msg:send_region(r)
end
if clear then
end
end
end
else
local prevseason = get_season(turn-1)
if prevseason == "calendar::winter" then
-- we celebrate knut and kick out the trees.
for r in regions() do
if r:get_key("xm06") then
r:set_key("xm06", false)
end
end
end
end
end
function xmas2006()
if get_gamename() == "Eressea" then
if not get_key("xm06") then
print("Es weihnachtet sehr (2006)")
set_key("xm06", true)
for f in factions() do
f:add_item("xmastree", 1)
f:add_notice("santa2006")
end
end
end
end
-- xmas2006()

View file

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

File diff suppressed because it is too large Load diff

View file

@ -1,144 +1,144 @@
require "lunit"
module( "e2", package.seeall, lunit.testcase )
function setup()
free_game()
end
function test_rename()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r)
u:add_item("aoh", 1)
assert_equal(u:get_item("ao_healing"), 1)
end
function DISABLE_test_alp()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
local u2 = unit.create(f, r, 1)
u.race = "elf"
u:set_skill("magic", 10)
u:add_item("money", 3010)
u.magic = "illaun"
u.aura = 200
u.ship = s1
u:add_spell("summon_alp")
u:clear_orders()
u:add_order("ZAUBERE 'Alp' " .. itoa36(u2.id))
process_orders()
print(get_turn(), f)
write_reports()
end
function test_unit_limit_is_1500()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
for i = 1,1500 do
unit.create(f, r, 1)
end
local u = unit.create(f, r, 0)
u:add_item("money", 20000)
u:clear_orders()
u:add_order("REKRUTIEREN 1")
process_orders()
assert_equal(1, u.number)
end
function test_ship_capacity()
local r = region.create(0,0, "ocean")
region.create(1,0, "ocean")
local r2 = region.create(2,0, "ocean")
local f = faction.create("noreply@eressea.de", "human", "de")
-- u1 is at the limit and moves
local s1 = ship.create(r, "boat")
local u1 = unit.create(f, r, 5)
u1.ship = s1
u1:set_skill("sailing", 10)
u1:clear_orders()
u1:add_order("NACH O O")
-- u2 has too many people
local s2 = ship.create(r, "boat")
local u2 = unit.create(f, r, 6)
u2.ship = s2
u2:set_skill("sailing", 10)
u2:clear_orders()
u2:add_order("NACH O O")
-- u4 has too much stuff
local s4 = ship.create(r, "boat")
local u4 = unit.create(f, r, 5)
u4.ship = s4
u4:set_skill("sailing", 10)
u4:add_item("sword", 1)
u4:clear_orders()
u4:add_order("NACH O O")
process_orders()
-- print(s.region, u.region, r2)
assert_equal(r2.id, u1.region.id, "boat with 5 humans did not move")
assert_not_equal(r2.id, u2.region.id, "boat with too many people has moved")
assert_not_equal(r2.id, u4.region.id, "boat with too much cargo has moved")
end
function test_levitate()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 2)
local s = ship.create(r, "boat")
u.ship = s
u.age = 20
u:set_skill("sailing", 5)
u:add_item("money", 100)
u:clear_orders()
u:add_order("ARBEITE")
levitate_ship(u.ship, u, 2, 1)
assert_equal(32, u.ship.flags)
process_orders()
assert_equal(0, u.ship.flags)
end
function test_terrains()
local terrains = { "hell", "wall1", "corridor1" }
for k,v in ipairs(terrains) do
local r = region.create(k, k, v)
assert_not_equal(nil, r)
end
end
function test_races()
local races = { "wolf", "orc", "human", "demon" }
for k,v in ipairs(races) do
local f = faction.create("noreply@eressea.de", "human", "de")
assert_not_equal(nil, f)
end
end
function test_can_give_person()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
u2:clear_orders()
u2:add_order("GIB ".. itoa36(u1.id) .. " 1 PERSON")
u2:add_order("HELFE ".. itoa36(f1.id) .. " GIB")
u1:add_order("HELFE ".. itoa36(f2.id) .. " GIB")
u1:add_order("KONTAKTIERE ".. itoa36(u2.id))
process_orders()
assert_equal(9, u2.number)
assert_equal(11, u1.number)
end
function test_no_uruk()
local f1 = faction.create("noreply@eressea.de", "uruk", "de")
assert_equal(f1.race, "orc")
end
require "lunit"
module( "e2", package.seeall, lunit.testcase )
function setup()
free_game()
end
function test_rename()
local r = region.create(0, 0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r)
u:add_item("aoh", 1)
assert_equal(u:get_item("ao_healing"), 1)
end
function DISABLE_test_alp()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 1)
local u2 = unit.create(f, r, 1)
u.race = "elf"
u:set_skill("magic", 10)
u:add_item("money", 3010)
u.magic = "illaun"
u.aura = 200
u.ship = s1
u:add_spell("summon_alp")
u:clear_orders()
u:add_order("ZAUBERE 'Alp' " .. itoa36(u2.id))
process_orders()
print(get_turn(), f)
write_reports()
end
function test_unit_limit_is_1500()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
for i = 1,1500 do
unit.create(f, r, 1)
end
local u = unit.create(f, r, 0)
u:add_item("money", 20000)
u:clear_orders()
u:add_order("REKRUTIEREN 1")
process_orders()
assert_equal(1, u.number)
end
function test_ship_capacity()
local r = region.create(0,0, "ocean")
region.create(1,0, "ocean")
local r2 = region.create(2,0, "ocean")
local f = faction.create("noreply@eressea.de", "human", "de")
-- u1 is at the limit and moves
local s1 = ship.create(r, "boat")
local u1 = unit.create(f, r, 5)
u1.ship = s1
u1:set_skill("sailing", 10)
u1:clear_orders()
u1:add_order("NACH O O")
-- u2 has too many people
local s2 = ship.create(r, "boat")
local u2 = unit.create(f, r, 6)
u2.ship = s2
u2:set_skill("sailing", 10)
u2:clear_orders()
u2:add_order("NACH O O")
-- u4 has too much stuff
local s4 = ship.create(r, "boat")
local u4 = unit.create(f, r, 5)
u4.ship = s4
u4:set_skill("sailing", 10)
u4:add_item("sword", 1)
u4:clear_orders()
u4:add_order("NACH O O")
process_orders()
-- print(s.region, u.region, r2)
assert_equal(r2.id, u1.region.id, "boat with 5 humans did not move")
assert_not_equal(r2.id, u2.region.id, "boat with too many people has moved")
assert_not_equal(r2.id, u4.region.id, "boat with too much cargo has moved")
end
function test_levitate()
local r = region.create(0,0, "plain")
local f = faction.create("noreply@eressea.de", "human", "de")
local u = unit.create(f, r, 2)
local s = ship.create(r, "boat")
u.ship = s
u.age = 20
u:set_skill("sailing", 5)
u:add_item("money", 100)
u:clear_orders()
u:add_order("ARBEITE")
levitate_ship(u.ship, u, 2, 1)
assert_equal(32, u.ship.flags)
process_orders()
assert_equal(0, u.ship.flags)
end
function test_terrains()
local terrains = { "hell", "wall1", "corridor1" }
for k,v in ipairs(terrains) do
local r = region.create(k, k, v)
assert_not_equal(nil, r)
end
end
function test_races()
local races = { "wolf", "orc", "human", "demon" }
for k,v in ipairs(races) do
local f = faction.create("noreply@eressea.de", "human", "de")
assert_not_equal(nil, f)
end
end
function test_can_give_person()
local r = region.create(0, 0, "plain")
local f1 = faction.create("noreply@eressea.de", "human", "de")
local f2 = faction.create("noreply@eressea.de", "human", "de")
local u1 = unit.create(f1, r, 10)
local u2 = unit.create(f2, r, 10)
u1.faction.age = 10
u2.faction.age = 10
u1:add_item("money", 500)
u2:add_item("money", 500)
u2:clear_orders()
u2:add_order("GIB ".. itoa36(u1.id) .. " 1 PERSON")
u2:add_order("HELFE ".. itoa36(f1.id) .. " GIB")
u1:add_order("HELFE ".. itoa36(f2.id) .. " GIB")
u1:add_order("KONTAKTIERE ".. itoa36(u2.id))
process_orders()
assert_equal(9, u2.number)
assert_equal(11, u1.number)
end
function test_no_uruk()
local f1 = faction.create("noreply@eressea.de", "uruk", "de")
assert_equal(f1.race, "orc")
end

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