using System;
|
using System.Collections.Generic;
|
using System.Text;
|
|
using UnityEngine;
|
|
public class RichNormalEvent : TRichTextEvent
|
{
|
public RichNormalEvent()
|
{
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.APPLYFAIRY, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.INVITE, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.OPENUI, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.OPENURL, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.TIP, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.GetWay, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.JOINTEAM, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.AncientRobotName, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.AuctionBidding, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.RandomChat, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.TaskFeedback, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.MyFightPoint, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.MyReikiRoot, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.MyDefense, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.JobLabel, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.BLSOS, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.GSZD, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.COPY, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.GUIDE, this);
|
RichTextMgr.Inst.RegisterEvent(RichTextEventEnum.XJDHServerIDRangeInfo, this);
|
}
|
|
public override bool Execute(RichTextEventEnum type, RichTextMgr.HrefInfo href)
|
{
|
switch (type)
|
{
|
// TODO YYL 超链接文本事件
|
// // case RichTextEventEnum.APPLYFAIRY:
|
// // {
|
// // uint id = 0;
|
// // if (uint.TryParse(href.mSplits["applyfairy"], out id))
|
// // {
|
// // ModelCenter.Instance.GetModel<FairyModel>().SendApplyFairy(id);
|
// // return true;
|
// // }
|
// // }
|
// // break;
|
// case RichTextEventEnum.JOINTEAM:
|
// {
|
// uint id = 0;
|
// if (uint.TryParse(href.mSplits["jointeam"], out id))
|
// {
|
// var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
// if (teamModel.myTeam.GetIndexOfMember((int)id) != -1)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("AlreadyInTeam2");
|
// return false;
|
// }
|
// teamModel.RequestInviteJoinTeam((int)id);
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.INVITE:
|
// {
|
// uint id = 0;
|
// if (uint.TryParse(href.mSplits["invite"], out id))
|
// {
|
// var teamModel = ModelCenter.Instance.GetModel<TeamModel>();
|
// if (teamModel.myTeam.GetIndexOfMember((int)id) != -1)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("AlreadyInTeam");
|
// return false;
|
// }
|
// if (teamModel.myTeam.inTeam)
|
// {
|
// ConfirmCancel.ShowPopConfirm(
|
// "",
|
// Language.Get("PlayerJoinTeam_1"),
|
// (bool _ok) =>
|
// {
|
// if (_ok)
|
// {
|
// teamModel.RequestExitTeam();
|
// teamModel.RequestApplyForJoin((int)id);
|
// }
|
// }
|
// );
|
// }
|
// else
|
// {
|
// teamModel.RequestApplyForJoin((int)id);
|
// }
|
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.OPENUI:
|
// {
|
// int id = 0;
|
// if (int.TryParse(href.mSplits["openui"], out id))
|
// {
|
// WindowJumpMgr.Instance.WindowJumpTo((JumpUIType)id);
|
// }
|
// else
|
// {
|
// var list = href.mSplits["openui"].Split('_');
|
// int funcOrder = 0;
|
// if (list.Length != 1)
|
// {
|
// funcOrder = int.Parse(list[1]);
|
// }
|
// WindowJumpMgr.Instance.WindowJumpToEx(list[0], 1, 0, funcOrder);
|
// if (list.Length > 2)
|
// {
|
// ModelCenter.Instance.GetModel<RoleModel>().openUIMark = int.Parse(list[2]);
|
// }
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.OPENURL:
|
// {
|
// var url = href.mSplits["openurl"];
|
// Application.OpenURL(url);
|
// }
|
// break;
|
// case RichTextEventEnum.TIP:
|
// {
|
// var _key = href.mSplits["tip"];
|
// SysNotifyMgr.Instance.ShowTip(_key);
|
// }
|
// break;
|
// case RichTextEventEnum.GetWay:
|
// {
|
// int _id = 0;
|
// int.TryParse(href.mSplits["getway"], out _id);
|
// ItemTipUtility.Show(_id);
|
// }
|
// break;
|
// case RichTextEventEnum.AuctionBidding:
|
// {
|
// if (href.mSplits.ContainsKey("auctionbidding"))
|
// {
|
// var guid = href.mSplits["auctionbidding"];
|
// guid = guid.Trim('\"');
|
// ModelCenter.Instance.GetModel<AuctionModel>().LocationItemByGuid(guid);
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.RandomChat:
|
// {
|
// if (href.mSplits.ContainsKey("randomchat"))
|
// {
|
// var chatType = (ChatInfoType)int.Parse(href.mSplits["randomchat"]);
|
// ChatCtrl.Inst.presentChatType = chatType;
|
// ChatCtrl.Inst.openFromFairyTask = true;
|
// WindowCenter.Instance.Open<ChatWin>();
|
// WindowCenter.Instance.Open<MainInterfaceWin>();
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.TaskFeedback:
|
// {
|
// if (href.fromAutoTask)
|
// {
|
// return false;
|
// }
|
// if (href.mSplits.ContainsKey("taskfeedback"))
|
// {
|
// var taskId = 0;
|
// int.TryParse(href.mSplits["taskfeedback"], out taskId);
|
|
// TaskFeedback feedback;
|
// var feedbackModel = ModelCenter.Instance.GetModel<TaskFeedbackModel>();
|
// if (feedbackModel.TryGetTaskFeedback(taskId, out feedback))
|
// {
|
// feedbackModel.ExecuteTaskFeedback(taskId);
|
// return true;
|
// }
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.BLSOS:
|
// {
|
// var list = href.mSplits["blsos"].Split('_');
|
// var blessedLandModel = ModelCenter.Instance.GetModel<BlessedLandModel>();
|
// var roleParticularModel = ModelCenter.Instance.GetModel<RoleParticularModel>();
|
// blessedLandModel.robPlayerId = uint.Parse(list[0]);
|
// blessedLandModel.helpPlayerId = uint.Parse(list[1]);
|
// blessedLandModel.helpItemIndex = uint.Parse(list[2]);
|
// blessedLandModel.helpType = 1;
|
// //福地功能未开启
|
// if (!FuncOpen.Instance.IsFuncOpen(227))
|
// {
|
// SysNotifyMgr.Instance.ShowTip("BlessedLand11");
|
// return false;
|
// }
|
// //自己点自己的求援信息
|
// if (blessedLandModel.helpPlayerId == blessedLandModel.myPlayerId)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("BlessedLand07");
|
// return false;
|
// }
|
// //抢劫者是自己
|
// if (blessedLandModel.robPlayerId == blessedLandModel.myPlayerId)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("BlessedLand08");
|
// return false;
|
// }
|
// //帮助别人的奖励次数用光
|
// if (blessedLandModel.HelpAwardCount >= blessedLandModel.maxHelpCount)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("BlessedLand06");
|
// return false;
|
// }
|
// roleParticularModel.ViewCrossPlayerCacheData((int)blessedLandModel.robPlayerId, (int)ViewPlayerType.viewCrossPlayerDataBlessedLand);
|
// }
|
// break;
|
|
// case RichTextEventEnum.GSZD:
|
// {
|
// var list = href.mSplits["gszd"].Split('_');
|
// CrossServerGodBattleFieldAssortModel model = ModelCenter.Instance.GetModel<CrossServerGodBattleFieldAssortModel>();
|
// bool isHaveTeam = model.TryGetPlayerTeamInfo(out bool isCaptain, out uint playerTeamID, out AssortTeamInfo teamInfo);
|
// uint teamID = uint.Parse(list[0]);
|
// uint sendPlayerID = uint.Parse(list[1]);
|
|
// //跨服古神战场功能未开启
|
// if (!FuncOpen.Instance.IsFuncOpen(208))
|
// {
|
// SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort01");
|
// return false;
|
// }
|
|
// //开服天数不足
|
// if (TimeUtility.OpenDay < GeneralDefine.crossServerBattleFieldOpenDay)
|
// {
|
// var mapName = UIHelper.AppendColor(TextColType.Green, MapConfig.Get(GeneralDefine.CrossBattleFieldMapID).Name);
|
// SysNotifyMgr.Instance.ShowTip("ImpactRankActivityUnOpen", mapName, GeneralDefine.crossServerBattleFieldOpenDay + 1);
|
// return false;
|
// }
|
|
// // 活动已开启
|
// if (model.IsOpenAction())
|
// {
|
// SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort03");
|
// return false;
|
// }
|
|
// //自己点自己的信息
|
// if (sendPlayerID == PlayerDatas.Instance.baseData.PlayerID)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("AlreadyInTeam");
|
// return false;
|
// }
|
|
// //自己已经有队伍
|
// if (isHaveTeam)
|
// {
|
// SysNotifyMgr.Instance.ShowTip("AlreadyHaveTeam");
|
// return false;
|
// }
|
|
// //该队伍已经申请过了
|
// if (model.IsRequest(teamID))
|
// {
|
// SysNotifyMgr.Instance.ShowTip("GodBattleFieldAssort02");
|
// return false;
|
// }
|
|
// model.SendFuncTeamMemOP(teamID, model.FuncMapID, 1);
|
// }
|
// break;
|
// case RichTextEventEnum.COPY:
|
// {
|
// var info = href.mSplits["copy"];
|
// ynmbxxjUtil.Instance.CopyContent(info);
|
// }
|
// break;
|
// case RichTextEventEnum.GUIDE:
|
// {
|
// var info = href.mSplits["startguide"];
|
// string itemInfo;
|
// href.mSplits.TryGetValue("buyitemid", out itemInfo);
|
// if (!string.IsNullOrEmpty(itemInfo))
|
// {
|
// var infoArr = itemInfo.Split('_');
|
// if (infoArr.Length >= 2)
|
// {
|
// StoreConfig storeConfig = StoreConfig.Get(int.Parse(infoArr[1]));
|
// ModelCenter.Instance.GetModel<StoreModel>().SetJumpToModel(storeConfig.ItemID);
|
// ModelCenter.Instance.GetModel<StoreModel>().SetWinOrder(int.Parse(infoArr[0]));
|
// ModelCenter.Instance.GetModel<StoreModel>().selectSecondType = storeConfig.SecondType[0];
|
// }
|
// }
|
|
// NewBieCenter.Instance.StartNewBieGuideEx(int.Parse(info));
|
// }
|
// break;
|
// case RichTextEventEnum.XJDHServerIDRangeInfo:
|
// {
|
// var info = href.mSplits["xjdhserveridrangeinfo"];
|
// OperationLianQiCross act;
|
// OperationTimeHepler.Instance.TryGetOperation(LianQiActModel.operaTypeCross, out act);
|
// if (act == null)
|
// return false;
|
// FuncRules.OpenFuncTip(Language.Get("L2015"), act.m_ServerListStr);
|
// }
|
// break;
|
}
|
return false;
|
}
|
|
public override string GetDisplay(RichTextEventEnum type, Dictionary<string, string> dic)
|
{
|
// switch (type)
|
// {
|
// case RichTextEventEnum.AncientRobotName:
|
// {
|
// if (dic.ContainsKey("objid") && dic.ContainsKey("npcid"))
|
// {
|
// var objId = 0;
|
// var npcId = 0;
|
// if (int.TryParse(dic["objid"], out objId)
|
// && int.TryParse(dic["npcid"], out npcId))
|
// {
|
// var model = ModelCenter.Instance.GetModel<ActivityModel>();
|
// return model.GetAncientRobotName(objId, npcId);
|
// }
|
// }
|
// }
|
// break;
|
// case RichTextEventEnum.MyFightPoint:
|
// {
|
// var colorType = 0;
|
// if (RichTextMgr.Inst.presentRichText != null)
|
// {
|
// colorType = RichTextMgr.Inst.presentRichText.colorType == RichText.ColorType.Dark ? 0 : 1;
|
// }
|
// var fightPoint = PlayerDatas.Instance.baseData.FightPoint;
|
// ulong targetValue = 0;
|
// var infoArray = dic["myfightpoint"].Split('_');
|
// if (infoArray.Length > 1)
|
// {
|
// switch (infoArray[0])
|
// {
|
// case "skytower":
|
// var config = SkyTowerConfig.Get(infoArray[1]);
|
// if (config != null)
|
// {
|
// targetValue = (ulong)NPCExConfig.Get(config.bossId).SuppressFightPower;
|
// }
|
// break;
|
// }
|
// }
|
// else
|
// {
|
// ulong.TryParse(dic["myfightpoint"], out targetValue);
|
// }
|
|
// if (fightPoint < (ulong)targetValue)
|
// {
|
// var label = dic.ContainsKey("replacelabel1") ? dic["replacelabel1"] : string.Empty;
|
// return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, fightPoint, "/", targetValue), colorType == 1);
|
// }
|
// else
|
// {
|
// var label = dic.ContainsKey("replacelabel2") ? dic["replacelabel2"] : string.Empty;
|
// return UIHelper.AppendColor(TextColType.Green, label, colorType == 1);
|
// }
|
// }
|
// case RichTextEventEnum.MyReikiRoot:
|
// {
|
// var colorType = 0;
|
// if (RichTextMgr.Inst.presentRichText != null)
|
// {
|
// colorType = RichTextMgr.Inst.presentRichText.colorType == RichText.ColorType.Dark ? 0 : 1;
|
// }
|
|
// var reikiRootModel = ModelCenter.Instance.GetModel<ReikiRootModel>();
|
|
// var satisfy = false;
|
// var targetValue = 0;
|
// var point = 0;
|
// var property = 0;
|
|
// if (int.TryParse(dic["myreikiroot"], out targetValue))
|
// {
|
// point = reikiRootModel.GetReikiRootTotalPoint();
|
// satisfy = point >= targetValue;
|
// }
|
// else
|
// {
|
// var jsonArray = LitJson.JsonMapper.ToObject<int[][]>(dic["myreikiroot"]);
|
// var job = PlayerDatas.Instance.baseData.Job;
|
// for (int i = 0; i < jsonArray.Length; i++)
|
// {
|
// if (i == job - 1)
|
// {
|
// property = jsonArray[i][0];
|
// point = reikiRootModel.GetReikiRootPoint(jsonArray[i][0]);
|
// targetValue = jsonArray[i][1];
|
// satisfy = point >= targetValue;
|
// break;
|
// }
|
// }
|
// }
|
|
// if (!satisfy)
|
// {
|
// var label = dic.ContainsKey("replacelabel1") ? dic["replacelabel1"] : string.Empty;
|
// if (property != 0)
|
// {
|
// var propertyConfig = PlayerPropertyConfig.Get(property);
|
// label = StringUtility.Contact(propertyConfig.Name, ":");
|
// }
|
// return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, point, "/", targetValue), colorType == 1);
|
// }
|
// else
|
// {
|
// var label = dic.ContainsKey("replacelabel2") ? dic["replacelabel2"] : string.Empty;
|
// return label;
|
// }
|
// }
|
// case RichTextEventEnum.MyDefense:
|
// {
|
// var colorType = 0;
|
// if (RichTextMgr.Inst.presentRichText != null)
|
// {
|
// colorType = RichTextMgr.Inst.presentRichText.colorType == RichText.ColorType.Dark ? 0 : 1;
|
// }
|
|
// var treasureModel = ModelCenter.Instance.GetModel<TreasureModel>();
|
|
// var satisfy = false;
|
// var targetValue = 0;
|
// var point = 0;
|
|
// var treasureId = 0;
|
// if (int.TryParse(dic["mydefense"], out treasureId))
|
// {
|
// TreasureDungeon treasureDungeon;
|
// if (treasureModel.TryGetTreasureDungeon(treasureId, out treasureDungeon))
|
// {
|
// var dungeonInfo = treasureDungeon.Get(treasureDungeon.currentLevel + 1);
|
// if (!dungeonInfo.Equals(default(TreasureDungeonInfo)))
|
// {
|
// targetValue = dungeonInfo.defense;
|
// }
|
// }
|
// point = (int)UIHelper.GetPropertyValue(PropertyType.DEF);
|
// satisfy = point >= targetValue;
|
// }
|
|
// if (!satisfy)
|
// {
|
// var label = dic.ContainsKey("replacelabel1") ? dic["replacelabel1"] : string.Empty;
|
// return UIHelper.AppendColor(TextColType.Red, StringUtility.Contact(label, point, "/", targetValue), colorType == 1);
|
// }
|
// else
|
// {
|
// var label = dic.ContainsKey("replacelabel2") ? dic["replacelabel2"] : string.Empty;
|
// return label;
|
// }
|
// }
|
// case RichTextEventEnum.JobLabel:
|
// {
|
// var json = dic["joblabel"];
|
// var labelArray = LitJson.JsonMapper.ToObject<string[]>(json);
|
// var job = PlayerDatas.Instance.baseData.Job;
|
// var index = job - 1;
|
// if (labelArray != null && index < labelArray.Length)
|
// {
|
// return labelArray[index];
|
// }
|
// }
|
// break;
|
// }
|
return string.Empty;
|
}
|
}
|