Пример #1
0
        private Observer_Unit CreateObserver(int id)
        {
            Observer_Unit observer = new Observer_Unit();

            observer.FirstSetup(id);
            return(observer);
        }
Пример #2
0
        public void Notify(Observer_Unit observer)
        {
            Observer_Unit.Package package = new Observer_Unit.Package()
            {
                Unit = Rows.FirstOrDefault_R(observer.Subject),
            };

            observer.SubjectUpdated(package);
        }
Пример #3
0
        protected override bool UpdateOrInsert(UnitRow updateData)
        {
            bool isUpdate = base.UpdateOrInsert(updateData);

            if (isUpdate)
            {
                Observer_Unit tempObs = ObserverPooling.GetItem();
                tempObs.RefreshSubject(updateData);

                Observer_Unit notifyObserver = Observers.FirstOrDefault_R(tempObs);
                ObserverPooling.Release(tempObs);

                if (notifyObserver != null)
                {
                    Notify(notifyObserver);
                }
            }

            return(isUpdate);
        }
Пример #4
0
        public void Initalize(
            JSONTable_Unit subject,
            LightweightLabel label,
            UnitRow unitData,
            UserInfoRow user,
            bool isOwner)

        {
            Label       = label;
            unitSubject = subject;

            AgentInfo.UserInfo = user;
            AgentInfo.UnitInfo = unitData;

            IsOwner = isOwner;

            //string format = IsOwner ? "{0}" : "<color=red>{0}</color>"; // not friend

            //if (!IsOwner)
            //{
            //    bool isFriend = Singleton.Instance<FriendSys>().IsMyFriend(user.ID_User);
            //    format = isFriend ? "<color=green>{0}</color>" : format; // friend
            //}

            string format = GetLabelFormat();


            Label.NameInGame = string.Format(format, "Id " + unitData.ID + ": " + user.NameInGame);
            Label.SetHP(unitData.Hea_cur, unitData.Health);
            Label.Quality = unitData.Quality;
            Label.gameObject.SetActive(true);

            observer = subject.ObserverPooling.GetItem();
            observer.RefreshSubject(unitData);
            observer.OnSubjectUpdated += SubjectChanged;
            subject.Register(observer);
        }
Пример #5
0
    public int CompareTo(object obj)
    {
        Observer_Unit other = obj as Observer_Unit;

        return(UnitId.CompareTo(other.UnitId));
    }
Пример #6
0
 public void Remove(Observer_Unit observer)
 {
     Observers.Remove_R(observer);
 }
Пример #7
0
 public void Register(Observer_Unit observer)
 {
     Observers.UpdateOrInsert_R(observer);
 }