public virtual void SetAgent(BattleEntity entity) { agent = entity; if (agent == null || agent.param == null) { return; } param = agent.param.GetAction(type); if (param != null) { weight = param.weight; duration = duration == 0 ? param.duration : duration; var plugins = param.GetParams <EntityParamPlugin>(); for (int i = 0; i < plugins.Count; ++i) { try { ActionPlugin plugin = ObjectPool.GetInstance <ActionPlugin>(plugins[i].plugin); if (plugin != null) { plugin.Init(plugins[i]); plugin.agent = agent; plugin.action = this; AddSubState(plugin); } } catch (Exception e) { Debug.LogError(e.Message); } } } }
public IEnumerable <IActionPlugin> Read() { if (!File.Exists(Path)) { throw new FileNotFoundException(); } var actionPlugins = new List <IActionPlugin>(); using (var streamReader = new StreamReader(Path, System.Text.Encoding.Default)) { var pattern = @"\[(.*?)\]"; var rgx = new Regex(pattern, RegexOptions.IgnoreCase); while (streamReader.Peek() > -1) { string operation = null, _class = null, assembly = null; foreach (Match match in rgx.Matches(streamReader.ReadLine())) { if (match.Value.Contains(",") == false) { operation = match.Value.Substring(match.Value.IndexOf("[") + 1, match.Value.IndexOf("]") - 1); } else { _class = match.Value.Split(',')[0]; _class = _class.Substring(_class.IndexOf("[") + 1); assembly = match.Value.Split(',')[1]; assembly = assembly.Substring(0, assembly.IndexOf("]")); } } IActionPlugin actionPlugin = new ActionPlugin((TypeOperation)Enum.Parse(typeof(TypeOperation), operation), _class, assembly); actionPlugins.Add(actionPlugin); } } return(actionPlugins); }
public IEnumerable <IActionPlugin> Read() { if (!File.Exists(Path)) { throw new FileNotFoundException(); } var actionPlugins = new List <IActionPlugin>(); using (var binaryReader = new BinaryReader(new FileStream(Path, FileMode.Open))) { while (binaryReader.PeekChar() > -1) { var operation = binaryReader.ReadString(); var _class = binaryReader.ReadString(); var assembly = binaryReader.ReadString(); IActionPlugin actionPlugin = new ActionPlugin((TypeOperation)Enum.Parse(typeof(TypeOperation), operation), _class, assembly); actionPlugins.Add(actionPlugin); } } return(actionPlugins); }