Exemplo n.º 1
0
    public void CalculateDistanceToTargets(int startPointX, int startPointY)
    {
        Vector3 startLoc = new Vector3();
        Vector3 endLoc   = new Vector3();

        startLoc.y = startPointY;
        startLoc.z = startPointX - (startPointY - (Mathf.Abs(startPointY) % 2)) / 2;
        startLoc.x = -startLoc.y - startLoc.z;
        GameObject[] PlayersAlive = GameObject.FindGameObjectsWithTag("Player");
        foreach (GameObject Player in PlayersAlive)
        {
            PlayableCharacter player = Player.GetComponent <PlayableCharacter> ();
            endLoc.y = player.PlayerClass.TileY;
            endLoc.z = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2;
            endLoc.x = -endLoc.y - endLoc.z;
            int distance = (int)(Mathf.Abs(startLoc.x - endLoc.x) + Mathf.Abs(startLoc.y - endLoc.y) + Mathf.Abs(startLoc.z - endLoc.z)) / 2;
            if (distance <= range)
            {
                GameObject     Tile           = GameObject.Find("Hex_" + player.PlayerClass.TileX + "_" + player.PlayerClass.TileY);
                ClickableTile  tile           = Tile.GetComponent <ClickableTile> ();
                GameObject     HighlightTiles = GameObject.Find("_Scripts");
                HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();
                highlightTiles.tileX = tile.tileX;
                highlightTiles.tileY = tile.tileY;
                highlightTiles.ShowHoveringTileSkill();
            }
        }
    }
Exemplo n.º 2
0
    public void CalculateAreaNoMid(int targetX, int targetY)
    {
        Vector3           ret     = new Vector3();
        Vector3           unitRet = new Vector3();
        GameObject        Player  = GameObject.Find(map.selecterPlayer);
        PlayableCharacter player  = Player.GetComponent <PlayableCharacter> ();
        int distanceFromMiddle;
        int distanceFromPlayer;

        ret.y = targetY;
        ret.z = targetX - (targetY - (Mathf.Abs(targetY) % 2)) / 2;
        ret.x = -ret.y - ret.z;

        unitRet.y          = player.PlayerClass.TileY;
        unitRet.z          = player.PlayerClass.TileX - (player.PlayerClass.TileY - (Mathf.Abs(player.PlayerClass.TileY) % 2)) / 2;
        unitRet.x          = -unitRet.y - unitRet.z;
        distanceFromPlayer = (int)((Mathf.Abs(unitRet.x - ret.x) + Mathf.Abs(unitRet.y - ret.y) + Mathf.Abs(unitRet.z - ret.z)) / 2);

        GameObject[] ClickableTiles = GameObject.FindGameObjectsWithTag("Hex");
        foreach (GameObject tile in ClickableTiles)
        {
            ClickableTile clickableTile = tile.GetComponent <ClickableTile> ();
            Vector3       hexLoc        = new Vector3();
            hexLoc.y           = clickableTile.tileY;
            hexLoc.z           = clickableTile.tileX - (clickableTile.tileY - (Mathf.Abs(clickableTile.tileY) % 2)) / 2;
            hexLoc.x           = -hexLoc.y - hexLoc.z;
            distanceFromMiddle = (int)((Mathf.Abs(ret.x - hexLoc.x) + Mathf.Abs(ret.y - hexLoc.y) + Mathf.Abs(ret.z - hexLoc.z)) / 2);
            if (distanceFromMiddle <= area && distanceFromMiddle != 0)
            {
                if (distanceFromPlayer <= skillDistance)
                {
                    GameObject     HighlightTiles = GameObject.Find("_Scripts");
                    HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();
                    highlightTiles.tileX = clickableTile.tileX;
                    highlightTiles.tileY = clickableTile.tileY;
                    highlightTiles.ShowTilesThatWillBeHitSkill();
                }
            }
            if (distanceFromMiddle == 0)
            {
                if (distanceFromPlayer <= skillDistance)
                {
                    GameObject     HighlightTiles = GameObject.Find("_Scripts");
                    HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();
                    highlightTiles.tileX = clickableTile.tileX;
                    highlightTiles.tileY = clickableTile.tileY;
                    highlightTiles.ShowHoveringTileSkill();
                }
            }
        }
    }
Exemplo n.º 3
0
    public void CalculateTrapArea(int playerX, int playerY)
    {
        Vector3 startLoc = new Vector3();

        startLoc.y = playerY;
        startLoc.z = playerX - (playerY - (Mathf.Abs(playerY) % 2)) / 2;
        startLoc.x = -startLoc.y - startLoc.z;
        GameObject[] Tiles = GameObject.FindGameObjectsWithTag("Hex");

        foreach (GameObject tile in Tiles)
        {
            bool          enemyInTile   = false;
            ClickableTile clickableTile = tile.GetComponent <ClickableTile> ();
            Vector3       hexLoc        = new Vector3();
            hexLoc.y = clickableTile.tileY;
            hexLoc.z = clickableTile.tileX - (clickableTile.tileY - (Mathf.Abs(clickableTile.tileY) % 2)) / 2;
            hexLoc.x = -hexLoc.y - hexLoc.z;
            int          n       = (int)(Mathf.Abs(startLoc.x - hexLoc.x) + Mathf.Abs(startLoc.y - hexLoc.y) + Mathf.Abs(startLoc.z - hexLoc.z)) / 2;
            GameObject[] Enemies = GameObject.FindGameObjectsWithTag("Hex");
            foreach (GameObject Enemy in Enemies)
            {
                BaseEnemy enemy = Enemy.GetComponent <BaseEnemy>();
//				&& (enemy.TileY != clickableTile.tileY && enemy.TileX != clickableTile.tileX)
//				enemy.TileX = clickableTile.tileX;
//				enemy.TileY = clickableTile.tileY;
                if (enemy.TileY == clickableTile.tileY && enemy.TileX == clickableTile.tileX)
                {
                    enemyInTile = true;
                }
            }
            if (n == 1 && enemyInTile == false)
            {
                GameObject     HighlightTiles = GameObject.Find("_Scripts");
                HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();
                highlightTiles.tileX = clickableTile.tileX;
                highlightTiles.tileY = clickableTile.tileY;
                highlightTiles.ShowHoveringTileSkill();
            }
        }
    }
Exemplo n.º 4
0
    void RunTargets()
    {
//		GameObject ButtonScripts = GameObject.Find ("ButtonsCanvas");
//		ButtonScripts buttonScripts = ButtonScripts.GetComponent<ButtonScripts> ();
        GameObject     HighlightTiles = GameObject.Find("_Scripts");
        HighlightTiles highlightTiles = HighlightTiles.GetComponent <HighlightTiles> ();


//		Debug.Log(effect);

/*		if (effect == Effects.Attack) {
 *                      buttonScripts.TurnEverythingFalse();
 *                      map.HideAllowedTiles();
 *                      map.ShowAttackableTiles();
 * //		GameObject Unit = GameObject.Find("UnitOne");
 * //		Unit unit = Unit.GetComponent<Unit> ();
 * //		unit.Attack();
 *                      buttonScripts.attackSelected = true;
 * //		changeAreaTiles = false;
 * //		moveSelected = false;
 * //		moveSelected = false;
 *              }
 *              else if (effect == Effects.ChangeArea) {
 * //			Debug.Log(effect);
 *                      buttonScripts.TurnEverythingFalse();
 *                      buttonScripts.changeAreaTiles = true;
 *                      Debug.Log(buttonScripts.changeAreaTiles);
 *                      map.HideAllowedTiles();
 *
 *              }
 */
        switch (target)
        {
        case Targets.Ally:
//				GameObject[] Players = GameObject.FindGameObjectsWithTag("Player");
//				foreach (GameObject PlayerAlly in Players) {
//					GameObject Distance = GameObject.Find ("_Scripts");
//					CalculateDistance distance = Distance.GetComponent<CalculateDistance> ();
//					PlayableCharacter playerAlly = PlayerAlly.GetComponent<PlayableCharacter> ();
//					GameObject TileAlly = GameObject.Find ("Hex_" + playerAlly.PlayerClass.TileX + "_" + playerAlly.PlayerClass.TileY );
//					ClickableTile tileAlly = TileAlly.GetComponent<ClickableTile> ();
            buttonScripts.allySelected = true;
//					distance.range = range;
//					tileAlly.ChangeMaterial();
//					}
            break;

        case Targets.Area:
            GameObject      Area = GameObject.Find("_Scripts");
            ChangeTilesArea area = Area.GetComponent <ChangeTilesArea> ();
            area.area                     = areaRange;
            area.skillDistance            = range;
            buttonScripts.changeAreaTiles = true;
            break;

        case Targets.Cone:
//			Debug.Log("Runeffect Cone");
            GameObject Cone = GameObject.Find("_Scripts");
            Cone       cone = Cone.GetComponent <Cone> ();
            cone.skillDistance         = range;
            buttonScripts.coneSelected = true;
            break;

        case Targets.Enemy:
            buttonScripts.attackSelected = true;
            break;

        case Targets.Line:
            GameObject Line = GameObject.Find("LineRenderer");
            DrawLine   line = Line.GetComponent <DrawLine> ();
            line.skillDistance         = range;
            buttonScripts.drawSelected = true;
            break;

        case Targets.Self:
            selectedTarget = map.selecterPlayer;
            GameObject        PlayerSelf = GameObject.Find(map.selecterPlayer);
            PlayableCharacter playerSelf = PlayerSelf.GetComponent <PlayableCharacter> ();

            GameObject    TileSelf = GameObject.Find("Hex_" + playerSelf.PlayerClass.TileX + "_" + playerSelf.PlayerClass.TileY);
            ClickableTile tileSelf = TileSelf.GetComponent <ClickableTile> ();
            highlightTiles.tileX = tileSelf.tileX;
            highlightTiles.tileY = tileSelf.tileY;
            highlightTiles.ShowHoveringTileSkill();
            break;

        case Targets.AreaMobility:
            GameObject      AreaMobility = GameObject.Find("_Scripts");
            ChangeTilesArea areaMobility = AreaMobility.GetComponent <ChangeTilesArea> ();
            areaMobility.area                  = areaRange;
            areaMobility.skillDistance         = range;
            buttonScripts.changeAreaTilesNoMid = true;
            break;

        case Targets.Trap:
            buttonScripts.trapSelected = true;
            break;

        default:
            break;
        }
    }