2022-03-08 08:13:53 +00:00
|
|
|
package funkin.play;
|
2022-02-18 21:29:29 +00:00
|
|
|
|
|
|
|
import flixel.FlxSprite;
|
|
|
|
|
|
|
|
class Fighter extends Character
|
|
|
|
{
|
|
|
|
public function new(?x:Float = 0, ?y:Float = 0, ?char:String = "pico-fighter")
|
|
|
|
{
|
|
|
|
super(x, y, char);
|
|
|
|
|
|
|
|
animation.finishCallback = function(anim:String)
|
|
|
|
{
|
|
|
|
switch anim
|
|
|
|
{
|
|
|
|
case "punch low" | "punch high" | "block" | 'dodge':
|
|
|
|
dance();
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
public var actions:Array<ACTIONS> = [PUNCH, BLOCK, DODGE];
|
|
|
|
|
|
|
|
public function doSomething(?forceAction:ACTIONS)
|
|
|
|
{
|
|
|
|
var daAction:ACTIONS = FlxG.random.getObject(actions);
|
|
|
|
|
|
|
|
if (forceAction != null)
|
|
|
|
daAction = forceAction;
|
|
|
|
|
|
|
|
switch (daAction)
|
|
|
|
{
|
|
|
|
case PUNCH:
|
|
|
|
punch();
|
|
|
|
case BLOCK:
|
|
|
|
block();
|
|
|
|
case DODGE:
|
|
|
|
dodge();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public var curAction:ACTIONS = DODGE;
|
|
|
|
|
|
|
|
function dodge()
|
|
|
|
{
|
|
|
|
playAnim('dodge');
|
|
|
|
curAction = DODGE;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function block()
|
|
|
|
{
|
|
|
|
playAnim('block');
|
|
|
|
curAction = BLOCK;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function punch()
|
|
|
|
{
|
|
|
|
curAction = PUNCH;
|
|
|
|
playAnim('punch ' + (FlxG.random.bool() ? "low" : "high"));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
enum ACTIONS
|
|
|
|
{
|
|
|
|
DODGE;
|
|
|
|
BLOCK;
|
|
|
|
PUNCH;
|
|
|
|
}
|