Core/GameEngine/DataToCtl/PackageRegedit.cs
@@ -29,6 +29,7 @@ public static void Init() { // 登记相应的数据体及对应的数据转逻辑类 Register(typeof(HA40C_tagGCAllFamilyBossInfo), typeof(DTCA40C_tagGCAllFamilyBossInfo)); Register(typeof(HA3B1_tagMCEquipPartStarInfo), typeof(DTCA3B1_tagMCEquipPartStarInfo)); Register(typeof(HA816_tagMCMysticalShopInfo), typeof(DTCA816_tagMCMysticalShopInfo)); Register(typeof(HAC11_tagGCFeastRedPacketInfo), typeof(DTCAC11_tagGCFeastRedPacketInfo)); Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs
New file @@ -0,0 +1,24 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 08, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using Snxxz.UI; public class DTCA40C_tagGCAllFamilyBossInfo : DtcBasic { public override void Done(GameNetPackBasic vNetPack) { base.Done(vNetPack); var package = vNetPack as HA40C_tagGCAllFamilyBossInfo; ModelCenter.Instance.GetModel<AllianceBossModel>().ReceivePackage(package); } } Core/NetworkPackage/DTCFile/ServerPack/HA4_Family/DTCA40C_tagGCAllFamilyBossInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 7242e60b4235aac4c832c4def0475e58 timeCreated: 1552024274 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs
New file @@ -0,0 +1,17 @@ using UnityEngine; using System.Collections; // A4 0C 多仙盟boss活动信息 #tagGCAllFamilyBossInfo public class HA40C_tagGCAllFamilyBossInfo : GameNetPackBasic { public byte IsEnd; // 是否已结束 public HA40C_tagGCAllFamilyBossInfo () { _cmd = (ushort)0xA40C; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out IsEnd, vBytes, NetDataType.BYTE); } } Core/NetworkPackage/ServerPack/HA4_Family/HA40C_tagGCAllFamilyBossInfo.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: c79177aa783d3ce42bab1b560bb10c5b timeCreated: 1552024235 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Fight/Stage/Dungeon/DungeonStage.cs
@@ -245,6 +245,9 @@ case GatherSoulDungeonModel.DUNGEON_MAPID: WindowCenter.Instance.Open<GatherSoulDungeonStageTimeWin>(); break; case AllianceBossModel.DATAMAPID: WindowCenter.Instance.Open<AllianceBossHintWin>(); break; default: WindowCenter.Instance.Open<DungeonStageTimeWin>(); break; System/Activity/ActivityModel.cs
@@ -13,6 +13,7 @@ { HeavenBattleModel battleModel { get { return ModelCenter.Instance.GetModel<HeavenBattleModel>(); } } FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } } AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } } public override void Init() { var dic = DailyQuestConfig.GetValues(); @@ -227,6 +228,10 @@ public bool CheckLimit(int type) { DailyQuestConfig config = DailyQuestConfig.Get(type); if (config == null) { return true; } switch ((DailyQuestType)type) { case DailyQuestType.FairyGrabBoss: @@ -280,6 +285,15 @@ } } break; case DailyQuestType.AllianceBoss1: case DailyQuestType.AllianceBoss2: { if (allianceBossModel.isActivityOver) { return true; } } break; } if (config.UnLockFuncID != 0) { System/Chat/ChatCtrl.cs
@@ -164,6 +164,8 @@ get { return ModelCenter.Instance.GetModel<FriendsModel>(); } } EquipGemModel equipGemModel { get { return ModelCenter.Instance.GetModel<EquipGemModel>(); } } public Dictionary<ChatInfoType, List<string>> achievementRandoms = new Dictionary<ChatInfoType, List<string>>(); private ChatCtrl() @@ -766,23 +768,22 @@ data.richText.Append(content.Substring(index, matchArray[i].Index - index)); index = matchArray[i].Index + matchArray[i].Length; string detail = matchArray[i].Groups[1].Value; string[] strarray = detail.Split('|'); int itemID = 0; if (int.TryParse(strarray[0], out itemID)) var chatSendItem = LitJson.JsonMapper.ToObject<ChatSendItem>(detail); if (chatSendItem.itemId != 0) { ItemConfig cfg = ItemConfig.Get(itemID); if (cfg != null) ItemConfig itemConfig = ItemConfig.Get(chatSendItem.itemId); if (itemConfig != null) { try { string append = string.Format("<a><Word info=item id={0} userdata={4} chatsend=1/>|showitem={0} isbind={1} itemcnt={2} stone={3} userdata={4} suitLv={5} suitCnt={6} place={7} equipwash={8}</a>", strarray[0], strarray[1], strarray[2], strarray[3], strarray[4], strarray[5], strarray[6], strarray[7], strarray[8]); append = UIHelper.AppendStringColor(cfg.ItemColor, append); string append = string.Format("<a><Word info=item id={0} chatsenditem={1} chatsend=1/>|showitem={0} chatsenditem={1}</a>", chatSendItem.itemId, detail); append = UIHelper.AppendStringColor(itemConfig.ItemColor, append); data.richText.Append(append); } catch (Exception e) { data.richText.Append(cfg.ItemName); data.richText.Append(itemConfig.ItemName); DebugEx.Log(e.Message); } } @@ -857,41 +858,21 @@ if (cfg.ItemName == matchArray[i].Groups[1].Value) { bool equip = itemPlaceList[i].packType == PackType.Equip; uint[] stones = equip ? PlayerStoneData.Instance.GetStoneInfo(itemPlaceList[i].itemPlace) : null; _textBuilder.Append(StringUtility.Contact("#item#", itemPlaceList[i].itemId, "|", itemPlaceList[i].isBind, "|", itemPlaceList[i].count, "|", stones != null ? LitJson.JsonMapper.ToJson(stones) : LitJson.JsonMapper.ToJson(new uint[0]), "|")); if (itemPlaceList[i].useDataDict != null && itemPlaceList[i].useDataDict.Count > 0) List<EquipGem> equipGems = null; if (equip) { foreach (int key in itemPlaceList[i].useDataDict.Keys) { List<int> intarray = itemPlaceList[i].useDataDict[key]; var _array = intarray.ToArray(); _textBuilder.Append(StringUtility.Contact("'", key, "':", _array != null ? LitJson.JsonMapper.ToJson(_array) : LitJson.JsonMapper.ToJson(new int[0]))); _textBuilder.Append(","); } equipGemModel.TryGetEquipGems(itemPlaceList[i].itemPlace, out equipGems); } _textBuilder.Append("|"); _textBuilder.Append(itemPlaceList[i].itemPlace); _textBuilder.Append("|"); var _wash = ModelCenter.Instance.GetModel<EquipWashModel>().GetWashEquipInfo(itemPlaceList[i].itemPlace); if (_wash != null && equip) _textBuilder.Append("#item#"); var chatSendItem = new ChatSendItem() { _textBuilder.Append("{"); int[] _array = _wash.proValuelist == null ? new int[0] : new int[_wash.proValuelist.Length]; for (int k = 0; k < _array.Length; k++) { _array[k] = (int)_wash.proValuelist[k].XLAttrValue; } _textBuilder.Append(StringUtility.Contact("\"LV\":", _wash.XLAttrLV, ",\"Place\":", _wash.EquipPlace, ",\"Value\":", LitJson.JsonMapper.ToJson(_array))); _textBuilder.Append("}"); } itemId = (int)itemPlaceList[i].itemId, isBind = (int)itemPlaceList[i].isBind, count = (int)itemPlaceList[i].count, equipGems = equipGems, useData = itemPlaceList[i].itemInfo.userData, }; _textBuilder.Append(LitJson.JsonMapper.ToJson(chatSendItem)); _textBuilder.Append("#item#"); if (_recently != null) { @@ -1159,6 +1140,15 @@ return RedPointState.None; } #endregion public struct ChatSendItem { public int itemId; public int isBind; public int count; public List<EquipGem> equipGems; public string useData; } } public struct ChatExtraData { System/DailyQuest/DailyQuestModel.cs
@@ -90,8 +90,8 @@ DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } TreasureModel treasureModel { get { return ModelCenter.Instance.GetModel<TreasureModel>(); } } FairyLeagueModel fairyLeagueModel { get { return ModelCenter.Instance.GetModel<FairyLeagueModel>(); } } FairyModel fairyModel { get { return ModelCenter.Instance.GetModel<FairyModel>(); } } AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } } public event Action<int> activeValueRewardGotEvent; public event Action<int> dailyQuestProgressUpdateEvent; public event Action totalActiveValueUpdateEvent; @@ -116,6 +116,7 @@ fairyModel.guardSkyCompleteEvent += GuardSkyCompleteEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo += OnRefreshFairyInfo; PlayerDatas.Instance.fairyData.OnRefreshFairyMine += OnRefreshFairyInfo; allianceBossModel.allianceBossStateRefresh += AllianceBossStateRefresh; } public override void UnInit() @@ -127,6 +128,7 @@ fairyModel.guardSkyCompleteEvent -= GuardSkyCompleteEvent; PlayerDatas.Instance.fairyData.OnRefreshFairyInfo -= OnRefreshFairyInfo; PlayerDatas.Instance.fairyData.OnRefreshFairyMine -= OnRefreshFairyInfo; allianceBossModel.allianceBossStateRefresh -= AllianceBossStateRefresh; } public void OnPlayerLoginOk() @@ -228,6 +230,8 @@ case DailyQuestType.FairyFeast: case DailyQuestType.FairyTask: case DailyQuestType.FairyGrabBoss: case DailyQuestType.AllianceBoss1: case DailyQuestType.AllianceBoss2: return defaultUnlock && PlayerDatas.Instance.baseData.FamilyId > 0; case DailyQuestType.RuneTowerSweep: return ModelCenter.Instance.GetModel<RuneTowerModel>().yesterdayPassFloor > 0; @@ -493,6 +497,12 @@ { UpdateDailyActionRedpoint((int)DailyQuestType.GuardSky); UpdateDailyActionRedpoint((int)DailyQuestType.FairyLeague); } private void AllianceBossStateRefresh() { UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss1); UpdateDailyActionRedpoint((int)DailyQuestType.AllianceBoss2); } private void OnPlayerDataRefresh(PlayerDataType _refreshType) @@ -829,6 +839,13 @@ return DailyQuestState.Normal; } break; case DailyQuestType.AllianceBoss1: case DailyQuestType.AllianceBoss2: if (allianceBossModel.isActivityOver) { return DailyQuestState.Completed; } break; } var completedTimes = GetDailyQuestCompletedTimes(_dailyQuestId); @@ -888,6 +905,13 @@ var _fairyModel = ModelCenter.Instance.GetModel<FairyModel>(); switch (type) { case DailyQuestType.AllianceBoss1: case DailyQuestType.AllianceBoss2: if (!PlayerDatas.Instance.fairyData.HasFairy) { return Language.Get("DailyQuestWin_Participate"); } break; case DailyQuestType.GuardSky: if (!PlayerDatas.Instance.fairyData.HasFairy) { System/DailyQuest/DailyQuestWin.cs
@@ -191,7 +191,7 @@ switch ((DailyQuestType)_id) { case DailyQuestType.FairyLand: GotoNormalDungeon(_id); GotoNormalDungeon(_id); break; case DailyQuestType.IceCrystal: WindowCenter.Instance.Open<IceCrystalVeinWin>(); @@ -315,14 +315,20 @@ WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<CrossServerWin>(); break; case DailyQuestType.JadeDynastyBoss: WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3); case DailyQuestType.AllianceBoss1: GotoAllianceBoss(_id, 0); break; case DailyQuestType.JadeDynastyTower: WindowCenter.Instance.Close<DailyQuestWin>(); WindowCenter.Instance.Open<TowerWin>(false, 1); case DailyQuestType.AllianceBoss2: GotoAllianceBoss(_id, 1); break; //case DailyQuestType.JadeDynastyBoss: // WindowCenter.Instance.Close<DailyQuestWin>(); // WindowCenter.Instance.Open<LootPreciousFrameWin>(false, 3); // break; //case DailyQuestType.JadeDynastyTower: // WindowCenter.Instance.Close<DailyQuestWin>(); // WindowCenter.Instance.Open<TowerWin>(false, 1); // break; default: CSharpCallLua.GotoLuaDailyQuest(_id); break; @@ -499,6 +505,13 @@ } } private void GotoAllianceBoss(int id, int lineId) { dungeonModel.currentDungeon = new Dungeon(AllianceBossModel.DATAMAPID, lineId); AllianceBossEntranceWin.dailyQuestId = id; WindowCenter.Instance.Open<AllianceBossEntranceWin>(); } private void GotoTreasureCollectSoul() { var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>(); System/Dungeon/DungeonData.cs
@@ -55,6 +55,7 @@ public int runeMagicEssence; public ServerItem[] itemInfo; public ServerItem[] succItemInfo; public ServerItem[] AuctionItem; public int[] xianyuanCoin; public int sp; public int startRewardLineID; @@ -62,6 +63,7 @@ public int leaderID; public int wheel; public Dictionary<string, AssistPlayer> helpPlayer; public int myMenberCnt; public long totalExp { @@ -105,6 +107,8 @@ public DungeonHurt[] hurtInfo; public int myHurt; public int myHurtEx; public int myRank; public int myMenberCnt; public string topName; public int topScore; public int isFullExp; System/Dungeon/DungeonFightWin.cs
@@ -107,6 +107,7 @@ m_GatherSoulDungeonBehaviour.Display(this); break; case JadeDynastyBossModel.JADEDYNASTY_MAP: case AllianceBossModel.DATAMAPID: m_Inspire.gameObject.SetActive(true); break; default: System/Dungeon/DungeonInspireBehaviour.cs
@@ -55,6 +55,7 @@ { case DemonJarModel.DEMONJAR_MAPID: case JadeDynastyBossModel.JADEDYNASTY_MAP: case AllianceBossModel.DATAMAPID: m_Icon.SetSprite("W_XYGuwu_a2"); break; default: @@ -107,7 +108,8 @@ private bool IsRequireDisplayProgress() { return PlayerDatas.Instance.baseData.MapID == DemonJarModel.DEMONJAR_MAPID || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP; || PlayerDatas.Instance.baseData.MapID == JadeDynastyBossModel.JADEDYNASTY_MAP || PlayerDatas.Instance.baseData.MapID == AllianceBossModel.DATAMAPID; } private void ResetTween() System/Dungeon/DungeonModel.cs
@@ -839,6 +839,12 @@ WindowCenter.Instance.Open<JadeDynastyDamageRankWin>(); } break; case AllianceBossModel.DATAMAPID: if (!WindowCenter.Instance.IsOpen<AllianceBossHintWin>()) { WindowCenter.Instance.Open<AllianceBossHintWin>(); } break; case TreasureModel.TREASURE_MAPID: break; case HeavenBattleModel.HEAVEBATTLE_MAPID: @@ -1048,6 +1054,9 @@ case JadeDynastyTowerModel.DATA_MAPID: WindowCenter.Instance.Open<JadyDynastyTowerVictoryWin>(); break; case AllianceBossModel.DATAMAPID: WindowCenter.Instance.Open<AllianceBossVictoryWin>(); break; default: WindowCenter.Instance.Open<DungeonVictoryWin>(); break; System/Dungeon/TargetBriefInfoWin.cs
@@ -67,7 +67,8 @@ var dataMapId = MapUtility.GetDataMapId(mapId); if (dataMapId == DemonJarModel.DEMONJAR_MAPID || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP || dataMapId == JadeDynastyTowerModel.DATA_MAPID) || dataMapId == JadeDynastyTowerModel.DATA_MAPID || dataMapId == AllianceBossModel.DATAMAPID) { if (_show) { @@ -110,7 +111,8 @@ var dataMapId = MapUtility.GetDataMapId(mapId); if (dataMapId == DemonJarModel.DEMONJAR_MAPID || dataMapId == JadeDynastyBossModel.JADEDYNASTY_MAP || dataMapId == JadeDynastyTowerModel.DATA_MAPID) || dataMapId == JadeDynastyTowerModel.DATA_MAPID || dataMapId == AllianceBossModel.DATAMAPID) { if (!WindowCenter.Instance.IsOpen("DemonJarBossLifeBarWin")) { @@ -328,7 +330,8 @@ var dataMapId = MapUtility.GetDataMapId(); if (dataMapId != DemonJarModel.DEMONJAR_MAPID && dataMapId != JadeDynastyBossModel.JADEDYNASTY_MAP && dataMapId != JadeDynastyTowerModel.DATA_MAPID) && dataMapId != JadeDynastyTowerModel.DATA_MAPID && dataMapId != AllianceBossModel.DATAMAPID) { ShowBossLifeBar(bossInfo, true); } @@ -355,7 +358,8 @@ var dataMapId = MapUtility.GetDataMapId(); if (dataMapId != DemonJarModel.DEMONJAR_MAPID && dataMapId != JadeDynastyBossModel.JADEDYNASTY_MAP && dataMapId != JadeDynastyTowerModel.DATA_MAPID) && dataMapId != JadeDynastyTowerModel.DATA_MAPID && dataMapId != AllianceBossModel.DATAMAPID) { if (bossInfo.npcId != TargetBriefInfo.bossInfo.npcId) { System/FairyAu/AllianceBossEntranceWin.cs
New file @@ -0,0 +1,240 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 08, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AllianceBossEntranceWin : Window { [SerializeField] Text m_ActivityName; [SerializeField] Image m_Background; [SerializeField] Text m_OpenTime; [SerializeField] Text m_EnterTimes; [SerializeField] Text m_LimitLevel; [SerializeField] Text m_Description; [SerializeField] ItemBehaviour[] m_Items; [SerializeField] Button m_Goto; AllianceBossModel allianceBossModel { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } } DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } } DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } public static int dailyQuestId = 0; #region Built-in protected override void BindController() { } protected override void AddListeners() { m_Goto.AddListener(GotoAllianceBoss); } protected override void OnPreOpen() { Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { } #endregion void Display() { DisplayBase(); DisplayEnterTimes(); } void DisplayBase() { var config = DailyQuestConfig.Get(dailyQuestId); m_ActivityName.text = config.Title; DailyQuestOpenTime openTime; if (dailyQuestModel.TryGetOpenTime(dailyQuestId, out openTime)) { if (openTime.always) { m_OpenTime.text = Language.Get("DailyQuest_NoTimeLimit"); } else { var week = (int)TimeUtility.ServerNow.DayOfWeek; var openTimes = openTime.GetHourMinuteByWeek(week); if (openTimes != null) { var stringArray = new string[openTimes.Count]; for (int i = 0; i < openTimes.Count; i++) { stringArray[i] = openTimes[i].ToString(); } m_OpenTime.text = string.Join(",", stringArray); } } } switch ((DailyQuestType)dailyQuestId) { case DailyQuestType.AllianceBoss1: m_Background.SetSprite("AllianceBossBG1"); break; case DailyQuestType.AllianceBoss2: m_Background.SetSprite("AllianceBossBG2"); break; } var dungeon = dungeonModel.currentDungeon; var dungeonId = dungeonModel.GetDungeonId(dungeon); var dungeonConfig = DungeonConfig.Get(dungeonId); if (dungeonConfig != null) { var levelLimitMin = dungeonConfig.LVLimitMin; var playerLevel = PlayerDatas.Instance.baseData.LV; m_LimitLevel.color = playerLevel >= levelLimitMin ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red, true); m_Description.text = dungeonConfig.Description; for (int i = 0; i < m_Items.Length; i++) { var behaviour = m_Items[i]; if (i < dungeonConfig.Rewards.Length) { behaviour.gameObject.SetActive(true); behaviour.showCount = false; behaviour.SetItem(dungeonConfig.Rewards[i], 0); } else { behaviour.gameObject.SetActive(false); } } } } void DisplayEnterTimes() { var enterTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId); var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId); m_EnterTimes.text = StringUtility.Contact(totalTimes - enterTimes, "/", totalTimes); m_EnterTimes.color = (totalTimes - enterTimes) > 0 ? UIHelper.GetUIColor(TextColType.NavyBrown) : UIHelper.GetUIColor(TextColType.Red); } private void GotoAllianceBoss() { var error = 0; if (TestEnterAllianceBoss(dailyQuestId, out error)) { if ((DailyQuestType)dailyQuestId == DailyQuestType.AllianceBoss1) { dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 0); } else { dungeonModel.SingleChallenge(AllianceBossModel.DATAMAPID, 1); } } else { DisplayErrorTip(error); } } bool TestEnterAllianceBoss(int id, out int error) { error = 0; var lineId = 0; var dungeonId = 0; switch ((DailyQuestType)id) { case DailyQuestType.AllianceBoss1: lineId = 0; break; case DailyQuestType.AllianceBoss2: lineId = 1; break; } dungeonId = dungeonModel.GetDungeonId(AllianceBossModel.DATAMAPID, lineId); var dungeonConfig = DungeonConfig.Get(dungeonId); if (dungeonConfig != null) { var playerLevel = PlayerDatas.Instance.baseData.LV; if (playerLevel < dungeonConfig.LVLimitMin) { error = 1; return false; } } var completedTimes = dailyQuestModel.GetDailyQuestCompletedTimes(dailyQuestId); var totalTimes = dailyQuestModel.GetDailyQuestTotalTimes(dailyQuestId); if (completedTimes >= totalTimes) { error = 2; return false; } if (CrossServerUtility.IsCrossServerBoss()) { error = 3; return false; } if (allianceBossModel.isActivityOver) { error = 4; return false; } var dailyQuestState = dailyQuestModel.GetQuestState(dailyQuestId); if (dailyQuestState != DailyQuestModel.DailyQuestState.Normal) { error = 5; return false; } return true; } void DisplayErrorTip(int error) { switch (error) { case 1: SysNotifyMgr.Instance.ShowTip("DemonJar_Text2"); break; case 2: SysNotifyMgr.Instance.ShowTip("GeRen_chenxin_268121", AllianceBossModel.DATAMAPID); break; case 3: SysNotifyMgr.Instance.ShowTip("CrossMap10"); break; case 4: SysNotifyMgr.Instance.ShowTip("AllianceBossDead"); break; case 5: SysNotifyMgr.Instance.ShowTip("Join_Space_Lost"); break; } } } } System/FairyAu/AllianceBossEntranceWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 6bb43801ab363a74794c2c7d8e2f0b84 timeCreated: 1552037863 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FairyAu/AllianceBossHintWin.cs
New file @@ -0,0 +1,129 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 01, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AllianceBossHintWin : Window { [SerializeField] Text m_Progress; [SerializeField] RankBehaviour[] m_Ranks; [SerializeField] Text m_AllianceRank; [SerializeField] Text m_AllianceHurt; [SerializeField] Text m_AllianceParticipate; const long BOSSHP_TOTAL = 1000000000; DungeonModel dungeonModel { get { return ModelCenter.Instance.GetModel<DungeonModel>(); } } protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { dungeonModel.updateMissionEvent += UpdateMissionEvent; Display(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { dungeonModel.updateMissionEvent -= UpdateMissionEvent; } protected override void OnAfterClose() { } void Display() { DisplayProgress(); DisplayHurtRank(); DisplayAlliance(); } void DisplayProgress() { var mission = dungeonModel.mission; var currentHp = (long)(mission.remainHPPer * 0.000001d * BOSSHP_TOTAL); var progress = 1 - (float)currentHp / BOSSHP_TOTAL; m_Progress.text = StringUtility.Contact((int)(progress * 100), "%"); } void DisplayHurtRank() { var mission = dungeonModel.mission; var hurtInfos = mission.hurtInfo; var index = 0; if (hurtInfos != null) { for (int i = 0; i < hurtInfos.Length; i++) { if (i < m_Ranks.Length) { m_Ranks[i].Display(hurtInfos[i].playerName, hurtInfos[i].totalHurt); } index++; } } for (int i = index; i < m_Ranks.Length; i++) { m_Ranks[i].Reset(); } } void DisplayAlliance() { var mission = dungeonModel.mission; m_AllianceRank.text = mission.myRank == 0 ? string.Empty : mission.myRank.ToString(); m_AllianceHurt.text = UIHelper.ReplaceLargeNum(mission.myHurtTotal); m_AllianceParticipate.text = mission.myMenberCnt.ToString(); } private void UpdateMissionEvent() { Display(); } [Serializable] public class RankBehaviour { [SerializeField] Text m_FairyName; [SerializeField] Text m_Hurt; public void Display(string fairyName, long hurt) { m_FairyName.text = fairyName; m_Hurt.text = UIHelper.ReplaceLargeNum(hurt); } public void Reset() { m_FairyName.text = string.Empty; m_Hurt.text = string.Empty; } } } } System/FairyAu/AllianceBossHintWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: b71ebc3552b6540418bc0aeef3303e3b timeCreated: 1551430456 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FairyAu/AllianceBossModel.cs
New file @@ -0,0 +1,48 @@ using System; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Snxxz.UI { public class AllianceBossModel : Model, IBeforePlayerDataInitialize, IPlayerLoginOk { public const int DATAMAPID = 31260; public bool isActivityOver { get; private set; } public int participateLimit { get; private set; } public event Action allianceBossStateRefresh; public override void Init() { ParseConfig(); } public void OnBeforePlayerDataInitialize() { isActivityOver = false; } public void OnPlayerLoginOk() { } public override void UnInit() { } void ParseConfig() { participateLimit = 5; } public void ReceivePackage(HA40C_tagGCAllFamilyBossInfo package) { isActivityOver = package.IsEnd == 1; if (allianceBossStateRefresh != null) { allianceBossStateRefresh(); } } } } System/FairyAu/AllianceBossModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 24d1b53e30752c7468e3a2c38124b1eb timeCreated: 1552023902 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/FairyAu/AllianceBossVictoryWin.cs
New file @@ -0,0 +1,115 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, March 08, 2019 //-------------------------------------------------------- using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class AllianceBossVictoryWin : DungeonVictoryWin { [SerializeField] Transform m_ContainerTopThree; [SerializeField] Image m_Rank; [SerializeField] Transform m_ContainerOutThree; [SerializeField] Text m_AllianceRank; [SerializeField] Text m_AllianceParticipate; [SerializeField] Transform m_ContainerAuctionReward; [SerializeField] Transform m_ContainerNoneReward; [SerializeField] Text m_NoneRewardRemind; [SerializeField] DemonJarRewardBehaviour[] m_AuctionItems; [SerializeField] DemonJarRewardBehaviour[] m_MyItems; [SerializeField] Button m_GotoAuction; AllianceBossModel model { get { return ModelCenter.Instance.GetModel<AllianceBossModel>(); } } protected override void AddListeners() { base.AddListeners(); m_GotoAuction.AddListener(GotoAuction); } protected override void Display() { m_ContainerPoivt.gameObject.SetActive(true); base.RequireDungeonExit(); DisplayAlliance(); DisplayAutionItems(); DisplayMyItems(); } void DisplayAlliance() { var result = dungeonModel.dungeonResult; bool top3 = result.rank <= 3 && result.rank > 0; m_ContainerTopThree.gameObject.SetActive(top3); m_ContainerOutThree.gameObject.SetActive(!top3); if (top3) { m_Rank.SetSprite(StringUtility.Contact("AllianceBossRank_", result.rank)); } m_AllianceRank.text = Language.Get("AllianceBossRank", result.rank); m_AllianceParticipate.text = Language.Get("AllianceParticipate", result.myMenberCnt); m_NoneRewardRemind.text = Language.Get("AllianceParticipateLimitMin", model.participateLimit); } void DisplayAutionItems() { var result = dungeonModel.dungeonResult; var existAuctionItem = result.AuctionItem != null && result.AuctionItem.Length > 0; m_ContainerAuctionReward.gameObject.SetActive(existAuctionItem); m_ContainerNoneReward.gameObject.SetActive(!existAuctionItem); if (existAuctionItem) { for (int i = 0; i < m_AuctionItems.Length; i++) { if (i < result.AuctionItem.Length) { var serverItem = result.AuctionItem[i]; m_AuctionItems[i].gameObject.SetActive(true); m_AuctionItems[i].Display(new Item(serverItem.ItemID, serverItem.Count, serverItem.IsBind == 1)); } else { m_AuctionItems[i].gameObject.SetActive(false); } } } } void DisplayMyItems() { var result = dungeonModel.dungeonResult; for (int i = 0; i < m_MyItems.Length; i++) { if (result.itemInfo != null && i < result.itemInfo.Length) { var serverItem = result.itemInfo[i]; m_MyItems[i].gameObject.SetActive(true); m_MyItems[i].Display(new Item(serverItem.ItemID, serverItem.Count, serverItem.IsBind == 1)); } else { m_MyItems[i].gameObject.SetActive(false); } } } private void GotoAuction() { WindowCenter.Instance.Open<AuctionHouseWin>(false, 1); } } } System/FairyAu/AllianceBossVictoryWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: beb30ea08fa2b344d902811448e93600 timeCreated: 1552028567 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/Message/RichTableEvent.cs
@@ -506,6 +506,18 @@ } } if (hrefInfo.mSplits.ContainsKey("chatsenditem")) { var chatSendItem = LitJson.JsonMapper.ToObject<ChatCtrl.ChatSendItem>(hrefInfo.mSplits["chatsenditem"]); itemId = chatSendItem.itemId; itemCount = chatSendItem.count; isBind = chatSendItem.isBind; if (!string.IsNullOrEmpty(chatSendItem.useData)) { userdatadic = ConfigParse.Analysis(chatSendItem.useData); } } ItemAttrData attrData = new ItemAttrData(itemId, false, (ulong)itemCount, -1, isBind, false, PackType.Deleted, "", userdatadic); attrData.SetGemModel(stone); System/WindowBase/ModelCenter.cs
@@ -233,6 +233,7 @@ RegisterModel<TreasureSkillModel>(); RegisterModel<EquipGemModel>(); RegisterModel<AuctionInquiryModel>(); RegisterModel<AllianceBossModel>(); RegisterModel<AuctionHelpModel>(); inited = true; } Utility/EnumHelper.cs
@@ -327,8 +327,10 @@ DungeonAssist = 29, GatherSoulDungeon = 30, CrossServerPk = 31, JadeDynastyBoss = 32, JadeDynastyTower = 33, AllianceBoss1 = 32, AllianceBoss2 = 33, //JadeDynastyBoss = 32,--诛仙功能暂时关闭 //JadeDynastyTower = 33, } public enum ActivityPrepareType