IPartyController - jimdroberts/FishMMO GitHub Wiki
Interface for controllers managing party membership, invites, and rank for a character. Used to define the contract for party management in FishMMO.
-
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).
-
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.
- Implement the
IPartyController
interface in your party controller class. - Handle the events to manage party creation, invites, membership, and rank changes.
- Assign and manage the
ID
andRank
properties in your implementation.
// 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
}
- Use the events to decouple party logic from UI and gameplay systems.
- Always update the
ID
andRank
properties to reflect the current party state. - Implement the interface to ensure consistent party management across different character types.