Example #1
0
    public void ChangeMotion(MotionRequest motion, MotionRequest?nextMotion = null)
    {
        State = SpriteState.Alive;

        int newAction;

        if (motion.Motion == SpriteMotion.Attack)
        {
            var attackActions = new SpriteMotion[] { SpriteMotion.Attack1, SpriteMotion.Attack2, SpriteMotion.Attack3 };
            var action        = DBManager.GetWeaponAction((Job)Entity.Status.jobId, Entity.Status.sex, Entity.EquipInfo.Weapon);
            newAction = AnimationHelper.GetMotionIdForSprite(Entity.Type, attackActions[action]);
        }
        else
        {
            newAction = AnimationHelper.GetMotionIdForSprite(Entity.Type, motion.Motion);
        }

        CurrentMotion  = motion;
        NextMotion     = nextMotion;
        Entity.Action  = newAction;
        ActionId       = newAction;
        AnimationStart = Core.Tick;
        previousFrame  = 0;

        foreach (var child in Children)
        {
            child.ChangeMotion(motion, nextMotion);
        }
    }
Example #2
0
    private IEnumerator ChangeMotionAfter(MotionRequest motion, float time)
    {
        yield return(new WaitForSeconds(time));

        ChangeMotion(motion);
    }