Merge pull request #544 from dscarpac/encounter-discard-reshuffle
added button to reshuffle encounter discard pile into deck
This commit is contained in:
commit
6d876f27d2
@ -82,5 +82,5 @@
|
|||||||
"scaleZ": 6.5
|
"scaleZ": 6.5
|
||||||
},
|
},
|
||||||
"Value": 0,
|
"Value": 0,
|
||||||
"XmlUI": ""
|
"XmlUI": "\u003cInclude src=\"MythosArea.xml\"/\u003e"
|
||||||
}
|
}
|
||||||
|
@ -134,13 +134,6 @@ end
|
|||||||
function getEncounterDeck()
|
function getEncounterDeck()
|
||||||
local searchResult = searchLib.atPosition(ENCOUNTER_DECK_POS, "isCardOrDeck")
|
local searchResult = searchLib.atPosition(ENCOUNTER_DECK_POS, "isCardOrDeck")
|
||||||
|
|
||||||
for _, obj in ipairs(searchResult) do
|
|
||||||
if obj.type == 'Deck' then
|
|
||||||
return obj
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- if no deck was found, return the first hit (a card)
|
|
||||||
if #searchResult > 0 then
|
if #searchResult > 0 then
|
||||||
return searchResult[1]
|
return searchResult[1]
|
||||||
end
|
end
|
||||||
@ -151,6 +144,7 @@ function drawEncounterCard(params)
|
|||||||
local encounterDeck = getEncounterDeck()
|
local encounterDeck = getEncounterDeck()
|
||||||
|
|
||||||
if encounterDeck then
|
if encounterDeck then
|
||||||
|
reshuffledAlready = false
|
||||||
local card
|
local card
|
||||||
if encounterDeck.type == "Deck" then
|
if encounterDeck.type == "Deck" then
|
||||||
card = encounterDeck.takeObject()
|
card = encounterDeck.takeObject()
|
||||||
@ -160,7 +154,13 @@ function drawEncounterCard(params)
|
|||||||
actualEncounterCardDraw(card, params)
|
actualEncounterCardDraw(card, params)
|
||||||
else
|
else
|
||||||
-- nothing here, time to reshuffle
|
-- nothing here, time to reshuffle
|
||||||
reshuffleEncounterDeck(params)
|
if reshuffledAlready == true then
|
||||||
|
reshuffledAlready = false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
reshuffleEncounterDeck() -- if there is no discard pile either, reshuffleEncounterDeck will give an error message already
|
||||||
|
reshuffledAlready = true
|
||||||
|
drawEncounterCard(params)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -180,27 +180,33 @@ function actualEncounterCardDraw(card, params)
|
|||||||
deckLib.placeOrMergeIntoDeck(card, pos, { 0, rotY, faceUpRotation })
|
deckLib.placeOrMergeIntoDeck(card, pos, { 0, rotY, faceUpRotation })
|
||||||
end
|
end
|
||||||
|
|
||||||
function reshuffleEncounterDeck(params)
|
function reshuffleEncounterDeck()
|
||||||
-- flag to avoid multiple calls
|
-- flag to avoid multiple calls
|
||||||
if isReshuffling then return end
|
if isReshuffling then return end
|
||||||
isReshuffling = true
|
isReshuffling = true
|
||||||
|
local encounterDeck = getEncounterDeck()
|
||||||
-- shuffle and flip deck, draw card after completion
|
local discardPile = searchLib.atPosition(ENCOUNTER_DISCARD_POSITION, "isCardOrDeck")
|
||||||
local searchResult = searchLib.atPosition(ENCOUNTER_DISCARD_POSITION, "isCardOrDeck")
|
|
||||||
if #searchResult > 0 then
|
if #discardPile > 0 then
|
||||||
local deck = searchResult[1]
|
local discardDeck = discardPile[1]
|
||||||
if not deck.is_face_down then deck.flip() end
|
if not discardDeck.is_face_down then --flips discard pile
|
||||||
deck.shuffle()
|
discardDeck.setRotation({0, -90, 180})
|
||||||
deck.setPositionSmooth(Vector(ENCOUNTER_DECK_POS) + Vector(0, 2, 0), false, true)
|
end
|
||||||
Wait.time(function() actualEncounterCardDraw(deck.takeObject({ index = 0 }), params) end, 0.5)
|
if encounterDeck == nil then
|
||||||
|
discardDeck.setPosition(Vector(ENCOUNTER_DECK_POS) + Vector({0, 1, 0}))
|
||||||
|
discardDeck.shuffle()
|
||||||
|
else
|
||||||
|
encounterDeck.putObject(discardDeck)
|
||||||
|
encounterDeck.shuffle()
|
||||||
|
end
|
||||||
|
broadcastToAll("Shuffled encounter discard into deck.", "White")
|
||||||
else
|
else
|
||||||
printToAll("Couldn't find encounter discard pile to reshuffle.", { 1, 0, 0 })
|
broadcastToAll("Encounter discard pile is already empty.", "Red")
|
||||||
end
|
end
|
||||||
|
|
||||||
-- disable flag
|
-- disable flag
|
||||||
Wait.time(function() isReshuffling = false end, 1)
|
Wait.time(function() isReshuffling = false end, 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
-- helper functions
|
-- helper functions
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
|
3
xml/MythosArea.xml
Normal file
3
xml/MythosArea.xml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<Panel position="160 70 -13" rotation="0 0 180" height="74" width="315">
|
||||||
|
<Button scale="0.1 0.1 1" color="#ffffff00" textColors="#ffffff|#88e3cf|#4f8478" font="font_teutonic-arkham" fontSize="62" onClick="reshuffleEncounterDeck">Reshuffle ➡</Button>
|
||||||
|
</Panel>
|
Loading…
x
Reference in New Issue
Block a user