2010-08-08 09:40:42 +02:00
|
|
|
require "callbacks"
|
|
|
|
require "dumptable"
|
|
|
|
|
|
|
|
local function trigger_alp_destroyed(alp, event)
|
|
|
|
m = message.create("alp_destroyed")
|
|
|
|
m:set_region("region", alp.region)
|
|
|
|
m:send_faction(alp.faction)
|
|
|
|
end
|
|
|
|
|
|
|
|
local function trigger_alp_dissolve(u, event, attr)
|
|
|
|
local alp = attr.alp
|
|
|
|
attr.alp.number = 0 -- kills the alp
|
|
|
|
end
|
|
|
|
|
|
|
|
local function init_alp(attr)
|
|
|
|
-- dumptable(attr)
|
|
|
|
eventbus.register(attr.alp, "destroy", trigger_alp_destroyed)
|
|
|
|
eventbus.register(attr.mage, "destroy", trigger_alp_dissolve, attr)
|
|
|
|
eventbus.register(attr.target, "destroy", trigger_alp_dissolve, attr)
|
|
|
|
end
|
|
|
|
|
|
|
|
callbacks["init_alp"] = init_alp
|
|
|
|
|
|
|
|
-- Spell: summon alp
|
|
|
|
function summon_alp(r, mage, level, force, params)
|
|
|
|
local alp = unit.create(mage.faction, r, 1, "alp")
|
|
|
|
local target = params[1]
|
|
|
|
alp:set_skill("stealth", 7)
|
|
|
|
alp.status = 5 -- FLEE
|
|
|
|
attr = attrib.create(alp, { ['name'] = 'alp', ['target'] = target, ['alp'] = alp, ['mage'] = mage })
|
|
|
|
init_alp(attr)
|
|
|
|
msg = message.create("summon_alp_effect")
|
|
|
|
m:set_unit("mage", mage)
|
|
|
|
m:set_unit("alp", alp)
|
|
|
|
m:set_unit("target", target)
|
|
|
|
m:send_faction(mage.faction)
|
|
|
|
end
|