forked from github/server
Eternath-Questenskript
This commit is contained in:
parent
3b29df22e7
commit
d853ae12a4
|
@ -61,7 +61,11 @@ end
|
||||||
-- main body of script
|
-- main body of script
|
||||||
--
|
--
|
||||||
|
|
||||||
scripts = { "ponnuki.lua", "wedding-jadee.lua" }
|
scripts = {
|
||||||
|
"wedding-jadee.lua",
|
||||||
|
"eternath.lua",
|
||||||
|
"ponnuki.lua"
|
||||||
|
}
|
||||||
|
|
||||||
-- orderfile: contains the name of the orders.
|
-- orderfile: contains the name of the orders.
|
||||||
if orderfile==nil then
|
if orderfile==nil then
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
function eternath_travellers(b, maxsize)
|
||||||
|
local size = maxsize
|
||||||
|
local units = {}
|
||||||
|
local u
|
||||||
|
local first = true
|
||||||
|
|
||||||
|
for u in b.units do
|
||||||
|
if first then
|
||||||
|
first = false
|
||||||
|
else
|
||||||
|
if u.number<=size and u.weight<=u.capacity then
|
||||||
|
units[u] = u
|
||||||
|
size = size - u.number
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return units
|
||||||
|
end
|
||||||
|
|
||||||
|
function eternath_exchange(b1, b2)
|
||||||
|
-- identify everyone who is travelling, first:
|
||||||
|
local units1 = eternath_travellers(b1, 10)
|
||||||
|
local units2 = eternath_travellers(b2, 10)
|
||||||
|
|
||||||
|
-- we've found which units we want to exchange, now swap them:
|
||||||
|
local u
|
||||||
|
for u in units1 do
|
||||||
|
u.region = b2.region
|
||||||
|
u.building = b2
|
||||||
|
end
|
||||||
|
for u in units2 do
|
||||||
|
u.region = b1.region
|
||||||
|
u.building = b1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function eternathgate_action(b)
|
||||||
|
if eternathgate == nil then
|
||||||
|
eternathgate = b
|
||||||
|
else
|
||||||
|
eternath_exchange(eternathgate, b)
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
end
|
|
@ -5,27 +5,28 @@
|
||||||
hellgate = nil
|
hellgate = nil
|
||||||
peacegate = nil
|
peacegate = nil
|
||||||
|
|
||||||
function gate_exchange(b1, b2)
|
function wedding_travellers(b)
|
||||||
local units1 = {}
|
local units = {}
|
||||||
local units2 = {}
|
|
||||||
|
for u in b.units do
|
||||||
|
if u:get_flag("wdgt") then
|
||||||
|
units[u] = u
|
||||||
|
end
|
||||||
|
end
|
||||||
|
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
|
local u
|
||||||
for u in b1.units do
|
for u in units1 do
|
||||||
if u:get_flag("wdgt") then
|
|
||||||
units1[u.no] = u
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for u in b2.units do
|
|
||||||
if u:get_flag("wdgt") then
|
|
||||||
units2[u.no] = u
|
|
||||||
end
|
|
||||||
end
|
|
||||||
for id in units1 do
|
|
||||||
u = units1[id]
|
|
||||||
u.region = b2.region
|
u.region = b2.region
|
||||||
u.building = b2
|
u.building = b2
|
||||||
end
|
end
|
||||||
for id in units2 do
|
for u in units2 do
|
||||||
u = units2[id]
|
|
||||||
u.region = b1.region
|
u.region = b1.region
|
||||||
u.building = b1
|
u.building = b1
|
||||||
end
|
end
|
||||||
|
@ -35,7 +36,7 @@ function hellgate_action(b)
|
||||||
if hellgate == nil then
|
if hellgate == nil then
|
||||||
hellgate = b
|
hellgate = b
|
||||||
else
|
else
|
||||||
gate_exchange(hellgate, b)
|
wedding_exchange(hellgate, b)
|
||||||
end
|
end
|
||||||
return 1
|
return 1
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue