| | |
| | | using System;
|
| | | using System.Collections;
|
| | | using System.Collections.Generic;
|
| | | using System.Linq;
|
| | | using System.Text;
|
| | | using Cysharp.Threading.Tasks;
|
| | | using LitJson;
|
| | |
| | | public event Action DonateCntListEvent;
|
| | | public event Action<bool> EnterOrQuitGuildEvent; //进入或退出公会事件
|
| | |
|
| | |
|
| | | public override void Init()
|
| | | {
|
| | | ParseConfig();
|
| | |
| | | void OnPlayerLoginOk()
|
| | | {
|
| | | UpdateDonateRedPoint();
|
| | | QueryZBGFamilyInfo();
|
| | | }
|
| | |
|
| | | void PlayerDataRefreshEvent(PlayerDataType type)
|
| | |
| | | //需要转到HomeWin界面 且关闭公会相关界面(父子继承关闭)
|
| | | UIManager.Instance.GetUI<MainWin>()?.ClickFunc(0);
|
| | |
|
| | |
|
| | | isQueryZBGYet = false;
|
| | | zhenbaogeCutState = 0;
|
| | | familyZBGActions.Clear();
|
| | | sortPlayerCut.Clear();
|
| | | |
| | | UpdateZBGRedpoint();
|
| | | UpdateDonateRedPoint();
|
| | | EnterOrQuitGuildEvent?.Invoke(false);
|
| | | }
|
| | |
|
| | | //注意上线通知公会数据时也会触发
|
| | | public async UniTask AfterEnterGuild()
|
| | | {
|
| | | //这里还没有公会数据, 后续的包会更新公会数据
|
| | | await UniTask.Delay(100);
|
| | | UpdateDonateRedPoint();
|
| | | UpdateZBGRedpoint();
|
| | | EnterOrQuitGuildEvent?.Invoke(true);
|
| | | }
|
| | |
|
| | |
| | | public int renameFairyNameCD;
|
| | | public int renameFairyNameCost;
|
| | | public int renameFairyNameMoneyType;
|
| | |
|
| | |
|
| | | |
| | |
|
| | | //珍宝阁(行商)
|
| | | public int zhenbaogeCutState = 0;
|
| | | public int zhenbaogeBuyState = 0;
|
| | | public bool needCheckCutCD = false;
|
| | | public event Action UpdateZhenbaogeEvent;
|
| | | public bool isQueryZBGYet = false;
|
| | | public float lastZBGStartTime = 0; //过天刷新用
|
| | | public const int ZBGFamilyActionType = 16;
|
| | | //{id:数据} 砍价行为,value1为玩家ID,特殊约定为1时为家族的数据
|
| | | public Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction> familyZBGActions = new Dictionary<int, HA513_tagMCFamilyActionInfo.tagMCFamilyAction>();
|
| | | public List<int> sortPlayerCut = new List<int>();
|
| | | public event Action<bool> UpdateFamilyActionEvent;
|
| | | public int zbgPriceType;
|
| | | public int zbgOrgPriceValue;
|
| | | public int zbgChangFamilyCD;
|
| | | public List<int> cutCntListForTalk = new List<int>();
|
| | |
|
| | |
|
| | | void ParseConfig()
|
| | | {
|
| | |
| | | renameFairyNameMoneyType = arr[0];
|
| | | renameFairyNameCost = arr[1];
|
| | |
|
| | | config = FuncConfigConfig.Get("Zhenbaoge");
|
| | | zbgPriceType = int.Parse(config.Numerical1);
|
| | | zbgOrgPriceValue = int.Parse(config.Numerical2);
|
| | | zbgChangFamilyCD = int.Parse(config.Numerical3);
|
| | | cutCntListForTalk = JsonMapper.ToObject<List<int>>(config.Numerical4);
|
| | | }
|
| | |
|
| | |
|
| | |
| | | #region 公会自定义记录
|
| | | public void UpdateFamilyAction(HA513_tagMCFamilyActionInfo _package)
|
| | | {
|
| | | if (PlayerDatas.Instance.fairyData == null ||
|
| | | PlayerDatas.Instance.fairyData.fairy == null ||
|
| | | PlayerDatas.Instance.fairyData.fairy.FamilyID != _package.FamilyID)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (!familyActions.ContainsKey((int)_package.FamilyID))
|
| | | {
|
| | |
| | | }
|
| | |
|
| | | familyActions[(int)_package.FamilyID][_package.ActionType] = _package.FamilyActionList;
|
| | |
|
| | | UpdateHawkerAction(_package);
|
| | |
|
| | | FamilyActionInfoEvent?.Invoke((int)_package.FamilyID, _package.ActionType);
|
| | | }
|
| | |
|
| | |
| | | public void QueryFamilyAction(int familyID, int actionType)
|
| | | {
|
| | | var pack = new CA617_tagCMQueryFamilyAction();
|
| | | pack.FamilyID = (ushort)familyID;
|
| | | pack.FamilyID = (uint)familyID;
|
| | | pack.ActionType = (byte)actionType;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | |
| | | }
|
| | | #endregion
|
| | |
|
| | | #region 珍宝阁
|
| | | |
| | |
|
| | | public void UpdateZhenbaogeInfo(HA512_tagMCFamilyZhenbaogeInfo netPack)
|
| | | {
|
| | | //砍价状态:仙盟里记录已砍价才是真的已砍价状态,封包中的砍价状态用于判断cd间隔使用
|
| | | needCheckCutCD = netPack.CutState == 1;
|
| | | zhenbaogeBuyState = netPack.BuyState;
|
| | | UpdateZhenbaogeEvent?.Invoke();
|
| | | UpdateZBGRedpoint();
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | //登录后首次打开查询,换新仙盟查询
|
| | | public void QueryZBGFamilyInfo()
|
| | | {
|
| | | if (isQueryZBGYet)
|
| | | return;
|
| | |
|
| | | QueryFamilyAction((int)PlayerDatas.Instance.baseData.FamilyId, 16);
|
| | |
|
| | | isQueryZBGYet = true;
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | //更新砍价信息
|
| | | public void UpdateHawkerAction(HA513_tagMCFamilyActionInfo vNetData)
|
| | | {
|
| | | if (vNetData.ActionType != ZBGFamilyActionType)
|
| | | {
|
| | | return;
|
| | | }
|
| | | bool restart = false;
|
| | | if (vNetData.FamilyActionList.Length == 1 && vNetData.FamilyActionList[0].Value1 == 1)
|
| | | {
|
| | | if (familyZBGActions.ContainsKey(1) && familyZBGActions[1].Time != vNetData.FamilyActionList[0].Time)
|
| | | {
|
| | | familyZBGActions.Clear();
|
| | | sortPlayerCut.Clear();
|
| | | restart = true;
|
| | | }
|
| | | }
|
| | |
|
| | | for (int i = 0; i < vNetData.FamilyActionList.Length; i++)
|
| | | {
|
| | | int playerID = (int)vNetData.FamilyActionList[i].Value1;
|
| | | familyZBGActions[playerID] = vNetData.FamilyActionList[i];
|
| | |
|
| | | }
|
| | |
|
| | | if (familyZBGActions.ContainsKey((int)PlayerDatas.Instance.baseData.PlayerID))
|
| | | {
|
| | | //自己是否已砍价 从列表中查找
|
| | | zhenbaogeCutState = 1;
|
| | | }
|
| | | else
|
| | | {
|
| | | zhenbaogeCutState = 0;
|
| | | }
|
| | |
|
| | |
|
| | | sortPlayerCut = familyZBGActions.Keys.ToList();
|
| | | if (sortPlayerCut.Contains(1))
|
| | | sortPlayerCut.Remove(1);
|
| | | sortPlayerCut.Sort((a, b) => { return familyZBGActions[a].Time.CompareTo(familyZBGActions[b].Time); });
|
| | |
|
| | | UpdateFamilyActionEvent?.Invoke(restart);
|
| | | UpdateZBGRedpoint();
|
| | | }
|
| | |
|
| | | //砍价人数
|
| | | public int GetZBGFamilyActionCount()
|
| | | {
|
| | | return Math.Max(0, familyZBGActions.Count - 1);
|
| | | }
|
| | |
|
| | | public int GetTalkState()
|
| | | {
|
| | | int cnt = GetZBGFamilyActionCount();
|
| | | for (int i = 0; i < cutCntListForTalk.Count; i++)
|
| | | {
|
| | | if (cnt < cutCntListForTalk[i])
|
| | | {
|
| | | return i;
|
| | | }
|
| | | }
|
| | | return 0;
|
| | | }
|
| | |
|
| | | public int[][] GetZBGItems()
|
| | | {
|
| | | if (!familyZBGActions.ContainsKey(1))
|
| | | return null;
|
| | |
|
| | | return JsonMapper.ToObject<int[][]>(familyZBGActions[1].UseData);
|
| | | }
|
| | |
|
| | | public void OnZhenbaogeOP(byte type)
|
| | | {
|
| | | var pack = new CA616_tagCMZhenbaogeOP();
|
| | | pack.OpType = type;
|
| | | GameNetSystem.Instance.SendInfo(pack);
|
| | | }
|
| | |
|
| | |
|
| | | public Dictionary <int, FairyMember> tmpNoCutMembers = new Dictionary<int, FairyMember>();
|
| | |
|
| | | //未议价成员
|
| | | public void CalcNoCutMembers()
|
| | | {
|
| | | tmpNoCutMembers.Clear();
|
| | | var fairy = PlayerDatas.Instance.fairyData;
|
| | | if (fairy == null)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | foreach(var playerID in fairy.memberIDList)
|
| | | {
|
| | | if (!familyZBGActions.ContainsKey(playerID))
|
| | | {
|
| | | tmpNoCutMembers[playerID] = fairy.GetMember(playerID);
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|
| | |
|
| | | #region 红点
|
| | | Redpoint hallRedpoint = new Redpoint(MainRedDot.MainGuildRedpoint, MainRedDot.guildHallRedpointID);
|
| | | Redpoint donateRedpoint = new Redpoint(MainRedDot.guildHallRedpointID, MainRedDot.MainGuildRedpoint * 100);
|
| | | Redpoint donateRedpoint = new Redpoint(MainRedDot.guildHallRedpointID, MainRedDot.guildHallRedpointID * 10);
|
| | | //珍宝阁(行商)
|
| | | Redpoint zbgRedpoint = new Redpoint(MainRedDot.MainGuildRedpoint, MainRedDot.MainGuildRedpoint * 100 + 1);
|
| | |
|
| | | void UpdateDonateRedPoint()
|
| | | {
|
| | |
| | | }
|
| | | }
|
| | | }
|
| | | |
| | | public void UpdateZBGRedpoint()
|
| | | {
|
| | | zbgRedpoint.state = RedPointState.None;
|
| | |
|
| | | if (!PlayerDatas.Instance.fairyData.HasFairy)
|
| | | {
|
| | | return;
|
| | | }
|
| | |
|
| | | if (zhenbaogeCutState == 0)
|
| | | {
|
| | | zbgRedpoint.state = RedPointState.Simple;
|
| | | }
|
| | | else if (zhenbaogeBuyState == 0)
|
| | | {
|
| | | if (familyZBGActions[1].Value3 > 0)
|
| | | {
|
| | | zbgRedpoint.state = RedPointState.Simple;
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
|