Ejemplo n.º 1
0
    //This constructor converts the enums into delegates.
    public MovementAndMethod(PossibleMovements ctorMovement, PossibleTriggers ctorTrigger, bool canBeUsedInMidair)
    {
        //Define the trigger
        switch (ctorTrigger)
        {
        case PossibleTriggers.LeftMouseClick:
            actionTrigger = new MethodToAction(CheckLeftClick);
            break;

        case PossibleTriggers.RightMouseClick:
            actionTrigger = new MethodToAction(CheckRightClick);
            break;

        case PossibleTriggers.ShiftPlusLeftClick:
            actionTrigger = new MethodToAction(CheckShiftPlusLeftClick);
            break;

        case PossibleTriggers.ShiftPlusRightClick:
            actionTrigger = new MethodToAction(CheckShiftPlusRightClick);
            break;

        default:
            Debug.LogError("Invalid trigger");
            break;
        }

        //Define the movement.  (Has to be used for animations)
        attackEnumVal = ctorMovement;
        //Used for extraneous cases.
        attackKey = attackEnumVal.ToString();

        //Midair thing.
        canBeUsedWhileMidair = canBeUsedInMidair;
    }
Ejemplo n.º 2
0
        protected override void UpdatePossibleMovements()
        {
            base.UpdatePossibleMovements();

            if (_isFirstMove)
            {
                if (OwnerPlayer == PlayerType.Black)
                {
                    PossibleMovements.Add(string.Concat(Position, Position[0], Convert.ToChar(Position[1] - 2)));
                }
                else
                {
                    PossibleMovements.Add(string.Concat(Position, Position[0], Convert.ToChar(Position[1] + 2)));
                }
            }
        }
        public bool MoveNode(Point startPosition, Point endPosition, EventHandler onCompleteEvent, float timer)
        {
            var moving    = OccupiedTiles.ContainsKey(startPosition);
            var collision = CheckMovementCollision(startPosition, endPosition);
            var validMove = !moving && !collision;

            if (validMove)
            {
                var node = ValueAt(startPosition);
                RemoveNode(startPosition);
                AddNode(endPosition, node);
                var movingEntity = new ExpiringKey(timer)
                {
                    OnCompleteEvent = onCompleteEvent
                };
                foreach (var position in PossibleMovements.PositionsToCheck(startPosition, endPosition))
                {
                    OccupiedTiles[position] = movingEntity;
                }
                OccupiedTiles[startPosition] = movingEntity;
                MovingEntities[movingEntity] = node;
            }
            return(validMove);
        }