public override void OnResponse(NetState state, RelayInfo info) { if (GuildGump.BadLeader(m_Mobile, m_Guild)) { return; } GuildType newType = m_Guild.Type; //GuildType.Regular; IOBAlignment newIOBType = m_Guild.IOBAlignment; //IOBAlignment.None; switch (info.ButtonID) { default: break; //return; // Close case 1: newType = GuildType.Regular; break; case 2: newType = GuildType.Order; break; case 3: newType = GuildType.Chaos; break; case 5: newIOBType = IOBAlignment.Brigand; break; case 6: newIOBType = IOBAlignment.Council; break; case 7: newIOBType = IOBAlignment.Good; break; case 8: newIOBType = IOBAlignment.Orcish; break; case 9: newIOBType = IOBAlignment.Pirate; break; case 10: newIOBType = IOBAlignment.Savage; break; case 11: newIOBType = IOBAlignment.Undead; break; case 12: newIOBType = IOBAlignment.None; break; } if (m_Guild.IOBAlignment != newIOBType && CanChangeKin() == false) { m_Mobile.SendMessage("Guild Kin Alignment change is currently disabled."); return; } if ((m_Guild.Type != newType || m_Guild.IOBAlignment != newIOBType) && m_Guild.TypeLastChange.AddDays(7) > DateTime.Now) { m_Mobile.SendMessage("You can only change your alignment once every 7 days."); } else { if (m_Guild.Type != newType) { //Changing Order/Chaos //Check that Order/Chaos guilds aren't allied if (newType != GuildType.Regular) //we only care if there changeing to a differnt special type { ArrayList Allies = m_Guild.Allies; for (int i = 0; i < Allies.Count; ++i) { Guild g = (Guild)Allies[i]; if (g.Type != GuildType.Regular && g.Type != newType) { m_Mobile.SendMessage("Break any alliances with opposing guild types first"); return; } } } //Change the Guild! m_Guild.Type = newType; m_Guild.GuildMessage(1018022, newType.ToString()); // Guild Message: Your guild type has changed: } else if (m_Guild.IOBAlignment != newIOBType) { //Changing KIN //Check that different IOB types aren't allied if (newIOBType != IOBAlignment.None) { ArrayList Allies = m_Guild.Allies; for (int i = 0; i < Allies.Count; ++i) { Guild g = (Guild)Allies[i]; if (g.IOBAlignment != IOBAlignment.None && g.IOBAlignment != newIOBType) { m_Mobile.SendMessage("Break any alliances with opposing guild types first"); return; } } } //Change the Guild! m_Guild.IOBAlignment = newIOBType; if (m_Guild.IOBAlignment != IOBAlignment.None) { m_Guild.GuildMessage("Your guild is now allied with the " + this.TranslateIOBName(newIOBType)); } else { m_Guild.GuildMessage("Your guild has broken its kin alignment, it is now unaligned."); } } else { m_Mobile.SendMessage("You have not changed your alignment."); } } GuildGump.EnsureClosed(m_Mobile); m_Mobile.SendGump(new GuildmasterGump(m_Mobile, m_Guild)); }