Beispiel #1
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.bronzeanvil", true, "pipliz.crafter");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.bow", true, "pipliz.crafter");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.bowstring", true, "pipliz.crafter");
     RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.bronzeanvil");
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter2.linseedoil", true, "Nach0Crafter2Job");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter2.coatedplanks", true, "Nach0Crafter2Job");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter2.adobe", true, "Nach0Crafter2Job");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter2.bowstring", true, "Nach0Crafter2Job");
 }
Beispiel #3
0
        /// <summary>
        /// Called when this researchable is completed by a player.
        /// </summary>
        /// <param name="manager">Player's individual science manager.</param>
        /// <param name="reason">Will equal EResearchCompletionReason.ProgressCompleted when this research is completed by a player.</param>
        public void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            if (reason == EResearchCompletionReason.ProgressCompleted)
            {
                foreach (OptionalRecReference U in Unlocks)
                {
                    if (U.limitType != null)
                    {
                        RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability(U.NPCCrafted, true, U.limitType);
                    }
                    if (U.PlayerCrafted != null)
                    {
                        RecipePlayer.UnlockOptionalRecipe(manager.Player, U.PlayerCrafted);
                    }
                }

                foreach (OptionalRecReference L in Locks)
                {
                    if (L.limitType != null)
                    {
                        RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability(L.NPCCrafted, false, L.limitType);
                    }
                    if (L.PlayerCrafted != null)
                    {
                        // need to figure out how to do this.
                    }
                }
            }
        }
Beispiel #4
0
        private static void Research_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            var armor = new List <Armor.ArmorMetadata>();

            switch (e.Research.Level)
            {
            case 1:
                armor.AddRange(Armor.ArmorLookup.Values.Where(a => a.Metal == MetalType.Copper));
                break;

            case 2:
                armor.AddRange(Armor.ArmorLookup.Values.Where(a => a.Metal == MetalType.Bronze));
                break;

            case 3:
                armor.AddRange(Armor.ArmorLookup.Values.Where(a => a.Metal == MetalType.Iron));
                break;

            case 4:
                armor.AddRange(Armor.ArmorLookup.Values.Where(a => a.Metal == MetalType.Steel));
                break;
            }

            foreach (var item in armor)
            {
                RecipeStorage.GetPlayerStorage(e.Manager.Player)
                .SetRecipeAvailability(item.ItemType.name, true, Armor.JOB_METALSMITH);
            }
        }
Beispiel #5
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.splittingstumptemperate", true, "pipliz.crafter");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.splittingstumptaiga", true, "pipliz.crafter");
     RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.splittingstumptaiga");
     RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.splittingstumptemperate");
 }
Beispiel #6
0
        private static void Machiness_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Miner.Item.name, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(GateLever.Item.name, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(GateLever.GateItem.name, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Turret.BRONZEARROW_NAMESPACE, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Turret.STONE_NAMESPACE, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Turret.CROSSBOW_NAMESPACE, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Turret.MATCHLOCK_NAMESPACE, true, AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(AdvancedCrafterRegister.JOB_RECIPE, true, ItemFactory.JOB_CRAFTER);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(MachinistRegister.JOB_RECIPE, true, ItemFactory.JOB_CRAFTER);

            RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, MachinistRegister.JOB_RECIPE);
            RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, AdvancedCrafterRegister.JOB_RECIPE);
        }
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            var storage = RecipeStorage.GetPlayerStorage(manager.Player);

            storage.SetRecipeAvailability("pipliz.dyer.quarterblockblack", true, "pipliz.dyer");
            storage.SetRecipeAvailability("pipliz.dyer.quarterblockwhite", true, "pipliz.dyer");
        }
Beispiel #8
0
        private static void Knights_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            PatrolTool.GivePlayerPatrolTool(e.Manager.Player);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(PatrolTool.PatrolFlag.name, true, ItemFactory.JOB_CRAFTER);
        }
Beispiel #9
0
        private static void Apocth_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ApothecaryRegister.JOB_RECIPE, true, ItemFactory.JOB_CRAFTER);

            RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, ApothecaryRegister.JOB_RECIPE);
        }
        private static void SwordResearch_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            List <Items.WeaponMetadata> sword = new List <Items.WeaponMetadata>();

            switch (e.Research.Level)
            {
            case 1:
                sword.AddRange(Items.ItemFactory.WeaponLookup.Values.Where(a => a.Metal == Items.MetalType.Copper));
                break;

            case 2:
                sword.AddRange(Items.ItemFactory.WeaponLookup.Values.Where(a => a.Metal == Items.MetalType.Bronze));
                break;

            case 3:
                sword.AddRange(Items.ItemFactory.WeaponLookup.Values.Where(a => a.Metal == Items.MetalType.Iron));
                break;

            case 4:
                sword.AddRange(Items.ItemFactory.WeaponLookup.Values.Where(a => a.Metal == Items.MetalType.Steel));
                break;
            }

            foreach (var item in sword)
            {
                RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(item.ItemType.name, true, Items.Armor.JOB_METALSMITH);
            }
        }
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            var storage = RecipeStorage.GetPlayerStorage(manager.Player);

            storage.SetRecipeAvailability("pipliz.woodcutter2.quarterblockbrowndark", true, "Nach0WoodCutter2Job");
            storage.SetRecipeAvailability("pipliz.woodcutter2.quarterblockbrownlight", true, "Nach0WoodCutter2Job");
        }
Beispiel #12
0
        private static void Mana_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Items.Mana.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Aether.Item.name, true, ApothecaryRegister.JOB_NAME);
        }
Beispiel #13
0
        private static void AdvanceApocth_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Anitbiotic.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(TreatedBandage.Item.name, true, ApothecaryRegister.JOB_NAME);
        }
Beispiel #14
0
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            var storage = RecipeStorage.GetPlayerStorage(manager.Player);

            storage.SetRecipeAvailability("pipliz.metalsmith2.lanternyellow", true, "Nach0MetalSmith2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanternwhite", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanterngreen", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanternblue", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanternred", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanternorange", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanterncyan", true, "Nach0Dyer2Job");
            storage.SetRecipeAvailability("pipliz.dyer2.lanternpink", true, "Nach0Dyer2Job");
        }
Beispiel #15
0
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.linseedoil", true, "pipliz.crafter");
            RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.coatedplanks", true, "pipliz.crafter");
            RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.adobe", true, "pipliz.crafter");

            if (reason == EResearchCompletionReason.ProgressCompleted)
            {
                Stockpile.GetStockPile(manager.Player).Add(BlockTypes.Builtin.BuiltinBlocks.FlaxStage1, 100);
                if (manager.Player.IsConnected)
                {
                    Chatting.Chat.Send(manager.Player, "You received 100 flax seeds!");
                }
            }
        }
        private static void Machiness_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Items.Machines.Miner.Item.name, true, Jobs.AdvancedCrafterRegister.JOB_NAME);
            RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Items.Machines.GateLever.Item.name, true, Jobs.AdvancedCrafterRegister.JOB_NAME);
            RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Items.Machines.GateLever.GateItem.name, true, Jobs.AdvancedCrafterRegister.JOB_NAME);
            RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Jobs.AdvancedCrafterRegister.JOB_RECIPE, true, Items.ItemFactory.JOB_CRAFTER);
            RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Jobs.MachinistRegister.JOB_RECIPE, true, Items.ItemFactory.JOB_CRAFTER);
            RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, Jobs.MachinistRegister.JOB_RECIPE);
            RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, Jobs.AdvancedCrafterRegister.JOB_RECIPE);

            foreach (var item in Items.Machines.Turret.TurretSettings)
            {
                RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(item.Value.TurretItem.name, true, Jobs.AdvancedCrafterRegister.JOB_NAME);
            }
        }
Beispiel #17
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     if (reason == EResearchCompletionReason.ProgressCompleted)
     {
         Stockpile.GetStockPile(manager.Player).Add(BlockTypes.Builtin.BuiltinBlocks.AlkanetStage1, 100);
         Stockpile.GetStockPile(manager.Player).Add(BlockTypes.Builtin.BuiltinBlocks.HollyhockStage1, 100);
         Stockpile.GetStockPile(manager.Player).Add(BlockTypes.Builtin.BuiltinBlocks.WolfsbaneStage1, 100);
         if (manager.Player.IsConnected)
         {
             Chatting.Chat.Send(manager.Player, "You received 100 Alkanet, Hollyhock and Wolfsbane seeds!");
         }
     }
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant.alkanetseeds", true, "pipliz.merchant");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant.hollyhockseeds", true, "pipliz.merchant");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant.wolfsbaneseeds", true, "pipliz.merchant");
 }
Beispiel #18
0
        public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
        {
            RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.oven", true, "pipliz.crafter");
            RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.grindstone", true, "pipliz.crafter");
            RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.oven");
            RecipePlayer.UnlockOptionalRecipe(manager.Player, "pipliz.player.grindstone");

            if (reason == EResearchCompletionReason.ProgressCompleted)
            {
                Stockpile.GetStockPile(manager.Player).Add(BlockTypes.Builtin.BuiltinBlocks.WheatStage1, 400);
                if (manager.Player.IsConnected)
                {
                    Chatting.Chat.Send(manager.Player, "You received 400 wheat seeds!");
                }
            }
        }
Beispiel #19
0
 /// <summary>
 /// Called when this researchable is completed by a player.
 /// </summary>
 /// <param name="manager">Player's individual science manager.</param>
 /// <param name="reason">Will equal EResearchCompletionReason.ProgressCompleted when this research is completed by a player.</param>
 public void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     if (reason == EResearchCompletionReason.ProgressCompleted)
     {
         foreach (Unlock U in Unlocks)
         {
             if (U.limitType != null)
             {
                 RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability(U.NPCCrafted, true, U.limitType);
             }
             if (U.PlayerCrafted != null)
             {
                 RecipePlayer.UnlockOptionalRecipe(manager.Player, U.PlayerCrafted);
             }
         }
     }
 }
Beispiel #20
0
        private static void Elementium_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(Items.Elementium.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(EarthStone.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(FireStone.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(WaterStone.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(AirStone.Item.name, true, ApothecaryRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ElementalTurrets.AIRTURRET_NAMESPACE, true,
                                   AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ElementalTurrets.FIRETURRET_NAMESPACE, true,
                                   AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ElementalTurrets.EARTHTURRET_NAMESPACE, true,
                                   AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ElementalTurrets.WATERTURRET_NAMESPACE, true,
                                   AdvancedCrafterRegister.JOB_NAME);

            RecipeStorage.GetPlayerStorage(e.Manager.Player)
            .SetRecipeAvailability(ElementalTurrets.VOIDTURRET_NAMESPACE, true,
                                   AdvancedCrafterRegister.JOB_NAME);
        }
 public static void AdvancedMerchant_ResearchComplete(object sender, ResearchCompleteEventArgs e)
 {
     if (JSON.Deserialize(GameLoader.ConfigFolder + "/shopping.json", out JSONNode jsonRecipes, false))
     {
         if (jsonRecipes.NodeType == NodeType.Array)
         {
             foreach (JSONNode craftingEntry in jsonRecipes.LoopArray())
             {
                 if (craftingEntry.TryGetAs("name", out string name))
                 {
                     if (name.StartsWith(VANILLA_PREFIX))
                     {
                         name = name.Substring(VANILLA_PREFIX.Length);
                     }
                     else
                     {
                         name = MOD_NAMESPACE_BLOCKS + "." + name;
                     }
                 }
                 RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(name, true);
             }
         }
     }
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.dyertable2", true, "Nach0Crafter2Job");
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.crafter.bronzeanvil2", true, "pipliz.crafter");
 }
Beispiel #24
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.technologist2.sciencebaglife", true, "Nach0Technologist2Job");
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant2.alkanetseeds", true, "Nach0Merchant2Job");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant2.hollyhockseeds", true, "Nach0Merchant2Job");
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.merchant2.wolfsbaneseeds", true, "Nach0Merchant2Job");
 }
Beispiel #26
0
 public static void Carpentry_ResearchComplete(object sender, ResearchCompleteEventArgs e)
 {
     RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(MOD_NAMESPACE_BLOCKS + ".CarpentryWorkbench", true);
 }
Beispiel #27
0
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.gunsmith2.matchlockgun", true, "Nach0GunSmith2Job");
 }
 private static void Herbs_ResearchComplete(object sender, ResearchCompleteEventArgs e)
 {
     RecipeStorage.GetPlayerStorage(e.Manager.Player).SetRecipeAvailability(Jobs.HerbalistRegister.JOB_RECIPE, true, Items.ItemFactory.JOB_CRAFTER);
     RecipePlayer.UnlockOptionalRecipe(e.Manager.Player, Jobs.HerbalistRegister.JOB_RECIPE);
 }
 public override void OnResearchComplete(ScienceManagerPlayer manager, EResearchCompletionReason reason)
 {
     RecipeStorage.GetPlayerStorage(manager.Player).SetRecipeAvailability("pipliz.metalsmith2.crossbowbolt", true, "Nach0MetalSmith2Job");
 }
Beispiel #30
0
 private static void Teleporters_ResearchComplete(object sender, ResearchCompleteEventArgs e)
 {
     RecipeStorage.GetPlayerStorage(e.Manager.Player)
     .SetRecipeAvailability(TeleportPad.Item.name, true, AdvancedCrafterRegister.JOB_NAME);
 }