-
Notifications
You must be signed in to change notification settings - Fork 176
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added Negotiation and Scrounge Skill Settings for Administrator Personnel #4093
Added Negotiation and Scrounge Skill Settings for Administrator Personnel #4093
Conversation
This update introduces an Education Menu in the PersonnelTableMouseAdapter that provides options for both Civilian and Military training courses. While the actual calculations for duration and fees are yet to be implemented, the menu scaffolding and the GUI properties for each course type have been added. The new feature is wrapped in a condition to check if it is enabled.
This commit introduces new classes for different types of academies under the "education" package. It also includes the EducationController to handle education related actions. The PersonnelTableMouseAdapter has been modified to use the new EducationController when action listeners for academy-based education options are triggered.
Added new properties in the Person class to track education related details. These include the number of days of travel to/from the academy, the academy's planet, and the total days of education. Getter, setter and XML handling methods have also been added for these new properties.
…d GUI elements This commit introduces the introduction of a new 'Student' PersonnelStatus, a corresponding 'Education' financial TransactionType, new log entries for starting and ending education, and updates to various GUI elements to include student-related actions. Additionally, a new class 'LocalAcademy' has been introduced to handle the 'Local Academy' education system.
Refactored the education system by consolidating multiple academy classes into a single Academy class. Introduced a new AcademyFactory class for generating academy blueprints from XML sources. Updated service logging to include detailed enrolment, graduation, and failure logs for education.
The Academy class has been adjusted to define default values, and the naming of 'curriculumStartYears' is updated to 'qualificationStartYears'. The logic surrounding checking for academy availability and courses offerings in PersonnelTableMouseAdapter has been improved. Additionally, the EducationController class has been refactored. Changes have also been applied to GUI.properties removing unused resources and adding new ones.
Extended the Academy class to include whether an academy is local, as well as its military status. Updated the UI to reflect these changes and enable users to select between civilian or military academies.
This update corrects the Academy name comparison in the EducationController by ensuring the Academy name is properly retrieved before comparison. This change eliminates potential bugs created by directly comparing the string value of an Academy object with the desired Academy name.
The Academy class has been updated to include faction-related information. This includes a faction association, faction discount, and a flag for whether the academy is faction-restricted. The application processing has been expanded to consider this new faction information as well. The skill level has been renamed to base skill level. Relevant tooltips and error messages have been added.
The faction property in the Academy class has been renamed to academyFaction for clarity, and the associated functionality has been updated accordingly. A new acceptingApplicants method has been introduced to determine if a faction member is acceptable for the academy. Additionally, adjusted test cases and UI to reflect these changes. This change allows for better management of academy and faction relationships.
In PersonnelTableMouseAdapter, the string placeholder "0" from the "eduFactionRejected.text" message has been replaced with the person's first name for a more personalized message. Additionally, the message in GUI.properties for "eduNoQualificationsOffered.text" has been reworded to improve clarity.
Updated the `AcademyFactory` to use final Map and removed some unnecessary comments. In `Person.java`, rearranged code and added methods related to academy education. Added logic to start the process of education for a person in the `EducationController`. Unified the logic for enrollment, graduation and bonus awarding for each student. Additionally, course curriculum skill bonuses were incorporated into the education process. Major updates in Education.properties for better academy experience.
Optimized the academy assignment by accessing it directly from the Person object, eliminating redundant academy selection processes. Changed function signatures to remove unnecessary parameters, adjusted related calls accordingly. Added `getAcademy` method to fetch academy related to the enrolled person effectively, improving code readability and enhancing maintainability.
Academy destruction and war breakout events have been added to the education system, affecting the characters' progress. The academy destruction event can potentially kill a character, while a war event can either delay or completely stop their education. Relevant cleaning actions on character's data and appropriate status updates have also been included.
Enhanced the ServiceLogger with methods to log Clan-based education events such as The Blooding and adding specific cases for Trial of Position failures. Also added boolean flags to differentiate institutions as Clan academy or a Prep School. Next, expanded the Academy constructor to include flags for Clan and Prep School. Updated related logic in the EducationController to support Clan education and Prep Schools.
A new tab, 'Life Paths', has been added to the Campaign Options screen. The Personnel panel's contents have been reorganized, moving the randomization, retirement, family, marriage, divorce, procreation, and death panels into the newly created Life Paths panel. The modifications aim to enhance user navigation and organization of the GUI.
The campaign options pane has been reconfigured for better organization. The 'Death Panel' and 'Procreation Panel' have been swapped, and the 'Family Panel' has been widened to improve the user interface and navigation.
The commit streamlines the academy travel calculations process by LY distance instead of Jump count. The layout of the campaign options pane has been restructured for better organization. Changes are also implemented in some property text in Education.properties.
The label `lblWarriorCasteFallbackCastes` has been removed from `CampaignOptionsPane.java`.
Rearranged relevant campaign options in CampaignOptions.java to the Life Paths tab. Implemented new Campaign Options needed by Education Module.
Updated the CampaignOptionsPane.java file to enable the 'chkLiveFireBlooding' button dynamically based on certain conditions. Meanwhile, text changes were made in the CampaignOptionsDialog.properties file to improve clarity, including modifying 'Academy Set' to 'Academies' and 'Die Size' to 'Die Sides.'
Added support for campus-based faction conflict handling in the academy education system, and included the ability to close academies. Added checks for faction conflicts and improved tuition payment handling. Improved maintainability by streamlining academy properties and removing redundant methods. Adjusted associated strings and GUI elements to reflect changes.
This commit introduces the AcademyTests class for unit testing the Academy class methods while also updating default variables in the Academy class. It adds missing default values in the Academy class to ensure no null returns for any fields. The method for calculating travel distance has also been slightly refactored for more efficient performance.
…entries The academy and education systems have been refactored to improve their functionality and efficiency. This update includes the removal of unnecessary academy files, updating the academy XML data, adding new education entries, and updating related tests. Code related to processing academy tuition and the enrolment process was fine-tuned for improved performance.
…logic Modified the getSimplifiedTravelTime function to be non-static and use the current campaign object instead of passing it as an argument. Refactored the getAcademy method in EducationController to accept two parameters - academySetName and academyNameInSet. Enhancements were made to the generateName method to account for local and Clan academy types. Also, fixed values in Education.properties.
Updated academy application conditions in the MekHQ education system, checking whether the campaign's faction has access to Sibkos, and if the applicant is within the right age bracket and is qualified. Also, changed the curriculum of the warrant officer academy from 'Leadership, Negotiation' to 'Leadership, Administration' and lowered the education level requirement for the officer academy.
The commit revises various properties within the Academy class, with modifications in facultySkill, ageMax, baseAcademicSkillLevel and more. This also includes extensive updates related to academy and course definitions within XML files, such as tweaks to baseAcademicSkillLevel, tuition, updated facultySkill level.
Updated the Academy class to include a 'promotion' field that indicates the rank a student receives upon course completion. The new field has been integrated into all relevant methods, including getters, setters, constructors, and any Academy logic that interacts with promotions. Academy data has been updated to reflect new promotions fields.
Several academies' details were updated, such as tuition changes and curriculum. Also, a considerable number of new academies were added.
Several academies' details were updated, such as tuition changes and curriculum. Also, a considerable number of new academies were added.
Reduced maximum jump count from 20 to 5 and corrected several misspellings and improper configurations in academy data. Set Clan fallback location to Strana Mechty.
This commit substantially refactors and expands the unittests for the Academy class in the MekHQ project. Many new tests have been added to cover additional functionality and edge cases in the Academy class.
…emy description This commit corrects a typo in the description of Armstrong Phoenix Academy and corrects the construction year of the mentioned academy to 3070.
…tion The unnecessary import statement 'mekhq.utilities.MHQXMLUtility' has been removed, and 'mekhq.campaign.universe.PlanetarySystem' has been relocated for better structure and clarity in the import section of the Person.java file. The order of import statements now aligns better with the coding conventions.
Changed the text for insufficient funds from "Insufficient funds to cover 0's tuition." to "Not enough funds to cover 0's tuition." and updated the possibility of war interruption in education from the academy faction conflict check, now the person in question is always expelled in case of conflict.
This commit refactors the Academy class, adjusting the durationDays value and handling the faction restrictions logic. It also includes fixes for spelling inconsistencies in the Education properties, notably changing 'Labour' to 'Labor'. The graduation weight description for different clan texts has been enhanced. Furthermore, the major code redundancy in the EducationController has been removed with the 'improveSkills' function call now excluded from caste methods. Lastly, documentation has been added.
Added new features to enable negotiation and scrounging skills for administrator personnel. This allows for admins to generate with these skills and also to include these skills in their experience level calculations. Modifications were made in the personnel's skill generation and in the campaign options.
Also picked up conflicts. |
Merged This resulted from a misunderstanding of how branching from a branch works. I thought it would dynamically replicate changes made in the parent branch to all child branches. Instead, it creates a snapshot of the the parent branch when the child branch is created. This means that there will be a lot of repeat commits in both this branch, and the eventual |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
MegaMek + Fix 5476: Update SV armor slots to 2 or 1 for Rating E or F respectively MegaMekLab + Fix ##1514: Fix Atrocious table shading render speed MekHQ + PR #4106: Use tabs in customize scenario dialog + PR #4105: Updated Post-Scenario Logging for Prisoners + PR #4104: Fixed Post-Scenario Tracking System's Handling of Multiple Personnel in autoAwards + PR #4102: Fixed Award Tier Count Calculations in PersonViewPanel + PR #4093: Added Negotiation and Scrounge Skill Settings for Administrator Personnel + PR #4054: Added Life Paths Campaign Options Tab, Added Education Module Very Important to read the documentation on this feature (See Docs folder)
Description:
This PR introduces new features to enhance the capabilities of administrator personnel by enabling them to optionally generate with the Negotiation and Scrounge skills. These features include the option to generate administrators with these skills and to factor these skills into their experience level calculations.
Changes Include:
Negotiation Skill for Administrators:
Scrounging Skill for Administrators:
Experience Level Calculations:
Implementation Details:
Related Issue:
Testing: