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); }
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); } }