local Team = Object:extend() local Emblem = require "game.modules.gui.emblem" function Team:initTeam() self.active = game.characters:getActiveCharacterData() self.emblems = {} for i, name in ipairs(game.characters.team) do game.characters:loadSprite(self.assets, name) self.emblems[i] = Emblem(game.characters.list[name], self.scene) end self.activeVisible = game.characters.active self.canChangeActive = true end function Team:updateActiveCharacter() if ((self.active.hp == 0) and not game.difficulty:get("playerKoChar")) then self:switchActiveCharacter() end end function Team:getCurrentCharType() return self.active.data.class end function Team:switchActiveCharacter() if (self.canChangeActive) then local count = game.characters:setActiveCharacter() self.active = game.characters:getActiveCharacterData() self.canChangeActive = false self.tweens:newTimer(0.3, "changeCharacter") self.tweens:newTween(0, 0.3, {activeVisible = self.activeVisible + count}, "inQuad") end end function Team:endCharacterSwitchAnimation() self.canChangeActive = true self.activeVisible = game.characters.active self:updateCurrentCharset() end function Team:drawEmblems(x, y) for i,emblem in ipairs(self.emblems) do local angle = ((i-self.activeVisible) * (360/#self.emblems)) - 90 local rad = math.rad(angle) local emblemX, emblemY = utils.math.lengthdir(18, rad) emblem:draw(x + emblemX, y + emblemY) end end return Team