Advertisement
Guest User

Untitled

a guest
Oct 21st, 2021
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Guild
  7. {
  8. public class Guild
  9. {
  10. private List<Player> roster;
  11.  
  12. public Guild(string name, int capacity)
  13. {
  14. Name = name;
  15. Capacity = capacity;
  16. roster = new List<Player>();
  17. }
  18.  
  19. public string Name { get; set; }
  20. public int Capacity { get; set; }
  21. public int Count => roster.Count;
  22.  
  23. public void AddPlayer(Player player)
  24. {
  25. if (roster.Count <= Capacity)
  26. {
  27. roster.Add(player);
  28. }
  29. }
  30. public bool RemovePlayer(string name)
  31. {
  32. var findPlayer = roster.FirstOrDefault(x => x.Name == name);
  33.  
  34. if (findPlayer != null)
  35. {
  36. roster.Remove(findPlayer);
  37. return true;
  38. }
  39. return false;
  40. }
  41. public void PromotePlayer(string name)
  42. {
  43. var findPlayer = roster.FirstOrDefault(x => x.Name == name);
  44.  
  45. if (findPlayer.Rank != "Member" && findPlayer != null)
  46. {
  47. findPlayer.Rank = "Member";
  48. }
  49.  
  50. }
  51. public void DemotePlayer(string name)
  52. {
  53. var findPlayer = roster.FirstOrDefault(x => x.Name == name);
  54.  
  55. if (findPlayer.Rank != "Trial" && findPlayer != null)
  56. {
  57. findPlayer.Rank = "Trial";
  58. }
  59. }
  60. public Player[] KickPlayersByClass(string @class)
  61. {
  62. var array = new List<Player>();
  63.  
  64. foreach (var player in roster)
  65. {
  66. if (player.Class == @class)
  67. {
  68. array.Add(player);
  69. }
  70. }
  71. roster.RemoveAll(x => x.Class == @class);
  72.  
  73. return array.ToArray();
  74. }
  75. public string Report()
  76. {
  77. StringBuilder builder = new StringBuilder();
  78.  
  79. builder.AppendLine($"Players in the guild: {Name}");
  80. foreach (var player in roster)
  81. {
  82. builder.AppendLine(player.ToString());
  83. }
  84.  
  85. return builder.ToString().TrimEnd();
  86. }
  87. }
  88. }
  89.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement