2004-07-10 18:37:02 +02:00
|
|
|
-- this script contains the action functions for the two portals
|
|
|
|
-- used on the jadee/wildente wedding island. the two _action functions
|
|
|
|
-- are used as age() functions for a building_action with b:addaction("name")
|
|
|
|
|
|
|
|
hellgate = nil
|
|
|
|
peacegate = nil
|
|
|
|
|
2004-07-13 13:48:16 +02:00
|
|
|
function wedding_travellers(b)
|
|
|
|
local units = {}
|
|
|
|
|
|
|
|
for u in b.units do
|
2004-07-10 19:16:15 +02:00
|
|
|
if u:get_flag("wdgt") then
|
2004-07-13 13:48:16 +02:00
|
|
|
units[u] = u
|
2004-07-10 19:16:15 +02:00
|
|
|
end
|
2004-07-10 18:37:02 +02:00
|
|
|
end
|
2004-07-13 13:48:16 +02:00
|
|
|
return units
|
|
|
|
end
|
|
|
|
|
|
|
|
function wedding_exchange(b1, b2)
|
|
|
|
local units1 = wedding_travellers(b1)
|
|
|
|
local units2 = wedding_travellers(b2)
|
|
|
|
|
|
|
|
-- we've found which units we want to exchange, now swap them:
|
|
|
|
local u
|
|
|
|
for u in units1 do
|
2004-07-10 18:37:02 +02:00
|
|
|
u.region = b2.region
|
|
|
|
u.building = b2
|
|
|
|
end
|
2004-07-13 13:48:16 +02:00
|
|
|
for u in units2 do
|
2004-07-10 19:16:15 +02:00
|
|
|
u.region = b1.region
|
|
|
|
u.building = b1
|
|
|
|
end
|
2004-07-10 18:37:02 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
function hellgate_action(b)
|
|
|
|
if hellgate == nil then
|
|
|
|
hellgate = b
|
|
|
|
else
|
2004-07-13 13:48:16 +02:00
|
|
|
wedding_exchange(hellgate, b)
|
2004-07-10 18:37:02 +02:00
|
|
|
end
|
|
|
|
return 1
|
|
|
|
end
|
|
|
|
|
|
|
|
function peacegate_action(b)
|
|
|
|
if peacegate == nil then
|
|
|
|
peacegate = b
|
|
|
|
else
|
|
|
|
gate_exchange(peacegate, b)
|
|
|
|
end
|
|
|
|
return 1
|
|
|
|
end
|