43 lines
1.3 KiB
Lua
43 lines
1.3 KiB
Lua
|
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:switchActiveCharacter()
|
||
|
if (self.canChangeActive) then
|
||
|
game.characters:setActiveCharacter()
|
||
|
self.canChangeActive = false
|
||
|
self.tweens:newTimer(0.3, "changeCharacter")
|
||
|
self.tweens:newTween(0, 0.3, {activeVisible = self.activeVisible + 1}, "inQuad")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function Team:endCharacterSwitchAnimation()
|
||
|
self.canChangeActive = true
|
||
|
self.activeVisible = game.characters.active
|
||
|
self.active = game.characters:getActiveCharacterData()
|
||
|
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
|