/// <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 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(); }
public override void OnEnter(FsmStateArgs args) { var dataCenter = GameCenter.DataCenter; if (dataCenter.Room.RoomType == MahRoomType.YuLe) { GameCenter.Network.CtrlYuleRejoin(true); } //执行继承IGameInfoICycle接口脚本 GameCenter.Lifecycle.GameInfoICycle(); //检查投票解散房间 ContinueTaskManager.NewTask().AppendFuncTask(() => RejionHandup((args as SfsFsmStateArgs).SFSObject)).Start(); //var flag = dataCenter.Players.IsSende() && (dataCenter.Room.RoomType == MahRoomType.YuLe); if (dataCenter.IsReconect) { ChangeState <StateGameReconnect>(args); } else { ChangeState <StateGameReady>(); InviteLastMahjongFriend(); } SetShake(); }
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 override void OnInitalization() { GameCenter.RegisterCycle(this); //注册响应事件 CollectionResponseEvent(); //开启响应事件携程 ContinueTaskManager.NewTask().AppendFuncTask(() => ContinueS2CResponse()).Start(); }
public override void OnEnter(FsmStateArgs args) { //注册事件 GameCenter.EventHandle.Subscriber((int)UIEventProtocol.OnCreateNewGame, OnCreateNewGame); //开始发送消息 Facade.Instance <TWMessageManager>().StartRollNotice(); ContinueTaskManager.NewTask().AppendFuncTask(CheckContinueGame).Start(); mFlag = true; }
public void OnBuZhangFinish(ISFSObject data) { GameCenter.Network.SetDelayTime(mBuZhangQueue.Count * (0.7f) + 0.2f); if (mBuzhangTask == null) { mBuzhangTask = ContinueTaskManager.NewTask().AppendFuncTask(BuZhangAnimation); } mBuzhangTask.Start(); }
private IEnumerator MahjongGameStart() { yield return(new WaitForSeconds(0.1f)); // 初始化任务管理器 ContinueTaskManager.OnInit(); // 初始化系统组件 InitBuiltinComponents(); // 游戏开始 GameProcess.StartupProcess(); }
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_Single_Xlmj(ISFSObject data) { //隐藏听箭头 GameCenter.Scene.MahjongGroups.PlayerHand.OnQueryMahjong(null); GameCenter.Network.SetDelayTime(1f); mSingleHuData.SetData(data); if (null == mHuTask) { mHuTask = ContinueTaskManager.NewTask().AppendFuncTask(() => SingleHuTask_Xlmj()); } mHuTask.Start(); }
public void OnHu_Zimo_Bbmj(ISFSObject data) { OnHu(data); if (null == mZimoTask) { mZimoTask = ContinueTaskManager.NewTask() .AppendFuncTask(() => ZimoTask_Bbmj()) .AppendFuncTask(() => HandcardCtrlTask()) .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; }
public void OnHu_Dianpao(ISFSObject data) { OnHu(data); if (null == mDianpaoTask) { mDianpaoTask = ContinueTaskManager.NewTask() .AppendFuncTask(() => YipaoDuoxiangTask()) .AppendFuncTask(() => DianpaoTask()) .AppendFuncTask(() => HandcardCtrlTask()) .AppendFuncTask(() => ShowBaoTipTask()) .AppendFuncTask(() => ZhaNiaoAnimation()) .AppendActionTask(ActionCallback, Config.TimeHuAniInterval); } mDianpaoTask.Start(); }
/// <summary> /// 如果是继续开局,邀请上一局麻友 /// </summary> private void InviteLastMahjongFriend() { var db = GameCenter.DataCenter; if (db.Room.RoomType == MahRoomType.FanKa) { PlayerPrefs.SetString(Keys.TeaId, ""); if (!string.IsNullOrEmpty(MahjongUtility.RecordCountineGameData)) { //自己是房主,邀请麻友 if (db.OneselfData.IsOwner) { ContinueTaskManager.NewTask().AppendFuncTask(OnInviteFriend).Start(); } } } }
/// <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 Open(ZhaniaoArgs args) { base.Open(); mZhaniaoItems.Clear(); mZhamaList = args.ZhaMaList; mZhongmaList = args.ZhongMaAllList; SetBgLayout(mZhamaList.Count); for (int i = 0; i < mZhamaList.Count; i++) { var item = ItemStore.GetItem <ZhaniaoItem>(i); if (item != null) { mZhaniaoItems.Add(item); item.OnInit(mZhamaList[i]); } } // 动画 ContinueTaskManager.NewTask().AppendFuncTask(ShowCardTask).Start(); // 中码声音 MahjongUtility.PlayEnvironmentSound("biyou"); }
public void StartupTask() { ContinueTaskManager.NewTask().AppendFuncTask(() => ExecutePlaybackFrame()).Start(); }
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(); }