예제 #1
0
        /// <summary>
        /// Battles the notify init.
        /// </summary>
        public static void BattleNotifyInit()
        {
            Messenger.AddListener <string>(NotifyTypes.CreateBattle, (fightId) => {
                //获取队伍角色列表
//				RoleData currentRoleData = RoleInfoPanelCtrl.GetCurrentRoleData();
                RoleData currentRoleData = DbManager.Instance.GetHostRoleData();
                currentRoleData.MakeJsonToModel();
                if (currentRoleData == null)
                {
                    return;
                }
                if (currentRoleData.Injury == InjuryType.Moribund)
                {
                    AlertCtrl.Show("你已奄奄一息无法再战!");
                    return;
                }
                //获取战斗数据
//				FightData fightData = new FightData();
//				fightData.Id = fightId;
//				fightData.Type = FightType.Normal;
//				RoleData enemy0 = new RoleData();
//				enemy0.Id = "enemy0";
//				enemy0.Name = "赏金刺客";
//				enemy0.HalfBodyId = "enemy000001";
//				BookData book0 = new BookData();
//				book0.Id = "book20001";
//				book0.Name = "地痞撒泼";
//				book0.IconId = "200000";
//				SkillData skill0 = new SkillData();
//				skill0.Type = SkillType.MagicAttack;
//				skill0.Name = "背负投";
//				BuffData buff0 = new BuffData();
//				buff0.Type = BuffType.Vertigo;
////				buff0.Value = 8888;
////				buff0.FirstEffect = true;
//				buff0.RoundNumber = 3;
//				buff0.Rate = 30;
//				buff0.FirstEffect = true;
//				skill0.DeBuffDatas.Add(buff0);
//				SkillData skill1 = new SkillData();
//				skill1.Type = SkillType.PhysicsAttack;
//				skill1.Name = "抱摔";
//				SkillData skill2 = new SkillData();
//				skill2.Type = SkillType.PhysicsAttack;
//				skill2.Name = "撕咬";
//				book0.Skills.Add(skill0);
//				book0.Skills.Add(skill1);
//				book0.Skills.Add(skill2);
//				enemy0.Books.Add(book0);
//				enemy0.AttackSpeed = 2;
//				enemy0.HP = 10000;
//				enemy0.MaxHP = 10000;
//				WeaponData weapon5 = new WeaponData();
//				weapon5.Id = "weapon5";
//				weapon5.Id = "阔刃刀";
//				weapon5.Width = 360;
//				weapon5.Rates = new float[] { 1, 0.6f, 0.2f, 0.1f };
//				enemy0.Weapon = weapon5;
//				fightData.Enemys = new List<RoleData>() {
//					enemy0
//				};
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
                    BattleMainPanelCtrl.Show(currentRoleData, fightData);
                }, () => {
                    Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, true);
                });
            });

            Messenger.AddListener <RoleData, string>(NotifyTypes.CreateTestBattle, (currentRoleData, fightId) => {
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
                BattleMainPanelCtrl.Show(currentRoleData, fightData);
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, (win, drops, fightData) => {
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
                    //如果普通战斗失败则回之前到过的城镇去疗伤
                    if (fightData.Type == FightType.Normal && !win)
                    {
                        AlertCtrl.Show("江湖凶险, 稍事休息后再出发!", () => {
                            Messenger.Broadcast(NotifyTypes.BackToCity);
                        });
                    }
                    BattleMainPanelCtrl.Hide();
                }, () => {
                    //任务详情界面打开时不呼出角色信息板
                    if (TaskDetailInfoPanelCtrl.Ctrl == null)
                    {
                        Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, false);
                    }
                    Messenger.Broadcast(NotifyTypes.PlayBgm);
                    if (drops.Count > 0)
                    {
                        Messenger.Broadcast <List <DropData> >(NotifyTypes.ShowDropsListPanel, drops);
                    }
                    if (fightData.Type == FightType.Task)
                    {
                        Messenger.Broadcast(NotifyTypes.ReloadTaslDetailInfoData);
                        if (win)
                        {
                            Messenger.Broadcast <string>(NotifyTypes.MakeFightWinedBtnDisable, fightData.Id);
                        }
                    }
                });
            });

            Messenger.AddListener <RoleData>(NotifyTypes.ChangeCurrentTeamRoleInBattle, (roleData) => {
                BattleMainPanelCtrl.ChangeCurrentTeamRole(roleData);
            });

            Messenger.AddListener <int>(NotifyTypes.ChangeCurrentTeamBookInBattle, (index) => {
                BattleMainPanelCtrl.ChangeCurrentTeamBook(index);
            });

            Messenger.AddListener <JArray>(NotifyTypes.SendFightResult, (data) => {
                DbManager.Instance.SendFightResult((bool)data[0], data[1].ToString(), (int)data[2]);
                JArray usedSkillIdData = (JArray)data[3];
                JArray d;
                for (int i = 0; i < usedSkillIdData.Count; i++)
                {
                    d = (JArray)usedSkillIdData[i];
                    DbManager.Instance.UpdateUsedTheSkillRecords(d[0].ToString(), (int)d[1]);
                }
                JArray plusIndexData = (JArray)data[4];
                for (int i = 0; i < plusIndexData.Count; i++)
                {
                    d = (JArray)plusIndexData[i];
                    DbManager.Instance.UpdateWeaponPowerPlusSuccessedRecords((int)d[0], (int)d[1]);
                }
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.SendFightResultEcho, (win, drops, fightData) => {
                //加载动态事件列表
                Messenger.Broadcast <string>(NotifyTypes.GetActiveEventsInArea, UserModel.CurrentUserData.CurrentAreaSceneName);
                Messenger.Broadcast <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, win, drops, fightData);
            });

            Messenger.AddListener(NotifyTypes.BackToCity, () => {
                string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", UserModel.CurrentUserData.CurrentCitySceneId);
                string[] fen   = eventId.Split(new char[] { '_' });
                if (fen.Length >= 3)
                {
                    string areaName = fen[0];
                    int x           = int.Parse(fen[1]);
                    int y           = int.Parse(fen[2]);
                    if (UserModel.CurrentUserData != null)
                    {
                        UserModel.CurrentUserData.PositionStatu        = UserPositionStatusType.InCity;
                        UserModel.CurrentUserData.CurrentAreaSceneName = areaName;
                        UserModel.CurrentUserData.CurrentAreaX         = x;
                        UserModel.CurrentUserData.CurrentAreaY         = y;
                        Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null);
                        Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName);
                    }
                }
            });

            Messenger.AddListener(NotifyTypes.BattleFaild, () => {
                BattleMainPanelCtrl.MakeFaild();
            });

            Messenger.AddListener <string>(NotifyTypes.MakePopRole, (dieRoleId) => {
                RoleInfoPanelCtrl.MakePopRole(dieRoleId);
            });
        }
예제 #2
0
        /// <summary>
        /// Scenes the notify init.
        /// </summary>
        public static void RoleNotifyInit()
        {
            Messenger.AddListener <bool>(NotifyTypes.CallRoleInfoPanelData, (isfighting) => {
                DbManager.Instance.CallRoleInfoPanelData(isfighting);
            });

            Messenger.AddListener <JObject, bool>(NotifyTypes.CallRoleInfoPanelDataEcho, (obj, isfighting) => {
                RoleInfoPanelCtrl.Show((JArray)obj["data"], isfighting);
                if (!isfighting)
                {
                    Messenger.Broadcast(NotifyTypes.ShowTaskBtnPanel);
                }
            });

            Messenger.AddListener(NotifyTypes.HideRoleInfoPanel, () => {
                RoleInfoPanelCtrl.MoveDown();
                Messenger.Broadcast(NotifyTypes.HideTaskBtnPanel);
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeChangeRoleEnable, (enable) => {
                RoleInfoPanelCtrl.MakeChangeRoleEnable(enable);
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeChangeBookEnable, (enable) => {
                RoleInfoPanelCtrl.MakeChangeBookEnable(enable);
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeRoleInfoPanelDisable, (dis) => {
                RoleInfoPanelCtrl.MakeDisable(dis);
            });

            Messenger.AddListener <string>(NotifyTypes.GetRolesOfWinShopPanelData, (cityId) => {
                DbManager.Instance.GetRolesOfWinShopPanelData(cityId);
            });

            Messenger.AddListener <List <RoleData> >(NotifyTypes.GetRolesOfWinShopPanelDataEcho, (roles) => {
                RolesOfWinShopPanelCtrl.Show(roles);
            });

            Messenger.AddListener(NotifyTypes.GetWeaponsListPanelData, () => {
                DbManager.Instance.GetWeaponsListPanelData();
            });

            Messenger.AddListener <List <WeaponData>, RoleData>(NotifyTypes.GetWeaponsListPanelDataEcho, (weapons, host) => {
                WeaponListPanelCtrl.Show(weapons, host);
            });

            Messenger.AddListener <int, string>(NotifyTypes.ReplaceWeapon, (id, beUsingByRoleId) => {
                DbManager.Instance.ReplaceWeapon(id, beUsingByRoleId);
            });

            Messenger.AddListener <int>(NotifyTypes.TakeOffWeapon, (id => {
                DbManager.Instance.TakeOffWeapon(id);
            }));

            Messenger.AddListener(NotifyTypes.GetBooksListPanelData, () => {
                DbManager.Instance.GetBooksListPanelData();
            });

            Messenger.AddListener <List <BookData> >(NotifyTypes.GetBooksListPanelDataEcho, (books) => {
                BookListPanelCtrl.Show(books);
            });

            Messenger.AddListener <int>(NotifyTypes.UseBook, (id => {
                DbManager.Instance.UseBook(id);
            }));

            Messenger.AddListener <int>(NotifyTypes.UnuseBook, (id => {
                DbManager.Instance.UnuseBook(id);
            }));

            Messenger.AddListener <string>(NotifyTypes.GetBooksOfForbiddenAreaPanelData, (cityId) => {
                DbManager.Instance.GetBooksOfForbiddenAreaPanelData(cityId);
            });

            Messenger.AddListener <List <BookData>, RoleData>(NotifyTypes.GetBooksOfForbiddenAreaPanelDataEcho, (books, host) => {
                BooksOfForbiddenAreaPanelCtrl.Show(books, host);
            });

            Messenger.AddListener <int>(NotifyTypes.InviteRole, (id) => {
//                DbManager.Instance.InviteRole(id);
                DbManager.Instance.InviteRoleWithResources(id);
            });

            Messenger.AddListener <int>(NotifyTypes.ReadBook, (id => {
                DbManager.Instance.ReadBook(id);
            }));

            Messenger.AddListener(NotifyTypes.GetReadyToTravelPanelData, () => {
                DbManager.Instance.GetReadyToTravelPanelData();
            });

            Messenger.AddListener <List <RoleData>, ItemData>(NotifyTypes.GetReadyToTravelPanelDataEcho, (roles, food) => {
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                ReadyToTravelPanelCtrl.Show(roles, food);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.MakeSelectRoleInTeam, (role) => {
                ReadyToTravelPanelCtrl.MakeSelectRole(role);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.MakeUnSelectRoleInTeam, (role) => {
                ReadyToTravelPanelCtrl.MakeUnSelectRole(role);
            });

            Messenger.AddListener <JArray>(NotifyTypes.ChangeRolesSeatNo, (ids) => {
                DbManager.Instance.ChangeRolesSeatNo(ids);
            });

            Messenger.AddListener(NotifyTypes.ChangeRolesSeatNoEcho, () => {
                Messenger.Broadcast(NotifyTypes.HideCityScenePanel);
                Messenger.Broadcast(NotifyTypes.FromCitySceneBackToArea);
                Messenger.Broadcast(NotifyTypes.CallAreaMainPanelData);
                ReadyToTravelPanelCtrl.Hide();
            });

            Messenger.AddListener(NotifyTypes.GetHospitalPanelData, () => {
                DbManager.Instance.GetHospitalPanelData();
            });

            Messenger.AddListener <List <RoleData> >(NotifyTypes.GetHospitalPanelDataEcho, (roles) => {
                HospitalPanelCtrl.Show(roles);
            });

            Messenger.AddListener <int>(NotifyTypes.CureRole, (id => {
                DbManager.Instance.CureRole(id);
            }));

            Messenger.AddListener(NotifyTypes.GetBagPanelData, () => {
                DbManager.Instance.GetBagPanelData();
            });

            Messenger.AddListener <List <ItemData>, double>(NotifyTypes.GetBagPanelDataEcho, (items, silver) => {
                BagPanelCtrl.Show(items, silver);
            });

            Messenger.AddListener <ItemData, bool>(NotifyTypes.ShowItemDetailPanel, (item, fromBag) => {
                ItemDetailPanelCtrl.Show(item, fromBag);
            });

            Messenger.AddListener(NotifyTypes.GetSellItemsPanelData, () => {
                DbManager.Instance.GetSellItemsPanelData();
            });

            Messenger.AddListener <List <ItemData> >(NotifyTypes.GetSellItemsPanelDataEcho, (items) => {
                SellItemsPanelCtrl.Show(items);
            });

            Messenger.AddListener(NotifyTypes.MakeSelectedItemOfSellItemsPanel, () => {
                SellItemsPanelCtrl.MakeSelectedItem();
            });

            Messenger.AddListener <JArray>(NotifyTypes.SellItems, (ids) => {
                DbManager.Instance.SellItems(ids);
            });

            Messenger.AddListener <double>(NotifyTypes.SellItemsEcho, (silver) => {
                SellItemsPanelCtrl.Hide();
                StorePanelCtrl.MakeChangeSilverNum(silver);
            });

            Messenger.AddListener <int>(NotifyTypes.DiscardItem, (id) => {
                DbManager.Instance.DiscardItem(id);
            });

            Messenger.AddListener <BookData>(NotifyTypes.ShowBookDetailPanel, (book) => {
                BookDetailPanelCtrl.Show(book);
            });

            Messenger.AddListener <WeaponData>(NotifyTypes.ShowWeaponDetailPanel, (weapon) => {
                WeaponDetailPanelCtrl.Show(weapon);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.ShowRoleDetailPanel, (role) => {
                RoleDetailPanelCtrl.Show(role);
            });

            Messenger.AddListener <List <DropData> >(NotifyTypes.ShowDropsListPanel, (drops) => {
                DropsListPanelCtrl.Show(drops);
            });

            Messenger.AddListener <int>(NotifyTypes.UseItem, (id => {
                DbManager.Instance.UseItem(id);
            }));

            Messenger.AddListener <string>(NotifyTypes.GetInnInCityData, (cityId) => {
                DbManager.Instance.GetInnInCityData(cityId);
            });

            Messenger.AddListener <List <FloydResult> >(NotifyTypes.GetInnInCityDataEcho, (results) => {
                InnPanelCtrl.Show(results);
            });

            Messenger.AddListener <int, int>(NotifyTypes.GoToCity, (fromIndex, toIndex) => {
                DbManager.Instance.GoToCity(fromIndex, toIndex);
            });

            Messenger.AddListener <SceneData>(NotifyTypes.GoToCityEcho, (scene) => {
                string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", scene.Id);
                string[] fen   = eventId.Split(new char[] { '_' });
                if (fen.Length >= 3)
                {
                    string areaName = fen[0];
                    int x           = int.Parse(fen[1]);
                    int y           = int.Parse(fen[2]);
                    if (UserModel.CurrentUserData != null)
                    {
                        CityScenePanelCtrl.MakeClose();
                        InnPanelCtrl.Hide();
                        UserModel.CurrentUserData.PositionStatu        = UserPositionStatusType.InCity;
                        UserModel.CurrentUserData.CurrentCitySceneId   = scene.Id;
                        UserModel.CurrentUserData.CurrentAreaSceneName = areaName;
                        UserModel.CurrentUserData.CurrentAreaX         = x;
                        UserModel.CurrentUserData.CurrentAreaY         = y;
                        //清空临时事件
                        Messenger.Broadcast(NotifyTypes.ClearDisableEventIdMapping);
                        Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null);
                        Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName);
                    }
                }
            });

            Messenger.AddListener <string>(NotifyTypes.NpcsEventHandler, (npcId) => {
                switch (npcId)
                {
                case "05002001":
                    if (DbManager.Instance.HostData.Occupation == OccupationType.None)
                    {
                        if (!DbManager.Instance.HasAnyTask((new List <string>()
                        {
                            "task_occupation0",
                            "task_occupation1",
                            "task_occupation2",
                            "task_occupation3",
                            "task_occupation4",
                            "task_occupation5"
                        }).ToArray()))
                        {
                            OccupationPanelCtrl.Show();
                        }
                        else
                        {
                            AlertCtrl.Show("去吧去吧,老夫已为你做了引荐");
                        }
                    }
                    else
                    {
                        AlertCtrl.Show(string.Format("你已是{0}{1},可喜可贺啊,哦哈哈哈哈", Statics.GetOccupationName(DbManager.Instance.HostData.Occupation), Statics.GetOccupationDesc(DbManager.Instance.HostData.Occupation)));
                    }
                    break;

                default:
                    break;
                }
            });
        }
예제 #3
0
        /// <summary>
        /// Scenes the notify init.
        /// </summary>
        public static void RoleNotifyInit()
        {
            Messenger.AddListener <bool>(NotifyTypes.CallRoleInfoPanelData, (isfighting) => {
                DbManager.Instance.CallRoleInfoPanelData(isfighting);
            });

            Messenger.AddListener <JObject, bool>(NotifyTypes.CallRoleInfoPanelDataEcho, (obj, isfighting) => {
//                RoleInfoPanelCtrl.Show((JArray)obj["data"], isfighting);
                RolesInfoPanelCtrl.Show((JArray)obj["data"]);
                if (!isfighting)
                {
                    Messenger.Broadcast(NotifyTypes.ShowTaskBtnPanel);
                }
            });

            Messenger.AddListener(NotifyTypes.HideRoleInfoPanel, () => {
//                RoleInfoPanelCtrl.MoveDown();
                RolesInfoPanelCtrl.MoveDown();
                Messenger.Broadcast(NotifyTypes.HideTaskBtnPanel);
            });

            Messenger.AddListener(NotifyTypes.MakeRoleInfoPanelRedPointRefresh, () => {
                RolesInfoPanelCtrl.MakeRefreshRedPoint();
            });

            Messenger.AddListener(NotifyTypes.MakeReviewRole, () => {
                RolesInfoPanelCtrl.MakeReviewRole();
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeChangeRoleEnable, (enable) => {
                RoleInfoPanelCtrl.MakeChangeRoleEnable(enable);
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeChangeBookEnable, (enable) => {
                RoleInfoPanelCtrl.MakeChangeBookEnable(enable);
            });

            Messenger.AddListener <bool>(NotifyTypes.MakeRoleInfoPanelDisable, (dis) => {
                RoleInfoPanelCtrl.MakeDisable(dis);
            });

            Messenger.AddListener <string>(NotifyTypes.GetRolesOfWinShopPanelData, (cityId) => {
                DbManager.Instance.GetRolesOfWinShopPanelData(cityId);
            });

            Messenger.AddListener <List <RoleData> >(NotifyTypes.GetRolesOfWinShopPanelDataEcho, (roles) => {
                roles.Sort((a, b) => b.Id.CompareTo(a.Id));
                RolesOfWinShopPanelCtrl.Show(roles);
            });

            Messenger.AddListener(NotifyTypes.GetWeaponsListPanelData, () => {
                DbManager.Instance.GetWeaponsListPanelData();
            });

            Messenger.AddListener <List <WeaponData>, RoleData>(NotifyTypes.GetWeaponsListPanelDataEcho, (weapons, host) => {
                WeaponListPanelCtrl.Show(weapons, host);
            });

            Messenger.AddListener <int, string>(NotifyTypes.ReplaceWeapon, (id, beUsingByRoleId) => {
                DbManager.Instance.ReplaceWeapon(id, beUsingByRoleId);
            });

            Messenger.AddListener <int>(NotifyTypes.TakeOffWeapon, (id => {
                DbManager.Instance.TakeOffWeapon(id);
                SoundManager.GetInstance().PushSound("ui0008");
            }));

            Messenger.AddListener(NotifyTypes.GetBooksListPanelData, () => {
                DbManager.Instance.GetBooksListPanelData();
            });

            Messenger.AddListener <List <BookData> >(NotifyTypes.GetBooksListPanelDataEcho, (books) => {
                BookListPanelCtrl.Show(books);
            });

            Messenger.AddListener <int>(NotifyTypes.UseBook, (id => {
                DbManager.Instance.UseBook(id);
            }));

            Messenger.AddListener <int>(NotifyTypes.UnuseBook, (id => {
                DbManager.Instance.UnuseBook(id);
                SoundManager.GetInstance().PushSound("ui0008");
            }));

            Messenger.AddListener <string>(NotifyTypes.GetBooksOfForbiddenAreaPanelData, (cityId) => {
                DbManager.Instance.GetBooksOfForbiddenAreaPanelData(cityId);
            });

            Messenger.AddListener <List <BookData>, RoleData>(NotifyTypes.GetBooksOfForbiddenAreaPanelDataEcho, (books, host) => {
                BooksOfForbiddenAreaPanelCtrl.Show(books, host);
            });

            Messenger.AddListener <int>(NotifyTypes.InviteRole, (id) => {
//                DbManager.Instance.InviteRole(id);
                DbManager.Instance.InviteRoleWithResources(id);
            });

            Messenger.AddListener <int>(NotifyTypes.ReadBook, (id => {
                DbManager.Instance.ReadBook(id);
            }));

            Messenger.AddListener(NotifyTypes.GetReadyToTravelPanelData, () => {
                DbManager.Instance.GetReadyToTravelPanelData();
            });

            Messenger.AddListener <List <RoleData>, UserData>(NotifyTypes.GetReadyToTravelPanelDataEcho, (roles, user) => {
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                roles.Sort(sortReadyToTravelRoles);
                ReadyToTravelPanelCtrl.Show(roles, user);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.MakeSelectRoleInTeam, (role) => {
                ReadyToTravelPanelCtrl.MakeSelectRole(role);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.MakeUnSelectRoleInTeam, (role) => {
                ReadyToTravelPanelCtrl.MakeUnSelectRole(role);
            });

            Messenger.AddListener <JArray>(NotifyTypes.ChangeRolesSeatNo, (ids) => {
                DbManager.Instance.ChangeRolesSeatNo(ids);
            });

            Messenger.AddListener(NotifyTypes.EnterAreaFromCity, () => {
                Messenger.Broadcast(NotifyTypes.HideCityScenePanel);
                Messenger.Broadcast(NotifyTypes.FromCitySceneBackToArea);
                Messenger.Broadcast(NotifyTypes.CallAreaMainPanelData);
                ReadyToTravelPanelCtrl.Hide();
            });

            Messenger.AddListener(NotifyTypes.GetHospitalPanelData, () => {
                DbManager.Instance.GetHospitalPanelData();
            });

            Messenger.AddListener <List <RoleData> >(NotifyTypes.GetHospitalPanelDataEcho, (roles) => {
                roles.Sort((a, b) => b.Injury.CompareTo(a.Injury));
                HospitalPanelCtrl.Show(roles);
            });

            Messenger.AddListener <int>(NotifyTypes.CureRole, (id => {
                DbManager.Instance.CureRole(id);
            }));

            Messenger.AddListener(NotifyTypes.RelieveRoles, () => {
                DbManager.Instance.RelieveRoles();
            });

            Messenger.AddListener(NotifyTypes.GetBagPanelData, () => {
                DbManager.Instance.GetBagPanelData();
            });

            Messenger.AddListener <List <ItemData>, double>(NotifyTypes.GetBagPanelDataEcho, (items, silver) => {
                BagPanelCtrl.Show(items, silver);
            });

            Messenger.AddListener <ItemData, bool>(NotifyTypes.ShowItemDetailPanel, (item, fromBag) => {
                ItemDetailPanelCtrl.Show(item, fromBag);
            });

            Messenger.AddListener(NotifyTypes.GetSellItemsPanelData, () => {
                DbManager.Instance.GetSellItemsPanelData();
            });

            Messenger.AddListener <List <ItemData> >(NotifyTypes.GetSellItemsPanelDataEcho, (items) => {
                SellItemsPanelCtrl.Show(items);
            });

            Messenger.AddListener(NotifyTypes.MakeSelectedItemOfSellItemsPanel, () => {
                SellItemsPanelCtrl.MakeSelectedItem();
            });

            Messenger.AddListener <JArray>(NotifyTypes.SellItems, (ids) => {
                DbManager.Instance.SellItems(ids);
            });

            Messenger.AddListener <double>(NotifyTypes.SellItemsEcho, (silver) => {
                SellItemsPanelCtrl.Hide();
                StorePanelCtrl.MakeChangeSilverNum(silver);
                SoundManager.GetInstance().PushSound("ui0005");
            });

            Messenger.AddListener <int>(NotifyTypes.DiscardItem, (id) => {
                DbManager.Instance.DiscardItem(id);
                SoundManager.GetInstance().PushSound("ui0008");
            });

            Messenger.AddListener <BookData>(NotifyTypes.ShowBookDetailPanel, (book) => {
                BookDetailPanelCtrl.Show(book, DbManager.Instance.GetBookExpAndSecrets(book.Id));
            });

            Messenger.AddListener <WeaponData>(NotifyTypes.ShowWeaponDetailPanel, (weapon) => {
                WeaponDetailPanelCtrl.Show(weapon, DbManager.Instance.GetWeaponLV(weapon.Id));
            });

            Messenger.AddListener <WeaponData>(NotifyTypes.WeaponLVUpgrade, (weapon) => {
                DbManager.Instance.WeaponLVUpgrade(weapon);
            });

            Messenger.AddListener <WeaponLVData>(NotifyTypes.WeaponLVUpgradeEcho, (lvData) => {
                WeaponDetailPanelCtrl.WeaponLVUpgrade(lvData);
            });

            Messenger.AddListener <RoleData>(NotifyTypes.ShowRoleDetailPanel, (role) => {
                RoleDetailPanelCtrl.Show(role, DbManager.Instance.GetSecretsBelongBooks(role.ResourceBookDataIds));
            });

            Messenger.AddListener <List <DropData> >(NotifyTypes.ShowDropsListPanel, (drops) => {
                DropsListPanelCtrl.Show(drops);
                SoundManager.GetInstance().PushSound("ui0004");
            });

            Messenger.AddListener <int>(NotifyTypes.UseItem, (id => {
                DbManager.Instance.UseItem(id);
            }));

            Messenger.AddListener <string>(NotifyTypes.GetInnInCityData, (cityId) => {
                DbManager.Instance.GetInnInCityData(cityId);
            });

            Messenger.AddListener <List <FloydResult> >(NotifyTypes.GetInnInCityDataEcho, (results) => {
                InnPanelCtrl.Show(results);
            });

            Messenger.AddListener <int, int>(NotifyTypes.GoToCity, (fromIndex, toIndex) => {
                DbManager.Instance.GoToCity(fromIndex, toIndex);
            });

            Messenger.AddListener <SceneData>(NotifyTypes.GoToCityEcho, (scene) => {
                string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", scene.Id);
                string[] fen   = eventId.Split(new char[] { '_' });
                if (fen.Length >= 3)
                {
                    string areaName = fen[0];
                    int x           = int.Parse(fen[1]);
                    int y           = int.Parse(fen[2]);
                    if (UserModel.CurrentUserData != null)
                    {
                        CityScenePanelCtrl.MakeClose();
                        InnPanelCtrl.Hide();
                        UserModel.CurrentUserData.PositionStatu        = UserPositionStatusType.InCity;
                        UserModel.CurrentUserData.CurrentCitySceneId   = scene.Id;
                        UserModel.CurrentUserData.CurrentAreaSceneName = areaName;
                        UserModel.CurrentUserData.CurrentAreaX         = x;
                        UserModel.CurrentUserData.CurrentAreaY         = y;
                        //清空临时事件
                        Messenger.Broadcast <List <SceneEventType> >(NotifyTypes.ClearDisableEventIdMapping, new List <SceneEventType>()
                        {
                            SceneEventType.DisablePagoda
                        });
                        Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null);
                        Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName);
                    }
                }
            });

            Messenger.AddListener <string>(NotifyTypes.NpcsEventHandler, (npcId) => {
                switch (npcId)
                {
                case "05002001":
                    if (DbManager.Instance.HostData.Occupation == OccupationType.None)
                    {
                        if (!DbManager.Instance.HasAnyTask((new List <string>()
                        {
                            "task_occupation0",
                            "task_occupation1",
                            "task_occupation2",
                            "task_occupation3",
                            "task_occupation4",
                            "task_occupation5"
                        }).ToArray()))
                        {
                            OccupationPanelCtrl.Show();
                        }
                        else
                        {
                            AlertCtrl.Show("去吧去吧,老夫已为你做了引荐");
                        }
                    }
                    else
                    {
                        AlertCtrl.Show(string.Format("你已是{0},可喜可贺啊,哦哈哈哈哈", Statics.GetOccupationDesc(DbManager.Instance.HostData.Occupation)));
                    }
                    break;

                default:
                    break;
                }
            });

            Messenger.AddListener <int>(NotifyTypes.HostRoleUpgrade, (toLv) => {
                DbManager.Instance.HostRoleUpgrade(toLv);
            });

            Messenger.AddListener <RoleData, RoleData>(NotifyTypes.HostRoleUpgradeEcho, (roleData, toData) => {
                RoleUpgradeLvPanelCtrl.Show(roleData, toData);
                SoundManager.GetInstance().PushSound("ui0002");
            });

            Messenger.AddListener(NotifyTypes.OpenRepairBugPanel, () => {
                RepairBugPanelCtrl.Show();
            });

            Messenger.AddListener <BookData, List <SecretData> >(NotifyTypes.GetSecretListPanelData, (book, hasSecrets) => {
                SecretListPanelCtrl.Show(DbManager.Instance.GetEffectiveSecrets(), book, hasSecrets);
            });

            Messenger.AddListener <BookData, List <SecretData> >(NotifyTypes.DealSecretEcho, (book, hasSecrets) => {
                if (RolesInfoPanelCtrl.Ctrl != null)
                {
                    Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, false);
                    Messenger.Broadcast(NotifyTypes.MakeReviewRole);
                }
                Messenger.Broadcast <BookData>(NotifyTypes.ShowBookDetailPanel, book);
                Messenger.Broadcast <BookData, List <SecretData> >(NotifyTypes.GetSecretListPanelData, book, hasSecrets);
            });

            Messenger.AddListener(NotifyTypes.OpenTowerGuiderPanel, () => {
                TowerGuiderPanelCtrl.Show();
                AreaMainPanelCtrl.MakeRefreshDifficultyView();
            });
        }
예제 #4
0
        /// <summary>
        /// Battles the notify init.
        /// </summary>
        public static void BattleNotifyInit()
        {
            Messenger.AddListener <string>(NotifyTypes.CreateBattle, (fightId) => {
                if (BattleFightPanelCtrl.Ctrl != null)
                {
                    Statics.CreatePopMsg(Vector3.zero, "已在战斗中", Color.white, 30);
                    return;
                }
                //获取队伍角色列表
//				RoleData currentRoleData = RoleInfoPanelCtrl.GetCurrentRoleData();
                RoleData currentRoleData = DbManager.Instance.GetHostRoleData();
                if (currentRoleData == null)
                {
                    return;
                }
                currentRoleData.MakeJsonToModel();
                if (currentRoleData.Injury == InjuryType.Moribund)
                {
                    AlertCtrl.Show("你已奄奄一息无法再战!", () => {
                        Messenger.Broadcast(NotifyTypes.BackToCity);
                    });
                    return;
                }
                //获取战斗数据
//				FightData fightData = new FightData();
//				fightData.Id = fightId;
//				fightData.Type = FightType.Normal;
//				RoleData enemy0 = new RoleData();
//				enemy0.Id = "enemy0";
//				enemy0.Name = "赏金刺客";
//				enemy0.HalfBodyId = "enemy000001";
//				BookData book0 = new BookData();
//				book0.Id = "book20001";
//				book0.Name = "地痞撒泼";
//				book0.IconId = "200000";
//				SkillData skill0 = new SkillData();
//				skill0.Type = SkillType.MagicAttack;
//				skill0.Name = "背负投";
//				BuffData buff0 = new BuffData();
//				buff0.Type = BuffType.Vertigo;
////				buff0.Value = 8888;
////				buff0.FirstEffect = true;
//				buff0.RoundNumber = 3;
//				buff0.Rate = 30;
//				buff0.FirstEffect = true;
//				skill0.DeBuffDatas.Add(buff0);
//				SkillData skill1 = new SkillData();
//				skill1.Type = SkillType.PhysicsAttack;
//				skill1.Name = "抱摔";
//				SkillData skill2 = new SkillData();
//				skill2.Type = SkillType.PhysicsAttack;
//				skill2.Name = "撕咬";
//				book0.Skills.Add(skill0);
//				book0.Skills.Add(skill1);
//				book0.Skills.Add(skill2);
//				enemy0.Books.Add(book0);
//				enemy0.AttackSpeed = 2;
//				enemy0.HP = 10000;
//				enemy0.MaxHP = 10000;
//				WeaponData weapon5 = new WeaponData();
//				weapon5.Id = "weapon5";
//				weapon5.Id = "阔刃刀";
//				weapon5.Width = 360;
//				weapon5.Rates = new float[] { 1, 0.6f, 0.2f, 0.1f };
//				enemy0.Weapon = weapon5;
//				fightData.Enemys = new List<RoleData>() {
//					enemy0
//				};
//                List<RoleData> teams = RoleInfoPanelCtrl.GetRoleDatas();
                List <RoleData> teams             = DbManager.Instance.GetRolesInTeam();
                List <List <SecretData> > secrets = new List <List <SecretData> >();
                for (int i = 0, len = teams.Count; i < len; i++)
                {
                    if (teams[i].IsHost)
                    {
                        WeaponLVData weaponLvData = DbManager.Instance.GetWeaponLV(teams[i].ResourceWeaponDataId);
                        teams[i].CurrentWeaponLV  = weaponLvData.LV;
                    }
                    teams[i].MakeJsonToModel();
                    secrets.Add(DbManager.Instance.GetSecretsBelongBooks(teams[i].ResourceBookDataIds));
                }
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
                Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                SoundManager.GetInstance().PauseBGM();
                SoundManager.GetInstance().PushSound("ui0003");
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
//					BattleMainPanelCtrl.Show(currentRoleData, fightData);
                    List <ItemData> drugs = new List <ItemData>();
//                    drugs.Add(JsonManager.GetInstance().GetMapping<ItemData>("ItemDatas", "100001"));
//                    drugs.Add(JsonManager.GetInstance().GetMapping<ItemData>("ItemDatas", "100002"));
//                    drugs.Add(JsonManager.GetInstance().GetMapping<ItemData>("ItemDatas", "100003"));
                    List <ItemData> allVulnerary = DbManager.Instance.GetItems(ItemType.Drug);
                    for (int i = 0; i < 3; i++)
                    {
                        if (allVulnerary.Count > i)
                        {
                            drugs.Add(allVulnerary[i]);
                        }
                        else
                        {
                            break;
                        }
                    }
                    //处理通天塔量子强度影响的敌人成长率
                    if (UserModel.CurrentUserData.CurrentAreaSceneName == "Area31")
                    {
                        int difficulty = PlayerPrefs.GetInt("TowerDifficulty");
                        float growUp;
                        switch (difficulty)
                        {
                        case 0:
                        default:
                            growUp = 1;
                            break;

                        case 1:
                            growUp = 2;
                            break;

                        case 2:
                            growUp = 4;
                            break;
                        }
                        for (int i = 0, len = fightData.Enemys.Count; i < len; i++)
                        {
                            fightData.Enemys[i].SetGrowUp(growUp);
                        }
                    }
                    BattleFightPanelCtrl.Show(fightData, teams, secrets, fightData.Enemys, drugs, DbManager.Instance.GetProp(PropType.LimePowder));
                    PlayerPrefs.SetString("BattleIsGoingOn_FightFlag_For_" + DbManager.Instance.HostData.Id, fightId);
                }, () => {
//					Messenger.Broadcast<bool>(NotifyTypes.CallRoleInfoPanelData, true);
                });
            });

            Messenger.AddListener <List <RoleData>, string>(NotifyTypes.CreateTestBattle, (roles, fightId) => {
//                List<List<SecretData>> secrets = new List<List<SecretData>>();
//                for (int i = 0, len = roles.Count; i < len; i++) {
//                    secrets.Add(DbManager.Instance.GetSecretsBelongBooks(roles[i].ResourceBookDataIds));
//                }
                TextAsset asset = Resources.Load <TextAsset>("Data/Json/TestSecrets");
                List <List <SecretData> > secrets = PlayerPrefs.GetString("FightEditorUseSecret") == "true" ? JsonManager.GetInstance().DeserializeObject <List <List <SecretData> > >(asset.text) : new List <List <SecretData> >();
                FightData fightData = JsonManager.GetInstance().GetMapping <FightData>("Fights", fightId);
                fightData.MakeJsonToModel();
//				BattleMainPanelCtrl.Show(currentRoleData, fightData);
                List <ItemData> drugs = new List <ItemData>();
                drugs.Add(JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", "100001"));
                drugs.Add(JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", "100002"));
                drugs.Add(JsonManager.GetInstance().GetMapping <ItemData>("ItemDatas", "100003"));

                for (int i = 0, len = fightData.Enemys.Count; i < len; i++)
                {
                    fightData.Enemys[i].SetGrowUp(PlayerPrefs.GetFloat("FightEditorTestGroupUp"));
                }
                BattleFightPanelCtrl.Show(fightData, roles, secrets, fightData.Enemys, drugs, DbManager.Instance.GetProp(PropType.LimePowder));
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, (win, drops, fightData) => {
                if (!win)
                {
                    MaiHandler.SendEvent("FightFail", DbManager.Instance.HostData.Lv.ToString(), fightData.Id);
                }
//				Messenger.Broadcast(NotifyTypes.HideRoleInfoPanel);
                Messenger.Broadcast <System.Action, System.Action>(NotifyTypes.PlayCameraVortex, () => {
                    //如果普通战斗失败则回之前到过的城镇去疗伤
                    if (fightData.Type == FightType.Normal && !win)
                    {
                        AlertCtrl.Show("江湖凶险, 稍事休息后再出发!", () => {
                            Messenger.Broadcast(NotifyTypes.BackToCity);
                            PlayerPrefs.SetString("BattleIsGoingOn_FightFlag_For_" + DbManager.Instance.HostData.Id, "");
                        });
                    }
                    else
                    {
                        PlayerPrefs.SetString("BattleIsGoingOn_FightFlag_For_" + DbManager.Instance.HostData.Id, "");
                    }
//					BattleMainPanelCtrl.Hide();
                    BattleFightPanelCtrl.Hide();
                }, () => {
                    //任务详情界面打开时不呼出角色信息板
                    if (TaskDetailInfoPanelCtrl.Ctrl == null)
                    {
                        Messenger.Broadcast <bool>(NotifyTypes.CallRoleInfoPanelData, false);
                    }
                    Messenger.Broadcast(NotifyTypes.PlayBgm);
                    if (drops.Count > 0)
                    {
                        Messenger.Broadcast <List <DropData> >(NotifyTypes.ShowDropsListPanel, drops);
                    }
                    if (fightData.Type == FightType.Task)
                    {
                        Messenger.Broadcast(NotifyTypes.ReloadTaslDetailInfoData);
                        if (win)
                        {
                            Messenger.Broadcast <string>(NotifyTypes.MakeFightWinedBtnDisable, fightData.Id);
                        }
                    }
                });
            });

            Messenger.AddListener <RoleData>(NotifyTypes.ChangeCurrentTeamRoleInBattle, (roleData) => {
                BattleMainPanelCtrl.ChangeCurrentTeamRole(roleData);
            });

            Messenger.AddListener <int>(NotifyTypes.ChangeCurrentTeamBookInBattle, (index) => {
                BattleMainPanelCtrl.ChangeCurrentTeamBook(index);
            });

            Messenger.AddListener <JArray, List <BookData> >(NotifyTypes.SendFightResult, (data, books) => {
                DbManager.Instance.SendFightResult((bool)data[0], data[1].ToString(), (int)data[2], (int)data[5], books, (float)data[6]);
                JArray usedSkillIdData = (JArray)data[3];
                JArray d;
                for (int i = 0; i < usedSkillIdData.Count; i++)
                {
                    d = (JArray)usedSkillIdData[i];
                    DbManager.Instance.UpdateUsedTheSkillRecords(d[0].ToString(), (int)d[1]);
                }
                JArray plusIndexData = (JArray)data[4];
                for (int i = 0; i < plusIndexData.Count; i++)
                {
                    d = (JArray)plusIndexData[i];
                    DbManager.Instance.UpdateWeaponPowerPlusSuccessedRecords((int)d[0], (int)d[1]);
                }
            });

            Messenger.AddListener <bool, List <DropData>, FightData>(NotifyTypes.SendFightResultEcho, (win, drops, fightData) => {
                //加载动态事件列表
                Messenger.Broadcast <string>(NotifyTypes.GetActiveEventsInArea, UserModel.CurrentUserData.CurrentAreaSceneName);
                Messenger.Broadcast <bool, List <DropData>, FightData>(NotifyTypes.EndBattle, win, drops, fightData);
            });

            Messenger.AddListener(NotifyTypes.BackToCity, () => {
                string eventId = JsonManager.GetInstance().GetMapping <string>("AreaCityPosDatas", UserModel.CurrentUserData.CurrentCitySceneId);
                string[] fen   = eventId.Split(new char[] { '_' });
                if (fen.Length >= 3)
                {
                    string areaName = fen[0];
                    int x           = int.Parse(fen[1]);
                    int y           = int.Parse(fen[2]);
                    if (UserModel.CurrentUserData != null)
                    {
                        UserModel.CurrentUserData.PositionStatu        = UserPositionStatusType.InCity;
                        UserModel.CurrentUserData.CurrentAreaSceneName = areaName;
                        UserModel.CurrentUserData.CurrentAreaX         = x;
                        UserModel.CurrentUserData.CurrentAreaY         = y;
                        Messenger.Broadcast <System.Action <UserData> >(NotifyTypes.UpdateUserData, null);
                        Messenger.Broadcast <string>(NotifyTypes.GoToScene, areaName);
                    }
                }
            });

            Messenger.AddListener(NotifyTypes.BattleFaild, () => {
                BattleMainPanelCtrl.MakeFaild();
            });

            Messenger.AddListener <string>(NotifyTypes.MakePopRole, (dieRoleId) => {
                RoleInfoPanelCtrl.MakePopRole(dieRoleId);
            });
        }