示例#1
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.technologist.sciencebagmilitary", true, "pipliz.technologist");
 }
示例#2
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     manager.Player.GetTempValues(true).Set("pipliz.healthregenmax", 100f);
 }
示例#3
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.tailorshop", true, "pipliz.crafter");
     RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.tailorshop");
 }
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            var storage = RecipeStorage.GetPlayerStorage(manager.Player);

            storage.SetRecipeAvailability("pipliz.stonemason2.quarterblockgrey", true, "Nach0StoneMason2Job");
        }
示例#5
0
 public override void OnResearchComplete(ScienceManagerPlayer manager)
 {
     manager.Player.SetTemporaryValue("pipliz.healthmax", 150f);
 }
示例#6
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     manager.Player.GetTempValues(true).Set("pipliz.builderlimit", 1000000);
     ConstructionHelper.SendPacket(manager.Player);
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.tailorshop2", true, "Nach0Crafter2Job");
 }
示例#8
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.gunsmith.gunpowder", true, "pipliz.gunsmith");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.gunsmith.gunpowderpouch", true, "pipliz.gunsmith");
 }
示例#9
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.metalsmith.crossbow", true, "pipliz.metalsmith");
 }
示例#10
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.bloomery2", true, "pipliz.crafter");
 }
示例#11
0
 public override void OnResearchComplete(ScienceManagerPlayer manager)
 {
     manager.Player.SetTemporaryValue("pipliz.healthregenspeed", 4f);
 }
示例#12
0
 public ResearchCompleteEventArgs(Research research, ScienceManagerPlayer player)
 {
     Research = research;
     Manager  = player;
 }
示例#13
0
 public virtual void OnResearchComplete(ScienceManagerPlayer manager)
 {
     Log.Write("{0} completed {1}", manager.Player, key);
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
 }
示例#15
0
        public static void SyncronizeResearch(Players.Player player, Players.Player fake_plater)
        {
            ScienceManagerPlayer player_ScienceManager      = ScienceManager.GetPlayerManager(player);
            ScienceManagerPlayer fake_player_ScienceManager = ScienceManager.GetPlayerManager(fake_plater);

            List <ResearchProgress> plrinProgressResearch      = player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(player_ScienceManager) as List <ResearchProgress>;
            List <ResearchProgress> fake_plrinProgressResearch = fake_player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(fake_player_ScienceManager) as List <ResearchProgress>;

            if (null == plrinProgressResearch && null == fake_plrinProgressResearch)
            {
                return;
            }

            if (null == fake_plrinProgressResearch)
            {
                Log.Write("<color=lime>Research from player to fakeplayer</color>");
                fake_player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(fake_player_ScienceManager, plrinProgressResearch);

                foreach (ResearchProgress rp in plrinProgressResearch)
                {
                    if (rp.research.GetResearchIterationCount() == rp.progress)
                    {
                        rp.research.OnResearchComplete(fake_player_ScienceManager, EResearchCompletionReason.Loaded);
                    }
                }

                return;
            }

            if (null == plrinProgressResearch)
            {
                Log.Write("<color=lime>Research from fake_player to player</color>");
                player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(player_ScienceManager, fake_plrinProgressResearch);

                foreach (ResearchProgress rp in fake_plrinProgressResearch)
                {
                    if (rp.research.GetResearchIterationCount() == rp.progress)
                    {
                        rp.research.OnResearchComplete(player_ScienceManager, EResearchCompletionReason.Loaded);
                    }
                }

                return;
            }

            foreach (ResearchProgress rpPlr in plrinProgressResearch)
            {
                bool contains = false;
                foreach (ResearchProgress rpFake_Plr in fake_plrinProgressResearch)
                {
                    if (rpFake_Plr.research == rpPlr.research)
                    {
                        contains = true;

                        if (rpPlr.progress > rpFake_Plr.progress)    //Replace for the research with more progress
                        {
                            fake_plrinProgressResearch.Remove(rpFake_Plr);
                            fake_plrinProgressResearch.Add(rpPlr);
                        }

                        break;
                    }
                }

                if (!contains)
                {
                    fake_plrinProgressResearch.Add(rpPlr);
                }
            }

            Log.Write("<color=lime>Synchronization</color>");

            //Fake player synchronization
            fake_player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(fake_player_ScienceManager, fake_plrinProgressResearch);

            //Player synchronization
            player_ScienceManager.GetType().GetField("inProgressResearch", BindingFlags.Instance | BindingFlags.NonPublic).SetValue(player_ScienceManager, fake_plrinProgressResearch);

            foreach (ResearchProgress rp in fake_plrinProgressResearch)
            {
                if (rp.research.GetResearchIterationCount() == rp.progress)
                {
                    rp.research.OnResearchComplete(fake_player_ScienceManager, EResearchCompletionReason.Loaded);
                    rp.research.OnResearchComplete(player_ScienceManager, EResearchCompletionReason.Loaded);
                }
            }
        }
示例#16
0
 public virtual void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     Log.Write("{0} completed {1} ({2})", manager.Player, key, reason);
 }