swappable characters debug
This commit is contained in:
1 parent
ae38ebc18a
commit
447f638001
13 files changed
+75
-16
No files matched your search
@@ -8,7 +8,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
### Added
|
||||
- Enemy icons change when they you are winning a lot ([Thanks to pahaze for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/138))
|
||||
- Holding CTRL in charting editor places notes on both sides
|
||||
- Q and E changes sustain lengths in note editor
|
||||
- Other charting editor workflow improvements
|
||||
### Removed
|
||||
- Removed APE
|
||||
### Fixed
|
||||
- Song no longer loops when finishing the song. ([Thanks Injourn for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/132))
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"song":{"song":"Cocoa","notes":[{"lengthInSteps":16,"bpm":95,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[0,0,0],[600,2,0],[900,0,0],[1350,1,0],[1650,3,0],[1950,1,0],[2100,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[3000,2,0],[3300,0,0],[3750,1,0],[4050,3,0],[4350,1,0],[4500,0,0],[2400,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[4800,0,0],[4950,3,0],[5100,0,0],[5250,3,0],[5400,2,0],[5700,0,0],[5850,3,0],[6000,0,0],[6150,3,0],[6300,2,0],[6600,0,0],[6750,3,0],[6900,0,0],[7050,3,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[7200,2,0],[7500,0,0],[7650,3,0],[7800,0,0],[7950,3,0],[8100,2,0],[8400,0,0],[8550,3,0],[8700,0,0],[8850,3,0],[9000,2,0],[9300,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[9600,0,0],[10200,2,0],[10500,0,0],[10950,1,0],[11250,3,0],[11550,1,0],[11700,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[12600,2,0],[12900,0,0],[13350,1,0],[13650,3,0],[13950,1,0],[14100,0,0],[12000,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[14400,0,0],[14550,3,0],[14700,0,0],[14850,3,0],[15000,2,0],[15300,0,0],[15450,3,0],[15600,0,0],[15750,3,0],[15900,2,0],[16200,0,0],[16350,3,0],[16500,0,0],[16650,3,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[16800,2,0],[17100,0,0],[17250,3,0],[17400,0,0],[17550,3,0],[17700,2,0],[18000,0,0],[18150,3,0],[18300,0,0],[18450,3,0],[18600,2,0],[18900,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[19500,3,150],[19800,1,450],[20400,2,1050]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[22500,1,0],[22650,3,0],[22800,0,150],[23100,1,0],[23400,3,0],[23700,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[24000,0,0],[24150,3,0],[24300,0,0],[24450,3,0],[24600,2,0],[24900,0,0],[25050,3,0],[25200,0,0],[25350,3,0],[25500,2,0],[25800,0,0],[25950,3,0],[26100,0,0],[26250,3,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[26400,2,0],[26700,0,0],[26850,3,0],[27000,0,0],[27150,3,0],[27300,2,0],[27600,0,0],[27750,3,0],[27900,0,0],[28050,3,0],[28200,2,0],[28500,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[29100,3,150],[29400,1,450],[30000,2,1050],[28800,6,450]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[32100,1,0],[32250,3,0],[32400,0,150],[32700,1,0],[33000,3,0],[33300,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[33600,0,0],[33750,3,0],[33900,0,0],[34050,3,0],[34200,2,0],[34500,0,0],[34650,3,0],[34800,0,0],[34950,3,0],[35100,2,0],[35400,0,0],[35550,3,0],[35700,0,0],[35850,3,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[36000,2,0],[36300,0,0],[36450,3,0],[36600,0,0],[36750,3,0],[36900,2,0],[37200,0,0],[37350,3,0],[37500,0,0],[37650,3,0],[37800,2,0],[38100,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[39000,0,0],[39150,1,0],[39450,3,0],[39750,3,0],[40050,2,0],[40200,3,0],[40500,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[40800,1,0],[41400,0,0],[41550,1,0],[41850,3,0],[42150,3,0],[42450,2,0],[42600,3,0],[42900,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[43800,0,0],[43950,1,0],[44250,3,0],[44550,3,0],[44850,2,0],[45000,3,0],[45300,0,0],[43200,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":false,"sectionNotes":[[45600,0,0],[45750,3,0],[46050,0,0],[46200,3,0],[46500,0,0],[46650,3,0],[46950,0,0],[47100,3,0],[47400,0,0],[47550,3,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[48600,0,0],[48750,1,0],[49050,3,0],[49350,3,0],[49650,2,0],[49800,3,0],[50100,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[50400,1,0],[51000,0,0],[51150,1,0],[51450,3,0],[51750,3,0],[52050,2,0],[52200,3,0],[52500,0,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true,"sectionNotes":[[53400,0,0],[53550,1,0],[53850,3,0],[54150,3,0],[54450,2,0],[54600,3,0],[54900,0,0],[52800,1,0]],"typeOfSection":0},{"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSecLine truncated
|
||||
@@ -31,3 +31,5 @@ his name isnt evan--silly tiktok
|
||||
stream chuckie finster--on spotify
|
||||
never forget to--pray to god
|
||||
dont play rust--we only funkin
|
||||
good bye--my penis
|
||||
dababy--biggest inspiration
|
||||
@@ -14,5 +14,6 @@ SrPelo
|
||||
Austin East
|
||||
Krystin, Kaye-lyn, Cassidy, Mack, Levi, and Jasmine.
|
||||
Laurel
|
||||
bbpanzu
|
||||
|
||||
BIT BOY - MIKE WELSH
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 264 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2
-2
@@ -11,9 +11,9 @@ class Boyfriend extends Character
|
||||
{
|
||||
public var stunned:Bool = false;
|
||||
|
||||
public function new(x:Float, y:Float)
|
||||
public function new(x:Float, y:Float, ?char:String = 'bf')
|
||||
{
|
||||
super(x, y);
|
||||
super(x, y, char, true);
|
||||
}
|
||||
|
||||
override function update(elapsed:Float)
|
||||
|
||||
+23
-3
@@ -166,8 +166,7 @@ class Character extends FlxSprite
|
||||
addOffset("singLEFTmiss", 62, 64);
|
||||
addOffset("singDOWNmiss", 210, -28);
|
||||
|
||||
if (!isPlayer)
|
||||
flipX = true;
|
||||
flipX = true;
|
||||
|
||||
case 'bf':
|
||||
var tex = FlxAtlasFrames.fromSparrow('assets/images/BOYFRIEND.png', 'assets/images/BOYFRIEND.xml');
|
||||
@@ -188,7 +187,6 @@ class Character extends FlxSprite
|
||||
animation.addByPrefix('deathConfirm', "BF Dead confirm", 24, false);
|
||||
|
||||
animation.addByPrefix('scared', 'BF idle shaking', 24);
|
||||
playAnim('idle');
|
||||
|
||||
antialiasing = true;
|
||||
|
||||
@@ -206,6 +204,28 @@ class Character extends FlxSprite
|
||||
addOffset('deathLoop', 37, 5);
|
||||
addOffset('deathConfirm', 37, 69);
|
||||
addOffset('scared', -4);
|
||||
|
||||
flipX = true;
|
||||
}
|
||||
|
||||
playAnim('singUP');
|
||||
|
||||
if (isPlayer)
|
||||
{
|
||||
flipX = !flipX;
|
||||
|
||||
// var animArray
|
||||
var oldRight = animation.getByName('singRIGHT').frames;
|
||||
animation.getByName('singRIGHT').frames = animation.getByName('singLEFT').frames;
|
||||
animation.getByName('singLEFT').frames = oldRight;
|
||||
|
||||
// IF THEY HAVE MISS ANIMATIONS??
|
||||
if (animation.getByName('singRIGHTmiss') != null)
|
||||
{
|
||||
var oldMiss = animation.getByName('singRIGHTmiss').frames;
|
||||
animation.getByName('singRIGHTmiss').frames = animation.getByName('singLEFTmiss').frames;
|
||||
animation.getByName('singLEFTmiss').frames = oldMiss;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+41
-9
@@ -47,6 +47,8 @@ class ChartingState extends MusicBeatState
|
||||
*/
|
||||
var curSection:Int = 0;
|
||||
|
||||
public static var lastSection:Int = 0;
|
||||
|
||||
var bpmTxt:FlxText;
|
||||
|
||||
var strumLine:FlxSprite;
|
||||
@@ -79,6 +81,8 @@ class ChartingState extends MusicBeatState
|
||||
|
||||
override function create()
|
||||
{
|
||||
curSection = lastSection;
|
||||
|
||||
gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16);
|
||||
add(gridBG);
|
||||
|
||||
@@ -167,6 +171,18 @@ class ChartingState extends MusicBeatState
|
||||
trace('CHECKED!');
|
||||
};
|
||||
|
||||
var check_mute_inst = new FlxUICheckBox(10, 200, null, null, "Mute Instrumental (in editor)", 100);
|
||||
check_mute_inst.checked = false;
|
||||
check_mute_inst.callback = function()
|
||||
{
|
||||
var vol:Float = 1;
|
||||
|
||||
if (check_mute_inst.checked)
|
||||
vol = 0;
|
||||
|
||||
FlxG.sound.music.volume = vol;
|
||||
};
|
||||
|
||||
var saveButton:FlxButton = new FlxButton(110, 8, "Save", function()
|
||||
{
|
||||
saveLevel();
|
||||
@@ -217,6 +233,7 @@ class ChartingState extends MusicBeatState
|
||||
tab_group_song.add(UI_songTitle);
|
||||
|
||||
tab_group_song.add(check_voices);
|
||||
tab_group_song.add(check_mute_inst);
|
||||
tab_group_song.add(saveButton);
|
||||
tab_group_song.add(reloadSong);
|
||||
tab_group_song.add(reloadSongJson);
|
||||
@@ -489,12 +506,23 @@ class ChartingState extends MusicBeatState
|
||||
|
||||
if (FlxG.keys.justPressed.ENTER)
|
||||
{
|
||||
lastSection = curSection;
|
||||
|
||||
PlayState.SONG = _song;
|
||||
FlxG.sound.music.stop();
|
||||
vocals.stop();
|
||||
FlxG.switchState(new PlayState());
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.E)
|
||||
{
|
||||
changeNoteSustain(Conductor.stepCrochet);
|
||||
}
|
||||
if (FlxG.keys.justPressed.Q)
|
||||
{
|
||||
changeNoteSustain(-Conductor.stepCrochet);
|
||||
}
|
||||
|
||||
if (FlxG.keys.justPressed.TAB)
|
||||
{
|
||||
if (FlxG.keys.pressed.SHIFT)
|
||||
@@ -607,6 +635,18 @@ class ChartingState extends MusicBeatState
|
||||
super.update(elapsed);
|
||||
}
|
||||
|
||||
function changeNoteSustain(value:Float):Void
|
||||
{
|
||||
if (curSelectedNote[2] != null)
|
||||
{
|
||||
curSelectedNote[2] += value;
|
||||
curSelectedNote[2] = Math.max(curSelectedNote[2], 0);
|
||||
}
|
||||
|
||||
updateNoteUI();
|
||||
updateGrid();
|
||||
}
|
||||
|
||||
function recalculateSteps():Int
|
||||
{
|
||||
var steps:Int = 0;
|
||||
@@ -675,15 +715,7 @@ class ChartingState extends MusicBeatState
|
||||
daNum++;
|
||||
}
|
||||
|
||||
if (FlxG.keys.pressed.CONTROL)
|
||||
{
|
||||
FlxG.sound.music.time = (daLength - lengthBpmBullshit()) * Conductor.stepCrochet;
|
||||
}
|
||||
else
|
||||
{
|
||||
FlxG.sound.music.time += (lengthBpmBullshit() * Conductor.stepCrochet) * sec;
|
||||
}
|
||||
|
||||
FlxG.sound.music.time = (daLength - lengthBpmBullshit()) * Conductor.stepCrochet;
|
||||
vocals.time = FlxG.sound.music.time;
|
||||
updateCurStep();
|
||||
}
|
||||
|
||||
+2
-2
@@ -312,7 +312,7 @@ class PlayState extends MusicBeatState
|
||||
dad.y += 300;
|
||||
}
|
||||
|
||||
boyfriend = new Boyfriend(770, 450);
|
||||
boyfriend = new Boyfriend(770, 450, SONG.player1);
|
||||
add(boyfriend);
|
||||
|
||||
// REPOSITIONING PER STAGE
|
||||
@@ -797,7 +797,7 @@ class PlayState extends MusicBeatState
|
||||
else
|
||||
iconP1.animation.curAnim.curFrame = 0;
|
||||
|
||||
if (healthBar.percent > 80)
|
||||
if (healthBar.percent > 80)
|
||||
iconP2.animation.curAnim.curFrame = Std.parseInt(curStage) + 1;
|
||||
else
|
||||
iconP2.animation.curAnim.curFrame = Std.parseInt(curStage);
|
||||
|
||||
Reference in new issue
Block a user