forked from github/server
Magie-Updates
This commit is contained in:
parent
75234b303b
commit
e129125a90
5 changed files with 73 additions and 57 deletions
|
@ -3481,20 +3481,41 @@ defaultorders (void)
|
|||
static void
|
||||
update_spells(void)
|
||||
{
|
||||
region *r;
|
||||
for(r=regions; r; r=r->next) {
|
||||
unit *u;
|
||||
for(u=r->units;u;u=u->next) {
|
||||
if (u->faction!=NULL && u->number>0) {
|
||||
sc_mage *m = get_mage(u);
|
||||
if (!is_monsters(u->faction) && m != NULL) {
|
||||
if (m->magietyp == M_GRAY) continue;
|
||||
updatespelllist(u);
|
||||
faction * f;
|
||||
|
||||
for (f=factions;f;f=f->next) {
|
||||
if (f->magiegebiet!=M_NONE && !is_monsters(f)) {
|
||||
unit * mages[MAXMAGICIANS];
|
||||
unit *u;
|
||||
int maxlevel = 0, n = 0, i;
|
||||
|
||||
for (u=f->units;u && n<MAXMAGICIANS;u=u->nextF) {
|
||||
if (u->number>0) {
|
||||
sc_mage *mage = get_mage(u);
|
||||
if (mage) {
|
||||
int level = eff_skill(u, SK_MAGIC, u->region);
|
||||
if (level>maxlevel) maxlevel = level;
|
||||
mages[n++] = u;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (FactionSpells() && maxlevel>f->max_spelllevel) {
|
||||
update_spellbook(f, maxlevel);
|
||||
for (i=0;i!=n;++i) {
|
||||
sc_mage *mage = get_mage(mages[i]);
|
||||
while (mage->spells) {
|
||||
spell_list * slist = mage->spells;
|
||||
mage->spells = slist->next;
|
||||
free(slist);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (i=0;i!=n;++i) {
|
||||
updatespelllist(mages[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -793,14 +793,9 @@ learn_cmd(unit * u, order * ord)
|
|||
}
|
||||
else if (sk==SK_MAGIC) {
|
||||
sc_mage * mage = get_mage(u);
|
||||
int level = eff_skill(u, SK_MAGIC, r);
|
||||
if (FactionSpells() && level>u->faction->max_spelllevel) {
|
||||
update_spellbook(u->faction, level);
|
||||
}
|
||||
if (!mage) {
|
||||
mage = create_mage(u, u->faction->magiegebiet);
|
||||
}
|
||||
updatespelllist(u);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -415,7 +415,7 @@ update_spellbook(faction * f, int level)
|
|||
|
||||
for (slist=spells;slist!=NULL;slist=slist->next) {
|
||||
spell * sp = slist->data;
|
||||
if (sp->magietyp == M_COMMON && level<f->max_spelllevel && sp->level<=level) {
|
||||
if (sp->magietyp == M_COMMON && level>f->max_spelllevel && sp->level<=level) {
|
||||
commonspells[numspells++] = sp;
|
||||
} else {
|
||||
if (know_school(f, sp->magietyp) && sp->level <= level) {
|
||||
|
@ -511,7 +511,7 @@ updatespelllist(unit * u)
|
|||
if (sp->level<=sk) {
|
||||
boolean know = u_hasspell(u, sp);
|
||||
|
||||
if (know || know_school(u->faction, sp->magietyp)) {
|
||||
if (know || sp->magietyp==M_COMMON || know_school(u->faction, sp->magietyp)) {
|
||||
faction * f = u->faction;
|
||||
|
||||
if (!know) add_spell(get_spelllist(mage, u->faction), sp);
|
||||
|
|
|
@ -154,7 +154,7 @@
|
|||
<param name="rules.cavalry.mode" value="1"/>
|
||||
<param name="rules.magic.multipotion" value="1"/>
|
||||
<param name="rules.magic.wol_effect" value="5"/>
|
||||
<param name="rules.magic.factionlist" value="0"/>
|
||||
<param name="rules.magic.factionlist" value="1"/>
|
||||
<param name="rules.magic.wol_type" value="2"/>
|
||||
<param name="rules.magic.common" value="tybied"/> <!-- tybied spells can be cast by anyone -->
|
||||
<param name="rules.magic.elfpower" value="1"/> <!-- elves get ring-of-power bonus in a forest -->
|
||||
|
|
|
@ -276,7 +276,7 @@
|
|||
<!-- end cerddor -->
|
||||
|
||||
<!-- new gwyrrd -->
|
||||
<spell name="blessedharvest" type="gwyrrd" rank="5" level="20" index="25" ship="true" far="true" variable="true">
|
||||
<spell name="blessedharvest" type="gray" rank="5" level="1" index="25" ship="true" far="true" variable="true">
|
||||
<!-- Segen der Erde -->
|
||||
<resource name="aura" amount="1" cost="level"/>
|
||||
</spell>
|
||||
|
@ -561,15 +561,6 @@
|
|||
<spell name="double_time" type="common" 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="common" rank="5" level="3" index="81" combat="2">
|
||||
<resource name="aura" amount="1" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="icy_dragonbreath" type="common" rank="5" level="6" index="82" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="powerful_dragonbreath" type="common" rank="5" level="12" index="83" combat="2">
|
||||
<resource name="aura" amount="3" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="magicstreet" type="common" 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"/>
|
||||
|
@ -593,9 +584,6 @@
|
|||
<spell name="break_curse" type="common" 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="common" rank="5" level="3" index="108" variable="true" combat="2">
|
||||
<resource name="aura" amount="1" cost="level"/>
|
||||
</spell>
|
||||
<spell name="fish_shield" type="common" rank="2" level="8" index="109" variable="true" combat="1">
|
||||
<resource name="aura" amount="4" cost="level"/>
|
||||
</spell>
|
||||
|
@ -646,41 +634,53 @@
|
|||
<spell name="shockwave" type="common" rank="5" level="5" index="163" variable="true" combat="2">
|
||||
<resource name="aura" amount="1" cost="level"/>
|
||||
</spell>
|
||||
<spell name="wyrm_transformation" type="common" 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="common" 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="drain_skills" type="common" rank="5" level="12" index="174" combat="2">
|
||||
<resource name="aura" amount="4" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="aura_of_fear" type="common" rank="5" level="12" index="175" combat="2">
|
||||
<resource name="aura" amount="1" cost="level"/>
|
||||
</spell>
|
||||
<spell name="shadowcall" type="common" rank="5" level="12" index="176" combat="1">
|
||||
<resource name="aura" amount="2" cost="level"/>
|
||||
</spell>
|
||||
<spell name="immolation" type="common" rank="5" level="12" index="180" combat="2">
|
||||
<resource name="aura" amount="2" cost="level"/>
|
||||
</spell>
|
||||
<spell name="firestorm" type="common" rank="5" level="8" index="181" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="coldfront" type="common" rank="5" level="8" index="182" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="acidrain" type="common" rank="5" level="8" index="183" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<!-- end common spells -->
|
||||
|
||||
<!-- gray spells: given to individuals -->
|
||||
<!-- gray spells: given to individuals or monsters -->
|
||||
<spell name="fiery_dragonbreath" type="gray" rank="5" level="3" index="81" combat="2">
|
||||
<resource name="aura" amount="1" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="icy_dragonbreath" type="gray" rank="5" level="6" index="82" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="powerful_dragonbreath" type="gray" rank="5" level="12" index="83" combat="2">
|
||||
<resource name="aura" amount="3" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="meteor_rain" type="gray" rank="5" level="3" index="108" variable="true" combat="2">
|
||||
<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="transferauratraum" type="gray" rank="1" level="3" index="30" syntax="aura" parameters="ui" ship="true">
|
||||
<!-- Traum der Magie -->
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="drain_skills" type="gray" rank="5" level="12" index="174" combat="2">
|
||||
<resource name="aura" amount="4" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="aura_of_fear" type="gray" rank="5" level="12" index="175" combat="2">
|
||||
<resource name="aura" amount="1" cost="level"/>
|
||||
</spell>
|
||||
<spell name="shadowcall" type="gray" rank="5" level="12" index="176" combat="1">
|
||||
<resource name="aura" amount="2" cost="level"/>
|
||||
</spell>
|
||||
<spell name="immolation" type="gray" rank="5" level="12" index="180" combat="2">
|
||||
<resource name="aura" amount="2" cost="level"/>
|
||||
</spell>
|
||||
<spell name="firestorm" type="gray" rank="5" level="8" index="181" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="coldfront" type="gray" rank="5" level="8" index="182" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<spell name="acidrain" type="gray" rank="5" level="8" index="183" combat="2">
|
||||
<resource name="aura" amount="2" cost="fixed"/>
|
||||
</spell>
|
||||
<!-- end gray spells -->
|
||||
</spells>
|
||||
|
|
Loading…
Reference in a new issue