示例#1
0
        private void ServerRemote_LeaderSetOfficerRoleTitle(
            FactionMemberRole role,
            FactionOfficerRoleTitle roleTitle)
        {
            var leaderCharacter = ServerRemoteContext.Character;

            ServerValidateHasAccessRights(leaderCharacter,
                                          FactionMemberAccessRights.Leader,
                                          out var faction);
            SharedValidateIsOfficerRole(role);

            var binding = Faction.GetPrivateState(faction).OfficerRoleTitleBinding;

            if (binding.TryGetValue(role, out var currentRoleTitle) &&
                currentRoleTitle == roleTitle)
            {
                return;
            }

            binding[role] = roleTitle;
            ServerAddLogEntry(faction,
                              new FactionLogEntryRoleRenamed(byOfficer: leaderCharacter,
                                                             previousRoleTitle: currentRoleTitle,
                                                             newRoleTitle: roleTitle));

            Logger.Important($"Officer role title changed: {role} -> {roleTitle}");
        }
示例#2
0
 public FactionLogEntryRoleRenamed(
     ICharacter byOfficer,
     FactionOfficerRoleTitle previousRoleTitle,
     FactionOfficerRoleTitle newRoleTitle)
     : base(byOfficer)
 {
     this.PreviousRoleTitle = previousRoleTitle;
     this.NewRoleTitle      = newRoleTitle;
 }
示例#3
0
 public FactionLogEntryRoleAccessRightsChanged(
     ICharacter byOfficer,
     FactionOfficerRoleTitle roleTitle,
     FactionMemberAccessRights newAccessRights)
     : base(byOfficer)
 {
     this.RoleTitle       = roleTitle;
     this.NewAccessRights = newAccessRights;
 }
示例#4
0
        public ViewModelFactionRoleTitleEditor(
            FactionMemberRole factionMemberRole,
            FactionOfficerRoleTitle selectedTitle,
            Action selectedTitleChanged)
        {
            this.AllTitles = EnumHelper.EnumValuesToViewModel <FactionOfficerRoleTitle>()
                             .OrderBy(e => e.Description, StringComparer.OrdinalIgnoreCase)
                             .ToArray();

            this.FactionMemberRole    = factionMemberRole;
            this.selectedTitle        = selectedTitle;
            this.selectedTitleChanged = selectedTitleChanged;
        }
示例#5
0
        public static void ClientLeaderSetOfficerRoleTitle(
            FactionMemberRole role,
            FactionOfficerRoleTitle roleTitle)
        {
            ClientValidateHasAccessRights(FactionMemberAccessRights.Leader);
            SharedValidateIsOfficerRole(role);

            var binding = Faction.GetPrivateState(ClientCurrentFaction).OfficerRoleTitleBinding;

            if (binding.TryGetValue(role, out var currentRoleTitle) &&
                currentRoleTitle == roleTitle)
            {
                return;
            }

            Instance.CallServer(
                _ => _.ServerRemote_LeaderSetOfficerRoleTitle(role, roleTitle));
            Logger.Important($"Officer role title changed: {role} -> {roleTitle}");
        }
示例#6
0
 private void ViewModelSelectedTitleChangedHandler()
 {
     this.title = this.viewModel.SelectedTitle;
     this.SelectedTitleChanged?.Invoke(this);
 }
示例#7
0
 public FactionRoleTitleEditor(FactionMemberRole role, FactionOfficerRoleTitle title)
 {
     this.role  = role;
     this.title = title;
 }