From 96fcaea0ba3f07ff3a6ae682881a35cf5bf858be Mon Sep 17 00:00:00 2001 From: Cameron Taylor Date: Wed, 20 Jan 2021 01:38:39 -0500 Subject: [PATCH] monster christmas --- CHANGELOG.md | 1 + source/Character.hx | 33 ++++++++++++++++++--------------- source/HealthIcon.hx | 5 +++-- source/PlayState.hx | 31 +++++++++++++++++++++++++++---- 4 files changed, 49 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 528f51949..2f6b353f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Old Verison popup screen weirdness ([Thanks to gedehari for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/155)) - Song no longer loops when finishing the song. ([Thanks Injourn for the Pull Request!](https://github.com/ninjamuffin99/Funkin/pull/132)) - Screen wipe being cut off in the limo/mom stage. Should fill the whole screen now. +- Boyfriend animations on hold notes, and pressing on repeating notes should behave differently ## [0.2.5] - 2020-12-27 ### Added diff --git a/source/Character.hx b/source/Character.hx index f5dc9f1fe..e0453d14d 100644 --- a/source/Character.hx +++ b/source/Character.hx @@ -183,7 +183,7 @@ class Character extends FlxSprite case 'monster': tex = FlxAtlasFrames.fromSparrow('assets/images/Monster_Assets.png', 'assets/images/Monster_Assets.xml'); frames = tex; - animation.addByPrefix('idle', 'monster idle', 24); + animation.addByPrefix('idle', 'monster idle', 24, false); animation.addByPrefix('singUP', 'monster up note', 24, false); animation.addByPrefix('singDOWN', 'monster down', 24, false); animation.addByPrefix('singLEFT', 'Monster left note', 24, false); @@ -195,6 +195,21 @@ class Character extends FlxSprite addOffset("singLEFT", -30); addOffset("singDOWN", -30, -40); playAnim('idle'); + case 'monster-christmas': + tex = FlxAtlasFrames.fromSparrow('assets/images/christmas/monsterChristmas.png', 'assets/images/christmas/monsterChristmas.xml'); + frames = tex; + animation.addByPrefix('idle', 'monster idle', 24, false); + animation.addByPrefix('singUP', 'monster up note', 24, false); + animation.addByPrefix('singDOWN', 'monster down', 24, false); + animation.addByPrefix('singLEFT', 'Monster left note', 24, false); + animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); + + addOffset('idle'); + addOffset("singUP", -20, 50); + addOffset("singRIGHT", -51); + addOffset("singLEFT", -30); + addOffset("singDOWN", -40, -94); + playAnim('idle'); case 'pico': tex = FlxAtlasFrames.fromSparrow('assets/images/Pico_FNF_assetss.png', 'assets/images/Pico_FNF_assetss.xml'); frames = tex; @@ -347,20 +362,6 @@ class Character extends FlxSprite addOffset("singRIGHT-alt", -1, -24); addOffset("singLEFT-alt", -30, 15); addOffset("singDOWN-alt", -30, -27); - case 'monster-christmas': - frames = FlxAtlasFrames.fromSparrow('assets/images/christmas/Monster_Assets_Christmas.png', - 'assets/images/christmas/Monster_Assets_Christmas.xml'); - animation.addByPrefix('idle', 'monster idle', 24, false); - animation.addByPrefix('singUP', 'monster up note', 24, false); - animation.addByPrefix('singDOWN', 'monster down', 24, false); - animation.addByPrefix('singLEFT', 'Monster left note', 24, false); - animation.addByPrefix('singRIGHT', 'Monster Right note', 24, false); - - addOffset('idle'); - addOffset("singUP", -20, 50); - addOffset("singRIGHT", -51); - addOffset("singLEFT", -30); - addOffset("singDOWN", -30, -40); } antialiasing = true; @@ -487,6 +488,8 @@ class Character extends FlxSprite playAnim('idle'); case 'monster': playAnim('idle'); + case 'monster-christmas': + playAnim('idle'); case 'pico': playAnim('idle'); } diff --git a/source/HealthIcon.hx b/source/HealthIcon.hx index eb6db8a06..d11650c4d 100644 --- a/source/HealthIcon.hx +++ b/source/HealthIcon.hx @@ -22,8 +22,9 @@ class HealthIcon extends FlxSprite animation.add('dad', [12, 13], 0, false, isPlayer); animation.add('bf-old', [14, 15], 0, false, isPlayer); animation.add('gf', [16], 0, false, isPlayer); - animation.add('parents-christmas', [0, 1], 0, false, isPlayer); - animation.add('monster', [0], 0, false, isPlayer); + animation.add('parents-christmas', [17], 0, false, isPlayer); + animation.add('monster', [19, 20], 0, false, isPlayer); + animation.add('monster-christmas', [19, 20], 0, false, isPlayer); animation.play(char); scrollFactor.set(); } diff --git a/source/PlayState.hx b/source/PlayState.hx index e56c7fc22..06ae6998b 100644 --- a/source/PlayState.hx +++ b/source/PlayState.hx @@ -307,6 +307,25 @@ class PlayState extends MusicBeatState santa.antialiasing = true; add(santa); } + else if (SONG.song.toLowerCase() == 'winter-horrorland') + { + var bg:FlxSprite = new FlxSprite(-600, -400).loadGraphic('assets/images/christmas/evilBG.png'); + bg.antialiasing = true; + bg.scrollFactor.set(0.2, 0.2); + bg.active = false; + bg.setGraphicSize(Std.int(bg.width * 0.8)); + bg.updateHitbox(); + add(bg); + + var evilTree:FlxSprite = new FlxSprite(300, -500).loadGraphic('assets/images/christmas/evilTree.png'); + evilTree.antialiasing = true; + evilTree.scrollFactor.set(0.4, 0.4); + add(evilTree); + + var evilSnow:FlxSprite = new FlxSprite(-200, 700).loadGraphic("assets/images/christmas/evilSnow.png"); + evilSnow.antialiasing = true; + add(evilSnow); + } else { curStage = 'stage'; @@ -378,6 +397,8 @@ class PlayState extends MusicBeatState dad.y += 200; case "monster": dad.y += 100; + case 'monster-christmas': + dad.y += 130; case 'dad': camPos.x += 400; case 'pico': @@ -1587,13 +1608,13 @@ class PlayState extends MusicBeatState switch (note.noteData) { case 2: - boyfriend.playAnim('singUP'); + boyfriend.playAnim('singUP', true); case 3: - boyfriend.playAnim('singRIGHT'); + boyfriend.playAnim('singRIGHT', true); case 1: - boyfriend.playAnim('singDOWN'); + boyfriend.playAnim('singDOWN', true); case 0: - boyfriend.playAnim('singLEFT'); + boyfriend.playAnim('singLEFT', true); } playerStrums.forEach(function(spr:FlxSprite) @@ -1772,7 +1793,9 @@ class PlayState extends MusicBeatState } if (!boyfriend.animation.curAnim.name.startsWith("sing")) + { boyfriend.playAnim('idle'); + } if (totalBeats % 8 == 7 && curSong == 'Bopeebo') {