예제 #1
0
        public override string GetExplanationUnfinalized(StatRequest req, ToStringNumberSense numberSense)
        {
            ThingDef thingDef = req.Def as ThingDef;

            if (thingDef == null)
            {
                return(null);
            }
            List <VerbProperties> verbProps;
            List <Tool>           tools;

            this.GetVerbsAndTools(thingDef, out verbProps, out tools);
            Pawn currentWeaponUser = StatWorker_MeleeAverageDPS.GetCurrentWeaponUser(req.Thing);
            IEnumerable <VerbUtility.VerbPropertiesWithSource> enumerable = from x in VerbUtility.GetAllVerbProperties(verbProps, tools)
                                                                            where x.verbProps.IsMeleeAttack
                                                                            select x;
            StringBuilder stringBuilder = new StringBuilder();

            foreach (VerbUtility.VerbPropertiesWithSource current in enumerable)
            {
                float num  = current.verbProps.AdjustedMeleeDamageAmount(current.tool, currentWeaponUser, req.Thing, null);
                float num2 = current.verbProps.AdjustedCooldown(current.tool, currentWeaponUser, req.Thing);
                if (current.tool != null)
                {
                    stringBuilder.AppendLine(string.Format("  {0}: {1} ({2})", "Tool".Translate(), current.tool.LabelCap, current.ToolCapacity.defName));
                }
                else
                {
                    stringBuilder.AppendLine(string.Format("  {0}:", "StatsReport_NonToolAttack".Translate()));
                }
                stringBuilder.AppendLine(string.Format("    {0} {1}", num.ToString("F1"), "DamageLower".Translate()));
                stringBuilder.AppendLine(string.Format("    {0} {1}", num2.ToString("F2"), "SecondsPerAttackLower".Translate()));
                stringBuilder.AppendLine();
            }
            return(stringBuilder.ToString());
        }