System/NewYearFairylandCeremony.meta
New file @@ -0,0 +1,9 @@ fileFormatVersion: 2 guid: f3a0fba6f1cadae4daf7933f5582bf9a folderAsset: yes timeCreated: 1548402738 licenseType: Pro DefaultImporter: userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearCeremonyCoolTime.cs
New file @@ -0,0 +1,35 @@ using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class NewYearCeremonyCoolTime : MonoBehaviour { [SerializeField] Text m_Time; private void OnEnable() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; RefreshSecond(); } private void OnDisable() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if (seconds > 0) { m_Time.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToHMS(seconds), "</color>"); } else { m_Time.text = UIHelper.AppendStringColor(TextColType.Red, Language.Get("XMZZ110")); } } } } System/NewYearFairylandCeremony/NewYearCeremonyCoolTime.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 8abee5598b1e21a4ab77bb56d3d2f267 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearCeremonyFirepartyWin.cs
New file @@ -0,0 +1,119 @@ using System; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class NewYearCeremonyFirepartyWin : Window { [SerializeField] Button buyBtn; [SerializeField] Text buyPriceText; [SerializeField] Text remainTimeText; [SerializeField] CommonItemBaisc fireItem; [SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>(); List<FairylandCeremonyModel.AwardItem> itemlist; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } StoreModel storeModel { get { return ModelCenter.Instance.GetModel<StoreModel>(); } } StoreConfig storeConfig; protected override void BindController() { } protected override void AddListeners() { buyBtn.AddListener(ClickBuy); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; itemlist = ceremonyModel.GetFireAwardlist(); Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; } protected override void OnAfterClose() { } private void Init() { storeConfig = ceremonyModel.GetFireIdByLv(); if (storeConfig == null) return; buyPriceText.text = storeConfig.MoneyNumber.ToString(); ItemCellModel fireModel = new ItemCellModel(storeConfig.ItemID,true,(ulong)storeConfig.ItemCnt,storeConfig.IsBind); fireItem.Init(fireModel); fireItem.cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(storeConfig.ItemID,true, (ulong)storeConfig.ItemCnt,-1,storeConfig.IsBind); tipsModel.SetItemTipsModel(attrData); }); if (itemlist == null) return; for (int i = 0; i < itemBaiscs.Count; i++) { if (i < itemlist.Count) { itemBaiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = itemlist[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true,(ulong)itemData.itemCount,itemData.isBind); itemBaiscs[i].Init(cellModel); itemBaiscs[i].cellBtn.RemoveAllListeners(); itemBaiscs[i].cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount,-1,itemData.isBind); tipsModel.SetItemTipsModel(attrData); }); } else { itemBaiscs[i].gameObject.SetActive(false); } } RefreshSecond(); } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if (seconds > 0) { remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToHMS(seconds), "</color>"); } else { remainTimeText.text = UIHelper.AppendStringColor(TextColType.Red, Language.Get("XMZZ110")); } } private void ClickBuy() { if(playerPack.GetReaminGridCount(PackType.rptItem) < 1) { SysNotifyMgr.Instance.ShowTip("BagFull"); return; } storeModel.OnClickShopCell(storeConfig); } } } System/NewYearFairylandCeremony/NewYearCeremonyFirepartyWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 866275db997a2bf4d8fcf2d2b153cad5 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearCeremonyOutOfPrintWin.cs
New file @@ -0,0 +1,174 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class NewYearCeremonyOutOfPrintWin : Window { [SerializeField] Text firstNameText; [SerializeField] Text secondNameText; [SerializeField] Text thirdNameText; [SerializeField] Text remainTimeText; [SerializeField] List<UIEffect> rankEffectlist = new List<UIEffect>(); [SerializeField] List<CommonItemBaisc> firstItemlist = new List<CommonItemBaisc>(); [SerializeField] List<CommonItemBaisc> secondItemlist = new List<CommonItemBaisc>(); [SerializeField] List<CommonItemBaisc> thirdItemlist = new List<CommonItemBaisc>(); ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } KingFairyModel kingFairyModel { get { return ModelCenter.Instance.GetModel<KingFairyModel>(); } } protected override void BindController() { } protected override void AddListeners() { } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank += OnRefreshRankList; Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; PlayerDatas.Instance.rank.OnRefreshRank -= OnRefreshRankList; } protected override void OnAfterClose() { } private void Init() { ceremonyModel.SendGetRankInfo(PlayerRankData.RankType.Def_BT_FCCostGold); SetRankAward(firstItemlist,ceremonyModel.GetRankAwardByLv(1)); SetRankAward(secondItemlist, ceremonyModel.GetRankAwardByLv(2)); SetRankAward(thirdItemlist, ceremonyModel.GetRankAwardByLv(3)); RefreshRankInfo(); RefreshSecond(); } private void OnRefreshRankList(int type) { if (type != (int)PlayerRankData.RankType.Def_BT_FCCostGold) return; RefreshRankInfo(); } private void RefreshRankInfo() { List<PlayerRankData.RankData> list = PlayerDatas.Instance.rank.GetRankList((int)PlayerRankData.RankType.Def_BT_FCCostGold); firstNameText.text = Language.Get("CeremoneyOutOfPrint"); secondNameText.text = Language.Get("CeremoneyOutOfPrint"); thirdNameText.text = Language.Get("CeremoneyOutOfPrint"); if (list != null) { if (list.Count > 0) { firstNameText.text = list[0].Name1; SetRankEffect(0,(int)list[0].ID); } if (list.Count > 1) { secondNameText.text = list[1].Name1; SetRankEffect(1, (int)list[1].ID); } if (list.Count > 2) { thirdNameText.text = list[2].Name1; SetRankEffect(2, (int)list[2].ID); } } } private void SetRankEffect(int rank,int playerId) { for(int i = 0; i < rankEffectlist.Count; i++) { if(rank == i && playerId == PlayerDatas.Instance.baseData.PlayerID) { if(!rankEffectlist[i].IsPlaying) { rankEffectlist[i].Play(); } } else { if (rankEffectlist[i].IsPlaying) { rankEffectlist[i].Stop(); } } } } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if(seconds > 0) { remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToHMS(seconds), "</color>"); } else { remainTimeText.text = UIHelper.AppendStringColor(TextColType.Red,Language.Get("XMZZ110")); } } private void SetRankAward(List<CommonItemBaisc> baiscs,List<FairylandCeremonyModel.AwardItem> list) { if (list == null) return; for (int i = 0; i < baiscs.Count; i++) { if (i < list.Count) { baiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = list[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true,(ulong)itemData.itemCount,itemData.isBind); baiscs[i].Init(cellModel); baiscs[i].cellBtn.RemoveAllListeners(); baiscs[i].cellBtn.AddListener(() => { switch(itemData.itemId) { case 2278: kingFairyModel.ViewKingFairyChest(itemData.itemId,itemData.itemCount,itemData.isBind); break; default: ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount, -1, itemData.isBind); tipsModel.SetItemTipsModel(attrData); break; } }); } else { baiscs[i].gameObject.SetActive(false); } } } } } System/NewYearFairylandCeremony/NewYearCeremonyOutOfPrintWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 5deef7fb5ed08b64ab02e4eada93b8ae timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearCeremonyPeopleToHiWin.cs
New file @@ -0,0 +1,115 @@ using System; using UnityEngine; using UnityEngine.UI; using TableConfig; using System.Collections.Generic; namespace Snxxz.UI { public class NewYearCeremonyPeopleToHiWin : Window { [SerializeField] ScrollerController awardCtrl; [SerializeField] ScrollerController taskCtrl; [SerializeField] Text hiPointText; List<AllPeoplePartyConfig> taskConfigs; List<AllPeoplePartyAwardConfig> awardConfigs; FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } int presentAwardIndex = 0; protected override void BindController() { awardCtrl.OnRefreshCell += RefreshAwardCell; taskCtrl.OnRefreshCell += RefreshTaskCell; } protected override void AddListeners() { } protected override void OnPreOpen() { ceremonyModel.RefreshHiAwardStateAct += CreateAwardCell; Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { ceremonyModel.RefreshHiAwardStateAct -= CreateAwardCell; } protected override void OnAfterClose() { } private void Init() { hiPointText.text = ceremonyModel.sumHiPoint.ToString(); ceremonyModel.IsPeopleAwardRecive(out presentAwardIndex); taskConfigs = ceremonyModel.GetPeoplePartTasklist(); awardConfigs = ceremonyModel.GetPeoplePartAwardlist(); CreateAwardCell(); CreateTaskCell(); taskCtrl.JumpIndex(0); awardCtrl.JumpIndex(presentAwardIndex - 1 < 0 ? 0 : presentAwardIndex - 1); } private void CreateTaskCell() { if (taskCtrl.GetNumberOfCells(taskCtrl.m_Scorller) > 0) { taskCtrl.m_Scorller.RefreshActiveCellViews(); } else { taskCtrl.Refresh(); for(int i = 0; i < taskConfigs.Count; i++) { taskCtrl.AddCell(ScrollerDataType.Header,i); } taskCtrl.Restart(); } } private void RefreshTaskCell(ScrollerDataType type, CellView cell) { ToHiTaskCell taskCell = cell.GetComponent<ToHiTaskCell>(); if (taskCell == null) return; taskCell.Init(taskConfigs[cell.index]); } private void CreateAwardCell() { if (awardCtrl.GetNumberOfCells(awardCtrl.m_Scorller) > 0) { awardCtrl.m_Scorller.RefreshActiveCellViews(); } else { awardCtrl.Refresh(); for (int i = 0; i < awardConfigs.Count; i++) { awardCtrl.AddCell(ScrollerDataType.Header, i); } awardCtrl.Restart(); } } private void RefreshAwardCell(ScrollerDataType type, CellView cell) { ToHiAwardCell awardCell = cell.GetComponent<ToHiAwardCell>(); if (awardCell == null) return; awardCell.Init(awardConfigs[cell.index]); } } } System/NewYearFairylandCeremony/NewYearCeremonyPeopleToHiWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: b9e35057c68b73e4fac1ec49cc70afab timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearCeremonyRechargeGiftWin.cs
New file @@ -0,0 +1,150 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class NewYearCeremonyRechargeGiftWin : Window { [SerializeField] Button receiveBtn; [SerializeField] Button rechargeBtn; [SerializeField] Text receiveBtnText; [SerializeField] Image receiveBtnImg; [SerializeField] Text remainTimeText; [SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>(); List<FairylandCeremonyModel.AwardItem> itemlist; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } protected override void BindController() { } protected override void AddListeners() { rechargeBtn.AddListener(ClickRecharge); receiveBtn.AddListener(OnReceiveGift); } protected override void OnPreOpen() { GlobalTimeEvent.Instance.secondEvent += RefreshSecond; ceremonyModel.RefreshRechargeStateAct += SetReceiveBtnState; itemlist = ceremonyModel.GetRechargeAwardByLv(); Init(); } protected override void OnAfterOpen() { } protected override void OnPreClose() { GlobalTimeEvent.Instance.secondEvent -= RefreshSecond; ceremonyModel.RefreshRechargeStateAct -= SetReceiveBtnState; } protected override void OnAfterClose() { } private void Init() { if (itemlist == null) return; for(int i = 0; i < itemBaiscs.Count; i++) { if(i < itemlist.Count) { itemBaiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = itemlist[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId,true, (ulong)itemData.itemCount, itemData.isBind); itemBaiscs[i].Init(cellModel); itemBaiscs[i].cellBtn.RemoveAllListeners(); itemBaiscs[i].cellBtn.AddListener(()=> { ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount,-1,itemData.isBind); tipsModel.SetItemTipsModel(attrData); }); } else { itemBaiscs[i].gameObject.SetActive(false); } } RefreshSecond(); SetReceiveBtnState(); } private void RefreshSecond() { int seconds = OperationTimeHepler.Instance.GetOperationSurplusTime(Operation.FairyCeremony); if (seconds > 0) { remainTimeText.text = StringUtility.Contact("<color=#8DDC11FF>", TimeUtility.SecondsToHMS(seconds), "</color>"); } else { remainTimeText.text = UIHelper.AppendStringColor(TextColType.Red, Language.Get("XMZZ110")); } } private void SetReceiveBtnState() { switch (ceremonyModel.receiveState) { case FairylandCeremonyModel.ReceiveState.NoReach: receiveBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); receiveBtnText.text = "领取礼包"; break; case FairylandCeremonyModel.ReceiveState.Reach: receiveBtnImg.material = MaterialUtility.GetUIDefaultGraphicMaterial(); receiveBtnText.text = "领取礼包"; break; case FairylandCeremonyModel.ReceiveState.Already: receiveBtnImg.material = MaterialUtility.GetDefaultSpriteGrayMaterial(); receiveBtnText.text = "已领取"; break; } } private void OnReceiveGift() { if (itemlist == null) return; switch (ceremonyModel.receiveState) { case FairylandCeremonyModel.ReceiveState.NoReach: SysNotifyMgr.Instance.ShowTip("FairylandCermonyRecharge1"); break; case FairylandCeremonyModel.ReceiveState.Reach: bool isGrid = playerPack.GetReaminGridCount(PackType.rptItem) - itemlist.Count >= 0 ? true : false; if (isGrid) { ceremonyModel.SendReceiveAward(GotServerRewardType.Def_RewardType_FCRecharge,0); } else { SysNotifyMgr.Instance.ShowTip("BagFull"); } break; case FairylandCeremonyModel.ReceiveState.Already: SysNotifyMgr.Instance.ShowTip("FairylandCermonyRecharge2"); break; } } private void ClickRecharge() { WindowJumpMgr.Instance.WindowJumpTo(JumpUIType.VipRechargeFunc1); } } } System/NewYearFairylandCeremony/NewYearCeremonyRechargeGiftWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: fd7487dccd7370041947e1a4134b2bd1 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearFairylandCeremonyModel.cs
New file @@ -0,0 +1,526 @@ using TableConfig; using LitJson; using System.Collections.Generic; using System; namespace Snxxz.UI { [XLua.LuaCallCSharp] public class NewYearFairylandCeremonyModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk { public ReceiveState receiveState { get; private set; } Dictionary<CeremonyType, Dictionary<int, List<int>>> typeLvDict = new Dictionary<CeremonyType, Dictionary<int, List<int>>>(); Dictionary<int, List<AwardItem>> rechargeAwardDict = new Dictionary<int, List<AwardItem>>(); public Dictionary<int, int> fireDict = new Dictionary<int, int>(); List<AllPeoplePartyConfig> allPeoples = new List<AllPeoplePartyConfig>(); List<AllPeoplePartyAwardConfig> allPeopleAwards = new List<AllPeoplePartyAwardConfig>(); Dictionary<int, Dictionary<int, List<AwardItem>>> jobToHiAwardDict = new Dictionary<int, Dictionary<int, List<AwardItem>>>(); Dictionary<string, Dictionary<int, List<AwardItem>>> rankAwardDict = new Dictionary<string, Dictionary<int, List<AwardItem>>>(); Dictionary<int,Dictionary<int,List<AwardItem>>> fireGiftsDict = new Dictionary<int, Dictionary<int, List<AwardItem>>>(); public override void Init() { FuncConfigConfig lvConfig = Config.Instance.Get<FuncConfigConfig>("CeremonyWorldLv"); JsonData lvData = JsonMapper.ToObject(lvConfig.Numerical1); foreach (var type in lvData.Keys) { Dictionary<int, List<int>> lvDict = new Dictionary<int, List<int>>(); typeLvDict.Add((CeremonyType)int.Parse(type),lvDict); if(lvData[type].IsArray) { for(int i = 0; i < lvData[type].Count; i++) { JsonData rangeData = lvData[type][i]; List<int> lvlist = new List<int>(); lvDict.Add(i,lvlist); lvlist.Add(int.Parse(rangeData[0].ToString())); lvlist.Add(int.Parse(rangeData[1].ToString())); } } } FuncConfigConfig rechargeConfig = Config.Instance.Get<FuncConfigConfig>("CeremonyRecharge"); JsonData rechargeData = JsonMapper.ToObject(rechargeConfig.Numerical1); foreach(var index in rechargeData.Keys) { List<AwardItem> awardItems = new List<AwardItem>(); rechargeAwardDict.Add(int.Parse(index),awardItems); if(rechargeData[index].IsArray) { for(int i = 0; i < rechargeData[index].Count; i++) { JsonData itemData = rechargeData[index][i]; AwardItem item = new AwardItem(int.Parse(itemData[0].ToString()), int.Parse(itemData[1].ToString()), int.Parse(itemData[2].ToString())); awardItems.Add(item); } } } FuncConfigConfig fireConfig = Config.Instance.Get<FuncConfigConfig>("CeremonyFireParty"); JsonData fireData = JsonMapper.ToObject(fireConfig.Numerical1); foreach(var index in fireData.Keys) { fireDict.Add(int.Parse(index),int.Parse(fireData[index].ToString())); } FuncConfigConfig fireAwardConfig = Config.Instance.Get<FuncConfigConfig>("CeremonyFireAward"); JsonData fireAwardData = JsonMapper.ToObject(fireAwardConfig.Numerical1); foreach (var index in fireAwardData.Keys) { Dictionary<int, List<AwardItem>> jobFireAwardDict = new Dictionary<int, List<AwardItem>>(); fireGiftsDict.Add(int.Parse(index),jobFireAwardDict); foreach(var job in fireAwardData[index].Keys) { List<AwardItem> awardItems = new List<AwardItem>(); jobFireAwardDict.Add(int.Parse(job),awardItems); if (fireAwardData[index][job].IsArray) { for (int i = 0; i < fireAwardData[index][job].Count; i++) { JsonData itemData = fireAwardData[index][job][i]; AwardItem item = new AwardItem(int.Parse(itemData[0].ToString()), int.Parse(itemData[1].ToString()), int.Parse(itemData[2].ToString())); awardItems.Add(item); } } } } allPeoples = Config.Instance.GetAllValues<AllPeoplePartyConfig>(); allPeopleAwards = Config.Instance.GetAllValues<AllPeoplePartyAwardConfig>(); for(int i = 0; i < allPeopleAwards.Count; i++) { Dictionary<int, List<AwardItem>> awardKeyDict = new Dictionary<int, List<AwardItem>>(); jobToHiAwardDict.Add(allPeopleAwards[i].ID,awardKeyDict); JsonData awardData = JsonMapper.ToObject(allPeopleAwards[i].Award); foreach(var job in awardData.Keys) { List<AwardItem> awardItems = new List<AwardItem>(); awardKeyDict.Add(int.Parse(job),awardItems); if(awardData[job].IsArray) { for(int j = 0; j < awardData[job].Count;j++) { JsonData itemData = awardData[job][j]; AwardItem item = new AwardItem(int.Parse(itemData[0].ToString()), int.Parse(itemData[1].ToString()), int.Parse(itemData[2].ToString())); awardItems.Add(item); } } } } List<UniquenessArriveConfig> arriveConfigs = Config.Instance.GetAllValues<UniquenessArriveConfig>(); for(int i = 0; i < arriveConfigs.Count; i++) { string key = StringUtility.Contact(arriveConfigs[i].WorldLvNum,arriveConfigs[i].Rank); Dictionary<int, List<AwardItem>> awardKeyDict = new Dictionary<int, List<AwardItem>>(); rankAwardDict.Add(key,awardKeyDict); JsonData awardData = JsonMapper.ToObject(arriveConfigs[i].Award); foreach (var job in awardData.Keys) { List<AwardItem> awardItems = new List<AwardItem>(); awardKeyDict.Add(int.Parse(job), awardItems); if (awardData[job].IsArray) { for (int j = 0; j < awardData[job].Count; j++) { JsonData itemData = awardData[job][j]; AwardItem item = new AwardItem(int.Parse(itemData[0].ToString()), int.Parse(itemData[1].ToString()), int.Parse(itemData[2].ToString())); awardItems.Add(item); } } } } //OperationTimeHepler.Instance.operationEndEvent += OnActiveEnd; } public override void UnInit() { } public void OnBeforePlayerDataInitialize() { worldLv = 0; sumHiPoint = 0; preAwardRecord = 0; peopleTaskRecordDict.Clear(); receiveState = ReceiveState.NoReach; } public void OnAfterPlayerDataInitialize() { } public void OnPlayerLoginOk() { CheckRechargeRed(); CheckPeoplePartyRed(); } #region 处理服务端数据 public int worldLv { get; private set;} public void GetServerActiveInfo(HAC09_tagGCFairyCeremonyInfo info) { worldLv = info.WorldLV; OperationTimeHepler.Instance.RefreshFairyCeremonyInfo(info); } public Action RefreshRechargeStateAct; public void GetServerRechargeInfo(HAA14_tagMCXJSDRecharge info) { switch(info.State) { case 0: receiveState = ReceiveState.NoReach; break; case 1: receiveState = ReceiveState.Reach; break; case 2: receiveState = ReceiveState.Already; break; } if(RefreshRechargeStateAct != null) { RefreshRechargeStateAct(); } CheckRechargeRed(); } public int sumHiPoint { get; private set; } private int preAwardRecord; Dictionary<int, bool> peopleAwardRecordDict = new Dictionary<int, bool>(); //领取记录 Dictionary<int, int> peopleTaskRecordDict = new Dictionary<int, int>(); //全民来嗨任务状态记录 public Action<int> RefreshHiPointAct; public Action RefreshHiAwardStateAct; public void GetServerPeopleInfo(HAA15_tagMCAllPeoplePartyInfo info) { peopleAwardRecordDict.Clear(); sumHiPoint = (int)info.CurPoint; int sumIndex = GetPeoplePartAwardlist().Count; for (int i = 0; i < sumIndex; i++) { bool isRecord = MathUtility.GetBitValue(info.AwardRecord, (ushort)i); peopleAwardRecordDict.Add(i, isRecord); } for(int i = 0; i < info.Count; i++) { if(!peopleTaskRecordDict.ContainsKey((int)info.BuyCountList[i].ActID)) { peopleTaskRecordDict.Add((int)info.BuyCountList[i].ActID,info.BuyCountList[i].CurTimes); } else { peopleTaskRecordDict[(int)info.BuyCountList[i].ActID] = info.BuyCountList[i].CurTimes; } if(RefreshHiPointAct != null) { RefreshHiPointAct((int)info.BuyCountList[i].ActID); } } if(preAwardRecord != info.AwardRecord) { if(RefreshHiAwardStateAct != null) { RefreshHiAwardStateAct(); } } CheckPeoplePartyRed(); preAwardRecord = (int)info.AwardRecord; } public int GetPeopleTaskTimesById(int actId) { int times = 0; peopleTaskRecordDict.TryGetValue(actId,out times); return times; } public bool GetPeopleAwardRecordByIndex(int index) { bool isReceive = false; peopleAwardRecordDict.TryGetValue(index,out isReceive); return isReceive; } private void OnActiveEnd(Operation type, int arg2) { if (type != Operation.FairyCeremony) return; peopleTaskRecordDict.Clear(); sumHiPoint = 0; worldLv = 0; } public void SendReceiveAward(GotServerRewardType type,int index) { CA504_tagCMPlayerGetReward getReward = new CA504_tagCMPlayerGetReward(); getReward.RewardType = (byte)type; getReward.DataEx = (uint)index; getReward.DataExStrLen = 0; getReward.DataExStr = string.Empty; GameNetSystem.Instance.SendInfo(getReward); } public void SendGetRankInfo(PlayerRankData.RankType type) { C1001_tagCWatchBillboard rankPack = new C1001_tagCWatchBillboard(); rankPack.Type = (byte)type; GameNetSystem.Instance.SendInfo(rankPack); } #endregion #region 处理本地数据 public int GetWorldLvIndex(CeremonyType type) { if(typeLvDict.ContainsKey(type)) { foreach(var index in typeLvDict[type].Keys) { if(worldLv >= typeLvDict[type][index][0] && worldLv <= typeLvDict[type][index][1]) { return index; } } } return -1; } public List<AwardItem> GetRechargeAwardByLv() { int index = GetWorldLvIndex(CeremonyType.Recharge); List<AwardItem> awardItems = null; rechargeAwardDict.TryGetValue(index,out awardItems); return awardItems; } public StoreConfig GetFireIdByLv() { int index = GetWorldLvIndex(CeremonyType.Fire); int storeId = 0; fireDict.TryGetValue(index,out storeId); StoreConfig storeConfig = Config.Instance.Get<StoreConfig>(storeId); return storeConfig; } public List<AwardItem> GetFireAwardlist() { int index = GetWorldLvIndex(CeremonyType.Fire); if(fireGiftsDict.ContainsKey(index)) { if(fireGiftsDict[index].ContainsKey(PlayerDatas.Instance.baseData.Job)) { return fireGiftsDict[index][PlayerDatas.Instance.baseData.Job]; } } return null; } public bool CheckIsBuyFireCondi(StoreConfig storeConfig,int buyNum = 1) { ulong price =(ulong)(storeConfig.MoneyNumber * buyNum); if(UIHelper.GetMoneyCnt(storeConfig.MoneyType) >= price) { return true; } return false; } List<AllPeoplePartyConfig> openTasklist = new List<AllPeoplePartyConfig>(); public List<AllPeoplePartyConfig> GetPeoplePartTasklist() { openTasklist.Clear(); for(int i = 0; i < allPeoples.Count; i++) { if(FuncOpen.Instance.IsFuncOpen(allPeoples[i].FuncID)) { openTasklist.Add(allPeoples[i]); } } openTasklist.Sort(CompareByTimes); return openTasklist; } private int CompareByTimes(AllPeoplePartyConfig start,AllPeoplePartyConfig end) { bool startIsComplte = PeopleTaskComplete(start); bool endIsComplte = PeopleTaskComplete(end); if (startIsComplte.CompareTo(endIsComplte) != 0) return startIsComplte.CompareTo(endIsComplte); int startIndex = allPeoples.IndexOf(start); int endIndex = allPeoples.IndexOf(end); if (startIndex.CompareTo(endIndex) != 0) return startIndex.CompareTo(endIndex); return 0; } public bool PeopleTaskComplete(AllPeoplePartyConfig partyConfig) { if (GetPeopleTaskTimesById(partyConfig.ID) >= partyConfig.TotalTimes) { return true; } return false; } List<AllPeoplePartyAwardConfig> worldAwardlist = new List<AllPeoplePartyAwardConfig>(); public List<AllPeoplePartyAwardConfig> GetPeoplePartAwardlist() { worldAwardlist.Clear(); int index = GetWorldLvIndex(CeremonyType.WholePeople); for (int i = 0; i < allPeopleAwards.Count; i++) { if(allPeopleAwards[i].WorldLvNum == index) { worldAwardlist.Add(allPeopleAwards[i]); } } worldAwardlist.Sort(CompareByIndex); return worldAwardlist; } public int CompareByIndex(AllPeoplePartyAwardConfig start,AllPeoplePartyAwardConfig end) { int startIndex = start.Index; int endIndex = end.Index; if (startIndex.CompareTo(endIndex) != 0) return startIndex.CompareTo(endIndex); startIndex = allPeopleAwards.IndexOf(start); endIndex = allPeopleAwards.IndexOf(end); if (startIndex.CompareTo(endIndex) != 0) return startIndex.CompareTo(endIndex); return 0; } public List<AwardItem> GetPeoplePartyAwardById(int peopleId) { if(jobToHiAwardDict.ContainsKey(peopleId)) { if(jobToHiAwardDict[peopleId].ContainsKey(PlayerDatas.Instance.baseData.Job)) { return jobToHiAwardDict[peopleId][PlayerDatas.Instance.baseData.Job]; } } return null; } public List<AwardItem> GetRankAwardByLv(int rank) { int index = GetWorldLvIndex(CeremonyType.OutOfPrint); string key = StringUtility.Contact(index,rank); int playerJob = PlayerDatas.Instance.baseData.Job; if(rankAwardDict.ContainsKey(key)) { if(rankAwardDict[key].ContainsKey(playerJob)) { return rankAwardDict[key][playerJob]; } } return null; } #endregion #region 红点逻辑处理 public const int FairyCeremony_RedKey = 212; public Redpoint fairyCeremonyRedp = new Redpoint(MainRedDot.RedPoint_UpFuncBase,FairyCeremony_RedKey); public const int CeremonyRecharge_RedKey = 21201; public Redpoint rechargeRedp = new Redpoint(FairyCeremony_RedKey,CeremonyRecharge_RedKey); public const int RechargeReceiveBtn_RedKey = 2120101; public Redpoint receiveBtnRedp = new Redpoint(CeremonyRecharge_RedKey, RechargeReceiveBtn_RedKey); public void CheckRechargeRed() { if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony)) return; if(receiveState == ReceiveState.Reach) { receiveBtnRedp.state = RedPointState.Simple; } else { receiveBtnRedp.state = RedPointState.None; } } public const int CeremonyPeople_RedKey = 21203; public Redpoint peopleRedp = new Redpoint(FairyCeremony_RedKey, CeremonyPeople_RedKey); public void CheckPeoplePartyRed() { if (!OperationTimeHepler.Instance.SatisfyOpenCondition(Operation.FairyCeremony)) return; int index = 0; if(IsPeopleAwardRecive(out index)) { peopleRedp.state = RedPointState.Simple; } else { peopleRedp.state = RedPointState.None; } } #endregion public bool IsPeopleAwardRecive(out int index) { index = 0; if (worldAwardlist.Count < 1) return false; for (int i = 0; i < worldAwardlist.Count; i++) { if (!GetPeopleAwardRecordByIndex(worldAwardlist[i].Index)) { if (sumHiPoint >= worldAwardlist[i].NeedPoint) { index = i; return true; } } } return false; } public struct AwardItem { public int itemId { get; private set;} public int itemCount { get; private set; } public int isBind { get; private set; } public AwardItem(int id,int cnt,int isBind) { this.itemId = id; this.itemCount = cnt; this.isBind = isBind; } } public enum ReceiveState { NoReach, //未充值 Reach, //可领取 Already, //已领取 } /// <summary> /// 庆典类型 /// </summary> public enum CeremonyType { Recharge = 1, // 充值 Fire = 2, //烟花 WholePeople = 3, //全民 OutOfPrint = 4, //绝版降临 } } } System/NewYearFairylandCeremony/NewYearFairylandCeremonyModel.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 4a8fe48f819d39044b5e3669ec791465 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearFairylandCeremonyWin.cs
New file @@ -0,0 +1,157 @@ using System; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class NewYearFairylandCeremonyWin : Window { [SerializeField] FunctionButtonGroup funcBtnGroup; [SerializeField] FunctionButton rechargeFunc; [SerializeField] FunctionButton fireFunc; [SerializeField] FunctionButton peopleToHiFunc; [SerializeField] FunctionButton outofFunc; [SerializeField] Button leftBtn; [SerializeField] Button rightBtn; [SerializeField] Button closeBtn; FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } protected override void BindController() { } protected override void AddListeners() { rechargeFunc.onClick.AddListener(ClickRecharge); fireFunc.onClick.AddListener(ClickFire); peopleToHiFunc.onClick.AddListener(ClickPeopleToHi); outofFunc.onClick.AddListener(ClickOutOf); leftBtn.onClick.AddListener(OnClickLeftBtn); rightBtn.onClick.AddListener(OnClickRightBtn); closeBtn.onClick.AddListener(ClickClose); } protected override void OnPreOpen() { } protected override void OnActived() { base.OnActived(); if(!WindowJumpMgr.Instance.IsJumpState && functionOrder == 0) { if(ceremonyModel.rechargeRedp.state == RedPointState.Simple) { functionOrder = rechargeFunc.order; } else if(ceremonyModel.peopleRedp.state == RedPointState.Simple) { functionOrder = peopleToHiFunc.order; } } funcBtnGroup.TriggerByOrder(functionOrder); } protected override void OnAfterOpen() { } protected override void OnPreClose() { } protected override void OnAfterClose() { if(!WindowJumpMgr.Instance.IsJumpState) { WindowCenter.Instance.Open<MainInterfaceWin>(); } } private void OnClickRightBtn() { funcBtnGroup.TriggerNext(); } private void OnClickLeftBtn() { funcBtnGroup.TriggerLast(); } private void ClickOutOf() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<CeremonyOutOfPrintWin>(); } else { WindowCenter.Instance.Open<CeremonyOutOfPrintWin>(); } functionOrder = 3; } private void ClickPeopleToHi() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<CeremonyPeopleToHiWin>(); } else { WindowCenter.Instance.Open<CeremonyPeopleToHiWin>(); } functionOrder = 2; } private void ClickFire() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<CeremonyFirepartyWin>(); } else { WindowCenter.Instance.Open<CeremonyFirepartyWin>(); } functionOrder = 1; } private void ClickRecharge() { CloseChildWin(); if (windowState == WindowState.Opened) { WindowCenter.Instance.OpenWithoutAnimation<CeremonyRechargeGiftWin>(); } else { WindowCenter.Instance.Open<CeremonyRechargeGiftWin>(); } functionOrder = 0; } private void CloseChildWin() { var children = WindowConfig.Get().FindChildWindows("FairylandCeremonyWin"); foreach (var window in children) { WindowCenter.Instance.Close(window); } } private void ClickClose() { CloseChildWin(); CloseClick(); } } } System/NewYearFairylandCeremony/NewYearFairylandCeremonyWin.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: cba4e6bd0f8e90246b6f3925f49c17e7 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearToHiAwardCell.cs
New file @@ -0,0 +1,123 @@ using System; using System.Collections.Generic; using TableConfig; using UnityEngine; using UnityEngine.UI; namespace Snxxz.UI { public class NewYearToHiAwardCell : CellView { [SerializeField] Text titleText; [SerializeField] Button receiveBtn; [SerializeField] GameObject noReachImg; [SerializeField] GameObject alreadyImg; [SerializeField] List<CommonItemBaisc> itemBaiscs = new List<CommonItemBaisc>(); List<FairylandCeremonyModel.AwardItem> itemlist; ItemTipsModel tipsModel { get { return ModelCenter.Instance.GetModel<ItemTipsModel>(); } } FairylandCeremonyModel.ReceiveState receiveState = FairylandCeremonyModel.ReceiveState.NoReach; PlayerPackModel playerPack { get { return ModelCenter.Instance.GetModel<PlayerPackModel>(); } } FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } AllPeoplePartyAwardConfig awardConfig; private void OnEnable() { ceremonyModel.RefreshHiAwardStateAct += SetAwardState; } private void OnDisable() { ceremonyModel.RefreshHiAwardStateAct -= SetAwardState; } public void Init(AllPeoplePartyAwardConfig awardConfig) { this.awardConfig = awardConfig; titleText.text = Language.Get("CeremoneyToHiAward", awardConfig.NeedPoint); itemlist = ceremonyModel.GetPeoplePartyAwardById(awardConfig.ID); for (int i = 0; i < itemBaiscs.Count; i++) { if (i < itemlist.Count) { itemBaiscs[i].gameObject.SetActive(true); FairylandCeremonyModel.AwardItem itemData = itemlist[i]; ItemCellModel cellModel = new ItemCellModel(itemData.itemId, true,(ulong)itemData.itemCount, itemData.isBind); itemBaiscs[i].Init(cellModel); itemBaiscs[i].cellBtn.RemoveAllListeners(); itemBaiscs[i].cellBtn.AddListener(() => { ItemAttrData attrData = new ItemAttrData(itemData.itemId, true, (ulong)itemData.itemCount,-1,itemData.isBind); tipsModel.SetItemTipsModel(attrData); }); } else { itemBaiscs[i].gameObject.SetActive(false); } } SetAwardState(); } private void SetAwardState() { if (awardConfig == null) return; if(ceremonyModel.GetPeopleAwardRecordByIndex(awardConfig.Index)) { receiveState = FairylandCeremonyModel.ReceiveState.Already; } else { if(ceremonyModel.sumHiPoint >= awardConfig.NeedPoint) { receiveState = FairylandCeremonyModel.ReceiveState.Reach; } else { receiveState = FairylandCeremonyModel.ReceiveState.NoReach; } } RefreshAwardStateUI(); } private void RefreshAwardStateUI() { receiveBtn.RemoveAllListeners(); switch (receiveState) { case FairylandCeremonyModel.ReceiveState.NoReach: noReachImg.SetActive(true); alreadyImg.SetActive(false); receiveBtn.gameObject.SetActive(false); break; case FairylandCeremonyModel.ReceiveState.Reach: noReachImg.SetActive(false); alreadyImg.SetActive(false); receiveBtn.gameObject.SetActive(true); receiveBtn.AddListener(OnReceiveGift); break; case FairylandCeremonyModel.ReceiveState.Already: noReachImg.SetActive(false); alreadyImg.SetActive(true); receiveBtn.gameObject.SetActive(false); break; } } private void OnReceiveGift() { bool isGrid = playerPack.GetReaminGridCount(PackType.rptItem) - itemlist.Count >= 0 ? true : false; if (isGrid) { ceremonyModel.SendReceiveAward(GotServerRewardType.Def_RewardType_FCParty, awardConfig.Index); } else { SysNotifyMgr.Instance.ShowTip("BagFull"); } } } } System/NewYearFairylandCeremony/NewYearToHiAwardCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 12a9a9d0bb4006a45ad0eefe13ad039c timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: System/NewYearFairylandCeremony/NewYearToHiTaskCell.cs
New file @@ -0,0 +1,68 @@ using UnityEngine; using UnityEngine.UI; using TableConfig; using System; namespace Snxxz.UI { public class NewYearToHiTaskCell : CellView { [SerializeField] Image activeIcon; [SerializeField] Text activeNameText; [SerializeField] Text activeDesText; [SerializeField] Text progressText; [SerializeField] Button gobtn; [SerializeField] GameObject completeImg; AllPeoplePartyConfig taskConfig; FairylandCeremonyModel ceremonyModel { get { return ModelCenter.Instance.GetModel<FairylandCeremonyModel>(); } } private void OnEnable() { ceremonyModel.RefreshHiPointAct += OnRefreshProgress; } private void OnDisable() { ceremonyModel.RefreshHiPointAct -= OnRefreshProgress; } public void Init(AllPeoplePartyConfig taskConfig) { activeNameText.gameObject.SetActive(false); this.taskConfig = taskConfig; activeIcon.SetSprite(taskConfig.IconKey); SetTaskState(ceremonyModel.GetPeopleTaskTimesById(taskConfig.ID),taskConfig.TotalTimes); activeDesText.text = string.Format(taskConfig.TaskDes,taskConfig.AddPoint); } private void OnRefreshProgress(int actId) { if (taskConfig == null || taskConfig.ID != actId) return; SetTaskState(ceremonyModel.GetPeopleTaskTimesById(taskConfig.ID), taskConfig.TotalTimes); } public void SetTaskState(int curProgress,int sumProgress) { gobtn.RemoveAllListeners(); progressText.text = StringUtility.Contact(curProgress, "/", sumProgress); if (curProgress < sumProgress) { gobtn.gameObject.SetActive(true); completeImg.SetActive(false); progressText.color = UIHelper.GetUIColor(TextColType.Red); gobtn.AddListener(()=> { WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)taskConfig.JumpId); }); } else { gobtn.gameObject.SetActive(false); completeImg.SetActive(true); progressText.color = UIHelper.GetUIColor(TextColType.Green); } } } } System/NewYearFairylandCeremony/NewYearToHiTaskCell.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 005a236d335a39b40b69ba9242f67311 timeCreated: 1548402738 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: