Update OWM assets (#583)
@ -16,8 +16,8 @@ DaniSelect_Title_X=602,602,602
|
||||
DaniSelect_Title_Y=260,369,478
|
||||
DaniSelect_Difficulty_Cymbol_X=565,565,565
|
||||
DaniSelect_Difficulty_Cymbol_Y=270,380,489
|
||||
DaniSelect_Level_Number_X=574,574,574
|
||||
DaniSelect_Level_Number_Y=310,420,530
|
||||
DaniSelect_Level_Number_X=600,600,600
|
||||
DaniSelect_Level_Number_Y=285,395,505
|
||||
DaniSelect_Level_Number_Interval=15,0
|
||||
DaniSelect_Soul_Number_Interval=24,0
|
||||
DaniSelect_Soul_Number_Text_Width=120
|
||||
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 1.9 MiB |
After Width: | Height: | Size: 123 KiB |
After Width: | Height: | Size: 967 KiB |
Before Width: | Height: | Size: 203 KiB After Width: | Height: | Size: 324 KiB |
@ -6,6 +6,44 @@
|
||||
--func:SetScale(xscale, yscale, "filename");
|
||||
--func:SetColor(r, g, b, "filename");
|
||||
|
||||
--Speech tex rects: (0,33,607,220)(608,0,630,253)
|
||||
--Speech positions (center pos): (329.5,812)(1566,935.5)
|
||||
--Tsubaki tex rects (body+arms): (692,0,884,1017)(692,1018,253,334)(946,1018,174,345)(1122,1018,377,320)
|
||||
--Tsubaki positions (body): (1461,63)(1565,63)(1730,63)
|
||||
--Tsubaki positions (arms): (1574,717)(1670,715)(1569,646)
|
||||
--Ume tex rects (body+arms): (0,0,691,819)(0,979,248,243)(77,820,105,158)(249,820,322,300)
|
||||
--Ume positions (body): (-178,297)(-346,297)(-473,297)
|
||||
--Ume positions (arms): (93,750)(77,750)(-40,717)
|
||||
--Star position: (1430,427.5)(489,571)
|
||||
--Star rect: ()
|
||||
|
||||
local speech_rect = {0,33,607,220,608,0,630,253}
|
||||
local speech_pos = {329.5,812,1566,935.5}
|
||||
|
||||
-- x,y,w,h
|
||||
local tsubaki_body_rect = {692,0,884,1017}
|
||||
local tsubaki_arm1_rect = {692,1018,253,334}
|
||||
local tsubaki_arm2_rect = {946,1018,174,345}
|
||||
local tsubaki_arm3_rect = {1122,1018,377,320}
|
||||
local ume_body_rect = {0,0,691,819}
|
||||
local ume_arm1_rect = {0,979,248,243}
|
||||
local ume_arm2_rect = {77,820,105,158}
|
||||
local ume_arm3_rect = {249,820,322,300}
|
||||
local star_red_rect = {1759,0,50,98}
|
||||
local star_blue_rect = {1761,98,48,93}
|
||||
local light_red_rect = {1577,192,232,240}
|
||||
local light_blue_rect = {1577,433,232,228}
|
||||
|
||||
-- x,y,x,y,x,y
|
||||
local tsubaki_body_pos = {1461,63,1565,63,1730,63}
|
||||
local tsubaki_arm_pos = {1574,717,1670,715,1569,646}
|
||||
local ume_body_pos = {-178,297,-346,297,-473,297}
|
||||
local ume_arm_pos = {93,750,77,750,-40,717}
|
||||
local star_pos = {1430,427.5,489,571}
|
||||
local light_pos = {1436,430,496,573}
|
||||
|
||||
--Slam time: 1.142s
|
||||
|
||||
local animeCounter = 0
|
||||
|
||||
local bg_width = 1920
|
||||
@ -19,6 +57,8 @@ local dan_first_in_move = 0
|
||||
local dan_second_in_move = 0
|
||||
local dan_in_slam = 0
|
||||
|
||||
local speech_text = "Speech/en/0.png"
|
||||
|
||||
function playEndAnime(player)
|
||||
end
|
||||
|
||||
@ -29,15 +69,27 @@ function clearOut(player)
|
||||
end
|
||||
|
||||
function init()
|
||||
func:AddGraph("l_back.png")
|
||||
func:AddGraph("l_front_1.png")
|
||||
func:AddGraph("l_front_2.png")
|
||||
func:AddGraph("r_back.png")
|
||||
func:AddGraph("r_front_1.png")
|
||||
func:AddGraph("r_front_2.png")
|
||||
func:AddGraph("Dan_In.png")
|
||||
func:AddGraph("Dan_In_Shadow.png")
|
||||
func:AddGraph("Slam.png")
|
||||
func:AddGraph("Message.png")
|
||||
func:AddGraph("Foxes.png")
|
||||
|
||||
math.randomseed(os.time())
|
||||
local special_chance = math.random(1, 100)
|
||||
|
||||
if special_chance == 1 then
|
||||
speech_text = "Speech/special/0.png"
|
||||
elseif lang == "ja" then
|
||||
speech_text = "Speech/ja/"..tostring(math.random(0, 4))..".png"
|
||||
elseif lang == "zh" then
|
||||
speech_text = "Speech/zh/"..tostring(math.random(0, 4))..".png"
|
||||
else
|
||||
speech_text = "Speech/en/"..tostring(math.random(0, 4))..".png"
|
||||
end
|
||||
|
||||
func:AddGraph(speech_text)
|
||||
func:AddGraph("Speech/Speech.png")
|
||||
end
|
||||
|
||||
function update(player)
|
||||
@ -45,7 +97,7 @@ function update(player)
|
||||
animeCounter = animeCounter + deltaTime
|
||||
|
||||
dan_first_in_move = math.min(960 * animeCounter, 140)
|
||||
dan_second_in_move = math.min(math.max(2880 * (animeCounter - 1.5), 0), 820)
|
||||
dan_second_in_move = math.min(math.max(2880 * (animeCounter - 1.14), 0), 820)
|
||||
|
||||
dan_in_move = dan_first_in_move + dan_second_in_move
|
||||
|
||||
@ -58,18 +110,27 @@ end
|
||||
function draw(player)
|
||||
|
||||
-- Foxes (back)
|
||||
if animeCounter >= 0.3 and 0.4 >= animeCounter then
|
||||
func:DrawGraph(-40, 267, "l_back.png")
|
||||
func:DrawGraph(1624, 267, "r_back.png")
|
||||
elseif animeCounter >= 0.4 and 1.3 >= animeCounter then
|
||||
func:DrawGraph(20, 267, "l_back.png")
|
||||
func:DrawGraph(1564, 267, "r_back.png")
|
||||
elseif animeCounter >= 1.3 and 1.4 >= animeCounter then
|
||||
func:DrawGraph(-40, 267, "l_back.png")
|
||||
func:DrawGraph(1624, 267, "r_back.png")
|
||||
elseif animeCounter >= 1.4 and 1.5 >= animeCounter then
|
||||
func:DrawGraph(-100, 267, "l_back.png")
|
||||
func:DrawGraph(1684, 267, "r_back.png")
|
||||
if animeCounter >= 0.2 and 0.275 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_body_pos[5], tsubaki_body_pos[6], tsubaki_body_rect[1], tsubaki_body_rect[2], tsubaki_body_rect[3], tsubaki_body_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_body_pos[5], ume_body_pos[6], ume_body_rect[1], ume_body_rect[2], ume_body_rect[3], ume_body_rect[4], "Foxes.png")
|
||||
-- Draw these arms behind the wall
|
||||
func:DrawRectGraph(tsubaki_arm_pos[5], tsubaki_arm_pos[6], tsubaki_arm3_rect[1], tsubaki_arm3_rect[2], tsubaki_arm3_rect[3], tsubaki_arm3_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_arm_pos[5], ume_arm_pos[6], ume_arm3_rect[1], ume_arm3_rect[2], ume_arm3_rect[3], ume_arm3_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 0.275 and 0.35 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_body_pos[3], tsubaki_body_pos[4], tsubaki_body_rect[1], tsubaki_body_rect[2], tsubaki_body_rect[3], tsubaki_body_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_body_pos[3], ume_body_pos[4], ume_body_rect[1], ume_body_rect[2], ume_body_rect[3], ume_body_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 0.35 and 0.95 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_body_pos[1], tsubaki_body_pos[2], tsubaki_body_rect[1], tsubaki_body_rect[2], tsubaki_body_rect[3], tsubaki_body_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_body_pos[1], ume_body_pos[2], ume_body_rect[1], ume_body_rect[2], ume_body_rect[3], ume_body_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 0.95 and 1.025 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_body_pos[3], tsubaki_body_pos[4], tsubaki_body_rect[1], tsubaki_body_rect[2], tsubaki_body_rect[3], tsubaki_body_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_body_pos[3], ume_body_pos[4], ume_body_rect[1], ume_body_rect[2], ume_body_rect[3], ume_body_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 1.025 and 1.1 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_body_pos[5], tsubaki_body_pos[6], tsubaki_body_rect[1], tsubaki_body_rect[2], tsubaki_body_rect[3], tsubaki_body_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_body_pos[5], ume_body_pos[6], ume_body_rect[1], ume_body_rect[2], ume_body_rect[3], ume_body_rect[4], "Foxes.png")
|
||||
-- Draw these arms behind the wall
|
||||
func:DrawRectGraph(tsubaki_arm_pos[5], tsubaki_arm_pos[6], tsubaki_arm3_rect[1], tsubaki_arm3_rect[2], tsubaki_arm3_rect[3], tsubaki_arm3_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_arm_pos[5], ume_arm_pos[6], ume_arm3_rect[1], ume_arm3_rect[2], ume_arm3_rect[3], ume_arm3_rect[4], "Foxes.png")
|
||||
end
|
||||
|
||||
-- The Gates
|
||||
@ -77,15 +138,19 @@ function draw(player)
|
||||
func:DrawRectGraph(bg_width - dan_in_move, 0, dan_in_width, 0, dan_in_width, dan_in_height, "Dan_In.png")
|
||||
|
||||
-- Foxes (front)
|
||||
if animeCounter >= 0.3 and 0.4 >= animeCounter then
|
||||
func:DrawGraph(133, 695, "l_front_2.png")
|
||||
func:DrawGraph(1728, 695, "r_front_2.png")
|
||||
elseif animeCounter >= 0.4 and 1.4 >= animeCounter then
|
||||
func:DrawGraph(23, 695, "l_front_1.png")
|
||||
func:DrawGraph(1653, 695, "r_front_1.png")
|
||||
elseif animeCounter >= 1.4 and 1.5 >= animeCounter then
|
||||
func:DrawGraph(133, 695, "l_front_2.png")
|
||||
func:DrawGraph(1728, 695, "r_front_2.png")
|
||||
if animeCounter >= 0.2 and 0.275 >= animeCounter then
|
||||
-- none
|
||||
elseif animeCounter >= 0.275 and 0.35 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_arm_pos[3], tsubaki_arm_pos[4], tsubaki_arm2_rect[1], tsubaki_arm2_rect[2], tsubaki_arm2_rect[3], tsubaki_arm2_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_arm_pos[3], ume_arm_pos[4], ume_arm2_rect[1], ume_arm2_rect[2], ume_arm2_rect[3], ume_arm2_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 0.35 and 0.95 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_arm_pos[1], tsubaki_arm_pos[2], tsubaki_arm1_rect[1], tsubaki_arm1_rect[2], tsubaki_arm1_rect[3], tsubaki_arm1_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_arm_pos[1], ume_arm_pos[2], ume_arm1_rect[1], ume_arm1_rect[2], ume_arm1_rect[3], ume_arm1_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 0.95 and 1.025 >= animeCounter then
|
||||
func:DrawRectGraph(tsubaki_arm_pos[3], tsubaki_arm_pos[4], tsubaki_arm2_rect[1], tsubaki_arm2_rect[2], tsubaki_arm2_rect[3], tsubaki_arm2_rect[4], "Foxes.png")
|
||||
func:DrawRectGraph(ume_arm_pos[3], ume_arm_pos[4], ume_arm2_rect[1], ume_arm2_rect[2], ume_arm2_rect[3], ume_arm2_rect[4], "Foxes.png")
|
||||
elseif animeCounter >= 1.025 and 1.1 >= animeCounter then
|
||||
-- none
|
||||
end
|
||||
|
||||
-- Gates Slam
|
||||
@ -94,12 +159,30 @@ function draw(player)
|
||||
func:DrawRectGraph(760 - (dan_in_slam * 400), 0, 0, 0, 200, dan_in_height, "Slam.png")
|
||||
func:DrawRectGraph(960 + (dan_in_slam * 400), 0, 200, 0, 200, dan_in_height, "Slam.png")
|
||||
|
||||
func:SetOpacity(math.max(math.min((math.min(dan_in_slam - 0.7, 0.25) - math.max(0, dan_in_slam - 0.95)) * 1020, 255), 0), "Foxes.png")
|
||||
func:DrawGraphRectCenter(light_pos[1], light_pos[2], light_blue_rect[1], light_blue_rect[2], light_blue_rect[3], light_blue_rect[4], "Foxes.png")
|
||||
func:DrawGraphRectCenter(light_pos[3], light_pos[4], light_red_rect[1], light_red_rect[2], light_red_rect[3], light_red_rect[4], "Foxes.png")
|
||||
func:SetRotation(dan_in_slam * 720, "Foxes.png")
|
||||
func:DrawGraphRectCenter(star_pos[1], star_pos[2], star_blue_rect[1], star_blue_rect[2], star_blue_rect[3], star_blue_rect[4], "Foxes.png")
|
||||
func:SetRotation(dan_in_slam * -720, "Foxes.png")
|
||||
func:DrawGraphRectCenter(star_pos[3], star_pos[4], star_red_rect[1], star_red_rect[2], star_red_rect[3], star_red_rect[4], "Foxes.png")
|
||||
func:SetRotation(0, "Foxes.png")
|
||||
|
||||
func:SetOpacity(math.max(math.min((dan_in_slam - 1.2) * 510, 255), 0), "Dan_In_Shadow.png")
|
||||
func:SetOpacity(math.max(math.min((dan_in_slam - 0.2) * 1020, 255), 0), "Message.png")
|
||||
func:DrawGraph(0, 0, "Dan_In_Shadow.png")
|
||||
func:DrawGraph(0, 0, "Message.png")
|
||||
end
|
||||
|
||||
--if animeCounter >= 1.133 then
|
||||
--func:DrawGraph(0, 0, "Message.png")
|
||||
--end
|
||||
-- Speech Bubble
|
||||
if dan_in_slam > 1.2 then
|
||||
local speech_fadein = math.max(math.min((dan_in_slam - 1.7) * 1020, 255), 0)
|
||||
|
||||
func:SetOpacity(speech_fadein, "Speech/Speech.png")
|
||||
func:SetOpacity(speech_fadein, speech_text)
|
||||
func:DrawGraphRectCenter(speech_pos[1], speech_pos[2], speech_rect[1], speech_rect[2], speech_rect[3], speech_rect[4], "Speech/Speech.png")
|
||||
func:DrawGraphRectCenter(speech_pos[3], speech_pos[4], speech_rect[5], speech_rect[6], speech_rect[7], speech_rect[8], "Speech/Speech.png")
|
||||
func:DrawGraphRectCenter(speech_pos[1], speech_pos[2], speech_rect[1], speech_rect[2], speech_rect[3], speech_rect[4], speech_text)
|
||||
func:DrawGraphRectCenter(speech_pos[3], speech_pos[4], speech_rect[5], speech_rect[6], speech_rect[7], speech_rect[8], speech_text)
|
||||
end
|
||||
end
|
||||
|
After Width: | Height: | Size: 279 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 41 KiB |
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1.4 KiB |
@ -6,21 +6,17 @@
|
||||
--func:SetScale(xscale, yscale, "filename");
|
||||
--func:SetColor(r, g, b, "filename");
|
||||
|
||||
local x = { 758, 758, 758, 758, 758 }
|
||||
local y = { 218, 482, 0, 0, 0 }
|
||||
|
||||
local animeCounter = { 0, 0, 0, 0, 0 }
|
||||
local nowFrame = { 0, 0, 0, 0, 0 }
|
||||
|
||||
local textureCount = 25
|
||||
local slideInFrame = { 0, 0, 0, 0, 0 }
|
||||
local fallFrame = { 0, 0, 0, 0, 0 }
|
||||
local slideToFallFrameCount = 5
|
||||
local textureCount = 32
|
||||
|
||||
local useExtraAnime = true
|
||||
|
||||
function clearIn(player)
|
||||
end
|
||||
|
||||
function clearOut(player)
|
||||
end
|
||||
local frameRate = 24
|
||||
|
||||
function playEndAnime(player)
|
||||
animeCounter = { 0, 0, 0, 0, 0 }
|
||||
@ -30,37 +26,29 @@ end
|
||||
function init()
|
||||
|
||||
if playerCount <= 2 then
|
||||
y = { 217, 481, 0, 0, 0 }
|
||||
y = { 216, 480, 0, 0, 0 }
|
||||
elseif playerCount == 5 then
|
||||
y = { 34, 181, 397, 613, 829 }
|
||||
y = { -5, 196, 412, 628, 844 }
|
||||
else
|
||||
y = { -1, 262, 526, 790, 0 }
|
||||
y = { -24, 240, 504, 768, 0 }
|
||||
end
|
||||
|
||||
for i = 0 , textureCount do
|
||||
func:AddGraph(tostring(i) .. ".png")
|
||||
end
|
||||
|
||||
if useExtraAnime then
|
||||
func:AddGraph("Clear_Failed.png")
|
||||
func:AddGraph("Clear_Failed1.png")
|
||||
func:AddGraph("Clear_Failed2.png")
|
||||
end
|
||||
end
|
||||
|
||||
function update(player)
|
||||
animeCounter[player + 1] = animeCounter[player + 1] + (33.3 * deltaTime)
|
||||
nowFrame[player + 1] = math.floor(animeCounter[player + 1] + 0.5)
|
||||
|
||||
animeCounter[player + 1] = animeCounter[player + 1] + deltaTime
|
||||
slideInFrame[player + 1] = math.min(math.floor(animeCounter[player + 1] * frameRate), 23)
|
||||
fallFrame[player + 1] = math.max(math.min(math.floor(((animeCounter[player + 1] - 1.133) * frameRate) + slideToFallFrameCount), 9), 0)
|
||||
|
||||
nowFrame[player + 1] = slideInFrame[player + 1] + fallFrame[player + 1]
|
||||
|
||||
end
|
||||
|
||||
function draw(player)
|
||||
if nowFrame[player + 1] <= 20 or not(useExtraAnime) then
|
||||
func:DrawGraph(x[player + 1], y[player + 1], tostring(math.min(nowFrame[player + 1], textureCount))..".png")
|
||||
elseif nowFrame[player + 1] >= 20 and nowFrame[player + 1] <= 67 then
|
||||
func:DrawGraph(x[player + 1] - 5, y[player + 1] + 71, "Clear_Failed.png")
|
||||
elseif nowFrame[player + 1] == 68 then
|
||||
func:DrawGraph(x[player + 1] - 5, y[player + 1] + 71, "Clear_Failed1.png")
|
||||
elseif nowFrame[player + 1] >= 69 then
|
||||
func:DrawGraph(x[player + 1] - 5, y[player + 1] + 71, "Clear_Failed2.png")
|
||||
end
|
||||
func:DrawGraph(500, y[player + 1] - 10, tostring(nowFrame[player + 1]) .. ".png")
|
||||
end
|
After Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 72 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 93 KiB |
After Width: | Height: | Size: 99 KiB |
After Width: | Height: | Size: 106 KiB |
@ -282,6 +282,8 @@ function init()
|
||||
|
||||
if lang == "ja" then
|
||||
nokonFrames = {"Background/Nokon/Idle/ja/","Background/Nokon/Result_Bad/ja/","Background/Nokon/Result_Good/ja/","Background/Nokon/Result_Great/ja/"}
|
||||
elseif lang == "zh" then
|
||||
nokonFrames = {"Background/Nokon/Idle/zh/","Background/Nokon/Result_Bad/zh/","Background/Nokon/Result_Good/zh/","Background/Nokon/Result_Great/zh/"}
|
||||
elseif lang == "fr" then
|
||||
nokonFrames = {"Background/Nokon/Idle/fr/","Background/Nokon/Result_Bad/fr/","Background/Nokon/Result_Good/fr/","Background/Nokon/Result_Great/fr/"}
|
||||
end
|
||||
|
11
OpenTaiko/System/Open-World Memories/README.txt
Normal file
@ -0,0 +1,11 @@
|
||||
Menu SFX :
|
||||
|
||||
- Hitrison - https://hitrison.itch.io/menu-sfx-pack
|
||||
|
||||
In-Game textures :
|
||||
|
||||
- TJAPlayer3 Default skin
|
||||
- Freepik (starline / vector_corp / Harryarts) (Patterns)
|
||||
- cien (@CienpixeL) (Nameplates, Rainbox result screen gauge, Drum textures)
|
||||
- Waldo - https://pressstart.vip/assets (Tower result screen background and skyboxes)
|
||||
- PNG Egg (Fireworks) (Non-commercial)
|