Пример #1
0
        public static void UltraBoostStack(Tower to, int stack = 1)
        {
            var model   = Game.instance.model.GetTower(TowerType.EngineerMonkey, 0, 5).GetAbilites()[0].GetBehavior <OverclockPermanentModel>().Duplicate();
            var mutator = to.GetMutatorById("Ultraboost");

            if (mutator != null)
            {
                var stacks = mutator.mutator.Cast <OverclockPermanentModel.OverclockPermanentMutator>().stacks;
                if (stacks < model.maxStacks)
                {
                    var newMutator = model.MutatorByStack(Math.Min(stacks + stack, model.maxStacks));
                    to.RemoveMutatorsById("Ultraboost");
                    to.AddMutator(newMutator, -1, false);
                }
            }
            else
            {
                var newMutator = model.MutatorByStack(Math.Min(model.maxStacks, stack));
                to.AddMutator(newMutator, -1, false);
            }
        }
Пример #2
0
        public static void AddBoost(Tower from, Tower to)
        {
            if (Main.CurrentBoostIDs.ContainsKey(from.Id))
            {
                RemoveBoostOn(Main.CurrentBoostIDs[from.Id]);
            }

            to.RemoveMutatorsById("Overclock");
            int tier = to.towerModel.tier;

            if (to.towerModel.IsHero())
            {
                tier = (tier - 1) / 4;
            }
            to.AddMutator(GetMutator(from.towerModel, tier, from.towerModel.tier == 5), -1, false);

            Main.CurrentBoostIDs[from.Id] = to.Id;
        }