public TriggerInstance GenerateItemTrigger(float percentile) { TriggerInstance rst = new TriggerInstance { Key = GeneratePara(key, percentile) }; if (rst.TriggerData == null) { rst.Key = "Error"; rst.ArgvsString = "$$" + key; return(rst); } List <string> tmp = new List <string>(); foreach (var p in paras) { tmp.Add(GeneratePara(p, percentile)); } string argvs = string.Join(",", tmp.ToArray()); if (!string.IsNullOrEmpty(rst.TriggerData.KeyParam)) { int pos = argvs.LastIndexOf(","); argvs = argvs.Substring(0, pos) + "#" + argvs.Substring(pos + 1); } rst.ArgvsString = argvs; return(rst); }
public List <TriggerInstance> GenerateDifferentTriggers(List <ItemDropTip> tipPools, int count, float percentile, string tag = "") { List <ItemDropTip> visited = new List <ItemDropTip>(); List <TriggerInstance> rst = new List <TriggerInstance>(); if (tipPools.Count < count) { HSUtils.LogError("物品随机属性个数小于设定个数!模板=" + Key); count = tipPools.Count; } var tList = ToolsShared.GenerateRandomListNotRepeat(tipPools, count); for (var i = 0; i < tList.Count; i++) { var t = tList[i]; TriggerInstance trigger = t.GenerateItemTrigger(percentile); if (trigger != null) { trigger.Tag = tag; rst.Add(trigger); } } return(rst); }
public void RemoveTrigger(TriggerInstance trigger) { if (_allTriggersMap == null) { return; } if (_mergedTriggersMap == null) { return; } //可回溯的所有词条 if (_allTriggersMap.ContainsKey(trigger.PK)) { _allTriggersMap[trigger.PK].Remove(trigger); //List<TriggerInstance>数量为0时从Dictionary中清除 if (_allTriggersMap[trigger.PK].Count == 0) { _allTriggersMap.Remove(trigger.PK); } } //合并后的词条 if (_mergedTriggersMap.ContainsKey(trigger.PK)) { _mergedTriggersMap[trigger.PK].KeyArgv -= trigger.KeyArgv; _mergedTriggersMap[trigger.PK].Count--; //Trigger.Count计数为0时从Dictionary中清除 if (_mergedTriggersMap[trigger.PK].Count == 0) { _mergedTriggersMap.Remove(trigger.PK); } } }
public TriggerInstance(TriggerInstance trigger) { _trigger = trigger.TriggerData; Key = trigger.Key; ArgvsString = trigger.ArgvsString; KeyArgv = trigger.KeyArgv; CommonArgvs = trigger.CommonArgvs; }
/// <summary> /// 比较一个词条与目标词条的区别 /// </summary> public static string GetTriggerComparedString(TriggerInstance sourceTrigger, TriggerInstance targetTrigger, bool isReverse = false) { string up = "<color=#a9ffe0>↑↑"; string down = "<color=#ffa9a9>↓↓"; if (sourceTrigger.KeyArgv > targetTrigger.KeyArgv) { return(isReverse ? down : up + sourceTrigger.Desc + "</color>"); } if (sourceTrigger.KeyArgv < targetTrigger.KeyArgv) { return(isReverse ? up : down + sourceTrigger.Desc + "</color>"); } return(sourceTrigger.Desc); }
/// <summary> /// 比较一个词条与目标词条列表中对应词条的区别 /// </summary> public static string GetTriggerComparedString(TriggerInstance sourceTrigger, List <TriggerInstance> targetTriggers, bool isReverse = false) { if (targetTriggers == null || targetTriggers.Count == 0) { return(sourceTrigger.Desc); } var targetTrigger = targetTriggers.Find(trigger => { return(trigger.Key == sourceTrigger.Key); }); if (targetTrigger == null) { return(sourceTrigger.Desc); } return(GetTriggerComparedString(sourceTrigger, targetTrigger, isReverse)); }
/// <summary> /// 增加新的TriggerInstance /// </summary> /// <param name="trigger"></param> public void AddTrigger(TriggerInstance trigger) { if (_allTriggersMap == null) { _allTriggersMap = new Dictionary <string, List <TriggerInstance> >(); } if (_mergedTriggersMap == null) { _mergedTriggersMap = new Dictionary <string, TriggerInstance>(); } //可回溯的所有词条 if (_allTriggersMap.ContainsKey(trigger.PK)) { _allTriggersMap[trigger.PK].Add(trigger); } else { _allTriggersMap.Add(trigger.PK, new List <TriggerInstance>() { trigger }); } //合并后的词条 if (_mergedTriggersMap.ContainsKey(trigger.PK)) { _mergedTriggersMap[trigger.PK].KeyArgv += trigger.KeyArgv; _mergedTriggersMap[trigger.PK].Source = "Merged"; _mergedTriggersMap[trigger.PK].Count++; } else { Debug.Log(trigger.Key); _mergedTriggersMap.Add(trigger.PK, new TriggerInstance(trigger)); } }