Beschreibung | Wenn eine Newbiepartei in Runde x, bevor die Immunität abläuft, anfängt zu bewachen, kann sie in der Folgewoche zwar beklaut, aber nicht angegriffen werden. Das ist natürlich ein Problem, denn sei verhindert da schon den Abbau.
Testreport Runde 1:
- "Deine Partei ist nur noch in der kommenden Woche immun gegen Angriffe."
- bewacht nicht
Runde 2:
- "Deine Partei ist nun nicht mehr immun gegen Angriffe."
- "Eine Partei muß mindestens 3 Wochen alt sein, bevor sie angegriffen oder bestohlen werden kann."
- "bewacht"
- "Einheit 6jeq (6jeq) in Difedlud (0,0) produziert 1 Holz."
Runde 3:
- "Deine Partei ist nun nicht mehr immun gegen Angriffe."
- "Eine Partei muß mindestens 3 Wochen alt sein, bevor sie angegriffen oder bestohlen werden kann."
- "Einheit 6jeq (6jeq) in Difedlud (0,0) produziert 1 Holz."
Runde 4:
- Attacke: "Eine Partei muß mindestens 3 Wochen alt sein, bevor sie angegriffen oder bestohlen werden kann."
- "Einheit 438v (438v) verdient in Difedlud (0,0) 50 Silber durch Diebstahl."
- "'MACHE Holz' - Die Region wird von Nichtalliierten bewacht."
|
---|
Schritte zur Reproduktion | function test_newbie()
local newbi = 3
local newbiOld = eressea.settings.get("NewbieImmunity")
eressea.settings.set("NewbieImmunity", newbi)
local debug = true
local r = region.create(0, 0, 'plain')
local f = faction.create('human', "newb@eressea.de", "de")
local f2 = faction.create('human', "aggro@eressea.de", "de")
f.age = 0
f2.age = 10
local u1 = unit.create(f, r, 1)
local u2 = unit.create(f2, r, 1)
local u3 = unit.create(f2, r, 1)
local u4 = unit.create(f2, r, 1)
u1:add_item("sword", 1)
u1:set_skill("melee", 1)
u1:add_order("BEWACHE")
u2:add_item("sword", 1)
u1:add_item("money", 1000)
u2:add_item("sword", u2.number)
u2:set_skill("melee", 50)
u3:set_skill("forestry", 1)
u4:set_skill("stealth", 1)
r:set_resource("tree", 100)
for i = 1, newbi+1 do
u1:add_order("BEWACHE")
u1:set_skill("stamina", 50)
u2:add_order("ATTACKIERE " .. itoa36(u1.id))
u3:clear_orders()
u3:add_order("MACHE Holz")
u3:set_skill("forestry", 1)
u3:add_item("log", -u3:get_item("log"))
u4:clear_orders()
u4:add_order("BEKLAUE " .. itoa36(u1.id))
u1.hp = u1.number * u1.hp_max
process_orders()
if debug then
print(i, newbi, "f.age ", f.age, "guard ", u1.guard, "hp", u1.hp, "log", u3:get_item("log"), "money", u1:get_item("money"))
init_reports()
write_reports()
end
if i < newbi-1 then
assert_false(u1.guard, "newbie should not guard")
assert_equal(520, u1.hp, "newbie should be immune")
assert_equal(1, u3:get_item("log"), "region should not be guarded")
assert_equal(1000, u1:get_item("money"), "newbie should be immune")
elseif i == newbi - 1 then
assert_true(u1.guard, "newbie should guard")
assert_equal(520, u1.hp, "newbie should be immune")
assert_equal(1000, u1:get_item("money"), "newbie should be immune")
assert_equal(1, u3:get_item("log"), "region should not be guarded")
else
assert_true(u1.guard, "newbie should guard")
assert_true(1000 > u1:get_item("money"), "newbie should *not* be immune")
assert_true(520 > u1.hp, "guarding newbie should *not* be immune")
assert_equal(0, u3:get_item("log"), "region should be guarded")
end
end
eressea.settings.set("NewbieImmunity", newbiOld)
end
|
---|