Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        // 释放逻辑对象
        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);
        }