public void RemoveShaman(string shamanId, string actingPlayer) { if (ChiefTain != actingPlayer) { throw new ValidationException("Only Chieftain can manage Shamans"); } Shamans.Remove(shamanId); Members.Add(shamanId); }
public void SwitchChieftain(string newChieftain, string actingPlayer) { if (ChiefTain != actingPlayer) { throw new ValidationException("Only Chieftain can switch to new Chieftain"); } if (!Shamans.Contains(newChieftain)) { throw new ValidationException("Only Shaman can be promoted to Chieftain"); } Shamans.Remove(newChieftain); Shamans.Add(ChiefTain); ClanState.ChiefTain = newChieftain; }
public void KickPlayer(ClanMembership clanMemberShip, string actingPlayer) { if (ChiefTain != actingPlayer && !Shamans.Contains(actingPlayer)) { throw new ValidationException("Only Chieftain or shamans can kick players"); } if (!Members.Contains(clanMemberShip.BattleTag) && !Shamans.Contains(clanMemberShip.BattleTag)) { throw new ValidationException("Player not in this clan"); } if (clanMemberShip.BattleTag == ChiefTain) { throw new ValidationException("Can not kick chieftain"); } clanMemberShip.LeaveClan(); Members.Remove(clanMemberShip.BattleTag); Shamans.Remove(clanMemberShip.BattleTag); }