private static void Postfix(Pawn __instance, ref IEnumerable <Gizmo> __result) { Pawn_EquipmentTracker equipment = __instance.equipment; if (equipment != null) { ThingWithComps primary = equipment.Primary; if (primary != null) { CompToggleFireMode comp = primary.GetComp <CompToggleFireMode>(); if (comp != null) { if (GizmoGetter(comp).Count <Gizmo>() > 0) { if (__instance != null) { if (__instance.Faction == Faction.OfPlayer) { __result = __result.Concat(GizmoGetter(comp)); } } } } } } }
public static IEnumerable <Gizmo> GizmoGetter(CompToggleFireMode CompToggleFireMode) { bool gizmosOnEquip = CompToggleFireMode.GizmosOnEquip; if (gizmosOnEquip) { foreach (Gizmo current in CompToggleFireMode.EquippedGizmos()) { yield return(current); } } yield break; }
public static void Postfix(Verb verb, ref bool __result) { if (!__result) { CompToggleFireMode comp = verb.EquipmentSource.GetComp <CompToggleFireMode>(); if (comp != null) { foreach (var verb2 in comp.Equippable.AllVerbs) { if (verb2.GetDamageDef()?.harmsHealth ?? false) { __result = true; return; } } } } }