private static void RegisterSwordmithng(Dictionary <ushort, int> researchDic, int level, List <string> requirements = null)
        {
            var research = new PandaResearch(researchDic, level, SwordSmithing, 1f, requirements);

            research.ResearchComplete += SwordResearch_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
        private static void AddColonistHealth(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.ScienceBagBasic, 2);
            researchDic.Add(BuiltinBlocks.ScienceBagLife, 2);
            researchDic.Add(BuiltinBlocks.Linen, 5);
            researchDic.Add(BuiltinBlocks.BronzeCoin, 10);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.ScienceBagLife
            };

            var research = new PandaResearch(researchDic, 1, ColonistHealth, 10f, requirements);

            research.ResearchComplete += Research_ResearchComplete1;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, ColonistHealth, 10f);
                research.ResearchComplete += Research_ResearchComplete1;
                ScienceManager.RegisterResearchable(research);
            }
        }
Example #3
0
        private static void AddBetterBuildersWandResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(Aether.Item.ItemIndex, 2);
            researchDic.Add(BuiltinBlocks.SteelIngot, 10);
            researchDic.Add(BuiltinBlocks.GoldIngot, 10);
            researchDic.Add(BuiltinBlocks.SilverIngot, 10);
            researchDic.Add(BuiltinBlocks.Planks, 10);

            var requirements = new List <string>
            {
                GetResearchKey(BuildersWand + "1")
            };

            var research = new PandaResearch(researchDic, 1, BetterBuildersWand, 250f, requirements, 50);

            research.ResearchComplete += BetterBuildersWand_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (var i = 2; i <= 5; i++)
            {
                research =
                    new PandaResearch(researchDic, i, BetterBuildersWand, 250f, requirements, 50);

                research.ResearchComplete += BetterBuildersWand_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
        private static void AddIncreasedCapacity(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.IronBlock, 1);
            researchDic.Add(BuiltinBlocks.Planks, 5);
            researchDic.Add(BuiltinBlocks.SteelIngot, 2);
            researchDic.Add(BuiltinBlocks.GoldCoin, 10);

            var requirements = new List <string>()
            {
                GetResearchKey(Machines + "1")
            };

            var research = new PandaResearch(researchDic, 1, IncreasedCapacity, .2f, requirements);

            research.ResearchComplete += IncreasedCapacity_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, IncreasedCapacity, .2f);
                research.ResearchComplete += IncreasedCapacity_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
        private static void AddReducedWaste(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.ScienceBagBasic, 2);
            researchDic.Add(BuiltinBlocks.ScienceBagLife, 1);
            researchDic.Add(BuiltinBlocks.Berry, 2);
            researchDic.Add(BuiltinBlocks.Bread, 2);
            researchDic.Add(BuiltinBlocks.GoldCoin, 10);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.ScienceBagLife
            };

            var research = new PandaResearch(researchDic, 1, ReducedWaste, 0.05f, requirements);

            research.ResearchComplete += ReducedWaste_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, ReducedWaste, 0.05f, requirements);
                research.ResearchComplete += ReducedWaste_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
Example #6
0
        private static void AddTailorTraining(Dictionary <ushort, int> researchDic)
        {
            _defaultValues[nameof(TailorJob)] = TailorJob.StaticCraftingCooldown;

            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.LinenBag, 3);
            researchDic.Add(SCIENCEBAG, BAG_COST);
            researchDic.Add(COIN, COIN_COST);

            var requirements = new List <string>()
            {
                SCIENCEBAGREQ
            };

            var research = new PandaResearch(researchDic, 1, TailorTraining, .05f, requirements);

            research.ResearchComplete += TrainedTailor_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, TailorTraining, .05f);
                research.ResearchComplete += TrainedTailor_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
        private static void AddImprovedSlings(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.Sling, 1);
            researchDic.Add(BuiltinBlocks.SlingBullet, 5);

            for (int i = 1; i <= 5; i++)
            {
                var research = new PandaResearch(researchDic, i, ImprovedSling, .05f);
                research.ResearchComplete += ImprovedSlings_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
        private static void AddHerbResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.ScienceBagLife, 2);
            researchDic.Add(BuiltinBlocks.ScienceBagAdvanced, 2);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.ScienceBagAdvanced
            };

            var research = new PandaResearch(researchDic, 1, Herbalists, 1f, requirements);

            research.ResearchComplete += Herbs_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
        private static void AddAdvanceApocthResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.ScienceBagLife, 4);
            researchDic.Add(BuiltinBlocks.ScienceBagAdvanced, 2);

            var requirements = new List <string>()
            {
                GetResearchKey(Apothecary + "1")
            };

            var research = new PandaResearch(researchDic, 1, AdvancedApothecary, 1f, requirements);

            research.ResearchComplete += AdvanceApocth_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
        private static void AddKnightResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.CopperTools, 2);
            researchDic.Add(BuiltinBlocks.ScienceBagBasic, 2);
            researchDic.Add(BuiltinBlocks.Linen, 2);
            researchDic.Add(BuiltinBlocks.BronzeCoin, 10);

            var requirements = new List <string>()
            {
                GetResearchKey(SwordSmithing + "1")
            };

            var research = new PandaResearch(researchDic, 1, Knights, 1f, requirements);

            research.ResearchComplete += Knights_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
        private static void AddMachines(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.IronWrought, 1);
            researchDic.Add(BuiltinBlocks.CopperTools, 1);
            researchDic.Add(BuiltinBlocks.Planks, 5);
            researchDic.Add(BuiltinBlocks.Linen, 2);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.Bloomery
            };

            var research = new PandaResearch(researchDic, 1, Machines, 1f, requirements, 20, false);

            research.ResearchComplete += Machiness_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
Example #12
0
        private static void AddBuildersWandResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(Aether.Item.ItemIndex, 2);
            researchDic.Add(BuiltinBlocks.SteelIngot, 10);
            researchDic.Add(BuiltinBlocks.GoldIngot, 10);
            researchDic.Add(BuiltinBlocks.SilverIngot, 10);
            researchDic.Add(Items.Elementium.Item.ItemIndex, 1);

            var requirements = new List <string>
            {
                GetResearchKey(Elementium + "1")
            };

            var research = new PandaResearch(researchDic, 1, BuildersWand, 1f, requirements, 50);

            research.ResearchComplete += BuildersWand_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
Example #13
0
        private static void AddManaResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.Alkanet, 10);
            researchDic.Add(BuiltinBlocks.Wolfsbane, 10);
            researchDic.Add(BuiltinBlocks.Hollyhock, 10);
            researchDic.Add(BuiltinBlocks.LinseedOil, 10);
            researchDic.Add(BuiltinBlocks.Crystal, 10);

            var requirements = new List <string>
            {
                GetResearchKey(Apothecary + "1")
            };

            var research = new PandaResearch(researchDic, 1, Mana, 1f, requirements, 50);

            research.ResearchComplete += Mana_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
Example #14
0
        private static void AddMasterOfAll(Dictionary <ushort, int> researchDic)
        {
            _defaultValues[nameof(WorkBenchJob)] = WorkBenchJob.StaticCraftingCooldown;

            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.ScienceBagBasic, 1);
            researchDic.Add(BuiltinBlocks.ScienceBagLife, 1);
            researchDic.Add(BuiltinBlocks.ScienceBagAdvanced, 1);
            researchDic.Add(BuiltinBlocks.ScienceBagColony, 1);
            researchDic.Add(BuiltinBlocks.ScienceBagMilitary, 1);
            researchDic.Add(BuiltinBlocks.GoldCoin, 10);
            researchDic.Add(BuiltinBlocks.BronzeCoin, 10);

            var requirements = new List <string>
            {
                PandaResearch.GetResearchKey(MerchantTraining + "5"),
                PandaResearch.GetResearchKey(TailorTraining + "5"),
                PandaResearch.GetResearchKey(BloomeryTraining + "5"),
                PandaResearch.GetResearchKey(FineryForgeTraining + "5"),
                PandaResearch.GetResearchKey(FurnaceTraining + "5"),
                PandaResearch.GetResearchKey(GrinderTraining + "5"),
                PandaResearch.GetResearchKey(GunSmithTraining + "5"),
                PandaResearch.GetResearchKey(KilnTraining + "5"),
                PandaResearch.GetResearchKey(MetalSmithTraining + "5"),
                PandaResearch.GetResearchKey(MintTraining + "5"),
                PandaResearch.GetResearchKey(OvenTraining + "5"),
                PandaResearch.GetResearchKey(WoodcutterTraining + "5"),
                PandaResearch.GetResearchKey(WorkBenchTraining + "5")
            };

            var research = new PandaResearch(researchDic, 1, MasterOfAll, .03f, requirements, 200);

            research.ResearchComplete += MasterOfAll_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (var i = 2; i <= 10; i++)
            {
                research = new PandaResearch(researchDic, i, MasterOfAll, .03f, null, 200);
                research.ResearchComplete += MasterOfAll_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
Example #15
0
        private static void AddElementiumResearch(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(Aether.Item.ItemIndex, 1);
            researchDic.Add(BuiltinBlocks.Copper, 20);
            researchDic.Add(BuiltinBlocks.IronOre, 20);
            researchDic.Add(BuiltinBlocks.Tin, 20);
            researchDic.Add(BuiltinBlocks.GoldOre, 20);
            researchDic.Add(BuiltinBlocks.GalenaSilver, 20);
            researchDic.Add(BuiltinBlocks.GalenaLead, 20);

            var requirements = new List <string>
            {
                GetResearchKey(Mana + "1")
            };

            var research = new PandaResearch(researchDic, 1, Elementium, 1f, requirements, 50);

            research.ResearchComplete += Elementium_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
Example #16
0
        private static void AddTeleporters(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(Items.Mana.Item.ItemIndex, 10);
            researchDic.Add(BuiltinBlocks.ScienceBagColony, 10);
            researchDic.Add(BuiltinBlocks.ScienceBagAdvanced, 10);
            researchDic.Add(BuiltinBlocks.StoneBricks, 20);
            researchDic.Add(BuiltinBlocks.Crystal, 20);
            researchDic.Add(BuiltinBlocks.GoldCoin, 20);

            var requirements = new List <string>
            {
                GetResearchKey(Mana + "1"),
                GetResearchKey(Machines + "1")
            };

            var research = new PandaResearch(researchDic, 1, Teleporters, 1f, requirements, 100, false);

            research.ResearchComplete += Teleporters_ResearchComplete;
            ScienceManager.RegisterResearchable(research);
        }
        private static void AddImprovedCrossbows(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.Crossbow, 1);
            researchDic.Add(BuiltinBlocks.CrossbowBolt, 5);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.CrossBowBolt
            };

            var research = new PandaResearch(researchDic, 1, ImprovedCrossbow, .05f, requirements);

            research.ResearchComplete += ImprovedCrossbows_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, ImprovedCrossbow, .05f);
                research.ResearchComplete += ImprovedCrossbows_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
        private static void AddImprovedMatchlockgun(Dictionary <ushort, int> researchDic)
        {
            researchDic.Clear();
            researchDic.Add(BuiltinBlocks.MatchlockGun, 1);
            researchDic.Add(BuiltinBlocks.LeadBullet, 5);
            researchDic.Add(BuiltinBlocks.GunpowderPouch, 2);

            var requirements = new List <string>()
            {
                ColonyBuiltIn.MatchlockGun
            };

            var research = new PandaResearch(researchDic, 1, ImprovedMatchlockgun, .05f, requirements);

            research.ResearchComplete += ImprovedMatchlockguns_ResearchComplete;
            ScienceManager.RegisterResearchable(research);

            for (int i = 2; i <= 5; i++)
            {
                research = new PandaResearch(researchDic, i, ImprovedMatchlockgun, .05f);
                research.ResearchComplete += ImprovedMatchlockguns_ResearchComplete;
                ScienceManager.RegisterResearchable(research);
            }
        }
Example #19
0
        private static void MasterOfAll_ResearchComplete(object sender, ResearchCompleteEventArgs e)
        {
            var tmpValues = e.Manager.Player.GetTempValues(true);

            WorkBenchJob.StaticCraftingCooldown = _defaultValues[nameof(WorkBenchJob)] -
                                                  _defaultValues[nameof(WorkBenchJob)] *
                                                  (e.Research.Value +
                                                   tmpValues
                                                   .GetOrDefault(PandaResearch.GetResearchKey(WorkBenchTraining),
                                                                 0f));

            WoodcutterJob.StaticCraftingCooldown = _defaultValues[nameof(WoodcutterJob)] -
                                                   _defaultValues[nameof(WoodcutterJob)] *
                                                   (e.Research.Value +
                                                    tmpValues
                                                    .GetOrDefault(PandaResearch.GetResearchKey(WoodcutterTraining),
                                                                  0f));

            OvenJob.StaticCraftingCooldown = _defaultValues[nameof(OvenJob)] - _defaultValues[nameof(OvenJob)] *
                                             (e.Research.Value +
                                              tmpValues.GetOrDefault(PandaResearch.GetResearchKey(OvenTraining), 0f));

            MintJob.StaticCraftingCooldown = _defaultValues[nameof(MintJob)] - _defaultValues[nameof(MintJob)] *
                                             (e.Research.Value +
                                              tmpValues.GetOrDefault(PandaResearch.GetResearchKey(MintTraining), 0f));

            MetalSmithJob.StaticCraftingCooldown = _defaultValues[nameof(MetalSmithJob)] -
                                                   _defaultValues[nameof(MetalSmithJob)] *
                                                   (e.Research.Value +
                                                    tmpValues
                                                    .GetOrDefault(PandaResearch.GetResearchKey(MetalSmithTraining),
                                                                  0f));

            KilnJob.StaticCraftingCooldown = _defaultValues[nameof(KilnJob)] - _defaultValues[nameof(KilnJob)] *
                                             (e.Research.Value +
                                              tmpValues.GetOrDefault(PandaResearch.GetResearchKey(KilnTraining), 0f));

            GunSmithJob.StaticCraftingCooldown = _defaultValues[nameof(GunSmithJob)] -
                                                 _defaultValues[nameof(GunSmithJob)] *
                                                 (e.Research.Value +
                                                  tmpValues.GetOrDefault(PandaResearch.GetResearchKey(GunSmithTraining),
                                                                         0f));

            GrinderJob.StaticCraftingCooldown = _defaultValues[nameof(GrinderJob)] -
                                                _defaultValues[nameof(GrinderJob)] *
                                                (e.Research.Value +
                                                 tmpValues.GetOrDefault(PandaResearch.GetResearchKey(GrinderTraining),
                                                                        0f));

            FurnaceJob.StaticCraftingCooldown = _defaultValues[nameof(FurnaceJob)] -
                                                _defaultValues[nameof(FurnaceJob)] *
                                                (e.Research.Value +
                                                 tmpValues.GetOrDefault(PandaResearch.GetResearchKey(FurnaceTraining),
                                                                        0f));

            FineryForgeJob.StaticCraftingCooldown = _defaultValues[nameof(FineryForgeJob)] -
                                                    _defaultValues[nameof(FineryForgeJob)] *
                                                    (e.Research.Value +
                                                     tmpValues
                                                     .GetOrDefault(PandaResearch.GetResearchKey(FineryForgeTraining),
                                                                   0f));

            BloomeryJob.StaticCraftingCooldown = _defaultValues[nameof(BloomeryJob)] -
                                                 _defaultValues[nameof(BloomeryJob)] *
                                                 (e.Research.Value +
                                                  tmpValues.GetOrDefault(PandaResearch.GetResearchKey(BloomeryTraining),
                                                                         0f));

            TailorJob.StaticCraftingCooldown = _defaultValues[nameof(TailorJob)] - _defaultValues[nameof(TailorJob)] *
                                               (e.Research.Value +
                                                tmpValues.GetOrDefault(PandaResearch.GetResearchKey(TailorTraining), 0f)
                                               );

            ShopJob.StaticCraftingCooldown = _defaultValues[nameof(ShopJob)] - _defaultValues[nameof(ShopJob)] *
                                             (e.Research.Value +
                                              tmpValues.GetOrDefault(PandaResearch.GetResearchKey(MerchantTraining), 0f)
                                             );
        }
 public ResearchCompleteEventArgs(PandaResearch research, ScienceManagerPlayer player)
 {
     Research = research;
     Manager  = player;
 }