public void ServerCreateActiveTasks( ICharacter character, IPlayerActiveTasksHolder activeTasksHolder) { this.ServerResetActiveTasks(); var tasks = this.Achievement.Tasks; this.serverActiveTasks = new List <ServerPlayerActiveTask>(tasks.Count); // refresh the task states for (byte index = 0; index < tasks.Count; index++) { var task = tasks[index]; var taskState = this.TaskStates[index]; task.ServerRefreshIsCompleted(character, taskState); if (!taskState.IsCompleted || task.IsReversible) { // create active task entry var achievementTask = new ServerPlayerActiveTask(task, taskState, activeTasksHolder, character); this.serverActiveTasks.Add(achievementTask); achievementTask.IsActive = true; } } this.ServerRefreshAllTasksCompleted(character); }
public ServerPlayerActiveTask( IPlayerTask playerTask, PlayerTaskState playerTaskState, IPlayerActiveTasksHolder playerTaskTarget, ICharacter character) { this.PlayerTask = playerTask; this.PlayerTaskState = playerTaskState; this.PlayerTaskTarget = playerTaskTarget; this.Character = character; }
public void ServerCreateActiveTasks( ICharacter character, IPlayerActiveTasksHolder activeTasksHolder) { this.ServerResetActiveTasks(); if (this.IsCompleted) { // the quest is completed - no active tasks required in that case return; } var tasks = this.Quest.Tasks; this.serverActiveTasks = new List <ServerPlayerActiveTask>(tasks.Count); // refresh the task states for (byte index = 0; index < tasks.Count; index++) { var task = tasks[index]; var taskState = this.TaskStates[index]; task.ServerRefreshIsCompleted(character, taskState); if (taskState.IsCompleted && !task.IsReversible) { continue; } // create active task entry var questTask = new ServerPlayerActiveTask(task, taskState, activeTasksHolder, character); this.serverActiveTasks.Add(questTask); questTask.IsActive = true; } this.ServerRefreshAllTasksCompleted(character); }