public override void ExposeData() { base.ExposeData(); string reliabilityString; float jamsOn; StatPart_Reliability.GetReliability(this, out reliabilityString, out jamsOn); Scribe_Values.Look <string>(ref reliabilityString, "reliability", "NA", false); }
public override string GetInspectString() { string result = base.GetInspectString(); string reliabilityString; float jamsOn; StatPart_Reliability.GetReliability(this, out reliabilityString, out jamsOn); result += string.Format("\r\nReliability: {0}\r\nChance of jam: {1}%", reliabilityString, jamsOn); return(result); }
protected override bool TryCastShot() { string reliabilityString; float jamsOn; ThingDef_GunCP ownerEquipment = base.EquipmentSource as ThingDef_GunCP; StatPart_Reliability.GetReliability(ownerEquipment, out reliabilityString, out jamsOn); float jamRoll = (Rand.Range(0, 1000)) / 10f; //float jamRoll = Rand.Range(0, 100); if (jamRoll < jamsOn) { string msg = string.Format("{0}'s {1} had a weapon jam. ({2}/{3})", caster.LabelCap, ownerEquipment.LabelCap, jamRoll, jamsOn); Messages.Message(msg, MessageTypeDefOf.SilentInput); ownerEquipment.HitPoints--; return(false); } return(base.TryCastShot()); }