// Token: 0x06002D24 RID: 11556 RVA: 0x000A8B94 File Offset: 0x000A6D94 public void DoBleed() { if (base.alive && this._bleedingLevel > 0f) { float healthPoints = this._bleedingLevel; global::Metabolism component = base.GetComponent <global::Metabolism>(); if (component) { healthPoints = this._bleedingLevel * ((!component.IsWarm()) ? 1f : 0.4f); } global::LifeStatus lifeStatus; if (this.bleedAttacker && this.bleedingID) { lifeStatus = global::TakeDamage.Hurt(this.bleedAttacker, this.bleedingID, healthPoints, null); } else { lifeStatus = global::TakeDamage.HurtSelf(this.idMain, healthPoints, null); } if (lifeStatus == global::LifeStatus.IsAlive) { float num = 0.2f; this.SetBleedingLevel(Mathf.Clamp(this._bleedingLevel - num, 0f, this._bleedingLevel)); } else { base.CancelInvoke("DoBleed"); } } else { base.CancelInvoke("DoBleed"); } }
// Token: 0x06003377 RID: 13175 RVA: 0x000C1880 File Offset: 0x000BFA80 public virtual void UseItem(global::IConsumableItem item) { global::Inventory inventory = item.inventory; global::Metabolism local = inventory.GetLocal <global::Metabolism>(); if (local == null) { return; } if (!local.CanConsumeYet()) { return; } local.MarkConsumptionTime(); float numCalories = Mathf.Min(local.GetRemainingCaloricSpace(), this.calories); if (this.calories > 0f) { local.AddCalories(numCalories); } if (this.litresOfWater > 0f) { local.AddWater(this.litresOfWater); } if (this.antiRads > 0f) { local.AddAntiRad(this.antiRads); } if (this.healthToHeal != 0f) { global::HumanBodyTakeDamage local2 = inventory.GetLocal <global::HumanBodyTakeDamage>(); if (local2 != null) { if (this.healthToHeal > 0f) { local2.HealOverTime(this.healthToHeal); } else { global::TakeDamage.HurtSelf(inventory.idMain, Mathf.Abs(this.healthToHeal), null); } } } if (this.poisonAmount > 0f) { local.AddPoison(this.poisonAmount); } int num = 1; if (item.Consume(ref num)) { inventory.RemoveItem(item.slot); } }
// Token: 0x060039D1 RID: 14801 RVA: 0x000CB8D4 File Offset: 0x000C9AD4 public override void PrimaryAttack(ref global::HumanController.InputSample sample) { float num = this.datablock.fireRate; global::Metabolism local = base.inventory.GetLocal <global::Metabolism>(); if (local && local.GetCalorieLevel() <= 0f) { num = this.datablock.fireRate * 2f; } float num2 = Time.time + num; base.nextSecondaryAttackTime = num2; base.nextPrimaryAttackTime = num2; T datablock = this.datablock; datablock.Local_FireWeapon(base.viewModelInstance, base.itemRepresentation, this.iface as global::IMeleeWeaponItem, ref sample); }