local explosiveCombinations = {
--[[
make a table of the cards that should explode with each other
combinations only need to appear once for this to work but you can
duplicate them if that makes it easier to manage.
--]]
{"Fire", "Water"},
{"Fire", "Ice"},
{"Fire", "Another Card Name"},
}
function isExplosive(name1, name2)
--[[
Simple function to loop through the table of explosiveCombinations and check for
entries that match the card names provided
--]]
for _,card in ipairs(explosiveCombinations) do
if (card[1]==name1 and card[2]==name2) or
(card[1]==name2 and card[2]==name1) then
return true
end
end
return false
end
function compareCardsInZone(zoneGUID)
--[[
Loops through all the objects in a zone, finds the cards, and reads their names to look for
any of the explosive compbinations declared above
--]]
--get a reference to the zone
local zone = getObjectFromGUID(zoneGUID)
--create a blank table to store found Card object references
local cards = {}
--loop through all the Objects in the zone and add any Cards found to the blank cards table we just created
for _,obj in ipairs(zone.getObjects()) do
if obj.tag == "Card" then
table.insert(cards, obj)
end
end
--abort if we don't find at least 2 Cards in the zone
if #cards < 2 then return false end
--loop through all the found Cards, checking if they're explosive with any of the other found Cards
for i=1,#cards-1 do
--pop the first Card from the table of found cards
local card1 = table.remove(cards, 1)
local card1Name = card1.getName()
--loop through the other found Cards and check if they form an explosive combination
for _,card2 in ipairs(cards) do
local card2Name = card2.getName()
if isExplosive(card1Name, card2Name) then
print("The cards "..card1Name.." and "..card2Name.." are explosive!")
end
end
end
end
Comments