示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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());
        }