Esempio n. 1
0
        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;
        }
Esempio n. 2
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
        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();
        }