private void AutoThrowout() { if (null == mAutoThrow) { mAutoThrow = ContinueTaskManager.NewTask().AppendFuncTask(() => AutoThrowoutTask()); } if (DataCenter.Config.AiAgency && GameCenter.Shortcuts.CheckState(GameSwitchType.AiAgency)) { if (GameCenter.Shortcuts.AiAgency.Holdup(DataCenter.OperateMenu)) { if (DataCenter.CurrOpChair == 0) { mAutoThrow.Start(); } else { GameCenter.Network.C2S.Custom <C2SCustom>().OnGuo(); } } } else if (DataCenter.CurrOpChair == 0 && DataCenter.OneselfData.IsAuto && DataCenter.OperateMenu == 0) { mAutoThrow.Start(); } }
public void OnGetCard(ISFSObject data) { DataCenter.LeaveMahjongCnt--; mData.SetData(data); if (DataCenter.Config.Buzhang) { //补张 if (mBuzhangLogic.ExIsNullOjbect()) { mBuzhangLogic = GameCenter.Network.GetGameResponseLogic <GameLogic_Buzhang>(); } if (mBuzhangLogic.BuzhangQueue.Count > 0) { var delayTimer = DataCenter.Config.TimeBuzhangMessageDelay; GameCenter.Network.SetDelayTime(mBuzhangLogic.BuzhangQueue.Count * delayTimer); if (mGetCardBuzhangTask.ExIsNullOjbect()) { mGetCardBuzhangTask = ContinueTaskManager.NewTask().AppendFuncTask(GetCardBuZhangTask); } mGetCardBuzhangTask.Start(); } else { OnGetCard(); } } else { OnGetCard(); } //手牌检查 CheckHandCards(); }
/// <summary> /// 开始发牌 /// </summary> private void StartSendCard() { if (mSendTask == null) { mSendTask = ContinueTaskManager.NewTask() .AppendTaskFromFunc(Config.MahStartAnimation, (b) => { if (b) { return(TableAnimation); } return(null); }) .AppendTaskFromFunc(Config.MahStartAnimation, (b) => { return(b ? (Func <IEnumerator <float> >)SendCardAnimation : SendCardNoAnimation); }) .SetTaskExecuteType(TaskExecuteType.AsynLine) .SetContainerExeType(ContainerExeType.Single) .CallBack(TidyMahjongCards); } mSendTask.Start(); //重置娱乐房切换房间标志位 GameCenter.DataCenter.Room.YuLeBoutState = false; }
public void OnBuZhangFinish(ISFSObject data) { GameCenter.Network.SetDelayTime(mBuZhangQueue.Count * (0.7f) + 0.2f); if (mBuzhangTask == null) { mBuzhangTask = ContinueTaskManager.NewTask().AppendFuncTask(BuZhangAnimation); } mBuzhangTask.Start(); }
public void OnHu_LastCd(ISFSObject data) { OnHu(data); if (null == mLastCdTask) { mLastCdTask = ContinueTaskManager.NewTask() .AppendFuncTask(() => LiujuTask()) .AppendFuncTask(() => ShowBaoTipTask()) .AppendActionTask(ActionCallback, Config.TimeHuAniInterval); } mLastCdTask.Start(); }
public void OnHu_Zimo(ISFSObject data) { OnHu(data); if (null == mZimoTask) { mZimoTask = ContinueTaskManager.NewTask() .AppendFuncTask(() => ZimoTask()) .AppendFuncTask(() => HandcardCtrlTask()) .AppendFuncTask(() => ShowBaoTipTask()) .AppendFuncTask(() => ZhaNiaoAnimation()) .AppendActionTask(ActionCallback, Config.TimeHuAniInterval); } mZimoTask.Start(); }
public void Show(Sprite sprite) { for (int i = 0; i < Points.Length; i++) { Points[i].gameObject.SetActive(false); } gameObject.SetActive(true); Title.sprite = sprite; if (null == mTask) { mTask = ContinueTaskManager.NewTask().AppendFuncTask(() => PlayTitleAni()); } mTask.Start(); mFlag = true; }
/// <summary> /// 设置分数 /// </summary> private void PlaySetScore(EvtHandlerArgs args) { mScoreArgs = args as SetScoreArgs; var type = (SetScoreType)mScoreArgs.Type; switch (type) { case SetScoreType.EndScore: mScoreArgs.ScoreDic.ExIterationAction((dic) => { this[dic.Key].SetGlod(dic.Value); }); break; case SetScoreType.AddScoreAndEffect: if (null == mScoreEffectTask) { mScoreEffectTask = ContinueTaskManager.NewTask().AppendFuncTask(() => DelaytimePlayEffect()); } mScoreEffectTask.Start(); break; } }
public void OnChangeCardsEnd(ISFSObject data) { mHuanData.SetData(data); GameCenter.Network.SetDelayTime(3.5f); GameCenter.EventHandle.Dispatch((int)UIEventProtocol.SetPlayerFlagState, new PlayerStateFlagArgs() { CtrlState = false }); GameCenter.EventHandle.Dispatch((int)UIEventProtocol.ChangeCardTip, new HuanAndDqArgs() { HuanType = mHuanData.HuanType }); //停止定时任务 GameCenter.Scene.TableManager.StopTimer(); //移除旧手牌数据 for (int i = 0; i < mHuanData.ChangeCards.Length; i++) { DataCenter.OneselfData.HardCards.Remove(mHuanData.ChangeCards[i]); } //添加新手牌数据 for (int i = 0; i < mHuanData.NewCards.Length; i++) { DataCenter.OneselfData.HardCards.Add(mHuanData.NewCards[i]); } //所有玩家牌扣到桌子上 var mahHand = Game.MahjongGroups.PlayerHand; var xzMahHand = mahHand.GetMahHandComponent <MahPlayerHand_Xzmj>(); for (int i = 0; i < DataCenter.MaxPlayerCount; i++) { if (i == 0) { //超时扣牌 if (Game.MahjongGroups.SwitchGorup[0].MahjongList.Count == 0) { xzMahHand.SwitchCardsTimeOut(mHuanData.ChangeCards); Game.MahjongGroups.SwitchGorup[0].AddMahToSwitch(mHuanData.ChangeCards); } } else { //其他家扣牌 int[] array = new int[mHuanData.ChangeCards.Length]; var mahList = Game.MahjongGroups.MahjongHandWall[i].MahjongList; for (int j = 0; j < array.Length; j++) { var item = mahList[j]; item.gameObject.SetActive(false); array[j] = item.Value; } Game.MahjongGroups.SwitchGorup[i].AddMahToSwitch(array); } } //3人血战,换牌动画设置 if (DataCenter.MaxPlayerCount == 3) { var switchGorup = Game.MahjongGroups.SwitchGorup; //将麻将牌放到组中 for (int i = 0; i < DataCenter.MaxPlayerCount; i++) { for (int j = 0; j < switchGorup[i].MahjongCnt; j++) { if (mHuanData.HuanType == 0) { if (i < 2) { switchGorup[i].MahjongList[j].transform.SetParent(switchGorup.Group1); } else { switchGorup[i].MahjongList[j].transform.SetParent(switchGorup.Group2); } } else { if (i == 1) { switchGorup[i].MahjongList[j].transform.SetParent(switchGorup.Group2); } else { switchGorup[i].MahjongList[j].transform.SetParent(switchGorup.Group1); } } } } } Game.MahjongGroups.SwitchGorup.StartRotation(mHuanData.HuanType); if (mHuanCardTask == null) { mHuanCardTask = ContinueTaskManager.NewTask().AppendFuncTask(HuanCardTask); } mHuanCardTask.Start(); //手牌记录 DataCenter.Players.AddRecordMahjongs(); }