コード例 #1
0
 // Update is called once per frame
 void Update()
 {
     if (fireBoltSelected)
     {
         if (Input.GetMouseButtonUp(0))
         {
             coordinate = GetComponent <Interactable>().boardCamMove.coordinate;
             foreach (GameObject unit in fireBoltUnits)
             {
                 UnitTileCheck UTC          = unit.GetComponent <UnitTileCheck>();
                 Interactable  interactable = unit.GetComponent <Interactable>();
                 if (UTC.coordinate == coordinate)
                 {
                     BoardCameraMovement.boardTile cTile = null;
                     foreach (BoardCameraMovement.boardTile bTile in interactable.boardCamMove.allTiles)
                     {
                         if (coordinate == bTile.pos)
                         {
                             cTile = bTile;
                             break;
                         }
                     }
                     interactable.health = interactable.health - damage;
                     interactable.boardCamMove.newLogEntry(cTile, "firebolt", unit, gameObject);
                     GetComponent <Interactable>().boardCamMove.turnSwitch();
                 }
                 unit.GetComponent <Interactable>().unitSelected = false;
             }
             fireBoltSelected = false;
         }
     }
 }
コード例 #2
0
 public void setInhabitant()
 {
     boardCamMove = board.GetComponent <BoardCameraMovement>();
     foreach (BoardCameraMovement.boardTile bTile in boardCamMove.allTiles)
     {
         if (coord == bTile.pos)
         {
             currentTile      = bTile;
             bTile.inhabitant = gameObject;
         }
     }
 }
コード例 #3
0
    void Update()
    {
        if (health > maxHealth)
        {
            health = maxHealth;
        }
        if (health <= 0)
        {
            print(":(");
            switch (faction)
            {
            case "wizard":
                boardCamMove.wizardUnits.Remove(gameObject);
                boardCamMove.blockedTiles.Remove(coord);
                break;

            case "alien":
                boardCamMove.alienUnits.Remove(gameObject);
                boardCamMove.blockedTiles.Remove(coord);
                break;

            case "robot":
                boardCamMove.robotUnits.Remove(gameObject);
                boardCamMove.blockedTiles.Remove(coord);
                break;
            }
            Destroy(gameObject);
        }
        if (moveSelected)
        {
            coordinate = boardCamMove.coordinate;
            if (Input.GetMouseButtonUp(0))
            {
                UnitTileCheck UTC      = GetComponent <UnitTileCheck>();
                Vector3Int    newCoord = new Vector3Int(coordinate.x, coordinate.y, 0); //Gets coordinate of mouse position
                if (tileRange.Contains(newCoord))
                {
                    Vector3Int prevCoord = coord;
                    coord = new Vector3Int(UTC.coordinate.x, UTC.coordinate.y, 0);
                    transform.position = grid.CellToWorld(coordinate);
                    tilePrev();
                    tileBuffCheck(newCoord);
                    if (boardCamMove.blockedTiles.Contains(newCoord))
                    {
                        StaticDataScript.noFight          = false;
                        StaticDataScript.fighterNum       = 0;
                        StaticDataScript.winHealth        = 0;
                        StaticDataScript.coord            = coord;
                        StaticDataScript.player1          = gameObject.name;
                        StaticDataScript.player1Health    = health;
                        StaticDataScript.player1MaxHealth = maxHealth;
                        StaticDataScript.player1Faction   = faction;
                        StaticDataScript.player1Damage    = damage;
                        StaticDataScript.player1Colour    = colour;
                        fighterNum = 1;
                        //units = GameObject.FindGameObjectsWithTag("Unit");
                        foreach (GameObject unit in units)
                        {
                            Vector3Int enemyCoord = unit.GetComponent <UnitTileCheck>().coordinate;
                            if (newCoord == new Vector3Int(enemyCoord.x, enemyCoord.y, 0))
                            {
                                Interactable interactable = unit.GetComponent <Interactable>();
                                StaticDataScript.player2          = unit.gameObject.name;
                                StaticDataScript.player2Health    = interactable.health;
                                StaticDataScript.player2MaxHealth = interactable.maxHealth;
                                StaticDataScript.player2Faction   = interactable.faction;
                                StaticDataScript.player2Damage    = interactable.damage;
                                StaticDataScript.player2Colour    = interactable.colour;
                                interactable.fighterNum           = 2;
                            }
                        }
                        StaticDataScript.coord = newCoord;
                        fightStarted           = true;
                    }
                    boardCamMove.blockedTiles.Remove(new Vector3Int(coord.x, coord.y, 0));
                    boardCamMove.blockedTiles.Add(newCoord);
                    coord   = grid.WorldToCell(transform.position);
                    coord.z = 0;
                    foreach (BoardCameraMovement.boardTile bTile in boardCamMove.allTiles)
                    {
                        if (bTile.pos == coord)
                        {
                            foreach (BoardCameraMovement.boardTile bTile2 in boardCamMove.allTiles)
                            {
                                if (bTile2.pos == prevCoord)
                                {
                                    bTile2.inhabitant = null;
                                    break;
                                }
                            }
                            currentTile      = bTile;
                            bTile.inhabitant = gameObject;
                            break;
                        }
                    }
                    if (!fightStarted)
                    {
                        boardCamMove.turnSwitch();
                    }
                    boardCamMove.newLogEntry(currentTile, "movement", gameObject, null);
                }
                else
                {
                    print("cannot move to this tile");
                }
                moveSelected = false;
                tilePrev();
            }
        }
        healthPercentage = Mathf.Ceil((health / maxHealth) * 100);
        if (fightStarted)
        {
            SceneManager.SetActiveScene(SceneManager.GetSceneByName("Arena"));
            fightStarted = false;
        }
    }