Пример #1
0
    // Update is called once per frame
    void Update()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hitInfo;

        if (Physics.Raycast(ray, out hitInfo))
        {
            Tile hitTile = hitInfo.collider.GetComponentInParent <Tile>();
            HoverTile(hitTile); //Set current tile as hovered tile.
        }
        else
        {
            //myHoveredIndicator.disableSelection();
            ClearSelection();
        }

        if (Input.GetMouseButtonDown(0))
        {
            if (hoveredTile != null)
            {
                UnitCheck = hoveredTile.GetComponentInChildren <Unit>();
                if (UnitCheck != null)
                {
                    temp        = UnitCheck.GetComponentInChildren <PlayerOwned>();
                    checkPlayer = temp.owner;
                    if (checkPlayer == currentPlayer)
                    {
                        selectedTile = hoveredTile;
                        SelectObject(selectedTile);
                        mySelectedIndicator.activateSelection();
                    }
                }


                if (UnitCheck == null || (checkPlayer == currentPlayer))
                {
                    selectedTile = hoveredTile;
                    SelectObject(selectedTile);
                    mySelectedIndicator.activateSelection();
                }
            }
        }
        if (Input.GetMouseButtonUp(1))
        {
            UnitCheck.MoveNextTile();
        }
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            selectedTile = null;
            mySelectedIndicator.disableSelection();
        }
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            UnitCheck.MoveNextTile();
        }
    }
Пример #2
0
    // Temporary until we figure out a better way to decide where to spawn.
    //public Vector2Int SpawnCoordinate;

    public void SpawnUnit(Tile tile)
    {
        bool canAfford = true;

        for (int i = 0; i < Costs.Count; i++)
        {
            if (!Costs[i].CanAfford())
            {
                canAfford = false;
            }
        }


        if (canAfford)
        {
            for (int i = 0; i < Costs.Count; i++)
            {
                Costs[i].Pay();
            }

            Unit newUnit = Instantiate(Prototype);


            PlayerOwned ownertag = newUnit.GetComponent <PlayerOwned>();
            if (ownertag == null)
            {
                Debug.LogError("Unit needs to have a player owned component");
            }
            Player owner = GetComponentInParent <Player>();
            ownertag.setOwner(owner);
            newUnit.transform.SetParent(tile.transform, false);
            //Debug.Log("SET GRID?");
            newUnit.SetGrid(Map);
            newUnit.tileX    = tile.X;
            newUnit.tileY    = tile.Y;
            Map.SelectedUnit = newUnit;
        }
        else
        {
            Debug.Log("Not enough resources!");
        }
    }
Пример #3
0
    public void SpawnUnit()
    {
        bool canAfford = true;

        for (int i = 0; i < Costs.Count; i++)
        {
            if (!Costs[i].CanAfford())
            {
                canAfford = false;
            }
        }


        if (canAfford)
        {
            for (int i = 0; i < Costs.Count; i++)
            {
                Costs[i].Pay();
            }

            Unit newUnit = Instantiate(Prototype);
            Cell cell    = Map.GetCell(SpawnCoordinate.x = Random.Range(0, 5), SpawnCoordinate.y = Random.Range(0, 5));



            PlayerOwned ownertag = newUnit.GetComponent <PlayerOwned>();
            if (ownertag == null)
            {
                Debug.LogError("Unit needs to have a PlayerOwned component");
            }
            Player owner = GetComponentInParent <Player>();
            ownertag.setOwner(owner);

            newUnit.transform.SetParent(cell.transform, false);
        }
        else
        {
            Debug.Log("Not enough resources!");
        }
    }
Пример #4
0
    public void SpawnUnit(Cell cell)
    {
        bool canAfford = true;

        for (int i = 0; i < Costs.Count; i++)
        {
            if (!Costs[i].CanAfford())
            {
                canAfford = false;
            }
        }

        if (canAfford)
        {
            for (int i = 0; i < Costs.Count; i++)
            {
                Costs[i].Pay();
            }

            Unit newUnit = Instantiate(Prototype);

            PlayerOwned ownerTag = newUnit.GetComponent <PlayerOwned>();
            if (ownerTag == null)
            {
                Debug.LogError("Unit needs to have a PlayerOwned component");
            }
            else
            {
                ownerTag.SetOwner(owner);
            }


            newUnit.transform.SetParent(cell.transform, false);
        }
        else
        {
            Debug.Log("Not enough resources!");
        }
    }
Пример #5
0
 void Start()
 {
     unit      = GetComponent <Unit>();
     ownerData = GetComponent <PlayerOwned>();
 }
Пример #6
0
 public bool IsHostile(PlayerOwned other)
 {
     return(Owner.IsHostile(other.Owner));
 }