IPartyController - jimdroberts/FishMMO GitHub Wiki

Description

Interface for controllers managing party membership, invites, and rank for a character. Used to define the contract for party management in FishMMO.


API Access

Properties

  • long ID { get; set; }

    The unique ID of the party or party member.

  • PartyRank Rank { get; set; }

    The rank of the character within the party (e.g., leader, member).

Events

  • event Action OnPartyCreated

    Event triggered when a party is created. Provides the party name.

  • event Action OnReceivePartyInvite

    Event triggered when a party invite is received. Provides the inviter's ID.

  • event Action<long, PartyRank, float> OnAddPartyMember

    Event triggered when a party member is added. Provides member ID, rank, and health percent.

  • event Action<HashSet> OnValidatePartyMembers

    Event triggered to validate the current set of party members.

  • event Action OnRemovePartyMember

    Event triggered when a party member is removed. Provides member ID.

  • event Action OnLeaveParty

    Event triggered when the character leaves the party.


Basic Usage

Setup

  1. Implement the IPartyController interface in your party controller class.
  2. Handle the events to manage party creation, invites, membership, and rank changes.
  3. Assign and manage the ID and Rank properties in your implementation.

Example

// Example 1: Implementing IPartyController in a custom party controller
public class CustomPartyController : MonoBehaviour, IPartyController
{
    public long ID { get; set; }
    public PartyRank Rank { get; set; }
    public event Action<string> OnPartyCreated;
    public event Action<long> OnReceivePartyInvite;
    public event Action<long, PartyRank, float> OnAddPartyMember;
    public event Action<HashSet<long>> OnValidatePartyMembers;
    public event Action<long> OnRemovePartyMember;
    public event Action OnLeaveParty;
    // Implement party management logic here
}

Best Practices

  • Use the events to decouple party logic from UI and gameplay systems.
  • Always update the ID and Rank properties to reflect the current party state.
  • Implement the interface to ensure consistent party management across different character types.
⚠️ **GitHub.com Fallback** ⚠️