public override void UpdateEquips(ref bool wallSpeedBuff, ref bool tileSpeedBuff, ref bool tileRangeBuff) { OxygenTank oxygenTank = player.GetOxygenTank().tank; if (oxygenTank != null) { if (player.breath == player.breathMax) { if (oxygenTank.currentO2Hold < oxygenTank.oxygenCapacityIncrease) { oxygenTank.currentO2Hold += 3; oxygenTank.currentO2Hold = Math.Min(oxygenTank.oxygenCapacityIncrease, oxygenTank.currentO2Hold); player.breath -= 3; } } else if (player.breath < player.breathMax - 3) { int oxygenNeed = player.breathMax - player.breath - 3; if (oxygenTank.currentO2Hold > 0) { int oxygenTankUsed = Math.Min(oxygenTank.currentO2Hold, oxygenNeed); oxygenTank.currentO2Hold -= oxygenTankUsed; player.breath += oxygenTankUsed; } } } }
public void RefillOxygen(OxygenTank tank, AudioClip clip) { float newQuantity = oxygen + tank.oxygenQuantity; audioSource.PlayOneShot(clip); oxygen = max0xygen > newQuantity ? newQuantity : max0xygen; Destroy(tank.gameObject); display.OnChangeOxygen((int)oxygen); }
// Runs before Start public void Awake() { this.triggerWarning = false; this.triggerDanger = false; this.oxygenDecay = DEFAULT_OXYGEN_DECAY; this.oxygenSlider = this.GetComponent <Slider>(); this.oxygenSliderImage = this.oxygenSlider.transform.FindChild("Fill Area").FindChild("Fill").GetComponent <Image>(); this.oxygenSliderOriginalColor = this.oxygenSliderImage.color; instance = this; }
public override void Update(GameTime gameTime) { Player player = Main.LocalPlayer; OxygenTank tank = player.GetOxygenTank().tank; if (player == null || tank == null) { return; } //YO THIS MATH CONFUSE ME A LOT!!! Vector2 playerPos = player.position - Main.ViewPosition; playerPos.X += player.width / 2f; playerPos.X *= Main.GameViewMatrix.Zoom.X; playerPos.Y *= Main.GameViewMatrix.Zoom.Y; playerPos /= Main.UIScale; float playerScaleX = (playerPos.X - 50f); float playerScaleY = (playerPos.Y - (player.height - 10f)); back.Left.Set(playerScaleX, 0f); fill.Left.Set(playerScaleX + 2f, 0f); back.Top.Set(playerScaleY, 0f); fill.Top.Set(playerScaleY + 6f, 0f); int charge = player.breath + tank.currentO2Hold; int maxCharge = player.breathMax + tank.oxygenCapacityIncrease; float progress = (float)charge / (float)maxCharge; fill.SetProgress(progress); float urgent = Math.Min((1f - progress) * 5f, 1f); bgColor = Color.White * urgent; back.backgroundColor = bgColor; fill.backgroundColor = bgColor; Recalculate(); base.Update(gameTime); }