public void Start() { if (started || ended) { return; } foreach (PQuestStage sStage in Stages) { if (sStage.Number == 0) { Stage = sStage; Stage.Reset(); foreach (Player Plr in Players) { SendCurrentStage(Plr); } break; } } //Log.Success("PQuest", "Starting Quest " + Info.Name); Log.Success("PQuest", "Starting PublicQuest " + Info.Name); started = true; }
public PQuestObject(PQuest_Info Info) : this() { this.Info = Info; Name = Info.Name; Players = new List <Player>(); Stages = new List <PQuestStage>(); foreach (PQuest_Objective Obj in Info.Objectives) { Boolean exists = false; foreach (PQuestStage Stage in Stages) { if (Stage.StageName == Obj.StageName) { exists = true; break; } } if (!exists) { PQuestStage Stage = new PQuestStage(); Stage.StageName = Obj.StageName; Stage.Number = Stages.Count; Stage.Description = Obj.Description; Stages.Add(Stage); } foreach (PQuestStage Stage in Stages) { if (Stage.StageName == Obj.StageName) { PQuestObjective Objective = new PQuestObjective(); Objective.Quest = this; Objective.Objective = Obj; Objective.ObjectiveID = Obj.Guid; Objective.Count = 0; Stage.AddObjective(Objective); } } } }
public void NextStage() { Stage.Cleanup(); int nextStageId = Stage.Number + 1; EvtInterface.RemoveEvent(Failed); foreach (PQuestStage sStage in Stages) { if (sStage.Number == nextStageId) { Stage = sStage; Stage.Reset(); foreach (Player Plr in Players) { SendCurrentStage(Plr); } EvtInterface.AddEvent(Failed, TIME_EACH_STAGE * 1000, 1); return; } } End(); }