Skip to content

Commit

Permalink
Update dungeons
Browse files Browse the repository at this point in the history
  • Loading branch information
Kathund committed Aug 8, 2024
1 parent d2ead1b commit 82b8765
Show file tree
Hide file tree
Showing 2 changed files with 104 additions and 47 deletions.
63 changes: 49 additions & 14 deletions src/structures/SkyBlock/SkyblockMember.js
Original file line number Diff line number Diff line change
Expand Up @@ -412,24 +412,17 @@ class SkyblockMember {
* @property {number} highest_wave_infernal
* @property {number} highest_wave_burning
*/
/**
* @typedef {object} SkyblockMemberDungeonsCatacombs
* @property {SkyblockSkillLevel} experience
* @property {Record<string, number>} completions
*/
/**
* @typedef {object} SkyblockMemberDungeonsMasterCatacombs
* @property {Record<string, number>} completions
*/
/**
* @typedef {object} SkyblockMemberDungeons
* @property {SkyblockMemberDungeonsTypes} types Dungeons types
* @property {SkyblockMemberDungeonsClasses} classes Dungeons classes
* @property {SkyblockSkillLevel} experience Dungeons Experience
* @property {number} secrets Amount of secrets found
* @property {SkyblockMemberDungeonsCompletions} completions Dungeon completions
* @property {SkyblockMemberDungeonsFloors} floors Dungeon Floor Stats
*/
/**
* @typedef {object} SkyblockMemberDungeonsTypes
* @property {SkyblockMemberDungeonsCatacombs} catacombs
* @property {SkyblockMemberDungeonsMasterCatacombs} masterCatacombs
* @typedef {object} SkyblockMemberDungeonsCompletions
* @property {Record<string, number>} catacombs
* @property {Record<string, number>} masterMode
*/
/**
* @typedef {object} SkyblockMemberDungeonsClasses
Expand All @@ -438,6 +431,48 @@ class SkyblockMember {
* @property {SkyblockSkillLevel} berserk Berserk class
* @property {SkyblockSkillLevel} archer Archer class
* @property {SkyblockSkillLevel} tank Tank class
* @property {string} selected Current Selected Class
*/
/**
* @typedef {object} SkyblockMemberDungeonsFloorRun
* @property {number} timestamp Timestamp
* @property {number} score_exploration Score Exploration
* @property {number} score_speed Score Speed
* @property {number} score_skill Score Skill
* @property {number} score_bonus Score Bonus
* @property {string} dungeon_class Dungeon Class
* @property {string[]} teammates Teammates
* @property {number} elapsed_time Elapsed Time
* @property {number} damage_dealt Damage Dealt
* @property {number} deaths Deaths
* @property {number} mobs_killed Mobs Killed
* @property {number} secrets_found Secrets Found
* @property {number} damage_mitigated Damage Mitigated
*/
/**
* @typedef {object} SkyblockMemberDungeonsFloor
* @property {SkyblockMemberDungeonsFloorRun} fastestRun Fastest Run
* @property {SkyblockMemberDungeonsFloorRun} fastestSRun Fastest S Run
* @property {SkyblockMemberDungeonsFloorRun} fastestSPlusRun Fastest S+ Run
* @property {number} completions Completions
*/
/**
* @typedef {object} SkyblockMemberDungeonsFloors
* @property {SkyblockMemberDungeonsFloor} entrance Entrance Stats
* @property {SkyblockMemberDungeonsFloor} floor1 Floor 1 Stats
* @property {SkyblockMemberDungeonsFloor} floor2 Floor 2 Stats
* @property {SkyblockMemberDungeonsFloor} floor3 Floor 3 Stats
* @property {SkyblockMemberDungeonsFloor} floor4 Floor 4 Stats
* @property {SkyblockMemberDungeonsFloor} floor5 Floor 5 Stats
* @property {SkyblockMemberDungeonsFloor} floor6 Floor 6 Stats
* @property {SkyblockMemberDungeonsFloor} floor7 Floor 7 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode1 Master Mode Floor 1 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode2 Master Mode Floor 2 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode3 Master Mode Floor 3 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode4 Master Mode Floor 4 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode5 Master Mode Floor 5 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode6 Master Mode Floor 6 Stats
* @property {SkyblockMemberDungeonsFloor} masterMode7 Master Mode Floor 7 Stats
*/
/**
* @typedef {object} SkyblockMemberStats
Expand Down
88 changes: 55 additions & 33 deletions src/utils/SkyblockUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ function getSlayer(data) {
};
}

function getKuudra(data) {
function getCrimson(data) {
if (!data?.kuudra_completed_tiers) return null;
return {
none: data.kuudra_completed_tiers?.none ?? 0,
Expand All @@ -298,41 +298,63 @@ function getCompletions(data) {
return completions;
}

function getDungeonsFloor(data, type, floor) {
return {
fastestRun: (data?.dungeons?.dungeon_types[type]?.best_runs[floor] ?? []).sort(
(a, b) => a?.elapsed_time - b?.elapsed_time
)[0],
fastestSRun: (data?.dungeons?.dungeon_types[type]?.best_runs[floor] ?? [])
.filter((run) => 270 >= run?.score_exploration + run?.score_speed + run?.score_skill + run?.score_bonus)
.sort((a, b) => a?.elapsed_time - b?.elapsed_time)[0],
fastestSPlusRun: (data?.dungeons?.dungeon_types[type]?.best_runs[floor] ?? [])
.filter((run) => 300 >= run?.score_exploration + run?.score_speed + run?.score_skill + run?.score_bonus)
.sort((a, b) => a?.elapsed_time - b?.elapsed_time)[0],
completions: data?.dungeonXp?.dungeon_types[type]?.tier_completions[floor] ?? 0
};
}

function getDungeons(data) {
return {
types: {
catacombs: {
experience: getLevelByXp(
data.dungeons?.dungeon_types?.catacombs ? data.dungeons.dungeon_types.catacombs.experience : null,
'dungeons'
),
completions: getCompletions(data.dungeons?.dungeon_types?.catacombs?.tier_completions)
},
masterCatacombs: {
completions: getCompletions(data.dungeons?.dungeon_types?.master_catacombs?.tier_completions)
}
experience: getLevelByXp(data?.dungeons?.dungeon_types?.catacombs?.experience ?? 0, 'dungeons'),
secrets: data?.dungeons?.secrets ?? 0,
completions: {
catacombs: getCompletions(data?.dungeons?.dungeon_types?.catacombs?.tier_completions),
masterMode: getCompletions(data?.dungeons?.dungeon_types?.master_catacombs?.tier_completions)
},
floors: {
entrance: getDungeonsFloor(data, 'catacombs', '0'),
floor1: getDungeonsFloor(data, 'catacombs', '1'),
floor2: getDungeonsFloor(data, 'catacombs', '2'),
floor3: getDungeonsFloor(data, 'catacombs', '3'),
floor4: getDungeonsFloor(data, 'catacombs', '4'),
floor5: getDungeonsFloor(data, 'catacombs', '5'),
floor6: getDungeonsFloor(data, 'catacombs', '6'),
floor7: getDungeonsFloor(data, 'catacombs', '7'),
masterMode1: getDungeonsFloor(data, 'master_catacombs', '1'),
masterMode2: getDungeonsFloor(data, 'master_catacombs', '2'),
masterMode3: getDungeonsFloor(data, 'master_catacombs', '3'),
masterMode4: getDungeonsFloor(data, 'master_catacombs', '4'),
masterMode5: getDungeonsFloor(data, 'master_catacombs', '5'),
masterMode6: getDungeonsFloor(data, 'master_catacombs', '6'),
masterMode7: getDungeonsFloor(data, 'master_catacombs', '7')
},
classes: {
healer: getLevelByXp(
data.dungeons?.player_classes?.healer ? data.dungeons.player_classes.healer.experience : null,
'dungeons'
),
mage: getLevelByXp(
data.dungeons?.player_classes?.mage ? data.dungeons.player_classes.mage.experience : null,
'dungeons'
),
berserk: getLevelByXp(
data.dungeons?.player_classes?.berserk ? data.dungeons.player_classes.berserk.experience : null,
'dungeons'
),
archer: getLevelByXp(
data.dungeons?.player_classes?.archer ? data.dungeons.player_classes.archer.experience : null,
'dungeons'
),
tank: getLevelByXp(
data.dungeons?.player_classes?.tank ? data.dungeons.player_classes.tank.experience : null,
'dungeons'
)
healer: getLevelByXp(data?.dungeons?.player_classes?.healer?.experience ?? 0, 'dungeons'),
mage: getLevelByXp(data?.dungeons?.player_classes?.mage?.experience ?? 0, 'dungeons'),
berserk: getLevelByXp(data?.dungeons?.player_classes?.berserk?.experience ?? 0, 'dungeons'),
archer: getLevelByXp(data?.dungeons?.player_classes?.archer?.experience ?? 0, 'dungeons'),
tank: getLevelByXp(data?.dungeons?.player_classes?.tank?.experience ?? 0, 'dungeons'),
selected: data?.dungeons?.selected_dungeon_class ?? 'mage'
},
essence: {
diamond: data?.currencies?.essence?.DIAMOND?.current || 0,
dragon: data?.currencies?.essence?.DRAGON?.current || 0,
spider: data?.currencies?.essence?.SPIDER?.current || 0,
wither: data?.currencies?.essence?.WITHER?.current || 0,
undead: data?.currencies?.essence?.UNDEAD?.current || 0,
gold: data?.currencies?.essence?.GOLD?.current || 0,
ice: data?.currencies?.essence?.ICE?.current || 0,
crimson: data?.currencies?.essence?.CRIMSON?.current || 0
}
};
}
Expand Down Expand Up @@ -524,7 +546,7 @@ module.exports = {
getSkills,
getBestiaryLevel,
getSlayer,
getKuudra,
getKuudra: getCrimson,
getDungeons,
getJacobData,
getChocolateFactory,
Expand Down

0 comments on commit 82b8765

Please sign in to comment.