public override bool CheckPreAbsorbDamage(DamageInfo dinfo) { bool absorb = false; for (int i = 0; i < damageListeners.Count; i++) { MKArmorModule listener = damageListeners[i]; listener.CheckPreAbsorbDamage(dinfo, ref absorb); } return(absorb); }
public override void Tick() { base.Tick(); for (int i = 0; i < wornExtraListeners.Count; i++) { MKArmorModule listener = wornExtraListeners[i]; listener.Tick(); } if (CoreComp != null && CoreComp.Props.Fuel != null) { CoreComp.CompTick(); } }
public override void DrawWornExtras() { for (int i = 0; i < wornExtraListeners.Count; i++) { MKArmorModule listener = wornExtraListeners[i]; listener.DrawWornExtras(); } if (Find.TickManager.TicksGame % 200 == 0) { CheckHelmet(); if (Active) { EnergyCharge = Mathf.Clamp(EnergyCharge - dischargeRate, 0, EnergyCharge); if (CanHeal) { TryHeal(); } } } }
public void AddModule(ArmorModuleDef moduleDef, Thing item) { MKArmorModule module = (MKArmorModule)Activator.CreateInstance(moduleDef.workerClass); module.def = moduleDef; module.Armor = this; foreach (var armorSlot in Slots) { if (armorSlot.Category == moduleDef.ModuleCategory) { foreach (var slot in armorSlot.Modules) { if (slot.Module == null) { slot.Module = module; slot.Item = item; Notify_ModulesChanges(); break; } } } } }