public override void TransformValue(StatRequest req, ref float val) { if (req.HasThing) { Pawn p = req.Thing as Pawn; if (p != null) { var armor = Apparel_MkArmor.HasAnyMK(p); if (armor != null) { foreach (var slot in armor.StatsListeners) { if (slot.def.StatAffecter.ContainsKey(parentStat)) { slot.TransformStat(parentStat, ref val); } } } } else if (req.Thing is Apparel_MkArmor armor) { foreach (var slot in armor.StatsListeners) { if (slot.def.StatAffecter.ContainsKey(parentStat)) { slot.TransformStat(parentStat, ref val); } } } } }
public override string ExplanationPart(StatRequest req) { if (req.HasThing) { Pawn p = req.Thing as Pawn; if (p != null) { var armor = Apparel_MkArmor.HasAnyMK(p); if (armor != null) { foreach (var slot in armor.StatsListeners) { if (slot.def.StatAffecter.ContainsKey(parentStat)) { return(slot.StatDescription()); } } } } else if (req.Thing is Apparel_MkArmor armor) { foreach (var slot in armor.StatsListeners) { if (slot.def.StatAffecter.ContainsKey(parentStat)) { return(slot.StatDescription()); } } } } return(""); }
static void Postfix(ref bool __result, Pawn pawn, Map map) { var app = Apparel_MkArmor.HasAnyMK(pawn); if (app != null) { foreach (var armorSlot in app.Slots) { foreach (var slot in armorSlot.Modules) { if (slot.Module != null) { if (!slot.Module.CanAffectCondition(GameConditionDefOfLocal.HeavyAir)) { __result = false; return; } } } } } }
private static bool CanDamage(Pawn p) { var app = Apparel_MkArmor.HasAnyMK(p); if (app != null) { foreach (var armorSlot in app.Slots) { foreach (var slot in armorSlot.Modules) { if (slot.Module != null) { if (!slot.Module.CanAffectCondition(GameConditionDefOf.ToxicFallout)) { return(false); } } } } } return(true); }
public override void SetupStats(Apparel_MkArmor armor) { armor.dischargeRate += 0.07f; }
public virtual void SetupStats(Apparel_MkArmor armor) { }
public override void SetupStats(Apparel_MkArmor armor) { base.SetupStats(armor); CheckCore(); }