114 lines
5.2 KiB
Lua
114 lines
5.2 KiB
Lua
local ROOMENV=ROOMENV
|
|
|
|
local roomName=WIDGET.newText{name="roomName",x=40,y=150,align='L'}
|
|
local roomNameBox=WIDGET.newInputBox{name="roomNameBox",x=40,y=200,w=640,h=60}
|
|
local description=WIDGET.newText{name="roomDescription",x=700,y=50,align='L'}
|
|
local descriptionBox=WIDGET.newInputBox{name="descriptionBox",x=700,y=100,w=550,h=160,font=25}
|
|
|
|
local sList={
|
|
visible={"show","easy","slow","medium","fast","none"},
|
|
freshLimit={0,1,2,4,6,8,10,12,15,30,1e99},
|
|
life={0,1,2,3,5,10,15,26,42,87,500},
|
|
pushSpeed={1,2,3,5,15},
|
|
fieldH={1,2,3,4,6,8,10,15,20,30,50,100},
|
|
heightLimit={2,3,4,6,8,10,15,20,30,40,70,100,150,200,1e99},
|
|
bufferLimit={4,6,10,15,20,40,100,1e99},
|
|
|
|
drop={0,.125,.25,.5,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
|
lock={0,1,2,3,4,5,6,7,8,9,10,12,14,16,18,20,25,30,40,60,180,1e99},
|
|
wait={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
|
fall={0,1,2,3,4,5,6,7,8,10,15,20,30,60},
|
|
}
|
|
|
|
local scene={}
|
|
|
|
local function createRoom()
|
|
local roomname=STRING.trim(roomNameBox.value)
|
|
if #roomname==0 then roomname=(USERS.getUsername(USER.uid)or"Anonymous").."'s room"end
|
|
NET.createRoom(
|
|
roomname,
|
|
descriptionBox.value,
|
|
ROOMENV.capacity,"normal",ROOMENV
|
|
)
|
|
end
|
|
|
|
function scene.sceneInit()
|
|
sure=0
|
|
destroyPlayers()
|
|
BG.set(ROOMENV.bg)
|
|
BGM.play(ROOMENV.bgm)
|
|
end
|
|
function scene.sceneBack()
|
|
BGM.play()
|
|
end
|
|
|
|
function scene.keyDown(k)
|
|
if k=="return"then
|
|
createRoom()
|
|
elseif k=="escape"then
|
|
SCN.back()
|
|
else
|
|
WIDGET.keyPressed(k)
|
|
end
|
|
end
|
|
|
|
scene.widgetScrollHeight=400
|
|
scene.widgetList={
|
|
WIDGET.newText{name="title",x=40,y=15,font=70,align='L'},
|
|
|
|
--Room name
|
|
roomName,
|
|
roomNameBox,
|
|
description,
|
|
descriptionBox,
|
|
|
|
--Selectors
|
|
WIDGET.newSelector{name="life", x=170,y=370,w=260,color='R',list=sList.life, disp=ROOMval("life"), code=ROOMsto("life")},
|
|
WIDGET.newSelector{name="pushSpeed", x=170,y=520,w=260,color='V',list=sList.pushSpeed, disp=ROOMval("pushSpeed"), code=ROOMsto("pushSpeed")},
|
|
WIDGET.newSelector{name="garbageSpeed", x=170,y=600,w=260,color='V',list=sList.pushSpeed, disp=ROOMval("garbageSpeed"),code=ROOMsto("garbageSpeed")},
|
|
WIDGET.newSelector{name="visible", x=170,y=710,w=260,color='lB',list=sList.visible, disp=ROOMval("visible"), code=ROOMsto("visible")},
|
|
WIDGET.newSelector{name="freshLimit", x=170,y=790,w=260,color='lB',list=sList.freshLimit, disp=ROOMval("freshLimit"), code=ROOMsto("freshLimit")},
|
|
|
|
WIDGET.newSelector{name="fieldH", x=450,y=600,w=260,color='N',list=sList.fieldH, disp=ROOMval("fieldH"), code=ROOMsto("fieldH")},
|
|
WIDGET.newSelector{name="heightLimit", x=450,y=710,w=260,color='S',list=sList.heightLimit, disp=ROOMval("heightLimit"),code=ROOMsto("heightLimit")},
|
|
WIDGET.newSelector{name="bufferLimit", x=450,y=790,w=260,color='B',list=sList.bufferLimit, disp=ROOMval("bufferLimit"),code=ROOMsto("bufferLimit")},
|
|
|
|
WIDGET.newSelector{name="drop",x=730,y=330,w=260,color='O',list=sList.drop,disp=ROOMval("drop"),code=ROOMsto("drop")},
|
|
WIDGET.newSelector{name="lock",x=730,y=410,w=260,color='O',list=sList.lock,disp=ROOMval("lock"),code=ROOMsto("lock")},
|
|
WIDGET.newSelector{name="wait",x=730,y=520,w=260,color='G',list=sList.wait,disp=ROOMval("wait"),code=ROOMsto("wait")},
|
|
WIDGET.newSelector{name="fall",x=730,y=600,w=260,color='G',list=sList.fall,disp=ROOMval("fall"),code=ROOMsto("fall")},
|
|
|
|
--Capcity & Create & Back
|
|
WIDGET.newSelector{name="capacity", x=1070,y=330,w=310,color='lY',list={2,3,4,5,7,10,17,31,49,99},disp=ROOMval("capacity"),
|
|
code=function(i)
|
|
if USER.uid<100 or i<=10 then
|
|
ROOMENV.capacity=i
|
|
WIDGET.active.capacity.color=COLOR.lY
|
|
else
|
|
LOG.print("没有权限 Permission Denied",'warn')
|
|
WIDGET.active.capacity.color=COLOR.R
|
|
end
|
|
end},
|
|
WIDGET.newButton{name="create", x=1070,y=480,w=310,h=140,color='lN',font=40,code=pressKey"return"},
|
|
WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,fText=TEXTURE.back,code=backScene},
|
|
|
|
--Special rules
|
|
WIDGET.newSwitch{name="ospin", x=830, y=750,disp=ROOMval("ospin"), code=ROOMrev("ospin")},
|
|
WIDGET.newSwitch{name="fineKill", x=830, y=840,disp=ROOMval("fineKill"), code=ROOMrev("fineKill")},
|
|
WIDGET.newSwitch{name="b2bKill", x=830, y=930,disp=ROOMval("b2bKill"), code=ROOMrev("b2bKill")},
|
|
WIDGET.newSwitch{name="easyFresh", x=1170, y=750,disp=ROOMval("easyFresh"),code=ROOMrev("easyFresh")},
|
|
WIDGET.newSwitch{name="deepDrop", x=1170, y=840,disp=ROOMval("deepDrop"), code=ROOMrev("deepDrop")},
|
|
WIDGET.newSwitch{name="bone", x=1170, y=930,disp=ROOMval("bone"), code=ROOMrev("bone")},
|
|
|
|
--Next & Hold
|
|
WIDGET.newSlider{name="nextCount", x=120,y=940,w=200,unit=6, disp=ROOMval("nextCount"),code=ROOMsto("nextCount")},
|
|
WIDGET.newSlider{name="holdCount", x=120,y=1030,w=200,unit=6, disp=ROOMval("holdCount"),code=ROOMsto("holdCount")},
|
|
WIDGET.newSwitch{name="infHold", x=560,y=940, disp=ROOMval("infHold"),code=ROOMrev("infHold"),hideF=function()return ROOMENV.holdCount==0 end},
|
|
WIDGET.newSwitch{name="phyHold", x=560,y=1030, disp=ROOMval("phyHold"),code=ROOMrev("phyHold"),hideF=function()return ROOMENV.holdCount==0 end},
|
|
|
|
--BG & BGM
|
|
WIDGET.newSelector{name="bg", x=840, y=1030,w=250,color='Y',list=BG.getList(),disp=ROOMval("bg"),code=function(i)ROOMENV.bg=i BG.set(i)end},
|
|
WIDGET.newSelector{name="bgm", x=1120, y=1030,w=250,color='Y',list=BGM.getList(),disp=ROOMval("bgm"),code=function(i)ROOMENV.bgm=i BGM.play(i)end},
|
|
}
|
|
|
|
return scene |