public void AdjustBloodLoss() { float bloodLoss = 1 + (.25f * this.bleedRate); //Log.Message("adjusting blood loss by " + .03f * bloodLoss + " bleed rate is " + this.bleedRate); HediffDef bloodType = TM_Calc.GetBloodLossTypeDef(this.Pawn.health.hediffSet.hediffs); if (bloodType != null) { HealthUtility.AdjustSeverity(this.Pawn, HediffDef.Named(bloodType.ToString()), .04f * bloodLoss); } bloodType = null; bloodType = TM_Calc.GetBloodLossTypeDef(this.linkedPawn.health.hediffSet.hediffs); if (bloodType != null) { HealthUtility.AdjustSeverity(this.linkedPawn, HediffDef.Named(bloodType.ToString()), -(.03f * bloodLoss)); } }
private void Initialize() { bool spawned = base.Pawn.Spawned; CompAbilityUserMagic comp = this.linkedPawn.GetComp <CompAbilityUserMagic>(); if (TM_Calc.GetBloodLossTypeDef(this.Pawn.health.hediffSet.hediffs) == null) { HealthUtility.AdjustSeverity(this.Pawn, HediffDefOf.BloodLoss, .05f); } if (spawned && comp != null && comp.IsMagicUser) { bfbVer = comp.MagicData.MagicPowerSkill_BloodForBlood.FirstOrDefault((MagicPowerSkill x) => x.label == "TM_BloodForBlood_ver").level; this.arcaneDmg = comp.arcaneDmg; directionToLinkedPawn = TM_Calc.GetVector(this.Pawn.DrawPos, linkedPawn.DrawPos); } else { this.removeNow = true; } }
public void AdjustBloodLoss() { float bloodLoss = 1 + (.25f * this.bleedRate); if (this.Pawn.Faction == this.linkedPawn.Faction) { bloodLoss = bloodLoss / 2f; } //Log.Message("adjusting blood loss by " + .03f * bloodLoss + " bleed rate is " + this.bleedRate); HediffDef bloodType = TM_Calc.GetBloodLossTypeDef(this.Pawn.health.hediffSet.hediffs); if (bloodType != null) { HealthUtility.AdjustSeverity(this.Pawn, HediffDef.Named(bloodType.ToString()), .04f * bloodLoss / Mathf.Clamp(this.Pawn.BodySize, .25f, 4f)); } bloodType = TM_Calc.GetBloodLossTypeDef(this.linkedPawn.health.hediffSet.hediffs); if (bloodType != null) { HealthUtility.AdjustSeverity(this.linkedPawn, HediffDef.Named(bloodType.ToString()), -(.03f * bloodLoss / Mathf.Clamp(this.linkedPawn.BodySize, .25f, 4f))); } }