public virtual void TriggerMove(MoveTriggerType t, MovementType m = MovementType.Exp)
 {
     if (TargetPosition != null)
     {
         if (!IsMoving)
         {
             StartPosition           = transform.position;
             EndPosition             = TargetPosition.position;
             IsMoving                = true;
             LastMovementTriggerType = t;
             ObjectMovementType      = m;
         }
     }
 }
Beispiel #2
0
 public override void TriggerMove(MoveTriggerType t, MovementType m = MovementType.Exp)
 {
     base.TriggerMove(t);
     if (DiagonalNeighbour != null)
     {
         if (IsTransitioningToPositionStateByTriggerType(PositionState.Original, MoveTriggerType.Player))
         {
             if (DiagonalNeighbour.IsInOrChangingToPositionState(PositionState.Original))
             {
                 DiagonalNeighbour.TriggerMove(MoveTriggerType.Environment);
             }
         }
     }
     if (VerticalNeighbour != null)
     {
         if (IsTransitioningToPositionStateByTriggerType(PositionState.Transformed, MoveTriggerType.Player))
         {
             if (VerticalNeighbour.IsInOrChangingToPositionState(PositionState.Transformed))
             {
                 VerticalNeighbour.TriggerMove(MoveTriggerType.Environment);
             }
         }
     }
 }
 public bool HasBeenMovedToPositionByTriggerType(PositionState p, MoveTriggerType t)
 {
     return((IsInStaticPosition(p) && LastMovementTriggerType == t) ||
            IsTransitioningToPositionStateByTriggerType(p, t));
 }
 public bool IsTransitioningToPositionStateByTriggerType(PositionState p, MoveTriggerType t)
 {
     return(IsMoving && ObjectPositionState != p && LastMovementTriggerType == t);
 }
 public bool IsInPositionStateOrHasBeenTriggered(PositionState p, MoveTriggerType t)
 {
     return(IsInStaticPosition(p) || IsTransitioningToPositionStateByTriggerType(p, t));
 }