Example #1
0
 public virtual void LoadModel(QuestModel questModel)
 {
     CallDeferred(nameof(UpdateControls));
 }
Example #2
0
 public void Populate(QuestModel questModel)
 {
     questName.text = questModel.name;
     //TODO Rewards definition is needed here
 }
Example #3
0
 private void OnQuestRemoved(string questId, QuestModel quest)
 {
     view?.RemoveEntry(questId);
 }
Example #4
0
 public override void OnAddonLoaded(AddonLoadData data)
 {
     FactionModel.LoadFromAddon(data);
     InventoryModel.LoadFromAddon(data);
     QuestModel.LoadFromAddon(data);
 }
Example #5
0
 public override void LoadModel(QuestModel questModel)
 {
     base.LoadModel(questModel);
     Model = (QuestStageModel)questModel;
 }
Example #6
0
 public void AddQuest(int id, QuestModel item)
 {
     _database._questMap.Add(id, item);
 }
Example #7
0
 private void OnQuestRemoved(string questId, QuestModel questModel)
 {
     view.RemoveQuest(questId);
 }
Example #8
0
 public override void LoadModel(QuestModel questModel)
 {
     base.LoadModel(questModel);
     Model = (QuestCompleteModel)questModel;
 }
 public void Populate(QuestModel questModel)
 {
     questName.text = questModel.name;
 }
Example #10
0
 public void RemoveQuest(QuestModel quest)
 {
     quests.Remove(quest.id);
 }
Example #11
0
        /// <summary>
        /// Update progress in a quest
        /// </summary>
        /// <param name="progressedQuest"></param>
        public void UpdateQuestProgress(QuestModel progressedQuest)
        {
            if (!progressedQuest.canBePinned)
            {
                pinnedQuests.Remove(progressedQuest.id);
            }

            //Alex: Edge case. Quests has no sections/tasks, we ignore the UpdateQuestProgress and remove the cached one.
            if (progressedQuest.sections == null || progressedQuest.sections.Length == 0)
            {
                quests.Remove(progressedQuest.id);
                return;
            }

            //Alex: Edge case. Progressed quest was not included in the initialization. We dont invoke quests events
            if (!quests.TryGetValue(progressedQuest.id, out QuestModel oldQuest))
            {
                RestoreProgressFlags(progressedQuest);
                quests.Add(progressedQuest.id, progressedQuest);
                if (!progressedQuest.isCompleted)
                {
                    OnNewQuest?.Invoke(progressedQuest.id);
                }
                return;
            }

            quests[progressedQuest.id]  = progressedQuest;
            progressedQuest.oldProgress = oldQuest.progress;

            for (int index = 0; index < progressedQuest.sections.Length; index++)
            {
                QuestSection newQuestSection = progressedQuest.sections[index];

                bool oldQuestSectionFound = oldQuest.TryGetSection(newQuestSection.id, out QuestSection oldQuestSection);

                for (int index2 = 0; index2 < newQuestSection.tasks.Length; index2++)
                {
                    QuestTask currentTask = newQuestSection.tasks[index2];
                    if (oldQuestSectionFound)
                    {
                        bool oldTaskFound = oldQuestSection.TryGetTask(currentTask.id, out QuestTask oldTask);
                        currentTask.justProgressed = !oldTaskFound || currentTask.progress != oldTask.progress;
                        currentTask.justUnlocked   = !oldTaskFound || (currentTask.status != QuestsLiterals.Status.BLOCKED && oldTask.status == QuestsLiterals.Status.BLOCKED);
                        currentTask.oldProgress    = oldTaskFound ? oldTask.progress : 0;
                    }
                    else
                    {
                        currentTask.justProgressed = false;
                        currentTask.justUnlocked   = false;
                        currentTask.oldProgress    = 0;
                    }
                }
            }


            // If quest is not blocked anymore or being secret has been just started, we call NewQuest event.
            if (!progressedQuest.isCompleted &&
                ((oldQuest.status == QuestsLiterals.Status.BLOCKED && progressedQuest.status != QuestsLiterals.Status.BLOCKED) ||
                 (progressedQuest.visibility == QuestsLiterals.Visibility.SECRET && oldQuest.status == QuestsLiterals.Status.NOT_STARTED && progressedQuest.status != QuestsLiterals.Status.NOT_STARTED)))
            {
                OnNewQuest?.Invoke(progressedQuest.id);
            }

            OnQuestUpdated?.Invoke(progressedQuest.id, HasProgressed(progressedQuest, oldQuest));
            if (!oldQuest.isCompleted && progressedQuest.isCompleted)
            {
                OnQuestCompleted?.Invoke(progressedQuest.id);
            }

            if (progressedQuest.rewards == null)
            {
                progressedQuest.rewards = new QuestReward[0];
            }

            for (int index = 0; index < progressedQuest.rewards.Length; index++)
            {
                QuestReward newReward = progressedQuest.rewards[index];

                //Alex: Edge case. New quest reported contains a reward that was previously not contained.
                // If it's completed, we call the RewardObtained event
                bool oldRewardFound = oldQuest.TryGetReward(newReward.id, out QuestReward oldReward);
                bool rewardObtained = (!oldRewardFound && newReward.status == QuestsLiterals.RewardStatus.OK) || (newReward.status != oldReward.status && newReward.status == QuestsLiterals.RewardStatus.OK);
                if (rewardObtained)
                {
                    OnRewardObtained?.Invoke(progressedQuest.id, newReward.id);
                }
            }

            RestoreProgressFlags(progressedQuest);
        }
Example #12
0
        public static void Handle(Packet packet)
        {
            var questRewardPacket = new QuestRewardPacket(packet);

            var quest = QuestModel.RetrieveOne(GameServer.Instance.Database.Connection, 0,
                                               packet.Sender.User.ActiveCharacterId,
                                               questRewardPacket.TableIndex);

            QuestModel.Update(GameServer.Instance.Database.Connection, 0, packet.Sender.User.ActiveCharacterId,
                              questRewardPacket.TableIndex, 2);
            if (quest == null)
            {
                packet.Sender.SendError("Quest was not started!");
                return;
            }
            if (quest.State != 1)
            {
                packet.Sender.SendError("Quest not finished!");
                return;
            }

            var questReward =
                ServerMain.Quests.Find(quest1 => quest1.TableIndex == questRewardPacket.TableIndex);

            if (questReward == null)
            {
                packet.Sender.SendError("Quest reward not found.");
                return;
            }
            var itemReward = questReward.GetRewards();
            var character  = packet.Sender.User.ActiveCharacter;

            bool       levelUp;
            const bool useBonus        = false; // TODO: Determine boni
            const bool useBonus500Mita = false;

            character.CalculateExp(questReward.Experience, out levelUp, useBonus,
                                   useBonus500Mita);

            character.MitoMoney += questReward.Mito;

            CharacterModel.Update(GameServer.Instance.Database.Connection, character);

            var item01 = 0;
            var item02 = 0;
            var item03 = 0;

            if (itemReward.Length > 0)
            {
                if (itemReward.Length >= 1)
                {
                    item01 = ServerMain.Items.FindIndex(item => item.Id == itemReward[0]);
                    if (item01 == -1 || character.GiveItem(GameServer.Instance.Database.Connection, item01, 1) ==
                        null)
                    {
                        item01 = 0;
                    }
                }
                if (itemReward.Length >= 2)
                {
                    item02 = ServerMain.Items.FindIndex(item => item.Id == itemReward[1]);
                    if (item01 == -1 || character.GiveItem(GameServer.Instance.Database.Connection, item02, 1) ==
                        null)
                    {
                        item02 = 0;
                    }
                }
                if (itemReward.Length == 3)
                {
                    item03 = ServerMain.Items.FindIndex(item => item.Id == itemReward[2]);
                    if (item01 == -1 || character.GiveItem(GameServer.Instance.Database.Connection, item03, 1) ==
                        null)
                    {
                        item03 = 0;
                    }
                }
            }

            var ack = new QuestRewardAnswer
            {
                TableIndex  = (uint)questReward.TableIndex,
                GetExp      = (uint)questReward.Experience,
                GetMoney    = (uint)questReward.Mito,
                CurrentExp  = (ulong)character.ExperienceInfo.CurExp,
                NextExp     = (ulong)character.ExperienceInfo.NextExp,
                BaseExp     = (ulong)character.ExperienceInfo.BaseExp,
                Level       = character.Level,
                ItemNum     = (ushort)itemReward.Length,
                RewardItem1 = (uint)item01,
                RewardItem2 = (uint)item02,
                RewardItem3 = (uint)item03
            };

            packet.Sender.Send(ack.CreatePacket());

            if (item01 != 0 || item02 != 0 || item03 != 0)
            {
                character.FlushItemModBuffer(packet.Sender);
            }
        }
Example #13
0
 private void Awake()
 {
     model = new QuestModel();
 }
Example #14
0
        private void CheckGameEvents(EventVisitModel evVisit)
        {
            long        num = long.Parse(DateTime.Now.ToString("yyMMddHHmm"));
            PlayerEvent pE  = this.c._event;

            if (pE != null)
            {
                QuestModel runningEvent1 = EventQuestSyncer.getRunningEvent();
                if (runningEvent1 != null)
                {
                    long lastQuestDate   = (long)pE.LastQuestDate;
                    long lastQuestFinish = (long)pE.LastQuestFinish;
                    if (pE.LastQuestDate < runningEvent1.startDate)
                    {
                        pE.LastQuestDate   = 0U;
                        pE.LastQuestFinish = 0;
                        this.c.SendPacket((SendPacket) new SERVER_MESSAGE_EVENT_QUEST_PAK());
                    }
                    if (pE.LastQuestFinish == 0)
                    {
                        this.c._mission.mission4 = 13;
                        if (pE.LastQuestDate == 0U)
                        {
                            pE.LastQuestDate = (uint)num;
                        }
                    }
                    if ((long)pE.LastQuestDate != lastQuestDate || (long)pE.LastQuestFinish != lastQuestFinish)
                    {
                        EventQuestSyncer.ResetPlayerEvent(this.c.player_id, pE);
                    }
                }
                EventLoginModel runningEvent2 = EventLoginSyncer.getRunningEvent();
                if (runningEvent2 != null && (runningEvent2.startDate >= pE.LastLoginDate || pE.LastLoginDate >= runningEvent2.endDate))
                {
                    ItemsModel modelo = new ItemsModel(runningEvent2._rewardId, runningEvent2._category, "Login event", 1, (uint)runningEvent2._count, 0L);
                    PlayerManager.tryCreateItem(modelo, this.c._inventory, this.c.player_id);
                    this.c.SendPacket((SendPacket) new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0U));
                    if (modelo._category == 1)
                    {
                        this.weapons.Add(modelo);
                    }
                    else if (modelo._category == 2)
                    {
                        this.charas.Add(modelo);
                    }
                    else if (modelo._category == 3)
                    {
                        this.cupons.Add(modelo);
                    }
                    ComDiv.updateDB("player_events", "last_login_date", (object)num, "player_id", (object)this.c.player_id);
                }
                if (evVisit != null && pE.LastVisitEventId != evVisit.id)
                {
                    pE.LastVisitEventId   = evVisit.id;
                    pE.LastVisitSequence1 = 0;
                    pE.LastVisitSequence2 = 0;
                    pE.NextVisitDate      = 0;
                    EventVisitSyncer.ResetPlayerEvent(this.c.player_id, evVisit.id);
                }
                EventXmasModel runningEvent3 = EventXmasSyncer.getRunningEvent();
                if (runningEvent3 != null)
                {
                    if (pE.LastXmasRewardDate < runningEvent3.startDate)
                    {
                        pE.LastXmasRewardDate = 0U;
                        ComDiv.updateDB("player_events", "last_xmas_reward_date", (object)0, "player_id", (object)this.c.player_id);
                    }
                    if (pE.LastXmasRewardDate <= runningEvent3.startDate || pE.LastXmasRewardDate > runningEvent3.endDate)
                    {
                        this._xmas = true;
                    }
                }
            }
            ComDiv.updateDB("accounts", "last_login", (object)num, "player_id", (object)this.c.player_id);
        }
Example #15
0
        private void CheckGameEvents(EventVisitModel eventVisit)
        {
            PlayerEvent playerEvent = player.events;

            if (playerEvent != null)
            {
                QuestModel eventQuest = EventQuestSyncer.GetRunningEvent();
                if (eventQuest != null)
                {
                    long lastDate = playerEvent.LastQuestDate;
                    int  finish   = playerEvent.LastQuestFinish;
                    if (playerEvent.LastQuestDate < eventQuest.startDate)
                    {
                        playerEvent.LastQuestDate   = 0;
                        playerEvent.LastQuestFinish = 0;
                        player.SendCompletePacket(PackageDataManager.SERVER_MESSAGE_EVENT_QUEST_PAK);
                    }
                    if (playerEvent.LastQuestFinish == 0)
                    {
                        player.missions.mission4 = 13; //13 = MissionId Event
                        if (playerEvent.LastQuestDate == 0)
                        {
                            playerEvent.LastQuestDate = date;
                        }
                    }
                    if (playerEvent.LastQuestDate != lastDate || playerEvent.LastQuestFinish != finish)
                    {
                        player.ExecuteQuery($"UPDATE player_events SET last_quest_date='{playerEvent.LastQuestDate}', last_quest_finish='{playerEvent.LastQuestFinish}' WHERE player_id='{player.playerId}'");
                    }
                }
                EventLoginModel eventLogin = EventLoginSyncer.GetRunningEvent();
                if (eventLogin != null && !(eventLogin.startDate < playerEvent.LastLoginDate && playerEvent.LastLoginDate < eventLogin.endDate))
                {
                    ItemsModel item = new ItemsModel(eventLogin.rewardId, eventLogin.category, "Login event", 1, eventLogin.count);
                    player.TryCreateItem(item);
                    player.SendCompletePacket(PackageDataManager.AUTH_SERVER_MESSAGE_ITEM_RECEIVE_PAK);
                    if (item.category == 1)
                    {
                        weapons.Add(item);
                    }
                    else if (item.category == 2)
                    {
                        charas.Add(item);
                    }
                    else if (item.category == 3)
                    {
                        cupons.Add(item);
                    }
                    long dateNow = long.Parse(DateTime.Now.ToString("yyMMddHHmm"));
                    player.ExecuteQuery($"UPDATE player_events SET last_login_date='{dateNow}' WHERE player_id='{player.playerId}'");
                }
                if (eventVisit != null && playerEvent.LastVisitEventId != eventVisit.id)
                {
                    playerEvent.LastVisitEventId   = eventVisit.id;
                    playerEvent.LastVisitSequence1 = 0;
                    playerEvent.LastVisitSequence2 = 0;
                    playerEvent.NextVisitDate      = 0;
                    player.ExecuteQuery($"UPDATE player_events SET last_visit_event_id='{eventVisit.id}', last_visit_sequence1='0', last_visit_sequence2='0', next_visit_date='0' WHERE player_id='{player.playerId}'");
                }
                EventXmasModel eventXMAS = EventXmasSyncer.GetRunningEvent();
                if (eventXMAS != null)
                {
                    if (playerEvent.LastXmasRewardDate < eventXMAS.startDate)
                    {
                        playerEvent.LastXmasRewardDate = 0;
                        player.ExecuteQuery($"UPDATE player_events SET last_xmas_reward_date='0' WHERE player_id='{player.playerId}'");
                    }
                    if (!(playerEvent.LastXmasRewardDate > eventXMAS.startDate && playerEvent.LastXmasRewardDate <= eventXMAS.endDate))
                    {
                        xmas = true;
                    }
                }
            }
        }
Example #16
0
        public void Populate(QuestModel newQuest)
        {
            StopSequence();

            quest = newQuest;
            SetIcon(quest.thumbnail_entry);
            QuestTask[] allTasks = quest.sections.SelectMany(x => x.tasks).ToArray();

            int completedTasksAmount = allTasks.Count(x => x.progress >= 1);

            questTitle.text        = $"{quest.name}";
            questProgressText.text = $"{completedTasksAmount}/{allTasks.Length}";
            progress.fillAmount    = quest.oldProgress;
            progressTarget         = quest.progress;

            hasProgressedThisUpdate = newQuest.sections.Any(x => x.tasks.Any(y => y.justProgressed));

            List <string> entriesToRemove = sectionEntries.Keys.ToList();
            List <QuestsTrackerSection> visibleSectionEntries = new List <QuestsTrackerSection>();
            List <QuestsTrackerSection> newSectionEntries     = new List <QuestsTrackerSection>();

            for (var i = 0; i < quest.sections.Length; i++)
            {
                QuestSection section = quest.sections[i];

                bool hasTasks = section.tasks.Any(x => x.status != QuestsLiterals.Status.BLOCKED && (x.progress < 1 || x.justProgressed));
                if (!hasTasks)
                {
                    continue;
                }

                bool isVisible = section.tasks.Any(x => x.status != QuestsLiterals.Status.BLOCKED && ((x.progress < 1 && !x.justUnlocked) || (x.progress >= 1 && x.justProgressed)));

                entriesToRemove.Remove(section.id);
                if (!sectionEntries.TryGetValue(section.id, out QuestsTrackerSection sectionEntry))
                {
                    sectionEntry = CreateSection();
                    //New tasks are invisible
                    sectionEntries.Add(section.id, sectionEntry);
                }

                sectionEntry.gameObject.SetActive(isVisible);
                sectionEntry.Populate(section);
                sectionEntry.transform.SetAsLastSibling();

                if (sectionEntry.gameObject.activeSelf)
                {
                    visibleSectionEntries.Add(sectionEntry);
                }
                else
                {
                    newSectionEntries.Add(sectionEntry);
                }
            }

            for (int index = 0; index < entriesToRemove.Count; index++)
            {
                DestroySectionEntry(entriesToRemove[index]);
            }

            expandCollapseButton.gameObject.SetActive(sectionEntries.Count > 0);
            SetExpandCollapseState(true);
            OnLayoutRebuildRequested?.Invoke();

            sequenceRoutine = StartCoroutine(Sequence(visibleSectionEntries, newSectionEntries));
        }
 void PopulateObjects()
 {
     qLocs = GameObject.FindObjectsOfType(typeof(QLocation)) as QLocation[];
     qNpcs = GameObject.FindObjectsOfType(typeof(QNpc)) as QNpc[];
     typeBoxes = new Dictionary<QuestNode, ComboBox>();
     npcBoxes = new Dictionary<QuestNode, ComboBox>();
     locationBoxes = new Dictionary<QuestNode, ComboBox>();
     selNode = new ComboBox();
     setUpComboBox();
     first = new QuestNode("FirstNode", qNpcs[0] as MonoBehaviour, 0,0);
     currentQuest = new QuestModel(first);
     typeBoxes.Add(first,new ComboBox());
     npcBoxes.Add(first, new ComboBox());
     locationBoxes.Add(first, new ComboBox());
 }
        public void UpdateQuestProgressUpdateQuest_Completed()
        {
            quests.Add("0", new QuestModel
            {
                id       = "0", status = QuestsLiterals.Status.NOT_STARTED,
                sections = new [] { new QuestSection {
                                        id = "0_0", tasks = new [] { new QuestTask {
                                                                         id = "0_0_0"
                                                                     } }
                                    } },
                rewards = new [] { new QuestReward {
                                       id = "reward0", status = QuestsLiterals.RewardStatus.NOT_GIVEN
                                   } }
            });

            QuestModel progressedQuest = new QuestModel
            {
                id       = "0",
                status   = QuestsLiterals.Status.COMPLETED,
                sections = new []
                {
                    new QuestSection
                    {
                        id       = "0_0",
                        progress = 1f,
                        tasks    = new []
                        {
                            new QuestTask {
                                id = "0_0_0", progress = 1f, status = QuestsLiterals.Status.COMPLETED
                            }
                        }
                    }
                },
                rewards = new [] { new QuestReward {
                                       id = "reward0", status = QuestsLiterals.RewardStatus.OK
                                   } }
            };

            bool newQuestReceived       = false;
            bool questUpdatedReceived   = false;
            bool rewardObtainedReceived = false;

            questsController.OnNewQuest     += (questId) => newQuestReceived = true;
            questsController.OnQuestUpdated += (questId, hasProgressed) =>
            {
                questUpdatedReceived = true;
                //Check the progress flags are set propperly
                Assert.AreEqual(0, quests["0"].oldProgress);
                Assert.AreEqual(1f, quests["0"].progress);
                Assert.AreEqual(0, quests["0"].sections[0].tasks[0].oldProgress);
                Assert.AreEqual(1f, quests["0"].sections[0].tasks[0].progress);
            };
            questsController.OnRewardObtained += (questId, rewardId) =>
            {
                rewardObtainedReceived = true;
                // Check reward
                Assert.AreEqual(questId, "0");
                Assert.AreEqual(rewardId, "reward0");
            };

            questsController.UpdateQuestProgress(progressedQuest);

            Assert.IsFalse(newQuestReceived);
            Assert.IsTrue(questUpdatedReceived);
            Assert.IsTrue(rewardObtainedReceived);

            //Check progress flags are reverted
            Assert.AreEqual(quests["0"].oldProgress, quests["0"].progress);
            Assert.AreEqual(quests["0"].sections[0].tasks[0].oldProgress, quests["0"].sections[0].tasks[0].progress);
            Assert.IsFalse(quests["0"].justProgressed);
            Assert.IsFalse(quests["0"].sections[0].tasks[0].justProgressed);
            Assert.IsFalse(quests["0"].sections[0].tasks[0].justUnlocked);
        }
Example #19
0
        public int GetMaxHealth()
        {
            QuestModel quest = _questLogic.GetCurrentQuest();

            return(quest.Health);
        }
 public InGameSceneParameter(CharacterModel character, QuestGroupModel questGroup, QuestModel quest)
 {
     this.Character  = character;
     this.QuestGroup = questGroup;
     this.Quest      = quest;
 }
Example #21
0
 private void LoadQuestModels()
 {
     QuestModel.Load();
 }
Example #22
0
            public void Load()
            {
                foreach (var item in _content.AmmunitionObsoleteList)
                {
                    if (!item.Disabled && !_database._ammunitionObsoleteMap.ContainsKey(item.Id))
                    {
                        AmmunitionObsolete.Create(item, this);
                    }
                }
                foreach (var item in _content.ComponentList)
                {
                    if (!item.Disabled && !_database._componentMap.ContainsKey(item.Id))
                    {
                        Component.Create(item, this);
                    }
                }
                foreach (var item in _content.ComponentModList)
                {
                    if (!item.Disabled && !_database._componentModMap.ContainsKey(item.Id))
                    {
                        ComponentMod.Create(item, this);
                    }
                }
                foreach (var item in _content.ComponentStatsList)
                {
                    if (!item.Disabled && !_database._componentStatsMap.ContainsKey(item.Id))
                    {
                        ComponentStats.Create(item, this);
                    }
                }
                foreach (var item in _content.DeviceList)
                {
                    if (!item.Disabled && !_database._deviceMap.ContainsKey(item.Id))
                    {
                        Device.Create(item, this);
                    }
                }
                foreach (var item in _content.DroneBayList)
                {
                    if (!item.Disabled && !_database._droneBayMap.ContainsKey(item.Id))
                    {
                        DroneBay.Create(item, this);
                    }
                }
                foreach (var item in _content.FactionList)
                {
                    if (!item.Disabled && !_database._factionMap.ContainsKey(item.Id))
                    {
                        Faction.Create(item, this);
                    }
                }
                foreach (var item in _content.SatelliteList)
                {
                    if (!item.Disabled && !_database._satelliteMap.ContainsKey(item.Id))
                    {
                        Satellite.Create(item, this);
                    }
                }
                foreach (var item in _content.SatelliteBuildList)
                {
                    if (!item.Disabled && !_database._satelliteBuildMap.ContainsKey(item.Id))
                    {
                        SatelliteBuild.Create(item, this);
                    }
                }
                foreach (var item in _content.ShipList)
                {
                    if (!item.Disabled && !_database._shipMap.ContainsKey(item.Id))
                    {
                        Ship.Create(item, this);
                    }
                }
                foreach (var item in _content.ShipBuildList)
                {
                    if (!item.Disabled && !_database._shipBuildMap.ContainsKey(item.Id))
                    {
                        ShipBuild.Create(item, this);
                    }
                }
                foreach (var item in _content.SkillList)
                {
                    if (!item.Disabled && !_database._skillMap.ContainsKey(item.Id))
                    {
                        Skill.Create(item, this);
                    }
                }
                foreach (var item in _content.TechnologyList)
                {
                    if (!item.Disabled && !_database._technologyMap.ContainsKey(item.Id))
                    {
                        Technology.Create(item, this);
                    }
                }
                foreach (var item in _content.CharacterList)
                {
                    if (!item.Disabled && !_database._characterMap.ContainsKey(item.Id))
                    {
                        Character.Create(item, this);
                    }
                }
                foreach (var item in _content.FleetList)
                {
                    if (!item.Disabled && !_database._fleetMap.ContainsKey(item.Id))
                    {
                        Fleet.Create(item, this);
                    }
                }
                foreach (var item in _content.LootList)
                {
                    if (!item.Disabled && !_database._lootMap.ContainsKey(item.Id))
                    {
                        LootModel.Create(item, this);
                    }
                }
                foreach (var item in _content.QuestList)
                {
                    if (!item.Disabled && !_database._questMap.ContainsKey(item.Id))
                    {
                        QuestModel.Create(item, this);
                    }
                }
                foreach (var item in _content.QuestItemList)
                {
                    if (!item.Disabled && !_database._questItemMap.ContainsKey(item.Id))
                    {
                        QuestItem.Create(item, this);
                    }
                }
                foreach (var item in _content.AmmunitionList)
                {
                    if (!item.Disabled && !_database._ammunitionMap.ContainsKey(item.Id))
                    {
                        Ammunition.Create(item, this);
                    }
                }
                foreach (var item in _content.BulletPrefabList)
                {
                    if (!item.Disabled && !_database._bulletPrefabMap.ContainsKey(item.Id))
                    {
                        BulletPrefab.Create(item, this);
                    }
                }
                foreach (var item in _content.VisualEffectList)
                {
                    if (!item.Disabled && !_database._visualEffectMap.ContainsKey(item.Id))
                    {
                        VisualEffect.Create(item, this);
                    }
                }
                foreach (var item in _content.WeaponList)
                {
                    if (!item.Disabled && !_database._weaponMap.ContainsKey(item.Id))
                    {
                        Weapon.Create(item, this);
                    }
                }

                foreach (var item in _content.Images)
                {
                    if (!_database._images.ContainsKey(item.Key))
                    {
                        _database._images.Add(item.Key, item.Value);
                    }
                }

                foreach (var item in _content.AudioClips)
                {
                    if (!_database._audioClips.ContainsKey(item.Key))
                    {
                        _database._audioClips.Add(item.Key, item.Value);
                    }
                }

                foreach (var item in _content.Localizations)
                {
                    if (!_database._localizations.ContainsKey(item.Key))
                    {
                        _database._localizations.Add(item.Key, item.Value);
                    }
                }

                if (_database.DatabaseSettings == null)
                {
                    _database.DatabaseSettings = DatabaseSettings.Create(_content.DatabaseSettings ?? new Serializable.DatabaseSettingsSerializable {
                        ItemType = Enums.ItemType.DatabaseSettings
                    }, this);
                }
                if (_database.ExplorationSettings == null)
                {
                    _database.ExplorationSettings = ExplorationSettings.Create(_content.ExplorationSettings ?? new Serializable.ExplorationSettingsSerializable {
                        ItemType = Enums.ItemType.ExplorationSettings
                    }, this);
                }
                if (_database.GalaxySettings == null)
                {
                    _database.GalaxySettings = GalaxySettings.Create(_content.GalaxySettings ?? new Serializable.GalaxySettingsSerializable {
                        ItemType = Enums.ItemType.GalaxySettings
                    }, this);
                }
                if (_database.ShipSettings == null)
                {
                    _database.ShipSettings = ShipSettings.Create(_content.ShipSettings ?? new Serializable.ShipSettingsSerializable {
                        ItemType = Enums.ItemType.ShipSettings
                    }, this);
                }
            }
        private void CheckGameEvents(EventVisitModel evVisit)
        {
            uint        dateNow = uint.Parse(DateTime.Now.ToString("yyMMddHHmm"));
            PlayerEvent pev     = c._event;

            if (pev != null)
            {
                QuestModel evQuest = EventQuestSyncer.getRunningEvent();
                if (evQuest != null)
                {
                    long date = pev.LastQuestDate, finish = pev.LastQuestFinish;
                    if (pev.LastQuestDate < evQuest.startDate)
                    {
                        pev.LastQuestDate   = 0;
                        pev.LastQuestFinish = 0;
                        c.SendPacket(new SERVER_MESSAGE_EVENT_QUEST_PAK());
                    }
                    if (pev.LastQuestFinish == 0)
                    {
                        c._mission.mission4 = 13; //MissionId
                        if (pev.LastQuestDate == 0)
                        {
                            pev.LastQuestDate = (uint)dateNow;
                        }
                    }
                    if (pev.LastQuestDate != date || pev.LastQuestFinish != finish)
                    {
                        EventQuestSyncer.ResetPlayerEvent(c.player_id, pev);
                    }
                }
                EventLoginModel evLogin = EventLoginSyncer.getRunningEvent();
                if (evLogin != null && !(evLogin.startDate < pev.LastLoginDate && pev.LastLoginDate < evLogin.endDate))
                {
                    ItemsModel item = new ItemsModel(evLogin._rewardId, evLogin._category, "Login event", 1, (uint)evLogin._count);
                    PlayerManager.tryCreateItem(item, c._inventory, c.player_id);
                    c.SendPacket(new SERVER_MESSAGE_ITEM_RECEIVE_PAK(0));
                    if (item._category == 1)
                    {
                        weapons.Add(item);
                    }
                    else if (item._category == 2)
                    {
                        charas.Add(item);
                    }
                    else if (item._category == 3)
                    {
                        cupons.Add(item);
                    }
                    ComDiv.updateDB("player_events", "last_login_date", dateNow, "player_id", c.player_id);
                }
                if (evVisit != null && pev.LastVisitEventId != evVisit.id)
                {
                    pev.LastVisitEventId   = evVisit.id;
                    pev.LastVisitSequence1 = 0;
                    pev.LastVisitSequence2 = 0;
                    pev.NextVisitDate      = 0;
                    EventVisitSyncer.ResetPlayerEvent(c.player_id, evVisit.id);
                }
                EventXmasModel evXmas = EventXmasSyncer.getRunningEvent();
                if (evXmas != null)
                {
                    if (pev.LastXmasRewardDate < evXmas.startDate)
                    {
                        pev.LastXmasRewardDate = 0;
                        ComDiv.updateDB("player_events", "last_xmas_reward_date", 0, "player_id", c.player_id);
                    }
                    if (!(pev.LastXmasRewardDate > evXmas.startDate && pev.LastXmasRewardDate <= evXmas.endDate))
                    {
                        _xmas = true;
                    }
                }
            }
            //ComDiv.updateDB("contas", "last_login", dateNow, "player_id", c.player_id);
        }