Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- EIFBag = "bf8414"
- Casts = {
- P1F = {2.41, 0, 0.4},
- P1S = {1.94, 0, 0.4},
- P1H = self.positionToLocal({-26.71, 1.88, -44.58}),
- P1E = self.positionToLocal({-26.71, 1.88, -46.37}),
- P2F = {1.35, 0, 0.4},
- P2S = {0.88, 0, 0.4},
- P2H = self.positionToLocal({-2.71, 1.88, -44.59}),
- P2E = self.positionToLocal({-2.71, 1.88, -46.37}),
- P3F = {-0.88, 0, 0.4},
- P3S = {-1.35, 0, 0.4},
- P3H = self.positionToLocal({21.29, 1.88, -44.58}),
- P3E = self.positionToLocal({21.29, 1.88, -46.37}),
- P4F = {-1.94, 0, 0.4},
- P4S = {-2.41, 0, 0.4},
- P4H = self.positionToLocal({45.29, 1.88, -44.59}),
- P4E = self.positionToLocal({45.29, 1.88, -46.37}),
- AMD = {0.3, 0, -0.75},
- AMS = {-0.3, 0, -0.75}
- }
- playerCasts = {
- P1 = {A = {{-36.85, 1.85, -34.79}, {-33.69, 1.85, -34.79}, {-30.53, 1.85, -34.79}, {-27.37, 1.85, -34.79}},
- D = {-40.43, 1.85, -40.80},
- L = {-27.37, 1.85, -40.80},
- AMDiscard = {-40.72, 2, -33.96},
- AMDeck = {-40.72, 2, -36.62}
- },
- P2 = {A = {{-12.85, 1.85, -34.79}, {-9.69, 1.85, -34.79}, {-6.53, 1.85, -34.79}, {-3.37, 1.85, -34.80}},
- D = {-16.43, 1.85, -40.80},
- L = {-3.37, 1.85, -40.81},
- AMDiscard = {-16.73, 2, -33.96},
- AMDeck = {-16.72, 2, -36.62}
- },
- P3 = {A = {{11.16, 1.85, -34.79}, {14.32, 1.85, -34.79}, {17.48, 1.85, -34.79}, {20.63, 1.85, -34.80}},
- D = {7.57, 1.85, -40.80},
- L = {20.63, 1.85, -40.80},
- AMDiscard = {7.28, 2, -33.96},
- AMDeck = {7.28, 2, -36.62}
- },
- P4 = {A = {{35.16, 1.85, -34.79}, {38.32, 1.85, -34.79}, {41.48, 1.85, -34.79}, {44.63, 1.85, -34.80}},
- D = {31.57, 1.85, -40.80},
- L = {44.63, 1.85, -40.81},
- AMDiscard = {31.28, 2, -33.96},
- AMDeck = {31.28, 2, -36.62}
- }
- }
- elements = {
- Fire = {inert = {-3.22, 2.07, -17.18}, waning = {-0.64, 2.07, -17.18}, strong = {3.22, 2.07, -17.18}},
- Ice = {inert = {-1.94, 2.07, -17.96}, waning = {0.64, 2.07, -17.96}, strong = {1.94, 2.07, -17.96}},
- Air = {inert = {-3.22, 2.07, -18.96}, waning = {-0.64, 2.07, -18.96}, strong = {3.22, 2.07, -18.96}},
- Earth = {inert = {-1.94, 2.07, -19.75}, waning = {0.64, 2.07, -19.75}, strong = {1.94, 2.07, -19.75}},
- Light = {inert = {-3.22, 2.07, -20.46}, waning = {-0.64, 2.07, -20.46}, strong = {3.22, 2.07, -20.46}},
- Dark = {inert = {-1.94, 2.07, -21.48}, waning = {0.64, 2.07, -21.48}, strong = {1.94, 2.07, -21.48}}
- }
- colorsToTable = {
- Red = {0.856, 0.1, 0.094},
- White = {1, 1, 1},
- Blue = {0.118, 0.53, 1},
- Green = {0.192, 0.701, 0.168},
- Black = {0, 0, 0}
- }
- function onLoad(save_state)
- createButt("P1FFA", -2.4, 0.718, nil, "Active Card")
- createButt("P1FFD", -2.4, 0.805, nil, "Discard Card")
- createButt("P1FFL", -2.4, 0.895, nil, "Lost Card")
- createButt("P1SFA", -1.94, 0.718, nil, "Active Card")
- createButt("P1SFD", -1.94, 0.805, nil, "Discard Card")
- createButt("P1SFL", -1.94, 0.895, nil, "Lost Card")
- createButt("P2FFA", -1.349, 0.718, nil, "Active Card")
- createButt("P2FFD", -1.349, 0.805, nil, "Discard Card")
- createButt("P2FFL", -1.349, 0.895, nil, "Lost Card")
- createButt("P2SFA", -0.895, 0.718, nil, "Active Card")
- createButt("P2SFD", -0.895, 0.805, nil, "Discard Card")
- createButt("P2SFL", -0.895, 0.895, nil, "Lost Card")
- createButt("P3FFA", 0.895, 0.718, nil, "Active Card")
- createButt("P3FFD", 0.895, 0.805, nil, "Discard Card")
- createButt("P3FFL", 0.895, 0.895, nil, "Lost Card")
- createButt("P3SFA", 1.349, 0.718, nil, "Active Card")
- createButt("P3SFD", 1.349, 0.805, nil, "Discard Card")
- createButt("P3SFL", 1.349, 0.895, nil, "Lost Card")
- createButt("P4FFA", 1.94, 0.718, nil, "Active Card")
- createButt("P4FFD", 1.94, 0.805, nil, "Discard Card")
- createButt("P4FFL", 1.94, 0.895, nil, "Lost Card")
- createButt("P4SFA", 2.4, 0.718, nil, "Active Card")
- createButt("P4SFD", 2.4, 0.805, nil, "Discard Card")
- createButt("P4SFL", 2.4, 0.895, nil, "Lost Card")
- createButt("P1HM", -2.538, -0.693, "sign", "Remove HP", " lost 1 HP")
- createButt("P1HP", -2.333, -0.693, "sign", "Add HP", " gained 1 HP")
- createButt("P1EM", -2.145, -0.693, "sign", "Remove XP", " lost 1 XP")
- createButt("P1EP", -1.9, -0.693, "sign", "Add XP", " gained 1 XP")
- createButt("P2HM", -1.713, -0.693, "sign", "Remove HP", " lost 1 HP")
- createButt("P2HP", -1.507, -0.693, "sign", "Add HP", " gained 1 HP")
- createButt("P2EM", -1.32, -0.693, "sign", "Remove XP", " lost 1 XP")
- createButt("P2EP", -1.075, -0.693, "sign", "Add XP", "gained 1 XP")
- createButt("P3HM", 1.072, -0.693, "sign", "Remove HP", " lost 1 HP")
- createButt("P3HP", 1.277, -0.693, "sign", "Add HP", " gained 1 HP")
- createButt("P3EM", 1.467, -0.693, "sign", "Remove XP", " lost 1 XP")
- createButt("P3EP", 1.71, -0.693, "sign", "Add XP", " gained 1 XP")
- createButt("P4HM", 1.9, -0.693, "sign", "Remove HP", " lost 1 HP")
- createButt("P4HP", 2.105, -0.693, "sign", "Add HP", "gained 1 HP")
- createButt("P4EM", 2.292, -0.693, "sign", "Remove XP", "lost 1 XP")
- createButt("P4EP", 2.538, -0.693, "sign", "Add XP", "gained 1 XP")
- createButt("AMD", -0.775, -0.752, "AM", "Draw a Modifier Card")
- createButt("AMS", 0.775, -0.752, "AM", "Shuffle the Modifier Deck")
- createButt("EIB", 0, 0.215, "EIB", "Get an Elemental Infusion Board")
- createButt("ConFire", 0.905, -0.195, "Element", "Consume ", " consumed ")
- createButt("ConIce", 1.2, -0.195, "Element", "Consume ", " consumed ")
- createButt("ConAir", 1.49, -0.195, "Element", "Consume ", " consumed ")
- createButt("ConEarth", 1.78, -0.195, "Element", "Consume ", " consumed ")
- createButt("ConLight", 2.07, -0.195, "Element", "Consume ", " consumed ")
- createButt("ConDark", 2.36, -0.195, "Element", "Consume ", " consumed ")
- createButt("CreDark", -0.902, -0.195, "Element", "Create ", " created ")
- createButt("CreLight", -1.2, -0.195, "Element", "Create ", " created ")
- createButt("CreEarth", -1.498, -0.195, "Element", "Create ", " created ")
- createButt("CreAir", -1.793, -0.195, "Element", "Create ", " created ")
- createButt("CreIce", -2.09, -0.195, "Element", "Create ", " created ")
- createButt("CreFire", -2.387, -0.195, "Element", "Create ", " created ")
- end
- function createButt(name, x, z, type, tooltip, broadcast)
- self.setVar(name, function (obj, player_clicker_color) buttonClicked(name, broadcast, player_clicker_color) end)
- buttonParameter = {
- click_function = name,
- function_owner = self,
- label = "",
- position = {x, 0.1, z},
- scale = {0.1, 0.1, 0.1},
- width = 1500,
- height = 300,
- color = {1,1,1,0.1},
- tooltip = tooltip
- }
- if type == "Element" then
- buttonParameter.width = 750
- buttonParameter.height = 750
- buttonParameter.color = {1,1,1,0}
- buttonParameter.tooltip = tooltip .. name:sub(4)
- elseif type == "AM" then
- buttonParameter.width = 1350
- buttonParameter.height = 450
- elseif type == "EIB" then
- buttonParameter.width = 3300
- buttonParameter.height = 500
- elseif type == "sign" then
- buttonParameter.width = 400
- buttonParameter.height = 400
- buttonParameter.color = {1,1,1,0}
- end
- self.createButton(buttonParameter)
- end
- function uiConsume(a, b, c)
- buttonClicked(c, " consumed ", a.color)
- end
- function uiCreate(a, b, c)
- buttonClicked(c, " created ", a.color)
- end
- function buttonClicked(clicked, broadcast, player_clicker_color)
- local pre = clicked:sub(1,3)
- local element = clicked:sub(4)
- local origin, size
- if pre == "Cre" then
- origin = {0.18, 0, 0.37}
- size = {4.9, 1, 7}
- elseif pre == "Con" or pre == "low" then
- origin = {-0.18, 0, 0.37}
- size = {4.9, 1, 7}
- else
- origin = Casts[pre]
- size = {1, 1, 1}
- end
- if origin ~= nil then
- hitlist = Physics.cast({
- origin = self.positionToWorld(origin),
- direction = {0, 1, 0},
- type = 3,
- size = size,
- max_distance = 0,
- debug = false
- }) -- returns {{Vector point, Vector normal, float distance, Object hit_object}, ...}
- for u, v in pairs(hitlist) do
- if pre == "Cre" and v.hit_object.getName() == element then
- v.hit_object.setPosition(elements[element].strong)
- broadcastToAll(Player[player_clicker_color].steam_name .. broadcast .. element, colorsToTable[player_clicker_color])
- return
- elseif pre == "Con" and v.hit_object.getName() == element then
- v.hit_object.setPosition(elements[element].inert)
- broadcastToAll(Player[player_clicker_color].steam_name .. broadcast .. element, colorsToTable[player_clicker_color])
- return
- elseif pre == "low" and v.hit_object.getName() == element then
- if v.hit_object.getPosition().x > 1 then
- v.hit_object.setPosition(elements[element].waning)
- else
- v.hit_object.setPosition(elements[element].inert)
- end
- return
- elseif v.hit_object.getStates() ~= nil then
- if #v.hit_object.getStates() == 30 then
- if v.hit_object.getStateId() == 31 then
- if element == "P" then
- v.hit_object.setState(1)
- end
- elseif v.hit_object.getStateId() == 1 then
- if element == "M" then
- v.hit_object.setState(31)
- else
- v.hit_object.setState(v.hit_object.getStateId() + (element == "P" and 1 or -1))
- end
- else
- v.hit_object.setState(v.hit_object.getStateId() + (element == "P" and 1 or -1))
- end
- broadcastToAll(Player[player_clicker_color].steam_name .. broadcast, colorsToTable[player_clicker_color])
- return
- end
- elseif clicked:sub(1,1) == "P" and v.hit_object.tag == "Card" then
- if clicked:sub(4) == "Reveal" then
- v.hit_object.flip()
- if clicked:sub(3,3) == "F" then
- hitlist = Physics.cast({
- origin = playerCasts[clicked:sub(1,2)].AMDeck,
- direction = {0, 1, 0},
- type = 3,
- size = {1, 1, 1},
- max_distance = 0,
- debug = false
- })
- for _, c in pairs(hitlist) do
- if c.hit_object.tag == "Deck" then
- c.hit_object.takeObject({position = playerCasts[clicked:sub(1,2)].AMDiscard, flip = true})
- return
- end
- end
- end
- elseif clicked:sub(5,5) == "A" then
- local pos = checkEmpty(playerCasts[clicked:sub(1,2)].A)
- print(pos)
- if pos then
- v.hit_object.setPosition(pos)
- end
- elseif clicked:sub(5,5) == "D" then
- v.hit_object.setPosition(playerCasts[clicked:sub(1,2)].D)
- elseif clicked:sub(5,5) == "L" then
- v.hit_object.setPosition(playerCasts[clicked:sub(1,2)].L)
- end
- return
- elseif pre == "AMD" and v.hit_object.tag == "Deck" then
- v.hit_object.takeObject({position = self.positionToWorld({Casts.AMS[1], Casts.AMS[2]+1, Casts.AMS[3]}), flip = true})
- return
- elseif pre == "AMS" and (v.hit_object.tag == "Deck" or v.hit_object.tag == "Card") then
- hitlist = Physics.cast({
- origin = self.positionToWorld(Casts.AMD),
- direction = {0, 1, 0},
- type = 3,
- size = {1, 1, 1},
- max_distance = 0,
- debug = false
- })
- for _, c in pairs(hitlist) do
- if c.hit_object.tag == "Deck" then
- c.hit_object.putObject(v.hit_object)
- c.hit_object.shuffle()
- return
- end
- end
- end
- end
- if pre == "Con" then
- broadcastToAll("No " .. element .. " to consume!", colorsToTable[player_clicker_color])
- end
- end
- if pre == "EIB" then
- local bag = getObjectFromGUID("bf8414").takeObject({position = {0.00, 1.52, -7.50}, smooth = false})
- bag.takeObject({position = {0.00, 1.85, -18.19}, rotation = {0.00, 0.00, 0.00}, smooth = false}).lock()
- bag.takeObject({position = {-3.23, 2.07, -17.19}, rotation = {0.00, 180.00, 180.00}})
- bag.takeObject({position = {-1.95, 2.07, -17.97}, rotation = {0.00, 180.00, 180.00}})
- bag.takeObject({position = {-3.22, 2.07, -18.95}, rotation = {0.00, 0.00, 180.00}})
- bag.takeObject({position = {-1.93, 2.07, -19.75}, rotation = {0.00, 180.00, 0.00}})
- bag.takeObject({position = {-3.21, 2.07, -20.46}, rotation = {0.00, 180.00, 0.00}})
- bag.takeObject({position = {-1.94, 2.07, -21.48}, rotation = {0.00, 180.00, 0.00}})
- bag.takeObject({position = {-3.30, 2.08, -14.38}, rotation = {0.00, 0.00, 0.00}})
- bag.destruct()
- end
- end
- function checkEmpty(posTable)
- local found = false
- for i, j in pairs(posTable) do
- found = false
- hitlist = Physics.cast({
- origin = j,
- direction = {0, 1, 0},
- type = 3,
- size = {1, 1, 1},
- max_distance = 0,
- debug = false
- })
- for u, v in pairs(hitlist) do
- if v.hit_object.tag == "Card" then found = true end
- end
- if found == false then return j end
- end
- return false
- end
- function reveal(player)
- buttonClicked("AMD")
- for i=1, 4 do
- buttonClicked("P" .. i .. "FReveal")
- buttonClicked("P" .. i .. "SReveal")
- end
- for _, o in pairs(getAllObjects()) do
- if o.getName() == "Monster Mat" then
- o.call("drawCard")
- end
- end
- end
- function endRound()
- for i, j in pairs(elements) do
- buttonClicked("low" .. i)
- end
- -- for i=1, 4 do
- -- buttonClicked("P" .. i .. "FFD")
- -- buttonClicked("P" .. i .. "SFD")
- -- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement