improvement: add a fighter parent
This commit is contained in:
parent
62b382a4d6
commit
4d22e35288
9 changed files with 86 additions and 74 deletions
|
@ -1,73 +0,0 @@
|
||||||
local cwd = (...):gsub('%.player$', '') .. "."
|
|
||||||
local Parent = require(cwd .. "parent")
|
|
||||||
local Player = Parent:extend()
|
|
||||||
|
|
||||||
local TweenManager = require "birb.classes.time"
|
|
||||||
|
|
||||||
local Actions = require "game.modules.subgames.world.actors.player.actions"
|
|
||||||
local Movements = require "game.modules.subgames.world.actors.player.movements"
|
|
||||||
local Score = require "game.modules.subgames.world.actors.player.score"
|
|
||||||
local Sprites = require "game.modules.subgames.world.actors.player.sprites"
|
|
||||||
local Controls = require "game.modules.subgames.world.actors.player.controls"
|
|
||||||
|
|
||||||
local Team = require "scenes.overworld.actors.player.team"
|
|
||||||
|
|
||||||
Player:implement(Actions)
|
|
||||||
Player:implement(Movements)
|
|
||||||
Player:implement(Score)
|
|
||||||
Player:implement(Sprites)
|
|
||||||
Player:implement(Team)
|
|
||||||
Player:implement(Controls)
|
|
||||||
|
|
||||||
function Player:new(world, x, y, z, id)
|
|
||||||
Player.super.new(self, world, "player", x, y, 0, 16, 12, 24, true)
|
|
||||||
self:initMovements()
|
|
||||||
self:initCharactersSprites()
|
|
||||||
self:initScore()
|
|
||||||
self:initActions()
|
|
||||||
self:initTeam()
|
|
||||||
|
|
||||||
self.tweens = TweenManager(self)
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:updateStart(dt)
|
|
||||||
self:applyInputs()
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:update(dt)
|
|
||||||
self:updateMovements(dt)
|
|
||||||
Player.super.update(self, dt)
|
|
||||||
self.tweens:update(dt)
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
function Player:collisionResponse(collision)
|
|
||||||
if collision.other.type == "collectible" then
|
|
||||||
collision.other.owner:getPicked(self)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:timerResponse(response)
|
|
||||||
if (response == "changeCharacter") then
|
|
||||||
self:endCharacterSwitchAnimation()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:animationEnded(name)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:updateEnd(dt)
|
|
||||||
self:setAnimation()
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:getViewCenter()
|
|
||||||
local x, y = Player.super.getViewCenter(self)
|
|
||||||
return x, y-16
|
|
||||||
end
|
|
||||||
|
|
||||||
function Player:draw()
|
|
||||||
Player.super.draw(self)
|
|
||||||
end
|
|
||||||
|
|
||||||
return Player
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
local Parent = require("game.modules.subgames.world.actors.parent")
|
||||||
|
local FighterParent = Parent:extend()
|
||||||
|
|
||||||
|
local TweenManager = require "birb.classes.time"
|
||||||
|
|
||||||
|
local Actions = require "game.modules.subgames.world.actors.fighters.mixins.actions"
|
||||||
|
local Movements = require "game.modules.subgames.world.actors.fighters.mixins.movements"
|
||||||
|
|
||||||
|
FighterParent:implement(Actions)
|
||||||
|
FighterParent:implement(Movements)
|
||||||
|
FighterParent:implement(Score)
|
||||||
|
FighterParent:implement(Sprites)
|
||||||
|
FighterParent:implement(Team)
|
||||||
|
FighterParent:implement(Controls)
|
||||||
|
|
||||||
|
function FighterParent:new(world, x, y, w, h, d, fighterType)
|
||||||
|
FighterParent.super.new(self, world, fighterType, x, y, 0, w, h, d, true)
|
||||||
|
self:initMovements()
|
||||||
|
self:initActions()
|
||||||
|
|
||||||
|
self.tweens = TweenManager(self)
|
||||||
|
end
|
||||||
|
|
||||||
|
function FighterParent:update(dt)
|
||||||
|
self:updateMovements(dt)
|
||||||
|
FighterParent.super.update(self, dt)
|
||||||
|
self.tweens:update(dt)
|
||||||
|
end
|
||||||
|
|
||||||
|
function FighterParent:animationEnded(name)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return FighterParent
|
|
@ -0,0 +1,51 @@
|
||||||
|
local Parent = require("game.modules.subgames.world.actors.fighters.parent")
|
||||||
|
local Player = Parent:extend()
|
||||||
|
|
||||||
|
local Score = require "game.modules.subgames.world.actors.fighters.player.score"
|
||||||
|
local Sprites = require "game.modules.subgames.world.actors.fighters.player.sprites"
|
||||||
|
local Controls = require "game.modules.subgames.world.actors.fighters.player.controls"
|
||||||
|
|
||||||
|
local Team = require "scenes.overworld.actors.player.team"
|
||||||
|
|
||||||
|
Player:implement(Score)
|
||||||
|
Player:implement(Sprites)
|
||||||
|
Player:implement(Team)
|
||||||
|
Player:implement(Controls)
|
||||||
|
|
||||||
|
function Player:new(world, x, y, z, id)
|
||||||
|
Player.super.new(self, world, x, y, 16, 12, 24, "fighter")
|
||||||
|
self:initCharactersSprites()
|
||||||
|
self:initScore()
|
||||||
|
self:initTeam()
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:updateStart(dt)
|
||||||
|
self:applyInputs()
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:collisionResponse(collision)
|
||||||
|
if collision.other.type == "collectible" then
|
||||||
|
collision.other.owner:getPicked(self)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:timerResponse(response)
|
||||||
|
if (response == "changeCharacter") then
|
||||||
|
self:endCharacterSwitchAnimation()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:animationEnded(name)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:updateEnd(dt)
|
||||||
|
self:setAnimation()
|
||||||
|
end
|
||||||
|
|
||||||
|
function Player:getViewCenter()
|
||||||
|
local x, y = Player.super.getViewCenter(self)
|
||||||
|
return x, y-16
|
||||||
|
end
|
||||||
|
|
||||||
|
return Player
|
|
@ -2,7 +2,7 @@ local Obj = {}
|
||||||
|
|
||||||
-- On charge toutes les différentes types d'acteurs
|
-- On charge toutes les différentes types d'acteurs
|
||||||
local cwd = (...):gsub('%.init$', '') .. "."
|
local cwd = (...):gsub('%.init$', '') .. "."
|
||||||
Obj.Player = require(cwd .. "player")
|
Obj.Player = require(cwd .. "fighters.player")
|
||||||
Obj.Ring = require(cwd .. "items.ring")
|
Obj.Ring = require(cwd .. "items.ring")
|
||||||
|
|
||||||
Obj.index = {}
|
Obj.index = {}
|
||||||
|
|
Loading…
Reference in a new issue