Exemple #1
0
        public static void GroundZero(TowerModel model)
        {
            var ability       = model.GetAbilites()[0];
            var abilityAttack = ability.GetBehavior <ActivateAttackModel>().attacks[0].Duplicate();
            var abilityWeapon = abilityAttack.weapons[0];

            var effectModel = ability.GetBehavior <CreateEffectOnAbilityModel>().effectModel.Duplicate();

            effectModel.scale             = .5f;
            effectModel.useCenterPosition = false;

            var effectBehavior =
                new CreateEffectOnExhaustFractionModel("CreateEffectOnExhaustFractionModel_GroundZero", "", effectModel, 0, false, 1.0f, -1f, false);

            abilityWeapon.projectile.AddBehavior(effectBehavior);
            abilityWeapon.rate = 6;
            abilityWeapon.projectile.GetDamageModel().damage = 100;
            abilityWeapon.projectile.radius = 100;

            var airBehavior = model.GetAttackModels()[0].weapons[0].GetBehavior <FireFromAirUnitModel>();

            abilityWeapon.behaviors = new Il2CppReferenceArray <WeaponBehaviorModel>(new WeaponBehaviorModel[] { airBehavior });

            var sound         = ability.GetBehavior <CreateSoundOnAbilityModel>().sound;
            var soundBehavior =
                new CreateSoundOnProjectileExhaustModel("CreateSoundOnProjectileExhaustModel_GroundZero", sound, sound, sound, sound, sound);

            abilityWeapon.projectile.AddBehavior(soundBehavior);

            model.AddBehavior(abilityAttack);
        }
Exemple #2
0
        public static void SplodeyDarts(TowerModel model)
        {
            foreach (var projectileModel in model.GetAllProjectiles())
            {
                var bomb = Game.instance.model.GetTowerFromId(BombShooter).GetWeapon()
                           .projectile.Duplicate();
                var pb     = bomb.GetBehavior <CreateProjectileOnContactModel>();
                var sound  = bomb.GetBehavior <CreateSoundOnProjectileCollisionModel>();
                var effect = bomb.GetBehavior <CreateEffectOnContactModel>();


                if (model.appliedUpgrades.Contains("Enhanced Eyesight"))
                {
                    pb.projectile.GetBehavior <ProjectileFilterModel>().filters.GetItemOfType <FilterModel, FilterInvisibleModel>().isActive = false;
                }

                /*pb.name = "CreateProjectileOnContactModel_SplodeyDarts";
                 * sound.name = "CreateSoundOnProjectileCollisionModel_SplodeyDarts";
                 * effect.name = "CreateEffectOnContactModel_SplodeyDarts";
                 * projectileModel.AddBehavior(pb);
                 * projectileModel.AddBehavior(sound);
                 * projectileModel.AddBehavior(effect);*/

                var behavior = new CreateProjectileOnExhaustFractionModel(
                    "CreateProjectileOnExhaustFractionModel_SplodeyDarts",
                    pb.projectile, pb.emission, 1f, 1f, true);
                projectileModel.AddBehavior(behavior);

                var soundBehavior = new CreateSoundOnProjectileExhaustModel(
                    "CreateSoundOnProjectileExhaustModel_SplodeyDarts",
                    sound.sound1, sound.sound2, sound.sound3, sound.sound4, sound.sound5);
                projectileModel.AddBehavior(soundBehavior);

                var eB = new CreateEffectOnExhaustedModel("CreateEffectOnExhaustedModel_SplodeyDarts", "", 0f, false,
                                                          false, effect.effectModel);
                projectileModel.AddBehavior(eB);
            }
        }