Example #1
0
        public async Task SelectChampion(int id)
        {
            switch (loop.CurrentType)
            {
            case PlayLoopType.STANDARD:
                if (!state.Me.Active)
                {
                    break;
                }

                switch (lastGameDto.GameState)
                {
                case GameState.PRE_CHAMP_SELECT:
                    await this.session.GameService.BanChampion(id);

                    break;

                case GameState.CHAMP_SELECT:
                    await this.session.GameService.SelectChampion(id);

                    break;
                }
                break;

            case PlayLoopType.DRAFT:
                var action = draftData.ChampSelectState.GetCurrentAction();
                LcdsServiceObject result;

                if (action == null || action.ActorCellId != draftData.ChampSelectState.MyCellId)
                {
                    result = await this.session.TeambuilderDraftService.SignalChampionPickIntent(id);
                }
                else if (action.Type == ChampSelectActionType.BAN)
                {
                    result = await this.session.TeambuilderDraftService.SelectChampionBan(id);
                }
                else
                {
                    result = await this.session.TeambuilderDraftService.SelectChampionPick(id);
                }
                messages.HandleMessage(result);
                break;
            }
        }