various configurations => rules

This commit is contained in:
Enno Rehling 2010-02-21 08:03:17 +00:00
parent 463d8c0283
commit 7b4b2ea4cf
19 changed files with 201 additions and 1612 deletions

View File

@ -1,6 +1,115 @@
#include <platform.h> #include <platform.h>
#include <util/log.h>
#include <kernel/eressea.h>
int eressea_init(void)
{
global.vm_state = lua_init();
kernel_init();
game_init();
return 0;
}
void eressea_done(void)
{
game_done();
kernel_done();
lua_done((lua_State *)global.vm_state);
log_close();
}
static int
log_lua_error(lua_State * L)
{
static int s_abort_on_errors = 0;
const char* error = lua_tostring(L, -1);
log_error(("A LUA error occurred: %s\n", error));
lua_pop(L, 1);
if (s_abort_on_errors) {
abort();
}
return 1;
}
int eressea_run(const char * luafile, const char * entry_point)
{
lua_State * L = (lua_State *)global.vm_state;
/* run the main script */
if (luafile) {
char buf[MAX_PATH];
strcpy(buf, luafile);
lua_getglobal(L, "dofile");
lua_pushstring(L, buf);
if (lua_pcall(L, 1, 0, 0) != 0) {
log_lua_error(L);
}
}
if (entry_point) {
lua_getglobal(L, entry_point);
if (lua_pcall(L, 0, 1, 0) != 0) {
log_lua_error(L);
}
} else {
lua_console(L);
}
return 0;
}
static void
load_inifile(const char * filename)
{
dictionary * d = iniparser_new(filename);
if (d) {
const char * str;
g_basedir = iniparser_getstring(d, "eressea:base", g_basedir);
lomem = iniparser_getint(d, "eressea:lomem", lomem)?1:0;
memdebug = iniparser_getint(d, "eressea:memcheck", memdebug);
str = iniparser_getstring(d, "eressea:encoding", NULL);
if (str) enc_gamedata = xmlParseCharEncoding(str);
verbosity = iniparser_getint(d, "eressea:verbose", 2);
sqlpatch = iniparser_getint(d, "eressea:sqlpatch", false);
battledebug = iniparser_getint(d, "eressea:debug", battledebug)?1:0;
entry_point = iniparser_getstring(d, "eressea:run", entry_point);
luafile = iniparser_getstring(d, "eressea:load", luafile);
g_reportdir = iniparser_getstring(d, "eressea:report", g_reportdir);
str = iniparser_getstring(d, "eressea:locales", "de,en");
make_locales(str);
/* only one value in the [editor] section */
force_color = iniparser_getint(d, "editor:color", force_color);
/* excerpt from [config] (the rest is used in bindings.c) */
game_name = iniparser_getstring(d, "config:game", game_name);
}
global.inifile = d;
}
int main(int argc, char ** argv) int main(int argc, char ** argv)
{ {
int err;
load_inifile("eressea.ini");
err = eressea_init();
if (err) {
log_error(("initialization failed with code %d\n", err));
return err;
}
err = eressea_run(luafile);
if (err) {
log_error(("server execution failed with code %d\n", err));
return err;
}
eressea_done();
return 0; return 0;
} }

View File

@ -3214,48 +3214,47 @@ ageing(void)
static int static int
maxunits(const faction *f) maxunits(const faction *f)
{ {
if (global.unitsperalliance == true) { int flimit = rule_faction_limit();
float mult = 1.0; int alimit = rule_alliance_limit();
if (alimit==0) {
#if KARMA_MODULE return flimit;
faction *f2;
for (f2 = factions; f2; f2 = f2->next) {
if (f2->alliance == f->alliance) {
mult += 0.4f * fspecial(f2, FS_ADMINISTRATOR);
}
}
#endif /* KARMA_MODULE */
return (int) (global.maxunits * mult);
} }
#if KARMA_MODULE if (flimit==0) {
return (int) (global.maxunits * (1 + 0.4 * fspecial(f, FS_ADMINISTRATOR))); return alimit;
#else }
return global.maxunits; return MIN(alimit, flimit);
#endif /* KARMA_MODULE */
} }
static boolean static int
checkunitnumber(const faction *f, int add) checkunitnumber(const faction *f, int add)
{ {
if (global.maxunits==0) return true; int alimit, flimit;
if (global.unitsperalliance == true) {
alimit = rule_alliance_limit();
if (alimit) {
/* if unitsperalliance is true, maxunits returns the /* if unitsperalliance is true, maxunits returns the
number of units allowed in an alliance */ number of units allowed in an alliance */
faction *f2; faction *f2;
int unitsinalliance = add; int unitsinalliance = add;
int maxu = maxunits(f);
for (f2 = factions; f2; f2 = f2->next) { for (f2 = factions; f2; f2 = f2->next) {
if (f->alliance == f2->alliance) { if (f->alliance == f2->alliance) {
unitsinalliance += f2->no_units; unitsinalliance += f2->no_units;
} }
if (unitsinalliance > maxu) return false; if (unitsinalliance > alimit) {
return 1;
}
} }
return true;
} }
return (f->no_units + add < maxunits(f)); flimit = rule_alliance_limit();
if (flimit) {
if (f->no_units + add < flimit) {
return 2;
}
}
return 0;
} }
static void static void
@ -3282,9 +3281,10 @@ new_units (void)
int alias; int alias;
ship * sh; ship * sh;
order ** newordersp; order ** newordersp;
int err = checkunitnumber(u->faction, 1);
if (!checkunitnumber(u->faction, 1)) { if (err) {
if (global.unitsperalliance) { if (err==1) {
ADDMSG(&u->faction->msgs, msg_feedback(u, makeord, ADDMSG(&u->faction->msgs, msg_feedback(u, makeord,
"too_many_units_in_alliance", "allowed", maxunits(u->faction))); "too_many_units_in_alliance", "allowed", maxunits(u->faction)));
} else { } else {

View File

@ -587,7 +587,7 @@ skill_limit(faction * f, skill_t sk)
return m; return m;
} }
char * g_basedir; const char * g_basedir;
const char * const char *
basepath(void) basepath(void)
@ -2703,6 +2703,7 @@ int rule_stealth_faction(void)
static int rule = -1; static int rule = -1;
if (rule<0) { if (rule<0) {
rule = get_param_int(global.parameters, "rules.stealth.faction", 1); rule = get_param_int(global.parameters, "rules.stealth.faction", 1);
assert(rule>=0);
} }
return rule; return rule;
} }
@ -2712,6 +2713,7 @@ int rule_region_owners(void)
static int rule_owners = -1; static int rule_owners = -1;
if (rule_owners<0) { if (rule_owners<0) {
rule_owners = get_param_int(global.parameters, "rules.region_owners", 0); rule_owners = get_param_int(global.parameters, "rules.region_owners", 0);
assert(rule>=0);
} }
return rule_owners; return rule_owners;
} }
@ -2721,6 +2723,7 @@ int rule_auto_taxation(void)
static int rule_taxation = -1; static int rule_taxation = -1;
if (rule_taxation<0) { if (rule_taxation<0) {
rule_taxation = get_param_int(global.parameters, "rules.economy.taxation", TAX_ORDER); rule_taxation = get_param_int(global.parameters, "rules.economy.taxation", TAX_ORDER);
assert(rule>=0);
} }
return rule_taxation; return rule_taxation;
} }
@ -2730,6 +2733,27 @@ int rule_blessed_harvest(void)
static int rule = -1; static int rule = -1;
if (rule<0) { if (rule<0) {
rule = get_param_int(global.parameters, "rules.magic.blessed_harvest", HARVEST_WORK); rule = get_param_int(global.parameters, "rules.magic.blessed_harvest", HARVEST_WORK);
assert(rule>=0);
}
return rule;
}
int rule_alliance_limit(void)
{
static int rule = -1;
if (rule<0) {
rule = get_param_int(global.parameters, "rules.limit.alliance", 0);
assert(rule>=0);
}
return rule;
}
int rule_faction_limit(void)
{
static int rule = -1;
if (rule<0) {
rule = get_param_int(global.parameters, "rules.limit.faction", 0);
assert(rule>=0);
} }
return rule; return rule;
} }

View File

@ -258,6 +258,9 @@ int rule_stealth_faction(void);
#define HARVEST_WORK 0x00 #define HARVEST_WORK 0x00
#define HARVEST_TAXES 0x01 #define HARVEST_TAXES 0x01
int rule_blessed_harvest(void); int rule_blessed_harvest(void);
extern int rule_give(void);
extern int rule_alliance_limit(void);
extern int rule_faction_limit(void);
extern int count_all(const struct faction * f); extern int count_all(const struct faction * f);
extern int count_migrants (const struct faction * f); extern int count_migrants (const struct faction * f);
@ -376,8 +379,6 @@ extern const struct race * new_race[];
/* globale settings des Spieles */ /* globale settings des Spieles */
typedef struct settings { typedef struct settings {
const char *gamename; const char *gamename;
boolean unitsperalliance;
unsigned int maxunits;
struct attrib *attribs; struct attrib *attribs;
unsigned int data_turn; unsigned int data_turn;
boolean disabled[MAXKEYWORDS]; boolean disabled[MAXKEYWORDS];
@ -426,8 +427,6 @@ typedef struct helpmode {
extern struct helpmode helpmodes[]; extern struct helpmode helpmodes[];
extern int rule_give(void);
#define GIVE_SELF 1 #define GIVE_SELF 1
#define GIVE_PEASANTS 2 #define GIVE_PEASANTS 2
#define GIVE_LUXURIES 4 #define GIVE_LUXURIES 4

View File

@ -2088,9 +2088,7 @@ parse_main(xmlDocPtr doc)
if (nodes->nodeNr>0) { if (nodes->nodeNr>0) {
xmlNodePtr node = nodes->nodeTab[0]; xmlNodePtr node = nodes->nodeTab[0];
global.unitsperalliance = xml_bvalue(node, "unitsperalliance", false);
global.producexpchance = (float)xml_fvalue(node, "learningbydoing", 1.0/3); global.producexpchance = (float)xml_fvalue(node, "learningbydoing", 1.0/3);
global.maxunits = xml_ivalue(node, "units", INT_MAX);
propValue = xmlGetProp(node, BAD_CAST "name"); propValue = xmlGetProp(node, BAD_CAST "name");
if (propValue!=NULL) { if (propValue!=NULL) {

View File

@ -406,6 +406,11 @@ read_args(int argc, char **argv, lua_State * luaState)
nocr = true; nocr = true;
nocr = true; nocr = true;
} }
else if (strcmp(argv[i]+2, "version")==0) {
printf("\n%s PBEM host\n"
"Copyright (C) 1996-2005 C. Schlittchen, K. Zedel, E. Rehling, H. Peters.\n\n"
"Compilation: " __DATE__ " at " __TIME__ "\nVersion: %f\n\n", global.gamename, version());
}
else if (strcmp(argv[i]+2, "xml")==0) game_name = argv[++i]; else if (strcmp(argv[i]+2, "xml")==0) game_name = argv[++i];
else if (strcmp(argv[i]+2, "ignore-errors")==0) g_ignore_errors = true; else if (strcmp(argv[i]+2, "ignore-errors")==0) g_ignore_errors = true;
else if (strcmp(argv[i]+2, "nonr")==0) nonr = true; else if (strcmp(argv[i]+2, "nonr")==0) nonr = true;
@ -594,33 +599,36 @@ write_skills(void)
fclose(F); fclose(F);
} }
void locale_init(void)
{
char * lc_ctype;
char * lc_numeric;
lc_ctype = setlocale(LC_CTYPE, "");
lc_numeric = setlocale(LC_NUMERIC, "C");
assert(towlower(0xC4)==0xE4); /* &Auml; => &auml; */
if (lc_ctype) {
lc_ctype = strdup(lc_ctype);
}
if (lc_numeric) {
lc_numeric = strdup(lc_numeric);
}
}
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
int i; int i;
char * lc_ctype;
char * lc_numeric;
lua_State * L; lua_State * L;
static int write_csv = 0; static int write_csv = 0;
setup_signal_handler(); setup_signal_handler();
log_open("eressea.log"); log_open("eressea.log");
locale_init();
lc_ctype = setlocale(LC_CTYPE, "");
lc_numeric = setlocale(LC_NUMERIC, "C");
assert(towlower(0xC4)==0xE4);
if (lc_ctype) lc_ctype = strdup(lc_ctype);
if (lc_numeric) lc_numeric = strdup(lc_numeric);
load_inifile("eressea.ini"); load_inifile("eressea.ini");
L = lua_init(); L = lua_init();
global.vm_state = L; global.vm_state = L;
if (verbosity>=4) {
printf("\n%s PBEM host\n"
"Copyright (C) 1996-2005 C. Schlittchen, K. Zedel, E. Rehling, H. Peters.\n\n"
"Compilation: " __DATE__ " at " __TIME__ "\nVersion: %f\n\n", global.gamename, version());
}
if ((i=read_args(argc, argv, L))!=0) return i; if ((i=read_args(argc, argv, L))!=0) return i;
#ifdef CRTDBG #ifdef CRTDBG

View File

@ -1,25 +0,0 @@
<eressea>
<include href="messages.xml" />
<comment>Localization</comment>
<include href="de/strings.xml" />
<include href="en/strings.xml" />
<include href="races.xml" />
<include href="ships.xml" />
<include href="buildings.xml" />
<include href="common/items.xml" />
<include href="common/armor.xml" />
<include href="common/weapons.xml" />
<include href="common/resources.xml" />
<include href="common/luxuries.xml" />
<include href="common/potions.xml" />
<game name="Kreis der Macht" units="250" welcome="vinyambar">
<comment>Game specific</comment>
<order name="ARBEITEN" disable></order>
</game>
<include href="vinyambar/de/strings.xml" />
<include href="vinyambar/conquest.xml" />
</eressea>

View File

@ -56,7 +56,7 @@
<xi:include href="names-ghouls.xml"/> <xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/> <xi:include href="names-dragons.xml"/>
<game name="E3" units="250"> <game name="E3">
<!-- Game specific settings --> <!-- Game specific settings -->
<param name="database.gameid" value="7"></param> <param name="database.gameid" value="7"></param>
@ -170,13 +170,14 @@
<param name="rules.economy.roqf" value="5"/> <param name="rules.economy.roqf" value="5"/>
<param name="rules.economy.herbrot" value="0"/> <param name="rules.economy.herbrot" value="0"/>
<param name="rules.nmr.destroy" 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.give" value="15"/ --> <!-- self + peasants + herbs + lux - goods -->
<param name="rules.economy.grow" value="1"/> <param name="rules.economy.grow" value="1"/>
<param name="rules.tactics.formula" value="1"/> <!-- 10% per skilldiff --> <param name="rules.tactics.formula" value="1"/> <!-- 10% per skilldiff -->
<param name="rules.help.mask" value="fight guard money give"/> <param name="rules.help.mask" value="fight guard money give"/>
<param name="movement.shipspeed.skillbonus" value="6"/> <param name="movement.shipspeed.skillbonus" value="6"/>
<param name="alliance.auto" value="fight"/> <param name="alliance.auto" value="fight"/>
<param name="alliance.restricted" value="fight"/> <param name="alliance.restricted" value="fight"/>
</game> </game>
<rules> <rules>
<function name="wage" value="minimum_wage"/> <function name="wage" value="minimum_wage"/>

View File

@ -46,7 +46,7 @@
<xi:include href="names-ghouls.xml"/> <xi:include href="names-ghouls.xml"/>
<xi:include href="names-dragons.xml"/> <xi:include href="names-dragons.xml"/>
<game name="Eressea" units="1500"> <game name="Eressea">
<!-- Game specific settings --> <!-- Game specific settings -->
<order name="BEZAHLEN" disable="yes"/> <order name="BEZAHLEN" disable="yes"/>
@ -97,6 +97,7 @@
<param name="hunger.long" value="1"/> <param name="hunger.long" value="1"/>
<param name="init_spells" value="0"/> <param name="init_spells" value="0"/>
<param name="rules.check_overload" value="0"/> <param name="rules.check_overload" value="0"/>
<param name="rules.limit.faction" value="1500"/>
</game> </game>
<xi:include href="eressea/strings.xml"/> <xi:include href="eressea/strings.xml"/>
<xi:include href="eressea/races.xml"/> <xi:include href="eressea/races.xml"/>

View File

@ -1,136 +0,0 @@
<?xml version="1.0"?>
<eressea xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="messages.xml"/>
<!-- Localization -->
<xi:include href="de/strings.xml"/>
<xi:include href="en/strings.xml"/>
<xi:include href="common/armor.xml" />
<xi:include href="common/items.xml" />
<xi:include href="common/luxuries.xml" />
<xi:include href="common/potions.xml" />
<xi:include href="common/resources.xml" />
<xi:include href="eressea2/equipment.xml"/>
<xi:include href="eressea2/races.xml"/>
<xi:include href="eressea2/spells.xml"/>
<xi:include href="eressea2/terrains.xml"/>
<xi:include href="eressea2/weapons.xml" />
<xi:include href="spoils.xml"/>
<xi:include href="prefixes.xml"/>
<xi:include href="ships.xml"/>
<xi:include href="common/buildings.xml"/>
<xi:include href="eressea/calendar.xml"/>
<xi:include href="equipment.xml"/>
<xi:include href="dungeons.xml"/>
<xi:include href="directions.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" units="1000">
<!-- Game specific settings -->
<order name="ARBEITEN" disable="yes"/>
<order name="BETEN" disable="yes"/>
<order name="FRIEDEN" disable="yes"/>
<order name="GM" disable="yes"/>
<order name="JIHAD" disable="yes"/>
<order name="KRIEG" 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="alchemy" enable="true"/>
<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="herbalism" 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="trade" enable="true"/>
<skill name="training" enable="true"/>
<skill name="unarmed" enable="true"/>
<skill name="weaponsmithing" enable="true"/>
<param name="hunger.long" value="1"/>
<param name="init_spells" value="0"/>
<param name="modules.astralspace" value="0"/>
<param name="modules.wormholes" value="0"/>
<param name="rules.check_overload" value="0"/>
<param name="rules.combat.skill_formula" value="1"/>
<param name="rules.combat.critical" value="0"/>
<param name="rules.combat.melee_bonus" value="0"/>
<param name="rules.combat.missile_bonus" value="0"/>
<param name="rules.combat.skill_bonus" value="0"/>
<param name="rules.combat.turns" value="1"/>
<param name="rules.combat.unarmed_bonus" value="0"/>
<param name="rules.combat.populationdamage" value="0"/>
<param name="rules.economy.taxation" value="1"/>
<param name="rules.give" value="3"/> <!-- only self + peasants -->
<param name="rules.stamina" value="0"/> <!-- does not affect hp -->
<param name="skill.maxlevel" value="10"/>
</game>
<xi:include href="eressea/strings.xml"/>
<xi:include href="eressea/races.xml"/>
<xi:include href="eressea/items.xml"/>
<xi:include href="eressea/artrewards.xml"/>
<xi:include href="eressea/dungeons.xml"/>
<xi:include href="eressea/buildings.xml"/>
<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,38 +0,0 @@
<?xml version="1.0"?>
<equipment>
<set name="t1_t0_sword">
<skill name="melee" level="1"/>
<skill name="magic" level="1"/>
<item name="sword" amount="1"/>
</set>
<set name="t1_t1_sword">
<skill name="melee" level="1"/>
<skill name="stamina" level="1"/>
<skill name="magic" level="1"/>
<item name="sword" amount="1"/>
</set>
<set name="t5_t0_sword">
<skill name="melee" level="5"/>
<skill name="magic" level="1"/>
<item name="sword" amount="1"/>
</set>
<set name="t5_t5_sword">
<skill name="melee" level="5"/>
<skill name="stamina" level="5"/>
<skill name="magic" level="1"/>
<item name="sword" amount="1"/>
</set>
<set name="t5_t5_sword_plate">
<skill name="melee" level="5"/>
<skill name="stamina" level="5"/>
<skill name="magic" level="1"/>
<item name="sword" amount="1"/>
<item name="plate" amount="1"/>
</set>
</equipment>

View File

@ -1,297 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<races>
<!-- races for shadowcall: shadowbat, nightmare, vampunicorn -->
<race name="shadowbat" magres="0.800000" maxaura="0.000000" regaura="0.000000" recruitcost="500" weight="500" capacity="540" speed="1.000000" hp="1" ac="4" damage="2d4" unarmedattack="0" unarmeddefense="0" attackmodifier="3" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes">
<ai splitsize="5000" killpeasants="yes"/>
<function name="name" value="namegeneric"/>
<attack type="4" damage="1d6"/>
<attack type="3" damage="1d1"/>
</race>
<race name="nightmare" magres="0.500000" maxaura="0.000000" regaura="0.000000" recruitcost="500" weight="100" capacity="540" speed="1.000000" hp="80" ac="10" damage="2d4" unarmedattack="0" unarmeddefense="0" attackmodifier="3" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" invinciblenonmagic="yes">
<ai splitsize="500" killpeasants="yes"/>
<function name="name" value="namegeneric"/>
<attack type="4" damage="1d4"/>
<attack type="4" damage="1d4"/>
<attack type="4" damage="1d4"/>
<attack type="3" damage="1d4"/>
<attack type="2" damage="1d10"/>
</race>
<race name="vampunicorn" magres="1.000000" maxaura="0.000000" regaura="0.000000" recruitcost="500" weight="5000" capacity="2000" speed="1.000000" hp="30" ac="4" damage="2d4" unarmedattack="0" unarmeddefense="0" attackmodifier="3" defensemodifier="3" scarepeasants="yes" walk="yes" teach="no" getitem="yes">
<ai splitsize="5000" killpeasants="yes"/>
<function name="name" value="namegeneric"/>
<attack type="4" damage="2d10"/>
<attack type="3" damage="1d4"/>
<attack type="3" damage="1d4"/>
<attack type="3" damage="1d4"/>
<attack type="3" damage="1d4"/>
<attack type="2" damage="2d60"/>
</race>
<!-- races used by spells and magic -->
<race name="toad" magres="0.200000" maxaura="1.000000" regaura="1.000000" recruitcost="50" maintenance="10" weight="100" capacity="540" speed="1.000000" hp="10" damage="1d2" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" walk="yes">
<ai splitsize="1" learn="yes"/>
<skill name="crossbow" modifier="-10"/>
<skill name="mining" modifier="-10"/>
<skill name="bow" modifier="-10"/>
<skill name="building" modifier="-10"/>
<skill name="trade" modifier="-10"/>
<skill name="forestry" modifier="-10"/>
<skill name="catapult" modifier="-10"/>
<skill name="training" modifier="-10"/>
<skill name="riding" modifier="-10"/>
<skill name="armorer" modifier="-10"/>
<skill name="shipcraft" modifier="-10"/>
<skill name="melee" modifier="-10"/>
<skill name="sailing" modifier="-10"/>
<skill name="polearm" modifier="-10"/>
<skill name="quarrying" modifier="-10"/>
<skill name="roadwork" modifier="-10"/>
<skill name="tactics" modifier="-10"/>
<skill name="weaponsmithing" modifier="-10"/>
<skill name="cartmaking" modifier="-10"/>
<skill name="stamina" modifier="-10"/>
<attack type="4" damage="1d2"/>
</race>
<race name="alp" magres="0.950000" maxaura="1.000000" regaura="1.000000" recruitcost="50000" weight="0" capacity="0" speed="1.500000" hp="20" ac="2" damage="1d4" unarmedattack="0" unarmeddefense="0" attackmodifier="2" defensemodifier="20" fly="yes" walk="yes" canlearn="no" canteach="no">
<ai splitsize="1"/>
<function name="name" value="namegeneric"/>
<attack type="1" damage="1d4"/>
</race>
<race name="mountainguard" unarmedguard="yes" magres="0.500000" maxaura="1.000000" regaura="0.500000" recruitcost="50000" weight="10000" capacity="2000" speed="0.000000" hp="1000" ac="12" damage="2d40" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="8" cannotmove="yes" canlearn="no" teach="no" noweapons="yes" giveitem="yes">
<ai splitsize="1"/>
<function name="name" value="namegeneric"/>
<attack type="4" damage="2d40"/>
</race>
<race name="shadowmaster" cansail="no" cansteal="no" canlearn="no" magres="0.750000" maxaura="1.000000" regaura="2.000000" recruitcost="50000" weight="500" capacity="540" speed="1.000000" hp="150" ac="4" damage="2d5" unarmedattack="0" unarmeddefense="0" attackmodifier="11" defensemodifier="13" scarepeasants="yes" walk="yes" teach="no" desert="yes">
<ai splitsize="50" killpeasants="yes" moverandom="yes" learn="yes"/>
<function name="name" value="namegeneric"/>
<attack type="4" damage="2d4"/>
<attack type="2" damage="2d30"/>
<attack type="3" damage="1d2"/>
</race>
<race name="stonegolem" magres="0.250000" maxaura="1.000000" regaura="0.100000" recruitcost="5000" weight="10000" capacity="2000" speed="1.000000" hp="60" ac="4" damage="2d12+6" unarmedattack="0" unarmeddefense="0" attackmodifier="4" defensemodifier="2" walk="yes" canlearn="no" teach="no" giveitem="yes">
<ai splitsize="50"/>
<skill name="building" modifier="14"/>
<skill name="roadwork" modifier="14"/>
<attack type="4" damage="2d10+4"/>
</race>
<race name="irongolem" magres="0.250000" maxaura="1.000000" regaura="0.100000" recruitcost="5000" weight="10000" capacity="2000" speed="1.000000" hp="50" ac="2" damage="2d10+4" unarmedattack="0" unarmeddefense="0" attackmodifier="4" defensemodifier="2" walk="yes" canlearn="no" teach="no" giveitem="yes">
<ai splitsize="50"/>
<function name="name" value="namegeneric"/>
<skill name="armorer" modifier="14"/>
<skill name="weaponsmithing" modifier="14"/>
<attack type="4" damage="2d8+4"/>
</race>
<race name="spell" magres="0.000000" maxaura="1.000000" regaura="0.100000" recruitcost="0" weight="0" capacity="0" speed="0.000000" hp="1" damage="1d4" unarmedattack="-2" unarmeddefense="-2" canlearn="no" noheal="yes" noweapons="yes" illusionary="yes" invisible="yes" fly="yes" swim="yes" walk="yes">
<ai splitsize="1"/>
<attack type="1" damage="1d4"/>
</race>
<!-- races for player factions -->
<race name="aquarian" magres="0.000000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" coastal="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"/>
<skill name="mining" modifier="-2"/>
<skill name="building" modifier="-1"/>
<skill name="trade" modifier="2"/>
<skill name="armorer" modifier="-1"/>
<skill name="shipcraft" modifier="3"/>
<skill name="sailing" modifier="3"/>
<skill name="roadwork" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="cat" magres="0.000000" maxaura="1.000000" regaura="1.000000" recruitcost="90" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" defensemodifier="1" 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"/>
<skill name="mining" modifier="-2"/>
<skill name="building" modifier="-1"/>
<skill name="catapult" modifier="-1"/>
<skill name="armorer" modifier="-1"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="sailing" modifier="-2"/>
<skill name="quarrying" modifier="-1"/>
<skill name="roadwork" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="halfling" magres="0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="crossbow" modifier="1"/>
<skill name="mining" modifier="1"/>
<skill name="bow" modifier="-1"/>
<skill name="building" modifier="1"/>
<skill name="trade" modifier="2"/>
<skill name="catapult" modifier="-1"/>
<skill name="training" modifier="-1"/>
<skill name="riding" modifier="-1"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="melee" modifier="-1"/>
<skill name="sailing" modifier="-2"/>
<skill name="polearm" modifier="-1"/>
<skill name="roadwork" modifier="1"/>
<skill name="cartmaking" modifier="2"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="insect" magres="0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="crossbow" modifier="1"/>
<skill name="mining" modifier="1"/>
<skill name="bow" modifier="-2"/>
<skill name="building" modifier="2"/>
<skill name="trade" modifier="-1"/>
<skill name="forestry" modifier="1"/>
<skill name="training" modifier="-3"/>
<skill name="riding" modifier="-3"/>
<skill name="armorer" modifier="2"/>
<skill name="melee" modifier="-1"/>
<skill name="polearm" modifier="1"/>
<skill name="roadwork" modifier="-1"/>
<skill name="tactics" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="demon" magres="0.150000" maxaura="1.000000" regaura="1.250000" recruitcost="150" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="50" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" shapeshift="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" recruitethereal="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="initfamiliar" value="oldfamiliars"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="trade" modifier="-3"/>
<skill name="forestry" modifier="1"/>
<skill name="training" modifier="-3"/>
<skill name="riding" modifier="-1"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="melee" modifier="1"/>
<skill name="sailing" modifier="-1"/>
<skill name="polearm" modifier="1"/>
<skill name="tactics" modifier="-1"/>
<skill name="weaponsmithing" modifier="1"/>
<skill name="cartmaking" modifier="-2"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
<attack type="5"/>
</race>
<race name="troll" magres="0.100000" maxaura="1.000000" regaura="1.000000" recruitcost="90" maintenance="10" weight="2000" capacity="1080" speed="1.000000" hp="30" ac="1" damage="1d5+3" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="mining" modifier="2"/>
<skill name="bow" modifier="-2"/>
<skill name="building" modifier="2"/>
<skill name="catapult" modifier="2"/>
<skill name="training" modifier="-1"/>
<skill name="riding" modifier="-2"/>
<skill name="armorer" modifier="2"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="melee" modifier="1"/>
<skill name="sailing" modifier="-1"/>
<skill name="quarrying" modifier="2"/>
<skill name="roadwork" modifier="2"/>
<skill name="tactics" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5+3"/>
</race>
<race name="human" magres="0.000000" maxaura="1.000000" regaura="1.000000" recruitcost="75" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="20" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="trade" modifier="1"/>
<skill name="shipcraft" modifier="1"/>
<skill name="sailing" modifier="1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="600" capacity="440" speed="1.000000" hp="16" damage="1d5" unarmedattack="-2" unarmeddefense="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="initfamiliar" value="oldfamiliars"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="mining" modifier="1"/>
<skill name="building" modifier="1"/>
<skill name="trade" modifier="-1"/>
<skill name="catapult" modifier="1"/>
<skill name="shipcraft" modifier="-2"/>
<skill name="sailing" modifier="-2"/>
<skill name="roadwork" modifier="-2"/>
<skill name="tactics" modifier="-2"/>
<skill name="cartmaking" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="uruk" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="70" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<skill name="alchemy" modifier="1"/>
<skill name="mining" modifier="1"/>
<skill name="building" modifier="1"/>
<skill name="trade" modifier="-3"/>
<skill name="forestry" modifier="1"/>
<skill name="herbalism" modifier="-2"/>
<skill name="magic" modifier="-1"/>
<skill name="training" modifier="-1"/>
<skill name="armorer" modifier="1"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="sailing" modifier="-1"/>
<skill name="quarrying" modifier="1"/>
<skill name="tactics" modifier="1"/>
<skill name="weaponsmithing" modifier="2"/>
<skill name="cartmaking" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="elf" magres="0.100000" maxaura="1.000000" regaura="1.250000" recruitcost="130" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="mining" modifier="-2"/>
<skill name="bow" modifier="2"/>
<skill name="building" modifier="-1"/>
<skill name="catapult" modifier="-2"/>
<skill name="training" modifier="1"/>
<skill name="armorer" modifier="-1"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="sailing" modifier="-1"/>
<skill name="quarrying" modifier="-1"/>
<skill name="roadwork" modifier="-1"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="110" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" damage="1d5" unarmedattack="-2" unarmeddefense="-2" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
<ai splitsize="10000" moverandom="yes" learn="yes"/>
<function name="itemdrop" value="defaultdrops"/>
<skill name="mining" modifier="2"/>
<skill name="bow" modifier="-1"/>
<skill name="building" modifier="2"/>
<skill name="trade" modifier="1"/>
<skill name="forestry" modifier="-1"/>
<skill name="catapult" modifier="2"/>
<skill name="training" modifier="-2"/>
<skill name="riding" modifier="-2"/>
<skill name="armorer" modifier="2"/>
<skill name="shipcraft" modifier="-1"/>
<skill name="melee" modifier="1"/>
<skill name="sailing" modifier="-2"/>
<skill name="quarrying" modifier="2"/>
<skill name="roadwork" modifier="2"/>
<skill name="weaponsmithing" modifier="2"/>
<skill name="unarmed" modifier="-99"/>
<attack type="1" damage="1d5"/>
</race>
</races>

View File

@ -1,699 +0,0 @@
<?xml version="1.0"?>
<spells>
<!-- draig spells -->
<spell name="create_roi" type="draig" ship="true" rank="5" level="6" index="130">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="earn_silver#draig" type="draig" ship="true" variable="true" rank="5" level="1" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_aots" type="draig" ship="true" rank="5" level="6" index="125">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_firesword" type="draig" ship="true" rank="5" level="12" index="148">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="p10" amount="1" cost="fixed"/>
<resource name="sword" amount="1" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_trollbelt" type="draig" ship="true" rank="5" level="9" index="48">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<!-- gwyrrd spells -->
<spell name="create_roi" type="gwyrrd" ship="true" rank="5" level="6" index="129">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="earn_silver#gwyrrd" type="gwyrrd" ship="true" variable="true" rank="5" level="1" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_aots" type="gwyrrd" ship="true" rank="5" level="6" index="124">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_magicherbbag" type="gwyrrd" ship="true" rank="5" level="5" index="165">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<!-- illaun spells -->
<spell name="create_roi" type="illaun" ship="true" rank="5" level="6" index="131">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="earn_silver#illaun" type="illaun" ship="true" variable="true" rank="5" level="1" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_aots" type="illaun" ship="true" rank="5" level="6" index="126">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_dreameye" type="illaun" ship="true" rank="5" level="14" index="149">
<function name="cast" value="lua_castspell"/>
<resource name="dragonhead" amount="1" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="create_invisibility_sphere" type="illaun" ship="true" rank="5" level="13" index="178">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="150" cost="fixed"/>
<resource name="money" amount="30000" cost="fixed"/>
<resource name="permaura" amount="3" cost="fixed"/>
</spell>
<!-- cerddor spells -->
<spell name="create_roi" type="cerddor" ship="true" rank="5" level="6" index="132">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="earn_silver#cerddor" type="cerddor" ship="true" variable="true" rank="5" level="1" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_aots" type="cerddor" ship="true" rank="5" level="6" index="127">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_roqf" type="cerddor" ship="true" rank="5" level="11" index="63">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="20" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="blabbermouth" parameters="u" type="cerddor" los="true" rank="5" level="4" index="115">
<function name="cast" value="cast_babbler"/>
<resource name="aura" amount="10" cost="fixed"/>
<!-- missing syntactical info: ONETARGET | UNITSPELL -->
</spell>
<spell name="readmind" parameters="u" type="illaun" rank="5" level="7" index="114">
<function name="cast" value="cast_readmind"/>
<resource name="aura" amount="20" cost="fixed"/>
<!-- missing syntactical info: ONETARGET | UNITSPELL -->
</spell>
<!-- tybied spells -->
<spell name="create_roi" type="tybied" ship="true" rank="5" level="6" index="133">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="earn_silver#tybied" type="tybied" ship="true" variable="true" rank="5" level="1" index="159">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="create_aots" type="tybied" ship="true" rank="5" level="6" index="128">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_antimagic" type="tybied" ship="true" rank="5" level="7" index="38">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_rop" type="tybied" ship="true" rank="5" level="9" index="1">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="4000" cost="fixed"/>
</spell>
<spell name="create_bagofholding" type="tybied" ship="true" rank="5" level="10" index="155">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="30" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="5000" cost="fixed"/>
</spell>
<!-- gray magic -->
<spell name="create_runesword" type="gray" ship="true" rank="5" level="6" index="135">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="1000" cost="fixed"/>
<resource name="laensword" amount="1" cost="fixed"/>
</spell>
<spell name="create_chastitybelt" type="gray" ship="true" rank="5" level="7" index="134">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="50" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="money" amount="3000" cost="fixed"/>
</spell>
<spell name="create_focus" type="gray" ship="true" rank="5" level="9" index="2">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="create_ror" type="gray" ship="true" rank="5" level="9" index="3">
<function name="cast" value="lua_castspell"/>
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="fireball" type="draig" rank="5" level="2" index="4" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="hail" type="gwyrrd" rank="5" level="3" index="5" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="rustweapon" type="gwyrrd" rank="5" level="3" index="6" parameters="u+" los="true" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="combatrust" type="draig" rank="5" level="6" index="7" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="treegrow" type="gwyrrd" rank="5" level="2" index="8" far="true" variable="true">
<resource name="aura" amount="4" cost="level"/>
<resource name="log" amount="1" cost="level"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<spell name="healing" type="gwyrrd" rank="5" level="5" index="9" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="song_of_healing" type="cerddor" rank="5" level="2" index="10" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="bad_dreams" type="illaun" rank="5" level="10" index="11" far="true">
<resource name="aura" amount="90" cost="fixed"/>
</spell>
<spell name="gooddreams" type="illaun" rank="5" level="8" index="12" far="true">
<resource name="aura" amount="80" cost="fixed"/>
</spell>
<spell name="dreamreading" type="illaun" rank="5" level="4" index="13" parameters="u" far="true">
<resource name="aura" amount="8" cost="fixed"/>
</spell>
<spell name="tiredsoldiers" type="illaun" rank="5" level="4" index="15" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="plague" type="draig" rank="5" level="7" index="16" far="true">
<resource name="aura" amount="30" cost="fixed"/>
<resource name="peasant" amount="50" cost="fixed"/>
</spell>
<spell name="magicboost" type="draig" rank="3" level="3" index="17" ship="true">
<resource name="aura" amount="2" cost="linear"/>
</spell>
<spell name="chaosrow" type="draig" rank="5" level="8" index="18" variable="true">
<resource name="aura" amount="3" cost="level"/>
<resource name="peasant" amount="10" cost="fixed"/>
</spell>
<spell name="song_of_confusion" type="cerddor" rank="5" level="4" index="19" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="flee" type="illaun" rank="5" level="2" index="20" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="song_of_fear" type="cerddor" rank="5" level="3" index="21" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="berserk" type="draig" rank="4" level="5" index="22" variable="true">
<resource name="aura" amount="5" cost="level"/>
<resource name="peasant" amount="1" cost="fixed"/>
</spell>
<spell name="bloodthirst" type="cerddor" rank="4" level="7" index="23" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="maelstrom" type="gwyrrd" rank="5" level="15" index="24" ship="true" ocean="true">
<resource name="aura" amount="200" cost="fixed"/>
<resource name="seaserpenthead" amount="1" cost="fixed"/>
</spell>
<spell name="blessedharvest" type="gwyrrd" rank="5" level="1" index="25" ship="true" far="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="raindance" type="cerddor" rank="5" level="3" index="26" ship="true" far="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="transferauradruide" type="gwyrrd" rank="1" level="6" index="27" syntax="aura" parameters="ui" ship="true">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="transfer_aura_song" type="cerddor" rank="1" level="5" index="28" syntax="aura" parameters="ui" ship="true">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="transferaurachaos" type="draig" rank="1" level="7" index="29" syntax="aura" parameters="ui" ship="true">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="transferauratraum" type="illaun" rank="1" level="3" index="30" syntax="aura" parameters="ui" ship="true">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="auratransfer" type="tybied" rank="1" level="5" index="31" syntax="aura" parameters="ui" ship="true">
<resource name="aura" amount="1" cost="fixed"/>
</spell>
<spell name="stonegolem" type="gwyrrd" rank="4" level="1" index="32" variable="true">
<resource name="aura" amount="2" cost="level"/>
<resource name="stone" amount="1" cost="level"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<spell name="irongolem" type="gwyrrd" rank="4" level="2" index="33" variable="true">
<resource name="aura" amount="2" cost="level"/>
<resource name="iron" amount="1" cost="level"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<spell name="summonshadow" type="draig" rank="5" level="8" index="34" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="summonshadowlords" type="draig" rank="5" level="12" index="35" variable="true">
<resource name="aura" amount="7" cost="level"/>
</spell>
<spell name="reelingarrows" type="gwyrrd" rank="5" level="5" index="36" variable="true">
<resource name="aura" amount="15" cost="fixed"/>
</spell>
<spell name="antimagiczone" type="tybied" rank="2" level="5" index="37" far="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="cold_protection" type="gwyrrd" rank="5" level="3" index="39" parameters="u+" los="true" ship="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="steal_aura" type="tybied" rank="3" level="6" index="40" parameters="u" los="true" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="summonundead" type="draig" rank="5" level="6" index="41" ship="true" far="true" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="auraleak" type="draig" rank="3" level="9" index="42">
<resource name="aura" amount="35" cost="fixed"/>
<resource name="dragonblood" amount="1" cost="fixed"/>
</spell>
<spell name="great_drought" type="gwyrrd" rank="5" level="17" index="43" far="true">
<resource name="aura" amount="800" cost="fixed"/>
</spell>
<spell name="strongwall" type="gwyrrd" rank="5" level="8" index="44" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="homestone" type="gwyrrd" rank="5" level="7" index="45">
<resource name="aura" amount="50" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="summonfireelemental" type="gwyrrd" rank="5" level="13" index="46" far="true">
<resource name="aura" amount="600" cost="fixed"/>
</spell>
<spell name="forestfire" type="draig" rank="5" level="10" index="47" far="true">
<resource name="aura" amount="50" cost="fixed"/>
<resource name="oil" amount="1" cost="fixed"/>
</spell>
<spell name="summonent" type="gwyrrd" rank="5" level="10" index="49" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="disturbingdreams" type="illaun" rank="5" level="6" index="50" far="true">
<resource name="aura" amount="18" cost="fixed"/>
</spell>
<spell name="appeasement" type="cerddor" rank="5" level="1" index="51" variable="true">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="sleep" type="illaun" rank="5" level="7" index="52" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="earthquake" type="gwyrrd" rank="5" level="6" index="53" far="true">
<resource name="aura" amount="25" cost="fixed"/>
<resource name="laen" amount="2" cost="fixed"/>
</spell>
<spell name="ironkeeper" type="gwyrrd" rank="5" level="3" index="54" far="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="stormwinds" type="gwyrrd" rank="5" level="6" index="55" parameters="s+" ship="true" ocean="true" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="goodwinds" type="gwyrrd" rank="5" level="4" index="56" parameters="s" ship="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="airship" type="tybied" rank="5" level="6" index="57" parameters="s" ship="true">
<resource name="aura" amount="10" cost="fixed"/>
<resource name="h12" amount="1" cost="fixed"/>
<resource name="h20" amount="1" cost="fixed"/>
</spell>
<spell name="summon_alp" type="illaun" rank="5" level="15" index="58" parameters="u">
<resource name="aura" amount="350" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
<resource name="h8" amount="1" cost="fixed"/>
</spell>
<spell name="windshield" type="gwyrrd" rank="5" level="4" index="59" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="raise_mob" type="cerddor" rank="5" level="10" index="60" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="melancholy" type="cerddor" rank="5" level="11" index="61" far="true">
<resource name="aura" amount="40" cost="fixed"/>
</spell>
<spell name="headache" type="cerddor" rank="5" level="7" index="62" parameters="u" los="true">
<resource name="aura" amount="4" cost="linear"/>
<resource name="h7" amount="3" cost="fixed"/>
<resource name="money" amount="50" cost="fixed"/>
</spell>
<spell name="enterastral" type="tybied" rank="7" level="4" index="64" parameters="u+" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="leaveastral" type="tybied" rank="7" level="4" index="65" parameters="ru+" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="versteinern" type="gwyrrd" rank="5" level="8" index="67" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="treewalkenter" type="gwyrrd" rank="7" level="9" index="68" parameters="u+" los="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="treewalkexit" type="gwyrrd" rank="7" level="9" index="69" parameters="ru+" los="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="chaossuction" type="draig" rank="5" level="14" index="70">
<resource name="aura" amount="150" cost="fixed"/>
<resource name="peasant" amount="200" cost="fixed"/>
</spell>
<spell name="view_reality" type="tybied" rank="5" level="10" index="71">
<resource name="aura" amount="40" cost="fixed"/>
</spell>
<spell name="astral_disruption" type="tybied" rank="4" level="14" index="72" variable="true">
<resource name="aura" amount="140" cost="fixed"/>
</spell>
<spell name="seduction" type="cerddor" rank="5" level="6" index="73" parameters="u" los="true">
<resource name="aura" amount="12" cost="fixed"/>
</spell>
<spell name="sound_out" type="cerddor" rank="5" level="7" index="74" parameters="ur" los="true">
<resource name="aura" amount="4" cost="fixed"/>
<resource name="money" amount="100" cost="fixed"/>
</spell>
<spell name="calm_monster" type="cerddor" rank="5" level="6" index="75" parameters="u" los="true" ship="true">
<resource name="aura" amount="15" cost="fixed"/>
</spell>
<spell name="heroic_song" type="cerddor" rank="4" level="5" index="76" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="frighten" type="cerddor" rank="5" level="8" index="77" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="mindblast" type="illaun" rank="5" level="11" index="78" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="combat_speed" type="tybied" rank="5" level="9" index="79" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="double_time" type="tybied" rank="5" level="11" index="80" parameters="u+" los="true" ship="true" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="fiery_dragonbreath" type="gray" rank="5" level="3" index="81">
<resource name="aura" amount="1" cost="fixed"/>
</spell>
<spell name="icy_dragonbreath" type="gray" rank="5" level="6" index="82">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="powerful_dragonbreath" type="gray" rank="5" level="12" index="83">
<resource name="aura" amount="3" cost="fixed"/>
</spell>
<spell name="magicstreet" type="gwyrrd" rank="5" level="4" index="84" ship="true" far="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
<resource name="stone" amount="1" cost="fixed"/>
<resource name="log" amount="1" cost="fixed"/>
</spell>
<spell name="reanimate" type="illaun" rank="4" level="5" index="85" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="courting" type="cerddor" rank="5" level="4" index="86" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="generous" type="cerddor" rank="5" level="2" index="87" ship="true" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="sacrifice_strength" type="tybied" rank="1" level="15" index="88" syntax="aura" parameters="ui">
<resource name="aura" amount="100" cost="fixed"/>
</spell>
<spell name="song_of_peace" type="cerddor" rank="5" level="12" index="89" variable="true">
<resource name="aura" amount="20" cost="level"/>
</spell>
<spell name="migration" type="cerddor" rank="5" level="9" index="90" parameters="u" los="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
<resource name="permaura" amount="1" cost="level"/>
</spell>
<spell name="calm_riot" type="cerddor" rank="5" level="15" index="91" far="true">
<resource name="aura" amount="30" cost="fixed"/>
</spell>
<spell name="incite_riot" type="cerddor" rank="5" level="16" index="92" far="true">
<resource name="aura" amount="40" cost="fixed"/>
</spell>
<spell name="shapeshift" type="illaun" rank="5" level="3" index="93" syntax="race" parameters="uc" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="wolfhowl" type="gwyrrd" rank="5" level="7" index="94" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="resist_magic" type="tybied" rank="2" level="3" index="97" parameters="u+" los="true" ship="true" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="keeploot" type="tybied" rank="5" level="3" index="98" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="protective_runes" type="tybied" rank="2" level="8" index="99" parameters="kc" ship="true">
<resource name="aura" amount="20" cost="fixed"/>
</spell>
<spell name="song_resist_magic" type="cerddor" rank="2" level="10" index="100" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="song_suscept_magic" type="cerddor" rank="2" level="12" index="101" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="analyze_magic" type="tybied" rank="5" level="1" index="102" parameters="kc?" los="true" ship="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="analysedream" type="illaun" rank="5" level="5" index="103" parameters="u" los="true" ship="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="analysesong_unit" type="cerddor" rank="5" level="5" index="104" parameters="u" los="true" ship="true">
<resource name="aura" amount="10" cost="fixed"/>
</spell>
<spell name="analyse_object" type="cerddor" rank="5" level="8" index="105" parameters="kc?" ship="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="destroy_magic" type="tybied" rank="2" level="5" index="106" parameters="kc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="break_curse" type="tybied" rank="3" level="7" index="107" syntax="spellid" parameters="kcc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="meteor_rain" type="gray" rank="5" level="3" index="108" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="fish_shield" type="tybied" rank="2" level="8" index="109" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="armor_shield" type="tybied" rank="2" level="12" index="110" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="deathcloud" type="draig" rank="5" level="11" index="111" far="true">
<resource name="aura" amount="40" cost="fixed"/>
<resource name="hp" amount="15" cost="fixed"/>
</spell>
<spell name="orkdream" type="illaun" rank="5" level="12" index="112" parameters="u+" los="true" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="summondragon" type="draig" rank="5" level="11" index="113" far="true">
<resource name="aura" amount="80" cost="fixed"/>
<resource name="dragonhead" amount="1" cost="fixed"/>
</spell>
<spell name="living_rock" type="tybied" rank="5" level="13" index="116" syntax="direction" parameters="bc" variable="true">
<resource name="aura" amount="10" cost="level"/>
<resource name="permaura" amount="1" cost="fixed"/>
<resource name="laen" amount="5" cost="fixed"/>
</spell>
<spell name="blessstonecircle" type="gwyrrd" rank="5" level="11" index="117" parameters="b">
<resource name="aura" amount="350" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="illaunfamiliar" type="illaun" rank="5" level="9" index="118">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="gwyrrdfamiliar" type="gwyrrd" rank="5" level="10" index="119">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="draigfamiliar" type="draig" rank="5" level="13" index="120">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="summon_familiar" type="cerddor" rank="5" level="9" index="121">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="summon_familiar" type="tybied" rank="5" level="12" index="122">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="5" cost="fixed"/>
</spell>
<spell name="song_of_slavery" type="cerddor" rank="5" level="13" index="123" parameters="u" los="true">
<resource name="aura" amount="40" cost="fixed"/>
</spell>
<spell name="fumblecurse" type="draig" rank="4" level="5" index="136" parameters="u" los="true" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="icastle" type="illaun" rank="5" level="3" index="137" syntax="buildingtype" parameters="c">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="gwyrrddestroymagic" type="gwyrrd" rank="2" level="8" index="138" parameters="kc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="draigdestroymagic" type="draig" rank="2" level="10" index="139" parameters="kc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="10" cost="level"/>
</spell>
<spell name="illaundestroymagic" type="illaun" rank="2" level="8" index="140" parameters="kc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="cerddor_destroymagic" type="cerddor" rank="2" level="8" index="141" parameters="kc?" los="true" ship="true" far="true" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="barkskin" type="gwyrrd" rank="2" level="12" index="142" variable="true">
<resource name="aura" amount="4" cost="level"/>
</spell>
<spell name="draigfumbleshield" type="draig" rank="2" level="9" index="143" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="gwyrrdfumbleshield" type="gwyrrd" rank="2" level="5" index="144" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="cerrdorfumbleshield" type="cerddor" rank="2" level="5" index="145" variable="true">
<resource name="aura" amount="5" cost="level"/>
</spell>
<spell name="tybiedfumbleshield" type="tybied" rank="2" level="2" index="146" variable="true">
<resource name="aura" amount="3" cost="level"/>
</spell>
<spell name="shadowknights" type="illaun" rank="4" level="1" index="147" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="concealing_aura" type="tybied" rank="5" level="1" index="150" parameters="u" ship="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="firewall" type="draig" rank="4" level="7" index="151" syntax="direction" parameters="c" variable="true">
<resource name="aura" amount="6" cost="level"/>
</spell>
<spell name="wisps" type="illaun" rank="5" level="7" index="152" syntax="direction" parameters="c" far="true" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="sparklechaos" type="draig" rank="5" level="1" index="153" parameters="u" los="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="sparkledream" type="illaun" rank="5" level="1" index="154" parameters="u" los="true" ship="true" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="pull_astral" type="tybied" rank="7" level="6" index="156" parameters="ru+" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="fetch_astral" type="tybied" rank="7" level="6" index="157" parameters="u+" variable="true">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="shockwave" type="tybied" rank="5" level="5" index="163" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="undeadhero" type="draig" rank="5" level="9" index="164" variable="true">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="wyrm_transformation" type="gray" rank="5" level="1" index="166">
<resource name="aura" amount="1" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="eternal_walls" type="tybied" rank="5" level="7" index="167" parameters="b" ship="true" variable="true">
<resource name="aura" amount="50" cost="fixed"/>
<resource name="permaura" amount="1" cost="fixed"/>
</spell>
<spell name="puttorest" type="illaun" rank="5" level="2" index="168" variable="true">
<resource name="aura" amount="3" cost="level"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<spell name="unholypower" type="draig" rank="5" level="14" index="169" parameters="u+" los="true" variable="true">
<resource name="aura" amount="10" cost="level"/>
<resource name="peasant" amount="5" cost="level"/>
</spell>
<spell name="holyground" type="gwyrrd" rank="5" level="9" index="170">
<resource name="aura" amount="80" cost="fixed"/>
<resource name="permaura" amount="3" cost="fixed"/>
</spell>
<spell name="bloodsacrifice" type="draig" rank="1" level="4" index="171" ship="true">
<resource name="hp" amount="4" cost="level"/>
</spell>
<spell name="magic_roots" type="gwyrrd" rank="5" level="16" index="172" far="true">
<resource name="aura" amount="250" cost="fixed"/>
<resource name="permaura" amount="10" cost="fixed"/>
<resource name="toadslime" amount="1" cost="fixed"/>
</spell>
<spell name="clone" type="illaun" rank="5" level="9" index="173">
<resource name="aura" amount="100" cost="fixed"/>
<resource name="permaura" amount="20" cost="fixed"/>
<resource name="dragonblood" amount="5" cost="fixed"/>
<resource name="p2" amount="5" cost="fixed"/>
</spell>
<spell name="drain_skills" type="gray" rank="5" level="12" index="174">
<resource name="aura" amount="4" cost="fixed"/>
</spell>
<spell name="aura_of_fear" type="gray" rank="5" level="12" index="175">
<resource name="aura" amount="1" cost="level"/>
</spell>
<spell name="shadowcall" type="gray" rank="5" level="12" index="176">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="mallorntreegrow" type="gwyrrd" rank="5" level="4" index="177" far="true" variable="true">
<resource name="aura" amount="6" cost="level"/>
<resource name="mallorn" amount="1" cost="level"/>
<resource name="p2" amount="1" cost="fixed"/>
</spell>
<spell name="big_recruit" type="cerddor" rank="5" level="14" index="179" variable="true">
<resource name="aura" amount="20" cost="level"/>
</spell>
<spell name="immolation" type="gray" rank="5" level="12" index="180">
<resource name="aura" amount="2" cost="level"/>
</spell>
<spell name="firestorm" type="gray" rank="5" level="8" index="181">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="coldfront" type="gray" rank="5" level="8" index="182">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
<spell name="acidrain" type="gray" rank="5" level="8" index="183">
<resource name="aura" amount="2" cost="fixed"/>
</spell>
</spells>

View File

@ -1,85 +0,0 @@
<?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" -->
<terrain name="ocean" size="0" shallow="no" walk="no" swim="yes" land="no" sea="yes" />
<terrain name="plain" size="200" road="50" shallow="no" forest="yes" cavalry="yes" seed="3">
<herb name="h0" />
<herb name="h1" />
<herb name="h2" />
<herb name="h3" />
<herb name="h4" />
<herb name="h5" />
<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="80" road="75" seed="2">
<herb name="h6" />
<herb name="h7" />
<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="80" road="100" cavalry="yes" seed="2">
<herb name="h9" />
<herb name="h10" />
<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="150" road="100" cavalry="yes" seed="2">
<herb name="h12" />
<herb name="h13" />
<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="80" road="250" seed="2">
<herb name="h15" />
<herb name="h16" />
<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="10" road="250" arctic="yes" seed="2">
<herb name="h18" />
<herb name="h19" />
<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="10" road="250" arctic="yes">
<herb name="h18" />
<herb name="h19" />
<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="10" arctic="yes">
<herb name="h18" />
<herb name="h19" />
<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" size="0" land="no" walk="no" sail="no" fly="no" forbidden="yes" />
<terrain name="fog" sail="no" land="no" size="0" />
<terrain name="thickfog" forbidden="yes" sail="no" walk="no" fly="no" land="no" size="0" />
<terrain name="volcano" size="30" 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="30" 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,275 +0,0 @@
<?xml version="1.0"?>
<resources>
<!-- this file contains a lot of weapons -->
<resource name="sword">
<item weight="100" score="30">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon cut="true" skill="melee">
<damage type="rider" value="d2+8"/>
<damage type="footman" value="d16+5"/>
</weapon>
</item>
</resource>
<resource name="axe">
<item weight="200">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="1" defmod="-2">
<damage type="rider" value="2d8+9"/>
<damage type="footman" value="2d8+9"/>
</weapon>
</item>
</resource>
<resource name="mallornbow">
<item weight="100">
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="1"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0" magres="0.15">
<damage type="rider" value="1d11+2"/>
<damage type="footman" value="1d11+2"/>
<modifier type="missile_target" value="2"/>
<modifier type="damage" value="1">
<race name="elf"/>
</modifier>
</weapon>
</item>
</resource>
<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="3d6+10"/>
<damage type="footman" value="3d6+10"/>
</weapon>
</item>
</resource>
<resource name="rustygreatsword">
<item weight="200" score="20">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon cut="true" skill="melee" offmod="-2" defmod="-3">
<damage type="rider" value="2d8"/>
<damage type="footman" value="2d8"/>
</weapon>
</item>
</resource>
<resource name="runesword">
<item weight="100" score="2000">
<weapon minskill="7" cut="true" magical="yes" skill="melee" offmod="2" defmod="2">
<function name="attack" value="attack_firesword"/>
<damage type="rider" value="3d10+10"/>
<damage type="footman" value="3d10+10"/>
</weapon>
</item>
</resource>
<resource name="firesword">
<item weight="100">
<weapon minskill="7" magres="0.3" cut="true" skill="melee" offmod="1" defmod="1">
<function name="attack" value="attack_firesword"/>
<damage type="rider" value="3d6+10"/>
<damage type="footman" value="3d6+10"/>
</weapon>
</item>
</resource>
<resource name="greatsword">
<item weight="200" score="30">
<construction skill="weaponsmithing" minskill="4" reqsize="1">
<requirement type="iron" quantity="2"/>
</construction>
<weapon cut="true" skill="melee" offmod="-1" defmod="-2">
<damage type="rider" value="2d8+3"/>
<damage type="footman" value="2d8+3"/>
</weapon>
</item>
</resource>
<resource name="greatbow">
<item weight="100">
<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="2d6+4"/>
<damage type="footman" value="2d6+4"/>
<modifier type="missile_target" value="2"/>
<modifier type="damage" value="1">
<race name="elf"/>
</modifier>
</weapon>
</item>
</resource>
<resource name="halberd">
<item weight="200">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="2"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="polearm" offmod="-1" defmod="2" magres="0.0">
<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>
<resource name="rustyhalberd">
<item weight="200" score="20">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="iron" quantity="1"/>
<requirement type="log" quantity="1"/>
</construction>
<weapon cut="true" skill="polearm" offmod="-2" defmod="-1">
<damage type="rider" value="2d6"/>
<damage type="footman" value="2d6"/>
</weapon>
</item>
</resource>
<resource name="rustysword">
<item weight="100" score="10">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="-1" defmod="-1">
<damage type="rider" value="1d9"/>
<damage type="footman" value="1d9"/>
</weapon>
</item>
</resource>
<resource name="rustyaxe">
<item weight="200">
<construction skill="weaponsmithing" minskill="3" reqsize="1">
<requirement type="log" quantity="1"/>
<requirement type="iron" quantity="1"/>
</construction>
<weapon cut="true" skill="melee" offmod="0" defmod="-3">
<damage type="rider" value="2d6"/>
<damage type="footman" value="2d6"/>
</weapon>
</item>
</resource>
<resource name="bow">
<item weight="100">
<construction skill="weaponsmithing" minskill="2" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<weapon pierce="true" missile="true" skill="bow" offmod="0" defmod="0" reload="0">
<damage type="rider" value="1d11+1"/>
<damage type="footman" value="1d11+1"/>
<modifier type="missile_target" value="2"/>
</weapon>
</item>
</resource>
<resource name="catapult">
<item weight="10000">
<construction skill="cartmaking" minskill="5" reqsize="1">
<requirement type="log" quantity="10"/>
</construction>
<weapon siege="true" bash="true" missile="true" skill="catapult" offmod="0" defmod="0" reload="5">
<damage type="rider" value="3d10+5"/>
<damage type="footman" value="3d10+5"/>
<modifier type="missile_target" value="4"/>
<function name="attack" value="attack_catapult"/>
</weapon>
</item>
</resource>
<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="3d3+5"/>
<damage type="footman" value="3d3+5"/>
<modifier type="missile_target" value="2"/>
</weapon>
</item>
</resource>
<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="3d3+5"/>
<damage type="footman" value="3d3+5"/>
<modifier type="missile_target" value="2"/>
</weapon>
</item>
</resource>
<resource name="spear">
<item weight="100">
<construction skill="weaponsmithing" minskill="2" reqsize="1">
<requirement type="log" quantity="1"/>
</construction>
<weapon pierce="true" skill="polearm" offmod="0" defmod="0">
<damage type="footman" value="1d10"/>
<damage type="rider" value="1d12+2"/>
<modifier type="skill" value="1" riding="true" against_riding="true" against_walking="true" offensive="true"/>
<modifier type="skill" value="1" walking="true" against_riding="true" against_walking="true" defensive="true"/>
</weapon>
</item>
</resource>
<resource name="mallornspear">
<item weight="100">
<construction skill="weaponsmithing" minskill="5" reqsize="1">
<requirement type="mallorn" quantity="1"/>
</construction>
<weapon pierce="true" skill="polearm" minskill="5" offmod="0" defmod="0" magres="0.15">
<damage type="footman" value="1d10+1"/>
<damage type="rider" value="1d12+3"/>
<modifier type="skill" value="1" riding="true" against_riding="true" against_walking="true" offensive="true"/>
<modifier type="skill" value="1" walking="true" against_riding="true" against_walking="true" defensive="true"/>
</weapon>
</item>
</resource>
<resource name="lance">
<item weight="200">
<construction skill="weaponsmithing" minskill="2" reqsize="1">
<requirement type="log" quantity="2"/>
</construction>
<weapon pierce="true" skill="polearm" offmod="0" defmod="-2">
<damage type="footman" value="1d5"/>
<damage type="rider" value="2d6+5"/>
</weapon>
</item>
</resource>
<resource name="mallornlance">
<item weight="100">
<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+1"/>
<damage type="rider" value="2d6+6"/>
</weapon>
</item>
</resource>
</resources>

View File

@ -11,9 +11,9 @@
<include href="common/buildings.xml" /> <include href="common/buildings.xml" />
<xi:include href="eressea/buildings.xml"/> <xi:include href="eressea/buildings.xml"/>
<game name="Kreis der Macht" units="250" welcome="vinyambar"> <game name="Kreis der Macht" welcome="vinyambar">
<!-- Game specific --> <!-- Game specific -->
<order name="ARBEITEN" disable></order> <order name="ARBEITEN" disable="true" />
<param name="entertain.base" value="15"></param> <param name="entertain.base" value="15"></param>
<param name="entertain.perlevel" value="5"></param> <param name="entertain.perlevel" value="5"></param>
<param name="nmr.timeout" value="5"></param> <param name="nmr.timeout" value="5"></param>
@ -25,6 +25,7 @@
<param name="alliance.restricted" value="fight guard stealth money"/> <param name="alliance.restricted" value="fight guard stealth money"/>
<param name="alliance.auto" value="fight"/> <param name="alliance.auto" value="fight"/>
<param name="alliance.transferquit" value="true"/> <param name="alliance.transferquit" value="true"/>
<param name="rules.limit.faction" value="250"/>
</game> </game>
<include href="vinyambar/de/strings.xml" /> <include href="vinyambar/de/strings.xml" />
<include href="vinyambar/stronghold.xml" /> <include href="vinyambar/stronghold.xml" />

View File

@ -9,7 +9,7 @@
<include href="resources.xml" /> <include href="resources.xml" />
<include href="ships.xml" /> <include href="ships.xml" />
<game name="Vinyambar I" units="250" welcome="vinyambar"> <game name="Vinyambar I" welcome="vinyambar">
<comment>Game specific</comment> <comment>Game specific</comment>
<param name="entertain.base" value="0"></param> <param name="entertain.base" value="0"></param>
<param name="entertain.perlevel" value="20"></param> <param name="entertain.perlevel" value="20"></param>
@ -18,6 +18,7 @@
<param name="GiveRestriction" value="3"></param> <param name="GiveRestriction" value="3"></param>
<param name="database.gameid" value="1"></param> <param name="database.gameid" value="1"></param>
<param name="hunger.long" value="1"></param> <param name="hunger.long" value="1"></param>
<param name="rules.limit.faction" value="250"/>
</game> </game>
<include href="vinyambar/races.xml" /> <include href="vinyambar/races.xml" />
<include href="vinyambar/de/strings-classic.xml" /> <include href="vinyambar/de/strings-classic.xml" />

View File

@ -22,7 +22,7 @@
<xi:include href="spells.xml"/> <xi:include href="spells.xml"/>
<xi:include href="terrains.xml"/> <xi:include href="terrains.xml"/>
<game name="Wettstreit der Weisen" unitsperalliance="yes" units="1000" welcome="vinyambar"> <game name="Wettstreit der Weisen" welcome="vinyambar">
<!-- Game specific settings --> <!-- Game specific settings -->
<order name="ARBEITEN" disable="yes"/> <order name="ARBEITEN" disable="yes"/>
@ -72,6 +72,7 @@
<param name="alliance.restricted" value="fight guard stealth money"/> <param name="alliance.restricted" value="fight guard stealth money"/>
<param name="alliance.auto" value="fight guard stealth money "/> <param name="alliance.auto" value="fight guard stealth money "/>
<param name="alliance.transferquit" value="true"/> <param name="alliance.transferquit" value="true"/>
<param name="rules.limit.alliance" value="1000"/>
</game> </game>
<xi:include href="vinyambar/de/strings.xml"/> <xi:include href="vinyambar/de/strings.xml"/>

View File

@ -9,9 +9,9 @@
<include href="resources.xml" /> <include href="resources.xml" />
<include href="ships.xml" /> <include href="ships.xml" />
<game name="Vinyambar II" units="250" welcome="vinyambar"> <game name="Vinyambar II" welcome="vinyambar">
<comment>Game specific</comment> <comment>Game specific</comment>
<order name="ARBEITEN" disable></order> <order name="ARBEITEN" disable="true"></order>
<param name="entertain.base" value="0"></param> <param name="entertain.base" value="0"></param>
<param name="entertain.perlevel" value="20"></param> <param name="entertain.perlevel" value="20"></param>
<param name="nmr.timeout" value="5"></param> <param name="nmr.timeout" value="5"></param>
@ -19,6 +19,7 @@
<param name="GiveRestriction" value="3"></param> <param name="GiveRestriction" value="3"></param>
<param name="database.gameid" value="2"></param> <param name="database.gameid" value="2"></param>
<param name="hunger.long" value="0"></param> <param name="hunger.long" value="0"></param>
<param name="rules.limit.faction" value="250"/>
</game> </game>
<include href="vinyambar/races.xml" /> <include href="vinyambar/races.xml" />
<include href="vinyambar/de/strings.xml" /> <include href="vinyambar/de/strings.xml" />