WIP: new-cbs #117
4 changed files with 111 additions and 1 deletions
44
sonic-radiance.love/scenes/battles/init.lua
Normal file
44
sonic-radiance.love/scenes/battles/init.lua
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
-- scenes/battles :: the Radiance Custom Battle System
|
||||||
|
|
||||||
|
--[[
|
||||||
|
Copyright © 2022 Kazhnuz
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
]]
|
||||||
|
|
||||||
|
local PlayStyle = require "game.modules.subgames"
|
||||||
|
local CBS = PlayStyle:extend()
|
||||||
|
|
||||||
|
local World = require "scenes.battles.world"
|
||||||
|
|
||||||
|
function CBS:new(battleData)
|
||||||
|
CBS.super.new(self, {"shoot", "test", "battle"}, "testmissions", {"sonic"})
|
||||||
|
self.assets:batchImport("assets.battle")
|
||||||
|
self:playMusic(battleData.music)
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBS:playMusic(music)
|
||||||
|
self.assets:setMusic("assets/music/" .. music .. ".mp3")
|
||||||
|
self.assets:playMusic()
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBS:initWorld()
|
||||||
|
World(self, self.map)
|
||||||
|
end
|
||||||
|
|
||||||
|
return CBS
|
16
sonic-radiance.love/scenes/battles/world/init.lua
Normal file
16
sonic-radiance.love/scenes/battles/world/init.lua
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
local ParentWorld = require "game.modules.subgames.world.parent"
|
||||||
|
local CBSWorld = ParentWorld:extend()
|
||||||
|
|
||||||
|
local Map = require "scenes.battles.world.map"
|
||||||
|
|
||||||
|
function CBSWorld:new(scene, mapname)
|
||||||
|
CBSWorld.super.new(self, scene, "battle", mapname)
|
||||||
|
self.mapname = mapname
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSWorld:createMapController()
|
||||||
|
Map(self, self.mapname)
|
||||||
|
self.cameras:lockY(10)
|
||||||
|
end
|
||||||
|
|
||||||
|
return CBSWorld
|
50
sonic-radiance.love/scenes/battles/world/map.lua
Normal file
50
sonic-radiance.love/scenes/battles/world/map.lua
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
local BaseMap = require "birb.modules.world.maps.parent"
|
||||||
|
local CBSMap = BaseMap:extend()
|
||||||
|
|
||||||
|
local TILESIZE = 31
|
||||||
|
local TESTZONE = "forest"
|
||||||
|
|
||||||
|
local zoneDatas = require "datas.gamedata.maps.shoot.zones"
|
||||||
|
local Background = require "game.modules.drawing.parallaxBackground"
|
||||||
|
|
||||||
|
function CBSMap:new(world, type)
|
||||||
|
CBSMap.super.new(self, world)
|
||||||
|
|
||||||
|
self:setPadding(0, 0, 0, 0)
|
||||||
|
self.parallaxBackground = Background(world.scene, 6, 0, TESTZONE)
|
||||||
|
self.layout = {}
|
||||||
|
self.chunklist = {}
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:loadCollisions()
|
||||||
|
local w, h = self:getDimensions()
|
||||||
|
|
||||||
|
self.world:newCollision("fakefloor", 0, 0, -48, w, h, 48)
|
||||||
|
self.world:newCollision("invisible", 0, 0, -48, w, h, 48)
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:addBlock(x, y, w, h, top, bottom)
|
||||||
|
-- Empty Placeholder function
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:getDimensions()
|
||||||
|
return 424, 120
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:loadPlayers()
|
||||||
|
self.world:addPlayer(16, 50, 0, 1)
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:loadActors()
|
||||||
|
-- Empty Placeholder function
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:drawParallax(x, y, w, h)
|
||||||
|
self.parallaxBackground:drawParallax(x, y, w, h)
|
||||||
|
end
|
||||||
|
|
||||||
|
function CBSMap:draw()
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return CBSMap
|
|
@ -1,7 +1,7 @@
|
||||||
return {
|
return {
|
||||||
test = require "scenes.subgames.testBattle",
|
test = require "scenes.subgames.testBattle",
|
||||||
test2 = require "scenes.subgames.testShoot",
|
test2 = require "scenes.subgames.testShoot",
|
||||||
cbs = require "scenes.battlesystem",
|
cbs = require "scenes.battles",
|
||||||
menus = require "scenes.menus",
|
menus = require "scenes.menus",
|
||||||
overworld = require "scenes.overworld"
|
overworld = require "scenes.overworld"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue