Merge pull request #723 from KadeDev/master

merge development into stable
This commit is contained in:
Kade M 2021-06-05 12:38:15 -07:00 committed by GitHub
commit e6afeeba25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 86 additions and 49 deletions

View File

@ -2,7 +2,7 @@
<project>
<!-- _________________________ Application Settings _________________________ -->
<app title="Friday Night Funkin' Kade Engine" file="Kade Engine" packageName="com.ninjamuffin99.funkin" package="com.ninjamuffin99.funkin" main="Main" version="0.2.7.1" company="ninjamuffin99" />
<app title="Friday Night Funkin': Kade Engine" file="Kade Engine" packageName="com.kadedev.kadeengine" package="com.kadedev.kadeengine" main="Main" version="0.2.7.1" company="kadedev" />
<!--Switch Export with Unique ApplicationID and Icon-->
<set name="APP_ID" value="0x0100f6c013bbc000" />

View File

@ -14,10 +14,6 @@
<SubTexture name="%0001" x="673" y="202" width="46" height="52"/>
<SubTexture name="%0002" x="850" y="243" width="45" height="52" frameX="0" frameY="0" frameWidth="46" frameHeight="52"/>
<SubTexture name="%0003" x="850" y="243" width="45" height="52" frameX="0" frameY="0" frameWidth="46" frameHeight="52"/>
<SubTexture name="&0000" x="410" y="307" width="36" height="58" pivotX="0" pivotY="0"/>
<SubTexture name="&0001" x="410" y="307" width="36" height="58"/>
<SubTexture name="&0002" x="563" y="307" width="36" height="58"/>
<SubTexture name="&0003" x="563" y="307" width="36" height="58"/>
<SubTexture name="(0000" x="554" y="196" width="26" height="57" pivotX="0" pivotY="0.15"/>
<SubTexture name="(0001" x="554" y="196" width="26" height="57"/>
<SubTexture name="(0002" x="254" y="202" width="26" height="56" frameX="0" frameY="0" frameWidth="26" frameHeight="57"/>

View File

@ -9,7 +9,7 @@ class BackgroundDancer extends FlxSprite
{
super(x, y);
frames = Paths.getSparrowAtlas("limo/limoDancer");
frames = Paths.getSparrowAtlas("limo/limoDancer",'week4');
animation.addByIndices('danceLeft', 'bg dancer sketch PINK', [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14], "", 24, false);
animation.addByIndices('danceRight', 'bg dancer sketch PINK', [15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29], "", 24, false);
animation.play('danceLeft');

View File

@ -10,7 +10,7 @@ class BackgroundGirls extends FlxSprite
super(x, y);
// BG fangirls dissuaded
frames = Paths.getSparrowAtlas('weeb/bgFreaks');
frames = Paths.getSparrowAtlas('weeb/bgFreaks','week6');
animation.addByIndices('danceLeft', 'BG girls group', CoolUtil.numberArray(14), "", 24, false);
animation.addByIndices('danceRight', 'BG girls group', CoolUtil.numberArray(30, 15), "", 24, false);

View File

@ -124,7 +124,7 @@ class Character extends FlxSprite
case 'dad':
// DAD ANIMATION LOADING CODE
tex = Paths.getSparrowAtlas('characters/DADDY_DEAREST');
tex = Paths.getSparrowAtlas('characters/DADDY_DEAREST', 'shared');
frames = tex;
animation.addByPrefix('idle', 'Dad idle dance', 24);
animation.addByPrefix('singUP', 'Dad Sing Note UP', 24);
@ -267,8 +267,11 @@ class Character extends FlxSprite
flipX = true;
case 'bf':
var tex = Paths.getSparrowAtlas('characters/BOYFRIEND');
var tex = Paths.getSparrowAtlas('characters/BOYFRIEND', 'shared');
frames = tex;
trace(tex.frames.length);
animation.addByPrefix('idle', 'BF idle dance', 24, false);
animation.addByPrefix('singUP', 'BF NOTE UP0', 24, false);
animation.addByPrefix('singLEFT', 'BF NOTE LEFT0', 24, false);
@ -537,6 +540,7 @@ class Character extends FlxSprite
dadVar = 6.1;
if (holdTimer >= Conductor.stepCrochet * dadVar * 0.001)
{
trace('dance');
dance();
holdTimer = 0;
}

View File

@ -202,11 +202,11 @@ class FreeplayState extends MusicBeatState
if (accepted)
{
var poop:String = Highscore.formatSong(songs[curSelected].songName.toLowerCase(), curDifficulty);
var poop:String = Highscore.formatSong(StringTools.replace(songs[curSelected].songName," ", "-").toLowerCase(), curDifficulty);
trace(poop);
PlayState.SONG = Song.loadFromJson(poop, songs[curSelected].songName.toLowerCase());
PlayState.SONG = Song.loadFromJson(poop, StringTools.replace(songs[curSelected].songName," ", "-").toLowerCase());
PlayState.isStoryMode = false;
PlayState.storyDifficulty = curDifficulty;
PlayState.storyWeek = songs[curSelected].week;

View File

@ -1,3 +1,7 @@
import flixel.tweens.FlxEase;
import flixel.tweens.FlxTween;
import flixel.util.FlxColor;
import flixel.text.FlxText;
import flixel.math.FlxMath;
import flixel.FlxCamera;
import flixel.math.FlxPoint;
@ -18,13 +22,16 @@ class GameplayCustomizeState extends MusicBeatState
var defaultX:Float = FlxG.width * 0.55 - 135;
var defaultY:Float = FlxG.height / 2 - 50;
var background:FlxSprite = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback','shared'));
var curt:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains','shared'));
var front:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront','shared'));
var background:FlxSprite;
var curt:FlxSprite;
var front:FlxSprite;
var sick:FlxSprite = new FlxSprite().loadGraphic(Paths.image('sick','shared'));
var sick:FlxSprite;
var bf:Boyfriend = new Boyfriend(770, 450, 'bf');
var text:FlxText;
var blackBorder:FlxSprite;
var bf:Boyfriend;
var dad:Character;
var strumLine:FlxSprite;
@ -38,6 +45,12 @@ class GameplayCustomizeState extends MusicBeatState
DiscordClient.changePresence("Customizing Gameplay", null);
#end
sick = new FlxSprite().loadGraphic(Paths.image('sick','shared'));
sick.scrollFactor.set();
background = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback','shared'));
curt = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains','shared'));
front = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront','shared'));
Conductor.changeBPM(102);
persistentUpdate = true;
@ -59,6 +72,8 @@ class GameplayCustomizeState extends MusicBeatState
dad = new Character(100, 100, 'dad');
bf = new Boyfriend(770, 450, 'bf');
var camPos:FlxPoint = new FlxPoint(dad.getGraphicMidpoint().x + 400, dad.getGraphicMidpoint().y);
camFollow.setPosition(camPos.x, camPos.y);
@ -75,8 +90,11 @@ class GameplayCustomizeState extends MusicBeatState
FlxG.camera.zoom = 0.9;
FlxG.camera.focusOn(camFollow.getPosition());
strumLine = new FlxSprite(0, 25).makeGraphic(FlxG.width, 10);
strumLine = new FlxSprite(0, FlxG.save.data.strumline).makeGraphic(FlxG.width, 14);
strumLine.scrollFactor.set();
strumLine.alpha = 0.4;
add(strumLine);
if (FlxG.save.data.downscroll)
strumLine.y = FlxG.height - 165;
@ -93,6 +111,19 @@ class GameplayCustomizeState extends MusicBeatState
generateStaticArrows(0);
generateStaticArrows(1);
text = new FlxText(5, FlxG.height + 40, 0, "Drag around gameplay elements, R to reset, Escape to go back.", 12);
text.scrollFactor.set();
text.setFormat("VCR OSD Mono", 16, FlxColor.WHITE, LEFT, FlxTextBorderStyle.OUTLINE, FlxColor.BLACK);
blackBorder = new FlxSprite(-30,FlxG.height + 40).makeGraphic((Std.int(text.width + 900)),Std.int(text.height + 600),FlxColor.BLACK);
blackBorder.alpha = 0.5;
add(blackBorder);
add(text);
FlxTween.tween(text,{y: FlxG.height - 18},2,{ease: FlxEase.elasticInOut});
FlxTween.tween(blackBorder,{y: FlxG.height - 18},2, {ease: FlxEase.elasticInOut});
if (!FlxG.save.data.changedHit)
{
@ -103,7 +134,6 @@ class GameplayCustomizeState extends MusicBeatState
sick.x = FlxG.save.data.changedHitX;
sick.y = FlxG.save.data.changedHitY;
sick.updateHitbox();
FlxG.mouse.visible = true;
@ -121,9 +151,14 @@ class GameplayCustomizeState extends MusicBeatState
if (FlxG.mouse.overlaps(sick) && FlxG.mouse.pressed)
{
sick.x = FlxG.mouse.x - sick.width / 2;
sick.y = FlxG.mouse.y - sick.height / 2;
sick.y = FlxG.mouse.y - sick.height;
}
for (i in playerStrums)
i.y = strumLine.y;
for (i in strumLineNotes)
i.y = strumLine.y;
if (FlxG.mouse.overlaps(sick) && FlxG.mouse.justReleased)
{
FlxG.save.data.changedHitX = sick.x;
@ -131,6 +166,15 @@ class GameplayCustomizeState extends MusicBeatState
FlxG.save.data.changedHit = true;
}
if (FlxG.keys.justPressed.R)
{
sick.x = defaultX;
sick.y = defaultY;
FlxG.save.data.changedHitX = sick.x;
FlxG.save.data.changedHitY = sick.y;
FlxG.save.data.changedHit = false;
}
if (controls.BACK)
{
FlxG.mouse.visible = false;
@ -199,9 +243,7 @@ class GameplayCustomizeState extends MusicBeatState
babyArrow.ID = i;
if (player == 1)
{
playerStrums.add(babyArrow);
}
babyArrow.animation.play('static');
babyArrow.x += 50;

View File

@ -75,6 +75,12 @@ class KadeEngineData
if (FlxG.save.data.cpuStrums == null)
FlxG.save.data.cpuStrums = false;
if (FlxG.save.data.strumline == null)
FlxG.save.data.strumline = false;
if (FlxG.save.data.customStrumLine == null)
FlxG.save.data.customStrumLine = 0;
Conductor.recalculateTimings();
PlayerSettings.player1.controls.loadKeyBinds();
KeyBinds.keyCheck();

View File

@ -223,21 +223,8 @@ class KeyBindMenu extends FlxSubState
var notAllowed:Array<String> = [];
for(x in keys){
if(x != tempKey){notAllowed.push(x);}
}
for(x in blacklist){notAllowed.push(x);}
if(curSelected != 4){
for(x in keyText){
if(x != keyText[curSelected]){notAllowed.push(x);}
}
}
else {for(x in keyText){notAllowed.push(x);}}
trace(notAllowed);
for(x in 0...keys.length)
@ -245,6 +232,8 @@ class KeyBindMenu extends FlxSubState
var oK = keys[x];
if(oK == r)
keys[x] = null;
if (notAllowed.contains(oK))
return;
}
if(shouldReturn){
@ -253,7 +242,7 @@ class KeyBindMenu extends FlxSubState
}
else{
keys[curSelected] = tempKey;
FlxG.sound.play(Paths.sound('confirmMenu'));
FlxG.sound.play(Paths.sound('scrollMenu'));
keyWarning.alpha = 1;
warningTween.cancel();
warningTween = FlxTween.tween(keyWarning, {alpha: 0}, 0.5, {ease: FlxEase.circOut, startDelay: 2});

View File

@ -37,7 +37,7 @@ class MainMenuState extends MusicBeatState
var newGaming2:FlxText;
public static var firstStart:Bool = true;
public static var nightly:String = "";
public static var nightly:String = "-nightly-development";
public static var kadeEngineVer:String = "1.5" + nightly;
public static var gameVer:String = "0.2.7.1";

View File

@ -97,11 +97,13 @@ class Paths
inline static public function voices(song:String)
{
song = StringTools.replace(song," ", "-");
return 'songs:assets/songs/${song.toLowerCase()}/Voices.$SOUND_EXT';
}
inline static public function inst(song:String)
{
song = StringTools.replace(song," ", "-");
return 'songs:assets/songs/${song.toLowerCase()}/Inst.$SOUND_EXT';
}

View File

@ -1786,6 +1786,9 @@ class PlayState extends MusicBeatState
super.update(elapsed);
scoreTxt.text = Ratings.CalculateRanking(songScore,songScoreDef,nps,maxNPS,accuracy);
if (!FlxG.save.data.accuracyDisplay)
scoreTxt.text = "Score: " + songScore;
if (FlxG.keys.justPressed.ENTER && startedCountdown && canPause)
{
persistentUpdate = false;
@ -3315,6 +3318,8 @@ class PlayState extends MusicBeatState
gf.playAnim('scared', true);
}
var danced:Bool = false;
override function stepHit()
{
super.stepHit();
@ -3331,10 +3336,6 @@ class PlayState extends MusicBeatState
}
#end
if (dad.curCharacter == 'spooky' && curStep % 4 == 2)
{
// dad.dance();
}
// yes this updates every step.
@ -3423,10 +3424,6 @@ class PlayState extends MusicBeatState
boyfriend.playAnim('idle');
}
if (!dad.animation.curAnim.name.startsWith("sing"))
{
dad.dance();
}
if (curBeat % 8 == 7 && curSong == 'Bopeebo')
{

View File

@ -297,7 +297,7 @@ class StoryMenuState extends MusicBeatState
PlayState.storyDifficulty = curDifficulty;
PlayState.SONG = Song.loadFromJson(PlayState.storyPlaylist[0].toLowerCase() + diffic, PlayState.storyPlaylist[0].toLowerCase());
PlayState.SONG = Song.loadFromJson(StringTools.replace(PlayState.storyPlaylist[0]," ", "-").toLowerCase() + diffic, StringTools.replace(PlayState.storyPlaylist[0]," ", "-").toLowerCase());
PlayState.storyWeek = curWeek;
PlayState.campaignScore = 0;
new FlxTimer().start(1, function(tmr:FlxTimer)

View File

@ -1,4 +1,5 @@
1.5;
1.5.1;
- 1.5.1: Bug Fixes
- Added toggle for ghost tapping
- Officially support macOS (and add macOS requirements to docs)
- Autoplay