forked from github/server
spoils die 2.
This commit is contained in:
parent
7c9c5ebeae
commit
b23529f731
|
@ -31,7 +31,7 @@ resource_type rt_elfspoil = {
|
||||||
&res_changeitem
|
&res_changeitem
|
||||||
};
|
};
|
||||||
|
|
||||||
item_type it_elfspoil = {
|
item_type it_elvenspoil = {
|
||||||
&rt_elfspoil, /* resourcetype */
|
&rt_elfspoil, /* resourcetype */
|
||||||
0, 1, 0, /* flags, weight, capacity */
|
0, 1, 0, /* flags, weight, capacity */
|
||||||
NULL, /* construction */
|
NULL, /* construction */
|
||||||
|
|
|
@ -3257,3 +3257,4 @@ spell_name(const struct spell * sp, const struct locale * lang)
|
||||||
}
|
}
|
||||||
return sp->sname;
|
return sp->sname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,6 +41,10 @@
|
||||||
#include "karma.h"
|
#include "karma.h"
|
||||||
#include "group.h"
|
#include "group.h"
|
||||||
|
|
||||||
|
/* item includes */
|
||||||
|
#include <items/racespoils.h>
|
||||||
|
|
||||||
|
|
||||||
/* util includes */
|
/* util includes */
|
||||||
#include <attrib.h>
|
#include <attrib.h>
|
||||||
#include <functions.h>
|
#include <functions.h>
|
||||||
|
@ -525,6 +529,105 @@ dragon_drops(const struct race * rc, int size)
|
||||||
}
|
}
|
||||||
return itm;
|
return itm;
|
||||||
}
|
}
|
||||||
|
static item *
|
||||||
|
elf_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_elvenspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
demon_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_demonspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
goblin_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_goblinspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
dwarf_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_dwarfspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
halfling_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_halflingspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
human_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_humanspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
aquarian_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_aquarianspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
insect_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_insectspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
cat_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_catspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
orc_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_orcspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
static item *
|
||||||
|
troll_spoil(const struct race * rc, int size)
|
||||||
|
{
|
||||||
|
item * itm = NULL;
|
||||||
|
if (rand()%100 < RACESPOILCHANCE){
|
||||||
|
i_add(&itm, i_new(&it_trollspoil, size));
|
||||||
|
}
|
||||||
|
return itm;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
rc_specialdamage(const race * ar, const race * dr, const struct weapon_type * wtype)
|
rc_specialdamage(const race * ar, const race * dr, const struct weapon_type * wtype)
|
||||||
|
@ -781,20 +884,26 @@ static xml_callbacks xml_races = {
|
||||||
tagbegin, tagend, NULL
|
tagbegin, tagend, NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Die Funktionen werden über den hier registrierten Namen in races.xml
|
||||||
|
* in die jeweilige Rassendefiniton eingebunden */
|
||||||
void
|
void
|
||||||
register_races(void)
|
register_races(void)
|
||||||
{
|
{
|
||||||
char zBuffer[MAX_PATH];
|
char zBuffer[MAX_PATH];
|
||||||
/* init_familiar functions */
|
/* function initfamiliar */
|
||||||
register_function((pf_generic)oldfamiliars, "oldfamiliars");
|
register_function((pf_generic)oldfamiliars, "oldfamiliars");
|
||||||
|
|
||||||
/* move_allowed functions */
|
/* function move
|
||||||
|
* into which regiontyp moving is allowed for this race
|
||||||
|
* race->move_allowed() */
|
||||||
register_function((pf_generic)allowed_swim, "moveswimming");
|
register_function((pf_generic)allowed_swim, "moveswimming");
|
||||||
register_function((pf_generic)allowed_walk, "movewalking");
|
register_function((pf_generic)allowed_walk, "movewalking");
|
||||||
register_function((pf_generic)allowed_fly, "moveflying");
|
register_function((pf_generic)allowed_fly, "moveflying");
|
||||||
register_function((pf_generic)allowed_dragon, "movedragon");
|
register_function((pf_generic)allowed_dragon, "movedragon");
|
||||||
|
|
||||||
/* generate_name functions */
|
/* function name
|
||||||
|
* generate a name for a nonplayerunit
|
||||||
|
* race->generate_name() */
|
||||||
register_function((pf_generic)untoten_name, "nameundead");
|
register_function((pf_generic)untoten_name, "nameundead");
|
||||||
register_function((pf_generic)skeleton_name, "nameskeleton");
|
register_function((pf_generic)skeleton_name, "nameskeleton");
|
||||||
register_function((pf_generic)zombie_name, "namezombie");
|
register_function((pf_generic)zombie_name, "namezombie");
|
||||||
|
@ -803,7 +912,8 @@ register_races(void)
|
||||||
register_function((pf_generic)dracoid_name, "namedracoid");
|
register_function((pf_generic)dracoid_name, "namedracoid");
|
||||||
register_function((pf_generic)shadow_name, "nameshadow");
|
register_function((pf_generic)shadow_name, "nameshadow");
|
||||||
|
|
||||||
/* aging functions */
|
/* function age
|
||||||
|
* race->age() */
|
||||||
register_function((pf_generic)age_undead, "ageundead");
|
register_function((pf_generic)age_undead, "ageundead");
|
||||||
register_function((pf_generic)age_illusion, "ageillusion");
|
register_function((pf_generic)age_illusion, "ageillusion");
|
||||||
register_function((pf_generic)age_skeleton, "ageskeleton");
|
register_function((pf_generic)age_skeleton, "ageskeleton");
|
||||||
|
@ -812,9 +922,22 @@ register_races(void)
|
||||||
register_function((pf_generic)age_dragon, "agedragon");
|
register_function((pf_generic)age_dragon, "agedragon");
|
||||||
register_function((pf_generic)age_firedragon, "agefiredragon");
|
register_function((pf_generic)age_firedragon, "agefiredragon");
|
||||||
|
|
||||||
/* itemdrop functions */
|
/* function itemdrop
|
||||||
|
* to generate battle spoils
|
||||||
|
* race->itemdrop() */
|
||||||
register_function((pf_generic)dragon_drops, "dragondrops");
|
register_function((pf_generic)dragon_drops, "dragondrops");
|
||||||
sprintf(zBuffer, "%s/races.xml", resourcepath());
|
register_function((pf_generic)elf_spoil, "elfspoil");
|
||||||
|
register_function((pf_generic)demon_spoil, "demonspoil");
|
||||||
|
register_function((pf_generic)goblin_spoil, "goblinspoil");
|
||||||
|
register_function((pf_generic)dwarf_spoil, "dwarfspoil");
|
||||||
|
register_function((pf_generic)halfling_spoil, "halflingspoil");
|
||||||
|
register_function((pf_generic)human_spoil, "humanspoil");
|
||||||
|
register_function((pf_generic)aquarian_spoil, "aquarianspoil");
|
||||||
|
register_function((pf_generic)insect_spoil, "insectspoil");
|
||||||
|
register_function((pf_generic)cat_spoil, "catspoil");
|
||||||
|
register_function((pf_generic)orc_spoil, "orcspoil");
|
||||||
|
register_function((pf_generic)troll_spoil, "trollspoil");
|
||||||
|
|
||||||
|
sprintf(zBuffer, "%s/races.xml", resourcepath());
|
||||||
xml_register(&xml_races, "eressea races", 0);
|
xml_register(&xml_races, "eressea races", 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,8 @@
|
||||||
#define GOLEM_IRON 4 /* Anzahl Eisen in einem Eisengolem */
|
#define GOLEM_IRON 4 /* Anzahl Eisen in einem Eisengolem */
|
||||||
#define GOLEM_STONE 4 /* Anzahl Steine in einem Steingolem */
|
#define GOLEM_STONE 4 /* Anzahl Steine in einem Steingolem */
|
||||||
|
|
||||||
|
#define RACESPOILCHANCE 5 /* Chance auf rassentypische Beute */
|
||||||
|
|
||||||
typedef struct att {
|
typedef struct att {
|
||||||
int type;
|
int type;
|
||||||
union {
|
union {
|
||||||
|
|
|
@ -965,6 +965,7 @@
|
||||||
</race>
|
</race>
|
||||||
<race name="halfling" magres="0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="80" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
<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 walk giveitem giveperson giveunit getitem equipment>
|
||||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||||
|
<function name="itemdrop" value="halflingspoil"></function>
|
||||||
<skill name="sk_crossbow" modifier="1"></skill>
|
<skill name="sk_crossbow" modifier="1"></skill>
|
||||||
<skill name="sk_mining" modifier="1"></skill>
|
<skill name="sk_mining" modifier="1"></skill>
|
||||||
<skill name="sk_bow" modifier="-1"></skill>
|
<skill name="sk_bow" modifier="-1"></skill>
|
||||||
|
@ -1025,6 +1026,7 @@
|
||||||
<race name="demon" magres="0.150000" maxaura="1.000000" regaura="1.250000" recruitcost="150" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="50" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk shapeshift giveitem giveperson giveunit getitem recruitethereal equipment>
|
<race name="demon" magres="0.150000" maxaura="1.000000" regaura="1.250000" recruitcost="150" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="50" ac="2" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk shapeshift giveitem giveperson giveunit getitem recruitethereal equipment>
|
||||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||||
<function name="initfamiliar" value="oldfamiliars"></function>
|
<function name="initfamiliar" value="oldfamiliars"></function>
|
||||||
|
<function name="itemdrop" value="demonspoil"></function>
|
||||||
<skill name="sk_alchemy" modifier="2"></skill>
|
<skill name="sk_alchemy" modifier="2"></skill>
|
||||||
<skill name="sk_trade" modifier="-3"></skill>
|
<skill name="sk_trade" modifier="-3"></skill>
|
||||||
<skill name="sk_forestry" modifier="1"></skill>
|
<skill name="sk_forestry" modifier="1"></skill>
|
||||||
|
@ -1101,6 +1103,7 @@
|
||||||
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="600" capacity="440" speed="1.000000" hp="16" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="0" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
<race name="goblin" magres="-0.050000" maxaura="1.000000" regaura="1.000000" recruitcost="40" maintenance="10" weight="600" capacity="440" speed="1.000000" hp="16" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="0" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||||
<function name="initfamiliar" value="oldfamiliars"></function>
|
<function name="initfamiliar" value="oldfamiliars"></function>
|
||||||
|
<function name="itemdrop" value="goblinspoil"></function>
|
||||||
<skill name="sk_alchemy" modifier="1"></skill>
|
<skill name="sk_alchemy" modifier="1"></skill>
|
||||||
<skill name="sk_mining" modifier="1"></skill>
|
<skill name="sk_mining" modifier="1"></skill>
|
||||||
<skill name="sk_building" modifier="1"></skill>
|
<skill name="sk_building" modifier="1"></skill>
|
||||||
|
@ -1184,6 +1187,7 @@
|
||||||
</race>
|
</race>
|
||||||
<race name="elf" magres="0.100000" maxaura="1.000000" regaura="1.250000" recruitcost="130" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
<race name="elf" magres="0.100000" maxaura="1.000000" regaura="1.250000" recruitcost="130" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="18" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||||
|
<function name="itemdrop" value="elfspoil"></function>
|
||||||
<skill name="sk_alchemy" modifier="-1"></skill>
|
<skill name="sk_alchemy" modifier="-1"></skill>
|
||||||
<skill name="sk_mining" modifier="-2"></skill>
|
<skill name="sk_mining" modifier="-2"></skill>
|
||||||
<skill name="sk_bow" modifier="2"></skill>
|
<skill name="sk_bow" modifier="2"></skill>
|
||||||
|
@ -1210,6 +1214,7 @@
|
||||||
</race>
|
</race>
|
||||||
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="110" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
<race name="dwarf" magres="0.050000" maxaura="1.000000" regaura="0.500000" recruitcost="110" maintenance="10" weight="1000" capacity="540" speed="1.000000" hp="24" ac="0" damage="1d5" unarmedattack="-2" unarmeddefense="-2" attackmodifier="0" defensemodifier="0" playerrace walk giveitem giveperson giveunit getitem equipment>
|
||||||
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
<ai splitsize="10000" attackrandom moverandom learn></ai>
|
||||||
|
<function name="itemdrop" value="dwarfspoil"></function>
|
||||||
<skill name="sk_mining" modifier="2"></skill>
|
<skill name="sk_mining" modifier="2"></skill>
|
||||||
<skill name="sk_bow" modifier="-1"></skill>
|
<skill name="sk_bow" modifier="-1"></skill>
|
||||||
<skill name="sk_building" modifier="2"></skill>
|
<skill name="sk_building" modifier="2"></skill>
|
||||||
|
|
Loading…
Reference in New Issue