forked from github/server
WDW_PHOENIX define removed:
- Der Initialisierungs-Code ist in LUA reimplementiert. - Ich habe das ganze spoils-Konzept etwas allgemeiner gemacht, man kann jetzt einfach ein equipment-objekt in XML definieren (siehe vinyambar-wdw.xml) der die spoils für eine Rassea angibt, (z.B. phonix_spoils nennen). - Das gleiche für Drachen und Seeschlange gemacht.
This commit is contained in:
parent
5fa56103cc
commit
657fc3d123
|
@ -21,6 +21,7 @@
|
|||
#include "build.h"
|
||||
#include "building.h"
|
||||
#include "curse.h"
|
||||
#include "equipment.h"
|
||||
#include "faction.h"
|
||||
#include "goodies.h"
|
||||
#include "group.h"
|
||||
|
@ -827,10 +828,18 @@ remove_troop(troop dt)
|
|||
|
||||
rmtroop(dt);
|
||||
if (!df->alive && du->race->itemdrop) {
|
||||
char eqname[64];
|
||||
const struct equipment * eq;
|
||||
item * drops = du->race->itemdrop(du->race, du->number-df->run.number);
|
||||
|
||||
if (drops != NULL){
|
||||
i_merge(&du->items, &drops);
|
||||
}
|
||||
sprintf(eqname, "%s_spoils", du->race->_name[0]);
|
||||
eq = get_equipment(eqname);
|
||||
if (eq!=NULL) {
|
||||
equip_items(&du->items, eq);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -306,39 +306,6 @@ oldfamiliars(unit * u)
|
|||
equip_unit(u, get_equipment(fname));
|
||||
}
|
||||
|
||||
static item *
|
||||
dragon_drops(const struct race * rc, int size)
|
||||
{
|
||||
item * itm = NULL;
|
||||
switch (old_race(rc)) {
|
||||
case RC_FIREDRAGON:
|
||||
i_add(&itm, i_new(olditemtype[I_DRACHENBLUT], size));
|
||||
break;
|
||||
case RC_DRAGON:
|
||||
i_add(&itm, i_new(olditemtype[I_DRACHENBLUT], size * 4));
|
||||
i_add(&itm, i_new(olditemtype[I_DRAGONHEAD], size));
|
||||
break;
|
||||
case RC_WYRM:
|
||||
i_add(&itm, i_new(olditemtype[I_DRACHENBLUT], size * 10));
|
||||
i_add(&itm, i_new(olditemtype[I_DRAGONHEAD], size));
|
||||
break;
|
||||
case RC_SEASERPENT:
|
||||
i_add(&itm, i_new(olditemtype[I_DRACHENBLUT], size * 6));
|
||||
i_add(&itm, i_new(olditemtype[I_SEASERPENTHEAD], size));
|
||||
break;
|
||||
}
|
||||
return itm;
|
||||
}
|
||||
|
||||
static item *
|
||||
phoenix_drops(const struct race *rc, int size)
|
||||
{
|
||||
const item_type * it_phoenixfeather = it_find("phoenixfeather");
|
||||
item *itm = NULL;
|
||||
if (it_phoenixfeather!=NULL) i_add(&itm, i_new(it_phoenixfeather, size));
|
||||
return itm;
|
||||
}
|
||||
|
||||
static item *
|
||||
default_spoil(const struct race * rc, int size)
|
||||
{
|
||||
|
@ -461,8 +428,6 @@ register_races(void)
|
|||
/* function itemdrop
|
||||
* to generate battle spoils
|
||||
* race->itemdrop() */
|
||||
register_function((pf_generic)dragon_drops, "dragondrops");
|
||||
register_function((pf_generic)phoenix_drops, "phoenixdrops");
|
||||
register_function((pf_generic)default_spoil, "defaultdrops");
|
||||
|
||||
sprintf(zBuffer, "%s/races.xml", resourcepath());
|
||||
|
|
|
@ -544,17 +544,17 @@ race_compat(void)
|
|||
/* required for old_race, do not change order! */
|
||||
const char * oldracenames[MAXRACES] = {
|
||||
"dwarf", "elf", "orc", "goblin", "human", "troll", "demon", "insect",
|
||||
"halfling", "cat", "aquarian", "uruk", "snotling", "undead", "illusion",
|
||||
"youngdragon", "dragon", "wyrm", "ent", "catdragon", "dracoid",
|
||||
"special", "spell", "irongolem", "stonegolem", "shadowdemon",
|
||||
"shadowmaster", "mountainguard", "alp", "toad", "braineater", "peasant",
|
||||
"wolf", "lynx", "tunnelworm", "eagle", "rat", "songdragon", "nymph",
|
||||
"unicorn", "direwolf", "ghost", "imp", "dreamcat", "fairy", "owl",
|
||||
"hellcat", "tiger", "dolphin", "giantturtle", "kraken", "seaserpent",
|
||||
"shadowknight", "centaur", "skeleton", "skeletonlord", "zombie",
|
||||
"juju-zombie", "ghoul", "ghast", "museumghost", "gnome", "template",
|
||||
"clone", "shadowdragon", "shadowbat", "nightmare", "vampunicorn",
|
||||
"phoenix"
|
||||
"halfling", "cat", "aquarian", "uruk", "snotling", "undead", "illusion",
|
||||
"youngdragon", "dragon", "wyrm", "ent", "catdragon", "dracoid",
|
||||
"special", "spell", "irongolem", "stonegolem", "shadowdemon",
|
||||
"shadowmaster", "mountainguard", "alp", "toad", "braineater", "peasant",
|
||||
"wolf", "lynx", "tunnelworm", "eagle", "rat", "songdragon", "nymph",
|
||||
"unicorn", "direwolf", "ghost", "imp", "dreamcat", "fairy", "owl",
|
||||
"hellcat", "tiger", "dolphin", "giantturtle", "kraken", "seaserpent",
|
||||
"shadowknight", "centaur", "skeleton", "skeletonlord", "zombie",
|
||||
"juju-zombie", "ghoul", "ghast", "museumghost", "gnome", "template",
|
||||
"clone", "shadowdragon", "shadowbat", "nightmare", "vampunicorn",
|
||||
"phoenix"
|
||||
};
|
||||
int i;
|
||||
|
||||
|
|
|
@ -54,6 +54,5 @@
|
|||
#undef ARENA_MODULE
|
||||
#undef WORMHOLE_MODULE
|
||||
#undef XECMD_MODULE
|
||||
#define WDW_PHOENIX
|
||||
#define WDW_PYRAMIDSPELL
|
||||
#define WDW_PYRAMID
|
||||
|
|
|
@ -212,9 +212,6 @@
|
|||
<Filter
|
||||
Name="Text Files"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath="..\commit.txt">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\header.txt">
|
||||
</File>
|
||||
|
@ -370,6 +367,9 @@
|
|||
<Filter
|
||||
Name="XML files"
|
||||
Filter="">
|
||||
<File
|
||||
RelativePath="..\res\de\strings.xml">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\res\terrains.xml">
|
||||
</File>
|
||||
|
|
|
@ -876,60 +876,6 @@ fix_road_borders(void)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef WDW_PHOENIX
|
||||
static region *
|
||||
random_land_region(void)
|
||||
{
|
||||
region *r;
|
||||
int c = 0;
|
||||
|
||||
/* count the available regions */
|
||||
for(r=regions; r; r=r->next) {
|
||||
if (r->land && rplane(r)==NULL) ++c;
|
||||
}
|
||||
|
||||
/* choose one */
|
||||
c = rand()%c;
|
||||
|
||||
/* this is a bit obfuscated, but should be correct */
|
||||
for(r=regions; c > 0; r=r->next) {
|
||||
if (r->land && rplane(r)==NULL) --c;
|
||||
}
|
||||
|
||||
return(r);
|
||||
}
|
||||
|
||||
static void
|
||||
check_phoenix(void)
|
||||
{
|
||||
const race * phoenix_race = rc_find("phoenix");
|
||||
unit * phoenix;
|
||||
region * r;
|
||||
faction *f;
|
||||
|
||||
/* check if there is a phoenix in the world */
|
||||
for(f=factions; f; f=f->next) {
|
||||
unit *u;
|
||||
|
||||
for(u=f->units; u; u=u->nextF) {
|
||||
if(u->race == phoenix_race) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
f = findfaction(MONSTER_FACTION);
|
||||
if (f==NULL) return;
|
||||
|
||||
/* it is not, so we create it */
|
||||
r = random_land_region();
|
||||
phoenix = createunit(r, f, 1, phoenix_race);
|
||||
phoenix->name = strdup("Der Phönix");
|
||||
|
||||
/* TODO: generate an appropriate region message */
|
||||
}
|
||||
#endif
|
||||
|
||||
static void
|
||||
fix_dissolve(unit * u, int value, char mode)
|
||||
{
|
||||
|
@ -1146,10 +1092,6 @@ korrektur(void)
|
|||
/* Immer ausführen! Erschafft neue Teleport-Regionen, wenn nötig */
|
||||
create_teleport_plane();
|
||||
|
||||
#ifdef WDW_PHOENIX
|
||||
check_phoenix();
|
||||
#endif
|
||||
|
||||
if (global.data_version<TYPES_VERSION) fix_icastles();
|
||||
#ifdef FUZZY_BASE36
|
||||
enable_fuzzy = true;
|
||||
|
|
|
@ -57,7 +57,7 @@ region_getterrain(const region& r) {
|
|||
static const char *
|
||||
region_getname(const region& r) {
|
||||
if (r.land) return r.land->name;
|
||||
return r.terrain->_name;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -331,5 +331,24 @@
|
|||
<item name="rustychainmail" amount="1"/>
|
||||
</set>
|
||||
|
||||
<set name="dragon_spoils">
|
||||
<item name="dragonblood" amount="4"/>
|
||||
<item name="dragonhead" amount="1"/>
|
||||
</set>
|
||||
|
||||
<set name="youngdragon_spoils">
|
||||
<item name="dragonblood" amount="1"/>
|
||||
</set>
|
||||
|
||||
<set name="wyrm_spoils">
|
||||
<item name="dragonblood" amount="10"/>
|
||||
<item name="dragonhead" amount="1"/>
|
||||
</set>
|
||||
|
||||
<set name="seaserpent_spoils">
|
||||
<item name="dragonblood" amount="6"/>
|
||||
<item name="dragonhead" amount="1"/>
|
||||
</set>
|
||||
|
||||
</equipment>
|
||||
|
||||
|
|
|
@ -67,7 +67,6 @@
|
|||
<param name="database.gameid" value="3"/>
|
||||
<param name="globalreport" value="world"/>
|
||||
<param name="rules.check_overload" value="1"/>
|
||||
<param name="report.mailit" value="/usr/sbin:$HOME/eressea/bin:/bin:/usr/bin:/usr/local/bin"/>
|
||||
</game>
|
||||
<xi:include href="eressea/de/strings.xml"/>
|
||||
<xi:include href="eressea/en/strings.xml"/>
|
||||
|
|
|
@ -71,7 +71,6 @@
|
|||
<param name="database.gameid" value="6"/>
|
||||
<param name="globalreport" value="world"/>
|
||||
<param name="rules.check_overload" value="1"/>
|
||||
<param name="report.mailit" value="/usr/sbin:$HOME/eressea/bin:/bin:/usr/bin:/usr/local/bin"/>
|
||||
</game>
|
||||
<xi:include href="eressea/de/strings.xml"/>
|
||||
<xi:include href="eressea/en/strings.xml"/>
|
||||
|
|
|
@ -658,7 +658,6 @@
|
|||
</race>
|
||||
<race name="catdragon" magres="0.900000" maxaura="1.000000" regaura="1.000000" recruitcost="500000" weight="20000" capacity="10000" speed="1.000000" hp="20" damage="2d40" unarmedattack="0" unarmeddefense="0" defensemodifier="50" fly="yes" walk="yes" teach="no" shapeshift="yes" giveitem="yes" giveperson="yes" getitem="yes">
|
||||
<ai splitsize="1"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<attack type="4" damage="2d40"/>
|
||||
<attack type="4" damage="2d40"/>
|
||||
<attack type="4" damage="2d40"/>
|
||||
|
@ -673,7 +672,6 @@
|
|||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="name" value="namedragon"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="magic" modifier="12"/>
|
||||
<skill name="tactics" modifier="12"/>
|
||||
<skill name="perception" modifier="10"/>
|
||||
|
@ -687,7 +685,6 @@
|
|||
<function name="name" value="namedragon"/>
|
||||
<function name="age" value="agedragon"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="magic" modifier="8"/>
|
||||
<skill name="tactics" modifier="8"/>
|
||||
<skill name="perception" modifier="5"/>
|
||||
|
@ -701,7 +698,6 @@
|
|||
<function name="name" value="namedragon"/>
|
||||
<function name="age" value="agefiredragon"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
|
@ -1127,7 +1123,6 @@
|
|||
<ai splitsize="6" killpeasants="yes" moverandom="yes" learn="yes"/>
|
||||
<function name="name" value="namedragon"/>
|
||||
<function name="move" value="moveswimming"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<attack type="4" damage="1d30"/>
|
||||
<attack type="4" damage="1d30"/>
|
||||
|
@ -1288,7 +1283,6 @@
|
|||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="name" value="namedragon"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
|
@ -1321,98 +1315,11 @@
|
|||
<attack type="3" damage="1d4"/>
|
||||
<attack type="2" damage="2d60"/>
|
||||
</race>
|
||||
<race name="phoenix" magres="0.900000" maxaura="1.000000" regaura="2.000000" recruitcost="50000" weight="50000" capacity="30000" speed="2.000000" hp="500" ac="6" damage="1d20" unarmedattack="0" unarmeddefense="0" attackmodifier="7" defensemodifier="7" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="2" learn="yes"/>
|
||||
<function name="itemdrop" value="phoenixdrops"/>
|
||||
<skill name="magic" modifier="16"/>
|
||||
<skill name="tactics" modifier="8"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="1d12"/>
|
||||
<attack type="4" damage="1d10"/>
|
||||
<attack type="4" damage="1d10"/>
|
||||
<attack type="6" spell="immolation"/>
|
||||
</race>
|
||||
<race name="sphinx" magres="0.900000" maxaura="1.000000" regaura="3.000000" recruitcost="250000" weight="180000" capacity="100000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<skill name="magic" modifier="12"/>
|
||||
<skill name="tactics" modifier="12"/>
|
||||
<skill name="perception" modifier="10"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="powerful_dragonbreath"/>
|
||||
<attack type="6" spell="aura_of_fear"/>
|
||||
</race>
|
||||
<race name="littlescarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="1" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="5000"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d4"/>
|
||||
<attack type="4" damage="1d4"/>
|
||||
</race>
|
||||
<race name="greenscarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="acidrain"/>
|
||||
</race>
|
||||
<race name="bluescarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="30" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="coldfront"/>
|
||||
</race>
|
||||
<race name="redscarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="firestorm"/>
|
||||
</race>
|
||||
<race name="undeadpharaoh" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" cannotmove="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="drain_skills"/>
|
||||
<attack type="6" spell="aura_of_fear"/>
|
||||
<precombatspell spell="shadowcall"/>
|
||||
</race>
|
||||
<race name="mummy" magres="0.600000" maxaura="1.000000" regaura="1.000000" recruitcost="5" weight="1000" capacity="540" speed="1.000000" hp="60" ac="2" damage="1d7" unarmedattack="6" unarmeddefense="6" attackmodifier="6" defensemodifier="6" scarepeasants="yes" walk="yes" teach="no" noheal="yes" undead="yes" equipment="yes" nogive="yes">
|
||||
<ai splitsize="10000" moverandom="yes"/>
|
||||
<skill name="melee" modifier="1"/>
|
||||
<skill name="polearm" modifier="1"/>
|
||||
<skill name="tactics" modifier="1"/>
|
||||
<skill name="stamina" modifier="1"/>
|
||||
<skill name="unarmed" modifier="1"/>
|
||||
<attack type="4" damage="2d8"/>
|
||||
<attack type="3" damage="1d5"/>
|
||||
<attack type="3" damage="1d5"/>
|
||||
<attack type="2" damage="1d30"/>
|
||||
<attack type="2" damage="1d30"/>
|
||||
</race>
|
||||
<!--
|
||||
<race name="skeletal_wyrm" magres="0.900000" maxaura="1.000000" regaura="3.000000" recruitcost="250000" weight="180000" capacity="100000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="name" value="namedragon"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<function name="itemdrop" value="dragondrops"/>
|
||||
<skill name="magic" modifier="12"/>
|
||||
<skill name="tactics" modifier="12"/>
|
||||
<skill name="perception" modifier="10"/>
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
<param name="database.gameid" value="3"></param>
|
||||
<param name="hunger.long" value="0"></param>
|
||||
<param name="study.expensivemigrants" value="1"/>
|
||||
<param name="report.mailit" value="/usr/sbin:$HOME/bin:/bin:/usr/bin:/usr/local/bin"/>
|
||||
<param name="alliance.restricted" value="fight guard stealth money"/>
|
||||
<param name="alliance.auto" value="fight"/>
|
||||
<param name="alliance.transferquit" value="true"/>
|
||||
|
|
|
@ -65,7 +65,6 @@
|
|||
<param name="magic.power" value="0.5"/>
|
||||
<param name="resource.factor" value="0.25"/>
|
||||
<param name="study.expensivemigrants" value="1"/>
|
||||
<param name="report.mailit" value="/usr/sbin:$HOME/bin:/bin:/usr/bin:/usr/local/bin"/>
|
||||
<param name="alliance.skilllimit" value="15"/>
|
||||
<param name="alliance.restricted" value="fight guard stealth money"/>
|
||||
<param name="alliance.auto" value="fight"/>
|
||||
|
@ -95,4 +94,10 @@
|
|||
</resource>
|
||||
</resources>
|
||||
|
||||
<equipment>
|
||||
<set name="phoenix_spoils">
|
||||
<item name="phoenixfeather" amount="1"/>
|
||||
</set>
|
||||
</equipment>
|
||||
|
||||
</eressea>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<?xml version="1.0"?>
|
||||
<races>
|
||||
<!-- overrides of existing races -->
|
||||
<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" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace="yes" walk="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes" equipment="yes">
|
||||
<ai splitsize="10000" attackrandom="yes" moverandom="yes" learn="yes"></ai>
|
||||
<skill name="crossbow" modifier="0"></skill>
|
||||
|
@ -31,39 +32,6 @@
|
|||
<familiar race="eagle"></familiar>
|
||||
<familiar race="rat"></familiar>
|
||||
</race>
|
||||
<race name="apepsnake" magres="0.900000" maxaura="1.000000" regaura="1.000000" recruitcost="50000" weight="100" capacity="50" speed="1.000000" hp="20" ac="1" damage="0d0" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" canguard="yes" invinciblenonmagic="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes">
|
||||
<ai splitsize="500" attackrandom="yes" killpeasants="yes" moverandom="yes" learn="yes"/>
|
||||
<attack type="2" damage="3d15"/>
|
||||
<attack type="3" damage="1d1"/>
|
||||
<attack type="4" damage="1d1"/>
|
||||
</race>
|
||||
<race name="anubis" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" shapeshift="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="174"/>
|
||||
<attack type="6" spell="175"/>
|
||||
<precombatspell spell="176"/>
|
||||
</race>
|
||||
<race name="apophis" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" shapeshift="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="174"/>
|
||||
<attack type="6" spell="175"/>
|
||||
<precombatspell spell="176"/>
|
||||
</race>
|
||||
|
||||
<race name="ghast" magres="0.600000" maxaura="1.000000" regaura="1.000000" recruitcost="5" weight="1000" capacity="540" speed="1.000000" hp="60" ac="2" damage="1d7" unarmedattack="6" unarmeddefense="6" attackmodifier="6" defensemodifier="6" scarepeasants="yes" walk="yes" nolearn="yes" teach="no" absorbpeasants="yes" noheal="yes" undead="yes" equipment="yes" nogive="no">
|
||||
<ai splitsize="2000" aggression="0.02" killpeasants="yes" moverandom="yes"/>
|
||||
<function name="name" value="nameghoul"/>
|
||||
|
@ -162,4 +130,123 @@
|
|||
<attack type="1" damage="1d7"/>
|
||||
</race>
|
||||
|
||||
<!-- wdw-only races -->
|
||||
<race name="apepsnake" magres="0.900000" maxaura="1.000000" regaura="1.000000" recruitcost="50000" weight="100" capacity="50" speed="1.000000" hp="20" ac="1" damage="0d0" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" canguard="yes" invinciblenonmagic="yes" giveitem="yes" giveperson="yes" giveunit="yes" getitem="yes">
|
||||
<ai splitsize="500" attackrandom="yes" killpeasants="yes" moverandom="yes" learn="yes"/>
|
||||
<attack type="2" damage="3d15"/>
|
||||
<attack type="3" damage="1d1"/>
|
||||
<attack type="4" damage="1d1"/>
|
||||
</race>
|
||||
<race name="anubis" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" shapeshift="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="174"/>
|
||||
<attack type="6" spell="175"/>
|
||||
<precombatspell spell="176"/>
|
||||
</race>
|
||||
<race name="apophis" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" shapeshift="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<function name="move" value="movedragon"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="174"/>
|
||||
<attack type="6" spell="175"/>
|
||||
<precombatspell spell="176"/>
|
||||
</race>
|
||||
|
||||
<race name="phoenix" magres="0.900000" maxaura="1.000000" regaura="2.000000" recruitcost="50000" weight="50000" capacity="30000" speed="2.000000" hp="500" ac="6" damage="1d20" unarmedattack="0" unarmeddefense="0" attackmodifier="7" defensemodifier="7" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="2" learn="yes"/>
|
||||
<skill name="magic" modifier="16"/>
|
||||
<skill name="tactics" modifier="8"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="1d12"/>
|
||||
<attack type="4" damage="1d10"/>
|
||||
<attack type="4" damage="1d10"/>
|
||||
<attack type="6" spell="immolation"/>
|
||||
</race>
|
||||
<race name="sphinx" magres="0.900000" maxaura="1.000000" regaura="3.000000" recruitcost="250000" weight="180000" capacity="100000" speed="1.000000" hp="2700" ac="8" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="10" scarepeasants="yes" fly="yes" walk="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<skill name="magic" modifier="12"/>
|
||||
<skill name="tactics" modifier="12"/>
|
||||
<skill name="perception" modifier="10"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="powerful_dragonbreath"/>
|
||||
<attack type="6" spell="aura_of_fear"/>
|
||||
</race>
|
||||
<race name="littlescarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="1" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="5000"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d4"/>
|
||||
<attack type="4" damage="1d4"/>
|
||||
</race>
|
||||
<race name="greenscarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="acidrain"/>
|
||||
</race>
|
||||
<race name="bluescarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="30" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="coldfront"/>
|
||||
</race>
|
||||
<race name="redscarab" magres="0.000000" maxaura="0.000000" regaura="0.000000" recruitcost="50" weight="500" capacity="200" speed="1.000000" hp="25" ac="5" damage="2d6" unarmedattack="0" unarmeddefense="0" attackmodifier="6" defensemodifier="3" scarepeasants="yes" fly="yes" walk="yes" teach="no" giveitem="yes" getitem="yes">
|
||||
<ai splitsize="50"/>
|
||||
<skill name="magic" modifier="4"/>
|
||||
<skill name="tactics" modifier="4"/>
|
||||
<skill name="stealth" modifier="2"/>
|
||||
<skill name="perception" modifier="2"/>
|
||||
<attack type="4" damage="2d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="4" damage="1d6"/>
|
||||
<attack type="6" spell="firestorm"/>
|
||||
</race>
|
||||
<race name="undeadpharaoh" magres="0.950000" maxaura="1.000000" regaura="3.000000" recruitcost="2500000" weight="100" capacity="100000" speed="1.000000" hp="2700" ac="10" damage="2d60" unarmedattack="0" unarmeddefense="0" attackmodifier="10" defensemodifier="12" scarepeasants="yes" cannotmove="yes" teach="no" getitem="yes" resistbash="yes" resistcut="yes" resistpierce="yes">
|
||||
<ai splitsize="1" killpeasants="yes" learn="yes"/>
|
||||
<skill name="tactics" modifier="20"/>
|
||||
<skill name="perception" modifier="20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="3d20"/>
|
||||
<attack type="4" damage="5d30"/>
|
||||
<attack type="6" spell="drain_skills"/>
|
||||
<attack type="6" spell="aura_of_fear"/>
|
||||
<precombatspell spell="shadowcall"/>
|
||||
</race>
|
||||
<race name="mummy" magres="0.600000" maxaura="1.000000" regaura="1.000000" recruitcost="5" weight="1000" capacity="540" speed="1.000000" hp="60" ac="2" damage="1d7" unarmedattack="6" unarmeddefense="6" attackmodifier="6" defensemodifier="6" scarepeasants="yes" walk="yes" teach="no" noheal="yes" undead="yes" equipment="yes" nogive="yes">
|
||||
<ai splitsize="10000" moverandom="yes"/>
|
||||
<skill name="melee" modifier="1"/>
|
||||
<skill name="polearm" modifier="1"/>
|
||||
<skill name="tactics" modifier="1"/>
|
||||
<skill name="stamina" modifier="1"/>
|
||||
<skill name="unarmed" modifier="1"/>
|
||||
<attack type="4" damage="2d8"/>
|
||||
<attack type="3" damage="1d5"/>
|
||||
<attack type="3" damage="1d5"/>
|
||||
<attack type="2" damage="1d30"/>
|
||||
<attack type="2" damage="1d30"/>
|
||||
</race>
|
||||
</races>
|
||||
|
|
|
@ -12,6 +12,7 @@ function process(orders)
|
|||
|
||||
-- set up the sphinx
|
||||
-- init_sphinxhints()
|
||||
update_phoenix()
|
||||
sphinx_handler()
|
||||
sphinx_weekly()
|
||||
|
||||
|
@ -57,6 +58,7 @@ scripts = {
|
|||
"extensions.lua",
|
||||
"write_emails.lua",
|
||||
"wdw/sphinx.lua",
|
||||
"wdw/phoenix.lua",
|
||||
"wdw/standings.lua"
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
function update_phoenix()
|
||||
local f
|
||||
for f in factions() do
|
||||
local u
|
||||
for u in f.units do
|
||||
if u.race=="phoenix" then
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
f = get_faction(0)
|
||||
if (f~=nil) then
|
||||
local r, nregions = 0
|
||||
for r in regions() do
|
||||
nregions = nregions+1
|
||||
end
|
||||
local rno = math.random(nregions)
|
||||
for r in regions() do
|
||||
rno = rno - 1
|
||||
if rno <=1 then
|
||||
if r.plane_id==0 and r.name~=nil then
|
||||
local u = add_unit(f, r)
|
||||
u.race = "phoenix"
|
||||
u.name = "Der Phönix"
|
||||
-- TODO: generate an appropriate region message
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
10
src/todo.txt
10
src/todo.txt
|
@ -21,7 +21,6 @@ Code cleanup:
|
|||
|
||||
Larger Features:
|
||||
- eressea (b/g)zip reports?
|
||||
- mailit-format ändern?
|
||||
- NO_RUNNING
|
||||
- ZERSTÖRE - Man sollte alle Materialien zurückkriegen können:
|
||||
|
||||
|
@ -46,20 +45,13 @@ Old Terrain still needed:
|
|||
- monster.c, ent movement
|
||||
- economy.c, insekten
|
||||
|
||||
mailit-format ändern?
|
||||
|
||||
[11:01] <Enno`> am besten wäre, wenn mailit nur die optionen, nicht das ganze script enthielte
|
||||
[11:01] <Enno`> und ein skript dann mailit als input nähme
|
||||
[11:02] <Enno`> also nur enno@eressea.upb.de pka3 BZIP2 nr cr zv
|
||||
|
||||
unterschiede in vin3 + wdw per config statt defines?
|
||||
|
||||
#define NEWATSROI 1
|
||||
#define ATSBONUS 2
|
||||
#define ROIBONUS 4
|
||||
|
||||
#define WDW_PHOENIX
|
||||
#define WDW_PYRAMIDSPE
|
||||
#define WDW_PYRAMIDSPELL
|
||||
|
||||
#define ARENA_MODULE
|
||||
#define WORMHOLE_MODULE
|
||||
|
|
Loading…
Reference in New Issue