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); } }
private IEnumerator ChangeMotionAfter(MotionRequest motion, float time) { yield return(new WaitForSeconds(time)); ChangeMotion(motion); }