private static void ReloadTable(IEvent ievent)
        {
            var v = ievent as ReloadTableEvent;

            if (v == null)
            {
                return;
            }
            if (v.tableName == "ServerName")
            {
                Table.ForeachServerName(record =>
                {
                    var id = record.LogicID;
                    if (!AcientBattleManager.Boss.ContainsKey(id) && record.IsClientDisplay == 1)
                    {
                        var serverTemp = new AcientBattle(id);
                        AcientBattleManager.Boss.Add(id, serverTemp);
                        if (serverTemp.DBData == null)
                        {
                            serverTemp.DBData = new DBAcientBattleActivityData();
                        }
                        Table.ForeachAcientBattleField(recordAcient =>
                        {
                            //1:死亡   0:活着
                            serverTemp.DBData.BossState.Add(recordAcient.Id, 0);

                            //-1:未死亡     不是-1:死亡倒计时
                            serverTemp.DBData.BossDieTime.Add(recordAcient.Id, -1);
                            return(true);
                        });
                    }
                    return(true);
                });
            }
        }
        private IEnumerator GetDbActiDataCoroutine(Coroutine co, AcientBattle _this)
        {
            if (_this == null)
            {
                yield break;
            }
            var dbActiList = ActivityServer.Instance.DB.Get <DBAcientBattleActivityData>(co, DataCategory.AcientBattle,
                                                                                         DbKey + _this.ServerId);

            yield return(dbActiList);

            if (dbActiList.Status != DataStatus.Ok)
            {
                Logger.Fatal("GetDbActiData get data from db faild!");
                yield break;
            }
            if (dbActiList.Data != null)
            {
                SetActiData(_this, dbActiList.Data);
            }
            else
            {
                InitData(_this);
            }
        }
        public void Init()
        {
            Table.ForeachServerName(record =>
            {
                var id = record.LogicID;
                if (!AcientBattleManager.Boss.ContainsKey(id) && record.IsClientDisplay == 1)
                {
                    var serverTemp = new AcientBattle(id);
                    AcientBattleManager.Boss.Add(id, serverTemp);
                    if (serverTemp.DBData == null)
                    {
                        serverTemp.DBData = new DBAcientBattleActivityData();
                    }
                    Table.ForeachAcientBattleField(recordAcient =>
                    {
                        //1:死亡   0:活着
                        serverTemp.DBData.BossState.Add(recordAcient.Id, 0);

                        //-1:未死亡     不是-1:死亡倒计时
                        serverTemp.DBData.BossDieTime.Add(recordAcient.Id, -1);
                        return(true);
                    });
                }
                return(true);
            });
            EventDispatcher.Instance.AddEventListener(ReloadTableEvent.EVENT_TYPE, ReloadTable);
        }
        private void InitData(AcientBattle _this)
        {
            var item = new DBAcientBattleActivityData();

            Table.ForeachAcientBattleField(record =>
            {
                //1:死亡   0:活着
                item.BossState.Add(record.Id, 0);
                //-1:未死亡     不是-1:死亡倒计时
                item.BossDieTime.Add(record.Id, -1);
                return(true);
            });
            _this.DBData = item;
            if (AcientBattleManager.Boss == null)
            {
                AcientBattleManager.Boss = new Dictionary <int, AcientBattle>();
            }
            if (AcientBattleManager.Boss.ContainsKey(_this.ServerId))
            {
                AcientBattleManager.Boss[_this.ServerId] = _this;
            }
            else
            {
                AcientBattleManager.Boss.Add(_this.ServerId, _this);
            }
        }
        private IEnumerator SaveCoroutine(Coroutine co, AcientBattle oData)
        {
            if (oData == null || AcientBattleManager.Boss == null || AcientBattleManager.Boss[oData.ServerId] == null)
            {
                yield break;
            }
            var ret = ActivityServer.Instance.DB.Set(co, DataCategory.AcientBattle, DbKey + oData.ServerId,
                                                     AcientBattleManager.Boss[oData.ServerId].DBData);

            yield return(ret);
        }
 public void SetActiData(AcientBattle _this, DBAcientBattleActivityData data)
 {
     if (data == null)
     {
         return;
     }
     _this.DBData = data;
     if (AcientBattleManager.Boss == null)
     {
         AcientBattleManager.Boss = new Dictionary <int, AcientBattle>();
     }
     if (AcientBattleManager.Boss.ContainsKey(_this.ServerId))
     {
         AcientBattleManager.Boss[_this.ServerId] = _this;
     }
     else
     {
         AcientBattleManager.Boss.Add(_this.ServerId, _this);
     }
 }
 private void GetDbActiData(AcientBattle _this)
 {
     CoroutineFactory.NewCoroutine(GetDbActiDataCoroutine, _this).MoveNext();
 }
 private void Save(AcientBattle oData)
 {
     CoroutineFactory.NewCoroutine(SaveCoroutine, oData).MoveNext();
 }
 public void Construct(AcientBattle _this, int serverId)
 {
     _this.ServerId = serverId;
     GetDbActiData(_this);
 }