forked from github/server
parent
fed660987a
commit
ea8721367a
|
@ -210,6 +210,7 @@ set(TESTS_SRC
|
|||
upkeep.test.c
|
||||
spells/flyingship.test.c
|
||||
spells/magicresistance.test.c
|
||||
triggers/shock.test.c
|
||||
${ATTRIBUTES_TESTS}
|
||||
${UTIL_TESTS}
|
||||
${KERNEL_TESTS}
|
||||
|
|
|
@ -123,11 +123,11 @@ static void test_scale_number(CuTest *tc) {
|
|||
u = test_create_unit(test_create_faction(test_create_race("human")), findregion(0, 0));
|
||||
change_effect(u, ptype, 1);
|
||||
CuAssertIntEquals(tc, 1, u->number);
|
||||
CuAssertIntEquals(tc, 1, u->hp);
|
||||
CuAssertIntEquals(tc, 20, u->hp);
|
||||
CuAssertIntEquals(tc, 1, get_effect(u, ptype));
|
||||
scale_number(u, 2);
|
||||
CuAssertIntEquals(tc, 2, u->number);
|
||||
CuAssertIntEquals(tc, 2, u->hp);
|
||||
CuAssertIntEquals(tc, 40, u->hp);
|
||||
CuAssertIntEquals(tc, 2, get_effect(u, ptype));
|
||||
set_level(u, SK_ALCHEMY, 1);
|
||||
scale_number(u, 0);
|
||||
|
|
|
@ -995,6 +995,11 @@ cancast(unit * u, const spell * sp, int level, int range, struct order * ord)
|
|||
if (reslist != NULL) {
|
||||
ADDMSG(&u->faction->msgs, msg_feedback(u, ord, "missing_components_list",
|
||||
"list", reslist));
|
||||
while (reslist) {
|
||||
resource *res = reslist->next;
|
||||
free(reslist);
|
||||
reslist = res;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -127,6 +127,7 @@ int RunAllTests(int argc, char *argv[])
|
|||
ADD_SUITE(wormhole);
|
||||
ADD_SUITE(spy);
|
||||
ADD_SUITE(study);
|
||||
ADD_SUITE(shock);
|
||||
|
||||
if (suites) {
|
||||
CuSuite *summary = CuSuiteNew();
|
||||
|
|
|
@ -35,6 +35,8 @@ struct race *test_create_race(const char *name)
|
|||
{
|
||||
race *rc = rc_get_or_create(name);
|
||||
rc->maintenance = 10;
|
||||
rc->hitpoints = 20;
|
||||
rc->maxaura = 1.0;
|
||||
rc->ec_flags |= GETITEM;
|
||||
return rc;
|
||||
}
|
||||
|
@ -59,7 +61,7 @@ struct region *test_create_region(int x, int y, const terrain_type *terrain)
|
|||
|
||||
struct faction *test_create_faction(const struct race *rc)
|
||||
{
|
||||
faction *f = addfaction("nobody@eressea.de", NULL, rc ? rc : rc_get_or_create("human"), default_locale, 0);
|
||||
faction *f = addfaction("nobody@eressea.de", NULL, rc ? rc : test_create_race("human"), default_locale, 0);
|
||||
return f;
|
||||
}
|
||||
|
||||
|
|
|
@ -59,13 +59,18 @@ static void do_shock(unit * u, const char *reason)
|
|||
|
||||
if (u->number > 0) {
|
||||
/* HP - Verlust */
|
||||
u->hp = (unit_max_hp(u) * u->number) / 10;
|
||||
u->hp = _max(1, u->hp);
|
||||
int hp = (unit_max_hp(u) * u->number) / 10;
|
||||
hp = _min(u->hp, hp);
|
||||
u->hp = _max(1, hp);
|
||||
}
|
||||
|
||||
/* Aura - Verlust */
|
||||
if (is_mage(u)) {
|
||||
set_spellpoints(u, max_spellpoints(u->region, u) / 10);
|
||||
int aura = max_spellpoints(u->region, u) / 10;
|
||||
int now = get_spellpoints(u);
|
||||
if (now > aura) {
|
||||
set_spellpoints(u, aura);
|
||||
}
|
||||
}
|
||||
|
||||
/* Evt. Talenttageverlust */
|
||||
|
@ -86,7 +91,7 @@ static void do_shock(unit * u, const char *reason)
|
|||
}
|
||||
if (u->faction != NULL) {
|
||||
ADDMSG(&u->faction->msgs, msg_message("shock",
|
||||
"mage reason", u, _strdup(reason)));
|
||||
"mage reason", u, reason));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue