public static void AddSubDoers(Doer parentDoer, string subDoerKey, Doer addSubDoer) { addSubDoer.SetOwner(parentDoer); string id = addSubDoer.GetId(); bool canFold = addSubDoer.IsHasMethod("CanFold") && addSubDoer.InvokeMethod <bool>("CanFold"); var subDoers = GetSubDoers_ToEdit(parentDoer, subDoerKey, id); if (canFold) { if (subDoers.IsNullOrEmpty()) { subDoers.Add(addSubDoer); } else { (subDoers[0] as Doer).AddCount(addSubDoer.GetCount()); addSubDoer.SetEnv(null); addSubDoer.Destruct(); } } else { subDoers.Add(addSubDoer); } }
// 释放逻辑对象 public void ReleaseDoer(Doer doer) { string id = doer.GetId(); string rid = doer.GetRid(); if (this.idDict.ContainsKey(id)) { this.idDict[id].Remove(rid); } doer.DoRelease(); this.RemoveChild(doer.key); }