stuff added
|
@ -42,6 +42,11 @@
|
||||||
"type": "bool",
|
"type": "bool",
|
||||||
"default": false
|
"default": false
|
||||||
},
|
},
|
||||||
|
"static_idol": {
|
||||||
|
"label": "If Single Image is in ,Stactic Folder, toggle this",
|
||||||
|
"type": "bool",
|
||||||
|
"default": false
|
||||||
|
},
|
||||||
|
|
||||||
"words": {
|
"words": {
|
||||||
"type": "selection",
|
"type": "selection",
|
||||||
|
|
|
@ -2,11 +2,17 @@ json = require "common.json"
|
||||||
local header = {}
|
local header = {}
|
||||||
header["user-agent"] = "unnamed_sdvx_clone"
|
header["user-agent"] = "unnamed_sdvx_clone"
|
||||||
|
|
||||||
|
local Dim = require("common.dimensions")
|
||||||
|
local Wallpaper = require("components.wallpaper")
|
||||||
|
local Background = require('components.background');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
local jacketFallback = gfx.CreateSkinImage("song_select/loading.png", 0)
|
local jacketFallback = gfx.CreateSkinImage("song_select/loading.png", 0)
|
||||||
local diffColors = {{50,50,127}, {50,127,50}, {127,50,50}, {127, 50, 127}}
|
local diffColors = {{50,50,127}, {50,127,50}, {127,50,50}, {127, 50, 127}}
|
||||||
local entryW = 770
|
local entryW = 770
|
||||||
local entryH = 320
|
local entryH = 320
|
||||||
local resX,resY = game.GetResolution()
|
local resX,resY = Dim.design.width,Dim.design.height
|
||||||
local xCount = math.max(1, math.floor(resX / entryW))
|
local xCount = math.max(1, math.floor(resX / entryW))
|
||||||
local yCount = math.max(1, math.floor(resY / entryH))
|
local yCount = math.max(1, math.floor(resY / entryH))
|
||||||
local xOffset = (resX - xCount * entryW) / 2
|
local xOffset = (resX - xCount * entryW) / 2
|
||||||
|
@ -33,6 +39,8 @@ local sortingcursor = 0
|
||||||
local sortingOptions = {"Uploaded", "Oldest"}
|
local sortingOptions = {"Uploaded", "Oldest"}
|
||||||
local needsReload = false
|
local needsReload = false
|
||||||
|
|
||||||
|
local yOffset = 0
|
||||||
|
|
||||||
function addsong(song)
|
function addsong(song)
|
||||||
if song.jacket_url ~= nil then
|
if song.jacket_url ~= nil then
|
||||||
song.jacket = gfx.LoadWebImageJob(song.jacket_url, jacketFallback, 250, 250)
|
song.jacket = gfx.LoadWebImageJob(song.jacket_url, jacketFallback, 250, 250)
|
||||||
|
@ -44,8 +52,7 @@ function addsong(song)
|
||||||
end
|
end
|
||||||
table.insert(songs, song)
|
table.insert(songs, song)
|
||||||
end
|
end
|
||||||
local yOffset = 0
|
|
||||||
local backgroundImage = gfx.CreateSkinImage("bg.png", 1);
|
|
||||||
|
|
||||||
dlcache = io.open(cachepath, "r")
|
dlcache = io.open(cachepath, "r")
|
||||||
if dlcache then
|
if dlcache then
|
||||||
|
@ -68,8 +75,6 @@ function encodeURI(str)
|
||||||
return str
|
return str
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function gotSongsCallback(response)
|
function gotSongsCallback(response)
|
||||||
if response.status ~= 200 then
|
if response.status ~= 200 then
|
||||||
error()
|
error()
|
||||||
|
@ -87,6 +92,7 @@ Http.GetAsync(nextUrl, header, gotSongsCallback)
|
||||||
|
|
||||||
|
|
||||||
function render_song(song, x,y)
|
function render_song(song, x,y)
|
||||||
|
--[[
|
||||||
gfx.Save()
|
gfx.Save()
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_TOP)
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_TOP)
|
||||||
gfx.Translate(x,y)
|
gfx.Translate(x,y)
|
||||||
|
@ -143,6 +149,7 @@ function render_song(song, x,y)
|
||||||
end
|
end
|
||||||
gfx.ResetScissor()
|
gfx.ResetScissor()
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
|
]]
|
||||||
end
|
end
|
||||||
|
|
||||||
function load_more()
|
function load_more()
|
||||||
|
@ -186,41 +193,38 @@ function render_hotkeys()
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.FillColor(0,0,0,240)
|
gfx.FillColor(0,0,0,240)
|
||||||
gfx.Rect(0,resY - 50, resX, 50)
|
gfx.Rect(0,resX - 50, resY, 50)
|
||||||
gfx.Fill()
|
gfx.Fill()
|
||||||
gfx.FontSize(30)
|
gfx.FontSize(30)
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.Text("FXR: Sorting", resX/2 + 20, resY - 10)
|
gfx.Text("FXR: Sorting", resY/2, resX - 10)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.Text("FXL: Levels", resX/2 - 20, resY - 10)
|
gfx.Text("FXL: Levels", resY/2 -20, resX - 10)
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
end
|
end
|
||||||
|
|
||||||
function render_info()
|
function render_info()
|
||||||
gfx.Save()
|
gfx.Save()
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
gfx.BeginPath()
|
|
||||||
gfx.MoveTo(0, resY)
|
|
||||||
gfx.LineTo(350, resY)
|
|
||||||
gfx.LineTo(300, resY - 50)
|
|
||||||
gfx.LineTo(0, resY - 50)
|
|
||||||
gfx.ClosePath()
|
|
||||||
gfx.FillColor(33,33,33)
|
|
||||||
gfx.Fill()
|
|
||||||
gfx.FillColor(255,255,255)
|
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("Nautica", 3, resY - 3)
|
gfx.Text("Nautica", resX-2, resX-20)
|
||||||
local xmin,ymin,xmax,ymax = gfx.TextBounds(3, resY - 3, "Nautica")
|
|
||||||
gfx.FontSize(20)
|
gfx.FontSize(20)
|
||||||
gfx.Text("https://ksm.dev/", xmax + 13, resY - 3)
|
gfx.Text("https://ksm.dev/", resX-13, resX-3)
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
end
|
end
|
||||||
|
|
||||||
function render(deltaTime)
|
function render(deltaTime)
|
||||||
gfx.BeginPath()
|
|
||||||
gfx.ImageRect(0, 0, resX, resY, backgroundImage, 1, 0);
|
Dim.updateResolution()
|
||||||
|
Wallpaper.render()
|
||||||
|
|
||||||
|
Dim.transformToScreenSpace()
|
||||||
|
|
||||||
|
Background.draw(deltaTime)
|
||||||
|
|
||||||
gfx.LoadSkinFont("NotoSans-Regular.ttf");
|
gfx.LoadSkinFont("NotoSans-Regular.ttf");
|
||||||
displayCursorPosX = displayCursorPosX - (displayCursorPosX - cursorPosX) * deltaTime * 10
|
displayCursorPosX = displayCursorPosX - (displayCursorPosX - cursorPosX) * deltaTime * 10
|
||||||
displayCursorPosY = displayCursorPosY - (displayCursorPosY - cursorPosY) * deltaTime * 10
|
displayCursorPosY = displayCursorPosY - (displayCursorPosY - cursorPosY) * deltaTime * 10
|
||||||
|
@ -380,7 +384,7 @@ function render_level_filters()
|
||||||
gfx.Save()
|
gfx.Save()
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(0,0, resX, resY)
|
gfx.Rect(0,0, resX+215, resY)
|
||||||
gfx.FillColor(0,0,0,200)
|
gfx.FillColor(0,0,0,200)
|
||||||
gfx.Fill()
|
gfx.Fill()
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
|
@ -388,16 +392,16 @@ function render_level_filters()
|
||||||
gfx.FontSize(60)
|
gfx.FontSize(60)
|
||||||
gfx.Text("Level filters:", 10, 10)
|
gfx.Text("Level filters:", 10, 10)
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(resX/2 - 30, resY/2 - 22, 60, 44)
|
gfx.Rect(resX, resY, 60, 44)
|
||||||
gfx.StrokeColor(255,128,0)
|
gfx.StrokeColor(255,128,0)
|
||||||
gfx.StrokeWidth(2)
|
gfx.StrokeWidth(2)
|
||||||
gfx.Stroke()
|
gfx.Stroke()
|
||||||
gfx.FontSize(40)
|
gfx.FontSize(40)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
for i = 1, 20 do
|
for i = 1, 20 do
|
||||||
y = (resY/2) + (i - (levelcursor + 1)) * 40
|
y = (resX/2) + (i - (levelcursor + 1)) * 40
|
||||||
if selectedLevels[i] then gfx.FillColor(255,255,255) else gfx.FillColor(127,127,127) end
|
if selectedLevels[i] then gfx.FillColor(255,255,255) else gfx.FillColor(127,127,127) end
|
||||||
gfx.Text(tostring(i), resX/2, y)
|
gfx.Text(tostring(i), resX-115, y)
|
||||||
end
|
end
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
end
|
end
|
||||||
|
@ -406,7 +410,7 @@ function render_sorting_selection()
|
||||||
gfx.Save()
|
gfx.Save()
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(0,0, resX, resY)
|
gfx.Rect(0,0, resX+215, resY)
|
||||||
gfx.FillColor(0,0,0,200)
|
gfx.FillColor(0,0,0,200)
|
||||||
gfx.Fill()
|
gfx.Fill()
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
|
@ -414,16 +418,16 @@ function render_sorting_selection()
|
||||||
gfx.FontSize(60)
|
gfx.FontSize(60)
|
||||||
gfx.Text("Sorting method:", 10, 10)
|
gfx.Text("Sorting method:", 10, 10)
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(resX/2 - 75, resY/2 - 22, 150, 44)
|
gfx.Rect(resX, resY, 150, 44)
|
||||||
gfx.StrokeColor(255,128,0)
|
gfx.StrokeColor(255,128,0)
|
||||||
gfx.StrokeWidth(2)
|
gfx.StrokeWidth(2)
|
||||||
gfx.Stroke()
|
gfx.Stroke()
|
||||||
gfx.FontSize(40)
|
gfx.FontSize(40)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
for i, opt in ipairs(sortingOptions) do
|
for i, opt in ipairs(sortingOptions) do
|
||||||
y = (resY/2) + (i - (sortingcursor + 1)) * 40
|
y = (resX/2) + (i - (sortingcursor + 1)) * 40
|
||||||
if selectedSorting == opt then gfx.FillColor(255,255,255) else gfx.FillColor(127,127,127) end
|
if selectedSorting == opt then gfx.FillColor(255,255,255) else gfx.FillColor(127,127,127) end
|
||||||
gfx.Text(opt, resX/2, y)
|
gfx.Text(opt, resX-115, y)
|
||||||
end
|
end
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
end
|
end
|
|
@ -1,5 +1,25 @@
|
||||||
|
|
||||||
local bannerBaseImage = gfx.CreateSkinImage("gameplay/banner/base.png", 0)
|
local bannerBaseImage = gfx.CreateSkinImage("gameplay/banner/base.png", 0)
|
||||||
|
local UsBottom = gfx.CreateSkinImage("result/multi_4p/base.png",0)
|
||||||
|
local UsTop = gfx.CreateSkinImage("result/multi_4p/top.png",0)
|
||||||
|
|
||||||
|
local pos = {
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/1.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/2.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/3.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/4.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/5.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/6.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/7.png", 0),
|
||||||
|
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/8.png", 0),
|
||||||
|
}
|
||||||
|
|
||||||
local desw = 1080
|
local desw = 1080
|
||||||
local desh = 1920
|
local desh = 1920
|
||||||
|
@ -15,13 +35,9 @@ local drawScoreboard = function (users, currentUserId)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
gfx.FontSize(32)
|
gfx.FontSize(32)
|
||||||
|
|
||||||
local x = 16;
|
|
||||||
local basey = 510;
|
|
||||||
|
|
||||||
gfx.LoadSkinFont("Digital-Serial-Bold.ttf")
|
gfx.LoadSkinFont("Digital-Serial-Bold.ttf")
|
||||||
|
|
||||||
for i, u in ipairs(users) do
|
for i, u in ipairs(users) do
|
||||||
local y = basey + i*28;
|
|
||||||
|
|
||||||
if (u.id == currentUserId) then
|
if (u.id == currentUserId) then
|
||||||
gfx.FillColor(128,192,255);
|
gfx.FillColor(128,192,255);
|
||||||
|
@ -29,17 +45,52 @@ local drawScoreboard = function (users, currentUserId)
|
||||||
gfx.FillColor(255,255,255);
|
gfx.FillColor(255,255,255);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
isLandscape = desw < desh;
|
||||||
|
|
||||||
gfx.FontSize(26)
|
local posUPWidth, posUPHeight = gfx.ImageSize(UsBottom)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
numberx = posUPWidth;
|
||||||
gfx.Text(string.format("%04d", math.floor(u.score/10000)), x, y)
|
if not isLandscape then
|
||||||
|
|
||||||
local lastFourDigits = ((u.score / 10000) - math.floor(u.score / 10000))*10000
|
local posUPWidth, posUPHeight = gfx.ImageSize(UsBottom)
|
||||||
gfx.FontSize(22)
|
local y = 16;
|
||||||
gfx.Text(string.format("%04d", math.floor(lastFourDigits)), x+58, y+1)
|
|
||||||
|
|
||||||
gfx.FontSize(26)
|
|
||||||
gfx.Text('#' .. i .. ' ' .. u.name, x+120, y)
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(numberx, y,posUPWidth/1.75,posUPHeight/1.75,UsBottom,1,0)
|
||||||
|
|
||||||
|
local posDWWidth, posDWHeight = gfx.ImageSize(UsTop)
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(numberx, y,posDWWidth/1.75,posDWHeight/1.75,UsTop,1,0)
|
||||||
|
|
||||||
|
local posWidth, posHeight = gfx.ImageSize(pos[i])
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(numberx+110, y+16,posWidth/2,posHeight/2,pos[i],1,0)
|
||||||
|
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.FontSize(26)
|
||||||
|
gfx.Text(u.name, numberx, y)
|
||||||
|
elseif isLandscape then
|
||||||
|
|
||||||
|
local x = 16;
|
||||||
|
local basey = 510;
|
||||||
|
local y = basey + i*28;
|
||||||
|
|
||||||
|
gfx.FontSize(26)
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
gfx.Text(string.format("%04d", math.floor(u.score/10000)), x, y)
|
||||||
|
|
||||||
|
local lastFourDigits = ((u.score / 10000) - math.floor(u.score / 10000))*10000
|
||||||
|
gfx.FontSize(22)
|
||||||
|
gfx.Text(string.format("%04d", math.floor(lastFourDigits)), x+58, y+1)
|
||||||
|
|
||||||
|
gfx.FontSize(26)
|
||||||
|
gfx.Text(u.name, x+155, y)
|
||||||
|
gfx.BeginPath()
|
||||||
|
local posWidth, posHeight = gfx.ImageSize(pos[i])
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(x+100, y-20,posWidth/2.5,posHeight/2.5,pos[i],1,0)
|
||||||
|
end
|
||||||
|
numberx = numberx+numberx
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -71,6 +122,8 @@ local render = function (deltaTime, users, currentUserId)
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
|
drawScoreboard(users, currentUserId); -- TODO: for now
|
||||||
|
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -11,6 +11,7 @@ local bgLeftImage = gfx.CreateSkinImage("gameplay/song_panel/bg_left.png", 0);
|
||||||
local bgRightImage = gfx.CreateSkinImage("gameplay/song_panel/bg_right.png", 0);
|
local bgRightImage = gfx.CreateSkinImage("gameplay/song_panel/bg_right.png", 0);
|
||||||
local notify = gfx.CreateSkinImage("gameplay/song_panel/notice.png", 0)
|
local notify = gfx.CreateSkinImage("gameplay/song_panel/notice.png", 0)
|
||||||
|
|
||||||
|
local demopanel = gfx.CreateSkinImage("multi/lobby/multi_jacket.png",0)
|
||||||
local progressDotImage = gfx.CreateSkinImage("gameplay/song_panel/dot.png", 0);
|
local progressDotImage = gfx.CreateSkinImage("gameplay/song_panel/dot.png", 0);
|
||||||
|
|
||||||
local jacketFallbackImage = gfx.CreateSkinImage("song_select/loading.png", 0);
|
local jacketFallbackImage = gfx.CreateSkinImage("song_select/loading.png", 0);
|
||||||
|
@ -40,6 +41,48 @@ local tickTransitions = function (deltaTime)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local demoMode = function (songTitle,songArtist)
|
||||||
|
--[[
|
||||||
|
gfx.BeginPath();
|
||||||
|
local tw, th = gfx.ImageSize(demopanel);
|
||||||
|
th = (Dim.design.width / tw) * th;
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(0, 0, Dim.design.width, Dim.design.height,temp, 1, 0);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FillColor(50,80,120,100)
|
||||||
|
gfx.Rect((Dim.design.width/4)-29, th+62, Dim.design.width/1.75, th/1.75);
|
||||||
|
gfx.Fill()
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FillColor(50,120,80,100)
|
||||||
|
gfx.Rect((Dim.design.width/4)+15, th+129, Dim.design.width/2.12, th/2.25);
|
||||||
|
gfx.Fill()
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.Text(actualLaneSpeed,Dim.design.width/4, th+100)
|
||||||
|
]]
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
local tw, th = gfx.ImageSize(demopanel);
|
||||||
|
th = (desw / tw) * th;
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FillColor(50,80,120,100)
|
||||||
|
gfx.Rect((desw/4)-29, th+62, desw/1.75, th/1.64);
|
||||||
|
-- gfx.ImageRect((desw/4)-29,th+62,desw/1.75,th/1.64,demopanel,1,0)
|
||||||
|
gfx.Fill()
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FontSize(38)
|
||||||
|
gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
|
||||||
|
renderOutlinedText(desw/4+12,th+90, "DEMO MODE", 2);
|
||||||
|
gfx.BeginPath();
|
||||||
|
-- gfx.FillColor(50,120,80,100)
|
||||||
|
-- gfx.Rect((desw/4)+15, th+129, desw/2.12, th/2.25);
|
||||||
|
gfx.ImageRect((desw/4)+15,th+129,desw/2.12,th/2.25,jacketImage,1,0)
|
||||||
|
-- gfx.Fill()
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
renderOutlinedText(desw/2,th+685, songTitle, 2);
|
||||||
|
renderOutlinedText(desw/2,th+725, songArtist, 2);
|
||||||
|
end
|
||||||
|
|
||||||
local render = function (deltaTime, bpm, laneSpeed, jacketPath, diff, level, progress, songTitle, songArtist)
|
local render = function (deltaTime, bpm, laneSpeed, jacketPath, diff, level, progress, songTitle, songArtist)
|
||||||
gfx.Save();
|
gfx.Save();
|
||||||
|
|
||||||
|
@ -99,36 +142,6 @@ local render = function (deltaTime, bpm, laneSpeed, jacketPath, diff, level, pro
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
if gameplay.autoplay and gameplay.demoMode == false and gameplay.practice_setup == false then
|
|
||||||
|
|
||||||
gfx.BeginPath();
|
|
||||||
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
|
||||||
renderOutlinedText(30,y+354.5, "AUTOPLAY IS ENABLED", 1.5);
|
|
||||||
|
|
||||||
elseif gameplay.demoMode == true and gameplay.practice_setup == false then
|
|
||||||
|
|
||||||
gfx.BeginPath();
|
|
||||||
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
|
||||||
renderOutlinedText(30,y+354.5, "DEMO MODE IS ENABLED", 1.5);
|
|
||||||
|
|
||||||
elseif gameplay.scoreReplays and gameplay.demoMode == false and gameplay.practice_setup == false then
|
|
||||||
|
|
||||||
gfx.BeginPath();
|
|
||||||
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
|
||||||
renderOutlinedText(30,y+354.5, "REPLAY MODE IS ENABLED", 1.5);
|
|
||||||
|
|
||||||
elseif gameplay.practice_setup == true then
|
|
||||||
|
|
||||||
gfx.BeginPath();
|
|
||||||
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
|
||||||
renderOutlinedText(30,y+354.5, "PRACTICE MODE IS ENABLED", 1.5);
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Draw diff rectangle
|
-- Draw diff rectangle
|
||||||
local adjustedDiff = Charting.GetDisplayDifficulty(gameplay.jacketPath, diff)
|
local adjustedDiff = Charting.GetDisplayDifficulty(gameplay.jacketPath, diff)
|
||||||
DiffRectangle.render(deltaTime, 31, y+140, 0.84, adjustedDiff, level);
|
DiffRectangle.render(deltaTime, 31, y+140, 0.84, adjustedDiff, level);
|
||||||
|
@ -144,6 +157,44 @@ local render = function (deltaTime, bpm, laneSpeed, jacketPath, diff, level, pro
|
||||||
renderOutlinedText(260,y+247, string.format("%.0f", bpm), 2);
|
renderOutlinedText(260,y+247, string.format("%.0f", bpm), 2);
|
||||||
renderOutlinedText(260,y+281, string.format("%.2f", actualLaneSpeed), 2);
|
renderOutlinedText(260,y+281, string.format("%.2f", actualLaneSpeed), 2);
|
||||||
|
|
||||||
|
gfx.FontSize(18);
|
||||||
|
if gameplay.autoplay and not gameplay.demoMode and gameplay.practice_setup == nil then
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
renderOutlinedText(30,y+354.5, "AUTOPLAY IS ENABLED", 1.5);
|
||||||
|
|
||||||
|
elseif gameplay.demoMode and gameplay.practice_setup == nil then
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
if (isLandscape) then
|
||||||
|
|
||||||
|
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
renderOutlinedText(30,y+354.5, "DEMO MODE IS ENABLED", 1.5);
|
||||||
|
else
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
demoMode(songTitle,songArtist)
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif gameplay.scoreReplays and not gameplay.autoplay and not gameplay.demoMode and gameplay.practice_setup == nil then
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
renderOutlinedText(30,y+354.5, "REPLAY MODE IS ENABLED", 1.5);
|
||||||
|
|
||||||
|
elseif gameplay.practice_setup then
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(0,y+310,245,67,notify,1,0);
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE)
|
||||||
|
renderOutlinedText(30,y+354.5, "PRACTICE MODE IS ENABLED", 1.5);
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
gfx.FontSize(30);
|
||||||
-- Draw progress
|
-- Draw progress
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.FillColor(244, 204, 101)
|
gfx.FillColor(244, 204, 101)
|
||||||
|
|
|
@ -89,7 +89,6 @@ local m_s_part = function ()
|
||||||
gfx.Text(selected_song.effector, rightPanelX+463, rightPanelY+191)
|
gfx.Text(selected_song.effector, rightPanelX+463, rightPanelY+191)
|
||||||
gfx.Text(selected_song.illustrator, rightPanelX+463, rightPanelY+219)
|
gfx.Text(selected_song.illustrator, rightPanelX+463, rightPanelY+219)
|
||||||
draw_diffs(selected_song.all_difficulties, 395, 205, 300, 100, selected_song.diff_index+1)
|
draw_diffs(selected_song.all_difficulties, 395, 205, 300, 100, selected_song.diff_index+1)
|
||||||
gfx.Text("Dif pos: "..selected_song.diff_index,rightPanelX, rightPanelY)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
local Dim = require("common.dimensions")
|
||||||
|
|
||||||
|
local DigiSerBold = "Digital-Serial-Bold.ttf";
|
||||||
|
|
||||||
|
local desw,desh = Dim.design.width,Dim.design.height
|
||||||
|
|
||||||
|
local lobbypanelX = 0;
|
||||||
|
local lobbypanelY = (1080/2.5)-56;
|
||||||
|
|
||||||
|
local l_base_panel = gfx.CreateSkinImage("multi/roomselect/lobby_select.png",1);
|
||||||
|
local l_color = gfx.CreateSkinImage("multi/roomselect/lobby_select_color.png", 1);
|
||||||
|
local l_grad = gfx.CreateSkinImage("multi/roomselect/lobby_select_gradiant.png", 1);
|
||||||
|
local l_name = gfx.CreateSkinImage("multi/roomselect/multi_station.png",1);
|
||||||
|
local l_load = gfx.CreateSkinImage("multi/roomselect/lobby_not_loaded.png",1)
|
||||||
|
|
||||||
|
local getpanel = function()
|
||||||
|
|
||||||
|
local jw,jh = gfx.ImageSize(l_base_panel);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(lobbypanelX, lobbypanelY, jw, jh, l_base_panel,1,0);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(lobbypanelX, lobbypanelY, jw, jh, l_color,1,0);
|
||||||
|
|
||||||
|
-- do the lobby oder here
|
||||||
|
draw_rooms(desw/2, desh - 290);
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(lobbypanelX, lobbypanelY, jw, jh, l_grad,1,0);
|
||||||
|
|
||||||
|
local nw,nh = gfx.ImageSize(l_name);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(lobbypanelX+445, lobbypanelY+9, nw, nh, l_name,1,0);
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
if not loading then
|
||||||
|
custom_button("Create new room",40+(desw/2), 530+(desh/2),l_load,DigiSerBold,70,new_room)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
return getpanel
|
|
@ -5,19 +5,21 @@ local Sound = require("common.sound")
|
||||||
local Dim = require("common.dimensions")
|
local Dim = require("common.dimensions")
|
||||||
local Wallpaper = require("components.wallpaper")
|
local Wallpaper = require("components.wallpaper")
|
||||||
local Background = require('components.background');
|
local Background = require('components.background');
|
||||||
local difbar = require("components.diff_rectangle"); --no clue but starting to separating breaks it
|
local difbar = require("components.diff_rectangle");
|
||||||
|
|
||||||
local creww = game.GetSkinSetting("single_idol")
|
local creww = game.GetSkinSetting("single_idol")
|
||||||
|
|
||||||
local songjacket = require("multi.songjacket")
|
-- inRoom components
|
||||||
local m_own_info = require("multi.owninfo")
|
local songjacket = require("multi.inRoom.songjacket")
|
||||||
local m_base_part = require("multi.basepanel")
|
local m_own_info = require("multi.inRoom.owninfo")
|
||||||
local m_part = require("multi.mainpanel")
|
local m_base_part = require("multi.inRoom.basepanel")
|
||||||
local m_s_part = require("multi.songinfo")
|
local m_part = require("multi.inRoom.mainpanel")
|
||||||
local m_bpm_part = require("multi.bpmpanel")
|
local m_s_part = require("multi.inRoom.songinfo")
|
||||||
local m_info_part = require("multi.infopanel")
|
local m_bpm_part = require("multi.inRoom.bpmpanel")
|
||||||
|
local m_info_part = require("multi.inRoom.infopanel")
|
||||||
|
|
||||||
local temppanels = gfx.CreateSkinImage("song_select/textboard.png", 1); --temp
|
-- roomList components
|
||||||
|
local getpanel = require("multi.roomList.getpanel")
|
||||||
|
|
||||||
local headerMatchingImage = gfx.CreateSkinImage("titlescreen/entry.png", 1);
|
local headerMatchingImage = gfx.CreateSkinImage("titlescreen/entry.png", 1);
|
||||||
|
|
||||||
|
@ -35,10 +37,12 @@ local idolAnimTransitionScale = 0;
|
||||||
local leftPanelX = 575;
|
local leftPanelX = 575;
|
||||||
local leftPanelY = 1472;
|
local leftPanelY = 1472;
|
||||||
|
|
||||||
|
local desw,desh = Dim.design.width,Dim.design.height
|
||||||
|
|
||||||
local mposx = 0;
|
local mposx = 0;
|
||||||
local mposy = 0;
|
local mposy = 0;
|
||||||
local hovered = nil;
|
local hovered = nil;
|
||||||
local buttonWidth = Dim.design.width*(3/4);
|
local buttonWidth = desw*(3/4);
|
||||||
local buttonHeight = 75;
|
local buttonHeight = 75;
|
||||||
local buttonBorder = 2;
|
local buttonBorder = 2;
|
||||||
local portrait
|
local portrait
|
||||||
|
@ -47,7 +51,7 @@ local jacket_size;
|
||||||
local BAR_ALPHA = 191;
|
local BAR_ALPHA = 191;
|
||||||
local HEADER_HEIGHT = 100
|
local HEADER_HEIGHT = 100
|
||||||
|
|
||||||
local desh = game.GetResolution()
|
|
||||||
local scale;
|
local scale;
|
||||||
|
|
||||||
game.LoadSkinSample("click-02")
|
game.LoadSkinSample("click-02")
|
||||||
|
@ -124,13 +128,14 @@ local drawIdol = function(deltaTime)
|
||||||
idolAnimTransitionScale = 1;
|
idolAnimTransitionScale = 1;
|
||||||
end
|
end
|
||||||
|
|
||||||
gfx.ImageRect(0, 0, Dim.design.width,desh, idolAnimation, 1, 0);
|
gfx.ImageRect(0, 0, Dim.design.width,Dim.design.height, idolAnimation, 1, 0);
|
||||||
gfx.GlobalAlpha(1);
|
gfx.GlobalAlpha(1);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
user_setup = function () -- (semi new) user layering
|
user_setup = function () -- (semi new) user layering
|
||||||
local distance = 350
|
local distance = 350
|
||||||
|
|
||||||
for i, user in ipairs(lobby_users) do
|
for i, user in ipairs(lobby_users) do
|
||||||
|
|
||||||
buttonY = 1142-360/1.2
|
buttonY = 1142-360/1.2
|
||||||
|
@ -156,7 +161,7 @@ user_setup = function () -- (semi new) user layering
|
||||||
draw_user(user, 16+distance+distance, 1142-360/1.2, 42030//1.2, 31.2,215,245.5)
|
draw_user(user, 16+distance+distance, 1142-360/1.2, 42030//1.2, 31.2,215,245.5)
|
||||||
|
|
||||||
elseif i > 4 then
|
elseif i > 4 then
|
||||||
draw_user(user, 16+distance+distance+distance+distance, 1142-360/1.2, 420/1.2, 330/1.2, i,215,245.5)
|
draw_user(user, 16+distance+distance+distance+distance, 1142-360/1.2, 420/1.2, 330/1.2, 31.2,215,245.5)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -164,11 +169,11 @@ end
|
||||||
function drawHeader()
|
function drawHeader()
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.FillColor(0, 0, 0, BAR_ALPHA)
|
gfx.FillColor(0, 0, 0, BAR_ALPHA)
|
||||||
gfx.Rect(0, 0, Dim.design.width, HEADER_HEIGHT)
|
gfx.Rect(0, 0, desw, HEADER_HEIGHT)
|
||||||
gfx.Fill()
|
gfx.Fill()
|
||||||
gfx.ClosePath()
|
gfx.ClosePath()
|
||||||
|
|
||||||
gfx.ImageRect(Dim.design.width / 2 - 200, HEADER_HEIGHT / 2 - 20, 400, 40, headerMatchingImage, 1, 0)
|
gfx.ImageRect(desw / 2 - 200, HEADER_HEIGHT / 2 - 20, 400, 40, headerMatchingImage, 1, 0)
|
||||||
end
|
end
|
||||||
|
|
||||||
mouse_clipped = function(x,y,w,h)
|
mouse_clipped = function(x,y,w,h)
|
||||||
|
@ -177,7 +182,7 @@ end;
|
||||||
|
|
||||||
-- look into this when people are online
|
-- look into this when people are online
|
||||||
draw_room = function(name, x, y, selected, hoverindex)
|
draw_room = function(name, x, y, selected, hoverindex)
|
||||||
local buttonWidth = Dim.design.width/2;
|
local buttonWidth = desw*(3/4);
|
||||||
local rx = x - (buttonWidth / 2);
|
local rx = x - (buttonWidth / 2);
|
||||||
local ty = y - (buttonHeight / 2);
|
local ty = y - (buttonHeight / 2);
|
||||||
local roomButtonBorder = buttonBorder;
|
local roomButtonBorder = buttonBorder;
|
||||||
|
@ -187,7 +192,7 @@ draw_room = function(name, x, y, selected, hoverindex)
|
||||||
gfx.FillColor(0,255,0);
|
gfx.FillColor(0,255,0);
|
||||||
roomButtonBorder = 4;
|
roomButtonBorder = 4;
|
||||||
end
|
end
|
||||||
if mouse_clipped(rx,ty-75, buttonWidth, buttonHeight/2) then
|
if mouse_clipped(rx,ty, buttonWidth, buttonHeight) then
|
||||||
hovered = hoverindex;
|
hovered = hoverindex;
|
||||||
gfx.FillColor(255,128,0);
|
gfx.FillColor(255,128,0);
|
||||||
end
|
end
|
||||||
|
@ -207,18 +212,40 @@ draw_room = function(name, x, y, selected, hoverindex)
|
||||||
gfx.Text(name, x, y);
|
gfx.Text(name, x, y);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
draw_button = function(name, x, y, buttonWidth, hoverindex)
|
custom_button = function (name,x,y,image,font,fSize,hoverindex)
|
||||||
draw_button_color(name, x, y, buttonWidth, hoverindex, temppanels)
|
local jw,jh = gfx.ImageSize(image);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.ImageRect(x, y, jw, jh, image,1,0);
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FillColor(255,255,255);
|
||||||
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE);
|
||||||
|
gfx.LoadSkinFont(font)
|
||||||
|
gfx.FontSize(fSize);
|
||||||
|
gfx.Text(name, x+(jw/2)+5, y+(jh/2.25));
|
||||||
end
|
end
|
||||||
|
|
||||||
draw_button_color = function(name, x, y, buttonWidth, hoverindex,img)
|
draw_button = function(name, x, y, buttonWidth, hoverindex)
|
||||||
local rx = x;
|
draw_button_color(name, x, y, buttonWidth, hoverindex, 40,40,40, 0,128,255)
|
||||||
local ty = y - buttonHeight;
|
end
|
||||||
|
|
||||||
|
draw_button_color = function(name, x, y, buttonWidth, hoverindex,r,g,b, olr,olg,olb)
|
||||||
|
local rx = x - (buttonWidth / 2);
|
||||||
|
local ty = y - (buttonHeight / 2);
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.ImageRect(rx,ty,buttonWidth,buttonHeight,img,1,0)
|
gfx.FillColor(olr, olg, olb);
|
||||||
if mouse_clipped(rx,ty, buttonWidth/1.5, buttonHeight*2) then
|
if mouse_clipped(rx,ty, buttonWidth, buttonHeight) then
|
||||||
hovered = hoverindex;
|
hovered = hoverindex;
|
||||||
|
gfx.FillColor(255,128,0);
|
||||||
end
|
end
|
||||||
|
gfx.Rect(rx - buttonBorder,
|
||||||
|
ty - buttonBorder,
|
||||||
|
buttonWidth + (buttonBorder * 2),
|
||||||
|
buttonHeight + (buttonBorder * 2));
|
||||||
|
gfx.Fill();
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.FillColor(r,g,b);
|
||||||
|
gfx.Rect(rx, ty, buttonWidth, buttonHeight);
|
||||||
|
gfx.Fill();
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.FillColor(255,255,255);
|
gfx.FillColor(255,255,255);
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE);
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER + gfx.TEXT_ALIGN_MIDDLE);
|
||||||
|
@ -254,7 +281,7 @@ draw_checkbox = function(text, x, y, hoverindex, current, can_click)
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
|
|
||||||
draw_user = function(user, x, y , w, h, breadx,bready)
|
draw_user = function(user, x, y , w, h, breadx,bready, idolID)
|
||||||
local name = user.name
|
local name = user.name
|
||||||
local showthing = false
|
local showthing = false
|
||||||
if user.id == user_id then
|
if user.id == user_id then
|
||||||
|
@ -277,7 +304,6 @@ end
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE);
|
gfx.TextAlign(gfx.TEXT_ALIGN_LEFT + gfx.TEXT_ALIGN_MIDDLE);
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
|
|
||||||
|
|
||||||
gfx.FontSize(30)
|
gfx.FontSize(30)
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.ImageRect(x,y,w,h,m_4pb_panels_bottom,1,0)
|
gfx.ImageRect(x,y,w,h,m_4pb_panels_bottom,1,0)
|
||||||
|
@ -305,17 +331,17 @@ function render_loading()
|
||||||
gfx.Save()
|
gfx.Save()
|
||||||
gfx.ResetTransform()
|
gfx.ResetTransform()
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.MoveTo(Dim.design.width, desh)
|
gfx.MoveTo(desw, desh)
|
||||||
gfx.LineTo(Dim.design.width - 350, desh)
|
gfx.LineTo(desw - 350, desh)
|
||||||
gfx.LineTo(Dim.design.width - 300, desh - 50)
|
gfx.LineTo(desw - 300, desh - 50)
|
||||||
gfx.LineTo(Dim.design.width, desh - 50)
|
gfx.LineTo(desw, desh - 50)
|
||||||
gfx.ClosePath()
|
gfx.ClosePath()
|
||||||
gfx.FillColor(33,33,33)
|
gfx.FillColor(33,33,33)
|
||||||
gfx.Fill()
|
gfx.Fill()
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("LOADING...", Dim.design.width - 20, desh - 3)
|
gfx.Text("LOADING...", desw - 20, desh - 3)
|
||||||
gfx.Restore()
|
gfx.Restore()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -333,7 +359,7 @@ end
|
||||||
|
|
||||||
|
|
||||||
draw_diff_icon = function(diff, x, y, w, h)
|
draw_diff_icon = function(diff, x, y, w, h)
|
||||||
difbar.render(deltaTime, x, y, 1, diff.difficulty, diff.level);
|
difbar.render(deltaTime, x, y, 1, diff.difficulty+1, diff.level);
|
||||||
end
|
end
|
||||||
|
|
||||||
local doffset = 0;
|
local doffset = 0;
|
||||||
|
@ -367,7 +393,6 @@ draw_diffs = function(diffs, x, y, w, h, selectedDiff)
|
||||||
local xpos = x + ((w/2 - diffWidth/2) + (doffset)*(-0.8*diffWidth))
|
local xpos = x + ((w/2 - diffWidth/2) + (doffset)*(-0.8*diffWidth))
|
||||||
draw_diff_icon(diff, xpos + possx, y + possy, diffWidth, diffHeight, true)
|
draw_diff_icon(diff, xpos + possx, y + possy, diffWidth, diffHeight, true)
|
||||||
gfx.ResetScissor()
|
gfx.ResetScissor()
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
set_diff = function(oldDiff, newDiff)
|
set_diff = function(oldDiff, newDiff)
|
||||||
|
@ -417,7 +442,7 @@ function draw_rooms(y, h)
|
||||||
if room.password then
|
if room.password then
|
||||||
status = status..' <P>'
|
status = status..' <P>'
|
||||||
end
|
end
|
||||||
draw_room(room.name .. ': '.. status, Dim.design.width/2, ypos, i == selected_room_index, function()
|
draw_room(room.name .. ': '.. status, desw/2, ypos, i == selected_room_index, function()
|
||||||
join_room(room)
|
join_room(room)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
@ -465,14 +490,14 @@ local IR_Handle = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
function render_lobby(deltaTime)
|
function render_lobby(deltaTime)
|
||||||
local jw , jh = gfx.ImageSize(bg);
|
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.ImageRect(0, 0, Dim.design.width, desh, bg,1,0);
|
gfx.ImageRect(0, 0, desw, desh, bg,1,0);
|
||||||
drawIdol(deltaTime)
|
drawIdol(deltaTime)
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.ImageRect(0, 0, Dim.design.width, desh, bg_graid1,1,0);
|
gfx.ImageRect(0, 0, desw, desh, bg_graid1,1,0);
|
||||||
gfx.ImageRect(0, 0, Dim.design.width, desh, bg_graid2,1,0);
|
gfx.ImageRect(0, 0, desw, desh, bg_graid2,1,0);
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
|
|
||||||
m_base_part()
|
m_base_part()
|
||||||
|
|
||||||
m_own_info()
|
m_own_info()
|
||||||
|
@ -489,17 +514,15 @@ function render_room_list(deltaTime)
|
||||||
|
|
||||||
Background.draw(deltaTime)
|
Background.draw(deltaTime)
|
||||||
|
|
||||||
|
getpanel()
|
||||||
|
|
||||||
draw_rooms(175, desh - 290);
|
|
||||||
|
|
||||||
-- Draw cover for rooms out of view
|
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
|
|
||||||
if not loading then
|
-- draw_button("Create new room", desw/2, Dim.design.height-40-buttonHeight, desw/2, new_room);
|
||||||
draw_button("Create new room", Dim.design.width/2, desh-40-buttonHeight, Dim.design.width*(3/4), new_room);
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -510,40 +533,37 @@ function render_password_screen(deltaTime)
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("Joining "..selected_room.name.."...", Dim.design.width/2, desh/4)
|
gfx.Text("Joining "..selected_room.name.."...", desw/2, desh/4)
|
||||||
|
|
||||||
gfx.FillColor(50,50,50)
|
gfx.FillColor(50,50,50)
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(0, desh/2-10, Dim.design.width, 40)
|
gfx.Rect(0, desh/2-10, desw, 40)
|
||||||
gfx.Fill();
|
gfx.Fill();
|
||||||
|
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.Text("Please enter room password:", Dim.design.width/2, desh/2-40)
|
gfx.Text("Please enter room password:", desw/2, desh/2-40)
|
||||||
gfx.Text(string.rep("*",#textInput.text), Dim.design.width/2, desh/2+40)
|
gfx.Text(string.rep("*",#textInput.text), desw/2, desh/2+40)
|
||||||
if passwordError then
|
if passwordError then
|
||||||
|
|
||||||
gfx.FillColor(255,50,50)
|
gfx.FillColor(255,50,50)
|
||||||
gfx.FontSize(60 + math.floor(passwordErrorOffset*20))
|
gfx.FontSize(60 + math.floor(passwordErrorOffset*20))
|
||||||
gfx.Text("Invalid password", Dim.design.width/2, desh/2+80)
|
gfx.Text("Invalid password", desw/2, desh/2+80)
|
||||||
end
|
end
|
||||||
draw_button("Join", Dim.design.width/2, desh*3/4, Dim.design.width/2, mpScreen.JoinWithPassword);
|
draw_button("Join", desw/2, desh*3/4, desw/2, mpScreen.JoinWithPassword);
|
||||||
end
|
end
|
||||||
|
|
||||||
function render_new_room_password(delta_time)
|
function render_new_room_password(deltaTime)
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("Create New Room", Dim.design.width/2, desh/4)
|
gfx.Text("Create New Room", desw/2, desh/4)
|
||||||
|
|
||||||
gfx.FillColor(50,50,50)
|
-- make something here
|
||||||
gfx.BeginPath()
|
|
||||||
gfx.Rect(0, desh/2-10, Dim.design.width, 40)
|
|
||||||
gfx.Fill();
|
|
||||||
|
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.Text("Enter room password:", Dim.design.width/2, desh/2-40)
|
gfx.Text("Enter room password:", desw/2, desh/2-40)
|
||||||
gfx.Text(string.rep("*",#textInput.text), Dim.design.width/2, desh/2+40)
|
gfx.Text(string.rep("*",#textInput.text), desw/2, desh/2+40)
|
||||||
draw_button("Create Room", Dim.design.width/2, desh*3/4, Dim.design.width/2, mpScreen.NewRoomStep);
|
draw_button("Create Room", desw/2, desh*3/4, desw/2, mpScreen.NewRoomStep);
|
||||||
end
|
end
|
||||||
|
|
||||||
function render_new_room_name(deltaTime)
|
function render_new_room_name(deltaTime)
|
||||||
|
@ -552,31 +572,31 @@ function render_new_room_name(deltaTime)
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("Create New Room", Dim.design.width/2, desh/4)
|
gfx.Text("Create New Room", desw/2, desh/4)
|
||||||
|
|
||||||
gfx.Rect(0, desh/2-10, Dim.design.width, 60)
|
gfx.Rect(0, desh/2-10, desw/2, 60)
|
||||||
|
|
||||||
|
|
||||||
gfx.Text("Please enter room name:", Dim.design.width/2, desh/2-40)
|
gfx.Text("Please enter room name:", desw/2, desh/2-40)
|
||||||
gfx.Text(textInput.text, Dim.design.width/2, desh/2+40)
|
gfx.Text(textInput.text, desw/2, desh/2+40)
|
||||||
draw_button("Next", Dim.design.width/2, desh*3/4, Dim.design.width/2, mpScreen.NewRoomStep);
|
draw_button("Next", desw/2, desh*3/4, desw/2, mpScreen.NewRoomStep);
|
||||||
end
|
end
|
||||||
|
|
||||||
function render_set_username(deltaTime)
|
function render_set_username(deltaTime)
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
gfx.TextAlign(gfx.TEXT_ALIGN_CENTER, gfx.TEXT_ALIGN_BOTTOM)
|
||||||
gfx.FontSize(70)
|
gfx.FontSize(70)
|
||||||
gfx.Text("First things first...", Dim.design.width/2, desh/4)
|
gfx.Text("First things first...", desw/2, desh/4)
|
||||||
|
|
||||||
gfx.FillColor(50,50,50)
|
gfx.FillColor(50,50,50)
|
||||||
gfx.BeginPath()
|
gfx.BeginPath()
|
||||||
gfx.Rect(0, desh/2-10, Dim.design.width, 60)
|
gfx.Rect(0, desh/2-10, desw, 60)
|
||||||
gfx.Fill();
|
gfx.Fill();
|
||||||
|
|
||||||
gfx.FillColor(255,255,255)
|
gfx.FillColor(255,255,255)
|
||||||
gfx.Text("Enter a display name:", Dim.design.width/2, desh/2-40)
|
gfx.Text("Enter a display name:", desw/2, desh/2-40)
|
||||||
gfx.Text(textInput.text, Dim.design.width/2, desh/2+40)
|
gfx.Text(textInput.text, desw/2, desh/2+40)
|
||||||
draw_button("Join Multiplayer", Dim.design.width/2, desh*3/4, Dim.design.width/2, function()
|
draw_button("Join Multiplayer", desw/2, desh*3/4, desw/2, function()
|
||||||
loading = true;
|
loading = true;
|
||||||
mpScreen.SaveUsername()
|
mpScreen.SaveUsername()
|
||||||
end);
|
end);
|
||||||
|
|
|
@ -8,10 +8,12 @@ local lang = require("language.call")
|
||||||
|
|
||||||
local crew = game.GetSkinSetting("single_idol")
|
local crew = game.GetSkinSetting("single_idol")
|
||||||
local betacrew = game.GetSkinSetting("beta_idol")
|
local betacrew = game.GetSkinSetting("beta_idol")
|
||||||
|
local staticcrew = game.GetSkinSetting("static_idol")
|
||||||
local bad = "/bad"
|
local bad = "/bad"
|
||||||
local okay = "/okay"
|
local okay = "/okay"
|
||||||
local veryokay = "/good"
|
local veryokay = "/good"
|
||||||
local idle = "/idle"
|
local idle = "/idle"
|
||||||
|
local static = "/static"
|
||||||
|
|
||||||
local VolforceWindow = require('components.volforceWindow')
|
local VolforceWindow = require('components.volforceWindow')
|
||||||
|
|
||||||
|
@ -65,6 +67,20 @@ local gaugeTypeMirrorImage = gfx.CreateSkinImage("result/gauge_type_badges/mirro
|
||||||
local gaugeTypeRandomImage = gfx.CreateSkinImage("result/gauge_type_badges/random.png", 0);
|
local gaugeTypeRandomImage = gfx.CreateSkinImage("result/gauge_type_badges/random.png", 0);
|
||||||
local gaugeTypeMirrorRandomImage = gfx.CreateSkinImage("result/gauge_type_badges/random_mirror.png", 0);
|
local gaugeTypeMirrorRandomImage = gfx.CreateSkinImage("result/gauge_type_badges/random_mirror.png", 0);
|
||||||
|
|
||||||
|
local UsBottom = gfx.CreateSkinImage("result/multi_4p/base.png",0)
|
||||||
|
local UsTop = gfx.CreateSkinImage("result/multi_4p/top.png",0)
|
||||||
|
|
||||||
|
local pos = {
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/1.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/2.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/3.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/4.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/5.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/6.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/7.png", 0),
|
||||||
|
gfx.CreateSkinImage("result/multi_4p/pos/8.png", 0),
|
||||||
|
}
|
||||||
|
|
||||||
local gradeImages = {
|
local gradeImages = {
|
||||||
S = gfx.CreateSkinImage("common/grades/S.png", 0),
|
S = gfx.CreateSkinImage("common/grades/S.png", 0),
|
||||||
AAA_P = gfx.CreateSkinImage("common/grades/AAA+.png", 0),
|
AAA_P = gfx.CreateSkinImage("common/grades/AAA+.png", 0),
|
||||||
|
@ -113,16 +129,13 @@ local gaugePermFillImage = gfx.CreateSkinImage(
|
||||||
local gaugeBlastiveFillImage = gfx.CreateSkinImage(
|
local gaugeBlastiveFillImage = gfx.CreateSkinImage(
|
||||||
"gameplay/gauges/blastive/gauge_fill.png", 0)
|
"gameplay/gauges/blastive/gauge_fill.png", 0)
|
||||||
|
|
||||||
local difficultyLabelImages = {
|
local badgeImages = {
|
||||||
gfx.CreateSkinImage("diff/1 novice.png", 0),
|
gfx.CreateSkinImage("song_select/medal/saved.png", 1),
|
||||||
gfx.CreateSkinImage("diff/2 advanced.png", 0),
|
gfx.CreateSkinImage("song_select/medal/played.png", 1),
|
||||||
gfx.CreateSkinImage("diff/3 exhaust.png", 0),
|
gfx.CreateSkinImage("song_select/medal/clear.png", 1),
|
||||||
gfx.CreateSkinImage("diff/4 maximum.png", 0),
|
gfx.CreateSkinImage("song_select/medal/hard.png", 1),
|
||||||
gfx.CreateSkinImage("diff/5 infinite.png", 0),
|
gfx.CreateSkinImage("song_select/medal/uc.png", 1),
|
||||||
gfx.CreateSkinImage("diff/6 gravity.png", 0),
|
gfx.CreateSkinImage("song_select/medal/puc.png", 1),
|
||||||
gfx.CreateSkinImage("diff/7 heavenly.png", 0),
|
|
||||||
gfx.CreateSkinImage("diff/8 vivid.png", 0),
|
|
||||||
gfx.CreateSkinImage("diff/9 exceed.png", 0)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local clearBadgeImages = {
|
local clearBadgeImages = {
|
||||||
|
@ -285,7 +298,7 @@ function drawTimingBar(y, value, max, type)
|
||||||
end
|
end
|
||||||
|
|
||||||
gettyping = function (animtype)
|
gettyping = function (animtype)
|
||||||
idolAnimation = gfx.LoadSkinAnimation('crew/anim/'..crew..animtype, 1 / 30, 0, true);
|
idolAnimation = gfx.LoadSkinAnimation('crew/anim/'..crew..animtype, 1 / 30, loopC, true);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
@ -432,10 +445,6 @@ local drawRightPanelContent = function()
|
||||||
) * 10
|
) * 10
|
||||||
);
|
);
|
||||||
gfx.Text(decimalPortion .. '%', rightPanelX + 988, rightPanelY + 296);
|
gfx.Text(decimalPortion .. '%', rightPanelX + 988, rightPanelY + 296);
|
||||||
|
|
||||||
|
|
||||||
-- gfx.FontSize(24)
|
|
||||||
-- gfx.Text('%', rightPanelX + 988, rightPanelY + 294);
|
|
||||||
end
|
end
|
||||||
|
|
||||||
gfx.FontSize(24)
|
gfx.FontSize(24)
|
||||||
|
@ -484,37 +493,35 @@ local drawRightPanelContent = function()
|
||||||
|
|
||||||
local Fillmhd, Fillmihd = math.floor(result.meanHitDelta), result.medianHitDelta;
|
local Fillmhd, Fillmihd = math.floor(result.meanHitDelta), result.medianHitDelta;
|
||||||
|
|
||||||
-- result.meanHitDelta up210 down
|
-- result.meanHitDelta bar
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.FillColor(255, 100, 0, 255);
|
gfx.Scissor(timmingX+13,timmingY + 27.2,408,12)
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 , Fillmhd, 12);
|
gfx.BeginPath();
|
||||||
gfx.Fill();
|
gfx.Rect(timmingX + 210, timmingY + 27.2 , Fillmhd*2, 12);
|
||||||
if Fillmhd >= 210 then
|
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 , 210, 12);
|
|
||||||
gfx.Fill();
|
|
||||||
elseif Fillmhd <= -196 then
|
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 , -196, 12);
|
|
||||||
gfx.Fill();
|
|
||||||
elseif Fillmhd == 0 then
|
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 , 1, 12);
|
|
||||||
gfx.Fill();
|
|
||||||
end
|
|
||||||
|
|
||||||
-- result.medianHitDelta
|
if Fillmhd < 0 then
|
||||||
|
gfx.FillColor(46, 221, 241, 255);
|
||||||
|
gfx.Fill();
|
||||||
|
else
|
||||||
|
gfx.FillColor(215, 48, 182, 255);
|
||||||
|
gfx.Fill();
|
||||||
|
end
|
||||||
|
gfx.ResetScissor()
|
||||||
|
|
||||||
|
-- result.medianHitDelta bar
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
gfx.FillColor(255, 136, 0, 255);
|
gfx.Scissor(timmingX+13,timmingY + 27.2 + detailTextMargin,408,12)
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 + detailTextMargin, Fillmihd, 12);
|
gfx.BeginPath();
|
||||||
gfx.Fill();
|
gfx.Rect(timmingX + 210, timmingY + 27.2 + detailTextMargin, Fillmihd*2, 12);
|
||||||
if Fillmihd >= 210 then
|
if Fillmihd < 0 then
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 + detailTextMargin, 210, 12);
|
gfx.FillColor(46, 221, 241, 255);
|
||||||
gfx.Fill();
|
gfx.Fill();
|
||||||
elseif Fillmihd <= -196 then
|
else
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 + detailTextMargin, -196, 12);
|
gfx.FillColor(215, 48, 182, 255);
|
||||||
gfx.Fill();
|
gfx.Fill();
|
||||||
elseif Fillmihd == 0 then
|
|
||||||
gfx.Rect(timmingX + 210, timmingY + 27.2 + detailTextMargin, 1, 12);
|
|
||||||
gfx.Fill();
|
|
||||||
end
|
end
|
||||||
|
gfx.ResetScissor()
|
||||||
|
|
||||||
gfx.ClosePath();
|
gfx.ClosePath();
|
||||||
gfx.FillColor(255, 255, 255, 255);
|
gfx.FillColor(255, 255, 255, 255);
|
||||||
gfx.FontSize(19.25)
|
gfx.FontSize(19.25)
|
||||||
|
@ -659,6 +666,107 @@ local drawBottomPanelContent = function(deltatime)
|
||||||
gfx.Text(string.format("%dms", offset), leftX + 370, baseY + 89);
|
gfx.Text(string.format("%dms", offset), leftX + 370, baseY + 89);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local drawmultipanelcontent = function(deltaTime)
|
||||||
|
if result.uid == nil then
|
||||||
|
gfx.Text(" ",100,100)
|
||||||
|
else
|
||||||
|
|
||||||
|
local i = result.displayIndex
|
||||||
|
if result.badge == 0 then
|
||||||
|
badgeImage = badgeImages[1]
|
||||||
|
elseif result.badge == 1 then
|
||||||
|
badgeImage = badgeImages[2]
|
||||||
|
elseif result.badge == 2 then
|
||||||
|
badgeImage = badgeImages[3]
|
||||||
|
elseif result.badge == 3 then
|
||||||
|
badgeImage = badgeImages[4]
|
||||||
|
elseif result.badge == 4 then
|
||||||
|
badgeImage = badgeImages[5]
|
||||||
|
elseif result.badge == 5 then
|
||||||
|
badgeImage = badgeImages[6]
|
||||||
|
end
|
||||||
|
|
||||||
|
gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
|
||||||
|
gfx.FontSize(26)
|
||||||
|
local posDWWidth, posDWHeight = gfx.ImageSize(UsBottom)
|
||||||
|
local posUPWidth, posUPHeight = gfx.ImageSize(UsTop)
|
||||||
|
local posWidth, posHeight = gfx.ImageSize(pos[i+1])
|
||||||
|
local multy = 16;
|
||||||
|
local multx = 0;
|
||||||
|
local half = 1.1
|
||||||
|
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(multx, multy,posDWWidth/half,posDWHeight/half,UsBottom,1,0)
|
||||||
|
|
||||||
|
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(multx, multy,posUPWidth/half,posUPHeight/half,UsTop,1,0)
|
||||||
|
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(multx+332.5, multy+240, 79/half/1.5, 69/half/1.5, badgeImage, 1, 0)
|
||||||
|
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.ImageRect(multx+332.5, multy+20,posWidth,posHeight,pos[i+1],1,0)
|
||||||
|
|
||||||
|
gfx.Text(string.upper(result.playerName),multx+75,multy+247)
|
||||||
|
|
||||||
|
gfx.Text(irText, multx + 15, multy + 294);
|
||||||
|
gfx.FontSize(24)
|
||||||
|
gfx.Text(string.format("%04d", math.floor(result.score/10000)), multx+221, multy+294)
|
||||||
|
local lastFourDigits = ((result.score / 10000) - math.floor(result.score / 10000))*10000
|
||||||
|
gfx.Text(string.format("%04d", math.floor(lastFourDigits)), multx+273, multy+294)
|
||||||
|
|
||||||
|
local gaugeFillImage = gaugeEffPassFillImage;
|
||||||
|
local gaugeBreakpoint = 0;
|
||||||
|
|
||||||
|
if result.gauge_type == 0 then
|
||||||
|
gaugeBreakpoint = 0.7;
|
||||||
|
|
||||||
|
if result.gauge <= 0.7 then
|
||||||
|
gaugeFillImage = gaugeEffFailFillImage;
|
||||||
|
else
|
||||||
|
gaugeFillImage = gaugeEffPassFillImage;
|
||||||
|
end
|
||||||
|
|
||||||
|
elseif result.gauge_type == 1 then
|
||||||
|
gaugeFillImage = gaugeExcFillImage;
|
||||||
|
elseif result.gauge_type == 2 then
|
||||||
|
gaugeFillImage = gaugePermFillImage;
|
||||||
|
elseif result.gauge_type == 3 then -- BLASTIVE RATE
|
||||||
|
gaugeFillImage = gaugeBlastiveFillImage;
|
||||||
|
end
|
||||||
|
|
||||||
|
local gaugePosX = multx + 120;
|
||||||
|
local gaugePosY = multy + 255;
|
||||||
|
local FillW, FillH = 236, 9.5;
|
||||||
|
|
||||||
|
gfx.BeginPath();
|
||||||
|
gfx.Scissor(gaugePosX, gaugePosY + (FillW - (FillW * (result.gauge))),
|
||||||
|
FillW, FillH * (result.gauge))
|
||||||
|
gfx.ImageRect(gaugePosX, gaugePosY, FillW, FillH, gaugeFillImage, 1, 0);
|
||||||
|
gfx.ResetScissor();
|
||||||
|
|
||||||
|
|
||||||
|
if (gaugeBreakpoint > 0) then
|
||||||
|
gfx.Save()
|
||||||
|
gfx.BeginPath()
|
||||||
|
gfx.GlobalAlpha(0.75);
|
||||||
|
|
||||||
|
local lineY = gaugePosY + (FillH - (FillH * (gaugeBreakpoint)))
|
||||||
|
|
||||||
|
gfx.MoveTo(gaugePosX, lineY)
|
||||||
|
gfx.LineTo(gaugePosX + 10, lineY)
|
||||||
|
|
||||||
|
gfx.StrokeWidth(2)
|
||||||
|
gfx.StrokeColor(255, 255, 255)
|
||||||
|
gfx.Stroke()
|
||||||
|
|
||||||
|
gfx.ClosePath()
|
||||||
|
gfx.Restore()
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
local drawJacketPanel = function()
|
local drawJacketPanel = function()
|
||||||
gfx.BeginPath();
|
gfx.BeginPath();
|
||||||
|
@ -672,16 +780,6 @@ local drawJacketPanelContent = function(deltaTime)
|
||||||
gfx.ImageRect(jacketPanelX + 13, jacketPanelY + 28, 265, 265, jacketImage or defaultJacketImage, 1, 0);
|
gfx.ImageRect(jacketPanelX + 13, jacketPanelY + 28, 265, 265, jacketImage or defaultJacketImage, 1, 0);
|
||||||
local adjustedDiff = Charting.GetDisplayDifficulty(result.jacketPath, result.difficulty)
|
local adjustedDiff = Charting.GetDisplayDifficulty(result.jacketPath, result.difficulty)
|
||||||
DiffRectangle.render(deltaTime, jacketPanelX+183, jacketPanelY+2.5, 0.67, adjustedDiff, result.level);
|
DiffRectangle.render(deltaTime, jacketPanelX+183, jacketPanelY+2.5, 0.67, adjustedDiff, result.level);
|
||||||
|
|
||||||
-- gfx.BeginPath();
|
|
||||||
-- gfx.ImageRect(jacketPanelX + 183, jacketPanelY + 2.5, 140 / 1.5, 31 / 1.5,
|
|
||||||
-- difficultyLabelImages[result.difficulty + 1] or
|
|
||||||
-- difficultyLabelImages[4], 1, 0);
|
|
||||||
|
|
||||||
-- gfx.FontSize(17)
|
|
||||||
-- gfx.LoadSkinFont('Digital-Serial-Bold.ttf')
|
|
||||||
-- gfx.TextAlign(gfx.TEXT_ALIGN_RIGHT + gfx.TEXT_ALIGN_MIDDLE)
|
|
||||||
-- gfx.Text(result.level, jacketPanelX + 265, jacketPanelY + 13.5);
|
|
||||||
end
|
end
|
||||||
|
|
||||||
local IR_HeartbeatResponse = function(res)
|
local IR_HeartbeatResponse = function(res)
|
||||||
|
@ -821,19 +919,27 @@ result_set = function()
|
||||||
end
|
end
|
||||||
|
|
||||||
earlyLateBarsStats.criticals = result.perfects -- Criticals are for all objects
|
earlyLateBarsStats.criticals = result.perfects -- Criticals are for all objects
|
||||||
if betacrew == true then
|
|
||||||
if result.score < grades.S then
|
if betacrew and not staticcrew then
|
||||||
animtype = veryokay
|
|
||||||
elseif result.score < grades.AAA then
|
if result.score > grades.S-1 then
|
||||||
animtype = okay
|
animtype = veryokay
|
||||||
elseif result.score < grades.A_P then
|
loopC = 1
|
||||||
animtype = bad
|
elseif result.score > grades.AAA-1 then
|
||||||
elseif result.score < grades.A_P then
|
animtype = okay
|
||||||
animtype = bad
|
loopC = 1
|
||||||
end
|
elseif result.score < grades.AAA-1 then
|
||||||
else
|
animtype = bad
|
||||||
animtype = idle
|
loopC = 1
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
if not betacrew and not staticcrew then
|
||||||
|
animtype = idle
|
||||||
|
loopC = 0
|
||||||
|
elseif not betacrew and staticcrew then
|
||||||
|
animtype = static
|
||||||
|
loopC = 0
|
||||||
|
end
|
||||||
|
|
||||||
gettyping(animtype)
|
gettyping(animtype)
|
||||||
|
|
||||||
|
@ -853,6 +959,8 @@ drawResultScreen = function (x, y, w, h, deltaTime)
|
||||||
|
|
||||||
gfx.GlobalAlpha(Easing.outQuad(transitionEnterScale))
|
gfx.GlobalAlpha(Easing.outQuad(transitionEnterScale))
|
||||||
|
|
||||||
|
drawmultipanelcontent(deltaTime)
|
||||||
|
|
||||||
drawBottomPanel()
|
drawBottomPanel()
|
||||||
drawBottomPanelContent(deltaTime)
|
drawBottomPanelContent(deltaTime)
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 1011 B |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 703 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 312 B |
After Width: | Height: | Size: 398 B |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 8.8 KiB |