public void DamagePlayer(int damage) { if (GameController.isGameAlive) { if (!isInvincible) { sf.FlashScreen(); health -= damage; HealthBar.HealthCurrent = health; if (health <= 0) { health = 0; HealthBar.HealthCurrent = health; rb2d.velocity = new Vector2(0, 0); //rb2d.gravityScale = 0.0f; anim.SetTrigger("Die"); GameController.isGameAlive = false; polygonCollider2D.enabled = false; Invoke("KillPlayer", dieTime); } else { isInvincible = true; BlinkPlayer(blinks, time); polygonCollider2D.enabled = false; StartCoroutine(ShowPlayerHitBox()); Invoke("Invincible", invincibleTime); } } } }
public void DamagePlayer(int damage) { if (GameController.isGameAlive) { sf.FlashScreen(); health -= damage; if (health < 0) { health = 0; } HealthBar.HealthCurrent = health; if (health <= 0) { rb2d.velocity = new Vector2(0, 0); //重力为0,不掉下来 //rb2d.gravityScale = 0.0f; GameController.isGameAlive = false; anim.SetTrigger("Die"); Invoke("KillPlayer", dieTime); } BlinkPlayer(numBlinks, seconds); //关闭PolygonCollider2D碰撞,使地刺先造成一次伤害 pc2d.enabled = false; StartCoroutine(ShowPlayerHitBox()); } }
public void DamagePlayer(int damage) { flash.FlashScreen(); health -= damage; Fox_Health.HealthCurrent = health; if (health <= 0.0f) { Fox_Health.HealthCurrent = 0; animator.SetBool("death", true); capsule.enabled = false; box.enabled = false; Destroy(gameObject, time); } Playerblink(numblink, blinktime); }
public void DamagePlayer(int damage) { sf.FlashScreen(); health -= damage; if (health < 0) { health = 0; } HealthBar.HealthCurrent = health; if (health <= 0) { rb2d.velocity = new Vector2(0, 0); rb2d.gravityScale = 0.0f; GameController.isGameAlive = false; Destroy(gameObject); } BlinkPlayer(Blinks, time); }
public override void Process() { if (TimeCircuitsBroken && !Main.PlayerPed.IsInVehicle()) { var dist = Main.PlayerPed.Position.DistanceToSquared(Vehicle.Bones["bonnet"].Position); if (!(dist <= 2f * 2f)) { return; } Utils.DisplayHelpText(Game.GetLocalizedString("BTTFV_Repair_TimeCircuits")); if (Game.IsControlJustPressed(GTA.Control.Context)) { Mods.Hoodbox = ModState.On; } } if (_hasBeenStruckByLightning && _flashes <= 3) { if (Game.GameTime > _nextFlash) { // Flash the screen ScreenFlash.FlashScreen(0.25f); // Update _flashes count _flashes++; // Update next flash _nextFlash = Game.GameTime + 650; // Dont do it anymore if flashed enough times if (_flashes > 3) { _flashes = 0; _hasBeenStruckByLightning = false; } } if (IsFlying && Game.GameTime > _nextForce) { Vehicle.ApplyForce(Vector3.RandomXYZ() * 3f, Vector3.RandomXYZ()); _nextForce = Game.GameTime + 100; } return; } if (!ModSettings.LightningStrikeEvent || World.Weather != Weather.ThunderStorm || TimeCircuits.IsTimeTraveling || TimeCircuits.IsReentering || Game.GameTime < _nextCheck) { return; } if ((Mods.Hook == HookState.On && Vehicle.GetMPHSpeed() >= 88 && !IsFlying) | (Vehicle.HeightAboveGround >= 20 && IsFlying)) { if (Utils.Random.NextDouble() < 0.2) { Strike(); } else { _nextCheck = Game.GameTime + 10000; } } }
public override void Process() { _reentryTimer += Game.LastFrameTime; if (_reentryTimer > 2) { if (Vehicle.Driver == null) { Vehicle.IsHandbrakeForcedOn = false; Vehicle.SteeringAngle = 0; } } if (!IsTimeTravelling) { return; } if (!Vehicle.IsVisible) { Vehicle.IsEngineRunning = false; } if (Vehicle == null) { return; } if (Game.GameTime < gameTimer) { return; } switch (_currentStep) { case 0: TimeCircuits.Delorean.LastVelocity = Vehicle.Velocity; TimeCircuits.WasOnTracks = TimeCircuits.IsOnTracks; if (IsOnTracks) { TimeCircuits.GetHandler <RailroadHandler>().StopTrain(); } // Set previous time PreviousTime = Utils.GetWorldTime(); // Invoke delegate TimeCircuits.OnTimeTravel?.Invoke(); if (!IsRemoteControlled && Vehicle.GetPedOnSeat(VehicleSeat.Driver) == Main.PlayerPed && (!CutsceneMode || Utils.IsPlayerUseFirstPerson())) { // Create a copy of the current status of the Delorean TimeCircuits.Delorean.LastDisplacementCopy = TimeCircuits.Delorean.Copy; timeTravelAudioInstant.Play(); if (Utils.IsPlayerUseFirstPerson()) { _whiteSphere.SpawnProp(); } else { ScreenFlash.FlashScreen(0.25f); } // Have to call SetupJump manually here. TimeHandler.TimeTravelTo(TimeCircuits, DestinationTime); Stop(); TimeCircuits.GetHandler <SparksHandler>().StartTimeTravelCooldown(); if (TimeCircuits.WasOnTracks) { TimeCircuits.GetHandler <RailroadHandler>().StartDriving(true); } if (!is99) { IsFueled = false; } TimeCircuits.GetHandler <FreezeHandler>().StartFreezeHandling(!is99); if (Mods.Hoodbox == ModState.On && !TimeCircuits.IsWarmedUp) { TimeCircuits.GetHandler <HoodboxHandler>().SetInstant(); } if (Mods.Hook == HookState.On) { Mods.Hook = HookState.Removed; } if (Mods.Plate == PlateType.Outatime) { Mods.Plate = PlateType.Empty; } // Invoke delegate TimeCircuits.OnTimeTravelComplete?.Invoke(); // Stop handling Stop(); //Add LastDisplacementCopy to remote Deloreans list RemoteDeloreansHandler.AddDelorean(TimeCircuits.Delorean.LastDisplacementCopy); return; } timeTravelAudioCutscene.Play(); // Play the effects _timeTravelEffect.Play(); // Play the light explosion _lightExplosion.Play(); trails = FireTrailsHandler.SpawnForDelorean( TimeCircuits, is99, (is99 || (Mods.HoverUnderbody == ModState.On && IsFlying)) ? 1f : 45, is99 ? -1 : 15, DeloreanType == DeloreanType.BTTF1, Mods.Wheel == WheelType.RailroadInvisible ? 75 : 50); // If the Vehicle is remote controlled or the player is not the one in the driver seat if (IsRemoteControlled || Vehicle.GetPedOnSeat(VehicleSeat.Driver) != Main.PlayerPed) { MPHSpeed = 0; // Stop remote controlling TimeCircuits.GetHandler <RcHandler>()?.StopRC(); // Add to time travelled list RemoteDeloreansHandler.AddDelorean(TimeCircuits.Delorean.Copy); Utils.HideVehicle(Vehicle, true); gameTimer = Game.GameTime + 300; _currentStep++; return; } // Create a copy of the current status of the Delorean TimeCircuits.Delorean.LastDisplacementCopy = TimeCircuits.Delorean.Copy; if (Mods.HoverUnderbody == ModState.On) { CanConvert = false; } Game.Player.IgnoredByPolice = true; Main.HideGui = true; Main.DisablePlayerSwitching = true; Utils.HideVehicle(Vehicle, true); TimeCircuits.Delorean.IsInTime = true; gameTimer = Game.GameTime + 300; _currentStep++; break; case 1: _timeTravelEffect.Stop(); if (Vehicle.GetPedOnSeat(VehicleSeat.Driver) != Main.PlayerPed) { DeloreanHandler.RemoveDelorean(TimeCircuits.Delorean, true, true); return; } gameTimer = Game.GameTime + 3700; _currentStep++; break; case 2: Screen.FadeOut(1000); gameTimer = Game.GameTime + 1500; _currentStep++; break; case 3: TimeHandler.TimeTravelTo(TimeCircuits, DestinationTime); FireTrailsHandler.RemoveTrail(trails); gameTimer = Game.GameTime + 1000; _currentStep++; break; case 4: TimeCircuits.OnTimeTravelComplete?.Invoke(); gameTimer = Game.GameTime + 2000; Screen.FadeIn(1000); _currentStep++; break; case 5: //Add LastDisplacementCopy to remote Deloreans list RemoteDeloreansHandler.AddDelorean(TimeCircuits.Delorean.LastDisplacementCopy); Reenter(); ResetFields(); break; } }