// Update is called once per frame
 void Update()
 {
     transform.position = HexMapHelper.GetWorldPointFromTile(
         tilePositionObject.GetPivotTilePosition(), tilePositionObject.GetPivotTileLevel())
                          + (HexMapHelper.GetFacingVector(tilePositionObject.GetPivotTilePosition(), hexDirectionObject.GetTileFacing()) * centerOffset);
     triangle.color     = HexMapUI.GetLevelColor(tilePositionObject.GetPivotTileLevel());
     transform.rotation = HexMapHelper.GetRotationFromFacing(tilePositionObject.GetPivotTilePosition(), hexDirectionObject.GetTileFacing());
 }
    public void PositionAndOrientPiece()
    {
        transform.position = HexMapHelper.GetWorldPointFromTile(currentTile, currentLevel);
        gamePieceModel.transform.rotation = HexMapHelper.GetRotationFromFacing(currentTile, currentTileFacing);

        footprint.SetPivotTile(new TileWithFacing()
        {
            position = currentTile, facing = currentTileFacing
        }, currentLevel);
    }
    public void SetDestination(TileCoords tileCoords, TileCoords facingTile, int level)
    {
        destinationTile       = tileCoords;
        destinationFacingTile = facingTile;
        destinationLevel      = level;

        //Position the sprite within the Hex
        sprite.transform.position = HexMapHelper.GetWorldPointFromTile(tileCoords, level) + ((HexMapHelper.GetFacingVector(tileCoords, facingTile) * HexMapHelper.HexWidth * 0.3f));

        //Face the sprite the correct direction
        sprite.transform.rotation = HexMapHelper.GetRotationFromFacing(tileCoords, facingTile);

        //Color the sprite based on height
        sprite.GetComponentInChildren <SpriteRenderer>().color = HexMapUI.GetLevelColor(level);

        SetSpline(sourcePosition, sourceHeading,
                  HexMapHelper.GetWorldPointFromTile(tileCoords, level), HexMapHelper.GetFacingVector(tileCoords, facingTile));
    }
Exemple #4
0
    void Start()
    {
        //Randomly Generate Model
        GameObject prefab = template.modelPrefabs.RandomItem();

        GameObject.Instantiate(prefab, Vector3.zero, Quaternion.identity, modelHolder);

        if (pivotPosition.index == 0)
        {
            pivotPosition = HexMapHelper.GetTileFromWorldPoint(transform.position);
        }
        TileCoords pivotFacing = HexMapHelper.GetNeighborTiles(pivotPosition).RandomItem();

        transform.position             = HexMapHelper.GetWorldPointFromTile(pivotPosition, pivotLevel);
        modelHolder.transform.rotation = HexMapHelper.GetRotationFromFacing(pivotPosition, pivotFacing);

        footprint = new StaticFootprint(template.footprint, pivotPosition, pivotFacing, pivotLevel);
    }
    public static void SpawnMissile(TileCoords tileCoords, TileCoords tileFacing, int level, BaseGamePiece spawningPiece, MissileStats template)
    {
        GameObject newMissile = SimplePool.Spawn(
            instance.missilePrefab,
            Vector3.zero,
            Quaternion.identity,
            instance.gamePieceHolder);

        newMissile.GetComponentInChildren <MissileGamePiece>().currentTileFacing = tileFacing;
        newMissile.GetComponentInChildren <MissileGamePiece>().currentTile       = tileCoords;
        newMissile.GetComponentInChildren <MissileGamePiece>().currentLevel      = level;
        newMissile.GetComponentInChildren <MissileGamePiece>().PositionAndOrientPiece();

        newMissile.GetComponentInChildren <PieceController>().worldBase.transform.position  = HexMapHelper.GetWorldPointFromTile(tileCoords, level);
        newMissile.GetComponentInChildren <PieceController>().worldModel.transform.rotation = HexMapHelper.GetRotationFromFacing(tileCoords, tileFacing);

        newMissile.GetComponentInChildren <NavigationSystem>().GenerateCommandPoints();

        newMissile.GetComponentInChildren <MissileBrain>().FindTarget();
        var selectedCommand = newMissile.GetComponentInChildren <MissileBrain>().SelectCommand();

        newMissile.GetComponentInChildren <PieceController>().SetSelectedCommandPoint(selectedCommand);
    }
 void ResetToGamePiecePosition()
 {
     worldBase.transform.position  = HexMapHelper.GetWorldPointFromTile(gamePiece.currentTile, gamePiece.currentLevel);
     worldModel.transform.rotation = HexMapHelper.GetRotationFromFacing(gamePiece.currentTile, gamePiece.currentTileFacing);
 }