Ejemplo n.º 1
0
        public static void StartEvolution(Players.Player player)
        {
            try {
                int speciesNum = player.GetActiveRecruit().Species;
                int evoIndex = -1;
                List<int> evoToLoad;
                for (int z = 0; z < Evolutions.MaxEvos; z++) {
                    if (Evolutions[z].Species == speciesNum) {
                        evoIndex = z;
                    }
                }

                if (evoIndex == -1) {
                    Messenger.PlayerMsg(player.Client, "You cannot evolve anymore.", Text.BrightRed);
                } else {

                        evoToLoad = FindViableEvolutions(player.Client, evoIndex);
                    if (evoToLoad.Count == 0) {
                        Messenger.PlayerMsg(player.Client, "You do not meet the requirements to evolve.", Text.BrightRed);
                    } else if (evoToLoad.Count == 1) {
                        Messenger.AskQuestion(player.Client, "SingleEvolution", "You who seek awakening, you shall evolve into " + Evolutions[evoIndex].Branches[evoToLoad[0]].Name + ".  Will you evolve?", -1);
                    } else {
                        string[] evochoices = new string[evoToLoad.Count + 1];
                        for(int i = 0; i < evoToLoad.Count; i++) {
                            evochoices[i] = Evolutions[evoIndex].Branches[evoToLoad[i]].Name;
                        }
                        evochoices[evochoices.Length - 1] = "Cancel";
                        Messenger.AskQuestion(player.Client, "BranchEvolution", "You who seek awakening, into what do you wish to evolve?", -1, evochoices);
                    }

                        /*
                    if (evoToLoad != -1) {
                        if (player.GetActiveRecruit().Level >= Evolutions[evoIndex].MinLvl) {
                            //Classes.ClassManager.ChangePlayerClass(player.Client, Evolutions[evoIndex].SplitEvos[evoToLoad].NewClass);
                            player.GetActiveRecruit().Sprite = Evolutions[evoIndex].SplitEvos[evoToLoad].NewSprite;
                            if (!player.GetActiveRecruit().HasMove(Evolutions[evoIndex].SplitEvos[evoToLoad].MoveLearned)) {
                                player.GetActiveRecruit().LearnNewMove(Evolutions[evoIndex].SplitEvos[evoToLoad].MoveLearned);
                                Messenger.SendPlayerMoves(player.Client);
                                Messenger.PlayerMsg(player.Client, "You have learned " + MoveManager.Moves[Evolutions[evoIndex].SplitEvos[evoToLoad].MoveLearned].Name + "!", Text.White);
                            }
                            player.TakeItem(Evolutions[evoIndex].SplitEvos[evoToLoad].RequiredItem, 1);
                            if (player.GetActiveRecruit().Nickname == false) {
                                player.GetActiveRecruit().Name = Evolutions[evoIndex].SplitEvos[evoToLoad].Name;
                            }
                            player.GetActiveRecruit().Save(player.GetCharFolder(), player.GetActiveRecruitSlot());
                            Messenger.SendActiveTeam(player.Client);
                            Messenger.SendPlayerData(player.Client);
                            Messenger.PlayerMsg(player.Client, "You have evolved into a " + Evolutions[evoIndex].SplitEvos[evoToLoad].Name + "! Congratulations!", Text.Yellow);
                        } else {
                            Messenger.PlayerMsg(player.Client, "You can't evolve yet... You must raise your level!", Text.BrightRed);
                        }
                    } else {
                        Messenger.PlayerMsg(player.Client, "You do not have the proper item equipped to evolve!", Text.BrightRed);
                    }
                    */
                }
            } catch (Exception ex) {
                Exceptions.ErrorLogger.WriteToErrorLog(ex, "Evolution, [Data] Index: " + player.Client.ToString() + ", Player Sprite: " + player.GetActiveRecruit().Sprite.ToString());
                Messenger.PlayerMsg(player.Client, "Evolution Error", Text.BrightRed);
            }
        }