2022-03-08 03:13:53 -05:00
|
|
|
package funkin.freeplayStuff;
|
2021-10-21 15:05:32 -04:00
|
|
|
|
|
|
|
import flixel.FlxSprite;
|
2021-10-21 23:08:48 -04:00
|
|
|
import flixel.util.FlxSignal;
|
2021-10-21 15:05:32 -04:00
|
|
|
|
|
|
|
class DJBoyfriend extends FlxSprite
|
|
|
|
{
|
2021-10-21 23:08:48 -04:00
|
|
|
public var animHITsignal:FlxSignal;
|
|
|
|
|
2021-10-21 15:05:32 -04:00
|
|
|
public function new(x:Float, y:Float)
|
|
|
|
{
|
|
|
|
super(x, y);
|
|
|
|
|
2021-10-21 23:08:48 -04:00
|
|
|
animHITsignal = new FlxSignal();
|
|
|
|
|
2021-10-21 15:05:32 -04:00
|
|
|
animOffsets = new Map<String, Array<Dynamic>>();
|
|
|
|
|
|
|
|
frames = Paths.getSparrowAtlas('freeplay/bfFreeplay');
|
|
|
|
animation.addByPrefix('intro', "boyfriend dj intro", 24, false);
|
|
|
|
animation.addByPrefix('idle', "Boyfriend DJ0", 24);
|
|
|
|
animation.addByPrefix('confirm', "Boyfriend DJ confirm", 24);
|
|
|
|
|
|
|
|
addOffset('intro', 0, 0);
|
|
|
|
addOffset('idle', -4, -426);
|
|
|
|
|
|
|
|
playAnim('intro');
|
|
|
|
animation.finishCallback = function(anim)
|
|
|
|
{
|
|
|
|
switch (anim)
|
|
|
|
{
|
|
|
|
case "intro":
|
2021-10-21 23:08:48 -04:00
|
|
|
animHITsignal.dispatch();
|
2021-10-21 15:05:32 -04:00
|
|
|
playAnim('idle'); // plays idle anim after playing intro
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
// playAnim stolen from Character.hx, cuz im lazy lol!
|
|
|
|
public var animOffsets:Map<String, Array<Dynamic>>;
|
|
|
|
|
|
|
|
public function playAnim(AnimName:String, Force:Bool = false, Reversed:Bool = false, Frame:Int = 0):Void
|
|
|
|
{
|
|
|
|
animation.play(AnimName, Force, Reversed, Frame);
|
|
|
|
|
|
|
|
var daOffset = animOffsets.get(AnimName);
|
|
|
|
if (animOffsets.exists(AnimName))
|
|
|
|
{
|
|
|
|
offset.set(daOffset[0], daOffset[1]);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
offset.set(0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function addOffset(name:String, x:Float = 0, y:Float = 0)
|
|
|
|
{
|
|
|
|
animOffsets[name] = [x, y];
|
|
|
|
}
|
|
|
|
}
|