using Thousandto.Cfg.Data; using Thousandto.Code.Center; using Thousandto.Code.Global; using System; using System.Collections.Generic; namespace Thousandto.Code.Logic { //变量系统,用于判断某些条件是否达成 public class VariableSystem { private static Dictionary _valueTable = new Dictionary(); public static void SendGetMsg() { MSG_Backend.ReqFuncOpenRoleInfo msg = new MSG_Backend.ReqFuncOpenRoleInfo(); msg.Send(); } public static void ResFuncOpenRoleInfo(MSG_Backend.ResFuncOpenRoleInfo result) { _valueTable.Clear(); for (int i = 0; i < result.infolist.Count; ++i) { _valueTable[result.infolist[i].id] = result.infolist[i].state; } GameCenter.PushFixEvent(LogicEventDefine.EID_EVENT_CLIENTVARIABLERETURN); } /// /// 获取某个条件的展示字符串 /// /// public static string GetVariableShowText(int type, int value, bool simplifyValue = false) { int curValue = GetVariableValue(type); switch (type) { case FunctionVariableIdCode.PlayerTaskID: return GameCenter.TaskManager.IsMainTaskOver(value) ? "1/1" : "0/1"; default: return GameCenter.LuaSystem.Adaptor.GetVariableShowText( type, curValue, value, simplifyValue ); //if (simplifyValue) //{ // var curText = string.Empty; // if (curValue > 1000000) // { // if(curValue % 1000000 == 0) // { // curText = string.Format("{0}M", curValue / 1000000); // } // else // { // curText = string.Format("{0:F2}M", curValue / 1000000f); // } // } // else if (curValue > 1000) // { // if(curValue % 1000 == 0) // { // curText = string.Format("{0}K", curValue / 1000); // } // else // { // curText = string.Format("{0:F2}K", curValue / 1000f); // } // } // else // { // curText = curValue.ToString(); // } // var valueText = string.Empty; // if (value > 1000000) // { // if(value % 1000000 == 0) // { // valueText = string.Format("{0}M", value / 1000000); // } // else // { // valueText = string.Format("{0:F2}M", value / 1000000f); // } // } // else if (value > 1000) // { // if(value % 1000 == 0) // { // valueText = string.Format("{0}K", value / 1000); // } // else // { // valueText = string.Format("{0:F2}K", value / 1000f); // } // } // else // { // valueText = value.ToString(); // } // return string.Format("{0}/{1}", curText, valueText); //} //return string.Format("{0}/{1}", curValue, value); } } /// /// 获取某个条件的展示进度条 /// /// public static float GetVariableShowProgress(int type, int value) { int curValue = GetVariableValue(type); switch (type) { case FunctionVariableIdCode.PlayerTaskID: return GameCenter.TaskManager.IsMainTaskOver(value) ? 1f : 0f; default: return GameCenter.LuaSystem.Adaptor.GetVariableShowProgress( type, curValue, value ); //return (float)curValue / value; } } /// /// 判断某个变量是否已经达成条件 /// /// public static bool IsVariableReach(int type, int value) { int curValue = GetVariableValue(type); switch (type) { case FunctionVariableIdCode.PlayerTaskID: return GameCenter.TaskManager.IsMainTaskOver(value); default: return GameCenter.LuaSystem.Adaptor.IsVariableReach( type, curValue, value ); //return curValue >= value; } } /// /// 获取变量值,返回-1表示此变量值不能被获取 /// /// public static int GetVariableValue(int code) { if (_valueTable.ContainsKey(code)) { return _valueTable[code]; } var lp = GameCenter.GameSceneSystem.GetLocalPlayer(); if (lp == null) return 0; switch (code) { case FunctionVariableIdCode.PlayerLevel://玩家等级 return lp.Level; case FunctionVariableIdCode.PlayerTaskID://玩家任务ID return -1; case FunctionVariableIdCode.PlayerPower://玩家战力到达多少 return (int)lp.FightPower; case FunctionVariableIdCode.ChangeJob: //转职到XX return 0; default: return GameCenter.LuaSystem.Adaptor.GetVariableValue( code ); } //return -1; } private static int GetZhangChangXunXian() { return 0; } } }