Unhardcode Noteskins, gfVersion, and Stages
YOOOOOOOOO
This commit is contained in:
@ -88,6 +88,9 @@ class ChartingState extends MusicBeatState
|
||||
var leftIcon:HealthIcon;
|
||||
var rightIcon:HealthIcon;
|
||||
|
||||
var leftIconChar:String;
|
||||
var rightIconChar:String;
|
||||
|
||||
private var lastNote:Note;
|
||||
|
||||
|
||||
@ -95,11 +98,31 @@ class ChartingState extends MusicBeatState
|
||||
{
|
||||
curSection = lastSection;
|
||||
|
||||
if (PlayState.SONG != null)
|
||||
_song = PlayState.SONG;
|
||||
else
|
||||
{
|
||||
_song = {
|
||||
song: 'Test',
|
||||
notes: [],
|
||||
bpm: 150,
|
||||
needsVoices: true,
|
||||
player1: 'bf',
|
||||
player2: 'dad',
|
||||
gfVersion: 'gf',
|
||||
noteStyle: 'normal',
|
||||
stage: 'stage',
|
||||
speed: 1,
|
||||
validScore: false
|
||||
};
|
||||
}
|
||||
|
||||
gridBG = FlxGridOverlay.create(GRID_SIZE, GRID_SIZE, GRID_SIZE * 8, GRID_SIZE * 16);
|
||||
add(gridBG);
|
||||
|
||||
leftIcon = new HealthIcon('bf');
|
||||
rightIcon = new HealthIcon('dad');
|
||||
leftIconChar = _song.player1;
|
||||
rightIconChar = _song.player2;
|
||||
leftIcon = new HealthIcon(leftIconChar);
|
||||
rightIcon = new HealthIcon(rightIconChar);
|
||||
leftIcon.scrollFactor.set(1, 1);
|
||||
rightIcon.scrollFactor.set(1, 1);
|
||||
|
||||
@ -118,22 +141,6 @@ class ChartingState extends MusicBeatState
|
||||
curRenderedNotes = new FlxTypedGroup<Note>();
|
||||
curRenderedSustains = new FlxTypedGroup<FlxSprite>();
|
||||
|
||||
if (PlayState.SONG != null)
|
||||
_song = PlayState.SONG;
|
||||
else
|
||||
{
|
||||
_song = {
|
||||
song: 'Test',
|
||||
notes: [],
|
||||
bpm: 150,
|
||||
needsVoices: true,
|
||||
player1: 'bf',
|
||||
player2: 'dad',
|
||||
speed: 1,
|
||||
validScore: false
|
||||
};
|
||||
}
|
||||
|
||||
FlxG.mouse.visible = true;
|
||||
FlxG.save.bind('funkin', 'ninjamuffin99');
|
||||
|
||||
@ -162,7 +169,8 @@ class ChartingState extends MusicBeatState
|
||||
var tabs = [
|
||||
{name: "Song", label: 'Song'},
|
||||
{name: "Section", label: 'Section'},
|
||||
{name: "Note", label: 'Note'}
|
||||
{name: "Note", label: 'Note'},
|
||||
{name: "Assets", label: 'Assets'}
|
||||
];
|
||||
|
||||
UI_box = new FlxUITabMenu(null, tabs, true);
|
||||
@ -247,6 +255,9 @@ class ChartingState extends MusicBeatState
|
||||
stepperBPM.name = 'song_bpm';
|
||||
|
||||
var characters:Array<String> = CoolUtil.coolTextFile(Paths.txt('characterList'));
|
||||
var gfVersions:Array<String> = CoolUtil.coolTextFile(Paths.txt('gfVersionList'));
|
||||
var stages:Array<String> = CoolUtil.coolTextFile(Paths.txt('stageList'));
|
||||
var noteStyles:Array<String> = CoolUtil.coolTextFile(Paths.txt('noteStyleList'));
|
||||
|
||||
var player1DropDown = new FlxUIDropDownMenu(10, 100, FlxUIDropDownMenu.makeStrIdLabelArray(characters, true), function(character:String)
|
||||
{
|
||||
@ -261,6 +272,24 @@ class ChartingState extends MusicBeatState
|
||||
|
||||
player2DropDown.selectedLabel = _song.player2;
|
||||
|
||||
var gfVersionDropDown = new FlxUIDropDownMenu(10, 200, FlxUIDropDownMenu.makeStrIdLabelArray(gfVersions, true), function(gfVersion:String)
|
||||
{
|
||||
_song.gfVersion = gfVersions[Std.parseInt(gfVersion)];
|
||||
});
|
||||
gfVersionDropDown.selectedLabel = _song.gfVersion;
|
||||
|
||||
var stageDropDown = new FlxUIDropDownMenu(140, 200, FlxUIDropDownMenu.makeStrIdLabelArray(stages, true), function(stage:String)
|
||||
{
|
||||
_song.stage = stages[Std.parseInt(stage)];
|
||||
});
|
||||
stageDropDown.selectedLabel = _song.stage;
|
||||
|
||||
var noteStyleDropDown = new FlxUIDropDownMenu(10, 300, FlxUIDropDownMenu.makeStrIdLabelArray(noteStyles, true), function(noteStyle:String)
|
||||
{
|
||||
_song.noteStyle = noteStyles[Std.parseInt(noteStyle)];
|
||||
});
|
||||
noteStyleDropDown.selectedLabel = _song.noteStyle;
|
||||
|
||||
var tab_group_song = new FlxUI(null, UI_box);
|
||||
tab_group_song.name = "Song";
|
||||
tab_group_song.add(UI_songTitle);
|
||||
@ -273,10 +302,20 @@ class ChartingState extends MusicBeatState
|
||||
tab_group_song.add(loadAutosaveBtn);
|
||||
tab_group_song.add(stepperBPM);
|
||||
tab_group_song.add(stepperSpeed);
|
||||
tab_group_song.add(player1DropDown);
|
||||
tab_group_song.add(player2DropDown);
|
||||
|
||||
var tab_group_assets = new FlxUI(null, UI_box);
|
||||
tab_group_assets.name = "Assets";
|
||||
tab_group_assets.add(player1DropDown);
|
||||
tab_group_assets.add(player2DropDown);
|
||||
tab_group_assets.add(gfVersionDropDown);
|
||||
tab_group_assets.add(stageDropDown);
|
||||
tab_group_assets.add(noteStyleDropDown);
|
||||
|
||||
|
||||
|
||||
|
||||
UI_box.addGroup(tab_group_song);
|
||||
UI_box.addGroup(tab_group_assets);
|
||||
UI_box.scrollFactor.set();
|
||||
|
||||
FlxG.camera.follow(strumLine);
|
||||
@ -991,13 +1030,13 @@ class ChartingState extends MusicBeatState
|
||||
{
|
||||
if (check_mustHitSection.checked)
|
||||
{
|
||||
leftIcon.animation.play('bf');
|
||||
rightIcon.animation.play('dad');
|
||||
leftIcon.animation.play(leftIconChar);
|
||||
rightIcon.animation.play(rightIconChar);
|
||||
}
|
||||
else
|
||||
{
|
||||
leftIcon.animation.play('dad');
|
||||
rightIcon.animation.play('bf');
|
||||
leftIcon.animation.play(rightIconChar);
|
||||
rightIcon.animation.play(leftIconChar);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@ import flixel.util.FlxColor;
|
||||
#if polymod
|
||||
import polymod.format.ParseRules.TargetSignatureElement;
|
||||
#end
|
||||
import PlayState;
|
||||
|
||||
using StringTools;
|
||||
|
||||
@ -58,9 +59,9 @@ class Note extends FlxSprite
|
||||
|
||||
var daStage:String = PlayState.curStage;
|
||||
|
||||
switch (daStage)
|
||||
switch (PlayState.SONG.noteStyle)
|
||||
{
|
||||
case 'school' | 'schoolEvil':
|
||||
case 'pixel':
|
||||
loadGraphic(Paths.image('weeb/pixelUI/arrows-pixels'), true, 17, 17);
|
||||
|
||||
animation.add('greenScroll', [6]);
|
||||
@ -86,6 +87,28 @@ class Note extends FlxSprite
|
||||
setGraphicSize(Std.int(width * PlayState.daPixelZoom));
|
||||
updateHitbox();
|
||||
|
||||
case 'normal':
|
||||
frames = Paths.getSparrowAtlas('NOTE_assets');
|
||||
|
||||
animation.addByPrefix('greenScroll', 'green0');
|
||||
animation.addByPrefix('redScroll', 'red0');
|
||||
animation.addByPrefix('blueScroll', 'blue0');
|
||||
animation.addByPrefix('purpleScroll', 'purple0');
|
||||
|
||||
animation.addByPrefix('purpleholdend', 'pruple end hold');
|
||||
animation.addByPrefix('greenholdend', 'green hold end');
|
||||
animation.addByPrefix('redholdend', 'red hold end');
|
||||
animation.addByPrefix('blueholdend', 'blue hold end');
|
||||
|
||||
animation.addByPrefix('purplehold', 'purple hold piece');
|
||||
animation.addByPrefix('greenhold', 'green hold piece');
|
||||
animation.addByPrefix('redhold', 'red hold piece');
|
||||
animation.addByPrefix('bluehold', 'blue hold piece');
|
||||
|
||||
setGraphicSize(Std.int(width * 0.7));
|
||||
updateHitbox();
|
||||
antialiasing = true;
|
||||
|
||||
default:
|
||||
frames = Paths.getSparrowAtlas('NOTE_assets');
|
||||
|
||||
|
@ -535,9 +535,9 @@ class PlayState extends MusicBeatState
|
||||
dialogue = CoolUtil.coolTextFile(Paths.txt('thorns/thornsDialogue'));
|
||||
}
|
||||
|
||||
switch(SONG.song.toLowerCase())
|
||||
switch(SONG.stage)
|
||||
{
|
||||
case 'spookeez' | 'monster' | 'south':
|
||||
case 'halloween':
|
||||
{
|
||||
curStage = 'spooky';
|
||||
halloweenLevel = true;
|
||||
@ -554,7 +554,7 @@ class PlayState extends MusicBeatState
|
||||
|
||||
isHalloween = true;
|
||||
}
|
||||
case 'pico' | 'blammed' | 'philly':
|
||||
case 'philly':
|
||||
{
|
||||
curStage = 'philly';
|
||||
|
||||
@ -600,7 +600,7 @@ class PlayState extends MusicBeatState
|
||||
var street:FlxSprite = new FlxSprite(-40, streetBehind.y).loadGraphic(Paths.image('philly/street'));
|
||||
add(street);
|
||||
}
|
||||
case 'milf' | 'satin-panties' | 'high':
|
||||
case 'limo':
|
||||
{
|
||||
curStage = 'limo';
|
||||
defaultCamZoom = 0.90;
|
||||
@ -648,7 +648,7 @@ class PlayState extends MusicBeatState
|
||||
fastCar = new FlxSprite(-300, 160).loadGraphic(Paths.image('limo/fastCarLol'));
|
||||
// add(limo);
|
||||
}
|
||||
case 'cocoa' | 'eggnog':
|
||||
case 'mall':
|
||||
{
|
||||
curStage = 'mall';
|
||||
|
||||
@ -712,7 +712,7 @@ class PlayState extends MusicBeatState
|
||||
add(santa);
|
||||
}
|
||||
}
|
||||
case 'winter-horrorland':
|
||||
case 'mallEvil':
|
||||
{
|
||||
curStage = 'mallEvil';
|
||||
var bg:FlxSprite = new FlxSprite(-400, -500).loadGraphic(Paths.image('christmas/evilBG'));
|
||||
@ -732,7 +732,7 @@ class PlayState extends MusicBeatState
|
||||
evilSnow.antialiasing = true;
|
||||
add(evilSnow);
|
||||
}
|
||||
case 'senpai' | 'roses':
|
||||
case 'school':
|
||||
{
|
||||
curStage = 'school';
|
||||
|
||||
@ -803,7 +803,7 @@ class PlayState extends MusicBeatState
|
||||
add(bgGirls);
|
||||
}
|
||||
}
|
||||
case 'thorns':
|
||||
case 'schoolEvil':
|
||||
{
|
||||
curStage = 'schoolEvil';
|
||||
|
||||
@ -859,6 +859,33 @@ class PlayState extends MusicBeatState
|
||||
add(waveSpriteFG);
|
||||
*/
|
||||
}
|
||||
case 'stage':
|
||||
{
|
||||
defaultCamZoom = 0.9;
|
||||
curStage = 'stage';
|
||||
var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback'));
|
||||
bg.antialiasing = true;
|
||||
bg.scrollFactor.set(0.9, 0.9);
|
||||
bg.active = false;
|
||||
add(bg);
|
||||
|
||||
var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront'));
|
||||
stageFront.setGraphicSize(Std.int(stageFront.width * 1.1));
|
||||
stageFront.updateHitbox();
|
||||
stageFront.antialiasing = true;
|
||||
stageFront.scrollFactor.set(0.9, 0.9);
|
||||
stageFront.active = false;
|
||||
add(stageFront);
|
||||
|
||||
var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains'));
|
||||
stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9));
|
||||
stageCurtains.updateHitbox();
|
||||
stageCurtains.antialiasing = true;
|
||||
stageCurtains.scrollFactor.set(1.3, 1.3);
|
||||
stageCurtains.active = false;
|
||||
|
||||
add(stageCurtains);
|
||||
}
|
||||
default:
|
||||
{
|
||||
defaultCamZoom = 0.9;
|
||||
@ -889,21 +916,20 @@ class PlayState extends MusicBeatState
|
||||
}
|
||||
var gfVersion:String = 'gf';
|
||||
|
||||
switch (curStage)
|
||||
switch (SONG.gfVersion)
|
||||
{
|
||||
case 'limo':
|
||||
case 'gf-car':
|
||||
gfVersion = 'gf-car';
|
||||
case 'mall' | 'mallEvil':
|
||||
case 'gf-christmas':
|
||||
gfVersion = 'gf-christmas';
|
||||
case 'school':
|
||||
gfVersion = 'gf-pixel';
|
||||
case 'schoolEvil':
|
||||
case 'gf-pixel':
|
||||
gfVersion = 'gf-pixel';
|
||||
case 'gf':
|
||||
gfVersion = 'gf';
|
||||
default:
|
||||
gfVersion = 'gf';
|
||||
}
|
||||
|
||||
if (curStage == 'limo')
|
||||
gfVersion = 'gf-car';
|
||||
|
||||
gf = new Character(400, 130, gfVersion);
|
||||
gf.scrollFactor.set(0.95, 0.95);
|
||||
|
||||
@ -1969,9 +1995,9 @@ class PlayState extends MusicBeatState
|
||||
// FlxG.log.add(i);
|
||||
var babyArrow:FlxSprite = new FlxSprite(0, strumLine.y);
|
||||
|
||||
switch (curStage)
|
||||
switch (SONG.noteStyle)
|
||||
{
|
||||
case 'school' | 'schoolEvil':
|
||||
case 'pixel':
|
||||
babyArrow.loadGraphic(Paths.image('weeb/pixelUI/arrows-pixels'), true, 17, 17);
|
||||
babyArrow.animation.add('green', [6]);
|
||||
babyArrow.animation.add('red', [7]);
|
||||
@ -2005,6 +2031,40 @@ class PlayState extends MusicBeatState
|
||||
babyArrow.animation.add('pressed', [7, 11], 12, false);
|
||||
babyArrow.animation.add('confirm', [15, 19], 24, false);
|
||||
}
|
||||
|
||||
case 'normal':
|
||||
babyArrow.frames = Paths.getSparrowAtlas('NOTE_assets');
|
||||
babyArrow.animation.addByPrefix('green', 'arrowUP');
|
||||
babyArrow.animation.addByPrefix('blue', 'arrowDOWN');
|
||||
babyArrow.animation.addByPrefix('purple', 'arrowLEFT');
|
||||
babyArrow.animation.addByPrefix('red', 'arrowRIGHT');
|
||||
|
||||
babyArrow.antialiasing = true;
|
||||
babyArrow.setGraphicSize(Std.int(babyArrow.width * 0.7));
|
||||
|
||||
switch (Math.abs(i))
|
||||
{
|
||||
case 0:
|
||||
babyArrow.x += Note.swagWidth * 0;
|
||||
babyArrow.animation.addByPrefix('static', 'arrowLEFT');
|
||||
babyArrow.animation.addByPrefix('pressed', 'left press', 24, false);
|
||||
babyArrow.animation.addByPrefix('confirm', 'left confirm', 24, false);
|
||||
case 1:
|
||||
babyArrow.x += Note.swagWidth * 1;
|
||||
babyArrow.animation.addByPrefix('static', 'arrowDOWN');
|
||||
babyArrow.animation.addByPrefix('pressed', 'down press', 24, false);
|
||||
babyArrow.animation.addByPrefix('confirm', 'down confirm', 24, false);
|
||||
case 2:
|
||||
babyArrow.x += Note.swagWidth * 2;
|
||||
babyArrow.animation.addByPrefix('static', 'arrowUP');
|
||||
babyArrow.animation.addByPrefix('pressed', 'up press', 24, false);
|
||||
babyArrow.animation.addByPrefix('confirm', 'up confirm', 24, false);
|
||||
case 3:
|
||||
babyArrow.x += Note.swagWidth * 3;
|
||||
babyArrow.animation.addByPrefix('static', 'arrowRIGHT');
|
||||
babyArrow.animation.addByPrefix('pressed', 'right press', 24, false);
|
||||
babyArrow.animation.addByPrefix('confirm', 'right confirm', 24, false);
|
||||
}
|
||||
|
||||
default:
|
||||
babyArrow.frames = Paths.getSparrowAtlas('NOTE_assets');
|
||||
|
@ -17,6 +17,9 @@ typedef SwagSong =
|
||||
|
||||
var player1:String;
|
||||
var player2:String;
|
||||
var gfVersion:String;
|
||||
var noteStyle:String;
|
||||
var stage:String;
|
||||
var validScore:Bool;
|
||||
}
|
||||
|
||||
@ -30,6 +33,9 @@ class Song
|
||||
|
||||
public var player1:String = 'bf';
|
||||
public var player2:String = 'dad';
|
||||
public var gfVersion:String = 'gf';
|
||||
public var noteStyle:String = 'normal';
|
||||
public var stage:String = 'stage';
|
||||
|
||||
public function new(song, notes, bpm)
|
||||
{
|
||||
|
Reference in New Issue
Block a user