예제 #1
0
        public override Dictionary <MapSquare, MapSquare.Interactable> GetValidInputSquares()
        {
            inputSquares.Clear();
            inputOptionFacings.Clear();

            CheckTowingStatus();

            Tools.Facing[] possibleFacings;
            if (doneMoves == 0)
            {
                possibleFacings = new Tools.Facing[] { Tools.Facing.Left, Tools.Facing.Right, Tools.Facing.Forward }
            }
            ;
            else
            {
                possibleFacings = new Tools.Facing[] { moveFacing }
            };

            foreach (Tools.Facing facing in possibleFacings)
            {
                Tools.Direction moveDir = Tools.GetDirectionFromFacing(facing, startFacingDirection);
                foreach (KeyValuePair <MapSquare, MapSquare.Interactable> kvp in GetInputsForOneDirection(moveDir))
                {
                    inputSquares.Add(kvp.Key, kvp.Value);
                    inputOptionFacings.Add(kvp.Key, facing);
                }
            }

            return(inputSquares);
        }
예제 #2
0
 public StuckControls(Tools.Facing damageDirection, bool isMoveDamage)
 {
     direction = damageDirection;
     isMove    = isMoveDamage;
     text      = (isMove ? "Move " : "Turn ") + direction;
     slottable = true;
 }
예제 #3
0
 public override void InitializeCardExecution(Unit executingUnit)
 {
     base.InitializeCardExecution(executingUnit);
     moveFacing  = Tools.Facing.Forward;
     minMaxMoves = new Tuple <int, int>(level, level);
     doneMoves   = 0;
     encounteredUntenterableSquare = false;
 }
예제 #4
0
 public SimpleTurnCard(Tools.Facing facing)
 {
     commandFacing = facing;
     text          = "Turn " + facing.ToString();
 }
예제 #5
0
 public TurnAction(Unit targetUnit, Tools.Facing facing)
 {
     goalDirection = Tools.GetDirectionFromFacing(facing, unit.facingDirection);
     goalRotation  = Tools.GetRotation(goalDirection);
     unit          = targetUnit;
 }
예제 #6
0
 public SimpleMoveCard(Tools.Facing facing, int moves)
 {
     commandFacing = facing;
     moveAmount    = moves;
     text          = "Move " + moves + " " + facing.ToString();
 }
예제 #7
0
 public virtual bool CanMove(Tools.Facing moveFacing)
 {
     Tools.Direction moveDirection = Tools.GetDirectionFromFacing(moveFacing, facingDirection);
     return(CanMove(moveDirection));
 }
예제 #8
0
 public virtual void Move(Tools.Facing moveTowards)
 {
     actionStack.Push(new MoveAction(this, Tools.GetDirectionFromFacing(moveTowards, facingDirection)));
 }
예제 #9
0
 public virtual void Turn(Tools.Facing turnTowards)
 {
     actionStack.Push(new TurnAction(this, Tools.GetDirectionFromFacing(turnTowards, facingDirection)));
 }