Пример #1
0
        public static void TechTerror(TowerModel model)
        {
            var ability       = model.GetAbilites()[0];
            var abilityAttack = ability.GetBehavior <ActivateAttackModel>().attacks[0].Duplicate();
            var abilityWeapon = abilityAttack.weapons[0];

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

            abilityWeapon.projectile.display = effect.assetId;
            var effectBehavior =
                new CreateEffectOnExhaustFractionModel("CreateEffectOnExhaustFractionModel_Annihilation", "", effect, 0, false, 1.0f, -1f, false);

            abilityWeapon.projectile.AddBehavior(effectBehavior);

            /*
             * var sound = ability.GetBehavior<CreateSoundOnAbilityModel>().sound;
             * var soundBehavior =
             *  new CreateSoundOnProjectileExhaustModel("AbilityChoice", sound, sound, sound, sound, sound);
             * abilityWeapon.projectile.AddBehavior(soundBehavior);
             */

            abilityWeapon.projectile.GetDamageModel().damage /= 20;
            abilityWeapon.rate = 2.25f;

            abilityAttack.range             = abilityWeapon.projectile.radius - 10;
            abilityAttack.fireWithoutTarget = false;

            model.AddBehavior(abilityAttack);
        }
Пример #2
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);
        }