예제 #1
0
 public Quest(IDatabasePreloader databasePreloader, DbCharacterQuest dbCharacterQuest) : this(databasePreloader, dbCharacterQuest.QuestId)
 {
     if (dbCharacterQuest.Delay > 0)
     {
         _endTime           = DateTime.UtcNow.AddMinutes(dbCharacterQuest.Delay);
         _endTimer.Interval = dbCharacterQuest.Delay * 60 * 1000;
         _endTimer.Start();
     }
     CountMob1    = dbCharacterQuest.Count1;
     CountMob2    = dbCharacterQuest.Count2;
     IsFinished   = dbCharacterQuest.Finish;
     IsSuccessful = dbCharacterQuest.Success;
 }
예제 #2
0
        internal async Task StartQuest(object[] args)
        {
            int    charId        = (int)args[0];
            ushort questId       = (ushort)args[1];
            ushort remainingTime = (ushort)args[2];

            var dbCharacterQuest = new DbCharacterQuest();

            dbCharacterQuest.CharacterId = charId;
            dbCharacterQuest.QuestId     = questId;
            dbCharacterQuest.Delay       = remainingTime;
            _database.CharacterQuests.Add(dbCharacterQuest);
            await _database.SaveChangesAsync();
        }
예제 #3
0
        internal static async Task StartQuest(object[] args)
        {
            int    charId        = (int)args[0];
            ushort questId       = (ushort)args[1];
            ushort remainingTime = (ushort)args[2];

            using var database = DependencyContainer.Instance.Resolve <IDatabase>();
            var dbCharacterQuest = new DbCharacterQuest();

            dbCharacterQuest.CharacterId = charId;
            dbCharacterQuest.QuestId     = questId;
            dbCharacterQuest.Delay       = remainingTime;
            database.CharacterQuests.Add(dbCharacterQuest);
            await database.SaveChangesAsync();
        }