示例#1
0
        public static bool Mission_Finish(this Avatar Player, int Global_ID)
        {
            Console.WriteLine(Player.Tutorials.FindIndex(M => M == Global_ID));
            if (Player.Tutorials.FindIndex(M => M == Global_ID) < 0)
            {
                Missions Mission = CSV.Tables.Get(Gamefile.Missions).GetDataWithID(Global_ID) as Missions;

                Player.Tutorials.Add(Mission.GetGlobalID());
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static bool Mission_Finish(this Player Player, int Global_ID)
        {
            if (Player.Tutorials.FindIndex(M => M == Global_ID) < 0)
            {
                Missions Mission = CSV.Tables.Get(Gamefile.Missions).GetDataWithID(Global_ID) as Missions;

#if DEBUG
                Console.WriteLine($"Mission received {Mission.Name} marked as finished");
#endif
                if (!string.IsNullOrEmpty(Mission.RewardResource))
                {
                    Files.CSV_Logic.Resource CSV_Resources = CSV.Tables.Get(Gamefile.Resources).GetData(Mission.RewardResource) as Files.CSV_Logic.Resource;

                    Player.Resources.Plus(CSV_Resources.GetGlobalID(), Mission.RewardResourceCount);
                }
                if (!string.IsNullOrEmpty(Mission.RewardTroop))
                {
                    Characters CSV_Characters = CSV.Tables.Get(Gamefile.Characters).GetData(Mission.RewardTroop) as Characters;

#if DEBUG
                    Console.WriteLine($"Player received {CSV_Characters.Name} as mission rewards");
#endif
                    Player.Add_Unit(CSV_Characters.GetGlobalID(), Mission.RewardTroopCount);
                }

                if (!string.IsNullOrEmpty(Mission.Dependencies))
                {
                    int DependenciesID = CSV.Tables.Get(Gamefile.Missions).GetData(Mission.Dependencies).GetGlobalID();
                    if (Player.Tutorials.FindIndex(M => M == DependenciesID) < 0)
                    {
#if DEBUG
                        Console.WriteLine($"Mission Dependencies {(CSV.Tables.Get(Gamefile.Missions).GetDataWithID(DependenciesID) as Missions).Name} marked as finished");
#endif
                        Mission_Finish(Player, DependenciesID);
                    }
                }
                Player.Experience += Mission.RewardXP;
                Player.Tutorials.Add(Mission.GetGlobalID());
                return(true);
            }
            return(false);
        }
        internal static void Check_Missions(this Player Player)
        {
            if (Player != null)
            {
                foreach (Missions CSV_Missions in CSV.Tables.Get(Gamefile.Missions).Datas)
                {
                    if (Player.Tutorials.FindIndex(M => M == CSV_Missions.GetGlobalID()) < 0)
                    {
                        if (!string.IsNullOrEmpty(CSV_Missions.Dependencies))
                        {
                            Missions Dependencies_Missions = CSV.Tables.Get(Gamefile.Missions).GetData(CSV_Missions.Dependencies) as Missions;

                            if (Player.Tutorials.FindIndex(T => T == Dependencies_Missions.GetGlobalID()) < 0)
                            {
                                continue;
                            }
                        }
                        if (!string.IsNullOrEmpty(CSV_Missions.BuildBuilding))
                        {
                            Buildings CSV_Buildings = CSV.Tables.Get(Gamefile.Buildings).GetData(CSV_Missions.BuildBuilding) as Buildings;

                            //List<Building> Building = Player.Objects.Buildings.FindAll(B => B.Data == CSV_Buildings.GetGlobalID());

                            if (CSV_Missions.BuildBuildingCount == 1)
                            {
                                //    if (Building.Count > 0)
                                {
                                    //      int Index = Building.FindIndex(B => B.Level + 1 >= CSV_Missions.BuildBuildingLevel);

                                    //    if (Index > -1)
                                    {
                                        //      Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                                    }
                                }
                            }
                            else
                            {
                                //int Count = Building.FindAll(B => B.Level + 1 >= CSV_Missions.BuildBuildingLevel).Count;

                                //if (Count >= CSV_Missions.BuildBuildingCount)
                                {
                                    //  Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                                }
                            }
                        }
                        else if (CSV_Missions.OpenAchievements)
                        {
                            Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                        }
                        else if (CSV_Missions.TrainTroops > 0)
                        {
                            int Troops_Count = 0;

                            //foreach (Slot Slot in Player.Units)
                            {
                                //  Troops_Count += Slot.Count;
                            }

                            if (Troops_Count >= CSV_Missions.TrainTroops)
                            {
                                Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                            }
                        }
                        else if (!string.IsNullOrEmpty(CSV_Missions.AttackNPC))
                        {
                            //Npcs CSV_Npcs = CSV.Tables.Get(Gamefile.Npcs).GetData(CSV_Missions.AttackNPC) as Npcs;

                            //if (Player.Npcs.FindIndex(N => N.Data == CSV_Npcs.GetGlobalID()) > -1)
                            {
                                Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                                Player.Experience += CSV_Missions.RewardXP;

                                //  Player.Resources.Plus(Logic.Enums.Resource.GOLD, CSV_Npcs.Gold);
                                //Player.Resources.Plus(Logic.Enums.Resource.ELIXIR, CSV_Npcs.Elixir);
                            }
                        }
                        else if (CSV_Missions.ChangeName)
                        {
                            //if (Player.NameSet > 0)
                            Player.Tutorials.Add(CSV_Missions.GetGlobalID());
                        }
                        if (!string.IsNullOrEmpty(CSV_Missions.RewardResource))
                        {
                            //Resources CSV_Resources = CSV.Tables.Get(Gamefile.Resources).GetData(CSV_Missions.RewardResource) as Resources;

                            //Player.Resources.Plus((Logic.Enums.Resource)CSV_Resources.GetGlobalID(), CSV_Missions.RewardResourceCount);
                            Player.Experience += CSV_Missions.RewardXP;
                        }
                        if (!string.IsNullOrEmpty(CSV_Missions.RewardTroop))
                        {
                            //Characters CSV_Characters = CSV.Tables.Get(Gamefile.Characters).GetData(CSV_Missions.RewardResource) as Characters;

                            //Player.Units.Add(new Slot(CSV_Characters.GetGlobalID(), CSV_Missions.RewardTroopCount));
                            Player.Experience += CSV_Missions.RewardXP;
                        }
                    }
                }
            }
        }
示例#4
0
        public static bool Mission_Finish(this Player Player, int Global_ID)
        {
            if (Player.Tutorials.FindIndex(M => M == Global_ID) < 0)
            {
                Missions Mission = CSV.Tables.Get(Gamefile.Missions).GetDataWithID(Global_ID) as Missions;

#if DEBUG
                Console.WriteLine($"Mission received {Mission.Name} marked as finished");
#endif
                if (!string.IsNullOrEmpty(Mission.RewardResource))
                {
                    Files.CSV_Logic.Resource CSV_Resources =
                        CSV.Tables.Get(Gamefile.Resources).GetData(Mission.RewardResource) as Files.CSV_Logic.Resource;

                    Player.Resources.Plus(CSV_Resources.GetGlobalID(), Mission.RewardResourceCount);
                }
                if (!string.IsNullOrEmpty(Mission.RewardTroop))
                {
                    Characters CSV_Characters =
                        CSV.Tables.Get(Gamefile.Characters).GetData(Mission.RewardTroop) as Characters;

#if DEBUG
                    Console.WriteLine($"Player received {CSV_Characters.Name} as mission rewards");
#endif
                    Player.Add_Unit(CSV_Characters.GetGlobalID(), Mission.RewardTroopCount);
                }

                if (!string.IsNullOrEmpty(Mission.Dependencies))
                {
                    int DependenciesID = CSV.Tables.Get(Gamefile.Missions).GetData(Mission.Dependencies).GetGlobalID();
                    if (Player.Tutorials.FindIndex(M => M == DependenciesID) < 0)
                    {
#if DEBUG
                        Console.WriteLine(
                            $"Mission Dependencies {(CSV.Tables.Get(Gamefile.Missions).GetDataWithID(DependenciesID) as Missions).Name} marked as finished");
#endif
                        Mission_Finish(Player, DependenciesID);
                    }
                }
                if (!string.IsNullOrEmpty(Mission.AttackNPC))
                {
                    Npcs CSV_Npcs = CSV.Tables.Get(Gamefile.Npcs).GetData(Mission.AttackNPC) as Npcs;

                    if (Player.Npcs.FindIndex(N => N.NPC_Id == CSV_Npcs.GetGlobalID()) > -1)
                    {
                        Player.Resources.Plus(Logic.Enums.Resource.Gold, CSV_Npcs.Gold);
                        Player.Resources.Plus(Logic.Enums.Resource.Elixir, CSV_Npcs.Elixir);
                    }
                }
                if (Mission.ChangeName)
                {
                    Player.Resources.Plus(Logic.Enums.Resource.Gold, 900);
                    Player.Resources.Plus(Logic.Enums.Resource.Elixir, 400);
                }

                Player.AddExperience(Mission.RewardXP);
                Player.Tutorials.Add(Mission.GetGlobalID());
                return(true);
            }
            return(false);
        }