Beispiel #1
0
        public ExpandWeatherController()
        {
            isActive      = false;
            isSecretFloor = true;
            MinTimeBetweenLightningStrikes = 5;
            MaxTimeBetweenLightningStrikes = 10;
            AmbientBoost       = 1;
            RainIntensity      = 250;
            useCustomIntensity = true;
            enableLightning    = false;
            isLocalToRoom      = false;

            ThunderShake = new ScreenShakeSettings()
            {
                magnitude               = 0.2f,
                speed                   = 3,
                time                    = 0,
                falloff                 = 0.5f,
                direction               = new Vector2(1, 0),
                vibrationType           = ScreenShakeSettings.VibrationType.Auto,
                simpleVibrationTime     = Vibration.Time.Normal,
                simpleVibrationStrength = Vibration.Strength.Medium
            };

            m_lightningTimer = Random.Range(MinTimeBetweenLightningStrikes, MaxTimeBetweenLightningStrikes);
        }
Beispiel #2
0
        public static ScreenShakeSettings GetScreenShakeSettings()
        {
            if (screenShakeSettingsCache == null)
            {
                screenShakeSettingsCache = SettingsRepository.GetScreenShakeSettings(ServiceProvider.GlobalProvider);
            }

            return(screenShakeSettingsCache);
        }
        public ExpandForgeHammerComponent()
        {
            TracksPlayer                = false;
            TracksRandomEnemy           = true;
            PowerScalesWithFloors       = true;
            DisablesRegularForgeHammers = true;

            DoGoopOnImpact             = false;
            DoesBulletsOnImpact        = false;
            DeactivateOnEnemiesCleared = true;

            DamageToEnemies       = 30f;
            InitialDelay          = 1.5f;
            MinTimeBetweenAttacks = 1.5f;
            MaxTimeBetweenAttacks = 3f;

            ForceLeft     = false;
            ForceRight    = false;
            DoScreenShake = true;

            FlashDurationBeforeAttack = 0.75f;
            AdditionalTrackingTime    = 0.5f;

            KnockbackForcePlayers = 50f;
            KnockbackForceEnemies = 65f;
            MinTimeToRestOnGround = 0.75f;
            MaxTimeToRestOnGround = 0.75f;
            ScreenShake           = new ScreenShakeSettings()
            {
                magnitude               = 0.48f,
                speed                   = 6,
                time                    = 0.08f,
                falloff                 = 0.1f,
                direction               = Vector2.zero,
                vibrationType           = ScreenShakeSettings.VibrationType.Auto,
                simpleVibrationTime     = Vibration.Time.Normal,
                simpleVibrationStrength = Vibration.Strength.Medium,
            };
            Hammer_Anim_In_Left   = "hammer_left_slam";
            Hammer_Anim_Out_Left  = "hammer_left_out";
            Hammer_Anim_In_Right  = "hammer_right_slam";
            Hammer_Anim_Out_Right = "hammer_right_out";

            BulletScript = new BulletScriptSelector()
            {
                scriptTypeName = "ForgeHammerCircle1"
            };

            m_localTimeScale = 1f;
            m_state          = ExpandHammerState.Gone;

            m_isActive = false;
            IsActive   = false;
        }
Beispiel #4
0
        public static void SaveToStorage(ScreenShakeSettings settings)
        {
            if (settings == null)
            {
                throw new ArgumentNullException("settings");
            }

            SettingsRepository.SaveToStorage(settings, ServiceProvider.GlobalProvider);

            screenShakeSettingsCache.CloneFrom(settings);
        }
Beispiel #5
0
        public PowBlock()
        {
            PowScreenShake = new ScreenShakeSettings()
            {
                magnitude               = 3f,
                speed                   = 15f,
                time                    = 0.05f,
                falloff                 = 0.1f,
                direction               = new Vector2(0, -1),
                vibrationType           = ScreenShakeSettings.VibrationType.Auto,
                simpleVibrationTime     = Vibration.Time.Quick,
                simpleVibrationStrength = Vibration.Strength.Hard
            };

            m_InUse = false;
        }
    public static IEnumerator Shake(this Camera camera)
    {
        ScreenShakeSettings settings = Settings.Instance.ScreenShakeSettings;

        for (float time = 0; time < settings.Duration; time += Time.deltaTime)
        {
            Vector3 offset = new Vector3(Mathf.Clamp01(Mathf.PerlinNoise(Time.time * settings.Frequency, 0f) - 0.5f), Mathf.Clamp01(Mathf.PerlinNoise(0f, Time.time * settings.Frequency)) - 0.5f, 0);
            offset *= settings.Magnitude;

            camera.transform.position -= offset;
            Camera2D.IsShaking         = true;
            yield return(new WaitForEndOfFrame());

            camera.transform.position += offset;
            Camera2D.IsShaking         = false;
        }
    }
        public ExpandBellyMonsterController()
        {
            Awakened    = false;
            PlayerEaten = false;

            SlamScreenShakeSettings = new ScreenShakeSettings()
            {
                magnitude               = 0.6f,
                speed                   = 10f,
                time                    = 0.15f,
                falloff                 = 0.5f,
                direction               = new Vector2(0, -1),
                vibrationType           = ScreenShakeSettings.VibrationType.Auto,
                simpleVibrationTime     = Vibration.Time.Normal,
                simpleVibrationStrength = Vibration.Strength.Medium
            };
        }
 private void ModifyDamage(HealthHaver player, HealthHaver.ModifyDamageEventArgs args)
 {
     if (args.InitialDamage > 0)
     {
         if (shieldCharged)
         {
             shieldCharged = false;
             enemiesKilledSinceShieldReset = 0;
             args.ModifiedDamage           = 0;
             ClearOverhead();
             AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", Owner.gameObject);
             if (Owner.PlayerHasActiveSynergy("No Will To Break"))
             {
                 Owner.DoEasyBlank(Owner.specRigidbody.UnitCenter, EasyBlankType.MINI);
             }
             (player.gameActor as PlayerController).TriggerInvulnerableFrames(2f);
             ScreenShakeSettings shakesettings = new ScreenShakeSettings(0.25f, 7f, 0.1f, 0.3f);
             GameManager.Instance.MainCameraController.DoScreenShake(shakesettings, new Vector2?(Owner.specRigidbody.UnitCenter), false);
         }
     }
 }
        public IEnumerator Vanish(PlayerController p)
        {
            AkSoundEngine.PostEvent("Play_ENM_darken_world_01", base.gameObject);
            while (this.baseSprite.renderer.material.GetFloat("_Opacity") > 0)
            {
                this.baseSprite.renderer.material.SetFloat("_Opacity", this.baseSprite.renderer.material.GetFloat("_Opacity") - BraveTime.DeltaTime / 2);
                for (int i = 0; i < this.layers.Length; i++)
                {
                    this.layers[i].sprite.renderer.material.SetFloat("_Opacity", this.baseSprite.renderer.material.GetFloat("_Opacity"));
                }
                this.poopil.GetComponent <tk2dBaseSprite>().renderer.material.SetFloat("_Opacity", this.baseSprite.renderer.material.GetFloat("_Opacity"));
                yield return(null);
            }
            Destroy(base.gameObject);
            PlatformInterface.SetAlienFXColor(new Color(1f, 0f, 0f, 1f), 1f);
            p.DoVibration(Vibration.Time.Quick, Vibration.Strength.Medium);
            Pixelator.Instance.HandleDamagedVignette(Vector2.zero);
            ScreenShakeSettings shakesettings = new ScreenShakeSettings(0.25f, 7f, 0.1f, 0.3f);

            GameManager.Instance.MainCameraController.DoScreenShake(shakesettings, new Vector2?(p.specRigidbody.UnitCenter), false);
            AkSoundEngine.PostEvent("Play_WPN_kthulu_blast_01", p.gameObject);
            yield break;
        }
Beispiel #10
0
        public PowBlock()
        {
            PowScreenShake = new ScreenShakeSettings()
            {
                magnitude               = 3f,
                speed                   = 15f,
                time                    = 0.05f,
                falloff                 = 0.1f,
                direction               = new Vector2(0, -1),
                vibrationType           = ScreenShakeSettings.VibrationType.Auto,
                simpleVibrationTime     = Vibration.Time.Quick,
                simpleVibrationStrength = Vibration.Strength.Hard
            };

            ExcludedEnemies = new List <string> {
                "cd4a4b7f612a4ba9a720b9f97c52f38c",
                "22fc2c2c45fb47cf9fb5f7b043a70122",
                "9215d1a221904c7386b481a171e52859",
                "9b4fb8a2a60a457f90dcf285d34143ac",
                "45192ff6d6cb43ed8f1a874ab6bef316"
            };

            m_InUse = false;
        }
Beispiel #11
0
 private void Shake(ScreenShakeSettings settings)
 {
     StopAllCoroutines();
     StartCoroutine(_Shake(settings.Duration, settings.Noise));
 }
        private void Start()
        {
            ElevatorDepartureController departureComponent = gameObject.GetComponent <ElevatorDepartureController>();

            if (departureComponent)
            {
                elevatorAnimator        = departureComponent.elevatorAnimator;
                ceilingAnimator         = departureComponent.ceilingAnimator;
                facewallAnimator        = departureComponent.facewallAnimator;
                floorAnimator           = departureComponent.floorAnimator;
                priorSprites            = departureComponent.priorSprites;
                postSprites             = departureComponent.postSprites;
                chunker                 = departureComponent.chunker;
                spawnTransform          = departureComponent.spawnTransform;
                elevatorFloor           = departureComponent.elevatorFloor;
                crumblyBumblyAnimator   = departureComponent.crumblyBumblyAnimator;
                smokeAnimator           = departureComponent.smokeAnimator;
                elevatorDescendAnimName = departureComponent.elevatorDescendAnimName;
                elevatorOpenAnimName    = departureComponent.elevatorOpenAnimName;
                elevatorCloseAnimName   = departureComponent.elevatorCloseAnimName;
                elevatorDepartAnimName  = departureComponent.elevatorDepartAnimName;
                arrivalShake            = departureComponent.arrivalShake;
                doorOpenShake           = departureComponent.doorOpenShake;
                doorCloseShake          = departureComponent.doorCloseShake;
                departureShake          = departureComponent.departureShake;
                // Remove CryoButton. This version of the elevator won't support that.
                GameObject[]      objects     = FindObjectsOfType <GameObject>();
                List <GameObject> CryoButtons = new List <GameObject>();
                if (objects != null && objects.Length > 0)
                {
                    foreach (GameObject targetObject in objects)
                    {
                        if (targetObject != null && targetObject.transform != null && !string.IsNullOrEmpty(targetObject.name))
                        {
                            if (targetObject.name.StartsWith("CryoElevatorButton") && targetObject.transform.position.GetAbsoluteRoom() == GetAbsoluteParentRoom())
                            {
                                float magnitude = (targetObject.transform.PositionVector2() - gameObject.transform.PositionVector2()).magnitude;
                                if (magnitude <= 7)
                                {
                                    CryoButtons.Add(targetObject);
                                }
                            }
                        }
                    }
                }

                if (CryoButtons.Count > 0)
                {
                    for (int i = 0; i < CryoButtons.Count; i++)
                    {
                        Destroy(CryoButtons[i]);
                    }
                }

                departureComponent.enabled = false;
                Destroy(departureComponent);
                Destroy(gameObject.GetComponent <ElevatorDepartureController>());

                SpeculativeRigidbody component = elevatorFloor.GetComponent <SpeculativeRigidbody>();
                if (component)
                {
                    if (ConfigurationWasDeferred)
                    {
                        component.PrimaryPixelCollider.ManualOffsetY -= 8;
                        component.PrimaryPixelCollider.ManualHeight  += 8;
                        component.Reinitialize();
                    }
                    SpeculativeRigidbody speculativeRigidbody = component;
                    speculativeRigidbody.OnTriggerCollision = (SpeculativeRigidbody.OnTriggerDelegate)Delegate.Combine(speculativeRigidbody.OnTriggerCollision, new SpeculativeRigidbody.OnTriggerDelegate(OnElevatorTriggerEnter));
                }
                ToggleSprites(true);
            }
            else
            {
                if (ExpandSettings.debugMode)
                {
                    ETGModConsole.Log("[DEBUG] ERROR: ElevatorDepatureComponent is null!");
                    Destroy(this);
                }
            }

            if (ConfigurationWasDeferred)
            {
                Material material = Instantiate(priorSprites[1].renderer.material);
                material.shader = ShaderCache.Acquire("Brave/Unity Transparent Cutout");
                priorSprites[1].renderer.material = material;
                Material material2 = Instantiate(postSprites[2].renderer.material);
                material2.shader = ShaderCache.Acquire("Brave/Unity Transparent Cutout");
                postSprites[2].renderer.material = material2;
                postSprites[1].HeightOffGround   = postSprites[1].HeightOffGround - 0.0625f;
                postSprites[3].HeightOffGround   = postSprites[3].HeightOffGround - 0.0625f;
                postSprites[1].UpdateZDepth();
            }
        }