@Override
public void showChatWindow(Player player, int val, Object... args) {
int npcId = getTemplate().npcId;
String html = "seven_signs/";
SevenSigns ssq = SevenSigns.getInstance();
int avariceOwner = ssq.getSealOwner(SevenSigns.SEAL_AVARICE); // seal 1
int gnosisOwner = ssq.getSealOwner(SevenSigns.SEAL_GNOSIS); // seal 2
int playerCabal = ssq.getPlayerCabal(player); // 0 = none, 1 = Dusk, 2 = Dawn
boolean isSealValidation = ssq.isSealValidationPeriod();
int winningCabal = ssq.getCabalHighestScore(); // 0 = tie, 1 = Dusk, 2 = Dawn
switch (npcId) {
// ------------------------------
// Dawn priests
// ------------------------------
case 31078:
case 31079:
case 31080:
case 31081:
case 31082:
case 31083:
case 31084:
case 31168:
case 31692:
case 31694:
case 31997: {
switch (playerCabal) {
// Гравець зареєстрований за Dusk
case SevenSigns.CABAL_DUSK -> {
if (isSealValidation) {
html += "dawn_priest_3b.htm";
} else {
html += "dawn_priest_3a.htm";
}
}
// Гравець зареєстрований за Dawn
case SevenSigns.CABAL_DAWN -> {
if (isSealValidation) {
if (winningCabal == SevenSigns.CABAL_DAWN) {
// Dawn виграли, але перевіряється ще й власник Seal of Gnosis
if (winningCabal != gnosisOwner) {
html += "dawn_priest_2c.htm";
} else {
html += "dawn_priest_2a.htm";
}
} else {
html += "dawn_priest_2b.htm";
}
} else {
html += "dawn_priest_1b.htm";
}
}
// Гравець не зареєстрований (cabal = 0)
default -> {
if (isSealValidation) {
if (winningCabal == SevenSigns.CABAL_DAWN) {
html += "dawn_priest_4.htm";
} else {
html += "dawn_priest_2b.htm";
}
} else {
html += "dawn_priest_1a.htm";
}
}
}
break;
}
// ------------------------------
// Dusk priests
// ------------------------------
case 31085:
case 31086:
case 31087:
case 31088:
case 31089:
case 31090:
case 31091:
case 31169:
case 31693:
case 31695:
case 31998: {
switch (playerCabal) {
// Гравець зареєстрований за Dusk
case SevenSigns.CABAL_DUSK -> {
if (isSealValidation) {
if (winningCabal == SevenSigns.CABAL_DUSK) {
// Dusk виграли, перевіряється власник Gnosis
if (winningCabal != gnosisOwner) {
html += "dusk_priest_2c.htm";
} else {
html += "dusk_priest_2a.htm";
}
} else {
html += "dusk_priest_2b.htm";
}
} else {
html += "dusk_priest_1b.htm";
}
}
// Гравець зареєстрований за Dawn
case SevenSigns.CABAL_DAWN -> {
if (isSealValidation) {
html += "dusk_priest_3b.htm";
} else {
html += "dusk_priest_3a.htm";
}
}
// Не зареєстрований
default -> {
if (isSealValidation) {
if (winningCabal == SevenSigns.CABAL_DUSK) {
html += "dusk_priest_4.htm";
} else {
html += "dusk_priest_2b.htm";
}
} else {
html += "dusk_priest_1a.htm";
}
}
}
break;
}
// ------------------------------
// Black Market Trader
// ------------------------------
case 31092: {
html += "blkmrkt_1.htm";
break;
}
// ------------------------------
// Merchant of Mammon (31113)
// ------------------------------
case 31113: {
if (!player.isGM()) {
switch (winningCabal) {
case SevenSigns.CABAL_DUSK -> {
// Dusk перемогли:
// доступ до маммона тільки якщо:
// - гравець у Dusk
// - і Dusk володіють Seal of Avarice
// if (playerCabal != winningCabal || playerCabal != avariceOwner) {
// Фікснув,що б не перевіряв печатку
if (playerCabal != winningCabal) {
html += "mammmerch_2.htm"; // відмова
player.sendPacket(new NpcHtmlMessage(player, this, html, val));
return;
}
}
case SevenSigns.CABAL_DAWN -> {
// if (playerCabal != winningCabal || playerCabal != avariceOwner) {
if (playerCabal != winningCabal) {
html += "mammmerch_2.htm"; // відмова
player.sendPacket(new NpcHtmlMessage(player, this, html, val));
return;
}
}
}
}
html += "mammmerch_1.htm";
break;
}
// ------------------------------
// Blacksmith of Mammon (31126)
// ------------------------------
case 31126: {
if (!player.isGM()) {
switch (winningCabal) {
case SevenSigns.CABAL_DUSK -> {
// if (playerCabal != winningCabal || playerCabal != gnosisOwner) {
if (playerCabal != winningCabal ) {
html += "mammblack_2.htm"; // відмова
player.sendPacket(new NpcHtmlMessage(player, this, html, val));
return;
}
}
case SevenSigns.CABAL_DAWN -> {
// if (playerCabal != winningCabal || playerCabal != gnosisOwner) {
if (playerCabal != winningCabal) {
html += "mammblack_2.htm"; // відмова
player.sendPacket(new NpcHtmlMessage(player, this, html, val));
return;
}
}
}
}
// GM або пройшли перевірки
html += "mammblack_1.htm";
break;
}
// ------------------------------
// Інші NPC – стандартний шлях
// ------------------------------
default: {
html = getHtmlPath(npcId, val, player);
break;
}
}
player.sendPacket(new NpcHtmlMessage(player, this, html, val));
}