| | |
| | | public static void Init()
|
| | | {
|
| | | // 登记相应的数据体及对应的数据转逻辑类
|
| | | Register(typeof(HA306_tagMCFairyDomainInfo), typeof(DTCA306_tagMCFairyDomainInfo));
|
| | | Register(typeof(HB107_tagMCRolePointInfo), typeof(DTCB107_tagMCRolePointInfo));
|
| | | Register(typeof(HA327_tagMCRealmExpInfo), typeof(DTCA327_tagMCRealmExpInfo));
|
| | | Register(typeof(HA40C_tagGCAllFamilyBossInfo), typeof(DTCA40C_tagGCAllFamilyBossInfo));
|
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: Fish |
| | | // [ Date ]: Thursday, February 14, 2019 |
| | | // [ Date ]: Monday, April 08, 2019 |
| | | //-------------------------------------------------------- |
| | | |
| | | using System.Collections.Generic; |
| | |
| | | public partial class DailyQuestOpenTimeConfig |
| | | { |
| | | |
| | | public readonly int ID; |
| | | public readonly string ActionName; |
| | | public readonly int OpenServerDay; |
| | | public readonly string OpenTime; |
| | | public readonly int Duration; |
| | | public readonly int DayTimes; |
| | | public readonly int DayReKind; |
| | | public readonly int WeekTimes; |
| | | public readonly int WeekReKind; |
| | | public readonly int ID;
|
| | | public readonly string ActionName;
|
| | | public readonly int OpenServerDay;
|
| | | public readonly string OpenTime;
|
| | | public readonly int Duration;
|
| | | public readonly int DayTimes;
|
| | | public readonly int DayBuyTimes;
|
| | | public readonly int BuyNeedMoney;
|
| | | public readonly int DayItemAddTimes;
|
| | | public readonly int DayItemID;
|
| | | public readonly int DayReKind;
|
| | | public readonly int WeekTimes;
|
| | | public readonly int WeekReKind;
|
| | | public readonly int OpenUI; |
| | | |
| | | public DailyQuestOpenTimeConfig() |
| | |
| | | { |
| | | var tables = input.Split('\t'); |
| | | |
| | | int.TryParse(tables[0],out ID); |
| | | |
| | | ActionName = tables[1]; |
| | | |
| | | int.TryParse(tables[2],out OpenServerDay); |
| | | |
| | | OpenTime = tables[3]; |
| | | |
| | | int.TryParse(tables[4],out Duration); |
| | | |
| | | int.TryParse(tables[5],out DayTimes); |
| | | |
| | | int.TryParse(tables[6],out DayReKind); |
| | | |
| | | int.TryParse(tables[7],out WeekTimes); |
| | | |
| | | int.TryParse(tables[8],out WeekReKind); |
| | | |
| | | int.TryParse(tables[9],out OpenUI); |
| | | int.TryParse(tables[0],out ID); |
| | |
|
| | | ActionName = tables[1];
|
| | |
|
| | | int.TryParse(tables[2],out OpenServerDay); |
| | |
|
| | | OpenTime = tables[3];
|
| | |
|
| | | int.TryParse(tables[4],out Duration); |
| | |
|
| | | int.TryParse(tables[5],out DayTimes); |
| | |
|
| | | int.TryParse(tables[6],out DayBuyTimes); |
| | |
|
| | | int.TryParse(tables[7],out BuyNeedMoney); |
| | |
|
| | | int.TryParse(tables[8],out DayItemAddTimes); |
| | |
|
| | | int.TryParse(tables[9],out DayItemID); |
| | |
|
| | | int.TryParse(tables[10],out DayReKind); |
| | |
|
| | | int.TryParse(tables[11],out WeekTimes); |
| | |
|
| | | int.TryParse(tables[12],out WeekReKind); |
| | |
|
| | | int.TryParse(tables[13],out OpenUI); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | fileFormatVersion: 2 |
| | | guid: c6f0b6d546225e442839089494e039bc |
| | | timeCreated: 1550121862 |
| | | timeCreated: 1554704148 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | |
| | | public readonly string name;
|
| | | public readonly int dungeonId;
|
| | | public readonly int lineId;
|
| | | public readonly int npcId;
|
| | | public readonly int crossServer;
|
| | | public readonly int point;
|
| | | public readonly int alchemyLevel;
|
| | | public readonly int[] reward;
|
| | | public readonly int[] rewardState;
|
| | | public readonly string PortraitID; |
| | | |
| | | public HazyRegionConfig() |
| | |
| | |
|
| | | int.TryParse(tables[4],out lineId);
|
| | |
|
| | | int.TryParse(tables[5],out point); |
| | | int.TryParse(tables[5],out npcId); |
| | |
|
| | | int.TryParse(tables[6],out alchemyLevel); |
| | | int.TryParse(tables[6],out crossServer); |
| | |
|
| | | string[] rewardStringArray = tables[7].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | int.TryParse(tables[7],out point); |
| | |
|
| | | int.TryParse(tables[8],out alchemyLevel); |
| | |
|
| | | string[] rewardStringArray = tables[9].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | reward = new int[rewardStringArray.Length]; |
| | | for (int i=0;i<rewardStringArray.Length;i++) |
| | | { |
| | | int.TryParse(rewardStringArray[i],out reward[i]); |
| | | }
|
| | |
|
| | | PortraitID = tables[8]; |
| | | string[] rewardStateStringArray = tables[10].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); |
| | | rewardState = new int[rewardStateStringArray.Length]; |
| | | for (int i=0;i<rewardStateStringArray.Length;i++) |
| | | { |
| | | int.TryParse(rewardStateStringArray[i],out rewardState[i]); |
| | | }
|
| | |
|
| | | PortraitID = tables[11]; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 3404c0f308cb2174bb7b93e12c3110bd |
| | | timeCreated: 1554693663 |
| | | timeCreated: 1554713166 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | // A5 25 购买日常活动次数 #tagCMBuyDailyActionCnt
|
| | |
|
| | | public class CA525_tagCMBuyDailyActionCnt : GameNetPackBasic {
|
| | | public uint ActionID; // ID
|
| | | public byte AddType; // 0-花仙玉 1-用物品
|
| | |
|
| | | public CA525_tagCMBuyDailyActionCnt () {
|
| | | combineCmd = (ushort)0x03FE;
|
| | | _cmd = (ushort)0xA525;
|
| | | }
|
| | |
|
| | | public override void WriteToBytes () {
|
| | | WriteBytes (ActionID, NetDataType.DWORD);
|
| | | WriteBytes (AddType, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 5abd0a346af49774db312d49c39a4004 |
| | | timeCreated: 1554708856 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | // A5 26 寻访仙域 #tagCMVisitFairyDomain
|
| | |
|
| | | public class CA526_tagCMVisitFairyDomain : GameNetPackBasic {
|
| | | public byte Type; //0-开始寻访 1-结束寻访
|
| | |
|
| | | public CA526_tagCMVisitFairyDomain () {
|
| | | combineCmd = (ushort)0x03FE;
|
| | | _cmd = (ushort)0xA526;
|
| | | }
|
| | |
|
| | | public override void WriteToBytes () {
|
| | | WriteBytes (Type, NetDataType.BYTE);
|
| | | }
|
| | |
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: f13a5e03498d69c448f40987085005ef |
| | | timeCreated: 1554708856 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Monday, April 08, 2019
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using Snxxz.UI;
|
| | | public class DTCA306_tagMCFairyDomainInfo : DtcBasic
|
| | | {
|
| | |
|
| | | public override void Done(GameNetPackBasic vNetPack)
|
| | | {
|
| | | base.Done(vNetPack);
|
| | | var package = vNetPack as HA306_tagMCFairyDomainInfo;
|
| | |
|
| | | ModelCenter.Instance.GetModel<HazyRegionModel>().ReceivePackage(package);
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: f2900c8af146e174eb09138dbb65c67d |
| | | timeCreated: 1554708793 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| New file |
| | |
| | | using UnityEngine;
|
| | | using System.Collections;
|
| | |
|
| | | // A3 06 缥缈仙域信息 #tagMCFairyDomainInfo
|
| | |
|
| | | public class HA306_tagMCFairyDomainInfo : GameNetPackBasic {
|
| | | public byte State; //是否寻访中
|
| | | public ushort Energy; //体力
|
| | | public byte Count; // 信息个数
|
| | | public tagMCFairyDomainEvent[] InfoList; // 信息列表
|
| | |
|
| | | public HA306_tagMCFairyDomainInfo () {
|
| | | _cmd = (ushort)0xA306;
|
| | | }
|
| | |
|
| | | public override void ReadFromBytes (byte[] vBytes) {
|
| | | TransBytes (out State, vBytes, NetDataType.BYTE);
|
| | | TransBytes (out Energy, vBytes, NetDataType.WORD);
|
| | | TransBytes (out Count, vBytes, NetDataType.BYTE);
|
| | | InfoList = new tagMCFairyDomainEvent[Count];
|
| | | for (int i = 0; i < Count; i ++) {
|
| | | InfoList[i] = new tagMCFairyDomainEvent();
|
| | | TransBytes (out InfoList[i].EventID, vBytes, NetDataType.WORD);
|
| | | TransBytes (out InfoList[i].EventState, vBytes, NetDataType.BYTE);
|
| | | }
|
| | | }
|
| | |
|
| | | public struct tagMCFairyDomainEvent {
|
| | | public ushort EventID; //事件ID
|
| | | public byte EventState; //事件状态 1-未拜访 2-拜访中 3-已拜访 |
| | | }
|
| | |
|
| | | }
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: a1dec766a8bd13348b98571a82ce0ea2 |
| | | timeCreated: 1554708767 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | {
|
| | | CloseSubWindows();
|
| | | WindowCenter.Instance.Open<CrossServerBossWin>();
|
| | | functionOrder = bossFunc.order;
|
| | | }
|
| | |
|
| | | private void ClickArenaFunc()
|
| | | {
|
| | | CloseSubWindows();
|
| | | WindowCenter.Instance.Open<CrossServerOneVsOneWin>();
|
| | | functionOrder = arenaFunc.order;
|
| | | }
|
| | |
|
| | | private void OpenHazyRegion()
|
| | | {
|
| | | CloseSubWindows();
|
| | | WindowCenter.Instance.Open<HazyRegionWin>();
|
| | | functionOrder = m_HazyRegion.order;
|
| | | }
|
| | |
|
| | | private void ClickRight()
|
| | |
| | | return false;
|
| | | }
|
| | |
|
| | | public bool TryGetDailyQuestTimes(int _id, out DailyQuestTimes _dailyQuestTime)
|
| | | {
|
| | | _dailyQuestTime = default(DailyQuestTimes);
|
| | | var config = DailyQuestConfig.Get(_id);
|
| | | if (config != null && config.RelatedType == 1)
|
| | | {
|
| | | return dailyQuestTimes.TryGetValue(config.RelatedID, out _dailyQuestTime);
|
| | | }
|
| | | else
|
| | | {
|
| | | return false;
|
| | | }
|
| | | }
|
| | |
|
| | | public bool IsDailyQuestUnLock(int _dailyQuestId)
|
| | | {
|
| | | var config = DailyQuestConfig.Get(_dailyQuestId);
|
| | |
| | | switch (config.RelatedID)
|
| | | {
|
| | | case 11:
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (completedTimes >= dailyQuestOpenTime.DayTimes + GeneralDefine.runeTowerSweepBuyTimes)
|
| | | {
|
| | | return DailyQuestState.Completed;
|
| | | }
|
| | | else
|
| | | {
|
| | | return DailyQuestState.CanBuyTimes;
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (completedTimes >= dailyQuestOpenTime.DayTimes + GeneralDefine.runeTowerSweepBuyTimes)
|
| | | {
|
| | | return DailyQuestState.Completed;
|
| | | }
|
| | | else
|
| | | {
|
| | | return DailyQuestState.CanBuyTimes;
|
| | | }
|
| | | }
|
| | | case 19:
|
| | | return DailyQuestState.Normal;
|
| | | case 25:
|
| | | {
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (completedTimes >= dailyQuestOpenTime.DayTimes +
|
| | | dailyQuestOpenTime.DayBuyTimes + dailyQuestOpenTime.DayItemAddTimes)
|
| | | {
|
| | | return DailyQuestState.Completed;
|
| | | }
|
| | | else
|
| | | {
|
| | | return DailyQuestState.CanBuyTimes;
|
| | | }
|
| | | }
|
| | | default:
|
| | | return DailyQuestState.Completed;
|
| | | }
|
| New file |
| | |
| | | //--------------------------------------------------------
|
| | | // [Author]: 第二世界
|
| | | // [ Date ]: Monday, April 08, 2019
|
| | | //--------------------------------------------------------
|
| | |
|
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using UnityEngine;
|
| | | using UnityEngine.UI;
|
| | |
|
| | | namespace Snxxz.UI
|
| | | {
|
| | |
|
| | | public class HazyRegionBuyTimesWin : Window
|
| | | {
|
| | | [SerializeField] Text m_BuyTimes;
|
| | | [SerializeField] Text m_Money;
|
| | | [SerializeField] Button m_Buy;
|
| | |
|
| | | [SerializeField] Text m_UseItemTimes;
|
| | | [SerializeField] ItemBehaviour m_Item;
|
| | | [SerializeField] Button m_Use;
|
| | |
|
| | | [SerializeField] Button m_Close;
|
| | |
|
| | | PackModel packModel { get { return ModelCenter.Instance.GetModel<PackModel>(); } }
|
| | | DailyQuestModel dailyQuestModel { get { return ModelCenter.Instance.GetModel<DailyQuestModel>(); } }
|
| | | #region Built-in
|
| | | protected override void BindController()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void AddListeners()
|
| | | {
|
| | | m_Close.AddListener(CloseClick);
|
| | | m_Buy.AddListener(OnBuyTimes);
|
| | | m_Use.AddListener(OnUseItem);
|
| | | }
|
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | dailyQuestModel.dailyQuestProgressUpdateEvent += DailyQuestProgressUpdateEvent;
|
| | | packModel.refreshItemCountEvent += RefreshItemCountEvent;
|
| | |
|
| | | Display();
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
|
| | | packModel.refreshItemCountEvent -= RefreshItemCountEvent;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | | void Display()
|
| | | {
|
| | | DisplayMoney();
|
| | | DisplayTimes();
|
| | | DisplayItem();
|
| | | }
|
| | |
|
| | | void DisplayMoney()
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | m_Money.text = Language.Get("HazyRegionBuyTimesCost", dailyQuestOpenTime.BuyNeedMoney);
|
| | | }
|
| | |
|
| | | void DisplayTimes()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayUseItemTimes = 0;
|
| | | var dayBuyTimes = 0;
|
| | |
|
| | | if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
| | | {
|
| | | dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
| | | dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
| | | }
|
| | |
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | |
|
| | | var times = Mathf.Clamp(dailyQuestOpenTime.DayBuyTimes - dayBuyTimes, 0, dailyQuestOpenTime.DayBuyTimes);
|
| | | var label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
| | | m_BuyTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayBuyTimes);
|
| | |
|
| | | times = Mathf.Clamp(dailyQuestOpenTime.DayItemAddTimes - dayUseItemTimes, 0, dailyQuestOpenTime.DayItemAddTimes);
|
| | | label = UIHelper.AppendColor(times == 0 ? TextColType.Red : TextColType.Green, times.ToString(), true);
|
| | |
|
| | | m_UseItemTimes.text = StringUtility.Contact(label, "/", dailyQuestOpenTime.DayItemAddTimes);
|
| | | }
|
| | |
|
| | | void DisplayItem()
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | m_Item.SetItem(dailyQuestOpenTime.DayItemID, 1);
|
| | | }
|
| | |
|
| | | private void DailyQuestProgressUpdateEvent(int id)
|
| | | {
|
| | | if (id == (int)DailyQuestType.HazyRegion)
|
| | | {
|
| | | DisplayTimes();
|
| | | }
|
| | | }
|
| | |
|
| | | private void RefreshItemCountEvent(PackType packType, int index, int itemId)
|
| | | {
|
| | | if (packType == PackType.Item)
|
| | | {
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | if (config != null)
|
| | | {
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dailyQuestOpenTime != null && dailyQuestOpenTime.DayItemID == itemId)
|
| | | {
|
| | | DisplayItem();
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | private void OnUseItem()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayUseItemTimes = 0;
|
| | |
|
| | | if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
| | | {
|
| | | dayUseItemTimes = dailyQuestTimes.dayUseItemTimes;
|
| | | }
|
| | |
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dayUseItemTimes >= dailyQuestOpenTime.DayItemAddTimes)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | var itemCount = packModel.GetItemCountByID(PackType.Item, dailyQuestOpenTime.DayItemID);
|
| | | if (itemCount <= 0)
|
| | | {
|
| | | ModelCenter.Instance.GetModel<GetItemPathModel>().SetChinItemModel(dailyQuestOpenTime.DayItemID);
|
| | | return;
|
| | | }
|
| | |
|
| | | var pak = new CA525_tagCMBuyDailyActionCnt();
|
| | | pak.AddType = 1;
|
| | | pak.ActionID = (uint)config.RelatedID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | | private void OnBuyTimes()
|
| | | {
|
| | | DailyQuestTimes dailyQuestTimes;
|
| | |
|
| | | var dayBuyTimes = 0;
|
| | |
|
| | | if (dailyQuestModel.TryGetDailyQuestTimes((int)DailyQuestType.HazyRegion, out dailyQuestTimes))
|
| | | {
|
| | | dayBuyTimes = dailyQuestTimes.dayBuyTimes;
|
| | | }
|
| | |
|
| | | var config = DailyQuestConfig.Get((int)DailyQuestType.HazyRegion);
|
| | | var dailyQuestOpenTime = DailyQuestOpenTimeConfig.Get(config.RelatedID);
|
| | | if (dayBuyTimes >= dailyQuestOpenTime.DayBuyTimes)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (PlayerDatas.Instance.baseData.diamond < dailyQuestOpenTime.BuyNeedMoney)
|
| | | {
|
| | | WindowCenter.Instance.Open<RechargeTipWin>();
|
| | | return;
|
| | | }
|
| | |
|
| | | var pak = new CA525_tagCMBuyDailyActionCnt();
|
| | | pak.AddType = 0;
|
| | | pak.ActionID = (uint)config.RelatedID;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 363f96dff81ee0342ad58f7d09951215 |
| | | timeCreated: 1554705839 |
| | | licenseType: Pro |
| | | MonoImporter: |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | |
|
| | | public void Display()
|
| | | {
|
| | | dailyQuestModel.dailyQuestProgressUpdateEvent += DailyQuestProgressUpdateEvent;
|
| | |
|
| | | DisplayOpenTime();
|
| | | DisplayTimes();
|
| | | }
|
| | |
| | |
|
| | | private void BuyTimes()
|
| | | {
|
| | |
|
| | | var questState = dailyQuestModel.GetQuestState((int)DailyQuestType.HazyRegion);
|
| | | if (questState == DailyQuestModel.DailyQuestState.OutTime)
|
| | | {
|
| | | return;
|
| | | }
|
| | | WindowCenter.Instance.Open<HazyRegionBuyTimesWin>();
|
| | | }
|
| | |
|
| | | bool TryOpenHazyReion(out int error)
|
| | |
| | |
|
| | | public void Dispose()
|
| | | {
|
| | | dailyQuestModel.dailyQuestProgressUpdateEvent -= DailyQuestProgressUpdateEvent;
|
| | | }
|
| | |
|
| | | private void DailyQuestProgressUpdateEvent(int id)
|
| | | {
|
| | | if (id == (int)DailyQuestType.HazyRegion)
|
| | | {
|
| | | DisplayTimes();
|
| | | }
|
| | | }
|
| | | }
|
| | | } |
| | |
| | | using System.Collections; |
| | | using System;
|
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI;
|
| | |
| | | {
|
| | | [SerializeField] UIAlphaTween m_AlphaTween;
|
| | | [SerializeField] UILinerMove m_LinerMove;
|
| | | [SerializeField] Image m_IncidentTitle;
|
| | | [SerializeField] Text m_IncidentTitle;
|
| | | [SerializeField] Text m_DepletionPoint;
|
| | | [SerializeField] Image m_Bottom;
|
| | | [SerializeField] Image m_Icon;
|
| | |
|
| | | [SerializeField] Transform m_ContainerBoss;
|
| | | [SerializeField] Image m_BossName;
|
| | | [SerializeField] Text m_PlayerCount;
|
| | |
|
| | | [SerializeField] Transform m_ContainerCrossServer;
|
| | |
|
| | | [SerializeField] Transform m_ContainerItem;
|
| | | [SerializeField] ItemCell[] m_Items;
|
| | | [SerializeField] ItemBehaviour[] m_Items;
|
| | | [SerializeField] Text[] m_ItemDescriptions;
|
| | |
|
| | | [SerializeField] Transform m_ContainerPlaying;
|
| | | [SerializeField] Transform m_ContainerProcessing;
|
| | | [SerializeField] Transform m_ContainerCompleted;
|
| | |
|
| | | [SerializeField] Transform m_ContainerSelect;
|
| | | [SerializeField] Button m_Select;
|
| | |
|
| | | [Header("Boss")]
|
| | | [SerializeField] Transform m_ContainerBoss;
|
| | | [SerializeField] Text m_BossName;
|
| | | [SerializeField] Text m_PlayerCount;
|
| | | [SerializeField] Transform m_ContainerDead;
|
| | | [SerializeField] Text m_RebornTime;
|
| | |
|
| | | public UIAlphaTween alphaTween { get { return m_AlphaTween; } }
|
| | | public UILinerMove linerMove { get { return m_LinerMove; } }
|
| | |
|
| | | HazyRegionModel model { get { return ModelCenter.Instance.GetModel<HazyRegionModel>(); } }
|
| | |
|
| | | int incidentId = 0;
|
| | |
|
| | | HazyRegionIncidentType incidentType = HazyRegionIncidentType.Adventure;
|
| | |
|
| | | private void Awake()
|
| | | {
|
| | | m_Select.SetListener(OnSelect);
|
| | | }
|
| | |
|
| | | public override void Display(object _data)
|
| | | {
|
| | | base.Display(_data);
|
| | |
|
| | | incidentId = (int)_data;
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | incidentType = (HazyRegionIncidentType)config.incidentType;
|
| | |
|
| | | DisplayBase();
|
| | | DisplayItems();
|
| | | DisplayState();
|
| | | DisplaySelect();
|
| | | DisplayBoss();
|
| | |
|
| | | model.selectIncidentRefresh -= SelectIncidentRefresh;
|
| | | model.selectIncidentRefresh += SelectIncidentRefresh;
|
| | | model.onHazyRegionIncidentRefresh -= OnHazyRegionIncidentRefresh;
|
| | | model.onHazyRegionIncidentRefresh += OnHazyRegionIncidentRefresh;
|
| | | }
|
| | |
|
| | | void DisplayBase()
|
| | | {
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | m_DepletionPoint.text = Language.Get("IncidentDepletionPoint", config.point);
|
| | | m_IncidentTitle.text = config.name;
|
| | | m_Icon.SetSprite(config.PortraitID);
|
| | | m_Icon.SetNativeSize();
|
| | | m_ContainerCrossServer.gameObject.SetActive(config.crossServer == 1);
|
| | | }
|
| | |
|
| | | void DisplayItems()
|
| | | {
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | for (int i = 0; i < m_Items.Length; i++)
|
| | | {
|
| | | if (config.reward != null && i < config.reward.Length)
|
| | | {
|
| | | m_Items[i].gameObject.SetActive(true);
|
| | | m_Items[i].SetItem(config.reward[i], 1);
|
| | | m_ItemDescriptions[i].gameObject.SetActive(true);
|
| | | m_ItemDescriptions[i].text = config.rewardState[i] == 0 ? string.Empty :
|
| | | Language.Get(StringUtility.Contact("HazyRegionItemState_", config.rewardState[i]));
|
| | | }
|
| | | else
|
| | | {
|
| | | m_Items[i].gameObject.SetActive(false);
|
| | | m_ItemDescriptions[i].gameObject.SetActive(false);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplayBoss()
|
| | | {
|
| | | m_ContainerBoss.gameObject.SetActive(incidentType == HazyRegionIncidentType.Boss);
|
| | | var config = HazyRegionConfig.Get(incidentId);
|
| | | if (incidentType == HazyRegionIncidentType.Boss)
|
| | | {
|
| | | var npcConfig = NPCConfig.Get(config.npcId);
|
| | | m_BossName.text = npcConfig.charName;
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplayState()
|
| | | {
|
| | | HazyRegionModel.Incident incident;
|
| | | if (model.TryGetIncident(incidentId, out incident))
|
| | | {
|
| | | m_ContainerCompleted.gameObject.SetActive(incident.state == HazyRegionModel.IncidentState.Complete);
|
| | | m_ContainerProcessing.gameObject.SetActive(incident.state == HazyRegionModel.IncidentState.Processing);
|
| | | }
|
| | | }
|
| | |
|
| | | void DisplaySelect()
|
| | | {
|
| | | m_ContainerSelect.gameObject.SetActive(incidentId == model.selectIncident);
|
| | | }
|
| | |
|
| | | private void SelectIncidentRefresh()
|
| | | {
|
| | | DisplaySelect();
|
| | | }
|
| | |
|
| | | private void OnHazyRegionIncidentRefresh()
|
| | | {
|
| | | DisplayState();
|
| | | }
|
| | |
|
| | | private void OnSelect()
|
| | | {
|
| | | model.selectIncident = incidentId;
|
| | | }
|
| | |
|
| | | public override void Dispose()
|
| | | {
|
| | | base.Dispose();
|
| | | model.selectIncidentRefresh -= SelectIncidentRefresh;
|
| | | model.onHazyRegionIncidentRefresh -= OnHazyRegionIncidentRefresh;
|
| | | }
|
| | | }
|
| | | } |
| | |
| | |
|
| | | int Compare(int lhs, int rhs)
|
| | | {
|
| | | HazyRegionModel.Incident lhs_incident;
|
| | | HazyRegionModel.Incident rhs_incident;
|
| | | if (model.TryGetIncident(lhs, out lhs_incident)
|
| | | && model.TryGetIncident(rhs, out rhs_incident))
|
| | | var lhs_config = HazyRegionConfig.Get(lhs);
|
| | | var rhs_config = HazyRegionConfig.Get(rhs);
|
| | | if (lhs_config.incidentType != rhs_config.incidentType)
|
| | | {
|
| | | if (lhs_incident.type != rhs_incident.type)
|
| | | {
|
| | | return lhs_incident.type.CompareTo(rhs_incident.type);
|
| | | }
|
| | | var type = lhs_incident.type;
|
| | | switch (type)
|
| | | {
|
| | | case HazyRegionModel.IncidentType.Boss:
|
| | | break;
|
| | | case HazyRegionModel.IncidentType.GrassLand:
|
| | | break;
|
| | | }
|
| | | return lhs_config.incidentType.CompareTo(rhs_config.incidentType);
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | private void OnBack()
|
| | | {
|
| | | ConfirmCancel.ShowPopConfirm(Language.Get("Mail101"), Language.Get(""), (bool isOk) =>
|
| | | {
|
| | | if (isOk)
|
| | | {
|
| | | model.SendBackHazyRegion();
|
| | | }
|
| | | });
|
| | | }
|
| | |
|
| | | private void Goto()
|
| | | {
|
| | | var error = 0;
|
| | | if (!model.TryGotoIncident(model.selectIncident, out error))
|
| | | {
|
| | | model.DisplayErrorRemind(error);
|
| | | }
|
| | | else
|
| | | {
|
| | | model.SendGotoIncident(model.selectIncident);
|
| | | }
|
| | | }
|
| | |
|
| | | public void Dispose()
|
| | |
| | | }
|
| | |
|
| | | public event Action selectIncidentRefresh;
|
| | | public event Action<int> onHazyRegionStateRefresh; //0-结束拜访 1-开始拜访 2-强制刷新
|
| | | public event Action onHazyRegionIncidentRefresh;
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | |
| | | public void OnBeforePlayerDataInitialize()
|
| | | {
|
| | | isServerPrepare = false;
|
| | | point = 0;
|
| | | playing = false;
|
| | | m_Incidents.Clear();
|
| | | }
|
| | |
|
| | |
| | | return m_Incidents.TryGetValue(id, out incident);
|
| | | }
|
| | |
|
| | | public bool TryGotoIncident(int id, out int error)
|
| | | {
|
| | | error = 0;
|
| | | var config = HazyRegionConfig.Get(id);
|
| | | if (config == null)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (!TryGotoDungeon(id, out error))
|
| | | {
|
| | | return false;
|
| | | }
|
| | | Incident incident;
|
| | | if (TryGetIncident(id, out incident))
|
| | | {
|
| | | if (incident.state != IncidentState.Processing)
|
| | | {
|
| | | switch (incident.state)
|
| | | {
|
| | | case IncidentState.UnStart:
|
| | | if (point < config.point)
|
| | | {
|
| | | error = 3;
|
| | | return false;
|
| | | }
|
| | | break;
|
| | | case IncidentState.Complete:
|
| | | error = 4;
|
| | | return false;
|
| | | }
|
| | | }
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public bool TryGotoDungeon(int id, out int error)
|
| | | {
|
| | | error = 0;
|
| | | if (CrossServerUtility.IsCrossServer())
|
| | | {
|
| | | error = 1;
|
| | | return false;
|
| | | }
|
| | | var mapId = PlayerDatas.Instance.baseData.MapID;
|
| | | if (MapUtility.IsDungeon(mapId))
|
| | | {
|
| | | error = 2;
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | public ICollection<int> GetAllIncidents()
|
| | | {
|
| | | return m_Incidents.Keys;
|
| | | }
|
| | |
|
| | | public void DisplayErrorRemind(int error)
|
| | | {
|
| | | switch (error)
|
| | | {
|
| | | default:
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | public void SendGotoIncident(int id)
|
| | | {
|
| | | var config = HazyRegionConfig.Get(id);
|
| | | switch ((HazyRegionIncidentType)config.incidentType)
|
| | | {
|
| | | case HazyRegionIncidentType.Adventure:
|
| | | break;
|
| | | case HazyRegionIncidentType.Boss:
|
| | | case HazyRegionIncidentType.FairyGrass:
|
| | | case HazyRegionIncidentType.ReikiGrass:
|
| | | case HazyRegionIncidentType.Precious:
|
| | | break;
|
| | | }
|
| | | }
|
| | |
|
| | | public void SendBackHazyRegion()
|
| | | {
|
| | |
|
| | | var pak = new CA526_tagCMVisitFairyDomain();
|
| | | pak.Type = 1;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | | public void SendOpenHazyRegion()
|
| | | {
|
| | |
|
| | | var pak = new CA526_tagCMVisitFairyDomain();
|
| | | pak.Type = 0;
|
| | | GameNetSystem.Instance.SendInfo(pak);
|
| | | }
|
| | |
|
| | | public void ReceivePackage()
|
| | | public void ReceivePackage(HA306_tagMCFairyDomainInfo package)
|
| | | {
|
| | | var preplaying = playing;
|
| | |
|
| | | playing = package.State == 1;
|
| | |
|
| | | point = package.Energy;
|
| | |
|
| | | m_Incidents.Clear();
|
| | |
|
| | | for (int i = 0; i < package.Count; i++)
|
| | | {
|
| | | var data = package.InfoList[i];
|
| | | m_Incidents[data.EventID] = new Incident()
|
| | | {
|
| | | id = data.EventID,
|
| | | state = (IncidentState)data.EventState,
|
| | | };
|
| | | }
|
| | |
|
| | | if (onHazyRegionIncidentRefresh != null)
|
| | | {
|
| | | onHazyRegionIncidentRefresh();
|
| | | }
|
| | |
|
| | | if (isServerPrepare)
|
| | | {
|
| | | if (preplaying != playing)
|
| | | {
|
| | | if (onHazyRegionStateRefresh != null)
|
| | | {
|
| | | onHazyRegionStateRefresh(playing ? 1 : 0);
|
| | | }
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | if (onHazyRegionStateRefresh != null)
|
| | | {
|
| | | onHazyRegionStateRefresh(2);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | public enum IncidentState
|
| | | {
|
| | | None,
|
| | | Processing,
|
| | | Complete,
|
| | | UnStart = 1,
|
| | | Processing = 2,
|
| | | Complete = 3,
|
| | | }
|
| | |
|
| | | public enum IncidentType
|
| | | {
|
| | | Precious,
|
| | | Adventure,
|
| | | Boss,
|
| | | GrassLand,
|
| | | }
|
| | |
|
| | | public class Incident
|
| | | public struct Incident
|
| | | {
|
| | | public int id;
|
| | | public IncidentType type;
|
| | | public IncidentState state;
|
| | | }
|
| | | }
|
| | |
|
| | | public enum HazyRegionIncidentType
|
| | | {
|
| | | Adventure,
|
| | | Precious,
|
| | | FairyGrass,
|
| | | Boss,
|
| | | ReikiGrass,
|
| | | }
|
| | | } |
| | | |
| | |
| | |
|
| | | protected override void OnPreOpen()
|
| | | {
|
| | | m_EntrancePanel.gameObject.SetActive(false);
|
| | | m_IncidentPanel.gameObject.SetActive(false);
|
| | | }
|
| | |
|
| | | protected override void OnActived()
|
| | | {
|
| | | base.OnActived();
|
| | |
|
| | | Display();
|
| | |
|
| | | model.onHazyRegionStateRefresh += OnHazyRegionStateRefresh;
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | m_EntrancePanel.Dispose();
|
| | | m_IncidentPanel.Dispose();
|
| | |
|
| | | model.onHazyRegionStateRefresh -= OnHazyRegionStateRefresh;
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | | void Display()
|
| | | {
|
| | | m_EntrancePanel.gameObject.SetActive(false);
|
| | | m_IncidentPanel.gameObject.SetActive(false);
|
| | |
|
| | | m_Stage = model.playing ? HazyRegionStage.Playing : HazyRegionStage.Entrance;
|
| | |
|
| | |
| | | }
|
| | | }
|
| | |
|
| | | protected override void OnAfterOpen()
|
| | | {
|
| | | }
|
| | |
|
| | | protected override void OnPreClose()
|
| | | {
|
| | | m_EntrancePanel.Dispose();
|
| | | m_IncidentPanel.Dispose();
|
| | | }
|
| | |
|
| | | protected override void OnAfterClose()
|
| | | {
|
| | | }
|
| | | #endregion
|
| | |
|
| | | void OpenHazyRegionEntrance()
|
| | | {
|
| | | m_EntrancePanel.gameObject.SetActive(true);
|
| | | m_EntrancePanel.Dispose();
|
| | | m_EntrancePanel.Display();
|
| | | }
|
| | |
|
| | | void OpenHazyRegionIncident()
|
| | | {
|
| | | m_IncidentPanel.gameObject.SetActive(true);
|
| | | m_IncidentPanel.Dispose();
|
| | | m_IncidentPanel.Display();
|
| | | }
|
| | |
|
| | |
| | | m_EntrancePanel.Dispose();
|
| | | }
|
| | |
|
| | | private void OnHazyRegionStateRefresh(int state)
|
| | | {
|
| | | if (state == 2)
|
| | | {
|
| | | if ((model.playing && stage != HazyRegionStage.Playing)
|
| | | || (!model.playing && stage != HazyRegionStage.Entrance))
|
| | | {
|
| | | Display();
|
| | | }
|
| | | }
|
| | | else
|
| | | {
|
| | | stage = state == 0 ? HazyRegionStage.Entrance : HazyRegionStage.Playing;
|
| | | }
|
| | | }
|
| | |
|
| | | enum HazyRegionStage
|
| | | {
|
| | | Entrance,
|