lunarcleint

FUCKY ASS MODCHART

Jan 16th, 2022 (edited)
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.31 KB | None | 0 0
  1. --[[
  2.     DISCORD: lunarcleint#8859
  3.     YOUTUBE: https://www.youtube.com/channel/UCQatY-8MINs--sTr2Z_FgyQ
  4. ]]
  5.  
  6. --UPDATE (PSA: IM do)
  7. defaultWindowPos = {128,75};
  8. Windowspeed = 1.5;
  9. WinmovementAmount = 20;
  10. notePos = {};
  11. HitBoxAlpha = 0;
  12.  
  13. --[[
  14.     wow i love coding in lua (this shit ass) -lunar
  15. ]]
  16.  
  17. function onCreatePost()
  18.     for i = 0,7 do
  19.         yoff = 10;
  20.         if isStoryMode then yoff = 0 end
  21.         table.insert(notePos, {getPropertyFromGroup('strumLineNotes', i, 'x'),getPropertyFromGroup('strumLineNotes', i, 'y') + yoff})
  22.     end
  23.     setupCollision();
  24. end
  25.  
  26. function setupCollision()
  27.     --border hitboxes -lunar
  28.  
  29.     makeLuaSprite('bordery', nil, 0,0)
  30.     makeGraphic('bordery', 5, getPropertyFromClass("flixel.FlxG", "height"), '000000')
  31.     setProperty('bordery.immovable', true)
  32.     setObjectCamera('bordery', 'camHUD')
  33.     addLuaSprite('bordery', true)
  34.  
  35.     makeLuaSprite('borderyy', nil, getPropertyFromClass("flixel.FlxG", "width") - 5,0)
  36.     makeGraphic('borderyy', 5, getPropertyFromClass("flixel.FlxG", "height"), '000000')
  37.     setProperty('borderyy.immovable', true)
  38.     setObjectCamera('borderyy', 'camHUD')
  39.     addLuaSprite('borderyy', true)
  40.  
  41.     makeLuaSprite('borderx', nil, 0,0)
  42.     makeGraphic('borderx', getPropertyFromClass("flixel.FlxG", "width"), 5, '000000')
  43.     setProperty('borderx.immovable', true)
  44.     setObjectCamera('borderx', 'camHUD')
  45.     addLuaSprite('borderx', true)
  46.  
  47.     makeLuaSprite('borderxx', nil, 0,getPropertyFromClass("flixel.FlxG", "height") - 5)
  48.     makeGraphic('borderxx', getPropertyFromClass("flixel.FlxG", "width"), 5, '000000')
  49.     setProperty('borderxx.immovable', true)
  50.     setObjectCamera('borderxx', 'camHUD')
  51.     addLuaSprite('borderxx', true)
  52.  
  53.     for i = 0,7 do
  54.         --note hitboxes since react doesn't support [] AKA no way to get notes for isColliding function -lunar
  55.         makeLuaSprite('noteHitBox' .. i, nil, getRandomPos("x"),getRandomPos("y"))
  56.         makeGraphic('noteHitBox' .. i, getPropertyFromGroup('strumLineNotes', i, 'width'), getPropertyFromGroup('strumLineNotes', i, 'height'), '000000')
  57.         setProperty('noteHitBox' .. i .. '.x', getRandomPos("x"))
  58.         setProperty('noteHitBox' .. i .. '.y', getRandomPos("y"))
  59.         setObjectCamera('noteHitBox' .. i, 'camHUD')
  60.         addLuaSprite('noteHitBox' .. i, false)
  61.         setProperty('noteHitBox' .. i .. '.velocity.x', getRandomInt(400,700))
  62.         setProperty('noteHitBox' .. i .. '.velocity.y', getRandomInt(400,700))
  63.         setProperty('noteHitBox' .. i .. '.elasticity', 1)
  64.     end
  65.     collisionLoop(elapsed);
  66. end
  67.  
  68. function onUpdatePost(elapsed)
  69.     if not inGameOver then
  70.         windowLoop(elapsed);
  71.         collisionLoop(elapsed);
  72.         if getPropertyFromClass('flixel.FlxG', 'keys.justReleased.T') then
  73.             if (HitBoxAlpha == 0) then
  74.                 HitBoxAlpha = 1
  75.             elseif (HitBoxAlpha == 1) then
  76.                 HitBoxAlpha = 0
  77.             end
  78.         end
  79.     end
  80. end
  81.  
  82. function collisionLoop(elapsed)
  83.     setProperty('borderxx.alpha',HitBoxAlpha)
  84.     setProperty('borderx.alpha',HitBoxAlpha)
  85.     setProperty('bordery.alpha',HitBoxAlpha)
  86.     setProperty('borderyy.alpha',HitBoxAlpha)
  87.     for i = 0,7 do
  88.         setProperty('noteHitBox' .. i .. '.alpha', HitBoxAlpha)
  89.         setPropertyFromGroup('strumLineNotes',i,'x',getProperty('noteHitBox' .. i .. '.x'))
  90.         setPropertyFromGroup('strumLineNotes',i,'y',getProperty('noteHitBox' .. i .. '.y'))
  91.         isColliding('borderxx','noteHitBox' .. i)
  92.         isColliding('borderx','noteHitBox' .. i)
  93.         isColliding('bordery','noteHitBox' .. i)
  94.         isColliding('borderyy','noteHitBox' .. i)
  95.     end
  96. end
  97.  
  98. function windowLoop(elapsed)
  99.     setPropertyFromClass("openfl.Lib", "application.window.x", defaultWindowPos[1] + WinmovementAmount * math.sin(((getSongPosition() / 1000)*(bpm/60) * Windowspeed) * math.pi))
  100.     setPropertyFromClass("openfl.Lib", "application.window.y", defaultWindowPos[2] + WinmovementAmount * math.cos(((getSongPosition() / 1000)*(bpm/60) * Windowspeed) * math.pi))
  101.     setPropertyFromClass("flixel.FlxG", "fullscreen", false)
  102.     setPropertyFromClass("openfl.Lib", "application.window.title", genWinName(20))
  103. end
  104.  
  105. function genWinName(length)
  106.     name = "";
  107.     for i = 0,length do
  108.         name = name .. tostring(getRandomInt(0,99999999999999));
  109.     end
  110.     return name;
  111. end
  112.  
  113. function getRandomPos(dir)
  114.     if dir == "x" then
  115.         return getRandomInt(getProperty("borderx.x"), getProperty("borderxx.x") - 5);
  116.     elseif dir == "y" then
  117.         return getRandomInt(getProperty("bordery.y"), getProperty("borderyy.y") - 5);
  118.     else
  119.         return 0;
  120.     end
  121. end
  122.  
Add Comment
Please, Sign In to add comment