Exemplo n.º 1
0
        private float GetMeleeDamage(StatRequest req, bool applyPostProcess = true)
        {
            Pawn pawn = req.Thing as Pawn;

            if (pawn == null)
            {
                return(0f);
            }
            List <VerbEntry> updatedAvailableVerbsList = pawn.meleeVerbs.GetUpdatedAvailableVerbsList(terrainTools: false);

            if (updatedAvailableVerbsList.Count == 0)
            {
                return(0f);
            }
            float num = 0f;

            for (int i = 0; i < updatedAvailableVerbsList.Count; i++)
            {
                if (updatedAvailableVerbsList[i].IsMeleeAttack)
                {
                    num += updatedAvailableVerbsList[i].GetSelectionWeight(null);
                }
            }
            if (num == 0f)
            {
                return(0f);
            }
            float num2 = 0f;

            for (int j = 0; j < updatedAvailableVerbsList.Count; j++)
            {
                if (updatedAvailableVerbsList[j].IsMeleeAttack)
                {
                    float          num3       = num2;
                    float          num4       = updatedAvailableVerbsList[j].GetSelectionWeight(null) / num;
                    VerbEntry      verbEntry  = updatedAvailableVerbsList[j];
                    VerbProperties verbProps  = verbEntry.verb.verbProps;
                    VerbEntry      verbEntry2 = updatedAvailableVerbsList[j];
                    num2 = num3 + num4 * verbProps.AdjustedMeleeDamageAmount(verbEntry2.verb, pawn);
                }
            }
            return(num2);
        }
        private float GetMeleeDamage(StatRequest req, bool applyPostProcess = true)
        {
            Pawn pawn = req.Thing as Pawn;

            if (pawn != null)
            {
                List <VerbEntry> updatedAvailableVerbsList = pawn.meleeVerbs.GetUpdatedAvailableVerbsList();
                if (updatedAvailableVerbsList.Count == 0)
                {
                    return(0f);
                }
                float num = 0f;
                for (int i = 0; i < updatedAvailableVerbsList.Count; i++)
                {
                    if (updatedAvailableVerbsList[i].IsMeleeAttack)
                    {
                        num += updatedAvailableVerbsList[i].SelectionWeight;
                    }
                }
                float num2 = 0f;
                for (int j = 0; j < updatedAvailableVerbsList.Count; j++)
                {
                    if (updatedAvailableVerbsList[j].IsMeleeAttack)
                    {
                        VerbEntry      verbEntry      = updatedAvailableVerbsList[j];
                        ThingWithComps ownerEquipment = verbEntry.verb.ownerEquipment;
                        float          num3           = num2;
                        float          num4           = updatedAvailableVerbsList[j].SelectionWeight / num;
                        VerbEntry      verbEntry2     = updatedAvailableVerbsList[j];
                        VerbProperties verbProps      = verbEntry2.verb.verbProps;
                        VerbEntry      verbEntry3     = updatedAvailableVerbsList[j];
                        num2 = num3 + num4 * verbProps.AdjustedMeleeDamageAmount(verbEntry3.verb, pawn, ownerEquipment);
                    }
                }
                return(num2);
            }
            return(0f);
        }