Prevent unavailable color switching crash

This commit is contained in:
Your Name 2026-08-11 13:43:23 -04:00
parent e51dc22ca1
commit b42569eb9c

View file

@ -341,21 +341,21 @@ function Room:movePlayer(key)
end
function Room:switchPlayerColor(color)
local canSwitch
-- Number keys can request a colour the player has not collected yet. Do
-- nothing in that case: there is no corresponding player object to switch
-- to (or use as the sound source).
local targetPlayer = self.player[color]
if not targetPlayer then return false end
if self:onlyColorIsActive(color) then
canSwitch = false
else
for _, c in pairs(self:getPossibleColors()) do
if c == color then
self:setActiveColor(c, true)
else
self:setActiveColor(c, false)
end
local canSwitch = not self:onlyColorIsActive(color)
if canSwitch then
for _, c in ipairs(self:getPossibleColors()) do
self:setActiveColor(c, c == color)
end
end
self.player[color]:playSwitchSound(canSwitch)
targetPlayer:playSwitchSound(canSwitch)
return canSwitch
end
function Room:setActiveColor(color, bool)