Eressea 1.5 WIP

- astral space is optional (modules.astralspace)
- spells can be disabled (spells.xml, init_spells)
- hitpoints/stamina configuration (rules.stamina)
- rules.combat_turns (default=5)
This commit is contained in:
Enno Rehling 2009-01-30 23:15:36 +00:00
parent 00d399f03d
commit 080a85021f
26 changed files with 893 additions and 65 deletions

View File

@ -1170,7 +1170,7 @@ cr_output_region(FILE * F, report_context * ctx, seen_region * sr)
}
cr_output_curses(F, f, r, TYP_REGION);
cr_borders(ctx->seen, r, f, sr->mode, F);
if (sr->mode==see_unit && r->planep==get_astralplane() && !is_cursed(r->attribs, C_ASTRALBLOCK, 0))
if (sr->mode==see_unit && is_astral(r) && !is_cursed(r->attribs, C_ASTRALBLOCK, 0))
{
/* Sonderbehandlung Teleport-Ebene */
region_list *rl = astralregions(r, inhabitable);

View File

@ -340,7 +340,7 @@ age_unit(region * r, unit * u)
}
}
#ifdef ASTRAL_ITEM_RESTRICTIONS
if (u->region && u->region->planep==get_astralplane()) {
if (u->region && is_astral(u->region)) {
item ** itemp = &u->items;
while (*itemp) {
item * itm = *itemp;

View File

@ -1072,7 +1072,7 @@ describe(FILE * F, const seen_region * sr, faction * f)
*bufp = 0;
rparagraph(F, buf, 0, 0, 0);
if (sr->mode==see_unit && rplane(r) == get_astralplane() &&
if (sr->mode==see_unit && is_astral(r) &&
!is_cursed(r->attribs, C_ASTRALBLOCK, 0)) {
/* Sonderbehandlung Teleport-Ebene */
region_list *rl = astralregions(r, inhabitable);

View File

@ -60,6 +60,7 @@ without prior permission by the authors of Eressea.
#include <util/language.h>
#include <util/message.h>
#include <util/unicode.h>
#include <util/xml.h>
/* libxml2 includes */
#include <libxml/tree.h>
@ -84,14 +85,6 @@ typedef struct xml_context {
xmlNsPtr ns_xml;
} xml_context;
static const xmlChar *
xml_i(double number)
{
static char buffer[128];
snprintf(buffer, sizeof(buffer), "%.0lf", number);
return (const xmlChar *)buffer;
}
static xmlNodePtr
xml_link(report_context * ctx, const xmlChar * rel, const xmlChar * ref)
{

View File

@ -3943,6 +3943,7 @@ battle_flee(battle * b)
void
do_battle(region * r)
{
static int max_turns = 0;
battle *b = NULL;
boolean fighting = false;
ship * sh;
@ -3995,7 +3996,10 @@ do_battle(region * r)
print_stats(b); /* gibt die Kampfaufstellung aus */
log_stdio(stdout, "%s (%d, %d) : ", rname(r, NULL), r->x, r->y);
for (;battle_report(b) && b->turn<=COMBAT_TURNS;++b->turn) {
if (max_turns==0) {
max_turns = get_param_int(global.parameters, "rules.combat_turns", COMBAT_TURNS);
}
for (;battle_report(b) && b->turn<=max_turns;++b->turn) {
if (bdebug) {
fprintf(bdebug, "*** Turn: %d\n", b->turn);
}

View File

@ -2428,10 +2428,8 @@ int
lifestyle(const unit * u)
{
int need;
static plane * astralspace;
static int gamecookie = -1;
if (gamecookie!=global.cookie) {
astralspace = getplanebyname("Astralraum");
gamecookie = global.cookie;
}

View File

@ -88,6 +88,7 @@ extern "C" {
#define BP_NORMAL 3
#define BP_ROAD 2
#define STAMINA_AFFECTS_HP 1<<0
/**
* Hier endet der Teil von eressea.h, der die defines für die

View File

@ -1305,10 +1305,12 @@ movement_speed(unit * u)
/* Im Astralraum sind Tyb und Ill-Magier doppelt so schnell.
* Nicht kumulativ mit anderen Beschleunigungen! */
if (mp*dk <= BP_WALKING*u->race->speed && getplane(u->region) == get_astralplane() && is_mage(u)) {
sc_mage * mage = get_mage(u);
if (mage->magietyp == M_ASTRAL || mage->magietyp == M_TRAUM) {
mp *= 2;
if (get_param_int(global.parameters, "modules.astralspace", 0) != 0) {
if (mp*dk <= BP_WALKING*u->race->speed && is_astral(u->region) && is_mage(u)) {
sc_mage * mage = get_mage(u);
if (mage->magietyp == M_ASTRAL || mage->magietyp == M_TRAUM) {
mp *= 2;
}
}
}
break;

View File

@ -40,7 +40,6 @@ extern "C" {
extern struct attrib_type at_wdwpyramid;
extern struct spell_list * spells;
extern void init_spells(void);
extern void register_spell(struct spell * sp);
extern struct spell * find_spell(magic_t mtype, const char * name);
extern struct spell * find_spellbyid(magic_t mtype, spellid_t i);

View File

@ -58,7 +58,7 @@ real2tp(short rk) {
static region *
tpregion(const region *r) {
region * rt = findregion(TE_CENTER_X+real2tp(r->x), TE_CENTER_Y+real2tp(r->y));
if (rplane(rt) != get_astralplane()) return NULL;
if (!is_astral(rt)) return NULL;
return rt;
}
@ -68,8 +68,8 @@ astralregions(const region * r, boolean (*valid)(const region *))
region_list * rlist = NULL;
short x, y;
assert(rplane(r) == get_astralplane());
if (rplane(r) != get_astralplane()) {
assert(is_astral(r));
if (!is_astral(r)) {
log_error(("astralregions was called with a non-astral region.\n"));
return NULL;
}
@ -102,7 +102,7 @@ r_astral_to_standard(const region *r)
short x, y;
region *r2;
assert(rplane(r) == get_astralplane());
assert(is_astral(r));
x = (r->x-TE_CENTER_X)*TP_DISTANCE;
y = (r->y-TE_CENTER_Y)*TP_DISTANCE;
@ -142,7 +142,7 @@ spawn_braineaters(float chance)
if (f0==NULL) return;
for (r = regions; r; r = r->next) {
if (rplane(r) != get_astralplane() || fval(r->terrain, FORBIDDEN_REGION)) continue;
if (!is_astral(r) || fval(r->terrain, FORBIDDEN_REGION)) continue;
/* Neues Monster ? */
if (next-- == 0) {
@ -160,11 +160,25 @@ get_normalplane(void)
return NULL;
}
boolean
is_astral(const region * r)
{
plane * pl = get_astralplane();
return (pl && rplane(r) == pl);
}
plane *
get_astralplane(void)
{
static plane * astralspace;
static int rule_astralplane = -1;
static int gamecookie = -1;
if (rule_astralplane<0) {
rule_astralplane = get_param_int(global.parameters, "modules.astralspace", 0);
}
if (!rule_astralplane) {
return NULL;
}
if (gamecookie!=global.cookie) {
astralspace = getplanebyname("Astralraum");
gamecookie = global.cookie;
@ -195,7 +209,7 @@ create_teleport_plane(void)
short y = TE_CENTER_Y+real2tp(r->y);
plane * pl = findplane(x, y);
if (pl==aplane) {
if (aplane && pl==aplane) {
ra = new_region(x, y, 0);
terraform_region(ra, fog);
ra->planep = aplane;

View File

@ -23,6 +23,7 @@ extern "C" {
extern struct region_list *astralregions(const struct region * rastral, boolean (*valid)(const struct region *));
extern struct region_list *all_in_range(const struct region *r, short n, boolean (*valid)(const struct region *));
extern boolean inhabitable(const struct region * r);
extern boolean is_astral(const struct region * r);
extern struct plane * get_astralplane(void);
extern struct plane * get_normalplane(void);

View File

@ -1612,15 +1612,21 @@ unit_addorder(unit * u, order * ord)
int
unit_max_hp(const unit * u)
{
static int rules_stamina = -1;
int h;
double p;
static const curse_type * heal_ct = NULL;
if (rules_stamina<0) {
rules_stamina = get_param_int(global.parameters, "rules.stamina", STAMINA_AFFECTS_HP);
}
h = u->race->hitpoints;
if (heal_ct==NULL) heal_ct = ct_find("healingzone");
p = pow(effskill(u, SK_STAMINA) / 2.0, 1.5) * 0.2;
h += (int) (h * p + 0.5);
if (rules_stamina & 1) {
p = pow(effskill(u, SK_STAMINA) / 2.0, 1.5) * 0.2;
h += (int) (h * p + 0.5);
}
#if KARMA_MODULE
if (fspecial(u->faction, FS_UNDEAD)) {
h *= 2;

View File

@ -38,6 +38,8 @@ without prior permission by the authors of Eressea.
#include <util/nrmessage.h>
#include <util/xml.h>
#include <spells/spells.h>
/* libxml includes */
#include <libxml/tree.h>
#include <libxml/xpath.h>
@ -1413,27 +1415,33 @@ parse_spells(xmlDocPtr doc)
/* reading eressea/spells/spell/function */
xpath->node = node;
result = xmlXPathEvalExpression(BAD_CAST "function", xpath);
for (k=0;k!=result->nodesetval->nodeNr;++k) {
xmlNodePtr node = result->nodesetval->nodeTab[k];
pf_generic fun;
parse_function(node, &fun, &propValue);
if (fun==NULL) {
log_error(("unknown function name '%s' for spell '%s'\n",
(const char*)propValue, sp->sname));
if (result->nodesetval->nodeNr==0) {
/* this is an old spell that has a spelldata entry */
set_spelldata(sp);
} else {
for (k=0;k!=result->nodesetval->nodeNr;++k) {
xmlNodePtr node = result->nodesetval->nodeTab[k];
pf_generic fun;
parse_function(node, &fun, &propValue);
if (fun==NULL) {
log_error(("unknown function name '%s' for spell '%s'\n",
(const char*)propValue, sp->sname));
xmlFree(propValue);
continue;
}
assert(propValue!=NULL);
if (strcmp((const char*)propValue, "cast")==0) {
sp->sp_function = (spell_f)fun;
} else if (strcmp((const char*)propValue, "fumble")==0) {
sp->patzer = (pspell_f)fun;
} else {
log_error(("unknown function type '%s' for spell %s\n",
(const char*)propValue, sp->sname));
}
xmlFree(propValue);
continue;
}
assert(propValue!=NULL);
if (strcmp((const char*)propValue, "cast")==0) {
sp->sp_function = (spell_f)fun;
} else if (strcmp((const char*)propValue, "fumble")==0) {
sp->patzer = (pspell_f)fun;
} else {
log_error(("unknown function type '%s' for spell %s\n",
(const char*)propValue, sp->sname));
}
xmlFree(propValue);
}
xmlXPathFreeObject(result);
}
@ -1473,8 +1481,9 @@ parse_spells(xmlDocPtr doc)
xmlXPathFreeContext(xpath);
init_spells();
if (get_param_int(global.parameters, "init_spells", 1)!=0) {
init_spells();
}
return 0;
}

View File

@ -1852,7 +1852,7 @@ sp_treewalkexit(castorder *co)
spellparameter *pa = co->par;
int cast_level = co->level;
if (getplane(r) != get_astralplane()) {
if (!is_astral(r)) {
ADDMSG(&mage->faction->msgs, msg_feedback(mage, co->order, "spellfail_astralonly", ""));
return 0;
}
@ -5676,7 +5676,7 @@ sp_fetchastral(castorder *co)
/* this can happen several times if the units are from different astral
* regions. Only possible on the intersections of schemes */
region_list * rfind;
if (getplane(u->region) != get_astralplane()) {
if (!is_astral(u->region)) {
ADDMSG(&mage->faction->msgs, msg_feedback(mage, co->order, "spellfail_astralonly", ""));
continue;
}
@ -8800,6 +8800,37 @@ border_type bt_chaosgate = {
chaosgate_move
};
static void
set_spelldata_i(spell * sp, spelldata * data)
{
int n;
for (n=0;n!=5 && data->components[n].name;++n);
sp->components = malloc(sizeof(spell_component) *(n+1));
sp->components[n].type = NULL;
while (n-->0) {
sp->components[n].type = rt_find(data->components[n].name);
sp->components[n].amount = data->components[n].amount;
sp->components[n].cost = data->components[n].flags;
}
sp->sp_function = data->sp_function;
sp->patzer = data->patzer;
}
void
set_spelldata(spell * sp)
{
int i;
for (i=0;spelldaten[i].id!=SPL_NOSPELL;++i) {
spelldata * data = spelldaten+i;
if (strcmp(data->sname, sp->sname)==0) {
set_spelldata_i(sp, data);
return;
}
}
log_error(("unknown spell %s.\n", sp->sname));
assert(!"there is no spell by that name");
}
void
init_spells(void)
{
@ -8809,7 +8840,6 @@ init_spells(void)
for (i=0;spelldaten[i].id!=SPL_NOSPELL;++i) {
spelldata * data = spelldaten+i;
spell * sp = malloc(sizeof(spell));
int n;
sp->id = data->id;
sp->sname = strdup(data->sname);
@ -8822,16 +8852,7 @@ init_spells(void)
sp->sptyp = data->sptyp;
sp->rank = data->rank;
sp->level = data->level;
for (n=0;n!=5 && data->components[n].name;++n);
sp->components = malloc(sizeof(spell_component) *(n+1));
sp->components[n].type = NULL;
while (n-->0) {
sp->components[n].type = rt_find(data->components[n].name);
sp->components[n].amount = data->components[n].amount;
sp->components[n].cost = data->components[n].flags;
}
sp->sp_function = data->sp_function;
sp->patzer = data->patzer;
set_spelldata_i(sp, data);
register_spell(sp);
}
at_register(&at_cursewall);

View File

@ -41,6 +41,8 @@ extern "C" {
} wall_data;
int levitate_ship(struct ship * sh, struct unit * mage, double power, int duration);
void init_spells(void);
void set_spelldata(struct spell * sp);
#ifdef __cplusplus
}

View File

@ -24,6 +24,14 @@
#include <string.h>
#include <ctype.h>
const xmlChar *
xml_i(double number)
{
static char buffer[128];
snprintf(buffer, sizeof(buffer), "%.0lf", number);
return (const xmlChar *)buffer;
}
int
xml_ivalue(xmlNodePtr node, const char * name, int dflt)
{

View File

@ -28,6 +28,8 @@ extern "C" {
extern int xml_ivalue(xmlNodePtr node, const char * name, int dflt);
extern boolean xml_bvalue(xmlNodePtr node, const char * name, boolean dflt);
const xmlChar * xml_i(double number);
#ifdef __cplusplus
}
#endif

View File

@ -826,7 +826,7 @@ handlekey(state * st, int c)
region * cur = mr->r;
if (cur->planep==NULL) {
cur = r_standard_to_astral(cur);
} else if (cur->planep==get_astralplane()) {
} else if (is_astral(cur)) {
cur = r_astral_to_standard(cur);
} else {
cur = NULL;

View File

@ -802,7 +802,7 @@ fix_astral_firewalls(void)
{
region * r;
for (r = regions; r; r=r->next) {
if (r->planep==get_astralplane() && r->terrain == newterrain(T_FIREWALL)) {
if (is_astral(r) && r->terrain == newterrain(T_FIREWALL)) {
terraform_region(r, newterrain(T_ASTRALB));
}
}

View File

@ -713,6 +713,55 @@ static int tolua_set_alliance_name(lua_State* tolua_S)
return 0;
}
#include <libxml/tree.h>
#include <util/functions.h>
#include <util/xml.h>
#include <kernel/spell.h>
static int
tolua_write_spells(lua_State* tolua_S)
{
spell_f fun = (spell_f)get_function("lua_castspell");
const char * filename = "magic.xml";
xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
xmlNodePtr root = xmlNewNode(NULL, BAD_CAST "spells");
spell_list * splist;
for (splist=spells; splist; splist=splist->next) {
spell * sp = splist->data;
if (sp->sp_function!=fun) {
xmlNodePtr node = xmlNewNode(NULL, BAD_CAST "spell");
xmlNewProp(node, BAD_CAST "name", BAD_CAST sp->sname);
xmlNewProp(node, BAD_CAST "type", BAD_CAST magietypen[sp->magietyp]);
xmlNewProp(node, BAD_CAST "rank", xml_i(sp->rank));
xmlNewProp(node, BAD_CAST "level", xml_i(sp->level));
xmlNewProp(node, BAD_CAST "index", xml_i(sp->id));
if (sp->sptyp & TESTCANSEE) {
xmlNewProp(node, BAD_CAST "los", BAD_CAST "true");
}
if (sp->sptyp & ONSHIPCAST) {
xmlNewProp(node, BAD_CAST "ship", BAD_CAST "true");
}
if (sp->sptyp & OCEANCASTABLE) {
xmlNewProp(node, BAD_CAST "ocean", BAD_CAST "true");
}
if (sp->sptyp & FARCASTING) {
xmlNewProp(node, BAD_CAST "far", BAD_CAST "true");
}
if (sp->sptyp & SPELLLEVEL) {
xmlNewProp(node, BAD_CAST "variable", BAD_CAST "true");
}
xmlAddChild(root, node);
}
}
xmlDocSetRootElement(doc, root);
xmlKeepBlanksDefault(0);
xmlSaveFormatFileEnc(filename, doc, "utf-8", 1);
xmlFreeDoc(doc);
return 0;
}
int
tolua_eressea_open(lua_State* tolua_S)
{
@ -811,6 +860,8 @@ tolua_eressea_open(lua_State* tolua_S)
tolua_function(tolua_S, "set_key", tolua_setkey);
tolua_function(tolua_S, "rng_int", tolua_rng_int);
tolua_function(tolua_S, "write_spells", tolua_write_spells);
}
tolua_endmodule(tolua_S);
return 1;

View File

@ -1,5 +1,7 @@
Konzepte:
- Astralraum abschaffen
= done (modules.astralspace).
= done (Zauber entfernt).
- Regionsbesitz und Moral
- Allianzen
- GIB abstellen
@ -9,6 +11,7 @@ Talente:
- Talentlimit 10 + Rassenbonus
= done
- Ausdauer wirkt sich nicht auf Trefferpunkte aus
= done (rules.stamina)
- Wahrnehmung und Tarnung abschalten
= done
@ -16,6 +19,7 @@ Kampf:
- Regionen belagern
- Allianz ersetzt HELFE KAEMPFE
- Reduktion auf 1 Kampfrunde
= done (rules.combat_turns)
- neue Trefferchanceberechnung
- neue Beuteregelung

View File

@ -19,7 +19,7 @@
<xi:include href="buildings.xml"/>
<xi:include href="eressea/calendar.xml"/>
<xi:include href="equipment.xml"/>
<xi:include href="spells.xml"/>
<xi:include href="eressea/spells.xml"/>
<xi:include href="terrains.xml"/>
<xi:include href="dungeons.xml"/>
<xi:include href="directions.xml"/>
@ -75,6 +75,8 @@
<skill name="stamina" enable="true"/>
<skill name="unarmed" enable="true"/>
<param name="init_spells" value="0"/>
<param name="NewbieImmunity" value="8"/>
<param name="modules.wormholes" value="1"/>
<param name="entertain.base" value="0"/>

353
src/res/eressea/spells.xml Normal file
View File

@ -0,0 +1,353 @@
<?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"/>
<spell name="hail" type="gwyrrd" rank="5" level="3" index="5" variable="true"/>
<spell name="rustweapon" type="gwyrrd" rank="5" level="3" index="6" los="true" far="true" variable="true"/>
<spell name="combatrust" type="draig" rank="5" level="6" index="7" variable="true"/>
<spell name="treegrow" type="gwyrrd" rank="5" level="2" index="8" far="true" variable="true"/>
<spell name="healing" type="gwyrrd" rank="5" level="5" index="9" variable="true"/>
<spell name="song_of_healing" type="cerddor" rank="5" level="2" index="10" variable="true"/>
<spell name="bad_dreams" type="illaun" rank="5" level="10" index="11" far="true"/>
<spell name="gooddreams" type="illaun" rank="5" level="8" index="12" far="true"/>
<spell name="dreamreading" type="illaun" rank="5" level="4" index="13" far="true"/>
<spell name="tiredsoldiers" type="illaun" rank="5" level="4" index="15" variable="true"/>
<spell name="plague" type="draig" rank="5" level="7" index="16" far="true"/>
<spell name="magicboost" type="draig" rank="3" level="3" index="17" ship="true"/>
<spell name="chaosrow" type="draig" rank="5" level="8" index="18" variable="true"/>
<spell name="song_of_confusion" type="cerddor" rank="5" level="4" index="19" variable="true"/>
<spell name="flee" type="illaun" rank="5" level="2" index="20" variable="true"/>
<spell name="song_of_fear" type="cerddor" rank="5" level="3" index="21" variable="true"/>
<spell name="berserk" type="draig" rank="4" level="5" index="22" variable="true"/>
<spell name="bloodthirst" type="cerddor" rank="4" level="7" index="23" variable="true"/>
<spell name="maelstrom" type="gwyrrd" rank="5" level="15" index="24" ship="true" ocean="true"/>
<spell name="blessedharvest" type="gwyrrd" rank="5" level="1" index="25" ship="true" far="true" variable="true"/>
<spell name="raindance" type="cerddor" rank="5" level="3" index="26" ship="true" far="true" variable="true"/>
<spell name="transferauradruide" type="gwyrrd" rank="1" level="6" index="27" ship="true"/>
<spell name="transfer_aura_song" type="cerddor" rank="1" level="5" index="28" ship="true"/>
<spell name="transferaurachaos" type="draig" rank="1" level="7" index="29" ship="true"/>
<spell name="transferauratraum" type="illaun" rank="1" level="3" index="30" ship="true"/>
<spell name="auratransfer" type="tybied" rank="1" level="5" index="31" ship="true"/>
<spell name="stonegolem" type="gwyrrd" rank="4" level="1" index="32" variable="true"/>
<spell name="irongolem" type="gwyrrd" rank="4" level="2" index="33" variable="true"/>
<spell name="summonshadow" type="draig" rank="5" level="8" index="34" variable="true"/>
<spell name="summonshadowlords" type="draig" rank="5" level="12" index="35" variable="true"/>
<spell name="reelingarrows" type="gwyrrd" rank="5" level="5" index="36" variable="true"/>
<spell name="antimagiczone" type="tybied" rank="2" level="5" index="37" far="true" variable="true"/>
<spell name="cold_protection" type="gwyrrd" rank="5" level="3" index="39" los="true" ship="true" variable="true"/>
<spell name="steal_aura" type="tybied" rank="3" level="6" index="40" los="true" far="true" variable="true"/>
<spell name="summonundead" type="draig" rank="5" level="6" index="41" ship="true" far="true" variable="true"/>
<spell name="auraleak" type="draig" rank="3" level="9" index="42"/>
<spell name="great_drought" type="gwyrrd" rank="5" level="17" index="43" far="true"/>
<spell name="strongwall" type="gwyrrd" rank="5" level="8" index="44" variable="true"/>
<spell name="homestone" type="gwyrrd" rank="5" level="7" index="45"/>
<spell name="summonfireelemental" type="gwyrrd" rank="5" level="13" index="46" far="true"/>
<spell name="forestfire" type="draig" rank="5" level="10" index="47" far="true"/>
<spell name="summonent" type="gwyrrd" rank="5" level="10" index="49" variable="true"/>
<spell name="disturbingdreams" type="illaun" rank="5" level="6" index="50" far="true"/>
<spell name="appeasement" type="cerddor" rank="5" level="1" index="51" variable="true"/>
<spell name="sleep" type="illaun" rank="5" level="7" index="52" variable="true"/>
<spell name="earthquake" type="gwyrrd" rank="5" level="6" index="53" far="true"/>
<spell name="ironkeeper" type="gwyrrd" rank="5" level="3" index="54" far="true" variable="true"/>
<spell name="stormwinds" type="gwyrrd" rank="5" level="6" index="55" ship="true" ocean="true" variable="true"/>
<spell name="goodwinds" type="gwyrrd" rank="5" level="4" index="56" ship="true" variable="true"/>
<spell name="airship" type="tybied" rank="5" level="6" index="57" ship="true"/>
<spell name="summon_alp" type="illaun" rank="5" level="15" index="58"/>
<spell name="windshield" type="gwyrrd" rank="5" level="4" index="59" variable="true"/>
<spell name="raise_mob" type="cerddor" rank="5" level="10" index="60" variable="true"/>
<spell name="melancholy" type="cerddor" rank="5" level="11" index="61" far="true"/>
<spell name="headache" type="cerddor" rank="5" level="7" index="62" los="true"/>
<spell name="enterastral" type="tybied" rank="7" level="4" index="64" variable="true"/>
<spell name="leaveastral" type="tybied" rank="7" level="4" index="65" variable="true"/>
<spell name="versteinern" type="gwyrrd" rank="5" level="8" index="67" variable="true"/>
<spell name="treewalkenter" type="gwyrrd" rank="7" level="9" index="68" los="true" variable="true"/>
<spell name="treewalkexit" type="gwyrrd" rank="7" level="9" index="69" los="true" variable="true"/>
<spell name="chaossuction" type="draig" rank="5" level="14" index="70"/>
<spell name="view_reality" type="tybied" rank="5" level="10" index="71"/>
<spell name="astral_disruption" type="tybied" rank="4" level="14" index="72" variable="true"/>
<spell name="seduction" type="cerddor" rank="5" level="6" index="73" los="true"/>
<spell name="sound_out" type="cerddor" rank="5" level="7" index="74" los="true"/>
<spell name="calm_monster" type="cerddor" rank="5" level="6" index="75" los="true" ship="true"/>
<spell name="heroic_song" type="cerddor" rank="4" level="5" index="76" variable="true"/>
<spell name="frighten" type="cerddor" rank="5" level="8" index="77" variable="true"/>
<spell name="mindblast" type="illaun" rank="5" level="11" index="78" variable="true"/>
<spell name="combat_speed" type="tybied" rank="5" level="9" index="79" variable="true"/>
<spell name="double_time" type="tybied" rank="5" level="11" index="80" los="true" ship="true" variable="true"/>
<spell name="fiery_dragonbreath" type="gray" rank="5" level="3" index="81"/>
<spell name="icy_dragonbreath" type="gray" rank="5" level="6" index="82"/>
<spell name="powerful_dragonbreath" type="gray" rank="5" level="12" index="83"/>
<spell name="magicstreet" type="gwyrrd" rank="5" level="4" index="84" ship="true" far="true" variable="true"/>
<spell name="reanimate" type="illaun" rank="4" level="5" index="85" variable="true"/>
<spell name="courting" type="cerddor" rank="5" level="4" index="86" variable="true"/>
<spell name="generous" type="cerddor" rank="5" level="2" index="87" ship="true" far="true" variable="true"/>
<spell name="sacrifice_strength" type="tybied" rank="1" level="15" index="88"/>
<spell name="song_of_peace" type="cerddor" rank="5" level="12" index="89" variable="true"/>
<spell name="migration" type="cerddor" rank="5" level="9" index="90" los="true" variable="true"/>
<spell name="calm_riot" type="cerddor" rank="5" level="15" index="91" far="true"/>
<spell name="incite_riot" type="cerddor" rank="5" level="16" index="92" far="true"/>
<spell name="shapeshift" type="illaun" rank="5" level="3" index="93" variable="true"/>
<spell name="wolfhowl" type="gwyrrd" rank="5" level="7" index="94" variable="true"/>
<spell name="resist_magic" type="tybied" rank="2" level="3" index="97" los="true" ship="true" variable="true"/>
<spell name="keeploot" type="tybied" rank="5" level="3" index="98" variable="true"/>
<spell name="protective_runes" type="tybied" rank="2" level="8" index="99" ship="true"/>
<spell name="song_resist_magic" type="cerddor" rank="2" level="10" index="100" far="true" variable="true"/>
<spell name="song_suscept_magic" type="cerddor" rank="2" level="12" index="101" far="true" variable="true"/>
<spell name="analyze_magic" type="tybied" rank="5" level="1" index="102" los="true" ship="true" variable="true"/>
<spell name="analysedream" type="illaun" rank="5" level="5" index="103" los="true" ship="true"/>
<spell name="analysesong_unit" type="cerddor" rank="5" level="5" index="104" los="true" ship="true"/>
<spell name="analyse_object" type="cerddor" rank="5" level="8" index="105" ship="true" variable="true"/>
<spell name="destroy_magic" type="tybied" rank="2" level="5" index="106" los="true" ship="true" far="true" variable="true"/>
<spell name="break_curse" type="tybied" rank="3" level="7" index="107" los="true" ship="true" far="true" variable="true"/>
<spell name="meteor_rain" type="gray" rank="5" level="3" index="108" variable="true"/>
<spell name="fish_shield" type="tybied" rank="2" level="8" index="109" variable="true"/>
<spell name="armor_shield" type="tybied" rank="2" level="12" index="110" variable="true"/>
<spell name="deathcloud" type="draig" rank="5" level="11" index="111" far="true"/>
<spell name="orkdream" type="illaun" rank="5" level="12" index="112" los="true" variable="true"/>
<spell name="summondragon" type="draig" rank="5" level="11" index="113" far="true"/>
<spell name="living_rock" type="tybied" rank="5" level="13" index="116" variable="true"/>
<spell name="blessstonecircle" type="gwyrrd" rank="5" level="11" index="117"/>
<spell name="illaunfamiliar" type="illaun" rank="5" level="9" index="118"/>
<spell name="gwyrrdfamiliar" type="gwyrrd" rank="5" level="10" index="119"/>
<spell name="draigfamiliar" type="draig" rank="5" level="13" index="120"/>
<spell name="summon_familiar" type="cerddor" rank="5" level="9" index="121"/>
<spell name="summon_familiar" type="tybied" rank="5" level="12" index="122"/>
<spell name="song_of_slavery" type="cerddor" rank="5" level="13" index="123" los="true"/>
<spell name="fumblecurse" type="draig" rank="4" level="5" index="136" los="true" variable="true"/>
<spell name="icastle" type="illaun" rank="5" level="3" index="137"/>
<spell name="gwyrrddestroymagic" type="gwyrrd" rank="2" level="8" index="138" los="true" ship="true" far="true" variable="true"/>
<spell name="draigdestroymagic" type="draig" rank="2" level="10" index="139" los="true" ship="true" far="true" variable="true"/>
<spell name="illaundestroymagic" type="illaun" rank="2" level="8" index="140" los="true" ship="true" far="true" variable="true"/>
<spell name="cerddor_destroymagic" type="cerddor" rank="2" level="8" index="141" los="true" ship="true" far="true" variable="true"/>
<spell name="barkskin" type="gwyrrd" rank="2" level="12" index="142" variable="true"/>
<spell name="draigfumbleshield" type="draig" rank="2" level="9" index="143" variable="true"/>
<spell name="gwyrrdfumbleshield" type="gwyrrd" rank="2" level="5" index="144" variable="true"/>
<spell name="cerrdorfumbleshield" type="cerddor" rank="2" level="5" index="145" variable="true"/>
<spell name="tybiedfumbleshield" type="tybied" rank="2" level="2" index="146" variable="true"/>
<spell name="shadowknights" type="illaun" rank="4" level="1" index="147" variable="true"/>
<spell name="concealing_aura" type="tybied" rank="5" level="1" index="150" ship="true" variable="true"/>
<spell name="firewall" type="draig" rank="4" level="7" index="151" variable="true"/>
<spell name="wisps" type="illaun" rank="5" level="7" index="152" far="true" variable="true"/>
<spell name="sparklechaos" type="draig" rank="5" level="1" index="153" los="true" variable="true"/>
<spell name="sparkledream" type="illaun" rank="5" level="1" index="154" los="true" ship="true" variable="true"/>
<spell name="pull_astral" type="tybied" rank="7" level="6" index="156" variable="true"/>
<spell name="fetch_astral" type="tybied" rank="7" level="6" index="157" variable="true"/>
<spell name="shockwave" type="tybied" rank="5" level="5" index="163" variable="true"/>
<spell name="undeadhero" type="draig" rank="5" level="9" index="164" variable="true"/>
<spell name="wyrm_transformation" type="gray" rank="5" level="1" index="166"/>
<spell name="eternal_walls" type="tybied" rank="5" level="7" index="167" ship="true" variable="true"/>
<spell name="puttorest" type="illaun" rank="5" level="2" index="168" variable="true"/>
<spell name="unholypower" type="draig" rank="5" level="14" index="169" los="true" variable="true"/>
<spell name="holyground" type="gwyrrd" rank="5" level="9" index="170"/>
<spell name="bloodsacrifice" type="draig" rank="1" level="4" index="171" ship="true"/>
<spell name="magic_roots" type="gwyrrd" rank="5" level="16" index="172" far="true"/>
<spell name="clone" type="illaun" rank="5" level="9" index="173"/>
<spell name="drain_skills" type="gray" rank="5" level="12" index="174"/>
<spell name="aura_of_fear" type="gray" rank="5" level="12" index="175"/>
<spell name="shadowcall" type="gray" rank="5" level="12" index="176"/>
<spell name="mallorntreegrow" type="gwyrrd" rank="5" level="4" index="177" far="true" variable="true"/>
<spell name="big_recruit" type="cerddor" rank="5" level="14" index="179" variable="true"/>
<spell name="immolation" type="gray" rank="5" level="12" index="180"/>
<spell name="firestorm" type="gray" rank="5" level="8" index="181"/>
<spell name="coldfront" type="gray" rank="5" level="8" index="182"/>
<spell name="acidrain" type="gray" rank="5" level="8" index="183"/>
</spells>

View File

@ -88,9 +88,16 @@
<skill name="weaponsmithing" enable="true"/>
<param name="hunger.long" value="1"/>
<param name="rules.check_overload" value="0"/>
<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_turns" 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"/>

346
src/res/eressea2/spells.xml Normal file
View File

@ -0,0 +1,346 @@
<?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"/>
<spell name="hail" type="gwyrrd" rank="5" level="3" index="5" variable="true"/>
<spell name="rustweapon" type="gwyrrd" rank="5" level="3" index="6" los="true" far="true" variable="true"/>
<spell name="combatrust" type="draig" rank="5" level="6" index="7" variable="true"/>
<spell name="treegrow" type="gwyrrd" rank="5" level="2" index="8" far="true" variable="true"/>
<spell name="healing" type="gwyrrd" rank="5" level="5" index="9" variable="true"/>
<spell name="song_of_healing" type="cerddor" rank="5" level="2" index="10" variable="true"/>
<spell name="bad_dreams" type="illaun" rank="5" level="10" index="11" far="true"/>
<spell name="gooddreams" type="illaun" rank="5" level="8" index="12" far="true"/>
<spell name="dreamreading" type="illaun" rank="5" level="4" index="13" far="true"/>
<spell name="tiredsoldiers" type="illaun" rank="5" level="4" index="15" variable="true"/>
<spell name="plague" type="draig" rank="5" level="7" index="16" far="true"/>
<spell name="magicboost" type="draig" rank="3" level="3" index="17" ship="true"/>
<spell name="chaosrow" type="draig" rank="5" level="8" index="18" variable="true"/>
<spell name="song_of_confusion" type="cerddor" rank="5" level="4" index="19" variable="true"/>
<spell name="flee" type="illaun" rank="5" level="2" index="20" variable="true"/>
<spell name="song_of_fear" type="cerddor" rank="5" level="3" index="21" variable="true"/>
<spell name="berserk" type="draig" rank="4" level="5" index="22" variable="true"/>
<spell name="bloodthirst" type="cerddor" rank="4" level="7" index="23" variable="true"/>
<spell name="maelstrom" type="gwyrrd" rank="5" level="15" index="24" ship="true" ocean="true"/>
<spell name="blessedharvest" type="gwyrrd" rank="5" level="1" index="25" ship="true" far="true" variable="true"/>
<spell name="raindance" type="cerddor" rank="5" level="3" index="26" ship="true" far="true" variable="true"/>
<spell name="transferauradruide" type="gwyrrd" rank="1" level="6" index="27" ship="true"/>
<spell name="transfer_aura_song" type="cerddor" rank="1" level="5" index="28" ship="true"/>
<spell name="transferaurachaos" type="draig" rank="1" level="7" index="29" ship="true"/>
<spell name="transferauratraum" type="illaun" rank="1" level="3" index="30" ship="true"/>
<spell name="auratransfer" type="tybied" rank="1" level="5" index="31" ship="true"/>
<spell name="stonegolem" type="gwyrrd" rank="4" level="1" index="32" variable="true"/>
<spell name="irongolem" type="gwyrrd" rank="4" level="2" index="33" variable="true"/>
<spell name="summonshadow" type="draig" rank="5" level="8" index="34" variable="true"/>
<spell name="summonshadowlords" type="draig" rank="5" level="12" index="35" variable="true"/>
<spell name="reelingarrows" type="gwyrrd" rank="5" level="5" index="36" variable="true"/>
<spell name="antimagiczone" type="tybied" rank="2" level="5" index="37" far="true" variable="true"/>
<spell name="cold_protection" type="gwyrrd" rank="5" level="3" index="39" los="true" ship="true" variable="true"/>
<spell name="steal_aura" type="tybied" rank="3" level="6" index="40" los="true" far="true" variable="true"/>
<spell name="summonundead" type="draig" rank="5" level="6" index="41" ship="true" far="true" variable="true"/>
<spell name="auraleak" type="draig" rank="3" level="9" index="42"/>
<spell name="great_drought" type="gwyrrd" rank="5" level="17" index="43" far="true"/>
<spell name="strongwall" type="gwyrrd" rank="5" level="8" index="44" variable="true"/>
<spell name="homestone" type="gwyrrd" rank="5" level="7" index="45"/>
<spell name="summonfireelemental" type="gwyrrd" rank="5" level="13" index="46" far="true"/>
<spell name="forestfire" type="draig" rank="5" level="10" index="47" far="true"/>
<spell name="summonent" type="gwyrrd" rank="5" level="10" index="49" variable="true"/>
<spell name="disturbingdreams" type="illaun" rank="5" level="6" index="50" far="true"/>
<spell name="appeasement" type="cerddor" rank="5" level="1" index="51" variable="true"/>
<spell name="sleep" type="illaun" rank="5" level="7" index="52" variable="true"/>
<spell name="earthquake" type="gwyrrd" rank="5" level="6" index="53" far="true"/>
<spell name="ironkeeper" type="gwyrrd" rank="5" level="3" index="54" far="true" variable="true"/>
<spell name="stormwinds" type="gwyrrd" rank="5" level="6" index="55" ship="true" ocean="true" variable="true"/>
<spell name="goodwinds" type="gwyrrd" rank="5" level="4" index="56" ship="true" variable="true"/>
<spell name="airship" type="tybied" rank="5" level="6" index="57" ship="true"/>
<spell name="summon_alp" type="illaun" rank="5" level="15" index="58"/>
<spell name="windshield" type="gwyrrd" rank="5" level="4" index="59" variable="true"/>
<spell name="raise_mob" type="cerddor" rank="5" level="10" index="60" variable="true"/>
<spell name="melancholy" type="cerddor" rank="5" level="11" index="61" far="true"/>
<spell name="headache" type="cerddor" rank="5" level="7" index="62" los="true"/>
<spell name="versteinern" type="gwyrrd" rank="5" level="8" index="67" variable="true"/>
<spell name="chaossuction" type="draig" rank="5" level="14" index="70"/>
<spell name="view_reality" type="tybied" rank="5" level="10" index="71"/>
<spell name="seduction" type="cerddor" rank="5" level="6" index="73" los="true"/>
<spell name="sound_out" type="cerddor" rank="5" level="7" index="74" los="true"/>
<spell name="calm_monster" type="cerddor" rank="5" level="6" index="75" los="true" ship="true"/>
<spell name="heroic_song" type="cerddor" rank="4" level="5" index="76" variable="true"/>
<spell name="frighten" type="cerddor" rank="5" level="8" index="77" variable="true"/>
<spell name="mindblast" type="illaun" rank="5" level="11" index="78" variable="true"/>
<spell name="combat_speed" type="tybied" rank="5" level="9" index="79" variable="true"/>
<spell name="double_time" type="tybied" rank="5" level="11" index="80" los="true" ship="true" variable="true"/>
<spell name="fiery_dragonbreath" type="gray" rank="5" level="3" index="81"/>
<spell name="icy_dragonbreath" type="gray" rank="5" level="6" index="82"/>
<spell name="powerful_dragonbreath" type="gray" rank="5" level="12" index="83"/>
<spell name="magicstreet" type="gwyrrd" rank="5" level="4" index="84" ship="true" far="true" variable="true"/>
<spell name="reanimate" type="illaun" rank="4" level="5" index="85" variable="true"/>
<spell name="courting" type="cerddor" rank="5" level="4" index="86" variable="true"/>
<spell name="generous" type="cerddor" rank="5" level="2" index="87" ship="true" far="true" variable="true"/>
<spell name="sacrifice_strength" type="tybied" rank="1" level="15" index="88"/>
<spell name="song_of_peace" type="cerddor" rank="5" level="12" index="89" variable="true"/>
<spell name="migration" type="cerddor" rank="5" level="9" index="90" los="true" variable="true"/>
<spell name="calm_riot" type="cerddor" rank="5" level="15" index="91" far="true"/>
<spell name="incite_riot" type="cerddor" rank="5" level="16" index="92" far="true"/>
<spell name="shapeshift" type="illaun" rank="5" level="3" index="93" variable="true"/>
<spell name="wolfhowl" type="gwyrrd" rank="5" level="7" index="94" variable="true"/>
<spell name="resist_magic" type="tybied" rank="2" level="3" index="97" los="true" ship="true" variable="true"/>
<spell name="keeploot" type="tybied" rank="5" level="3" index="98" variable="true"/>
<spell name="protective_runes" type="tybied" rank="2" level="8" index="99" ship="true"/>
<spell name="song_resist_magic" type="cerddor" rank="2" level="10" index="100" far="true" variable="true"/>
<spell name="song_suscept_magic" type="cerddor" rank="2" level="12" index="101" far="true" variable="true"/>
<spell name="analyze_magic" type="tybied" rank="5" level="1" index="102" los="true" ship="true" variable="true"/>
<spell name="analysedream" type="illaun" rank="5" level="5" index="103" los="true" ship="true"/>
<spell name="analysesong_unit" type="cerddor" rank="5" level="5" index="104" los="true" ship="true"/>
<spell name="analyse_object" type="cerddor" rank="5" level="8" index="105" ship="true" variable="true"/>
<spell name="destroy_magic" type="tybied" rank="2" level="5" index="106" los="true" ship="true" far="true" variable="true"/>
<spell name="break_curse" type="tybied" rank="3" level="7" index="107" los="true" ship="true" far="true" variable="true"/>
<spell name="meteor_rain" type="gray" rank="5" level="3" index="108" variable="true"/>
<spell name="fish_shield" type="tybied" rank="2" level="8" index="109" variable="true"/>
<spell name="armor_shield" type="tybied" rank="2" level="12" index="110" variable="true"/>
<spell name="deathcloud" type="draig" rank="5" level="11" index="111" far="true"/>
<spell name="orkdream" type="illaun" rank="5" level="12" index="112" los="true" variable="true"/>
<spell name="summondragon" type="draig" rank="5" level="11" index="113" far="true"/>
<spell name="living_rock" type="tybied" rank="5" level="13" index="116" variable="true"/>
<spell name="blessstonecircle" type="gwyrrd" rank="5" level="11" index="117"/>
<spell name="illaunfamiliar" type="illaun" rank="5" level="9" index="118"/>
<spell name="gwyrrdfamiliar" type="gwyrrd" rank="5" level="10" index="119"/>
<spell name="draigfamiliar" type="draig" rank="5" level="13" index="120"/>
<spell name="summon_familiar" type="cerddor" rank="5" level="9" index="121"/>
<spell name="summon_familiar" type="tybied" rank="5" level="12" index="122"/>
<spell name="song_of_slavery" type="cerddor" rank="5" level="13" index="123" los="true"/>
<spell name="fumblecurse" type="draig" rank="4" level="5" index="136" los="true" variable="true"/>
<spell name="icastle" type="illaun" rank="5" level="3" index="137"/>
<spell name="gwyrrddestroymagic" type="gwyrrd" rank="2" level="8" index="138" los="true" ship="true" far="true" variable="true"/>
<spell name="draigdestroymagic" type="draig" rank="2" level="10" index="139" los="true" ship="true" far="true" variable="true"/>
<spell name="illaundestroymagic" type="illaun" rank="2" level="8" index="140" los="true" ship="true" far="true" variable="true"/>
<spell name="cerddor_destroymagic" type="cerddor" rank="2" level="8" index="141" los="true" ship="true" far="true" variable="true"/>
<spell name="barkskin" type="gwyrrd" rank="2" level="12" index="142" variable="true"/>
<spell name="draigfumbleshield" type="draig" rank="2" level="9" index="143" variable="true"/>
<spell name="gwyrrdfumbleshield" type="gwyrrd" rank="2" level="5" index="144" variable="true"/>
<spell name="cerrdorfumbleshield" type="cerddor" rank="2" level="5" index="145" variable="true"/>
<spell name="tybiedfumbleshield" type="tybied" rank="2" level="2" index="146" variable="true"/>
<spell name="shadowknights" type="illaun" rank="4" level="1" index="147" variable="true"/>
<spell name="concealing_aura" type="tybied" rank="5" level="1" index="150" ship="true" variable="true"/>
<spell name="firewall" type="draig" rank="4" level="7" index="151" variable="true"/>
<spell name="wisps" type="illaun" rank="5" level="7" index="152" far="true" variable="true"/>
<spell name="sparklechaos" type="draig" rank="5" level="1" index="153" los="true" variable="true"/>
<spell name="sparkledream" type="illaun" rank="5" level="1" index="154" los="true" ship="true" variable="true"/>
<spell name="shockwave" type="tybied" rank="5" level="5" index="163" variable="true"/>
<spell name="undeadhero" type="draig" rank="5" level="9" index="164" variable="true"/>
<spell name="wyrm_transformation" type="gray" rank="5" level="1" index="166"/>
<spell name="eternal_walls" type="tybied" rank="5" level="7" index="167" ship="true" variable="true"/>
<spell name="puttorest" type="illaun" rank="5" level="2" index="168" variable="true"/>
<spell name="unholypower" type="draig" rank="5" level="14" index="169" los="true" variable="true"/>
<spell name="holyground" type="gwyrrd" rank="5" level="9" index="170"/>
<spell name="bloodsacrifice" type="draig" rank="1" level="4" index="171" ship="true"/>
<spell name="magic_roots" type="gwyrrd" rank="5" level="16" index="172" far="true"/>
<spell name="clone" type="illaun" rank="5" level="9" index="173"/>
<spell name="drain_skills" type="gray" rank="5" level="12" index="174"/>
<spell name="aura_of_fear" type="gray" rank="5" level="12" index="175"/>
<spell name="shadowcall" type="gray" rank="5" level="12" index="176"/>
<spell name="mallorntreegrow" type="gwyrrd" rank="5" level="4" index="177" far="true" variable="true"/>
<spell name="big_recruit" type="cerddor" rank="5" level="14" index="179" variable="true"/>
<spell name="immolation" type="gray" rank="5" level="12" index="180"/>
<spell name="firestorm" type="gray" rank="5" level="8" index="181"/>
<spell name="coldfront" type="gray" rank="5" level="8" index="182"/>
<spell name="acidrain" type="gray" rank="5" level="8" index="183"/>
</spells>

View File

@ -118,6 +118,7 @@
/>
<Tool
Name="VCCLCompilerTool"
Optimization="3"
AdditionalIncludeDirectories="..;../common"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="2"
@ -280,6 +281,10 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath="..\common\settings-eressea.h"
>
</File>
<File
RelativePath="..\combined\stdafx.h"
>