81 lines
1.4 KiB
Plaintext
81 lines
1.4 KiB
Plaintext
local zone = nil
|
|
local CHAOS_TOKEN_NAMES = {
|
|
"Elder Sign",
|
|
"+1",
|
|
"0",
|
|
"-1",
|
|
"-2",
|
|
"-3",
|
|
"-4",
|
|
"-5",
|
|
"-6",
|
|
"-7",
|
|
"-8",
|
|
"Skull",
|
|
"Cultist",
|
|
"Tablet",
|
|
"Elder Thing",
|
|
"Auto-fail",
|
|
"Bless",
|
|
"Curse",
|
|
"Frost"
|
|
}
|
|
|
|
-- general code
|
|
function onSave()
|
|
return JSON.encode(zone and zone.getGUID() or nil)
|
|
end
|
|
|
|
function onLoad(savedData)
|
|
if savedData ~= "" and savedData ~= nil then
|
|
zone = getObjectFromGUID(JSON.decode(savedData))
|
|
end
|
|
setMenu(zone == nil)
|
|
end
|
|
|
|
-- context menu functions
|
|
function enable()
|
|
local scale = self.getScale()
|
|
|
|
zone = spawnObject({
|
|
type = "ScriptingTrigger",
|
|
position = self.getPosition() + Vector(0, 2.5 + 0.11, 0),
|
|
rotation = self.getRotation(),
|
|
scale = { scale.x * 2, 5, scale.z * 2 }
|
|
})
|
|
|
|
setMenu(false)
|
|
end
|
|
|
|
function disable()
|
|
if zone ~= nil then zone.destruct() end
|
|
setMenu(true)
|
|
end
|
|
|
|
-- core functions
|
|
function setMenu(isEnabled)
|
|
self.clearContextMenu()
|
|
if isEnabled then
|
|
self.addContextMenuItem("Enable", enable)
|
|
else
|
|
self.addContextMenuItem("Disable", disable)
|
|
end
|
|
end
|
|
|
|
function onObjectEnterScriptingZone(entering, object)
|
|
if zone ~= entering or object == self or object.type == "Deck" or object.type == "Card" then
|
|
return
|
|
end
|
|
|
|
local name = object.getName()
|
|
for _, entry in ipairs(CHAOS_TOKEN_NAMES) do
|
|
if entry == name then return end
|
|
end
|
|
|
|
object.destruct()
|
|
end
|
|
|
|
function onPickUp()
|
|
disable()
|
|
end
|