Пример #1
0
    public override void Death()
    {
        for (int i = 0; i < Tactical_Head.GetPlayerCount(); i++)
        {
            Unit_Manager Enemy = Tactical_Head.GetPlayer(i);
            if (Mathf.Abs(x - Enemy.x) <= 3 && Mathf.Abs(y - Enemy.y) <= 3)
            {
                Enemy.pressure -= 10;
            }
        }

        for (int i = 0; i < Tactical_Head.GetEnemyCount(); i++)
        {
            Unit_Manager Team = Tactical_Head.GetEnemy(i);
            if (Mathf.Abs(x - Team.x) <= 1 && Mathf.Abs(y - Team.y) <= 1)
            {
                Team.pressure += 30;
            }
        }

        _Input.EnemyView -= Sight;
        SEE_ALL          -= Seek;

        Tactical_Head.DeleteEnemy(this);
        base.Death();
    }
Пример #2
0
    public void ReciveTactical(Enemy_Manager _Enemy)
    {
        if (_Text == null)
        {
            _Text = UI_MANAGER.m_UI_MANAGER.Tactical;
        }
        switch (_Attack_Style)
        {
        case Attack_Style.NONE:
            break;

        case Attack_Style.Move_Forward:
            Tactical         = _Enemy.gameObject.AddComponent <Move_Forward>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "전진";
            break;

        case Attack_Style.Charge:
            Tactical         = _Enemy.gameObject.AddComponent <Charge>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "돌격";
            break;

        case Attack_Style.Siege:
            Tactical         = _Enemy.gameObject.AddComponent <Siege>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "포위";
            break;
        }

        switch (_Defense_Style)
        {
        case Defense_Style.NONE:
            break;

        case Defense_Style.Build_Recon:
            Tactical         = _Enemy.gameObject.AddComponent <By_Pass>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "백핸드";
            break;

        case Defense_Style.Shot_Run:
            Tactical         = _Enemy.gameObject.AddComponent <Shot_Run>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "능동방어";
            break;

        case Defense_Style.Bypass:
            Tactical         = _Enemy.gameObject.AddComponent <By_Pass>();
            Tactical._this   = _Enemy;
            _Enemy._Tactical = Tactical;
            _Text.text       = "백핸드";
            break;
        }
    }
Пример #3
0
    public override void Death()
    {
        for (int i = 0; i < Tactical_Head.GetPlayerCount(); i++)
        {
            Unit_Manager Team = Tactical_Head.GetPlayer(i);
            if (Mathf.Abs(x - Team.x) <= 1 && Mathf.Abs(y - Team.y) <= 1)
            {
                Team.pressure += 30;
            }
        }

        for (int i = 0; i < Tactical_Head.GetEnemyCount(); i++)
        {
            Unit_Manager Enemy = Tactical_Head.GetEnemy(i);
            if (Mathf.Abs(x - Enemy.x) <= 3 && Mathf.Abs(y - Enemy.y) <= 3)
            {
                Enemy.pressure -= 10;
            }
        }
        base.Death();
    }
Пример #4
0
    public void SpawnPlayer()
    {
        int count = 0;

        while (count < MaxEnemyCount)
        {
            int _x = Random.Range(ex - radius - 1, ex + radius - 1);
            int _y = Random.Range(ey - radius - 1, ey + radius - 1);

            if (_x < 0)
            {
                _x = 0;
            }
            else if (_x >= _Tile.X)
            {
                _x = _Tile.X - 1;
            }

            if (_y < 0)
            {
                _y = 0;
            }
            else if (_y >= _Tile.Y)
            {
                _y = _Tile.Y - 1;
            }

            if (_Tile.TileMap[_x][_y] == Tile_Manager.Cover_Kind.Default || _Tile.TileMap[_x][_y] == Tile_Manager.Cover_Kind.CanNot)
            {
                if (_Tile.MY_Tile[_x][_y].transform.childCount > 0)
                {
                    continue;
                }
                GameObject P;
                P = Instantiate(Enemy, _Tile.MY_Tile[_x][_y].transform);
                P.GetComponent <Unit_Manager>().Char_Num = count + MaxPlayerCount;
                P.GetComponent <Unit_Manager>()._Class   = _Class[count % 4];
                Tactical_Head.AddEnemy(P.GetComponent <Enemy_Manager>());
                count++;
            }
        }

        count = 0;

        while (count < MaxPlayerCount)
        {
            int _x = Random.Range(x - radius - 1, x + radius - 1);
            int _y = Random.Range(y - radius - 1, y + radius - 1);

            if (_x < 0)
            {
                _x = 0;
            }
            else if (_x >= _Tile.X)
            {
                _x = _Tile.X - 1;
            }

            if (_y < 0)
            {
                _y = 0;
            }
            else if (_y >= _Tile.Y)
            {
                _y = _Tile.Y - 1;
            }

            if (_Tile.TileMap[_x][_y] == Tile_Manager.Cover_Kind.Default || _Tile.TileMap[_x][_y] == Tile_Manager.Cover_Kind.CanNot)
            {
                if (_Tile.MY_Tile[_x][_y].transform.childCount > 0)
                {
                    continue;
                }

                Unit_Manager P;
                P          = Instantiate(Player, _Tile.MY_Tile[_x][_y].transform).GetComponent <Unit_Manager>();
                P.Char_Num = count;
                P._Class   = _Class[count % 4];
                Tactical_Head.AddPlayer(P);
                if (_Directions == directions.North)
                {
                    P.dir = Unit_Manager.Direction.left;
                }
                else if (_Directions == directions.South)
                {
                    P.dir = Unit_Manager.Direction.right;
                }
                else if (_Directions == directions.East)
                {
                    P.dir = Unit_Manager.Direction.up;
                }
                else
                {
                    P.dir = Unit_Manager.Direction.down;
                }
                count++;
            }
        }
    }