forked from github/server
BUG 2361: familiars cannot forget magic.
https://bugs.eressea.de/view.php?id=2361
This commit is contained in:
parent
aa27c91a6e
commit
8517857d55
|
@ -11,6 +11,23 @@ function setup()
|
||||||
eressea.settings.set("rules.encounters", "0")
|
eressea.settings.set("rules.encounters", "0")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function test_bug_2361_forget_magic()
|
||||||
|
-- https://bugs.eressea.de/view.php?id=2361
|
||||||
|
-- familiars cannot forget magic
|
||||||
|
local r = region.create(0, 0, "plain")
|
||||||
|
local f = faction.create("human")
|
||||||
|
local u = unit.create(f, r, 1)
|
||||||
|
u:clear_orders()
|
||||||
|
u:add_order("VERGESSE Magie")
|
||||||
|
u:set_skill('magic', 5)
|
||||||
|
u.race = 'unicorn'
|
||||||
|
process_orders()
|
||||||
|
assert_equal(5, u:get_skill('magic'))
|
||||||
|
u.race = 'human'
|
||||||
|
process_orders()
|
||||||
|
assert_equal(0, u:get_skill('magic'))
|
||||||
|
end
|
||||||
|
|
||||||
function test_mine_bonus()
|
function test_mine_bonus()
|
||||||
local r = region.create(0, 0, "mountain")
|
local r = region.create(0, 0, "mountain")
|
||||||
r:set_resource("iron", 100)
|
r:set_resource("iron", 100)
|
||||||
|
|
|
@ -661,7 +661,12 @@ static int forget_cmd(unit * u, order * ord)
|
||||||
init_order(ord);
|
init_order(ord);
|
||||||
s = gettoken(token, sizeof(token));
|
s = gettoken(token, sizeof(token));
|
||||||
|
|
||||||
if ((sk = get_skill(s, u->faction->locale)) != NOSKILL) {
|
sk = get_skill(s, u->faction->locale);
|
||||||
|
if (sk != NOSKILL) {
|
||||||
|
if (sk == SK_MAGIC && (u_race(u)->flags & RCF_FAMILIAR)) {
|
||||||
|
/* some races cannot forget their innate magical abilities */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
ADDMSG(&u->faction->msgs, msg_message("forget", "unit skill", u, sk));
|
ADDMSG(&u->faction->msgs, msg_message("forget", "unit skill", u, sk));
|
||||||
set_level(u, sk, 0);
|
set_level(u, sk, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue