Exemplo n.º 1
0
        private static void CreateYokoExplosiveRound()
        {
            explosiveRifleRoundPrefab = CloneProjectilePrefab("CommandoGrenadeProjectile", "YokoExplosiveRifleProjectile");
            ProjectileImpactExplosion impactExplosion = explosiveRifleRoundPrefab.GetComponent <ProjectileImpactExplosion>();

            impactExplosion.blastDamageCoefficient    = 1f;
            impactExplosion.blastProcCoefficient      = 1f;
            impactExplosion.bonusBlastForce           = Vector3.zero;
            impactExplosion.childrenCount             = 3;
            impactExplosion.childrenDamageCoefficient = 0.3f;
            impactExplosion.childrenProjectilePrefab  = explosiveRifleClustersPrefab;
            impactExplosion.destroyOnWorld            = true;
            impactExplosion.destroyOnEnemy            = true;
            impactExplosion.falloffModel                  = RoR2.BlastAttack.FalloffModel.Linear;
            impactExplosion.fireChildren                  = false;
            impactExplosion.lifetimeRandomOffset          = 0f;
            impactExplosion.offsetForLifetimeExpiredSound = 0f;
            impactExplosion.GetComponent <ProjectileDamage>().damageType = DamageType.Generic;
            impactExplosion.blastRadius         = 20f;
            impactExplosion.lifetime            = 12f;
            impactExplosion.impactEffect        = Modules.Assets.yokoRifleExplosiveRoundExplosion;
            impactExplosion.timerAfterImpact    = true;
            impactExplosion.lifetimeAfterImpact = 0.1f;
            ProjectileController projectileController = explosiveRifleRoundPrefab.GetComponent <ProjectileController>();

            projectileController.ghostPrefab = CreateGhostPrefab("YokoRifleExplosiveRound");
            projectileController.startSound  = "";
        }
Exemplo n.º 2
0
        private static void CreateBigBoulder()
        {
            bigBoulderPrefab = CloneProjectilePrefab("CommandoGrenadeProjectile", "GurrenBigBoulderProjectile");
            var collider = bigBoulderPrefab.GetComponent <SphereCollider>();

            collider.radius = 4f;
            ProjectileImpactExplosion impactExplosion = bigBoulderPrefab.GetComponent <ProjectileImpactExplosion>();

            impactExplosion.blastDamageCoefficient    = 1f;
            impactExplosion.blastProcCoefficient      = 1f;
            impactExplosion.bonusBlastForce           = Vector3.up * 10f;
            impactExplosion.childrenCount             = 0;
            impactExplosion.childrenDamageCoefficient = 0f;
            impactExplosion.childrenProjectilePrefab  = null;
            impactExplosion.destroyOnWorld            = true;
            impactExplosion.destroyOnEnemy            = true;
            impactExplosion.falloffModel                  = RoR2.BlastAttack.FalloffModel.None;
            impactExplosion.fireChildren                  = false;
            impactExplosion.lifetimeRandomOffset          = 0f;
            impactExplosion.offsetForLifetimeExpiredSound = 0f;
            impactExplosion.GetComponent <ProjectileDamage>().damageType = DamageType.Stun1s;
            impactExplosion.blastRadius          = 40f;
            impactExplosion.lifetime             = 12f;
            impactExplosion.timerAfterImpact     = false;
            impactExplosion.impactEffect         = Modules.Assets.gurrenBrokenBoulderEffect;
            impactExplosion.explosionSoundString = "Play_golem_impact";
            ProjectileController projectileController = bigBoulderPrefab.GetComponent <ProjectileController>();

            projectileController.ghostPrefab = CreateGhostPrefab("BigBoulderPrefab");
            projectileController.startSound  = "";
            //anim params = isHoldingObject
            //states = GURREN_LiftingObject, GURREN_HoldingObject, GURREN_ThrowingObject
        }
        // Base Stuff //
        private static void InitializeImpactExplosion(ProjectileImpactExplosion projectileImpactExplosion)
        {
            projectileImpactExplosion.blastDamageCoefficient    = 1f;
            projectileImpactExplosion.blastProcCoefficient      = 1f;
            projectileImpactExplosion.blastRadius               = 1f;
            projectileImpactExplosion.bonusBlastForce           = Vector3.zero;
            projectileImpactExplosion.childrenCount             = 0;
            projectileImpactExplosion.childrenDamageCoefficient = 0f;
            projectileImpactExplosion.childrenProjectilePrefab  = null;
            projectileImpactExplosion.destroyOnEnemy            = false;
            projectileImpactExplosion.destroyOnWorld            = false;
            //projectileImpactExplosion.explosionSoundString = "";
            projectileImpactExplosion.falloffModel        = RoR2.BlastAttack.FalloffModel.None;
            projectileImpactExplosion.fireChildren        = false;
            projectileImpactExplosion.impactEffect        = null;
            projectileImpactExplosion.lifetime            = 0f;
            projectileImpactExplosion.lifetimeAfterImpact = 0f;
            //projectileImpactExplosion.lifetimeExpiredSoundString = "";
            projectileImpactExplosion.lifetimeRandomOffset          = 0f;
            projectileImpactExplosion.offsetForLifetimeExpiredSound = 0f;
            projectileImpactExplosion.timerAfterImpact = false;

            projectileImpactExplosion.GetComponent <ProjectileDamage>().damageType = DamageType.Generic;
        }