Exemplo n.º 1
0
        public override bool CanInteract(InteractionEvent interactionEvent)
        {
            if (!InteractionHelpers.RangeCheck(interactionEvent))
            {
                return(false);
            }

            if (interactionEvent.Target is IGameObjectProvider targetBehaviour)
            {
                TileObject targetTile = targetBehaviour.GameObject.GetComponentInParent <TileObject>();
                if (targetTile == null)
                {
                    return(false);
                }

                if (targetTile.Tile.fixture != null)
                {
                    return(false);
                }

                return(true);
            }

            return(false);
        }
Exemplo n.º 2
0
    // Update is called once per frame
    void Update()
    {
        if (!map || !pathfinding)
        {
            return;
        }

        if (!currentPlayer.isAI && Input.GetMouseButtonUp(0))
        {
            Tile tile = InteractionHelpers.GetClickedElement <Tile> ();
            if (tile)
            {
                OnTileLeftClicked(tile);
            }
        }
        else if (!currentPlayer.isAI && Input.GetMouseButtonUp(1))
        {
            Tile tile = InteractionHelpers.GetClickedElement <Tile> ();
            if (tile)
            {
                OnTileRightClicked(tile);

                if (!UnitsHaveActions())
                {
                    SwitchPlayer();
                }
            }
        }
    }
Exemplo n.º 3
0
 public bool CanInteract(InteractionEvent interactionEvent)
 {
     if (!InteractionHelpers.RangeCheck(interactionEvent))
     {
         return(false);
     }
     return((interactionEvent.Target as IGameObjectProvider)?.GameObject?.GetComponent <Container>() != null);
 }
Exemplo n.º 4
0
        public bool CanInteract(InteractionEvent interactionEvent)
        {
            if (!(interactionEvent.Source.Parent is Hands))
            {
                return(false);
            }

            return(InteractionHelpers.RangeCheck(interactionEvent));
        }
Exemplo n.º 5
0
        public bool CanInteract(InteractionEvent interactionEvent)
        {
            if (!InteractionHelpers.RangeCheck(interactionEvent))
            {
                return(false);
            }

            if (interactionEvent.Target is IGameObjectProvider target)
            {
                return(target.GameObject.GetComponent <Animator>() != null);
            }
            return(false);
        }
Exemplo n.º 6
0
        public bool CanInteract(InteractionEvent interactionEvent)
        {
            if (interactionEvent.Target is IGameObjectProvider targetBehaviour)
            {
                if (targetBehaviour.GameObject.GetComponent <Item>() == null)
                {
                    return(false);
                }

                return(InteractionHelpers.RangeCheck(interactionEvent));
            }

            return(false);
        }
Exemplo n.º 7
0
        public bool CanInteract(InteractionEvent interactionEvent)
        {
            if (!InteractionHelpers.RangeCheck(interactionEvent))
            {
                return(false);
            }

            if (interactionEvent.Source.Parent is Hands hands && interactionEvent.Target is IGameObjectProvider target)
            {
                return(hands.GetItemInHand() != null && CanStore(target.GameObject));
            }

            return(false);
        }
Exemplo n.º 8
0
            public bool CanInteract(InteractionEvent interactionEvent)
            {
                if (interactionEvent.Target is Bikehorn horn)
                {
                    if (!InteractionHelpers.RangeCheck(interactionEvent))
                    {
                        return(false);
                    }
                    return(!horn.IsHonking());
                }
                if (interactionEvent.Source is Bikehorn horn1)
                {
                    return(!horn1.IsHonking());
                }

                return(false);
            }
Exemplo n.º 9
0
        public override bool CanInteract(InteractionEvent interactionEvent)
        {
            GameObject target = (interactionEvent.Target as IGameObjectProvider)?.GameObject;

            if (target == null)
            {
                return(false);
            }

            if (!InteractionHelpers.RangeCheck(interactionEvent))
            {
                return(false);
            }

            // Needs to be used on tile
            TileObject tileObject = target.GetComponentInParent <TileObject>();

            if (tileObject == null || tileObject.Tile.turf == null)
            {
                return(false);
            }

            Turf turf = tileObject.Tile.turf;

            // Check if welder is on
            if ((interactionEvent.Source as IToggleable)?.GetState() == false)
            {
                return(false);
            }

            // Check if turf is in dict
            if (!TurfReinforceList.ContainsKey(turf) && !TurfReinforceList.ContainsValue(turf))
            {
                return(false);
            }

            return(true);
        }