Ejemplo n.º 1
0
        void ScoutEffect(int q, int r, CubeScout scout)
        {
            Vector2Int curr = new Vector2Int(scout.Q, scout.R);
            Vector2Int next = new Vector2Int(q, r);

            if (structureStore.HasStructure(next[0], next[1]))
            {
                boardState.AddNode(q, r, scout.GetPlayer(), scout.GetDamage());
            }
            else
            {
                boardState.AddNode(q, r, scout.GetPlayer(), scout.GetInfluence());
            }
            if (scoutPos.ContainsKey(next))
            {
                RemoveScout(scout, curr);
                RemoveScout(scoutPos[next], next);
            }
            else if (structureStore.HasStructure(next[0], next[1]) && structureStore.GetStructure(next[0], next[1]).GetPlayer() != scout.GetPlayer())
            {
                RemoveScout(scout, curr);
            }
            else
            {
                scoutPos.Remove(curr);
                scout.SetCoords(next[0], next[1]);
                scoutPos[next] = scout;
            }
            scout.DecMoves();
            if (scout.GetMoves() <= 0)
            {
                RemoveScout(scout, next);
            }
        }
Ejemplo n.º 2
0
        public void SpawnScout(Cube cube, Color color)
        {
            float      cubeY   = cube.transform.position.y;
            Vector3    tilePos = boardState.GetNodeTile(cube.Q, cube.R).gameObject.transform.position;
            Vector3    pos     = new Vector3(tilePos.x, cubeY - 0.25f, tilePos.z);
            GameObject scout   = Instantiate(cubeScoutPrefab, pos, cubeScoutPrefab.transform.rotation, this.transform) as GameObject;

            scout.GetComponent <MeshRenderer>().material.SetColor("_BaseColor", color * 5);
            CubeScout currScout = scout.GetComponent <CubeScout>();

            currScout.SetHome(cube.Q, cube.R);
            currScout.SetCoords(cube.Q, cube.R);
            currScout.SetPlayer(cube.Player);
            currScout.SetMoveRate(cube.GetMoveRate());
            currScout.SetMoves(cube.GetNumMoves());
            currScout.AddVisited(cube.Q, cube.R);
            currScout.SetDamage(cube.GetDamage());
            currScout.SetInfluence(cube.GetInfluence());
            scouts.Add(currScout);
            scoutPos[new Vector2Int(currScout.Q, currScout.R)] = currScout;
            StartCoroutine(Drop(currScout, color));
        }