From 868cde0f5998cd1d5cb399426792f797bb609b7c Mon Sep 17 00:00:00 2001 From: Saalvage <29021710+Saalvage@users.noreply.github.com> Date: Tue, 30 Mar 2021 01:29:06 +0200 Subject: [PATCH 1/2] Better implementation of menu characters --- source/MenuCharacter.hx | 62 ++++++++++++++++++++++++++++++++++------ source/StoryMenuState.hx | 62 +++++----------------------------------- 2 files changed, 61 insertions(+), 63 deletions(-) diff --git a/source/MenuCharacter.hx b/source/MenuCharacter.hx index ca5f9b4..1cf3e5b 100644 --- a/source/MenuCharacter.hx +++ b/source/MenuCharacter.hx @@ -3,18 +3,45 @@ package; import flixel.FlxSprite; import flixel.graphics.frames.FlxAtlasFrames; +class CharacterSetting +{ + public var x(default, null):Int; + public var y(default, null):Int; + public var scale(default, null):Float; + public var flipped(default, null):Bool; + + public function new(x:Int = 0, y:Int = 0, scale:Float = 1.0, flipped:Bool = false) + { + this.x = x; + this.y = y; + this.scale = scale; + this.flipped = flipped; + } +} + class MenuCharacter extends FlxSprite { - public var character:String; + private static var settings:Map = [ + 'bf' => new CharacterSetting(0, -20, 1.0, true), + 'gf' => new CharacterSetting(50, 80, 1.5, true), + 'dad' => new CharacterSetting(-15, 130), + 'spooky' => new CharacterSetting(20, 30), + 'pico' => new CharacterSetting(0, 0, 1.0, true), + 'mom' => new CharacterSetting(-30, 140, 0.85), + 'parents-christmas' => new CharacterSetting(100, 130, 1.8), + 'senpai' => new CharacterSetting(-40, -45, 1.4) + ]; - public function new(x:Float, character:String = 'bf') + private var flipped:Bool = false; + + public function new(x:Int, y:Int, scale:Float, flipped:Bool) { - super(x); + super(x, y); + this.flipped = flipped; - this.character = character; + antialiasing = true; - var tex = Paths.getSparrowAtlas('campaign_menu_UI_characters'); - frames = tex; + frames = Paths.getSparrowAtlas('campaign_menu_UI_characters'); animation.addByPrefix('bf', "BF idle dance white", 24); animation.addByPrefix('bfConfirm', 'BF HEY!!', 24, false); @@ -25,9 +52,28 @@ class MenuCharacter extends FlxSprite animation.addByPrefix('mom', "Mom Idle BLACK LINES", 24); animation.addByPrefix('parents-christmas', "Parent Christmas Idle", 24); animation.addByPrefix('senpai', "SENPAI idle Black Lines", 24); - // Parent Christmas Idle - animation.play(character); + setGraphicSize(Std.int(width * scale)); updateHitbox(); } + + public function setCharacter(character:String):Void + { + if (character == '') + { + visible = false; + return; + } + else + { + visible = true; + } + + animation.play(character); + + var setting:CharacterSetting = settings[character]; + offset.set(setting.x, setting.y); + setGraphicSize(Std.int(width * setting.scale)); + flipX = setting.flipped != flipped; + } } diff --git a/source/StoryMenuState.hx b/source/StoryMenuState.hx index 9957c18..b083b9b 100644 --- a/source/StoryMenuState.hx +++ b/source/StoryMenuState.hx @@ -145,33 +145,9 @@ class StoryMenuState extends MusicBeatState trace("Line 96"); - for (char in 0...3) - { - var weekCharacterThing:MenuCharacter = new MenuCharacter((FlxG.width * 0.25) * (1 + char) - 150, weekCharacters[curWeek][char]); - weekCharacterThing.y += 70; - weekCharacterThing.antialiasing = true; - switch (weekCharacterThing.character) - { - case 'dad': - weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.5)); - weekCharacterThing.updateHitbox(); - - case 'bf': - weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.9)); - weekCharacterThing.updateHitbox(); - weekCharacterThing.x -= 80; - case 'gf': - weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.5)); - weekCharacterThing.updateHitbox(); - case 'pico': - weekCharacterThing.flipX = true; - case 'parents-christmas': - weekCharacterThing.setGraphicSize(Std.int(weekCharacterThing.width * 0.9)); - weekCharacterThing.updateHitbox(); - } - - grpWeekCharacters.add(weekCharacterThing); - } + grpWeekCharacters.add(new MenuCharacter(0, 100, 0.5, false)); + grpWeekCharacters.add(new MenuCharacter(450, 25, 0.9, true)); + grpWeekCharacters.add(new MenuCharacter(850, 100, 0.5, true)); difficultySelectors = new FlxGroup(); add(difficultySelectors); @@ -399,35 +375,11 @@ class StoryMenuState extends MusicBeatState function updateText() { - grpWeekCharacters.members[0].animation.play(weekCharacters[curWeek][0]); - grpWeekCharacters.members[1].animation.play(weekCharacters[curWeek][1]); - grpWeekCharacters.members[2].animation.play(weekCharacters[curWeek][2]); + grpWeekCharacters.members[0].setCharacter(weekCharacters[curWeek][0]); + grpWeekCharacters.members[1].setCharacter(weekCharacters[curWeek][1]); + grpWeekCharacters.members[2].setCharacter(weekCharacters[curWeek][2]); + txtTracklist.text = "Tracks\n"; - - switch (grpWeekCharacters.members[0].animation.curAnim.name) - { - case 'parents-christmas': - grpWeekCharacters.members[0].offset.set(200, 200); - grpWeekCharacters.members[0].setGraphicSize(Std.int(grpWeekCharacters.members[0].width * 0.99)); - - case 'senpai': - grpWeekCharacters.members[0].offset.set(130, 0); - grpWeekCharacters.members[0].setGraphicSize(Std.int(grpWeekCharacters.members[0].width * 1.4)); - - case 'mom': - grpWeekCharacters.members[0].offset.set(100, 200); - grpWeekCharacters.members[0].setGraphicSize(Std.int(grpWeekCharacters.members[0].width * 1)); - - case 'dad': - grpWeekCharacters.members[0].offset.set(120, 200); - grpWeekCharacters.members[0].setGraphicSize(Std.int(grpWeekCharacters.members[0].width * 1)); - - default: - grpWeekCharacters.members[0].offset.set(100, 100); - grpWeekCharacters.members[0].setGraphicSize(Std.int(grpWeekCharacters.members[0].width * 1)); - // grpWeekCharacters.members[0].updateHitbox(); - } - var stringThing:Array = weekData[curWeek]; for (i in stringThing) From 193f75a2a4ff73735cdf522ddd1a45dc8e8d3049 Mon Sep 17 00:00:00 2001 From: Saalvage <29021710+Saalvage@users.noreply.github.com> Date: Tue, 30 Mar 2021 01:48:06 +0200 Subject: [PATCH 2/2] Removed dad from tutorial --- source/StoryMenuState.hx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/StoryMenuState.hx b/source/StoryMenuState.hx index b083b9b..c2e1cb7 100644 --- a/source/StoryMenuState.hx +++ b/source/StoryMenuState.hx @@ -37,7 +37,7 @@ class StoryMenuState extends MusicBeatState public static var weekUnlocked:Array = [true, true, true, true, true, true, true]; var weekCharacters:Array = [ - ['dad', 'bf', 'gf'], + ['gf', 'bf', ''], ['dad', 'bf', 'gf'], ['spooky', 'bf', 'gf'], ['pico', 'bf', 'gf'],