示例#1
0
    // calculate reach of a character
    public override void OnSelect()
    {
        animator.Select();
        //Debug.Log("Selected");
        //If selected character has no stamina or is from the other team
        if (stamina == 0 || team != GameManager.currentTeam)
        {
            return;
        }

        GridManager gridM = GridManager.instance;

        reach = gridM.getReach(place, stamina, "token", "enemy");

        foreach (GridManager.GridPoint point in reach.grid)
        {
            point.hex.changeState("reach");
        }

        reach = gridM.getReach(place, stamina);
        foreach (GridManager.GridPoint point in reach.grid)
        {
            Character c = (Character)point.hex.token;
            if (point.hex.state.name == "token" && c.team != this.team)
            {
                point.hex.changeState("enemy");
            }
        }

        locked = true;
    }
示例#2
0
    public void Move(GridManager.Grid path)
    {
        place.changeState("default");
        place.token = null;

        HexGrid destiny = path.grid[path.grid.Count - 1].hex;

        Raycast.block = true;
        this.OnMove(path, destiny);

        place         = destiny;
        destiny.token = this;
        destiny.changeState("token");
        Raycast.block = false;
    }
示例#3
0
    //Check if ability can be used based on its min and max range
    public bool checkRange(int minDistance, int maxDistance)
    {
        GridManager gridM = GridManager.instance;

        range = gridM.getReach(place, minDistance, maxDistance);

        foreach (GridManager.GridPoint point in range.grid)
        {
            if (point.hex.token == target)
            {
                return(true);
            }
        }
        return(false);
    }
示例#4
0
    public override void OnMove(GridManager.Grid path, HexGrid destiny)
    {
        base.OnMove(path, destiny);
        if (reach == null)
        {
            return;
        }

        int qtd = path.grid.Count;

        foreach (GridManager.GridPoint point in reach.grid)
        {
            if (point.hex.state.name == "enemy")
            {
                point.hex.changeState("token");
            }

            if (point.hex.state.name == "reach")
            {
                point.hex.changeState("default");
            }
        }

        stamina -= qtd;
        GridManager gridM = GridManager.instance;

        reach = gridM.getReach(destiny, stamina, "token", "enemy");

        foreach (GridManager.GridPoint point in reach.grid)
        {
            point.hex.changeState("reach");
        }

        reach = gridM.getReach(destiny, stamina);
        foreach (GridManager.GridPoint point in reach.grid)
        {
            Character c = (Character)point.hex.token;
            if (point.hex.state.name == "token" && c.team != this.team)
            {
                point.hex.changeState("enemy");
            }
        }

        if (stamina == 0)
        {
            locked = false;
        }
    }
示例#5
0
    public override void OnPointerEnter(HexGrid hexagon)
    {
        base.OnPointerEnter(hexagon);

        GridManager gridM = GridManager.instance;

        path = gridM.getPath(Token.selected.place, hexagon, "token", "enemy");

        if (path != null)
        {
            foreach (GridManager.GridPoint point in path.grid)
            {
                point.hex.state.changeColor(point.hex, 1);
            }
        }
    }
示例#6
0
    public void OnPointerEnter(HexGrid hexagon, Character target)
    {
        base.OnPointerEnter(Token.selected.place);

        GridManager gridM = GridManager.instance;

        path = gridM.getPath(Token.selected.place, target.place);

        if (path != null)
        {
            foreach (GridManager.GridPoint point in path.grid)
            {
                point.hex.state.changeColor(point.hex, 1);
                if (point.hex.token == target)
                {
                    point.hex.changeState("enemy");
                }
            }
        }
    }
示例#7
0
 public override void OnEnter(HexGrid hexagon)
 {
     colorSet = hexagon.GetColors("enemy");
     path     = null;
     changeColor(hexagon, 0);
 }
示例#8
0
    public void Start()
    {
        event_system.Suscribe(OnEvent);

        // Starting grid and paths (don't use them before that)
        grid_manager.InitGrids();
        path_manager.InitPaths();

        // Setup grid
        curr_grid = grid_manager.GetGridByBridName("grid_1");

        if (curr_grid != null)
        {
            curr_grid.SetGridInfo(world_parent, grid_base_sprite, grid_pressed_sprite);
            curr_grid.SetPrintGrid(true);
        }

        // Get spawn points
        if (map != null)
        {
            MapInstance mi = map.GetComponent <MapInstance>();

            if (mi != null)
            {
                spawn_points = mi.GetSpawners();

                GameObject enemy_killer = mi.GetEnemyKiller();

                if (enemy_killer != null)
                {
                    EnemyKiller e_killer_script = enemy_killer.GetComponent <EnemyKiller>();

                    if (e_killer_script != null)
                    {
                        e_killer_script.SetEventSystem(event_system);
                    }
                }
            }
        }

        // Trackers
        if (map_tracker != null)
        {
            MarkerDetectionScript md = map_tracker.GetComponent <MarkerDetectionScript>();

            if (md != null)
            {
                md.SetEventSystem(event_system);
            }
        }

        if (red_turret_tracker != null)
        {
            MarkerDetectionScript md = red_turret_tracker.GetComponent <MarkerDetectionScript>();

            if (md != null)
            {
                md.SetEventSystem(event_system);
            }
        }

        if (blue_turret_tracker != null)
        {
            MarkerDetectionScript md = blue_turret_tracker.GetComponent <MarkerDetectionScript>();

            if (md != null)
            {
                md.SetEventSystem(event_system);
            }
        }

        if (green_turret_tracker != null)
        {
            MarkerDetectionScript md = green_turret_tracker.GetComponent <MarkerDetectionScript>();

            if (md != null)
            {
                md.SetEventSystem(event_system);
            }
        }

        money = starting_money;

        // UI
        UpdateMoneyUI(money);
        UpdateWaveUI(curr_wave);
    }
示例#9
0
 public virtual void OnMove(GridManager.Grid path, HexGrid destiny)
 {
     this.transform.position = destiny.transform.position;
     //Debug.Log("MOVED");
 }
 public void SetGridManager(GridManager.Grid gm)
 {
     grid = gm;
 }