public static bool WieldsWeaponFromFighterGroup(UnitDescriptor owner, BlueprintFeature weaponTraining)
        {
            WeaponGroupAttackBonus weaponGroupAttackBonus = weaponTraining.GetComponent <WeaponGroupAttackBonus>();

            if (weaponGroupAttackBonus != null)
            {
                return((owner.Body.PrimaryHand.MaybeWeapon != null && owner.Body.PrimaryHand.MaybeWeapon.Blueprint.FighterGroup == weaponGroupAttackBonus.WeaponGroup) ||
                       (owner.Body.SecondaryHand.MaybeWeapon != null && owner.Body.SecondaryHand.MaybeWeapon.Blueprint.FighterGroup == weaponGroupAttackBonus.WeaponGroup));
            }

            WeaponParametersAttackBonus weaponParametersAttackBonus = weaponTraining.GetComponent <WeaponParametersAttackBonus>();

            if (weaponParametersAttackBonus != null)
            {
                return(weaponParametersAttackBonus.OnlyTwoHanded && owner.Body.PrimaryHand.MaybeWeapon != null && owner.Body.PrimaryHand.MaybeWeapon.Blueprint.IsTwoHanded);
            }

            return(false);
        }
        private static String getWeaponTrainingName(BlueprintFeature weaponTraining, bool removeBlanks = false)
        {
            String toReturn = "";
            WeaponGroupAttackBonus weaponGroupAttackBonus = weaponTraining.GetComponent <WeaponGroupAttackBonus>();

            if (weaponGroupAttackBonus != null)
            {
                switch (weaponGroupAttackBonus.WeaponGroup)
                {
                case WeaponFighterGroup.Axes:
                    toReturn = "Axes";
                    break;

                case WeaponFighterGroup.BladesHeavy:
                    toReturn = "Blades, Heavy";
                    break;

                case WeaponFighterGroup.BladesLight:
                    toReturn = "Blades, Light";
                    break;

                case WeaponFighterGroup.Bows:
                    toReturn = "Bows";
                    break;

                case WeaponFighterGroup.Close:
                    toReturn = "Close";
                    break;

                case WeaponFighterGroup.Crossbows:
                    toReturn = "Crossbows";
                    break;

                case WeaponFighterGroup.Double:
                    toReturn = "Double";
                    break;

                case WeaponFighterGroup.Flails:
                    toReturn = "Flails";
                    break;

                case WeaponFighterGroup.Hammers:
                    toReturn = "Hammers";
                    break;

                case WeaponFighterGroup.Monk:
                    toReturn = "Monk";
                    break;

                case WeaponFighterGroup.Natural:
                    toReturn = "Natural";
                    break;

                case WeaponFighterGroup.None:
                    toReturn = "Unknown";
                    break;

                case WeaponFighterGroup.Polearms:
                    toReturn = "Polearms";
                    break;

                case WeaponFighterGroup.Spears:
                    toReturn = "Spears";
                    break;

                case WeaponFighterGroup.Thrown:
                    toReturn = "Thrown";
                    break;
                }
            }
            else
            {
                WeaponParametersAttackBonus weaponParametersAttackBonus = weaponTraining.GetComponent <WeaponParametersAttackBonus>();
                if (weaponParametersAttackBonus.OnlyTwoHanded)
                {
                    toReturn = "Two-Handed";
                }
            }

            if (removeBlanks)
            {
                toReturn = toReturn.Trim();
            }

            return(toReturn);
        }