Exemplo n.º 1
0
        protected void Ignite(RHInfo rH)
        {
            FireTag FT = rH.transform.GetComponentInChildren <FireTag>();

            if (FT) // ignite
            {
                FT.Ignite();
            }
            ///Just Ignite
            ///Meow
            ///

            /*
             * else if (rH.transform.GetComponent(typeof(IExplosionEffect))) // explode stuff
             *
             * else if (rH.transform.GetComponent<BreakOnForceNoSpawn>()) // explode stuff
             *  rH.transform.GetComponent<BreakOnForceNoSpawn>().BreakExplosion(400f, rH.point, 10f, 0f);
             * else if (rH.transform.GetComponent<BreakOnForce>())
             *  rH.transform.GetComponent<BreakOnForce>().BreakExplosion(400f, rH.point, 10f, 0f);
             * else if (rH.transform.GetComponent<BreakOnForceNoScaling>())
             *  rH.transform.GetComponent<BreakOnForceNoScaling>().BreakExplosion(400f, rH.point, 10f, 0f);
             * else if (rH.transform.GetComponent<CastleWallBreak>()) // explode ipsilon stuff
             *  rH.transform.GetComponent<CastleWallBreak>().BreakExplosion(400f, rH.point, 10f, 0f); */
        }
Exemplo n.º 2
0
        private void doPassiveAbility()
        {
            if (!BeamHitAnything)
            {
                return;
            }
            if (ShrinkEffectToggle.IsActive && (CountDown < ChargeHoldGasp.Value * 100))
            {
                return;
            }
            foreach (RHInfo rHinfo in rHInfos)
            {
                RHInfo rH = rHinfo;
                if (!rH.transform)
                {
                    continue;
                }
                if (ShrinkEffectToggle.IsActive && EffectParticleChargingPosition.Value != 1 && EffectParticleChargingPosition.Value != 3 && EffectActivateKey.IsDown)
                {
                    Vector3 POS         = rH.point;
                    Vector3 RandomPoint = EulerToDirection(UnityEngine.Random.Range(-360, 360), UnityEngine.Random.Range(-360, 360));
                    PS.Emit(
                        POS + (RandomPoint * PS.startLifetime * 2 * Multiplier),
                        (-RandomPoint * 2 * Multiplier * Multiplier),
                        0.2f * Multiplier,
                        PS.startLifetime * SqrtMultiplier,
                        new Color(PS.startColor.r, PS.startColor.g, PS.startColor.b, 1));
                }
                switch (LaserAbilityModeMenu.Value)
                {
                case 0:     // fire
                    Ignite(rH);
                    break;

                case 1:     // kinetic
                    if (rH.rigidBody != null)
                    {
                        rH.rigidBody.AddForceAtPosition(LaserKineticInOutSlider.Value * (rH.rigidBody.transform.position - this.transform.position).normalized * 1000, rH.point);
                    }
                    //IExplosionEffect IEE = rH.transform.GetComponent<BreakOnForceNoSpawn>();

                    if (rH.transform.GetComponent <BreakOnForceNoSpawn>())    // explode stuff
                    {
                        rH.transform.GetComponent <BreakOnForceNoSpawn>().BreakExplosion(400f, rH.point, 10f, 0f);
                    }
                    else if (rH.transform.GetComponent <BreakOnForce>())
                    {
                        rH.transform.GetComponent <BreakOnForce>().BreakExplosion(400f, rH.point, 10f, 0f);
                    }
                    else if (rH.transform.GetComponent <BreakOnForceNoScaling>())
                    {
                        rH.transform.GetComponent <BreakOnForceNoScaling>().BreakExplosion(400f, rH.point, 10f, 0f);
                    }
                    else if (rH.transform.GetComponent <CastleWallBreak>())    // explode ipsilon stuff
                    {
                        rH.transform.GetComponent <CastleWallBreak>().BreakExplosion(400f, rH.point, 10f, 0f);
                    }
                    ReduceBreakForce(rH.Joint);
                    break;

                case 2:     // freeze
                    return;

                    IceTag IT = rH.transform.GetComponent <IceTag>();
                    if (IT)
                    {
                        IT.Freeze();
                    }
                    break;

                case 3:     // bomb
                    if (ShrinkEffectToggle.IsActive)
                    {
                        if (LaserAbilityModeMenu.Value == 3 && (CountDown < ChargeHoldGasp.Value * 100 || !EffectActivateKey.IsDown))
                        {
                            continue;
                        }
                    }
                    if (laserAtOff)
                    {
                        continue;
                    }
                    //GamePrefabs.InstantiateExplosion(GamePrefabs.ExplosionType.Large, rH.point);
                    if (!StatMaster.isClient || !StatMaster.isLocalSim)
                    {
                        GameObject BOMB = (GameObject)GameObject.Instantiate(PrefabMaster.BlockPrefabs[23].gameObject, rH.point, new Quaternion());
                        DestroyImmediate(BOMB.GetComponent <Renderer>());
                        BOMB.GetComponent <Rigidbody>().detectCollisions       = false;
                        BOMB.GetComponentInChildren <Collider>().isTrigger     = true;
                        BOMB.GetComponent <ExplodeOnCollideBlock>().SimPhysics = true;
                        BOMB.GetComponent <ExplodeOnCollideBlock>().Explodey();
                        ReduceBreakForce(rH.Joint);
                    }
                    break;

                case 4:
                    return;
                }
            }

            if (ShrinkEffectToggle.IsActive && (CountDown < ChargeHoldGasp.Value * 100 || !laserFX))
            {
                return;
            }
            CountDown = 0;
        }