sonic-radiance/sonic-radiance.love/scenes/overworld/actors/player/team.lua

49 lines
1.3 KiB
Lua
Raw Normal View History

local Team = Object:extend()
function Team:initTeam(forceCanGameOver)
self.active = game.characters:getActiveCharacterData()
self.canChangeActive = true
if (forceCanKO == true) then
self.canKO = true
else
self.canKO = game.difficulty:get("playerKoChar") == false
end
end
function Team:updateActiveCharacter()
2021-04-19 18:04:29 +02:00
local everybodyIsKo = true
for id, name in ipairs(game.characters.team) do
if (game.characters.list[name].hp > 0) then
everybodyIsKo = false
break;
end
end
if (everybodyIsKo) then
self.scene:gameover()
else
if ((self.active.hp == 0) and self.canKO) then
2021-04-19 18:04:29 +02:00
self:switchActiveCharacter()
end
end
end
function Team:getCurrentCharType()
return self.active.data.class
end
function Team:switchActiveCharacter(direction)
if (self.canChangeActive and self.scene.gui:getElement("teamEmblems") ~= nil) then
local count = game.characters:setActiveCharacter(direction)
2021-04-10 17:43:10 +02:00
self.active = game.characters:getActiveCharacterData()
self.canChangeActive = false
self.tweens:newTimer(0.3, "changeCharacter")
self.scene.gui:getElement("teamEmblems"):changeActivePlayer(count)
end
end
function Team:endCharacterSwitchAnimation()
self.canChangeActive = true
self:updateCurrentCharset()
end
return Team