public override void drawMovementIcons(UnitScript selectedUnit)
    {
        //gameControllerRef.printString("Meowsquers");
        for (int i = 0; i < adjustedLocations.Count; i++)
        {
            bool foundEnemy  = false;
            bool foundFriend = false;
            bool onlyFriends = false;
            for (int j = 0; j < adjustedLocations[i].Count; j++)
            {
                HexTile tile = gameControllerRef.getTileController().getTileFromHexCoord(selectedUnit.getOccupyingHex().getCoords() + adjustedLocations[i][j]);
                if (tile)
                {
                    InteractionIcon.createInteractionIcon("RangedIcon", tile.getCoords(), new Color(0.0f, 1.0f, 0.0f, 1.0f), 0);
                    if (!foundEnemy && !onlyFriends)
                    {
                        if (tile.getOccupyingUnit())
                        {
                            if (tile.getOccupyingUnit().getTeam() != selectedUnit.getTeam())
                            {
                                foundEnemy  = true;
                                foundFriend = false;
                                j           = -1;
                                //clearMovementIcons();
                                continue;
                            }
                            else
                            {
                                foundFriend = true;
                            }
                        }

                        if (foundFriend && j == adjustedLocations[i].Count - 1)
                        {
                            onlyFriends = true;
                            j           = -1;
                            //clearMovementIcons();
                            continue;
                        }
                    }
                    else if (foundEnemy)
                    {
                        tile.switchState(TileState.SELECTABLE);
                        //createMovementIcon("RangedIcon", tile.getCoords(), new Color(0.0f, 1.0f, 0.0f, 1.0f), 0);
                        InteractionIcon.createInteractionIcon("AttackIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                    }
                    else
                    {
                        //createMovementIcon("RangedIcon", tile.getCoords(), new Color(0.0f, 1.0f, 0.0f, 1.0f), 0);
                        InteractionIcon.createInteractionIcon("CrossIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                    }
                }
            }
        }
    }
 public override void drawMovementIcons(UnitScript selectedUnit)
 {
     if (mode == 0)
     {
         for (int i = 0; i < adjustedSelectableLocations.Count; i++)
         {
             HexTile tile = gameControllerRef.getTileController().getTileFromHexCoord(selectedUnit.getCoords() + adjustedSelectableLocations[i]);
             if (tile)
             {
                 InteractionIcon.createInteractionIcon("SelectableIcon", tile.getCoords(), new Color(1.0f, 0.8f, 0.8f, 1.0f), 0);
                 if (tile.getOccupyingUnit())
                 {
                     if (tile.getOccupyingUnitTeam() != selectedUnit.getTeam())
                     {
                         InteractionIcon.createInteractionIcon("CrossIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                     }
                 }
                 else
                 {
                     InteractionIcon.createInteractionIcon("CrossIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                 }
             }
         }
     }
     if (mode == 1)
     {
         //gameControllerRef.printString("radaradaradarada");
         for (int i = 0; i < adjustedRepositionLocations.Count; i++)
         {
             HexTile tile = gameControllerRef.getTileController().getTileFromHexCoord(selectedUnit.getCoords() + adjustedRepositionLocations[i]);
             if (tile)
             {
                 InteractionIcon.createInteractionIcon("PlaceIcon", tile.getCoords(), new Color(1.0f, 0.8f, 0.8f, 1.0f), 0);
                 if (tile.getOccupyingUnit() && tile.getOccupyingUnit() != repositioningUnit)
                 {
                     InteractionIcon.createInteractionIcon("CrossIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                 }
             }
         }
     }
 }
Exemple #3
0
 public override void drawMovementIcons(UnitScript selectedUnit)
 {
     for (int i = 0; i < jumpPositions.Count; i++)
     {
         HexTile tile = gameControllerRef.getTileController().getTileFromHexCoord(selectedUnit.getOccupyingHex().getCoords() + adjustedJumpPositions[i]);
         if (tile)
         {
             InteractionIcon.createInteractionIcon("JumpIcon", tile.getCoords(), new Color(1.0f, 0.0f, 1.0f, 1.0f), 0);
             if (tile.getOccupyingUnit())
             {
                 if (tile.getOccupyingUnit().getTeam() != selectedUnit.getTeam())
                 {
                     InteractionIcon.createInteractionIcon("AttackIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                 }
                 else
                 {
                     InteractionIcon.createInteractionIcon("CrossIcon", tile.getCoords(), new Color(1.0f, 0.0f, 0.0f, 1.0f), 1);
                 }
             }
         }
     }
     //MovementIcon m = new MovementIcon();
     //m.initialize("PlaceIcon", );
 }
    public override void drawMovementIcons(UnitScript selectedUnit)
    {
        for (int i = 0; i < adjustedDirections.Count; i++)
        {
            int     j = 0;
            Vector2 currentTileLoc = selectedUnit.getOccupyingHex().getCoords();
            HexTile lastTile       = null;
            InteractionIcon.createInteractionIcon("PathIcon", selectedUnit.getCoords(), Color.cyan, 3);
            while (j < ranges[i] || ranges[i] == -1)
            {
                currentTileLoc += adjustedDirections[i];

                HexTile currentTile = gameControllerRef.getTileController().getTileFromHexCoord(currentTileLoc);

                //prevTile = currentTile;
                if (currentTile)
                {
                    if (currentTile.getOccupyingUnit())
                    {
                        if (currentTile.getOccupyingUnit().getTeam() != selectedUnit.getTeam())
                        {
                            lastTile = currentTile;
                            InteractionIcon.createInteractionIcon("AttackIcon", currentTile.getCoords(), Color.red, 4);
                        }
                        else
                        {
                            InteractionIcon.createInteractionIcon("CrossIcon", currentTile.getCoords(), Color.red, 4);
                        }
                        break;
                    }
                    lastTile = currentTile;
                }
                else
                {
                    InteractionIcon.createInteractionIcon("CrossIcon", currentTileLoc, Color.red, 4);
                    break;
                }
                j++;
            }

            if (lastTile)
            {
                InteractionIcon m = InteractionIcon.createInteractionIcon("PathConnectionIcon", selectedUnit.getCoords(), Color.cyan, 1);
                Vector2         lastTileCoords  = TileController.hexCoordToPixelCoord(lastTile.getCoords());
                Vector2         startTileCoords = TileController.hexCoordToPixelCoord(selectedUnit.getCoords());

                Vector2 Q    = lastTileCoords - startTileCoords;
                float   dist = Q.magnitude * 100 - 15;
                if (dist < 0)
                {
                    dist = 0;
                }
                float angle = Mathf.Atan2(Q.y, Q.x) * 180 / Mathf.PI;
                //gameControllerRef.printString(dist.ToString());
                m.transform.Rotate(Vector3.forward, angle);
                m.transform.localScale = new Vector2(dist / 24, 1.0f);

                InteractionIcon mHead = InteractionIcon.createInteractionIcon("ArrowHeadIcon", lastTileCoords, Color.cyan, 2, true);
                mHead.transform.Rotate(Vector3.forward, angle);

                InteractionIcon.createInteractionIcon("PathIcon", lastTileCoords, Color.cyan, 1, true);
            }
        }
    }
    public override void drawMovementIcons(UnitScript selectedUnit)
    {
        for (int i = 0; i < adjustedPathList.Count; i++)
        {
            bool    blocked  = false;
            HexTile lastTile = selectedUnit.getOccupyingHex();
            InteractionIcon.createInteractionIcon("PathIcon", selectedUnit.getCoords(), new Color(0.0f, 0.0f, 1.0f, 1.0f), 2);
            for (int j = 0; j < adjustedPathList[i].Count; j++)
            {
                Vector2 tileCoords = selectedUnit.getOccupyingHex().getCoords() + adjustedPathList[i][j].pos;
                HexTile tile       = gameControllerRef.getTileController().getTileFromHexCoord(tileCoords);
                if (tile)
                {
                    Color color = new Color(0.0f, 0.0f, 1.0f, 1.0f);
                    int   depth = 2;//to allow blocked symbols to appear under non-blocked ones
                    if (blocked)
                    {
                        color = new Color(0.2f, 0.2f, 0.2f, 1.0f);
                        depth = 1;
                    }
                    if (tile.getOccupyingUnit())
                    {
                        if (!blocked)
                        {
                            blocked = true;
                            if (tile.getOccupyingUnitTeam() == selectedUnit.getTeam() || !adjustedPathList[i][j].moveable)
                            {
                                InteractionIcon.createInteractionIcon("CrossIcon", tileCoords, new Color(1.0f, 0.0f, 0.0f, 0.4f), 3);
                            }
                            else
                            {
                                InteractionIcon.createInteractionIcon("AttackIcon", tileCoords, new Color(1.0f, 0.0f, 0.0f, 1.0f), 3);
                            }
                        }
                    }

                    Vector2         lastCoords    = TileController.hexCoordToPixelCoord(lastTile.getCoords());
                    Vector2         currentCoords = TileController.hexCoordToPixelCoord(tileCoords);
                    InteractionIcon m             = InteractionIcon.createInteractionIcon("PathConnectionIcon", lastCoords, color, 0, true);

                    Vector2 Q    = currentCoords - lastCoords;
                    float   dist = Q.magnitude * 100;

                    if (adjustedPathList[i][j].moveable)
                    {
                        InteractionIcon.createInteractionIcon("PathSelectableIcon", tileCoords, color, depth);
                        dist -= 15;
                        if (dist < 0)
                        {
                            dist = 0;
                        }
                    }
                    else
                    {
                        InteractionIcon.createInteractionIcon("PathIcon", tileCoords, color, depth);
                    }

                    float angle = Mathf.Atan2(Q.y, Q.x) * 180 / Mathf.PI;
                    gameControllerRef.printString(dist.ToString());
                    m.transform.Rotate(Vector3.forward, angle);
                    m.transform.localScale = new Vector2(dist / 24, 1.0f);

                    lastTile = tile;
                }
                else
                {
                    InteractionIcon.createInteractionIcon("CrossIcon", tileCoords, new Color(1.0f, 0.0f, 0.0f, 0.4f), 3);
                    break;
                }
            }
        }
    }
    public override void drawMovementIcons(UnitScript selectedUnit)
    {
        for (int i = 0; i < adjustedDirections.Count; i++)
        {
            HexTile currentTile = selectedUnit.getOccupyingHex();
            HexTile prevTile    = null;
            //Color drawingColor = Color.yellow;
            Color drawingColor = new Color(0.2f, 0.2f, 0.2f, 1.0f);
            int   j            = 0;
            while (j < ranges[i] || ranges[i] == -1)
            {
                Vector2 currentTileCoords = currentTile.getCoords() + adjustedDirections[i];
                currentTile = gameControllerRef.getTileController().getTileFromHexCoord(currentTile.getCoords() + adjustedDirections[i]);
                if (j >= blockingExtent[i])
                {
                    if (currentTile)
                    {
                        if (currentTile.getOccupyingUnit())
                        {
                            if (currentTile.getOccupyingUnit().getTeam() == selectedUnit.getTeam())
                            {
                                InteractionIcon.createInteractionIcon("CrossIcon", currentTileCoords, Color.red, 4);
                                break;
                            }
                            else
                            {
                                InteractionIcon.createInteractionIcon("AttackIcon", currentTileCoords, Color.red, 4);
                                drawingColor = Color.yellow;
                            }
                        }
                        else
                        {
                            drawingColor = Color.yellow;
                        }
                        prevTile = currentTile;
                    }
                    else
                    {
                        InteractionIcon.createInteractionIcon("CrossIcon", currentTileCoords, Color.red, 4);
                        break;
                    }
                }
                else
                {
                    if (currentTile)
                    {
                        prevTile = currentTile;//Have arrow go to the blocked tile
                        if (currentTile.getOccupyingUnit())
                        {
                            InteractionIcon.createInteractionIcon("CrossIcon", currentTileCoords, Color.red, 4);
                            break;
                        }
                        InteractionIcon.createInteractionIcon("CrossIcon", currentTileCoords, new Color(0.2f, 0.2f, 0.2f, 1.0f), 0);
                    }
                    else
                    {
                        InteractionIcon.createInteractionIcon("CrossIcon", currentTileCoords, Color.red, 4);
                        //drawingColor = new Color(0.2f, 0.2f, 0.2f, 1.0f);
                        //prevTile = currentTile;
                        break;
                    }
                }

                j++;
            }

            if (prevTile)
            {
                InteractionIcon m = InteractionIcon.createInteractionIcon("PathConnectionIcon", selectedUnit.getCoords(), drawingColor, 1);
                Vector2         lastTileCoords  = TileController.hexCoordToPixelCoord(prevTile.getCoords());
                Vector2         startTileCoords = TileController.hexCoordToPixelCoord(selectedUnit.getCoords());

                Vector2 Q    = lastTileCoords - startTileCoords;
                float   dist = Q.magnitude * 100 - 15;
                if (dist < 0)
                {
                    dist = 0;
                }
                float angle = Mathf.Atan2(Q.y, Q.x) * 180 / Mathf.PI;
                //gameControllerRef.printString(dist.ToString());
                m.transform.Rotate(Vector3.forward, angle);
                m.transform.localScale = new Vector2(dist / 24, 1.0f);

                InteractionIcon mHead = InteractionIcon.createInteractionIcon("ArrowHeadIcon", lastTileCoords, drawingColor, 2, true);
                mHead.transform.Rotate(Vector3.forward, angle);

                InteractionIcon.createInteractionIcon("PathIcon", lastTileCoords, drawingColor, 3, true);
            }

            InteractionIcon.createInteractionIcon("PathIcon", selectedUnit.getCoords(), drawingColor, 3);
        }
    }