maloa
Lolmao
This commit is contained in:
commit
5ad8ff0fac
@ -1,6 +1,6 @@
|
|||||||
# Building Friday Night Funkin': Kade Engine
|
# Building Friday Night Funkin': Kade Engine
|
||||||
|
|
||||||
**Please note**: these instructions are for compiling/building the game. If you just want to play Kade Engine, **play in your browser or download a build instead**: **[play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/daniel11420/kade-engine-linux/build/artifacts)**. If you want to build the game yourself, continue reading.
|
**Please note** that these instructions are for compiling/building the game. If you just want to play Kade Engine, **play in your browser or download a build instead**: **[play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/daniel11420/kade-engine-linux/build/artifacts)**. If you want to build the game yourself, continue reading.
|
||||||
|
|
||||||
**Also note**: you should be familiar with the commandline. If not, read this [quick guide by ninjamuffin](https://ninjamuffin99.newgrounds.com/news/post/1090480).
|
**Also note**: you should be familiar with the commandline. If not, read this [quick guide by ninjamuffin](https://ninjamuffin99.newgrounds.com/news/post/1090480).
|
||||||
|
|
||||||
|
Before Width: | Height: | Size: 560 KiB After Width: | Height: | Size: 560 KiB |
@ -1,6 +1,6 @@
|
|||||||
# Kade Engine Lua Mod Chart Documentation
|
# Kade Engine Lua Mod Chart Documentation
|
||||||
|
|
||||||
In the latest version of Kade Engine we introduced Mod Charts. Mod Charts are a way of changing gameplay without hard coded values, this is achieved by using the Lua Scripting language to create script files that run during runtime.
|
In the 1.4.2 release of Kade Engine, we introduced Mod Charts. Mod Charts are a way of changing gameplay without hard coded values. This is achieved by using the Lua Scripting language to create script files that run during runtime.
|
||||||
|
|
||||||
All files **are located in** `assets/data/song/`
|
All files **are located in** `assets/data/song/`
|
||||||
|
|
||||||
@ -197,7 +197,7 @@ Set's the current camera's zoom
|
|||||||
|
|
||||||
Set's the hud's zoom
|
Set's the hud's zoom
|
||||||
|
|
||||||
### Actor's
|
### Actors
|
||||||
|
|
||||||
##### getRenderedNotes()
|
##### getRenderedNotes()
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ Links: **[itch.io page](https://ninja-muffin24.itch.io/funkin) ⋅ [Newgrounds](
|
|||||||
|
|
||||||
Links: **[GameBanana mod page](https://gamebanana.com/gamefiles/16761) ⋅ [play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/KadeDev/kade-engine-linux/build/artifacts)**
|
Links: **[GameBanana mod page](https://gamebanana.com/gamefiles/16761) ⋅ [play in browser](https://funkin.puyo.xyz) ⋅ [latest stable release](https://github.com/KadeDev/Kade-Engine/releases/latest) ⋅ [latest development build (windows)](https://ci.appveyor.com/project/KadeDev/kade-engine-windows/build/artifacts) ⋅ [latest development build (linux)](https://ci.appveyor.com/project/KadeDev/kade-engine-linux/build/artifacts)**
|
||||||
|
|
||||||
**Please note**: as of right now, linux CI has not been set up yet (the "latest developemnt build (linux)" link does not work). you can download a linux build [here](https://ci.appveyor.com/project/daniel11420/kade-engine-linux/build/artifacts) (temporary link)
|
|
||||||
|
|
||||||
**REMEMBER**: This is a **mod**. This is not the vanilla game and should be treated as a **modification**. This is not and probably will never be official, so don't get confused.
|
**REMEMBER**: This is a **mod**. This is not the vanilla game and should be treated as a **modification**. This is not and probably will never be official, so don't get confused.
|
||||||
|
|
||||||
# Screenshots ([skip](#Features))
|
# Screenshots ([skip](#Features))
|
||||||
|
29
assets/preload/data/tutorial/modchart.lua
Normal file
29
assets/preload/data/tutorial/modchart.lua
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
function start(song) -- do nothing
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function update(elapsed)
|
||||||
|
if difficulty == 2 and curStep > 400 then
|
||||||
|
local currentBeat = (songPos / 1000)*(bpm/60)
|
||||||
|
for i=0,7 do
|
||||||
|
setActorX(_G['defaultStrum'..i..'X'] + 32 * math.sin((currentBeat + i*0.25) * math.pi), i)
|
||||||
|
setActorY(_G['defaultStrum'..i..'Y'] + 32 * math.cos((currentBeat + i*0.25) * math.pi), i)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function beatHit(beat) -- do nothing
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function stepHit(step) -- do nothing
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function playerTwoTurn()
|
||||||
|
tweenCameraZoom(1.3,(crochet * 4) / 1000)
|
||||||
|
end
|
||||||
|
|
||||||
|
function playerOneTurn()
|
||||||
|
tweenCameraZoom(1,(crochet * 4) / 1000)
|
||||||
|
end
|
@ -229,8 +229,10 @@ class PlayState extends MusicBeatState
|
|||||||
result = Lua.pcall(lua, args.length, 1, 0);
|
result = Lua.pcall(lua, args.length, 1, 0);
|
||||||
|
|
||||||
if (getLuaErrorMessage(lua) != null)
|
if (getLuaErrorMessage(lua) != null)
|
||||||
trace(func_name + ' LUA CALL ERROR ' + Lua.tostring(lua,result));
|
if (Lua.tostring(lua,result) != null)
|
||||||
|
throw(func_name + ' LUA CALL ERROR ' + Lua.tostring(lua,result));
|
||||||
|
else
|
||||||
|
trace(func_name + ' prolly doesnt exist lol');
|
||||||
if( result == null) {
|
if( result == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
@ -1257,6 +1259,8 @@ class PlayState extends MusicBeatState
|
|||||||
var startTimer:FlxTimer;
|
var startTimer:FlxTimer;
|
||||||
var perfectMode:Bool = false;
|
var perfectMode:Bool = false;
|
||||||
|
|
||||||
|
var luaWiggles:Array<WiggleEffect> = [];
|
||||||
|
|
||||||
function startCountdown():Void
|
function startCountdown():Void
|
||||||
{
|
{
|
||||||
inCutscene = false;
|
inCutscene = false;
|
||||||
@ -1278,16 +1282,19 @@ class PlayState extends MusicBeatState
|
|||||||
var result = LuaL.dofile(lua, Paths.lua(PlayState.SONG.song.toLowerCase() + "/modchart")); // execute le file
|
var result = LuaL.dofile(lua, Paths.lua(PlayState.SONG.song.toLowerCase() + "/modchart")); // execute le file
|
||||||
|
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
trace('COMPILE ERROR\n' + getLuaErrorMessage(lua));
|
throw('COMPILE ERROR\n' + getLuaErrorMessage(lua));
|
||||||
|
|
||||||
// get some fukin globals up in here bois
|
// get some fukin globals up in here bois
|
||||||
|
|
||||||
|
setVar("difficulty", storyDifficulty);
|
||||||
setVar("bpm", Conductor.bpm);
|
setVar("bpm", Conductor.bpm);
|
||||||
setVar("fpsCap", FlxG.save.data.fpsCap);
|
setVar("fpsCap", FlxG.save.data.fpsCap);
|
||||||
setVar("downscroll", FlxG.save.data.downscroll);
|
setVar("downscroll", FlxG.save.data.downscroll);
|
||||||
|
|
||||||
setVar("curStep", 0);
|
setVar("curStep", 0);
|
||||||
setVar("curBeat", 0);
|
setVar("curBeat", 0);
|
||||||
|
setVar("crochet", Conductor.stepCrochet);
|
||||||
|
setVar("safeZoneOffset", Conductor.safeZoneOffset);
|
||||||
|
|
||||||
setVar("hudZoom", camHUD.zoom);
|
setVar("hudZoom", camHUD.zoom);
|
||||||
setVar("cameraZoom", FlxG.camera.zoom);
|
setVar("cameraZoom", FlxG.camera.zoom);
|
||||||
@ -1375,14 +1382,6 @@ class PlayState extends MusicBeatState
|
|||||||
return notes.members[id].scale.x;
|
return notes.members[id].scale.x;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"getRenderedNoteScaleY", function(id:Int) {
|
|
||||||
return notes.members[id].scale.y;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"getRenderedNoteAlpha", function(id:Int) {
|
|
||||||
return notes.members[id].alpha;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setRenderedNotePos", function(x:Int,y:Int, id:Int) {
|
trace(Lua_helper.add_callback(lua,"setRenderedNotePos", function(x:Int,y:Int, id:Int) {
|
||||||
notes.members[id].modifiedByLua = true;
|
notes.members[id].modifiedByLua = true;
|
||||||
notes.members[id].x = x;
|
notes.members[id].x = x;
|
||||||
@ -1399,16 +1398,6 @@ class PlayState extends MusicBeatState
|
|||||||
notes.members[id].setGraphicSize(Std.int(notes.members[id].width * scale));
|
notes.members[id].setGraphicSize(Std.int(notes.members[id].width * scale));
|
||||||
}));
|
}));
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setRenderedNoteScaleX", function(scale:Float, id:Int) {
|
|
||||||
notes.members[id].modifiedByLua = true;
|
|
||||||
notes.members[id].scale.x = scale;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setRenderedNoteScaleY", function(scale:Float, id:Int) {
|
|
||||||
notes.members[id].modifiedByLua = true;
|
|
||||||
notes.members[id].scale.y = scale;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setActorX", function(x:Int,id:String) {
|
trace(Lua_helper.add_callback(lua,"setActorX", function(x:Int,id:String) {
|
||||||
getActorByName(id).x = x;
|
getActorByName(id).x = x;
|
||||||
}));
|
}));
|
||||||
@ -1429,13 +1418,6 @@ class PlayState extends MusicBeatState
|
|||||||
getActorByName(id).setGraphicSize(Std.int(getActorByName(id).width * scale));
|
getActorByName(id).setGraphicSize(Std.int(getActorByName(id).width * scale));
|
||||||
}));
|
}));
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setActorScaleX", function(scale:Float,id:String) {
|
|
||||||
getActorByName(id).scale.x = scale;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"setActorScaleY", function(scale:Float,id:String) {
|
|
||||||
getActorByName(id).scale.y = scale;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"getActorWidth", function (id:String) {
|
trace(Lua_helper.add_callback(lua,"getActorWidth", function (id:String) {
|
||||||
return getActorByName(id).width;
|
return getActorByName(id).width;
|
||||||
@ -1460,17 +1442,34 @@ class PlayState extends MusicBeatState
|
|||||||
trace(Lua_helper.add_callback(lua,"getActorY", function (id:String) {
|
trace(Lua_helper.add_callback(lua,"getActorY", function (id:String) {
|
||||||
return getActorByName(id).y;
|
return getActorByName(id).y;
|
||||||
}));
|
}));
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"getActorScaleX", function (id:String) {
|
|
||||||
return getActorByName(id).scale.x;
|
|
||||||
}));
|
|
||||||
|
|
||||||
trace(Lua_helper.add_callback(lua,"getActorScaleY", function (id:String) {
|
|
||||||
return getActorByName(id).scale.y;
|
|
||||||
}));
|
|
||||||
|
|
||||||
// tweens
|
// tweens
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenCameraPos", function(toX:Int, toY:Int, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(FlxG.camera, {x: toX, y: toY}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenCameraAngle", function(toAngle:Float, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(FlxG.camera, {angle:toAngle}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenCameraZoom", function(toZoom:Float, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(FlxG.camera, {zoom:toZoom}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenHudPos", function(toX:Int, toY:Int, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(camHUD, {x: toX, y: toY}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenHudAngle", function(toAngle:Float, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(camHUD, {angle:toAngle}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"tweenHudZoom", function(toZoom:Float, time:Float, onComplete:String) {
|
||||||
|
FlxTween.tween(camHUD, {zoom:toZoom}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,["camera"]);}}});
|
||||||
|
});
|
||||||
|
|
||||||
Lua_helper.add_callback(lua,"tweenPos", function(id:String, toX:Int, toY:Int, time:Float, onComplete:String) {
|
Lua_helper.add_callback(lua,"tweenPos", function(id:String, toX:Int, toY:Int, time:Float, onComplete:String) {
|
||||||
FlxTween.tween(getActorByName(id), {x: toX, y: toY}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,[id]);}}});
|
FlxTween.tween(getActorByName(id), {x: toX, y: toY}, time, {ease: FlxEase.cubeIn, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,[id]);}}});
|
||||||
});
|
});
|
||||||
@ -1494,6 +1493,54 @@ class PlayState extends MusicBeatState
|
|||||||
Lua_helper.add_callback(lua,"tweenFadeOut", function(id:String, toAlpha:Int, time:Float, onComplete:String) {
|
Lua_helper.add_callback(lua,"tweenFadeOut", function(id:String, toAlpha:Int, time:Float, onComplete:String) {
|
||||||
FlxTween.tween(getActorByName(id), {alpha: toAlpha}, time, {ease: FlxEase.circOut, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,[id]);}}});
|
FlxTween.tween(getActorByName(id), {alpha: toAlpha}, time, {ease: FlxEase.circOut, onComplete: function(flxTween:FlxTween) { if (onComplete != '' && onComplete != null) {callLua(onComplete,[id]);}}});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// shader
|
||||||
|
|
||||||
|
/*Lua_helper.add_callback(lua,"setRenderedNoteWiggle", function(id:Int, effectType:String, waveSpeed:Int, waveFrequency:Int) {
|
||||||
|
trace('call');
|
||||||
|
var wiggleEffect = new WiggleEffect();
|
||||||
|
switch(effectType.toLowerCase())
|
||||||
|
{
|
||||||
|
case 'dreamy':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.DREAMY;
|
||||||
|
case 'wavy':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.WAVY;
|
||||||
|
case 'heat_wave_horizontal':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.HEAT_WAVE_HORIZONTAL;
|
||||||
|
case 'heat_wave_vertical':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.HEAT_WAVE_VERTICAL;
|
||||||
|
case 'flag':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.FLAG;
|
||||||
|
}
|
||||||
|
wiggleEffect.waveFrequency = waveFrequency;
|
||||||
|
wiggleEffect.waveSpeed = waveSpeed;
|
||||||
|
wiggleEffect.shader.uTime.value = [(strumLine.y - Note.swagWidth * 4) / FlxG.height]; // from 4mbr0s3 2
|
||||||
|
notes.members[id].shader = wiggleEffect.shader;
|
||||||
|
luaWiggles.push(wiggleEffect);
|
||||||
|
});
|
||||||
|
|
||||||
|
Lua_helper.add_callback(lua,"setActorWiggle", function(id:String, effectType:String, waveSpeed:Int, waveFrequency:Int) {
|
||||||
|
trace('call');
|
||||||
|
var wiggleEffect = new WiggleEffect();
|
||||||
|
switch(effectType.toLowerCase())
|
||||||
|
{
|
||||||
|
case 'dreamy':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.DREAMY;
|
||||||
|
case 'wavy':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.WAVY;
|
||||||
|
case 'heat_wave_horizontal':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.HEAT_WAVE_HORIZONTAL;
|
||||||
|
case 'heat_wave_vertical':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.HEAT_WAVE_VERTICAL;
|
||||||
|
case 'flag':
|
||||||
|
wiggleEffect.effectType = WiggleEffectType.FLAG;
|
||||||
|
}
|
||||||
|
wiggleEffect.waveFrequency = waveFrequency;
|
||||||
|
wiggleEffect.waveSpeed = waveSpeed;
|
||||||
|
wiggleEffect.shader.uTime.value = [(strumLine.y - Note.swagWidth * 4) / FlxG.height]; // from 4mbr0s3 2
|
||||||
|
getActorByName(id).shader = wiggleEffect.shader;
|
||||||
|
luaWiggles.push(wiggleEffect);
|
||||||
|
});*/
|
||||||
|
|
||||||
for (i in 0...strumLineNotes.length) {
|
for (i in 0...strumLineNotes.length) {
|
||||||
var member = strumLineNotes.members[i];
|
var member = strumLineNotes.members[i];
|
||||||
@ -2099,6 +2146,12 @@ class PlayState extends MusicBeatState
|
|||||||
setVar('cameraZoom',FlxG.camera.zoom);
|
setVar('cameraZoom',FlxG.camera.zoom);
|
||||||
callLua('update', [elapsed]);
|
callLua('update', [elapsed]);
|
||||||
|
|
||||||
|
for (i in luaWiggles)
|
||||||
|
{
|
||||||
|
trace('wiggle le gaming');
|
||||||
|
i.update(elapsed);
|
||||||
|
}
|
||||||
|
|
||||||
/*for (i in 0...strumLineNotes.length) {
|
/*for (i in 0...strumLineNotes.length) {
|
||||||
var member = strumLineNotes.members[i];
|
var member = strumLineNotes.members[i];
|
||||||
member.x = getVar("strum" + i + "X", "float");
|
member.x = getVar("strum" + i + "X", "float");
|
||||||
@ -2419,6 +2472,10 @@ class PlayState extends MusicBeatState
|
|||||||
}
|
}
|
||||||
#end
|
#end
|
||||||
camFollow.setPosition(dad.getMidpoint().x + 150 + offsetX, dad.getMidpoint().y - 100 + offsetY);
|
camFollow.setPosition(dad.getMidpoint().x + 150 + offsetX, dad.getMidpoint().y - 100 + offsetY);
|
||||||
|
#if cpp
|
||||||
|
if (lua != null)
|
||||||
|
callLua('playerTwoTurn', []);
|
||||||
|
#end
|
||||||
// camFollow.setPosition(lucky.getMidpoint().x - 120, lucky.getMidpoint().y + 210);
|
// camFollow.setPosition(lucky.getMidpoint().x - 120, lucky.getMidpoint().y + 210);
|
||||||
|
|
||||||
switch (dad.curCharacter)
|
switch (dad.curCharacter)
|
||||||
@ -2435,11 +2492,6 @@ class PlayState extends MusicBeatState
|
|||||||
|
|
||||||
if (dad.curCharacter == 'mom')
|
if (dad.curCharacter == 'mom')
|
||||||
vocals.volume = 1;
|
vocals.volume = 1;
|
||||||
|
|
||||||
if (SONG.song.toLowerCase() == 'tutorial')
|
|
||||||
{
|
|
||||||
tweenCamIn();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection && camFollow.x != boyfriend.getMidpoint().x - 100)
|
if (PlayState.SONG.notes[Std.int(curStep / 16)].mustHitSection && camFollow.x != boyfriend.getMidpoint().x - 100)
|
||||||
@ -2455,6 +2507,11 @@ class PlayState extends MusicBeatState
|
|||||||
#end
|
#end
|
||||||
camFollow.setPosition(boyfriend.getMidpoint().x - 100 + offsetX, boyfriend.getMidpoint().y - 100 + offsetY);
|
camFollow.setPosition(boyfriend.getMidpoint().x - 100 + offsetX, boyfriend.getMidpoint().y - 100 + offsetY);
|
||||||
|
|
||||||
|
#if cpp
|
||||||
|
if (lua != null)
|
||||||
|
callLua('playerOneTurn', []);
|
||||||
|
#end
|
||||||
|
|
||||||
switch (curStage)
|
switch (curStage)
|
||||||
{
|
{
|
||||||
case 'limo':
|
case 'limo':
|
||||||
@ -2468,11 +2525,6 @@ class PlayState extends MusicBeatState
|
|||||||
camFollow.x = boyfriend.getMidpoint().x - 200;
|
camFollow.x = boyfriend.getMidpoint().x - 200;
|
||||||
camFollow.y = boyfriend.getMidpoint().y - 200;
|
camFollow.y = boyfriend.getMidpoint().y - 200;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SONG.song.toLowerCase() == 'tutorial')
|
|
||||||
{
|
|
||||||
FlxTween.tween(FlxG.camera, {zoom: 1}, (Conductor.stepCrochet * 4 / 1000), {ease: FlxEase.elasticInOut});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2594,6 +2646,11 @@ class PlayState extends MusicBeatState
|
|||||||
dad.playAnim('singLEFT' + altAnim, true);
|
dad.playAnim('singLEFT' + altAnim, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if cpp
|
||||||
|
if (lua != null)
|
||||||
|
callLua('playerTwoSing', [Math.abs(daNote.noteData), Conductor.songPosition]);
|
||||||
|
#end
|
||||||
|
|
||||||
dad.holdTimer = 0;
|
dad.holdTimer = 0;
|
||||||
|
|
||||||
if (SONG.needsVoices)
|
if (SONG.needsVoices)
|
||||||
@ -3483,6 +3540,12 @@ class PlayState extends MusicBeatState
|
|||||||
boyfriend.playAnim('singRIGHTmiss', true);
|
boyfriend.playAnim('singRIGHTmiss', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if cpp
|
||||||
|
if (lua != null)
|
||||||
|
callLua('playerOneMiss', [direction, Conductor.songPosition]);
|
||||||
|
#end
|
||||||
|
|
||||||
|
|
||||||
updateAccuracy();
|
updateAccuracy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -3631,6 +3694,12 @@ class PlayState extends MusicBeatState
|
|||||||
boyfriend.playAnim('singLEFT', true);
|
boyfriend.playAnim('singLEFT', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if cpp
|
||||||
|
if (lua != null)
|
||||||
|
callLua('playerOneSing', [note.noteData, Conductor.songPosition]);
|
||||||
|
#end
|
||||||
|
|
||||||
|
|
||||||
if (!loadRep)
|
if (!loadRep)
|
||||||
playerStrums.forEach(function(spr:FlxSprite)
|
playerStrums.forEach(function(spr:FlxSprite)
|
||||||
{
|
{
|
||||||
|
@ -24,8 +24,11 @@ import io.newgrounds.NG;
|
|||||||
import lime.app.Application;
|
import lime.app.Application;
|
||||||
import openfl.Assets;
|
import openfl.Assets;
|
||||||
|
|
||||||
#if cpp
|
#if windows
|
||||||
import Discord.DiscordClient;
|
import Discord.DiscordClient;
|
||||||
|
#end
|
||||||
|
|
||||||
|
#if cpp
|
||||||
import sys.thread.Thread;
|
import sys.thread.Thread;
|
||||||
#end
|
#end
|
||||||
|
|
||||||
@ -63,7 +66,7 @@ class TitleState extends MusicBeatState
|
|||||||
|
|
||||||
PlayerSettings.init();
|
PlayerSettings.init();
|
||||||
|
|
||||||
#if cpp
|
#if windows
|
||||||
DiscordClient.initialize();
|
DiscordClient.initialize();
|
||||||
|
|
||||||
Application.current.onExit.add (function (exitCode) {
|
Application.current.onExit.add (function (exitCode) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user