Skip to content
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

Allow players to submit applications to join factions #1544

Open
8 of 59 tasks
sujyrokimora opened this issue Oct 17, 2022 · 0 comments · May be fixed by #1814
Open
8 of 59 tasks

Allow players to submit applications to join factions #1544

sujyrokimora opened this issue Oct 17, 2022 · 0 comments · May be fixed by #1814

Comments

@sujyrokimora
Copy link

sujyrokimora commented Oct 17, 2022

Original Request

Is your feature request related to a problem? Please describe.
No

Describe the solution you'd like
A nice thing to players choose a nation and the leaders of that nation can aprove it or not

Describe alternatives you've considered
A gui that new players see all the nations with detailed information and click to submit the application

Work Item

Description

Implement a system to allow players to apply to join a faction, with faction leaders having the ability to review, approve, or deny applications. This feature enhances player interaction and engagement by formalizing the process of joining factions through an application and approval mechanism.

Requirements

Faction Application Structure

  • Goal: Design a structure to manage player applications for factions.
  • Task: Update the faction database schema to include application data.

Application Lifecycle

  1. View and Submit

    • Players can view available factions.
    • Players can submit applications to join factions.
  2. Cancel

    • Players can cancel their pending applications.
  3. Review

    • Faction leaders can view and manage a list of submitted applications.
  4. Approve or Deny

    • Faction leaders can approve or deny applications.
    • If approved, the applicant becomes a faction member.

Application Handling Logic

  • Automatically cancel all other pending applications for a player in the following scenarios:
    • Their application is approved.
    • They accept a faction invitation.
    • An operator forcibly assigns them to a faction.

Faction Permissions

Introduce permissions to control which faction members can approve or deny applications.

Localization and Commands

  • Add new language strings for all supported languages.
  • Update the help command to include new commands related to applications.

Acceptance Criteria

  • Create faction application structure
  • Add list of applications to factions structure
  • Create database migration to update faction table
  • Allow players to list applications to their faction
  • Allow players to apply to factions
  • Allow players to cancel their application to a faction
  • Allow players to approve apps causing the applicant to join their faction
  • Allow players to deny apps
  • Cancel all existing apps for a player in the following circumstances:
    • when a player's app gets accepted
    • when a player accepts a faction invite
    • when operator forces them to join a faction
    • when a player creates a faction
    • when a player is given leadership of a faction
  • Add faction permissions for approving/denying apps
  • Add new language strings to all language files
  • Add new commands to output of help command
  • Functionality verified in-game
  • PR opened to merge changes into develop
  • changes merged into develop

In-Game Verification Checklist

To ensure the Faction Application System works as intended, the following functionalities must be verified in-game:

1. Applying to a Faction

  • Objective: Confirm that players can successfully submit applications to join a faction.
  • Verification Steps:
    • Navigate to the faction menu.
    • Select a faction and submit an application.
    • Ensure the application appears in the faction's pending application list.
    • Validate that the player cannot apply to the same faction multiple times.

2. Viewing Applications

  • Objective: Ensure that faction leaders can view and manage incoming applications.
  • Verification Steps:
    • Log in as a faction leader.
    • Open the application management interface.
    • Verify that all pending applications are listed, including details (player name, application date).
    • Check for sorting or filtering options, if available.

3. Approving an Application

  • Objective: Confirm that faction leaders can approve submitted applications.
  • Verification Steps:
    • Select a pending application.
    • Approve the application.
    • Verify that the player's application status changes to "approved."
    • Ensure the player is added to the faction member list.

4. Getting an Application Approved as the Applicant

  • Objective: Validate that an applicant is notified and successfully joins the faction after approval.
  • Verification Steps:
    • Submit an application as a player.
    • Have the application approved by the faction leader.
    • Check that the player receives a notification of approval.
    • Ensure the player gains faction membership and associated benefits (e.g., faction-specific perks, chat access).

5. Canceling an Application

  • Objective: Test that players can cancel their pending applications.
  • Verification Steps:
    • Submit an application to a faction.
    • Cancel the application through the application management interface.
    • Verify that the application is removed from the faction’s pending list.
    • Ensure the player can reapply to the same or different faction.

6. Automatic Cancellation of Other Applications

  • Objective: Verify the logic for automatic cancellation of other pending applications.
  • Verification Scenarios:
    • Scenario 1: Application Approved
      • Submit applications to multiple factions.
      • Have one application approved.
      • Confirm that all other pending applications are automatically canceled.
    • Scenario 2: Faction Invitation Accepted
      • Submit applications to multiple factions.
      • Accept an invitation to one faction.
      • Verify that all pending applications are canceled.
    • Scenario 3: Operator Assignment
      • Submit applications to multiple factions.
      • Have an operator assign the player to a faction.
      • Check that all pending applications are automatically canceled.
    • Scenario 4: Create a New Faction
      • Submit applications to multiple factions.
      • Choose to create a new faction instead of joining an existing one.
      • Verify that all pending applications are canceled upon faction creation.
    • Scenario 5: Given Leadership of an Existing Faction
      • Submit applications to multiple factions.
      • Be offered leadership of an existing faction (direct assignment by an operator or faction admin).
      • Confirm that all pending applications are canceled automatically upon accepting leadership.

7. Error Handling

  • Objective: Confirm that the system handles errors gracefully.
  • Verification Steps:
    • Test submitting an application to a faction with a full member list.
    • Attempt to view applications as a non-leader.
    • Simulate server disruptions during submission, approval, or cancellation processes.
    • Ensure appropriate error messages are displayed and no data corruption occurs.
@renbinden renbinden added this to the 5.1.0 milestone Oct 26, 2022
@dmccoystephenson dmccoystephenson modified the milestones: 5.1.0, 5.2.0 Nov 27, 2022
@dmccoystephenson dmccoystephenson modified the milestones: 5.2.0, 5.3.0, 5.4.0 Mar 15, 2023
@dmccoystephenson dmccoystephenson modified the milestones: 5.4.0, 5.3.0 May 30, 2023
@dmccoystephenson dmccoystephenson modified the milestones: 5.3.0, 5.4.0 Dec 28, 2023
@dmccoystephenson dmccoystephenson self-assigned this Jul 3, 2024
@dmccoystephenson dmccoystephenson changed the title Feature Request--Allow players to submit applications to join factions Allow players to submit applications to join factions Jul 3, 2024
@dmccoystephenson dmccoystephenson pinned this issue Nov 18, 2024
@dmccoystephenson dmccoystephenson linked a pull request Nov 18, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants