Updates to Mythic UI and bonus-enchantments

This commit is contained in:
2024-07-17 23:14:40 -04:00
parent 241bbce5d2
commit cbafc77e39
6 changed files with 33 additions and 17 deletions

View File

@@ -321,7 +321,7 @@ export class ItemDetails {
return false;
}
const defStats = [1,7,12, 13, 14, 15, 22, 23, 24, 25, 26, 27, 48];
const defStats = [1,12, 13, 14, 15, 22, 23, 24, 25, 26, 27, 48];
for (let i = 1; i <= 8; i++) {
let statType = stats[`stat_type${i}`] ? <number>stats[`stat_type${i}`] : 0;

View File

@@ -79,7 +79,7 @@ const XPBonus: player_event_on_give_xp = (event: number, player: Player, amount:
const xpRate = xpRateCache.get(player.GetGUIDLow());
if(xpRate && xpRate > 1) {
player.GiveXP(amount * xpRate);
// player.GiveXP(amount * xpRate);
}
}

View File

@@ -40,7 +40,7 @@ function RollLootTrap(object: GameObject) {
LootTrapMap[object.GetGUIDLow()] = false;
return;
} else if(roll > 79) {
object.AddLoot(45878, 1); // Large Sack of Uldaur Spoils 3%
object.AddLoot(43347, 1); // Large Sack of Uldaur Spoils 3%
LootTrapMap[object.GetGUIDLow()] = false;
return;
} else if(roll > 67) {
@@ -68,6 +68,8 @@ function RollLootTrap(object: GameObject) {
const onKillCreature: player_event_on_kill_creature = (event: number, killer: Player, killed: Creature) => {
const map: EMap = killed.GetMap();
return false;
if(!map.IsDungeon() && !map.IsRaid()) {
return false;
}
@@ -82,7 +84,7 @@ const onKillCreature: player_event_on_kill_creature = (event: number, killer: Pl
const [x,y,z,o] = killed.GetLocation();
let roll = Math.floor(Math.random() * 100);
if(roll > 8) {
if(roll > 4) {
return;
}

View File

@@ -31,4 +31,4 @@ const LootToken: player_event_on_loot_item = (event: number, player: Player, ite
}
RegisterPlayerEvent(PlayerEvents.PLAYER_EVENT_ON_LOOT_ITEM, (...args) => LootToken(...args));
RegisterPlayerEvent(PlayerEvents.PLAYER_EVENT_ON_LOOT_ITEM, (...args) => LootToken(...args));

View File

@@ -8,6 +8,18 @@ function randomInteger(min: number, max: number) {
function getEnchant(stat: string, min: number, max: number) {
if(stat.includes("Dodge Rating")) {
min = 5;
max = 20;
}
if(stat.includes("Hit Rating")) {
if (max > 50) {
max = 50;
}
}
const sql = `
SELECT ID
FROM acore_world.spellitemenchantment_dbc
@@ -19,7 +31,9 @@ function getEnchant(stat: string, min: number, max: number) {
const query = WorldDBQuery(sql);
if(!query) {
PrintError("Query Failed: ", sql );
PrintError("BonusEnchantment/getEnchantment - Failed to get enchantment for stat: " + stat);
print(sql);
return null;
}
@@ -139,20 +153,20 @@ function rollEnchant(item: Item, highStats: boolean): number[] {
}
if (highStats) {
enchantId = getEnchant(primary, 30, 150);
enchantId = getEnchant(primary, 10, 120);
} else {
enchantId = getEnchant(primary, 10, 30);
enchantId = getEnchant(primary, 5, 40);
}
if(secondary.includes("Resist")) {
if(highStats) {
secEnchantId = getEnchant(secondary, 50, 100);
secEnchantId = getEnchant(secondary, 20, 70);
} else {
secEnchantId = getEnchant(secondary, 34, 44);
secEnchantId = getEnchant(secondary, 10, 38);
}
} else {
secEnchantId = getEnchant(secondary, 5, 45);
secEnchantId = getEnchant(secondary, 5, 40);
}
return [enchantId, secEnchantId];
@@ -166,9 +180,9 @@ RegisterPlayerEvent(PlayerEvents.PLAYER_EVENT_ON_LOOT_ITEM, (event, player, item
return;
}
// if (item.GetEntry() < SCALED_ITEMS_START) {
// return;
// }
if (item.GetEntry() < SCALED_ITEMS_START) {
return;
}
if (itemCls !== 2 && itemCls !== 4) {
return;

View File

@@ -89,7 +89,7 @@ const TokenKillEvent: player_event_on_kill_creature = (event: number, player: Pl
// Group Drop Rates
if(creature.IsWorldBoss() || creature.IsDungeonBoss()) {
rollModifer += 300;
rollModifer += 100;
} else {
if(creature.IsElite()) {
rollModifer = rollModifer + 30;
@@ -97,7 +97,7 @@ const TokenKillEvent: player_event_on_kill_creature = (event: number, player: Pl
}
if(map.IsRaid() || map.IsHeroic()) {
rollModifer = rollModifer + (20 * groupCount);
rollModifer = rollModifer + (8 * groupCount);
} else {
if(map.IsDungeon()) {
rollModifer = rollModifer + (4 * groupCount);
@@ -123,7 +123,7 @@ const TokenKillEvent: player_event_on_kill_creature = (event: number, player: Pl
if(groupCount >= TOKEN_GROUP_SIZE) {
if(creature.IsWorldBoss() || creature.IsDungeonBoss()) {
roll = Math.floor(Math.random() * TOKEN_ROLL_CAP);
if(roll <= rollModifer+200 ) {
if(roll <= rollModifer+100 ) {
createChest(player, creature,'right');
}
}