Ejemplo n.º 1
0
    IEnumerator ProcessResult(EnumInfo.TeamType _winTeam, int _loseLife)
    {
        yield return(new WaitForSeconds(2f));

        GameProgress.Instance.EndBattle(_winTeam, _loseLife);
        FinishBattle();
    }
Ejemplo n.º 2
0
    /// <summary>
    /// [레드팀 기준으로]
    /// 오른쪽->왼쪽 $$
    /// 중간->안쪽
    /// </summary>
    public Tile GetMoveAbleTile_ToLeft_ToBack(EnumInfo.TeamType _searchTeam)
    {
        Tile tileTemp = null;

        if (_searchTeam == EnumInfo.TeamType.Red)
        {
            for (int i = (_tileHeight / 2) - 1; i >= 0; i--)
            {
                for (int j = _tileWidth - 1; j >= 0; j--)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }
        else if (_searchTeam == EnumInfo.TeamType.Blue)
        {
            for (int i = _tileHeight / 2; i <= _tileHeight - 1; i++)
            {
                for (int j = _tileWidth - 1; j >= 0; j--)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }

        return(null);
    }
Ejemplo n.º 3
0
    public Tile GetCreateAbleTile(EnumInfo.TeamType _teamTy)
    {
        Tile tileTemp = null;

        if (_teamTy == EnumInfo.TeamType.Red)
        {
            for (int i = 0; i < _tileHeight / 2; i++)
            {
                for (int j = _tileWidth - 1; j >= 0; j--)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }
        else if (_teamTy == EnumInfo.TeamType.Blue)
        {
            for (int i = _tileHeight - 1; i >= _tileHeight / 2; i--)
            {
                for (int j = 0; j < _tileWidth; j++)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }

        return(null);
    }
Ejemplo n.º 4
0
    //어쌔신이 이동 가능한 타일 가져오기
    /// <summary>
    /// [레드팀 기준으로]
    /// 왼쪽->오른쪽 $$
    /// 맨 안쪽->중간
    /// </summary>
    public Tile GetMoveAbleTile_ToRight_ToCenter(EnumInfo.TeamType _searchTeam)
    {
        Tile tileTemp = null;

        if (_searchTeam == EnumInfo.TeamType.Red)
        {
            for (int i = 0; i < _tileHeight / 2; i++)
            {
                for (int j = 0; j < _tileWidth; j++)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }
        else if (_searchTeam == EnumInfo.TeamType.Blue)
        {
            for (int i = _tileHeight - 1; i >= _tileHeight / 2; i--)
            {
                for (int j = 0; j < _tileWidth; j++)
                {
                    tileTemp = GetTile(j, i);
                    if (!tileTemp.hasUnit)
                    {
                        return(tileTemp);
                    }
                }
            }
        }

        return(null);
    }
Ejemplo n.º 5
0
    public void EndBattle(EnumInfo.TeamType _winTeam, int _discountLife)
    {
        _round++;

        SetPlayerInfoUI(true);

        UnitManager.Instance.FinishBattle();
        TileManager._Instance.EndBattle();

        if (_winTeam == EnumInfo.TeamType.Red)
        {
            _bluePlayer._Hp -= _discountLife;
        }
        else
        {
            _redPlayer._Hp -= _discountLife;
        }
        SetRoundUI();

        if (_redPlayer._Hp <= 0)
        {
            EndGame(EnumInfo.TeamType.Blue);
        }
        else if (_bluePlayer._Hp <= 0)
        {
            EndGame(EnumInfo.TeamType.Red);
        }
        else
        {
            DrawRedPlayer();
        }
    }
Ejemplo n.º 6
0
    public void DrawRedPlayer()
    {
        _drawTeam = EnumInfo.TeamType.Red;

        SetBlind(false, true);

        _playerDrawManager.SetPlayerDraw(_redPlayer._DeckManager._Deck, EnumInfo.TeamType.Red, ActiveAddTurnButton);
    }
Ejemplo n.º 7
0
    public void DrawBluePlayer()
    {
        _drawTeam = EnumInfo.TeamType.Blue;

        SetBlind(true, false);

        _playerDrawManager.SetPlayerDraw(_bluePlayer._DeckManager._Deck, EnumInfo.TeamType.Blue, ActiveAddTurnButton);
    }
Ejemplo n.º 8
0
    public void Init(EnumInfo.TeamType _teamTy)
    {
        _teamType = _teamTy;
        _maxHp    = 5;
        _hp       = _maxHp;

        _deckManager.SetAllDeck();
    }
Ejemplo n.º 9
0
    public void SetUnitData(DeckData _deckDa, EnumInfo.TeamType _team)
    {
        _spawnTeam = _team;

        _deckData = _deckDa;

        _unitIdxText.text      = _deckDa._unit.UnitName;
        _maxReinforceText.text = string.Format("최대 강화 [{0}]", _deckDa._unit.MaxReinforce);
    }
Ejemplo n.º 10
0
    public void SetUnit(string _unitIdx, EnumInfo.TeamType _teamTy)
    {
        //UnitData _uniData= DataManager.Instance.GetUnitDataWithUnitIdx(_unitIdx);

        hasUnit = true;

        _unitIndex = UnitManager.Instance.CreateUnitWithUnitIdx(_unitIdx, this, _teamTy);
        _unitIndex.gameObject.SetActive(true);

        _unitIndex.SetTile(this);

        _tileSpriteRenderer.color = Color.black;

        _tileIndexType = TileIndexType.Unit;
    }
Ejemplo n.º 11
0
    public void SetPlayerDraw(DeckData[] _playerDeck, EnumInfo.TeamType _drawTeam, System.Action _drawCall)
    {
        _nowPlayerDeck = _playerDeck;

        _nowTeam = _drawTeam;

        _canChoiceDecks = GetRandomDeck(_playerDeck);

        _reDrawButton.gameObject.SetActive(true);
        for (int i = 0; i < _unitCardUIs.Length; i++)
        {
            _unitCardUIs[i].gameObject.SetActive(true);
            _unitCardUIs[i].SetUnitData(_canChoiceDecks[i], _drawTeam);
            _unitCardUIs[i].CreateEvent += SelectDeckCall;
        }

        _drawFunc = _drawCall;
    }
Ejemplo n.º 12
0
    public void InitUnit(EnumInfo.TeamType _tType)
    {
        _tr       = transform;
        _unitData = DataManager.Instance.GetUnitDataWithUnitIdx(_unitIdx);
        _teamType = _tType;

        _stateMgr     = GetComponentInChildren <StateManager>();
        _animMgr      = GetComponentInChildren <AnimManager>();
        _behaviourMgr = GetComponentInChildren <BehaviourManager>();
        _moveMgr      = GetComponentInChildren <MoveManager>();
        _seeker       = GetComponentInChildren <Seeker>();

        _stateMgr.InitStateMgr(this);
        _animMgr.InitAnimMgr(this);
        _behaviourMgr.InitBehaviourMgr(this);
        _moveMgr.InitMoveMgr(this);


        if (_unitData.DamageType.Equals("Physic"))
        {
            _normalDamage.Type = EnumInfo.DamageType.Physic;
        }
        else
        {
            _normalDamage.Type = EnumInfo.DamageType.Magic;
        }
        _normalDamage.DamagePower  = _unitData.Damage;
        _normalDamage.ResourceUnit = this;

        if (_unitData.SkillDamageType.Equals("Physic"))
        {
            _skillDamage.Type = EnumInfo.DamageType.Physic;
        }
        else
        {
            _skillDamage.Type = EnumInfo.DamageType.Magic;
        }

        _skillDamage.DamagePower  = _unitData.SkillDamage;
        _skillDamage.ResourceUnit = this;
    }
Ejemplo n.º 13
0
    public Tile GetAssasinMoveTile(EnumInfo.TeamType _searchTeam, bool _startLeft, bool _startBack)
    {
        if (_startLeft && _startBack)
        {
            return(_tileGroup.GetMoveAbleTile_ToRight_ToCenter(_searchTeam));
        }
        else if (!_startLeft && _startBack)
        {
            return(_tileGroup.GetMoveAbleTile_ToLeft_ToCenter(_searchTeam));
        }
        else if (!_startLeft && !_startBack)
        {
            return(_tileGroup.GetMoveAbleTile_ToLeft_ToBack(_searchTeam));
        }
        else if (_startLeft && !_startBack)
        {
            return(_tileGroup.GetMoveAbleTile_ToRight_ToBack(_searchTeam));
        }

        return(null);
    }
Ejemplo n.º 14
0
    public Unit CreateUnitWithUnitIdx(string _uIdx, Tile _t, EnumInfo.TeamType _tType)
    {
        //        ....
        Unit _unit = BringAbleToUseUnit(_uIdx);

        _unit.InitUnit(_tType);
        _unit.SetTile(_t);

        _curUnitsOnTile.Add(_unit);

        switch (_tType)
        {
        case EnumInfo.TeamType.Red:
            _curRedUnitsOnTile.Add(_unit);
            break;

        case EnumInfo.TeamType.Blue:
            _curBlueUnitsOnTile.Add(_unit);
            break;
        }

        return(_unit);
    }
Ejemplo n.º 15
0
 public void StartGame()
 {
     Debug.Log("StartGame()");
     _curTurnTeamType = Random.Range(0, 2) == 0 ? EnumInfo.TeamType.Red : EnumInfo.TeamType.Blue;
 }
Ejemplo n.º 16
0
 public void Initialize(EnumInfo.TeamType _winTeam)
 {
     _winTeamText.text = string.Format("{0} Team\nw WIN", _winTeam);
 }
Ejemplo n.º 17
0
 public void CreateUnit(string _unitIdx, EnumInfo.TeamType _teamTy)
 {
     _tileGroup.GetCreateAbleTile(_teamTy).SetUnit(_unitIdx, _teamTy);
 }
Ejemplo n.º 18
0
 public void EndGame(EnumInfo.TeamType _winTeam)
 {
     _gameEndUI.gameObject.SetActive(true);
     _gameEndUI.Initialize(_winTeam);
 }