From 6b24b2aa3766c89d5cdf2d5b7238bad74379ce6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Software=20M=C3=A1gico?= Date: Mon, 24 May 2021 17:43:12 +0200 Subject: [PATCH] Ensuring default cash is correct for nobility and status --- .../tm/character/RandomName.java | 2 +- .../tm/character/RandomPlanet.java | 2 +- .../tm/character/RandomSurname.java | 2 +- .../tm/character/RandomizeCharacter.java | 27 +++++++++--- .../benefices/RandomBeneficeDefinition.java | 4 +- .../RandomExtraBeneficeDefinition.java | 2 +- .../blessings/RandomBlessingDefinition.java | 2 +- .../blessings/RandomCursesDefinition.java | 2 +- .../RandomCharacteristics.java | 6 +-- .../RandomCharacteristicsExperience.java | 2 +- .../RandomCharacteristicsExtraPoints.java | 8 ++-- .../cybernetics/RandomCybernetics.java | 2 +- .../equipment/EquipmentSelector.java | 2 +- .../equipment/armours/RandomArmour.java | 2 +- .../equipment/shields/RandomShield.java | 10 +---- .../equipment/weapons/RandomMeleeWeapon.java | 4 +- .../equipment/weapons/RandomRangeWeapon.java | 4 +- .../equipment/weapons/RandomWeapon.java | 2 +- .../tm/character/factions/RandomFaction.java | 21 +++++----- .../tm/character/occultism/RandomPsique.java | 2 +- .../character/occultism/RandomPsiquePath.java | 2 +- .../tm/character/races/RandomRace.java | 2 +- .../skills/RandomSkillExperience.java | 2 +- .../skills/RandomSkillExtraPoints.java | 2 +- .../tm/character/skills/RandomSkills.java | 4 +- .../tm/random/RandomSelector.java | 8 ++-- .../random/party/RandomPartyDefinition.java | 2 +- .../tm/random/party/RandomPartyFactory.java | 2 +- .../tm/random/party/RandomPartyMember.java | 12 +++--- .../random/predefined/IRandomPredefined.java | 6 +-- .../random/predefined/PredefinedMerger.java | 6 +-- .../random/predefined/RandomPredefined.java | 6 +-- .../predefined/RandomPredefinedFactory.java | 4 +- .../tm/random/predefined/characters/Npc.java | 2 +- .../predefined/characters/NpcFactory.java | 2 +- .../predefined/profile/RandomProfile.java | 2 +- .../profile/RandomProfileFactory.java | 2 +- .../tm/random/selectors/AgePreferences.java | 10 ++--- .../random/selectors/ArmourPreferences.java | 8 ++-- .../selectors/BlessingNumberPreferences.java | 10 ++--- .../random/selectors/BlessingPreferences.java | 8 ++-- .../tm/random/selectors/CashPreferences.java | 42 ++++++++++++++++--- .../selectors/CharacteristicsPreferences.java | 4 +- .../CombatActionsGroupPreferences.java | 8 ++-- .../selectors/CombatActionsPreferences.java | 10 ++--- .../random/selectors/CombatPreferences.java | 10 ++--- .../selectors/CurseNumberPreferences.java | 10 ++--- .../CyberneticPointsPreferences.java | 10 ++--- .../CyberneticTotalDevicesPreferences.java | 10 ++--- .../CyberneticVisibilityPreferences.java | 8 ++-- .../selectors/DifficultLevelPreferences.java | 10 ++--- .../ExtraBeneficesNumberPreferences.java | 10 ++--- .../random/selectors/FactionPreferences.java | 8 ++-- .../ICharacterCreationPreference.java | 2 +- .../ICharacterDescriptionPreference.java | 2 +- .../selectors/ICyberneticsPreference.java | 2 +- .../selectors/IEquipmentPreference.java | 2 +- .../tm/random/selectors/IPsiPreference.java | 2 +- .../random/selectors/IRandomPreference.java | 4 +- .../tm/random/selectors/NamesPreferences.java | 12 +++--- .../selectors/OccultismLevelPreferences.java | 10 ++--- .../OccultismPathLevelPreferences.java | 10 ++--- .../selectors/OccultismTypePreferences.java | 8 ++-- .../tm/random/selectors/RacePreferences.java | 8 ++-- .../random/selectors/ShieldPreferences.java | 8 ++-- .../selectors/SkillGroupPreferences.java | 6 +-- .../selectors/SpecializationPreferences.java | 10 ++--- .../random/selectors/StatusPreferences.java | 10 ++--- .../selectors/TechnologicalPreferences.java | 8 ++-- .../selectors/TraitCostPreferences.java | 10 ++--- .../random/selectors/WeaponsPreferences.java | 10 ++--- .../tm/random/RandomPreferences.java | 28 ++++++++++++- .../tm/random/npc/NpcTests.java | 12 +++--- .../party/RandomPartyDefinitionTests.java | 7 ++-- .../tm/random/profile/ProfileTests.java | 18 ++++---- 75 files changed, 300 insertions(+), 239 deletions(-) diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomName.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomName.java index c0e1d9ba..1eae4f66 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomName.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomName.java @@ -40,7 +40,7 @@ public class RandomName extends RandomSelector { - public RandomName(CharacterPlayer characterPlayer, Set preferences) + public RandomName(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomPlanet.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomPlanet.java index c10e5b47..492fdc0f 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomPlanet.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomPlanet.java @@ -41,7 +41,7 @@ public class RandomPlanet extends RandomSelector { private static final int NEUTRAL_PLANET = 8; private static final int ENEMY_PLANET = 1; - public RandomPlanet(CharacterPlayer characterPlayer, Set preferences) + public RandomPlanet(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomSurname.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomSurname.java index 9b9e5594..b7957791 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomSurname.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomSurname.java @@ -40,7 +40,7 @@ public class RandomSurname extends RandomSelector { - public RandomSurname(CharacterPlayer characterPlayer, Set preferences) + public RandomSurname(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomizeCharacter.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomizeCharacter.java index a85fe976..cf5c3ed4 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomizeCharacter.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/RandomizeCharacter.java @@ -66,7 +66,7 @@ public class RandomizeCharacter { private final CharacterPlayer characterPlayer; - private final Set preferences; + private final Set> preferences; private final Set requiredSkills; private final Set suggestedSkills; private final Set mandatoryBlessings; @@ -82,7 +82,7 @@ public class RandomizeCharacter { private final Faction requiredFaction; private final Race requiredRace; - public RandomizeCharacter(CharacterPlayer characterPlayer, int experiencePoints, IRandomPreference... preferences) { + public RandomizeCharacter(CharacterPlayer characterPlayer, int experiencePoints, IRandomPreference... preferences) { this(characterPlayer, experiencePoints, null, new HashSet<>(Arrays.asList(preferences)), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>()); @@ -94,13 +94,13 @@ public RandomizeCharacter(CharacterPlayer characterPlayer, IRandomPredefined... new HashSet<>(), new HashSet<>(), new HashSet<>()); } - public RandomizeCharacter(CharacterPlayer characterPlayer, Set preferences, IRandomPredefined... profiles) { + public RandomizeCharacter(CharacterPlayer characterPlayer, Set> preferences, IRandomPredefined... profiles) { this(characterPlayer, null, new HashSet<>(Arrays.asList(profiles)), preferences, new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>()); } - public RandomizeCharacter(CharacterPlayer characterPlayer, Integer experiencePoints, Set profiles, Set preferences, + public RandomizeCharacter(CharacterPlayer characterPlayer, Integer experiencePoints, Set profiles, Set> preferences, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, @@ -193,7 +193,7 @@ public void createCharacter() throws InvalidXmlElementException, InvalidRandomEl setExperiencePoints(); } - private void setDefaultPreferences() { + public void setDefaultPreferences() { final AgePreferences agePreferences = AgePreferences.getSelected(preferences); if (agePreferences == null) { preferences.add(AgePreferences.getDefaultOption()); @@ -241,11 +241,22 @@ private void setDefaultPreferences() { final CashPreferences cashPreferences = CashPreferences.getSelected(preferences); if (cashPreferences == null) { + //Faction and status also change the cash amount. + final CashPreferences factionCashPreference = CashPreferences.get(FactionPreferences.getSelected(preferences)); + final CashPreferences statusCashPreference = CashPreferences.get(StatusPreferences.getSelected(preferences)); + + //Equipment minimum cash. final AtomicReference equipmentCost = new AtomicReference<>((float) 0); mandatoryWeapons.forEach(weapon -> equipmentCost.updateAndGet(v -> (v + weapon.getCost()))); mandatoryArmours.forEach(armour -> equipmentCost.updateAndGet(v -> (v + armour.getCost()))); mandatoryShields.forEach(shield -> equipmentCost.updateAndGet(v -> (v + shield.getCost()))); - preferences.add(CashPreferences.get(equipmentCost.get())); + final CashPreferences equipmentCostPreference = CashPreferences.get(equipmentCost.get()); + + //Select higher value. + final List list = Arrays.asList(factionCashPreference, + statusCashPreference, equipmentCostPreference); + final Optional cashSelected = list.stream().filter(Objects::nonNull).max(Comparator.naturalOrder()); + cashSelected.ifPresent(preferences::add); } preferences.removeIf(Objects::isNull); } @@ -450,4 +461,8 @@ private void setExperiencePoints() throws InvalidXmlElementException, Restricted public String toString() { return characterPlayer.getCompleteNameRepresentation() + " (" + characterPlayer.getRace() + ") [" + characterPlayer.getFaction() + "]"; } + + public Set> getPreferences() { + return preferences; + } } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomBeneficeDefinition.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomBeneficeDefinition.java index 3b804008..eb52c595 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomBeneficeDefinition.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomBeneficeDefinition.java @@ -52,12 +52,12 @@ public class RandomBeneficeDefinition extends RandomSelector private Integer totalCombatActions; private final Set suggestedAvailableBenefices; - public RandomBeneficeDefinition(CharacterPlayer characterPlayer, Set preferences) + public RandomBeneficeDefinition(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { this(characterPlayer, preferences, new HashSet<>(), new HashSet<>(), new HashSet<>()); } - public RandomBeneficeDefinition(CharacterPlayer characterPlayer, Set preferences, + public RandomBeneficeDefinition(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryBenefices, Set suggestedBenefices, Set suggestedAvailableBenefices) throws InvalidXmlElementException, RestrictedElementException { diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomExtraBeneficeDefinition.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomExtraBeneficeDefinition.java index a257414c..b79a9c8e 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomExtraBeneficeDefinition.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/benefices/RandomExtraBeneficeDefinition.java @@ -39,7 +39,7 @@ public class RandomExtraBeneficeDefinition extends RandomBeneficeDefinition { private static final int MAX_COMBAT_STYLES = 2; - public RandomExtraBeneficeDefinition(CharacterPlayer characterPlayer, Set preferences, + public RandomExtraBeneficeDefinition(CharacterPlayer characterPlayer, Set> preferences, Set suggestedBenefices, Set suggestedAvailableBenefices) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, new HashSet<>(), suggestedBenefices, suggestedAvailableBenefices); diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomBlessingDefinition.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomBlessingDefinition.java index b4f63fdf..2ac56943 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomBlessingDefinition.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomBlessingDefinition.java @@ -39,7 +39,7 @@ public class RandomBlessingDefinition extends RandomSelector { - public RandomBlessingDefinition(CharacterPlayer characterPlayer, Set preferences, Set mandatoryBlessings, + public RandomBlessingDefinition(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryBlessings, Set suggestedBlessings) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, null, preferences, mandatoryBlessings, suggestedBlessings); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomCursesDefinition.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomCursesDefinition.java index 6619e923..ee162f9f 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomCursesDefinition.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/blessings/RandomCursesDefinition.java @@ -39,7 +39,7 @@ public class RandomCursesDefinition extends RandomSelector { - public RandomCursesDefinition(CharacterPlayer characterPlayer, Set preferences) + public RandomCursesDefinition(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristics.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristics.java index 6997efcc..85ed5284 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristics.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristics.java @@ -43,7 +43,7 @@ public class RandomCharacteristics extends RandomSelector { private static final int MIN_FAITH_FOR_THEURGY = 6; private static final int MIN_WILL_FOR_PSIQUE = 5; - public RandomCharacteristics(CharacterPlayer characterPlayer, Set preferences, + public RandomCharacteristics(CharacterPlayer characterPlayer, Set> preferences, Set characteristicsMinimumValues) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, null, preferences, characteristicsMinimumValues, new HashSet<>()); @@ -54,8 +54,8 @@ public void assign() throws InvalidRandomElementSelectedException { final SpecializationPreferences selectedSpecialization = SpecializationPreferences .getSelected(getPreferences()); - IRandomPreference techPreference = null; - for (final IRandomPreference preference : getPreferences()) { + IRandomPreference techPreference = null; + for (final IRandomPreference preference : getPreferences()) { if (preference instanceof TechnologicalPreferences) { techPreference = preference; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExperience.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExperience.java index 33598d13..00117d6e 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExperience.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExperience.java @@ -41,7 +41,7 @@ public class RandomCharacteristicsExperience extends RandomCharacteristics { - public RandomCharacteristicsExperience(CharacterPlayer characterPlayer, Set preferences) throws InvalidXmlElementException, + public RandomCharacteristicsExperience(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, new HashSet<>()); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExtraPoints.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExtraPoints.java index 4e93cea6..2861ccae 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExtraPoints.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/characteristics/RandomCharacteristicsExtraPoints.java @@ -42,16 +42,16 @@ public class RandomCharacteristicsExtraPoints extends RandomCharacteristics { - public RandomCharacteristicsExtraPoints(CharacterPlayer characterPlayer, Set preferences) throws InvalidXmlElementException, + public RandomCharacteristicsExtraPoints(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { - super(characterPlayer, preferences, new HashSet()); + super(characterPlayer, preferences, new HashSet<>()); } public int spendCharacteristicsPoints(int remainingPoints) throws InvalidRandomElementSelectedException { final IGaussianDistribution specialization = SpecializationPreferences.getSelected(getPreferences()); - IRandomPreference techPreference = null; - for (final IRandomPreference preference : getPreferences()) { + IRandomPreference techPreference = null; + for (final IRandomPreference preference : getPreferences()) { if (preference instanceof TechnologicalPreferences) { techPreference = preference; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/cybernetics/RandomCybernetics.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/cybernetics/RandomCybernetics.java index 631d2c98..f0709835 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/cybernetics/RandomCybernetics.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/cybernetics/RandomCybernetics.java @@ -48,7 +48,7 @@ public class RandomCybernetics extends RandomSelector { private int totalDevices; private int desiredCyberneticsPoints; - public RandomCybernetics(CharacterPlayer characterPlayer, Set preferences) + public RandomCybernetics(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); totalDevices = CyberneticTotalDevicesPreferences.getSelected(getPreferences()).randomGaussian(); diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/EquipmentSelector.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/EquipmentSelector.java index bfb88356..0e69bbb2 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/EquipmentSelector.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/EquipmentSelector.java @@ -37,7 +37,7 @@ public abstract class EquipmentSelector> extends RandomSelector { private Integer currentMoney = null; - protected EquipmentSelector(CharacterPlayer characterPlayer, Set preferences, + protected EquipmentSelector(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryElements) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, null, preferences, mandatoryElements, null); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/armours/RandomArmour.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/armours/RandomArmour.java index cbf39dde..3574af09 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/armours/RandomArmour.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/armours/RandomArmour.java @@ -43,7 +43,7 @@ public class RandomArmour extends EquipmentSelector { - public RandomArmour(CharacterPlayer characterPlayer, Set preferences, + public RandomArmour(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryArmours) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, mandatoryArmours); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/shields/RandomShield.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/shields/RandomShield.java index 58c74fbd..ef9268f5 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/shields/RandomShield.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/shields/RandomShield.java @@ -39,7 +39,7 @@ public class RandomShield extends EquipmentSelector { - public RandomShield(CharacterPlayer characterPlayer, Set preferences, + public RandomShield(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryShields) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, mandatoryShields); } @@ -138,13 +138,7 @@ protected void assignMandatoryValues(Set mandatoryValues) throws Invalid // We only assign the most expensive one. if (!mandatoryValues.isEmpty()) { final List sortedShields = new ArrayList<>(mandatoryValues); - Collections.sort(sortedShields, new Comparator() { - - @Override - public int compare(Shield shield0, Shield shield1) { - return Float.compare(shield0.getCost(), shield1.getCost()); - } - }); + sortedShields.sort((shield0, shield1) -> Float.compare(shield0.getCost(), shield1.getCost())); getCharacterPlayer().setShield(sortedShields.get(0)); } } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomMeleeWeapon.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomMeleeWeapon.java index 66de8ca4..83034c23 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomMeleeWeapon.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomMeleeWeapon.java @@ -38,7 +38,7 @@ public class RandomMeleeWeapon extends RandomWeapon { - public RandomMeleeWeapon(CharacterPlayer characterPlayer, Set preferences, + public RandomMeleeWeapon(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryWeapons) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, mandatoryWeapons); } @@ -69,7 +69,7 @@ protected Set weaponTypesFilter() { @Override protected int getWeightCostModificator(Weapon weapon) { - if (weapon.getCost() > getCurrentMoney() / (double) 1.1) { + if (weapon.getCost() > getCurrentMoney() / 1.1) { return 10; } else if (weapon.getCost() > getCurrentMoney() / (double) 2) { return 7; diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomRangeWeapon.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomRangeWeapon.java index b9e61c52..7538708d 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomRangeWeapon.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomRangeWeapon.java @@ -38,7 +38,7 @@ public class RandomRangeWeapon extends RandomWeapon { - public RandomRangeWeapon(CharacterPlayer characterPlayer, Set preferences, + public RandomRangeWeapon(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryWeapons) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, mandatoryWeapons); } @@ -69,7 +69,7 @@ protected Set weaponTypesFilter() { @Override protected int getWeightCostModificator(Weapon weapon) { - if (weapon.getCost() > getCurrentMoney() / (double) 1.1) { + if (weapon.getCost() > getCurrentMoney() / 1.1) { return 100; } else if (weapon.getCost() > getCurrentMoney() / (double) 2) { return 7; diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomWeapon.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomWeapon.java index 49f46d9c..6ec59690 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomWeapon.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/equipment/weapons/RandomWeapon.java @@ -38,7 +38,7 @@ public abstract class RandomWeapon extends EquipmentSelector { - protected RandomWeapon(CharacterPlayer characterPlayer, Set preferences, + protected RandomWeapon(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryWeapons) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, mandatoryWeapons); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/factions/RandomFaction.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/factions/RandomFaction.java index b67c44dd..5efd710a 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/factions/RandomFaction.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/factions/RandomFaction.java @@ -37,7 +37,7 @@ public class RandomFaction extends RandomSelector { - public RandomFaction(CharacterPlayer characterPlayer, Set preferences) throws InvalidXmlElementException, + public RandomFaction(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } @@ -67,17 +67,16 @@ protected int getWeight(Faction faction) throws InvalidRandomElementSelectedExce // Specialization desired. final FactionPreferences selectedFactionGroup = FactionPreferences.getSelected(getPreferences()); if (selectedFactionGroup != null) { - if (faction.getFactionGroup() != null && faction.getFactionGroup().name().equalsIgnoreCase(selectedFactionGroup.name())) { - return 1; + if (faction.getFactionGroup() != null && !faction.getFactionGroup().name().equalsIgnoreCase(selectedFactionGroup.name())) { + // Different faction than selected. + throw new InvalidRandomElementSelectedException("Faction '" + faction + "' not in preferences selection '" + selectedFactionGroup + "'."); + } + } else + // No faction preference selected. Xeno factions has preferences by its own factions. + if (getCharacterPlayer().getRace().isXeno() && faction.getRestrictedToRaces().size() == 1 && + faction.getRestrictedToRaces().contains(getCharacterPlayer().getRace())) { + return 100; } - // Different faction than selected. - throw new InvalidRandomElementSelectedException("Faction '" + faction + "' not in preferences selection '" + selectedFactionGroup + "'."); - } - // No faction preference selected. Xeno factions has preferences by its own factions. - if (getCharacterPlayer().getRace().isXeno() && faction.getRestrictedToRaces().size() == 1 && - faction.getRestrictedToRaces().contains(getCharacterPlayer().getRace())) { - return 100; - } return 1; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsique.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsique.java index 80742c37..735cb167 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsique.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsique.java @@ -45,7 +45,7 @@ public class RandomPsique extends RandomSelector { - public RandomPsique(CharacterPlayer characterPlayer, Set preferences) + public RandomPsique(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsiquePath.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsiquePath.java index 064c85a6..3a27e2d4 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsiquePath.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/occultism/RandomPsiquePath.java @@ -42,7 +42,7 @@ public class RandomPsiquePath extends RandomSelector { private int totalPowers; - public RandomPsiquePath(CharacterPlayer characterPlayer, Set preferences, Set mandatoryOccultismPaths) + public RandomPsiquePath(CharacterPlayer characterPlayer, Set> preferences, Set mandatoryOccultismPaths) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, null, preferences, mandatoryOccultismPaths, new HashSet<>()); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/races/RandomRace.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/races/RandomRace.java index ebe30654..3b1f5cfb 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/races/RandomRace.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/races/RandomRace.java @@ -37,7 +37,7 @@ public class RandomRace extends RandomSelector { - public RandomRace(CharacterPlayer characterPlayer, Set preferences) + public RandomRace(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExperience.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExperience.java index 5300bbf1..72dcc30d 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExperience.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExperience.java @@ -40,7 +40,7 @@ public class RandomSkillExperience extends RandomSkills { - public RandomSkillExperience(CharacterPlayer characterPlayer, Set preferences) throws InvalidXmlElementException, + public RandomSkillExperience(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, new HashSet<>(), new HashSet<>()); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExtraPoints.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExtraPoints.java index c88c6366..c3630e5c 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExtraPoints.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkillExtraPoints.java @@ -38,7 +38,7 @@ public class RandomSkillExtraPoints extends RandomSkills { - public RandomSkillExtraPoints(CharacterPlayer characterPlayer, Set preferences, + public RandomSkillExtraPoints(CharacterPlayer characterPlayer, Set> preferences, Set suggestedSkills) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, preferences, new HashSet<>(), suggestedSkills); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkills.java b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkills.java index 3e048616..49f34d3d 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkills.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/character/skills/RandomSkills.java @@ -46,12 +46,12 @@ public class RandomSkills extends RandomSelector { private List> preferredCharacteristicsTypeSorted; - public RandomSkills(CharacterPlayer characterPlayer, Set preferences) + public RandomSkills(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { this(characterPlayer, preferences, new HashSet<>(), new HashSet<>()); } - public RandomSkills(CharacterPlayer characterPlayer, Set preferences, + public RandomSkills(CharacterPlayer characterPlayer, Set> preferences, Set requiredSkills, Set suggestedSkills) throws InvalidXmlElementException, RestrictedElementException { super(characterPlayer, null, preferences, requiredSkills, suggestedSkills); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/RandomSelector.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/RandomSelector.java index f18b7a95..fd303c6a 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/RandomSelector.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/RandomSelector.java @@ -54,7 +54,7 @@ public abstract class RandomSelector preferences; + private final Set> preferences; protected Random rand = new Random(); private final Set suggestedElements; @@ -66,13 +66,13 @@ public abstract class RandomSelector elementWithRandomElements; - protected RandomSelector(CharacterPlayer characterPlayer, Set preferences) + protected RandomSelector(CharacterPlayer characterPlayer, Set> preferences) throws InvalidXmlElementException, RestrictedElementException { this(characterPlayer, null, preferences, new HashSet<>(), new HashSet<>()); } protected RandomSelector(CharacterPlayer characterPlayer, - IElementWithRandomElements elementWithRandomElements, Set preferences, + IElementWithRandomElements elementWithRandomElements, Set> preferences, Set mandatoryValues, Set suggestedElements) throws InvalidXmlElementException, RestrictedElementException { this.characterPlayer = characterPlayer; this.preferences = preferences; @@ -101,7 +101,7 @@ protected CharacterPlayer getCharacterPlayer() { return characterPlayer; } - protected Set getPreferences() { + protected Set> getPreferences() { if (preferences == null) { return new HashSet<>(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyDefinition.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyDefinition.java index 53a13bc6..17c75c51 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyDefinition.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyDefinition.java @@ -49,7 +49,7 @@ public class RandomPartyDefinition extends RandomSelector { private final String moduleName; protected RandomPartyDefinition(RandomParty randomParty, int threatLevel, String moduleName, - Set preferences) throws InvalidXmlElementException, RestrictedElementException { + Set> preferences) throws InvalidXmlElementException, RestrictedElementException { super(null, randomParty, preferences, new HashSet<>(), new HashSet<>()); this.moduleName = moduleName; this.threatLevel = threatLevel; diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyFactory.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyFactory.java index be6dd601..a936082c 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyFactory.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyFactory.java @@ -135,7 +135,7 @@ protected RandomParty createElement(ITranslator translator, String partyId, Stri } } - final Set randomPreferences = new HashSet<>(); + final Set> randomPreferences = new HashSet<>(); final String preferencesSelectedNames = translator.getNodeValue(partyId, MEMBER, EXTRA_PREFERENCES, node); if (preferencesSelectedNames != null) { diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyMember.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyMember.java index 139a8372..8d1cf5df 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyMember.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/party/RandomPartyMember.java @@ -31,14 +31,14 @@ import java.util.Set; public class RandomPartyMember extends Element { - private final RandomPredefined randomProfile; + private final RandomPredefined randomProfile; private final Integer minNumber; private final Integer maxNumber; private final Integer weight; - private final Set randomPreferences; + private final Set> randomPreferences; - public RandomPartyMember(String id, String name, String language, String moduleName, RandomPredefined randomProfile, Integer minNumber, - Integer maxNumber, Integer weight, Set randomPreferences) { + public RandomPartyMember(String id, String name, String language, String moduleName, RandomPredefined randomProfile, Integer minNumber, + Integer maxNumber, Integer weight, Set> randomPreferences) { super(id, name, null, language, moduleName); this.randomProfile = randomProfile; this.minNumber = minNumber; @@ -47,7 +47,7 @@ public RandomPartyMember(String id, String name, String language, String moduleN this.randomPreferences = randomPreferences; } - public RandomPredefined getRandomProfile() { + public RandomPredefined getRandomProfile() { return randomProfile; } @@ -63,7 +63,7 @@ public Integer getWeight() { return weight; } - public Set getRandomPreferences() { + public Set> getRandomPreferences() { return randomPreferences; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/IRandomPredefined.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/IRandomPredefined.java index 99de94c2..6216541a 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/IRandomPredefined.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/IRandomPredefined.java @@ -48,7 +48,7 @@ public interface IRandomPredefined { boolean isParentMerged(); - Set getPreferences(); + Set> getPreferences(); Set getCharacteristicsMinimumValues(); @@ -60,9 +60,9 @@ public interface IRandomPredefined { void setParent(IRandomPredefined randomProfile) throws InvalidXmlElementException; - public String getLanguage(); + String getLanguage(); - public String getModuleName(); + String getModuleName(); Set getRequiredSkills(); diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/PredefinedMerger.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/PredefinedMerger.java index 57be6098..c748e224 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/PredefinedMerger.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/PredefinedMerger.java @@ -61,7 +61,7 @@ private static IRandomPredefined getEmptyProfile(String language, String moduleN return new Npc(DEFAULT_ID, "", null, language, moduleName); } - public static IRandomPredefined merge(Set profiles, Set extraPreferences, Set requiredSkills, + public static IRandomPredefined merge(Set profiles, Set> extraPreferences, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, Set mandatoryAvailableBenefices, Set suggestedAvailableBenefices, @@ -278,7 +278,7 @@ private static void mergeRace(IRandomPredefined finalProfile, IRandomPredefined } } - public static void mergePreferences(Set originalPreferences, Set preferredPreferences) { + public static void mergePreferences(Set> originalPreferences, Set> preferredPreferences) { for (final IRandomPreference preferredPreference : new HashSet<>(preferredPreferences)) { //Get preference average. for (final IRandomPreference randomPreference : new HashSet<>(originalPreferences)) { @@ -296,7 +296,7 @@ public static void mergePreferences(Set originalPreferences, originalPreferences.addAll(preferredPreferences); } - public static Set removeDuplicates(Set originalPreferences) { + public static Set> removeDuplicates(Set> originalPreferences) { final Random random = new Random(); for (final IRandomPreference preference1 : new HashSet<>(originalPreferences)) { //Get preference average. diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefined.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefined.java index dc6a7cff..a62344b6 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefined.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefined.java @@ -43,7 +43,7 @@ import java.util.*; public abstract class RandomPredefined> extends Element implements IRandomPredefined { - private final Set randomPreferences; + private final Set> randomPreferences; private final Set characteristicsMinimumValues; private final Set requiredSkills; private final Set suggestedSkills; @@ -61,7 +61,7 @@ public abstract class RandomPredefined> e public boolean parentMerged = false; public RandomPredefined(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, @@ -173,7 +173,7 @@ public int getExperiencePoints() { } @Override - public Set getPreferences() { + public Set> getPreferences() { return randomPreferences; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefinedFactory.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefinedFactory.java index 4c2da984..ad35060e 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefinedFactory.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/RandomPredefinedFactory.java @@ -98,7 +98,7 @@ public Predefined getElement(String elementId, String language, String moduleNam } protected abstract Predefined createNew(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, @@ -131,7 +131,7 @@ protected Predefined createElement(ITranslator translator, String predefinedId, String language, String moduleName) throws InvalidXmlElementException { - final Set preferencesSelected = new HashSet<>(); + final Set> preferencesSelected = new HashSet<>(); final String preferencesSelectedNames = translator.getNodeValue(predefinedId, PREFERENCES); if (preferencesSelectedNames != null) { final StringTokenizer preferencesSelectedTokenizer = new StringTokenizer(preferencesSelectedNames, ","); diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/Npc.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/Npc.java index 73591703..7edbd474 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/Npc.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/Npc.java @@ -48,7 +48,7 @@ public class Npc extends RandomPredefined implements IRandomPredefined { private final Set mandatoryShields; public Npc(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/NpcFactory.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/NpcFactory.java index ffa7eae1..c967d64b 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/NpcFactory.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/characters/NpcFactory.java @@ -75,7 +75,7 @@ public FactoryCacheLoader getFactoryCacheLoader() { @Override protected Npc createNew(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfile.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfile.java index 6f219588..b84b251a 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfile.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfile.java @@ -41,7 +41,7 @@ public class RandomProfile extends RandomPredefined implements IRandomPredefined { public RandomProfile(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfileFactory.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfileFactory.java index dc6ecf6e..23088ff8 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfileFactory.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/predefined/profile/RandomProfileFactory.java @@ -61,7 +61,7 @@ public FactoryCacheLoader getFactoryCacheLoader() { @Override protected RandomProfile createNew(String id, String name, String description, String language, String moduleName, - Set randomPreferences, Set characteristicsMinimumValues, + Set> randomPreferences, Set characteristicsMinimumValues, Set requiredSkills, Set suggestedSkills, Set mandatoryBlessings, Set suggestedBlessings, Set mandatoryBenefices, Set suggestedBenefices, diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/AgePreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/AgePreferences.java index 05e85b0d..a8d17075 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/AgePreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/AgePreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum AgePreferences implements ICharacterDescriptionPreference, IGaussianDistribution { +public enum AgePreferences implements ICharacterDescriptionPreference, IGaussianDistribution { // Gaussian distribution. CHILD(6, 12, 9, 2), @@ -52,7 +52,7 @@ public enum AgePreferences implements ICharacterDescriptionPreference, IGaussian private final int variance; private final Random random = new Random(); - private AgePreferences(int minimumValue, int maximumValue, int mean, int variance) { + AgePreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -79,8 +79,8 @@ public int mean() { return mean; } - public static AgePreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static AgePreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof AgePreferences) { return (AgePreferences) preference; } @@ -98,7 +98,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ArmourPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ArmourPreferences.java index 94e30b2d..530773e2 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ArmourPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ArmourPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum ArmourPreferences implements IEquipmentPreference { +public enum ArmourPreferences implements IEquipmentPreference { NONE(0f), @@ -42,8 +42,8 @@ private ArmourPreferences(float armourProbability) { this.armourProbability = armourProbability; } - public static ArmourPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static ArmourPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof ArmourPreferences) { return (ArmourPreferences) preference; } @@ -66,7 +66,7 @@ public float getArmourProbability() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingNumberPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingNumberPreferences.java index 7fc68173..4a848f2c 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingNumberPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingNumberPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum BlessingNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { +public enum BlessingNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { NONE(0, 0, 0, 0), @@ -45,7 +45,7 @@ public enum BlessingNumberPreferences implements ICharacterCreationPreference, I private final int variance; private final Random random = new Random(); - private BlessingNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { + BlessingNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -72,8 +72,8 @@ public int mean() { return mean; } - public static BlessingNumberPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static BlessingNumberPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof BlessingNumberPreferences) { return (BlessingNumberPreferences) preference; } @@ -91,7 +91,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingPreferences.java index 92f831a4..06a5cebd 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/BlessingPreferences.java @@ -26,7 +26,7 @@ * #L% */ -public enum BlessingPreferences implements ICharacterCreationPreference { +public enum BlessingPreferences implements ICharacterCreationPreference { APPEARANCE, BEHAVIOUR, @@ -49,8 +49,8 @@ public int minimum() { return 0; } - public static BlessingPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static BlessingPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof BlessingPreferences) { return (BlessingPreferences) preference; } @@ -59,7 +59,7 @@ public static BlessingPreferences getSelected(Set preferences } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CashPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CashPreferences.java index 8fbe78d2..5171281d 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CashPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CashPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum CashPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { +public enum CashPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { LOW(0, 4, 0, 4), @@ -47,7 +47,7 @@ public enum CashPreferences implements ICharacterDescriptionPreference, IGaussia private final int variance; private final Random random = new Random(); - private CashPreferences(int minimumValue, int maximumValue, int mean, int variance) { + CashPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -74,13 +74,43 @@ public int mean() { return mean; } - public static CashPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CashPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CashPreferences) { return (CashPreferences) preference; } } - return FAIR; + return null; + } + + public static CashPreferences get(FactionPreferences factionPreferences) { + if (factionPreferences != null) { + switch (factionPreferences) { + case NOBILITY: + return CashPreferences.HIGH; + case GUILD: + return CashPreferences.GOOD; + case CHURCH: + return CashPreferences.FAIR; + default: + return null; + } + } + return null; + } + + public static CashPreferences get(StatusPreferences statusPreferences) { + if (statusPreferences != null) { + switch (statusPreferences) { + case GOOD: + return CashPreferences.GOOD; + case HIGH: + return CashPreferences.HIGH; + default: + return null; + } + } + return null; } @Override @@ -103,7 +133,7 @@ public static CashPreferences get(Float money) { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CharacteristicsPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CharacteristicsPreferences.java index 5a9b9523..4be6e1c4 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CharacteristicsPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CharacteristicsPreferences.java @@ -24,7 +24,7 @@ * #L% */ -public enum CharacteristicsPreferences implements ICharacterCreationPreference { +public enum CharacteristicsPreferences implements ICharacterCreationPreference { BODY(3, 8), MIND(3, 8), @@ -50,7 +50,7 @@ public int minimum() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsGroupPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsGroupPreferences.java index 90feca75..3efa62a1 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsGroupPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsGroupPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum CombatActionsGroupPreferences implements ICharacterDescriptionPreference { +public enum CombatActionsGroupPreferences implements ICharacterDescriptionPreference { MELEE, FIGHT, RANGED; @@ -42,12 +42,12 @@ public int minimum() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return null; } - public static CombatActionsGroupPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CombatActionsGroupPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CombatActionsGroupPreferences) { return (CombatActionsGroupPreferences) preference; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsPreferences.java index d01d1c1b..aea59e7e 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatActionsPreferences.java @@ -27,7 +27,7 @@ * #L% */ -public enum CombatActionsPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { +public enum CombatActionsPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { PEACEFUL(0, 0, 0, 0), FAIR(1, 2, 1, 0), @@ -40,7 +40,7 @@ public enum CombatActionsPreferences implements ICharacterDescriptionPreference, private final int variance; private final Random random = new Random(); - private CombatActionsPreferences(int minimumValue, int maximumValue, int mean, int variance) { + CombatActionsPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -77,8 +77,8 @@ public int randomGaussian() { } - public static CombatActionsPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CombatActionsPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CombatActionsPreferences) { return (CombatActionsPreferences) preference; } @@ -87,7 +87,7 @@ public static CombatActionsPreferences getSelected(Set prefer } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatPreferences.java index 4644a053..3c0392fc 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CombatPreferences.java @@ -26,7 +26,7 @@ * #L% */ -public enum CombatPreferences implements ICharacterDescriptionPreference { +public enum CombatPreferences implements ICharacterDescriptionPreference { // Threat level ~40 PEACEFUL(0, 1, WeaponsPreferences.LOW, ArmourPreferences.NONE, ShieldPreferences.NONE), @@ -43,7 +43,7 @@ public enum CombatPreferences implements ICharacterDescriptionPreference { private final ArmourPreferences defaultArmourPreferences; private final ShieldPreferences defaultShieldPreferences; - private CombatPreferences(int minimum, int maximum, WeaponsPreferences defaultWeaponPreferences, ArmourPreferences defaultArmourPreferences, + CombatPreferences(int minimum, int maximum, WeaponsPreferences defaultWeaponPreferences, ArmourPreferences defaultArmourPreferences, ShieldPreferences defaultShieldPreferences) { this.maximum = maximum; this.minimum = minimum; @@ -62,8 +62,8 @@ public int minimum() { return minimum; } - public static CombatPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CombatPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CombatPreferences) { return (CombatPreferences) preference; } @@ -94,7 +94,7 @@ public ShieldPreferences getDefaultShieldPreferences() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CurseNumberPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CurseNumberPreferences.java index c25b9c33..2943c362 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CurseNumberPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CurseNumberPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum CurseNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { +public enum CurseNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { NONE(0, 0, 0, 0), @@ -45,7 +45,7 @@ public enum CurseNumberPreferences implements ICharacterCreationPreference, IGau private final int variance; private final Random random = new Random(); - private CurseNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { + CurseNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -72,8 +72,8 @@ public int mean() { return mean; } - public static CurseNumberPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CurseNumberPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CurseNumberPreferences) { return (CurseNumberPreferences) preference; } @@ -91,7 +91,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticPointsPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticPointsPreferences.java index ce0d36a1..627c70e4 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticPointsPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticPointsPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum CyberneticPointsPreferences implements ICyberneticsPreference, IGaussianDistribution { +public enum CyberneticPointsPreferences implements ICyberneticsPreference, IGaussianDistribution { // Gaussian distribution. NONE(0, 0, 0, 0), @@ -48,7 +48,7 @@ public enum CyberneticPointsPreferences implements ICyberneticsPreference, IGaus private final int variance; private final Random random = new Random(); - private CyberneticPointsPreferences(int minimumValue, int maximumValue, int mean, int variance) { + CyberneticPointsPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -76,8 +76,8 @@ public int mean() { } - public static CyberneticPointsPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CyberneticPointsPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CyberneticPointsPreferences) { return (CyberneticPointsPreferences) preference; } @@ -95,7 +95,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticTotalDevicesPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticTotalDevicesPreferences.java index 06c339e9..6d7cbbcb 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticTotalDevicesPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticTotalDevicesPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum CyberneticTotalDevicesPreferences implements ICyberneticsPreference, IGaussianDistribution { +public enum CyberneticTotalDevicesPreferences implements ICyberneticsPreference, IGaussianDistribution { // Gaussian distribution. NONE(0, 0, 0, 0), @@ -48,7 +48,7 @@ public enum CyberneticTotalDevicesPreferences implements ICyberneticsPreference, private final int variance; private final Random random = new Random(); - private CyberneticTotalDevicesPreferences(int minimumValue, int maximumValue, int mean, int variance) { + CyberneticTotalDevicesPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -75,8 +75,8 @@ public int mean() { return mean; } - public static CyberneticTotalDevicesPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CyberneticTotalDevicesPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CyberneticTotalDevicesPreferences) { return (CyberneticTotalDevicesPreferences) preference; } @@ -94,7 +94,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticVisibilityPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticVisibilityPreferences.java index f74a43a6..8bac2cb2 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticVisibilityPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/CyberneticVisibilityPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum CyberneticVisibilityPreferences implements ICyberneticsPreference { +public enum CyberneticVisibilityPreferences implements ICyberneticsPreference { HIDDEN, @@ -45,8 +45,8 @@ public int minimum() { return 0; } - public static CyberneticVisibilityPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static CyberneticVisibilityPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof CyberneticVisibilityPreferences) { return (CyberneticVisibilityPreferences) preference; } @@ -55,7 +55,7 @@ public static CyberneticVisibilityPreferences getSelected(Set } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/DifficultLevelPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/DifficultLevelPreferences.java index 21d0855a..3e7de125 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/DifficultLevelPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/DifficultLevelPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum DifficultLevelPreferences implements ICharacterDescriptionPreference { +public enum DifficultLevelPreferences implements ICharacterDescriptionPreference { // Threat level ~50 VERY_EASY(-5, -15, 0), @@ -47,7 +47,7 @@ public enum DifficultLevelPreferences implements ICharacterDescriptionPreference private final int skillsBonus; private final int characteristicsBonus; - private DifficultLevelPreferences(int characteristicsBonus, int skillsBonus, int extraExperience) { + DifficultLevelPreferences(int characteristicsBonus, int skillsBonus, int extraExperience) { this.characteristicsBonus = characteristicsBonus; this.skillsBonus = skillsBonus; this.experienceBonus = extraExperience; @@ -63,8 +63,8 @@ public int minimum() { return 0; } - public static DifficultLevelPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static DifficultLevelPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof DifficultLevelPreferences) { return (DifficultLevelPreferences) preference; } @@ -85,7 +85,7 @@ public int getCharacteristicsBonus() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ExtraBeneficesNumberPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ExtraBeneficesNumberPreferences.java index 44c00cd0..4cbf8b23 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ExtraBeneficesNumberPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ExtraBeneficesNumberPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum ExtraBeneficesNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { +public enum ExtraBeneficesNumberPreferences implements ICharacterCreationPreference, IGaussianDistribution { NONE(0, 0, 0, 0), @@ -45,7 +45,7 @@ public enum ExtraBeneficesNumberPreferences implements ICharacterCreationPrefere private final int variance; private final Random random = new Random(); - private ExtraBeneficesNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { + ExtraBeneficesNumberPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -72,8 +72,8 @@ public int mean() { return mean; } - public static ExtraBeneficesNumberPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static ExtraBeneficesNumberPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof ExtraBeneficesNumberPreferences) { return (ExtraBeneficesNumberPreferences) preference; } @@ -91,7 +91,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/FactionPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/FactionPreferences.java index 9292284c..7badcf7f 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/FactionPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/FactionPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum FactionPreferences implements ICharacterDescriptionPreference { +public enum FactionPreferences implements ICharacterDescriptionPreference { NOBILITY, @@ -48,8 +48,8 @@ public int minimum() { return 0; } - public static FactionPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static FactionPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof FactionPreferences) { return (FactionPreferences) preference; } @@ -58,7 +58,7 @@ public static FactionPreferences getSelected(Set preferences) } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterCreationPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterCreationPreference.java index a50552c8..d31d1d34 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterCreationPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterCreationPreference.java @@ -24,5 +24,5 @@ * #L% */ -public interface ICharacterCreationPreference extends IRandomPreference { +public interface ICharacterCreationPreference extends IRandomPreference { } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterDescriptionPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterDescriptionPreference.java index 03684544..d99cee1f 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterDescriptionPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICharacterDescriptionPreference.java @@ -24,5 +24,5 @@ * #L% */ -public interface ICharacterDescriptionPreference extends IRandomPreference { +public interface ICharacterDescriptionPreference extends IRandomPreference { } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICyberneticsPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICyberneticsPreference.java index 199e7402..d5ec8f83 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICyberneticsPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ICyberneticsPreference.java @@ -24,5 +24,5 @@ * #L% */ -public interface ICyberneticsPreference extends IRandomPreference { +public interface ICyberneticsPreference extends IRandomPreference { } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IEquipmentPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IEquipmentPreference.java index 997c7886..92a37674 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IEquipmentPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IEquipmentPreference.java @@ -24,5 +24,5 @@ * #L% */ -public interface IEquipmentPreference extends IRandomPreference { +public interface IEquipmentPreference extends IRandomPreference { } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IPsiPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IPsiPreference.java index cdec2899..fd14c148 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IPsiPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IPsiPreference.java @@ -24,5 +24,5 @@ * #L% */ -public interface IPsiPreference extends IRandomPreference { +public interface IPsiPreference extends IRandomPreference { } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IRandomPreference.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IRandomPreference.java index e78246e5..dd384338 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IRandomPreference.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/IRandomPreference.java @@ -24,7 +24,7 @@ * #L% */ -public interface IRandomPreference { +public interface IRandomPreference extends Comparable { int maximum(); @@ -32,5 +32,5 @@ public interface IRandomPreference { String name(); - IRandomPreference getDefault(); + IRandomPreference getDefault(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/NamesPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/NamesPreferences.java index 75fba21d..3d4acacb 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/NamesPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/NamesPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum NamesPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { +public enum NamesPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { // Gaussian distribution. LOW(1, 1, 1, 1), @@ -44,7 +44,7 @@ public enum NamesPreferences implements ICharacterDescriptionPreference, IGaussi private final int variance; private final Random random = new Random(); - private NamesPreferences(int minimumValue, int maximumValue, int mean, int variance) { + NamesPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -63,7 +63,7 @@ public int minimum() { @Override public int variance() { - return (int) variance; + return variance; } @Override @@ -71,8 +71,8 @@ public int mean() { return mean; } - public static NamesPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static NamesPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof NamesPreferences) { return (NamesPreferences) preference; } @@ -102,7 +102,7 @@ public static NamesPreferences getByStatus(int statusCost) { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismLevelPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismLevelPreferences.java index 00865f6a..af521f5b 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismLevelPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismLevelPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum OccultismLevelPreferences implements IPsiPreference, IGaussianDistribution { +public enum OccultismLevelPreferences implements IPsiPreference, IGaussianDistribution { // Gaussian distribution. NONE(0, 0, 0, 0), @@ -46,7 +46,7 @@ public enum OccultismLevelPreferences implements IPsiPreference, IGaussianDistri private final int variance; private final Random random = new Random(); - private OccultismLevelPreferences(int minimumValue, int maximumValue, int mean, int variance) { + OccultismLevelPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -73,8 +73,8 @@ public int mean() { return mean; } - public static OccultismLevelPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static OccultismLevelPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof OccultismLevelPreferences) { return (OccultismLevelPreferences) preference; } @@ -92,7 +92,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismPathLevelPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismPathLevelPreferences.java index 0a860a75..3863b511 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismPathLevelPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismPathLevelPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum OccultismPathLevelPreferences implements IPsiPreference, IGaussianDistribution { +public enum OccultismPathLevelPreferences implements IPsiPreference, IGaussianDistribution { // Gaussian distribution. NONE(0, 0, 0, 0), @@ -46,7 +46,7 @@ public enum OccultismPathLevelPreferences implements IPsiPreference, IGaussianDi private final int variance; private final Random random = new Random(); - private OccultismPathLevelPreferences(int minimumValue, int maximumValue, int mean, int variance) { + OccultismPathLevelPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -73,8 +73,8 @@ public int mean() { return mean; } - public static OccultismPathLevelPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static OccultismPathLevelPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof OccultismPathLevelPreferences) { return (OccultismPathLevelPreferences) preference; } @@ -92,7 +92,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismTypePreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismTypePreferences.java index 60c41ddf..43d7a176 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismTypePreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/OccultismTypePreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum OccultismTypePreferences implements IPsiPreference { +public enum OccultismTypePreferences implements IPsiPreference { // Gaussian distribution. ANY, @@ -44,12 +44,12 @@ public int minimum() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } - public static OccultismTypePreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static OccultismTypePreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof OccultismTypePreferences) { return (OccultismTypePreferences) preference; } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/RacePreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/RacePreferences.java index 44c9f3e0..a9176436 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/RacePreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/RacePreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum RacePreferences implements ICharacterDescriptionPreference { +public enum RacePreferences implements ICharacterDescriptionPreference { HUMAN, XENO; @@ -41,8 +41,8 @@ public int minimum() { return 0; } - public static RacePreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static RacePreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof RacePreferences) { return (RacePreferences) preference; } @@ -51,7 +51,7 @@ public static RacePreferences getSelected(Set preferences) { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ShieldPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ShieldPreferences.java index ae27f63a..21d0e531 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ShieldPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/ShieldPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum ShieldPreferences implements IEquipmentPreference { +public enum ShieldPreferences implements IEquipmentPreference { NONE(0f), @@ -42,8 +42,8 @@ private ShieldPreferences(float shieldProbability) { this.shieldProbability = shieldProbability; } - public static ShieldPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static ShieldPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof ShieldPreferences) { return (ShieldPreferences) preference; } @@ -78,7 +78,7 @@ public float getShieldProbability() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SkillGroupPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SkillGroupPreferences.java index 1d5fc57d..ec6f9a57 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SkillGroupPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SkillGroupPreferences.java @@ -26,7 +26,7 @@ * #L% */ -public enum SkillGroupPreferences implements ICharacterCreationPreference { +public enum SkillGroupPreferences implements ICharacterCreationPreference { ANALYTICAL(SkillGroup.ANALYTICAL), @@ -50,7 +50,7 @@ public enum SkillGroupPreferences implements ICharacterCreationPreference { private final SkillGroup skillGroup; - private SkillGroupPreferences(SkillGroup skillGroup) { + SkillGroupPreferences(SkillGroup skillGroup) { this.skillGroup = skillGroup; } @@ -80,7 +80,7 @@ public SkillGroup getSkillGroup() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SpecializationPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SpecializationPreferences.java index 2985a25c..88f6baf9 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SpecializationPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/SpecializationPreferences.java @@ -27,7 +27,7 @@ * #L% */ -public enum SpecializationPreferences implements ICharacterCreationPreference, IGaussianDistribution { +public enum SpecializationPreferences implements ICharacterCreationPreference, IGaussianDistribution { // Gaussian distribution. VERY_GENERALIZED(1, 6, 1, 4), @@ -48,7 +48,7 @@ public enum SpecializationPreferences implements ICharacterCreationPreference, I private final int variance; private final Random random = new Random(); - private SpecializationPreferences(int minimumValue, int maximumValue, int mean, int variance) { + SpecializationPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -75,8 +75,8 @@ public int mean() { return mean; } - public static SpecializationPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static SpecializationPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof SpecializationPreferences) { return (SpecializationPreferences) preference; } @@ -94,7 +94,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/StatusPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/StatusPreferences.java index 03aae1b9..863ac1c9 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/StatusPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/StatusPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum StatusPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { +public enum StatusPreferences implements ICharacterDescriptionPreference, IGaussianDistribution { NONE(0, 0, 0, 0), @@ -47,7 +47,7 @@ public enum StatusPreferences implements ICharacterDescriptionPreference, IGauss private final int variance; private final Random random = new Random(); - private StatusPreferences(int minimumValue, int maximumValue, int mean, int variance) { + StatusPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -74,8 +74,8 @@ public int mean() { return mean; } - public static StatusPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static StatusPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof StatusPreferences) { return (StatusPreferences) preference; } @@ -93,7 +93,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TechnologicalPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TechnologicalPreferences.java index 6434ed25..39cb31fc 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TechnologicalPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TechnologicalPreferences.java @@ -26,7 +26,7 @@ * #L% */ -public enum TechnologicalPreferences implements IEquipmentPreference { +public enum TechnologicalPreferences implements IEquipmentPreference { PREHISTORIC(0, 1), @@ -70,8 +70,8 @@ public boolean isMoreThan(TechnologicalPreferences preference) { return maximum >= preference.maximum; } - public static TechnologicalPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static TechnologicalPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof TechnologicalPreferences) { return (TechnologicalPreferences) preference; } @@ -80,7 +80,7 @@ public static TechnologicalPreferences getSelected(Set prefer } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TraitCostPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TraitCostPreferences.java index cba22bdc..b143344a 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TraitCostPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/TraitCostPreferences.java @@ -27,7 +27,7 @@ import java.util.Random; import java.util.Set; -public enum TraitCostPreferences implements ICharacterCreationPreference, IGaussianDistribution { +public enum TraitCostPreferences implements ICharacterCreationPreference, IGaussianDistribution { // Gaussian distribution. LOW(1, 4, 2, 1), @@ -46,7 +46,7 @@ public enum TraitCostPreferences implements ICharacterCreationPreference, IGauss private final int variance; private final Random random = new Random(); - private TraitCostPreferences(int minimumValue, int maximumValue, int mean, int variance) { + TraitCostPreferences(int minimumValue, int maximumValue, int mean, int variance) { this.maximum = maximumValue; this.minimum = minimumValue; this.variance = variance; @@ -73,8 +73,8 @@ public int mean() { return mean; } - public static TraitCostPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static TraitCostPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof TraitCostPreferences) { return (TraitCostPreferences) preference; } @@ -92,7 +92,7 @@ public int randomGaussian() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/WeaponsPreferences.java b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/WeaponsPreferences.java index 3f02a1d7..d35bcb68 100644 --- a/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/WeaponsPreferences.java +++ b/think-machine-random/src/main/java/com/softwaremagico/tm/random/selectors/WeaponsPreferences.java @@ -26,7 +26,7 @@ import java.util.Set; -public enum WeaponsPreferences implements ICharacterCreationPreference { +public enum WeaponsPreferences implements ICharacterCreationPreference { NONE(0f, 0f), @@ -45,13 +45,13 @@ public enum WeaponsPreferences implements ICharacterCreationPreference { private final float meleeWeaponProbability; private final float rangeWeaponProbability; - private WeaponsPreferences(float meleeWeaponProbability, float rangeWeaponProbability) { + WeaponsPreferences(float meleeWeaponProbability, float rangeWeaponProbability) { this.meleeWeaponProbability = meleeWeaponProbability; this.rangeWeaponProbability = rangeWeaponProbability; } - public static WeaponsPreferences getSelected(Set preferences) { - for (final IRandomPreference preference : preferences) { + public static WeaponsPreferences getSelected(Set> preferences) { + for (final IRandomPreference preference : preferences) { if (preference instanceof WeaponsPreferences) { return (WeaponsPreferences) preference; } @@ -78,7 +78,7 @@ public int minimum() { } @Override - public IRandomPreference getDefault() { + public IRandomPreference getDefault() { return getDefaultOption(); } diff --git a/think-machine-random/src/test/java/com/softwaremagico/tm/random/RandomPreferences.java b/think-machine-random/src/test/java/com/softwaremagico/tm/random/RandomPreferences.java index 8de4e06f..db6bde4f 100644 --- a/think-machine-random/src/test/java/com/softwaremagico/tm/random/RandomPreferences.java +++ b/think-machine-random/src/test/java/com/softwaremagico/tm/random/RandomPreferences.java @@ -32,6 +32,7 @@ import com.softwaremagico.tm.character.characteristics.CharacteristicName; import com.softwaremagico.tm.character.combat.CombatStyle; import com.softwaremagico.tm.character.combat.CombatStyleGroup; +import com.softwaremagico.tm.character.equipment.shields.ShieldFactory; import com.softwaremagico.tm.character.skills.AvailableSkill; import com.softwaremagico.tm.character.skills.AvailableSkillsFactory; import com.softwaremagico.tm.character.skills.InvalidRanksException; @@ -41,6 +42,7 @@ import org.testng.Assert; import org.testng.annotations.Test; +import java.util.Collections; import java.util.HashSet; @Test(groups = {"randomPreferences"}) @@ -86,8 +88,8 @@ public void checkCombatStylesPreferences() throws InvalidRandomElementSelectedEx characterPlayer.setSkillRank(AvailableSkillsFactory.getInstance().getElement("melee", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER), 8); randomizeCharacter.createCharacter(); Assert.assertFalse(characterPlayer.getSelectedBenefices(BeneficeGroup.FIGHTING).isEmpty()); - Assert.assertTrue(CombatStyle.getCombatStyle(characterPlayer.getSelectedBenefices(BeneficeGroup.FIGHTING).iterator().next().getBeneficeDefinition(), - LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER).getGroup() == CombatStyleGroup.MELEE); + Assert.assertSame(CombatStyle.getCombatStyle(characterPlayer.getSelectedBenefices(BeneficeGroup.FIGHTING).iterator().next().getBeneficeDefinition(), + LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER).getGroup(), CombatStyleGroup.MELEE); } @Test @@ -105,5 +107,27 @@ public void checkMinimumTech() throws InvalidRandomElementSelectedException, Inv artifactMelee.getRandomDefinition().getMinimumTechLevel()); } + @Test + public void checkNobilityPreferencesHasDefaultCash() { + final CharacterPlayer characterPlayer = new CharacterPlayer(LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); + final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, 0, + FactionPreferences.NOBILITY); + randomizeCharacter.setDefaultPreferences(); + //At least, FAIR cash must be selected for a noble. + Assert.assertTrue(CashPreferences.getSelected(randomizeCharacter.getPreferences()).ordinal() > 0); + } + + @Test + public void checkWeaponsCostDefaultCash() throws InvalidXmlElementException { + final CharacterPlayer characterPlayer = new CharacterPlayer(LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); + final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, 0, + new HashSet<>(), new HashSet<>(Collections.singletonList(FactionPreferences.NOBILITY)), new HashSet<>(), new HashSet<>(), new HashSet<>(), + new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), new HashSet<>(), + new HashSet<>(), new HashSet<>(), new HashSet<>(Collections.singletonList(ShieldFactory.getInstance().getElement("battleShield", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER)))); + randomizeCharacter.setDefaultPreferences(); + //At least, FAIR cash must be selected for a noble. + Assert.assertTrue(CashPreferences.getSelected(randomizeCharacter.getPreferences()).ordinal() > 3); + } + } diff --git a/think-machine-random/src/test/java/com/softwaremagico/tm/random/npc/NpcTests.java b/think-machine-random/src/test/java/com/softwaremagico/tm/random/npc/NpcTests.java index 1be79cc5..b49b5027 100644 --- a/think-machine-random/src/test/java/com/softwaremagico/tm/random/npc/NpcTests.java +++ b/think-machine-random/src/test/java/com/softwaremagico/tm/random/npc/NpcTests.java @@ -258,14 +258,14 @@ public void tracker() throws InvalidXmlElementException, InvalidRandomElementSel @Test public void mergingPreferences() { - Set originalPreferences = Stream.of(CombatPreferences.PEACEFUL, AgePreferences.ADULT) + Set> originalPreferences = Stream.of(CombatPreferences.PEACEFUL, AgePreferences.ADULT) .collect(Collectors.toCollection(HashSet::new)); - Set newPreferences = Stream.of(CombatPreferences.BELLIGERENT, BlessingPreferences.APPEARANCE) + Set> newPreferences = Stream.of(CombatPreferences.BELLIGERENT, BlessingPreferences.APPEARANCE) .collect(Collectors.toCollection(HashSet::new)); PredefinedMerger.mergePreferences(originalPreferences, newPreferences); Assert.assertEquals(originalPreferences.size(), 3); boolean found = false; - for (IRandomPreference preference : originalPreferences) { + for (IRandomPreference preference : originalPreferences) { if (Objects.equals(preference.getClass().getName(), CombatPreferences.class.getName())) { Assert.assertEquals(preference, CombatPreferences.FAIR); found = true; @@ -276,14 +276,14 @@ public void mergingPreferences() { @Test public void mergingPreferencesRounded() { - Set originalPreferences = Stream.of(AgePreferences.CHILD) + Set> originalPreferences = Stream.of(AgePreferences.CHILD) .collect(Collectors.toCollection(HashSet::new)); - Set newPreferences = Stream.of(AgePreferences.VERY_OLD) + Set> newPreferences = Stream.of(AgePreferences.VERY_OLD) .collect(Collectors.toCollection(HashSet::new)); PredefinedMerger.mergePreferences(originalPreferences, newPreferences); Assert.assertEquals(originalPreferences.size(), 1); boolean found = false; - for (IRandomPreference preference : originalPreferences) { + for (IRandomPreference preference : originalPreferences) { if (Objects.equals(preference.getClass().getName(), AgePreferences.class.getName())) { Assert.assertEquals(preference, AgePreferences.ADULT); found = true; diff --git a/think-machine-random/src/test/java/com/softwaremagico/tm/random/party/RandomPartyDefinitionTests.java b/think-machine-random/src/test/java/com/softwaremagico/tm/random/party/RandomPartyDefinitionTests.java index 2b99e344..9b5196e2 100644 --- a/think-machine-random/src/test/java/com/softwaremagico/tm/random/party/RandomPartyDefinitionTests.java +++ b/think-machine-random/src/test/java/com/softwaremagico/tm/random/party/RandomPartyDefinitionTests.java @@ -27,7 +27,6 @@ import com.softwaremagico.tm.InvalidXmlElementException; import com.softwaremagico.tm.character.RestrictedElementException; import com.softwaremagico.tm.file.PathManager; -import com.softwaremagico.tm.random.selectors.IRandomPreference; import org.testng.Assert; import org.testng.annotations.Test; @@ -42,7 +41,7 @@ public void mandatoryMembersAdded() throws InvalidXmlElementException, Restricte final RandomParty thugParty = RandomPartyFactory.getInstance().getElement("thugBand", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); final RandomPartyDefinition randomPartyDefinition = new RandomPartyDefinition(thugParty, 0, - PathManager.DEFAULT_MODULE_FOLDER, new HashSet()); + PathManager.DEFAULT_MODULE_FOLDER, new HashSet<>()); randomPartyDefinition.assign(); // One mandatory and one random element that is always added. Assert.assertEquals(randomPartyDefinition.getParty().getMembers().size(), 1 + 1); @@ -55,14 +54,14 @@ public void threatLevelAddMoreMembersToParty() throws InvalidXmlElementException final RandomParty thugParty = RandomPartyFactory.getInstance().getElement("thugBand", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); final RandomPartyDefinition randomPartyDefinition = new RandomPartyDefinition(thugParty, 200, - PathManager.DEFAULT_MODULE_FOLDER, new HashSet()); + PathManager.DEFAULT_MODULE_FOLDER, new HashSet<>()); randomPartyDefinition.assign(); Assert.assertNotNull(randomPartyDefinition.getParty().getPartyName()); final RandomParty thugParty2 = RandomPartyFactory.getInstance().getElement("thugBand", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); final RandomPartyDefinition randomPartyDefinition2 = new RandomPartyDefinition(thugParty2, 450, - PathManager.DEFAULT_MODULE_FOLDER, new HashSet()); + PathManager.DEFAULT_MODULE_FOLDER, new HashSet<>()); randomPartyDefinition2.assign(); Assert.assertTrue(randomPartyDefinition2.getParty().getMembers().size() > randomPartyDefinition.getParty() diff --git a/think-machine-random/src/test/java/com/softwaremagico/tm/random/profile/ProfileTests.java b/think-machine-random/src/test/java/com/softwaremagico/tm/random/profile/ProfileTests.java index e28c813b..d08165cc 100644 --- a/think-machine-random/src/test/java/com/softwaremagico/tm/random/profile/ProfileTests.java +++ b/think-machine-random/src/test/java/com/softwaremagico/tm/random/profile/ProfileTests.java @@ -16,7 +16,7 @@ import org.testng.Assert; import org.testng.annotations.Test; -import java.util.Arrays; +import java.util.Collections; import java.util.HashSet; import java.util.Objects; import java.util.Set; @@ -114,7 +114,7 @@ public void heavySoldier() throws InvalidXmlElementException, public void nobility() throws InvalidXmlElementException, InvalidRandomElementSelectedException, RestrictedElementException { final CharacterPlayer characterPlayer = new CharacterPlayer(LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); - final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, new HashSet<>(Arrays.asList(RacePreferences.HUMAN)), + final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, new HashSet<>(Collections.singletonList(RacePreferences.HUMAN)), RandomProfileFactory.getInstance().getElement("nobility", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER)); randomizeCharacter.createCharacter(); Assert.assertEquals(characterPlayer.getFaction().getFactionGroup(), FactionGroup.NOBILITY); @@ -124,7 +124,7 @@ public void nobility() throws InvalidXmlElementException, public void clergy() throws InvalidXmlElementException, InvalidRandomElementSelectedException, RestrictedElementException { final CharacterPlayer characterPlayer = new CharacterPlayer(LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER); - final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, new HashSet<>(Arrays.asList(RacePreferences.HUMAN)), + final RandomizeCharacter randomizeCharacter = new RandomizeCharacter(characterPlayer, new HashSet<>(Collections.singletonList(RacePreferences.HUMAN)), RandomProfileFactory.getInstance().getElement("clergy", LANGUAGE, PathManager.DEFAULT_MODULE_FOLDER)); randomizeCharacter.createCharacter(); Assert.assertEquals(characterPlayer.getFaction().getFactionGroup(), FactionGroup.CHURCH); @@ -162,14 +162,14 @@ public void old() throws DuplicatedPreferenceException, InvalidXmlElementExcepti @Test public void mergingPreferences() { - Set originalPreferences = Stream.of(CombatPreferences.PEACEFUL, AgePreferences.ADULT) + Set> originalPreferences = Stream.of(CombatPreferences.PEACEFUL, AgePreferences.ADULT) .collect(Collectors.toCollection(HashSet::new)); - Set newPreferences = Stream.of(CombatPreferences.BELLIGERENT, BlessingPreferences.APPEARANCE) + Set> newPreferences = Stream.of(CombatPreferences.BELLIGERENT, BlessingPreferences.APPEARANCE) .collect(Collectors.toCollection(HashSet::new)); PredefinedMerger.mergePreferences(originalPreferences, newPreferences); Assert.assertEquals(originalPreferences.size(), 3); boolean found = false; - for (IRandomPreference preference : originalPreferences) { + for (IRandomPreference preference : originalPreferences) { if (Objects.equals(preference.getClass().getName(), CombatPreferences.class.getName())) { Assert.assertEquals(preference, CombatPreferences.FAIR); found = true; @@ -180,14 +180,14 @@ public void mergingPreferences() { @Test public void mergingPreferencesRounded() { - Set originalPreferences = Stream.of(AgePreferences.CHILD) + Set> originalPreferences = Stream.of(AgePreferences.CHILD) .collect(Collectors.toCollection(HashSet::new)); - Set newPreferences = Stream.of(AgePreferences.VERY_OLD) + Set> newPreferences = Stream.of(AgePreferences.VERY_OLD) .collect(Collectors.toCollection(HashSet::new)); PredefinedMerger.mergePreferences(originalPreferences, newPreferences); Assert.assertEquals(originalPreferences.size(), 1); boolean found = false; - for (IRandomPreference preference : originalPreferences) { + for (IRandomPreference preference : originalPreferences) { if (Objects.equals(preference.getClass().getName(), AgePreferences.class.getName())) { Assert.assertEquals(preference, AgePreferences.ADULT); found = true;