Suppose we have a scripting zone and a deck of cards (52) inside it. Then
Code:
zone = getObjectFromGUID('zone_guid')
objects = zone.getObjects()
print('Number of objects: ', #objects) --yields "Number of objects: 1" as expected
deck = objects[1]
print(deck.tag) --yields "Deck" as expected
number_of_cards = #deck.getObjects() --yields "52" as expected
print(number_of_cards)
deck.dealToColor(number_of_cards, 'White') --now we have nothing inside
new_objects = zone.getObjects()
print('New number of objects: ', #new_objects) --yields "New number of objects: 1" not expected
mysterious_object = new_objects[1]
print(mysterious_object.tag) --yields "Deck"
print(#mysterious_object.getObjects()) --yields "52"
deck and mysterious_object have the same guid.
Next let's try to deal all, but 1 card:
Code:
zone = getObjectFromGUID('zone_guid')
objects = zone.getObjects()
print('Number of objects: ', #objects) --yields "Number of objects: 1" as expected
deck = objects[1]
print(deck.tag) --yields "Deck" as expected
number_of_cards = #deck.getObjects() --yields "52" as expected
print(number_of_cards)
deck.dealToColor(number_of_cards - 1, 'White') --should have 1 card inside left
new_objects = zone.getObjects()
print('New number of objects: ', #new_objects) --yields "New number of objects: 1" as expected
card= new_objects[1]
print(card.tag) --yields "Deck" not expected
print(#card.getObjects()) --yields "52"
Again, guids are the same.
Finally,
Code:
zone = getObjectFromGUID('zone_guid')
objects = zone.getObjects()
print('Number of objects: ', #objects) --yields "Number of objects: 1" as expected
deck = objects[1]
print(deck.tag) --yields "Deck" as expected
number_of_cards = #deck.getObjects() --yields "52" as expected
print(number_of_cards)
for i = 1, number_of_cards - 1 do --should have 1 card inside left
deck.takeObject({position={some place
outside the scripting zone}})
end
new_objects = zone.getObjects()
print('New number of objects: ', #new_objects) --yields "New number of objects: 1" as expected
card= new_objects[1]
print(card.tag) --yields "Deck" not expected
print(#card.getObjects()) --yields "0"
So, we are getting a deck, which is not there, with 0 cards, which is impossible according to the knowledge base. Moreover, we cannot get access to the card. Moreover, even if you know guid of the card the function getObjectFromGUID('last_card_guid') will return nil (so it seems it is still in the deck, but not really).