forked from github/server
commit
722be026b2
|
@ -697,7 +697,7 @@ end
|
||||||
|
|
||||||
function test_golem_use_four_iron()
|
function test_golem_use_four_iron()
|
||||||
local r0 = region.create(0, 0, "plain")
|
local r0 = region.create(0, 0, "plain")
|
||||||
local f1 = faction.create("noreply@eressea.de", "dwarf", "de")
|
local f1 = faction.create("noreply@eressea.de", "halfling", "de")
|
||||||
local u1 = unit.create(f1, r0, 3)
|
local u1 = unit.create(f1, r0, 3)
|
||||||
u1.race = "irongolem"
|
u1.race = "irongolem"
|
||||||
u1:set_skill("weaponsmithing", 1)
|
u1:set_skill("weaponsmithing", 1)
|
||||||
|
|
|
@ -656,7 +656,7 @@ use_birthdayamulet(unit * u, const struct item_type *itype, int amount,
|
||||||
#define FL_ITEM_MOUNT ((1<<4) | FL_ITEM_ANIMAL) /* ist ein Reittier */
|
#define FL_ITEM_MOUNT ((1<<4) | FL_ITEM_ANIMAL) /* ist ein Reittier */
|
||||||
|
|
||||||
/* ------------------------------------------------------------- */
|
/* ------------------------------------------------------------- */
|
||||||
/* Kann auch von Nichtmagier benutzt werden, modifiziert Taktik für diese
|
/* Kann auch von Nichtmagier benutzt werden, modifiziert Taktik fuer diese
|
||||||
* Runde um -1 - 4 Punkte. */
|
* Runde um -1 - 4 Punkte. */
|
||||||
static int
|
static int
|
||||||
use_tacticcrystal(unit * u, const struct item_type *itype, int amount,
|
use_tacticcrystal(unit * u, const struct item_type *itype, int amount,
|
||||||
|
@ -667,8 +667,8 @@ use_tacticcrystal(unit * u, const struct item_type *itype, int amount,
|
||||||
int duration = 1; /* wirkt nur eine Runde */
|
int duration = 1; /* wirkt nur eine Runde */
|
||||||
curse *c;
|
curse *c;
|
||||||
float effect;
|
float effect;
|
||||||
float power = 5; /* Widerstand gegen Antimagiesprüche, ist in diesem
|
float power = 5; /* Widerstand gegen Antimagiesprueche, ist in diesem
|
||||||
Fall egal, da der curse für den Kampf gelten soll,
|
Fall egal, da der curse fuer den Kampf gelten soll,
|
||||||
der vor den Antimagiezaubern passiert */
|
der vor den Antimagiezaubern passiert */
|
||||||
|
|
||||||
effect = (float)(rng_int() % 6 - 1);
|
effect = (float)(rng_int() % 6 - 1);
|
||||||
|
@ -685,8 +685,8 @@ use_tacticcrystal(unit * u, const struct item_type *itype, int amount,
|
||||||
|
|
||||||
typedef struct t_item {
|
typedef struct t_item {
|
||||||
const char *name;
|
const char *name;
|
||||||
/* [0]: Einzahl für eigene; [1]: Mehrzahl für eigene;
|
/* [0]: Einzahl fuer eigene; [1]: Mehrzahl fuer eigene;
|
||||||
* [2]: Einzahl für Fremde; [3]: Mehrzahl für Fremde */
|
* [2]: Einzahl fuer Fremde; [3]: Mehrzahl fuer Fremde */
|
||||||
bool is_resource;
|
bool is_resource;
|
||||||
skill_t skill;
|
skill_t skill;
|
||||||
int minskill;
|
int minskill;
|
||||||
|
@ -712,7 +712,7 @@ static int
|
||||||
mod_dwarves_only(const unit * u, const region * r, skill_t sk, int value)
|
mod_dwarves_only(const unit * u, const region * r, skill_t sk, int value)
|
||||||
{
|
{
|
||||||
unused_arg(r);
|
unused_arg(r);
|
||||||
if (u->faction->race == get_race(RC_DWARF)) {
|
if (u_race(u) == get_race(RC_DWARF) || (u_race(u)->flags & RCF_IRONGOLEM)) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
return -118;
|
return -118;
|
||||||
|
@ -779,7 +779,7 @@ use_warmthpotion(struct unit *u, const struct item_type *itype, int amount,
|
||||||
if (u->faction->race == get_race(RC_INSECT)) {
|
if (u->faction->race == get_race(RC_INSECT)) {
|
||||||
fset(u, UFL_WARMTH);
|
fset(u, UFL_WARMTH);
|
||||||
} else {
|
} else {
|
||||||
/* nur für insekten: */
|
/* nur fuer insekten: */
|
||||||
cmistake(u, ord, 163, MSG_EVENT);
|
cmistake(u, ord, 163, MSG_EVENT);
|
||||||
return ECUSTOM;
|
return ECUSTOM;
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
attrib_type at_creator = {
|
attrib_type at_creator = {
|
||||||
"creator"
|
"creator"
|
||||||
/* Rest ist NULL; temporäres, nicht alterndes Attribut */
|
/* Rest ist NULL; temporaeres, nicht alterndes Attribut */
|
||||||
};
|
};
|
||||||
|
|
||||||
#define UMAXHASH MAXUNITS
|
#define UMAXHASH MAXUNITS
|
||||||
|
@ -619,7 +619,7 @@ void usetcontact(unit * u, const unit * u2)
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ucontact(const unit * u, const unit * u2)
|
bool ucontact(const unit * u, const unit * u2)
|
||||||
/* Prüft, ob u den Kontaktiere-Befehl zu u2 gesetzt hat. */
|
/* Prueft, ob u den Kontaktiere-Befehl zu u2 gesetzt hat. */
|
||||||
{
|
{
|
||||||
attrib *ru;
|
attrib *ru;
|
||||||
if (u->faction == u2->faction)
|
if (u->faction == u2->faction)
|
||||||
|
@ -776,7 +776,7 @@ ship *leftship(const unit * u)
|
||||||
{
|
{
|
||||||
attrib *a = a_find(u->attribs, &at_leftship);
|
attrib *a = a_find(u->attribs, &at_leftship);
|
||||||
|
|
||||||
/* Achtung: Es ist nicht garantiert, daß der Rückgabewert zu jedem
|
/* Achtung: Es ist nicht garantiert, dass der Rueckgabewert zu jedem
|
||||||
* Zeitpunkt noch auf ein existierendes Schiff zeigt! */
|
* Zeitpunkt noch auf ein existierendes Schiff zeigt! */
|
||||||
|
|
||||||
if (a)
|
if (a)
|
||||||
|
@ -789,7 +789,7 @@ void u_set_building(unit * u, building * b)
|
||||||
{
|
{
|
||||||
assert(!u->building); /* you must leave first */
|
assert(!u->building); /* you must leave first */
|
||||||
u->building = b;
|
u->building = b;
|
||||||
if (b && !b->_owner) {
|
if (b && (!b->_owner || b->_owner->number <= 0)) {
|
||||||
building_set_owner(u);
|
building_set_owner(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -798,7 +798,7 @@ void u_set_ship(unit * u, ship * sh)
|
||||||
{
|
{
|
||||||
assert(!u->ship); /* you must leave_ship */
|
assert(!u->ship); /* you must leave_ship */
|
||||||
u->ship = sh;
|
u->ship = sh;
|
||||||
if (sh && !sh->_owner) {
|
if (sh && !sh->_owner || sh->_owner->number <= 0) {
|
||||||
ship_set_owner(u);
|
ship_set_owner(u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -930,7 +930,7 @@ void transfermen(unit * u, unit * u2, int n)
|
||||||
if (n == 0)
|
if (n == 0)
|
||||||
return;
|
return;
|
||||||
assert(n > 0);
|
assert(n > 0);
|
||||||
/* "hat attackiert"-status wird übergeben */
|
/* "hat attackiert"-status wird uebergeben */
|
||||||
|
|
||||||
if (u2) {
|
if (u2) {
|
||||||
skill *sv, *sn;
|
skill *sv, *sn;
|
||||||
|
@ -1016,7 +1016,7 @@ void transfermen(unit * u, unit * u2, int n)
|
||||||
set_number(u2, u2->number + n);
|
set_number(u2, u2->number + n);
|
||||||
hp -= u->hp;
|
hp -= u->hp;
|
||||||
u2->hp += hp;
|
u2->hp += hp;
|
||||||
/* TODO: Das ist schnarchlahm! und gehört nicht hierhin */
|
/* TODO: Das ist schnarchlahm! und gehoert nicht hierhin */
|
||||||
a = a_find(u2->attribs, &at_effect);
|
a = a_find(u2->attribs, &at_effect);
|
||||||
while (a && a->type == &at_effect) {
|
while (a && a->type == &at_effect) {
|
||||||
attrib *an = a->next;
|
attrib *an = a->next;
|
||||||
|
@ -1050,7 +1050,7 @@ struct building *inside_building(const struct unit *u)
|
||||||
/* Unterhalt nicht bezahlt */
|
/* Unterhalt nicht bezahlt */
|
||||||
return NULL;
|
return NULL;
|
||||||
} else if (u->building->size < u->building->type->maxsize) {
|
} else if (u->building->size < u->building->type->maxsize) {
|
||||||
/* Gebäude noch nicht fertig */
|
/* Gebaeude noch nicht fertig */
|
||||||
return NULL;
|
return NULL;
|
||||||
} else {
|
} else {
|
||||||
int p = 0, cap = buildingcapacity(u->building);
|
int p = 0, cap = buildingcapacity(u->building);
|
||||||
|
@ -1118,7 +1118,7 @@ void u_setfaction(unit * u, faction * f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vorsicht Sprüche können u->number == RS_FARVISION haben! */
|
/* vorsicht Sprueche koennen u->number == RS_FARVISION haben! */
|
||||||
void set_number(unit * u, int count)
|
void set_number(unit * u, int count)
|
||||||
{
|
{
|
||||||
assert(count >= 0);
|
assert(count >= 0);
|
||||||
|
@ -1268,8 +1268,8 @@ static int att_modification(const unit * u, skill_t sk)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO hier kann nicht mit get/iscursed gearbeitet werden, da nur der
|
/* TODO hier kann nicht mit get/iscursed gearbeitet werden, da nur der
|
||||||
* jeweils erste vom Typ C_GBDREAM zurückgegen wird, wir aber alle
|
* jeweils erste vom Typ C_GBDREAM zurueckgegen wird, wir aber alle
|
||||||
* durchsuchen und aufaddieren müssen */
|
* durchsuchen und aufaddieren muessen */
|
||||||
if (u->region) {
|
if (u->region) {
|
||||||
double bonus = 0, malus = 0;
|
double bonus = 0, malus = 0;
|
||||||
attrib *a = a_find(u->region->attribs, &at_curse);
|
attrib *a = a_find(u->region->attribs, &at_curse);
|
||||||
|
@ -1278,7 +1278,7 @@ static int att_modification(const unit * u, skill_t sk)
|
||||||
if (curse_active(c) && c->type == gbdream_ct) {
|
if (curse_active(c) && c->type == gbdream_ct) {
|
||||||
double mod = curse_geteffect(c);
|
double mod = curse_geteffect(c);
|
||||||
unit *mage = c->magician;
|
unit *mage = c->magician;
|
||||||
/* wir suchen jeweils den größten Bonus und den größten Malus */
|
/* wir suchen jeweils den groesten Bonus und den groesten Malus */
|
||||||
if (mod > bonus) {
|
if (mod > bonus) {
|
||||||
if (mage == NULL || mage->number == 0
|
if (mage == NULL || mage->number == 0
|
||||||
|| alliedunit(mage, u->faction, HELP_GUARD)) {
|
|| alliedunit(mage, u->faction, HELP_GUARD)) {
|
||||||
|
@ -1489,7 +1489,7 @@ unit *create_unit(region * r, faction * f, int number, const struct race *urace,
|
||||||
if (r)
|
if (r)
|
||||||
move_unit(u, r, NULL);
|
move_unit(u, r, NULL);
|
||||||
|
|
||||||
/* u->race muss bereits gesetzt sein, wird für default-hp gebraucht */
|
/* u->race muss bereits gesetzt sein, wird fuer default-hp gebraucht */
|
||||||
/* u->region auch */
|
/* u->region auch */
|
||||||
u->hp = unit_max_hp(u) * number;
|
u->hp = unit_max_hp(u) * number;
|
||||||
|
|
||||||
|
@ -1505,7 +1505,7 @@ unit *create_unit(region * r, faction * f, int number, const struct race *urace,
|
||||||
/* erbt Kampfstatus */
|
/* erbt Kampfstatus */
|
||||||
setstatus(u, creator->status);
|
setstatus(u, creator->status);
|
||||||
|
|
||||||
/* erbt Gebäude/Schiff */
|
/* erbt Gebaeude/Schiff */
|
||||||
if (creator->region == r) {
|
if (creator->region == r) {
|
||||||
if (creator->building) {
|
if (creator->building) {
|
||||||
u_set_building(u, creator->building);
|
u_set_building(u, creator->building);
|
||||||
|
@ -1686,7 +1686,7 @@ int unit_max_hp(const unit * u)
|
||||||
p = pow(effskill(u, SK_STAMINA) / 2.0, 1.5) * 0.2;
|
p = pow(effskill(u, SK_STAMINA) / 2.0, 1.5) * 0.2;
|
||||||
h += (int)(h * p + 0.5);
|
h += (int)(h * p + 0.5);
|
||||||
}
|
}
|
||||||
/* der healing curse verändert die maximalen hp */
|
/* der healing curse veraendert die maximalen hp */
|
||||||
if (heal_ct) {
|
if (heal_ct) {
|
||||||
curse *c = get_curse(u->region->attribs, heal_ct);
|
curse *c = get_curse(u->region->attribs, heal_ct);
|
||||||
if (c) {
|
if (c) {
|
||||||
|
|
Loading…
Reference in New Issue