Example #1
0
        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);
                        }
                    }
                }
            }
        }
Example #2
0
        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;
                            }
                        }
                    }
                }
            }
        }
Example #4
0
        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;
 }
Example #6
0
 public virtual void SetupStats(Apparel_MkArmor armor)
 {
 }
Example #7
0
        public override void SetupStats(Apparel_MkArmor armor)
        {
            base.SetupStats(armor);

            CheckCore();
        }