diff --git a/components/account/Worlds/World2/Killroy/Monsters.jsx b/components/account/Worlds/World2/Killroy/Monsters.jsx
new file mode 100644
index 000000000..4136e012f
--- /dev/null
+++ b/components/account/Worlds/World2/Killroy/Monsters.jsx
@@ -0,0 +1,22 @@
+import { Card, CardContent, Stack, Typography } from '@mui/material';
+import { notateNumber, prefix } from '@utility/helpers';
+import React from 'react';
+
+const Monsters = ({ killroy }) => {
+ return (
+
+ {killroy?.list?.map(({ rawName, world, killRoyKills, icon }, index) => {
+ return
+
+
+
+ {notateNumber(killRoyKills ?? 0, 'Big')}
+
+
+
+ })}
+
+ );
+};
+
+export default Monsters;
diff --git a/components/account/Worlds/World2/Killroy/Schedule.jsx b/components/account/Worlds/World2/Killroy/Schedule.jsx
new file mode 100644
index 000000000..1ced4b8bf
--- /dev/null
+++ b/components/account/Worlds/World2/Killroy/Schedule.jsx
@@ -0,0 +1,40 @@
+import { Card, CardContent, Stack, Typography } from '@mui/material';
+import { format, isValid } from 'date-fns';
+import React from 'react';
+import { prefix } from '@utility/helpers';
+
+const Schedule = ({ schedule }) => {
+ return (
+
+ {schedule?.map(({ classes, date, monsters }, classesIndex) => {
+ return
+
+ {isValid(date)
+ ? format(date, 'dd/MM/yyyy HH:mm:ss')
+ : null}
+
+ {classes.map(({ className, classIndex }, classIdIndex) => {
+ const monsterFaceId = monsters?.[classIdIndex];
+ return
+
+
+
+
+
+
+
+ {className}
+
+
+
+
+ })}
+
+
+
+ })}
+
+ );
+};
+
+export default Schedule;
diff --git a/components/account/Worlds/World2/Killroy/Upgrades.jsx b/components/account/Worlds/World2/Killroy/Upgrades.jsx
new file mode 100644
index 000000000..4cac903d4
--- /dev/null
+++ b/components/account/Worlds/World2/Killroy/Upgrades.jsx
@@ -0,0 +1,27 @@
+import { Card, CardContent, Divider, Stack, Typography } from '@mui/material';
+import React from 'react';
+import { prefix } from '@utility/helpers';
+
+const Upgrades = ({ killroy }) => {
+ return (
+
+ {killroy?.upgrades?.map(({ level, description, upgrade }, index) =>
+
+
+
+
+ Lv. {level}
+
+ {upgrade}
+ {description}
+
+
+
+ )}
+
+ );
+};
+
+export default Upgrades;
+
diff --git a/components/common/NavBar/AppDrawer/AccountDrawer.jsx b/components/common/NavBar/AppDrawer/AccountDrawer.jsx
index 9a95389f8..fba59f327 100644
--- a/components/common/NavBar/AppDrawer/AccountDrawer.jsx
+++ b/components/common/NavBar/AppDrawer/AccountDrawer.jsx
@@ -57,6 +57,7 @@ const worldsData = {
{ label: 'sigils', icon: 'data/LabBonus12' },
{ label: 'arcadeShop', icon: 'data/PachiBall1' },
{ label: 'islands', icon: 'data/Island1' },
+ { label: 'killroy', icon: 'etc/Killroy_Skull' },
{ label: 'weeklyBosses', icon: 'etc/SWR_Containment' },
{ label: 'kangaroo', icon: 'data/RooA' },
{ label: 'voteBallot', icon: 'etc/VoteBallot' }
@@ -85,7 +86,6 @@ const worldsData = {
{ label: 'breeding', icon: 'data/ClassIcons52' },
{ label: 'laboratory', icon: 'data/ClassIcons53' },
{ label: 'rift', icon: 'data/Mface75' },
- { label: 'killroyPrime', icon: 'etc/KillroyPrime' },
{ label: 'tome', icon: 'etc/Tome_0' }
]
},
diff --git a/data/patch-notes.js b/data/patch-notes.js
index db540f3e0..59275a6bf 100644
--- a/data/patch-notes.js
+++ b/data/patch-notes.js
@@ -3,6 +3,13 @@ import React from 'react';
/* eslint-disable react/jsx-key */
export const patchNotes = [
+ {
+ ver: '3.2.78',
+ gameVer: '2.0.13',
+ date: '14/09/2024',
+ features: ['Added killroy\'s upgrades and moved killroy page to world 2'],
+ fixes: []
+ },
{
ver: '3.2.77',
gameVer: '2.0.13',
@@ -11,7 +18,7 @@ export const patchNotes = [
'Added green stacks leaderboard under General',
'Added some more description to the login dialog to hopefully prevent repeated questions',
'Fixed a bug where meals appeared on a different order.',
- 'Fixed calculations for bean trade in farming page',
+ 'Fixed calculations for bean trade in farming page'
],
fixes: []
},
diff --git a/pages/account/world-2/killroy.jsx b/pages/account/world-2/killroy.jsx
new file mode 100644
index 000000000..417a5b960
--- /dev/null
+++ b/pages/account/world-2/killroy.jsx
@@ -0,0 +1,35 @@
+import { NextSeo } from 'next-seo';
+import React, { useContext } from 'react';
+import { AppContext } from '@components/common/context/AppProvider';
+import { Stack } from '@mui/material';
+import { CardTitleAndValue } from '@components/common/styles';
+import { notateNumber } from '@utility/helpers';
+import { getKillroySchedule } from '@parsers/misc';
+import Tabber from '@components/common/Tabber';
+import Monsters from '@components/account/Worlds/World2/Killroy/Monsters';
+import Schedule from '@components/account/Worlds/World2/Killroy/Schedule';
+import Upgrades from '@components/account/Worlds/World2/Killroy/Upgrades';
+
+const MyComponent = () => {
+ const { state } = useContext(AppContext);
+ const { killroy } = state?.account || { deathNote: {} };
+ const schedule = getKillroySchedule(state?.account, state?.characters, state?.account?.serverVars);
+ return <>
+
+
+
+
+
+
+
+
+
+
+
+ >
+};
+
+export default MyComponent;
diff --git a/pages/account/world-4/killroy-prime.jsx b/pages/account/world-4/killroy-prime.jsx
deleted file mode 100644
index 7fe8f89d0..000000000
--- a/pages/account/world-4/killroy-prime.jsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import { NextSeo } from 'next-seo';
-import React, { useContext } from 'react';
-import { AppContext } from '@components/common/context/AppProvider';
-import { Card, CardContent, Stack, Typography } from '@mui/material';
-import { CardTitleAndValue } from '@components/common/styles';
-import { notateNumber, prefix } from '@utility/helpers';
-import { getKillroySchedule } from '@parsers/misc';
-import Tabber from '@components/common/Tabber';
-import { format, isValid } from 'date-fns';
-
-const MyComponent = () => {
- const { state } = useContext(AppContext);
- const { killroy } = state?.account || { deathNote: {} };
- const schedule = getKillroySchedule(state?.account, state?.characters, state?.account?.serverVars);
- return <>
-
-
-
-
-
-
-
- {killroy?.list?.map(({ rawName, world, killRoyKills, icon }, index) => {
- return
-
-
-
- {notateNumber(killRoyKills ?? 0, 'Big')}
-
-
-
- })}
-
-
- {schedule?.map(({ classes, date, monsters }, classesIndex) => {
- return
-
- {isValid(date)
- ? format(date, 'dd/MM/yyyy HH:mm:ss')
- : null}
-
- {classes.map(({ className, classIndex }, classIdIndex) => {
- const monsterFaceId = monsters?.[classIdIndex];
- return
-
-
-
-
-
-
-
- {className}
-
-
-
-
- })}
-
-
-
- })}
-
-
-
- >
-};
-
-export default MyComponent;
diff --git a/parsers/misc.js b/parsers/misc.js
index 83b31fa6f..37f002d7c 100644
--- a/parsers/misc.js
+++ b/parsers/misc.js
@@ -896,12 +896,44 @@ export const getMiniBossesData = (account) => {
}
export const getKillRoy = (idleonData, charactersData, accountData, serverVars) => {
+ const skulls = accountData?.accountOptions?.[105];
const killRoyKills = tryToParse(idleonData?.KRbest);
const totalKills = Object.values(killRoyKills || {}).reduce((sum, num) => sum + num, 0);
const totalDamageMulti = 1 + Math.floor(Math.pow(totalKills, 0.4)) / 100;
const unlockedThirdKillRoy = accountData?.accountOptions?.[227] === 1;
const rooms = unlockedThirdKillRoy ? 3 : 2;
const killRoyClasses = getKillRoyClasses(rooms, accountData, serverVars);
+ const upgrades = [
+ {
+ level: accountData?.accountOptions?.[106],
+ description: 'Increases your maximum time in room. Base time is 100 seconds.',
+ upgrade: '+1 Second Timer'
+ },
+ {
+ level: accountData?.accountOptions?.[107],
+ description: 'Increases chance for Talent Point drop, depends on how many Talent Point drops already got',
+ upgrade: '+ Talent Drops'
+ },
+ {
+ level: accountData?.accountOptions?.[108],
+ description: 'Increases chance of dropping skulls by mobs',
+ upgrade: '+1% Bonus Skulls'
+ },
+ {
+ level: accountData?.accountOptions?.[109],
+ description: 'Faster Respawn',
+ },
+ {
+ level: accountData?.accountOptions?.[110],
+ description: 'Mobs can drop Dungeon Credits now',
+ upgrade: 'Dungeon Drops'
+ },
+ {
+ level: accountData?.accountOptions?.[111],
+ description: 'Mobs can drop Pearls now',
+ upgrade: 'Pearl Drops'
+ }
+ ];
return {
list: deathNote.map((monster) => {
const monsterWithIcon = { ...monster, icon: `Mface${monsters?.[monster.rawName].MonsterFace}` };
@@ -913,7 +945,9 @@ export const getKillRoy = (idleonData, charactersData, accountData, serverVars)
totalKills,
totalDamageMulti,
rooms,
- killRoyClasses
+ killRoyClasses,
+ upgrades,
+ skulls
};
}
diff --git a/public/etc/Killroy_0.png b/public/etc/Killroy_0.png
new file mode 100644
index 000000000..56e37c5c4
Binary files /dev/null and b/public/etc/Killroy_0.png differ
diff --git a/public/etc/Killroy_1.png b/public/etc/Killroy_1.png
new file mode 100644
index 000000000..25296bd41
Binary files /dev/null and b/public/etc/Killroy_1.png differ
diff --git a/public/etc/Killroy_2.png b/public/etc/Killroy_2.png
new file mode 100644
index 000000000..28e4b777f
Binary files /dev/null and b/public/etc/Killroy_2.png differ
diff --git a/public/etc/Killroy_3.png b/public/etc/Killroy_3.png
new file mode 100644
index 000000000..e1cd5af80
Binary files /dev/null and b/public/etc/Killroy_3.png differ
diff --git a/public/etc/Killroy_4.png b/public/etc/Killroy_4.png
new file mode 100644
index 000000000..08c30ee84
Binary files /dev/null and b/public/etc/Killroy_4.png differ
diff --git a/public/etc/Killroy_5.png b/public/etc/Killroy_5.png
new file mode 100644
index 000000000..6028e1f45
Binary files /dev/null and b/public/etc/Killroy_5.png differ
diff --git a/public/etc/Killroy_Skull.png b/public/etc/Killroy_Skull.png
new file mode 100644
index 000000000..2f8261c00
Binary files /dev/null and b/public/etc/Killroy_Skull.png differ