地图UI升级,增加模式图标
This commit is contained in:
@@ -291,15 +291,6 @@ do--BLOCKS
|
||||
end
|
||||
end
|
||||
|
||||
rankColor={
|
||||
COLOR.dRed, --D
|
||||
COLOR.dOrange, --C
|
||||
COLOR.lYellow, --B
|
||||
COLOR.lBlue, --A
|
||||
COLOR.lCyan, --S
|
||||
COLOR.lGreen, --Special
|
||||
}
|
||||
|
||||
minoColor={
|
||||
COLOR.red,
|
||||
COLOR.fire,
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
return{
|
||||
{name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint", unlock={"sprint_20l","sprint_40l"}},
|
||||
{name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint"},
|
||||
{name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint", unlock={"dig_10l","sprint_100l","marathon_n","sprintPenta","sprintMPH"}},
|
||||
{name="sprint_100l", x=-200, y=-200, size=50,shape=1,icon="sprint", unlock={"sprint_400l","drought_n"}},
|
||||
{name="sprint_400l", x=-400, y=-200, size=40,shape=1,icon="sprint", unlock={"sprint_1000l"}},
|
||||
{name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint"},
|
||||
{name="sprint_10l", x=0, y=0, size=40,shape=1,icon="sprint1", unlock={"sprint_20l","sprint_40l"}},
|
||||
{name="sprint_20l", x=-200, y=0, size=50,shape=1,icon="sprint1"},
|
||||
{name="sprint_40l", x=0, y=-300, size=40,shape=1,icon="sprint2", unlock={"dig_10l","sprint_100l","marathon_n","sprintPenta","sprintMPH"}},
|
||||
{name="sprint_100l", x=-200, y=-200, size=50,shape=1,icon="sprint2", unlock={"sprint_400l","drought_n"}},
|
||||
{name="sprint_400l", x=-400, y=-200, size=40,shape=1,icon="sprint3", unlock={"sprint_1000l"}},
|
||||
{name="sprint_1000l", x=-600, y=-200, size=40,shape=1,icon="sprint3"},
|
||||
|
||||
{name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="sprint"},
|
||||
{name="sprintMPH", x=210, y=-230, size=40,shape=3,icon="sprint"},
|
||||
{name="sprintPenta", x=210, y=-370, size=40,shape=3,icon="tech"},
|
||||
{name="sprintMPH", x=210, y=-230, size=40,shape=3,icon="tech"},
|
||||
|
||||
{name="drought_n", x=-400, y=0, size=40,shape=1,icon="noI", unlock={"drought_l"}},
|
||||
{name="drought_n", x=-400, y=0, size=40,shape=1,icon="drought", unlock={"drought_l"}},
|
||||
{name="drought_l", x=-600, y=0, size=40,shape=1,icon="mess"},
|
||||
|
||||
{name="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig", unlock={"dig_40l"}},
|
||||
{name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig", unlock={"dig_100l"}},
|
||||
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig", unlock={"dig_400l"}},
|
||||
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig"},
|
||||
{name="dig_10l", x=-200, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_40l"}},
|
||||
{name="dig_40l", x=-400, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_100l"}},
|
||||
{name="dig_100l", x=-600, y=-400, size=40,shape=1,icon="dig_sprint", unlock={"dig_400l"}},
|
||||
{name="dig_400l", x=-800, y=-200, size=40,shape=1,icon="dig_sprint"},
|
||||
|
||||
{name="marathon_n", x=0, y=-600, size=60,shape=1,icon="marathon",unlock={"marathon_h","rhythm_e","solo_e","round_e","blind_e","classic_fast","survivor_e","bigbang","zen"}},
|
||||
{name="marathon_h", x=0, y=-800, size=50,shape=1,icon="marathon",unlock={"master_beginner"}},
|
||||
@@ -26,12 +26,12 @@ return{
|
||||
{name="solo_l", x=-1200,y=-1000,size=40,shape=1,icon="solo", unlock={"solo_u"}},
|
||||
{name="solo_u", x=-1400,y=-1000,size=40,shape=1,icon="solo"},
|
||||
|
||||
{name="techmino49_e", x=-1100,y=-1200,size=40,shape=1,icon="royale", unlock={"techmino49_h","techmino99_e"}},
|
||||
{name="techmino49_h", x=-1100,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino49_u"}},
|
||||
{name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="royale"},
|
||||
{name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="royale", unlock={"techmino99_h"}},
|
||||
{name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="royale", unlock={"techmino99_u"}},
|
||||
{name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="royale"},
|
||||
{name="techmino49_e", x=-1100,y=-1200,size=40,shape=1,icon="t49", unlock={"techmino49_h","techmino99_e"}},
|
||||
{name="techmino49_h", x=-1100,y=-1400,size=40,shape=1,icon="t49", unlock={"techmino49_u"}},
|
||||
{name="techmino49_u", x=-1100,y=-1600,size=40,shape=1,icon="t49"},
|
||||
{name="techmino99_e", x=-1300,y=-1400,size=40,shape=1,icon="t99", unlock={"techmino99_h"}},
|
||||
{name="techmino99_h", x=-1300,y=-1600,size=40,shape=1,icon="t99", unlock={"techmino99_u"}},
|
||||
{name="techmino99_u", x=-1300,y=-1800,size=40,shape=1,icon="t99"},
|
||||
|
||||
{name="round_e", x=-600, y=-800, size=40,shape=1,icon="round", unlock={"round_n"}},
|
||||
{name="round_n", x=-800, y=-800, size=40,shape=1,icon="round", unlock={"round_h"}},
|
||||
@@ -43,20 +43,20 @@ return{
|
||||
{name="master_advance", x=0, y=-1200,size=40,shape=3,icon="master", unlock={"master_final","GM","master_phantasm"}},
|
||||
{name="master_final", x=0, y=-1600,size=40,shape=2,icon="master"},
|
||||
{name="master_phantasm",x=-150, y=-1500,size=40,shape=2,icon="master"},
|
||||
{name="GM", x=150, y=-1500,size=40,shape=2,icon="master"},
|
||||
{name="GM", x=150, y=-1500,size=40,shape=2,icon="gm"},
|
||||
|
||||
{name="rhythm_e", x=-350, y=-1000,size=40,shape=1,icon="rhythm", unlock={"rhythm_h"}},
|
||||
{name="rhythm_h", x=-350, y=-1200,size=40,shape=3,icon="rhythm", unlock={"rhythm_u"}},
|
||||
{name="rhythm_u", x=-350, y=-1400,size=40,shape=2,icon="rhythm"},
|
||||
|
||||
{name="blind_e", x=150, y=-700, size=40,shape=1,icon="blind", unlock={"blind_n"}},
|
||||
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="blind", unlock={"blind_h"}},
|
||||
{name="blind_h", x=150, y=-900, size=35,shape=1,icon="blind", unlock={"blind_l"}},
|
||||
{name="blind_l", x=150, y=-1000,size=35,shape=3,icon="blind", unlock={"blind_u"}},
|
||||
{name="blind_u", x=150, y=-1100,size=35,shape=3,icon="blind", unlock={"blind_wtf"}},
|
||||
{name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="blind"},
|
||||
{name="blind_e", x=150, y=-700, size=40,shape=1,icon="hidden", unlock={"blind_n"}},
|
||||
{name="blind_n", x=150, y=-800, size=40,shape=1,icon="hidden", unlock={"blind_h"}},
|
||||
{name="blind_h", x=150, y=-900, size=35,shape=1,icon="hidden", unlock={"blind_l"}},
|
||||
{name="blind_l", x=150, y=-1000,size=35,shape=3,icon="hidden", unlock={"blind_u"}},
|
||||
{name="blind_u", x=150, y=-1100,size=35,shape=3,icon="hidden", unlock={"blind_wtf"}},
|
||||
{name="blind_wtf", x=150, y=-1200,size=35,shape=2,icon="hidden"},
|
||||
|
||||
{name="classic_fast", x=-150, y=-950,size=40,shape=2,icon="classic"},
|
||||
{name="classic_fast", x=-150, y=-950, size=40,shape=2,icon="classic"},
|
||||
|
||||
{name="survivor_e", x=300, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_n"}},
|
||||
{name="survivor_n", x=500, y=-600, size=40,shape=1,icon="survivor",unlock={"survivor_h","attacker_h","defender_n","dig_h"}},
|
||||
@@ -64,21 +64,21 @@ return{
|
||||
{name="survivor_l", x=900, y=-600, size=40,shape=3,icon="survivor",unlock={"survivor_u"}},
|
||||
{name="survivor_u", x=1100, y=-600, size=40,shape=2,icon="survivor"},
|
||||
|
||||
{name="attacker_h", x=300, y=-800, size=40,shape=1,icon="attacker",unlock={"attacker_u"}},
|
||||
{name="attacker_u", x=300, y=-1000,size=40,shape=1,icon="attacker"},
|
||||
{name="attacker_h", x=300, y=-800, size=40,shape=1,icon="attack", unlock={"attacker_u"}},
|
||||
{name="attacker_u", x=300, y=-1000,size=40,shape=1,icon="attack"},
|
||||
|
||||
{name="defender_n", x=500, y=-800, size=40,shape=1,icon="defender",unlock={"defender_l"}},
|
||||
{name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defender"},
|
||||
{name="defender_n", x=500, y=-800, size=40,shape=1,icon="defend", unlock={"defender_l"}},
|
||||
{name="defender_l", x=500, y=-1000,size=40,shape=1,icon="defend"},
|
||||
|
||||
{name="dig_h", x=700, y=-800, size=40,shape=1,icon="dig", unlock={"dig_u"}},
|
||||
{name="dig_u", x=700, y=-1000,size=40,shape=1,icon="dig"},
|
||||
|
||||
{name="bigbang", x=400, y=-400, size=50,shape=1,icon="bigbang", unlock={"c4wtrain_n","pctrain_n","tech_n"}},
|
||||
{name="c4wtrain_n", x=700, y=-400, size=40,shape=1,icon="c4wtrain",unlock={"c4wtrain_l"}},
|
||||
{name="c4wtrain_l", x=900, y=-400, size=40,shape=1,icon="c4wtrain"},
|
||||
{name="c4wtrain_n", x=700, y=-400, size=40,shape=1,icon="pc",unlock={"c4wtrain_l"}},
|
||||
{name="c4wtrain_l", x=900, y=-400, size=40,shape=1,icon="pc"},
|
||||
|
||||
{name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pctrain", unlock={"pctrain_l","pc_n"}},
|
||||
{name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pctrain"},
|
||||
{name="pctrain_n", x=700, y=-220, size=40,shape=1,icon="pc", unlock={"pctrain_l","pc_n"}},
|
||||
{name="pctrain_l", x=900, y=-220, size=40,shape=1,icon="pc"},
|
||||
|
||||
{name="pc_n", x=800, y=-100, size=40,shape=1,icon="pc", unlock={"pc_h"}},
|
||||
{name="pc_h", x=1000, y=-100, size=40,shape=3,icon="pc", unlock={"pc_l"}},
|
||||
@@ -101,7 +101,7 @@ return{
|
||||
{name="zen", x=-800, y=-600, size=40,shape=1,icon="zen", unlock={"ultra","infinite","infinite_dig"}},
|
||||
{name="ultra", x=-1000,y=-400, size=40,shape=1,icon="ultra"},
|
||||
{name="infinite", x=-800, y=-400, size=40,shape=1,icon="infinite"},
|
||||
{name="infinite_dig", x=-1000,y=-600, size=40,shape=1,icon="infinite"},
|
||||
{name="infinite_dig", x=-1000,y=-600, size=40,shape=1,icon="dig"},
|
||||
|
||||
{name="sprintFix"},
|
||||
{name="sprintLock"},
|
||||
|
||||
@@ -67,6 +67,7 @@ local loadingThread=coroutine.create(function()
|
||||
end
|
||||
|
||||
upFloor()
|
||||
local modeIcons={}
|
||||
for i=1,#MODES do
|
||||
local m=MODES[i]--Mode template
|
||||
local M=require("parts/modes/"..m.name)--Mode file
|
||||
@@ -75,11 +76,14 @@ local loadingThread=coroutine.create(function()
|
||||
M[k]=v
|
||||
end
|
||||
M.records=FILE.load("record/"..m.name..".rec")or M.score and{}
|
||||
-- M.icon=gc.newImage("media/image/modeIcon/"..m.icon..".png")
|
||||
-- M.icon=gc.newImage("media/image/modeIcon/custom.png")
|
||||
if m.icon then
|
||||
if not modeIcons[m.icon]then
|
||||
modeIcons[m.icon]=gc.newImage("media/image/modeicon/"..m.icon..".png")
|
||||
end
|
||||
M.icon=modeIcons[m.icon]
|
||||
end
|
||||
if i%5==0 then YIELD()end
|
||||
end
|
||||
|
||||
upFloor()
|
||||
SKIN.change(SETTING.skinSet)
|
||||
if newVersionLaunch then--Delete old ranks & Unlock modes which should be locked
|
||||
|
||||
@@ -4,7 +4,7 @@ local ms,kb,tc=love.mouse,love.keyboard,love.touch
|
||||
|
||||
local max,min=math.max,math.min
|
||||
local int,abs=math.floor,math.abs
|
||||
local sin=math.sin
|
||||
local sin,cos=math.sin,math.cos
|
||||
|
||||
local mapCam={
|
||||
sel=false,--Selected mode ID
|
||||
@@ -42,9 +42,9 @@ local function onMode(x,y)
|
||||
if M.shape==1 then
|
||||
if x>M.x-s and x<M.x+s and y>M.y-s and y<M.y+s then return name end
|
||||
elseif M.shape==2 then
|
||||
if abs(x-M.x)+abs(y-M.y)<s then return name end
|
||||
if abs(x-M.x)+abs(y-M.y)+12<s then return name end
|
||||
elseif M.shape==3 then
|
||||
if(x-M.x)^2+(y-M.y)^2<s^2 then return name end
|
||||
if(x-M.x)^2+(y-M.y)^2<(s+6)^2 then return name end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -185,6 +185,14 @@ function scene.update()
|
||||
end
|
||||
end
|
||||
|
||||
local rankColor={
|
||||
{.4,.1,.1}, --D
|
||||
{.4,.35,.3}, --C
|
||||
{.6,.4,.2}, --B
|
||||
{.7,.75,.85}, --A
|
||||
{.95,.9,.3}, --S
|
||||
{.2,.7,.2}, --Special
|
||||
}
|
||||
function scene.draw()
|
||||
local _
|
||||
gc.push("transform")
|
||||
@@ -196,7 +204,7 @@ function scene.draw()
|
||||
local R=RANKS
|
||||
local sel=mapCam.sel
|
||||
|
||||
--Draw lines connecting modes
|
||||
--Lines connecting modes
|
||||
gc.setLineWidth(8)
|
||||
gc.setColor(1,1,1,.2)
|
||||
for name,M in next,MODES do
|
||||
@@ -208,63 +216,61 @@ function scene.draw()
|
||||
end
|
||||
end
|
||||
|
||||
setFont(60)
|
||||
--Modes
|
||||
setFont(80)
|
||||
for name,M in next,MODES do
|
||||
if R[name]then
|
||||
local c=rankColor[R[M.name]]
|
||||
if c then
|
||||
gc.setColor(c)
|
||||
else
|
||||
c=.5+sin(TIME()*6.26)*.2
|
||||
gc.setColor(c,c,c)
|
||||
local S=M.size
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(4)
|
||||
|
||||
--Frame & fill
|
||||
local drawType="line"
|
||||
::again::
|
||||
if M.shape==1 then--Rectangle
|
||||
gc.rectangle(drawType,M.x-S,M.y-S,2*S,2*S)
|
||||
elseif M.shape==2 then--Diamond
|
||||
gc.circle(drawType,M.x,M.y,S+12,4)
|
||||
elseif M.shape==3 then--Octagon
|
||||
gc.circle(drawType,M.x,M.y,S+6,8)
|
||||
end
|
||||
if sel==name and drawType=="line"then
|
||||
gc.setColor(1,1,1,.42)
|
||||
drawType="fill"
|
||||
goto again
|
||||
end
|
||||
|
||||
local S=M.size
|
||||
if M.shape==1 then--Rectangle
|
||||
gc.rectangle("fill",M.x-S,M.y-S,2*S,2*S)
|
||||
if sel==name then
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(10)
|
||||
gc.rectangle("line",M.x-S+5,M.y-S+5,2*S-10,2*S-10)
|
||||
end
|
||||
elseif M.shape==2 then--Diamond
|
||||
gc.circle("fill",M.x,M.y,S+5,4)
|
||||
if sel==name then
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(10)
|
||||
gc.circle("line",M.x,M.y,S+5,4)
|
||||
end
|
||||
elseif M.shape==3 then--Octagon
|
||||
gc.circle("fill",M.x,M.y,S,8)
|
||||
if sel==name then
|
||||
gc.setColor(1,1,1)
|
||||
gc.setLineWidth(10)
|
||||
gc.circle("line",M.x,M.y,S,8)
|
||||
--Icon
|
||||
local icon=M.icon
|
||||
if icon then
|
||||
local length=icon:getWidth()*.5
|
||||
local k=S/length
|
||||
if R[M.name]>0 then
|
||||
gc.setColor(.95,.95,.95)
|
||||
for j=1,4 do
|
||||
local t=TIME()*3+1.57*j
|
||||
gc.draw(icon,M.x+2.6*cos(t),M.y+2.6*sin(t),nil,k,nil,length,length)
|
||||
end
|
||||
gc.setColor(rankColor[R[M.name]])
|
||||
else
|
||||
gc.setColor(.6,.6,.6)
|
||||
end
|
||||
gc.draw(icon,M.x,M.y,nil,k,nil,length,length)
|
||||
end
|
||||
|
||||
--Rank
|
||||
name=text.ranks[R[M.name]]
|
||||
if name then
|
||||
gc.setColor(0,0,0,.26)
|
||||
mStr(name,M.x,M.y-40)
|
||||
gc.setColor(0,0,0,.8)
|
||||
mStr(name,M.x+M.size*.7,M.y-50-M.size*.7)
|
||||
gc.setColor(.9,.9,.9)
|
||||
mStr(name,M.x+M.size*.7+4,M.y-50-M.size*.7-4)
|
||||
end
|
||||
--[[
|
||||
if M.icon then
|
||||
local i=M.icon
|
||||
local l=i:getWidth()*.5
|
||||
local k=S/l*.8
|
||||
gc.setColor(0,0,0,2)
|
||||
gc.draw(i,M.x-1,M.y-1,nil,k,nil,l,l)
|
||||
gc.draw(i,M.x-1,M.y+1,nil,k,nil,l,l)
|
||||
gc.draw(i,M.x+1,M.y-1,nil,k,nil,l,l)
|
||||
gc.draw(i,M.x+1,M.y+1,nil,k,nil,l,l)
|
||||
gc.setColor(1,1,1)
|
||||
gc.draw(i,M.x,M.y,nil,k,nil,l,l)
|
||||
end
|
||||
]]
|
||||
end
|
||||
end
|
||||
gc.pop()
|
||||
|
||||
--Score board
|
||||
if sel then
|
||||
local M=MODES[sel]
|
||||
gc.setColor(.7,.7,.7,.5)
|
||||
|
||||
@@ -260,22 +260,10 @@ function scene.draw()
|
||||
if GAME.rank>0 then
|
||||
local str=text.ranks[GAME.rank]
|
||||
setFont(80)
|
||||
|
||||
gc.setColor(0,0,0,T*.3)
|
||||
gc.print(str,46,-14,nil,1.8)
|
||||
gc.print(str,46,-6,nil,1.8)
|
||||
gc.print(str,54,-14,nil,1.8)
|
||||
gc.print(str,54,-6,nil,1.8)
|
||||
|
||||
gc.setColor(0,0,0,T*.15)
|
||||
gc.print(str,46,-10,nil,1.8)
|
||||
gc.print(str,54,-10,nil,1.8)
|
||||
gc.print(str,50,-14,nil,1.8)
|
||||
gc.print(str,50,-6,nil,1.8)
|
||||
|
||||
local L=rankColor[GAME.rank]
|
||||
gc.setColor(L[1],L[2],L[3],T)
|
||||
gc.print(str,50,-10,nil,1.8)
|
||||
gc.setColor(0,0,0,T*.7)
|
||||
gc.print(str,100*T^.5-5,-14,nil,1.8)
|
||||
gc.setColor(1,1,1,T)
|
||||
gc.print(str,100*T^.5,-10,nil,1.8)
|
||||
end
|
||||
|
||||
--Radar Chart
|
||||
|
||||
Reference in New Issue
Block a user