forked from github/server
specify levels with magic attacks (step one to removing spell->level)
This commit is contained in:
parent
3514218dba
commit
6417f55ec6
|
@ -24,12 +24,12 @@
|
|||
</spell>
|
||||
|
||||
<!-- draig spells -->
|
||||
<spell name="earn_silver#draig" type="draig" ship="true" variable="true" rank="5" level="1" index="159">
|
||||
<spell name="earn_silver#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_firesword" type="draig" ship="true" rank="5" level="12" index="148">
|
||||
<spell name="create_firesword" 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"/>
|
||||
|
@ -37,19 +37,19 @@
|
|||
<resource name="permaura" amount="1" cost="fixed"/>
|
||||
</spell>
|
||||
|
||||
<spell name="create_trollbelt" type="draig" ship="true" rank="5" level="9" index="48">
|
||||
<spell name="create_trollbelt" 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="earn_silver#gwyrrd" type="gwyrrd" ship="true" variable="true" rank="5" level="1" index="159">
|
||||
<spell name="earn_silver#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_magicherbbag" type="gwyrrd" ship="true" rank="5" level="5" index="165">
|
||||
<spell name="create_magicherbbag" 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"/>
|
||||
|
@ -57,18 +57,18 @@
|
|||
</spell>
|
||||
|
||||
<!-- illaun spells -->
|
||||
<spell name="earn_silver#illaun" type="illaun" ship="true" variable="true" rank="5" level="1" index="159">
|
||||
<spell name="earn_silver#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_dreameye" type="illaun" ship="true" rank="5" level="14" index="149">
|
||||
<spell name="create_dreameye" 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">
|
||||
<spell name="create_invisibility_sphere" 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"/>
|
||||
|
@ -76,12 +76,12 @@
|
|||
</spell>
|
||||
|
||||
<!-- cerddor spells -->
|
||||
<spell name="earn_silver#cerddor" type="cerddor" ship="true" variable="true" rank="5" level="1" index="159">
|
||||
<spell name="earn_silver#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_roqf" type="cerddor" ship="true" rank="5" level="11" index="63">
|
||||
<spell name="create_roqf" 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"/>
|
||||
|
@ -89,25 +89,25 @@
|
|||
</spell>
|
||||
|
||||
<!-- tybied spells -->
|
||||
<spell name="earn_silver#tybied" type="tybied" ship="true" variable="true" rank="5" level="1" index="159">
|
||||
<spell name="earn_silver#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_antimagic" type="tybied" ship="true" rank="5" level="7" index="38">
|
||||
<spell name="create_antimagic" 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">
|
||||
<spell name="create_rop" 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">
|
||||
<spell name="create_bagofholding" 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"/>
|
||||
|
@ -115,7 +115,7 @@
|
|||
</spell>
|
||||
|
||||
<!-- gray magic -->
|
||||
<spell name="create_runesword" type="gray" ship="true" rank="5" level="6" index="135">
|
||||
<spell name="create_runesword" 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"/>
|
||||
|
@ -123,20 +123,20 @@
|
|||
<resource name="laensword" amount="1" cost="fixed"/>
|
||||
</spell>
|
||||
|
||||
<spell name="create_chastitybelt" type="gray" ship="true" rank="5" level="7" index="134">
|
||||
<spell name="create_chastitybelt" 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">
|
||||
<spell name="create_focus" 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">
|
||||
<spell name="create_ror" 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"/>
|
||||
|
|
|
@ -453,7 +453,7 @@ static int tolua_unit_addnotice(lua_State * L)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static void unit_castspell(unit * u, const char *name)
|
||||
static void unit_castspell(unit * u, const char *name, int level)
|
||||
{
|
||||
quicklist *ql = spells;
|
||||
int qi;
|
||||
|
@ -465,7 +465,7 @@ static void unit_castspell(unit * u, const char *name)
|
|||
log_error("spell '%s' has no function.\n", sp->sname);
|
||||
} else {
|
||||
castorder co;
|
||||
create_castorder(&co, u, 0, sp, u->region, sp->level, sp->level * MagicPower(), 0, 0, 0);
|
||||
create_castorder(&co, u, 0, sp, u->region, level, level * MagicPower(), 0, 0, 0);
|
||||
sp->cast(&co);
|
||||
free_castorder(&co);
|
||||
}
|
||||
|
@ -477,7 +477,9 @@ static int tolua_unit_castspell(lua_State * L)
|
|||
{
|
||||
unit *self = (unit *) tolua_tousertype(L, 1, 0);
|
||||
const char *str = tolua_tostring(L, 2, 0);
|
||||
unit_castspell(self, str);
|
||||
int level = (int)tolua_tonumber(L, 3, 1);
|
||||
|
||||
unit_castspell(self, str, level);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -1896,7 +1896,9 @@ static void do_extra_spell(troop at, const att * a)
|
|||
if (sp->cast == NULL) {
|
||||
log_error("spell '%s' has no function.\n", sp->sname);
|
||||
} else {
|
||||
cast_combatspell(at, sp, sp->level, sp->level * MagicPower());
|
||||
int level = a->level;
|
||||
assert(a->level>0);
|
||||
cast_combatspell(at, sp, level, level * MagicPower());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -165,7 +165,6 @@ typedef struct sc_mage {
|
|||
fumble_f patzer;
|
||||
|
||||
/* this is not so much the spell's data, but the school's studying data */
|
||||
magic_t __magietyp;
|
||||
int level; /* Stufe des Zaubers */
|
||||
} spell;
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ extern "C" {
|
|||
const struct spell *sp;
|
||||
} data;
|
||||
int flags;
|
||||
int level;
|
||||
} att;
|
||||
|
||||
struct param;
|
||||
|
|
|
@ -1956,6 +1956,10 @@ static int parse_races(xmlDocPtr doc)
|
|||
xmlFree(propValue);
|
||||
} else {
|
||||
attack->data.sp = xml_spell(node, "spell");
|
||||
if (attack->data.sp) {
|
||||
attack->level = xml_ivalue(node, "level", 0);
|
||||
assert(attack->level > 0 || attack->data.sp->level > 0); /* magical attacks need a level */
|
||||
}
|
||||
}
|
||||
attack->type = xml_ivalue(node, "type", 0);
|
||||
attack->flags = xml_ivalue(node, "flags", 0);
|
||||
|
|
Loading…
Reference in New Issue