farming-weight 0.3.10 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -7
- package/dist/classes/farmingarmor.d.ts +10 -6
- package/dist/classes/farmingarmor.js +49 -4
- package/dist/classes/farmingarmor.js.map +1 -1
- package/dist/classes/farmingequipment.d.ts +24 -0
- package/dist/classes/farmingequipment.js +116 -0
- package/dist/classes/farmingequipment.js.map +1 -0
- package/dist/classes/item.d.ts +1 -1
- package/dist/classes/player.d.ts +5 -4
- package/dist/classes/player.js +18 -10
- package/dist/classes/player.js.map +1 -1
- package/dist/classes/weightcalc.d.ts +12 -3
- package/dist/classes/weightcalc.js +43 -18
- package/dist/classes/weightcalc.js.map +1 -1
- package/dist/classes/weightcalc.test.d.ts +1 -0
- package/dist/classes/weightcalc.test.js +108 -0
- package/dist/classes/weightcalc.test.js.map +1 -0
- package/dist/constants/armor.d.ts +4 -1
- package/dist/constants/armor.js +111 -13
- package/dist/constants/armor.js.map +1 -1
- package/dist/constants/lotus.d.ts +1 -1
- package/dist/constants/lotus.js +26 -2
- package/dist/constants/lotus.js.map +1 -1
- package/dist/constants/pests.d.ts +20 -3
- package/dist/constants/pests.js +169 -46
- package/dist/constants/pests.js.map +1 -1
- package/dist/constants/tools.d.ts +2 -1
- package/dist/constants/tools.js +57 -14
- package/dist/constants/tools.js.map +1 -1
- package/dist/constants/upgrades.d.ts +19 -0
- package/dist/constants/upgrades.js +37 -0
- package/dist/constants/upgrades.js.map +1 -0
- package/dist/constants/weight.d.ts +4 -2
- package/dist/constants/weight.js +4 -2
- package/dist/constants/weight.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/util/gems.js.map +1 -1
- package/dist/util/pests.d.ts +4 -0
- package/dist/util/pests.js +68 -0
- package/dist/util/pests.js.map +1 -0
- package/dist/util/pests.test.d.ts +1 -0
- package/dist/util/pests.test.js +27 -0
- package/dist/util/pests.test.js.map +1 -0
- package/package.json +46 -42
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GearSlot } from "./armor";
|
|
2
|
+
import { Crop } from "./crops";
|
|
3
|
+
import { FARMING_TOOLS } from "./tools";
|
|
4
|
+
export declare enum UpgradeReason {
|
|
5
|
+
Standard = "standard",
|
|
6
|
+
DeadEnd = "dead_end",
|
|
7
|
+
Situational = "situational"
|
|
8
|
+
}
|
|
9
|
+
export interface Upgrade {
|
|
10
|
+
id: string;
|
|
11
|
+
reason: UpgradeReason;
|
|
12
|
+
why?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface InitialItems {
|
|
15
|
+
tools: Partial<Record<Crop, keyof typeof FARMING_TOOLS>>;
|
|
16
|
+
armor: Record<GearSlot, string | string[]>;
|
|
17
|
+
pets: string[];
|
|
18
|
+
}
|
|
19
|
+
export declare const INITIAL_ITEMS: InitialItems;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INITIAL_ITEMS = exports.UpgradeReason = void 0;
|
|
4
|
+
const armor_1 = require("./armor");
|
|
5
|
+
const crops_1 = require("./crops");
|
|
6
|
+
var UpgradeReason;
|
|
7
|
+
(function (UpgradeReason) {
|
|
8
|
+
UpgradeReason["Standard"] = "standard";
|
|
9
|
+
UpgradeReason["DeadEnd"] = "dead_end";
|
|
10
|
+
UpgradeReason["Situational"] = "situational";
|
|
11
|
+
})(UpgradeReason || (exports.UpgradeReason = UpgradeReason = {}));
|
|
12
|
+
exports.INITIAL_ITEMS = {
|
|
13
|
+
tools: {
|
|
14
|
+
[crops_1.Crop.Cactus]: 'CACTUS_KNIFE',
|
|
15
|
+
[crops_1.Crop.CocoaBeans]: 'COCO_CHOPPER',
|
|
16
|
+
[crops_1.Crop.Carrot]: 'THEORETICAL_HOE_CARROT_1',
|
|
17
|
+
[crops_1.Crop.Melon]: 'MELON_DICER',
|
|
18
|
+
[crops_1.Crop.Mushroom]: 'FUNGI_CUTTER',
|
|
19
|
+
[crops_1.Crop.NetherWart]: 'THEORETICAL_HOE_WARTS_1',
|
|
20
|
+
[crops_1.Crop.Potato]: 'THEORETICAL_HOE_POTATO_1',
|
|
21
|
+
[crops_1.Crop.Pumpkin]: 'PUMPKIN_DICER',
|
|
22
|
+
[crops_1.Crop.SugarCane]: 'THEORETICAL_HOE_CANE_1',
|
|
23
|
+
[crops_1.Crop.Wheat]: 'THEORETICAL_HOE_WHEAT_1'
|
|
24
|
+
},
|
|
25
|
+
armor: {
|
|
26
|
+
[armor_1.GearSlot.Boots]: ['MELON_BOOTS', 'FARMER_BOOTS', 'RANCHERS_BOOTS'],
|
|
27
|
+
[armor_1.GearSlot.Leggings]: 'MELON_LEGGINGS',
|
|
28
|
+
[armor_1.GearSlot.Chestplate]: 'MELON_CHESTPLATE',
|
|
29
|
+
[armor_1.GearSlot.Helmet]: 'MELON_HELMET',
|
|
30
|
+
[armor_1.GearSlot.Necklace]: 'LOTUS_NECKLACE',
|
|
31
|
+
[armor_1.GearSlot.Cloak]: 'LOTUS_CLOAK',
|
|
32
|
+
[armor_1.GearSlot.Belt]: 'LOTUS_BELT',
|
|
33
|
+
[armor_1.GearSlot.Gloves]: 'LOTUS_BRACELET',
|
|
34
|
+
},
|
|
35
|
+
pets: ['ELEPHANT', 'MOOSHROOM_COW']
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=upgrades.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upgrades.js","sourceRoot":"","sources":["../../src/constants/upgrades.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,mCAA+B;AAG/B,IAAY,aAIX;AAJD,WAAY,aAAa;IACxB,sCAAqB,CAAA;IACrB,qCAAoB,CAAA;IACpB,4CAA2B,CAAA;AAC5B,CAAC,EAJW,aAAa,6BAAb,aAAa,QAIxB;AAcY,QAAA,aAAa,GAAiB;IAC1C,KAAK,EAAE;QACN,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,cAAc;QAC7B,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,cAAc;QACjC,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,0BAA0B;QACzC,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,aAAa;QAC3B,CAAC,YAAI,CAAC,QAAQ,CAAC,EAAE,cAAc;QAC/B,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,yBAAyB;QAC5C,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,0BAA0B;QACzC,CAAC,YAAI,CAAC,OAAO,CAAC,EAAE,eAAe;QAC/B,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,wBAAwB;QAC1C,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,yBAAyB;KACvC;IACD,KAAK,EAAE;QACN,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,CAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,CAAE;QACrE,CAAC,gBAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB;QACrC,CAAC,gBAAQ,CAAC,UAAU,CAAC,EAAE,kBAAkB;QACzC,CAAC,gBAAQ,CAAC,MAAM,CAAC,EAAE,cAAc;QACjC,CAAC,gBAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB;QACrC,CAAC,gBAAQ,CAAC,KAAK,CAAC,EAAE,aAAa;QAC/B,CAAC,gBAAQ,CAAC,IAAI,CAAC,EAAE,YAAY;QAC7B,CAAC,gBAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB;KACnC;IACD,IAAI,EAAE,CAAE,UAAU,EAAE,eAAe,CAAE;CACrC,CAAC"}
|
|
@@ -5,9 +5,11 @@ export declare const BONUS_WEIGHT: {
|
|
|
5
5
|
readonly Farming60Bonus: 250;
|
|
6
6
|
readonly Farming50Bonus: 100;
|
|
7
7
|
readonly AnitaBuffBonusMultiplier: 2;
|
|
8
|
-
readonly MaxMedalsCounted: 1000;
|
|
9
8
|
readonly GoldMedalRewardInterval: 50;
|
|
10
|
-
readonly WeightPerGoldMedal: 0.5;
|
|
11
9
|
readonly MinionRewardTier: 12;
|
|
12
10
|
readonly MinionRewardWeight: 5;
|
|
11
|
+
readonly MaxMedalsCounted: 1000;
|
|
12
|
+
readonly WeightPerDiamondMedal: 0.75;
|
|
13
|
+
readonly WeightPerPlatinumMedal: 0.5;
|
|
14
|
+
readonly WeightPerGoldMedal: 0.25;
|
|
13
15
|
};
|
package/dist/constants/weight.js
CHANGED
|
@@ -32,10 +32,12 @@ exports.BONUS_WEIGHT = {
|
|
|
32
32
|
Farming60Bonus: 250,
|
|
33
33
|
Farming50Bonus: 100,
|
|
34
34
|
AnitaBuffBonusMultiplier: 2,
|
|
35
|
-
MaxMedalsCounted: 1000,
|
|
36
35
|
GoldMedalRewardInterval: 50,
|
|
37
|
-
WeightPerGoldMedal: 0.5,
|
|
38
36
|
MinionRewardTier: 12,
|
|
39
37
|
MinionRewardWeight: 5,
|
|
38
|
+
MaxMedalsCounted: 1000,
|
|
39
|
+
WeightPerDiamondMedal: 0.75,
|
|
40
|
+
WeightPerPlatinumMedal: 0.5,
|
|
41
|
+
WeightPerGoldMedal: 0.25,
|
|
40
42
|
};
|
|
41
43
|
//# sourceMappingURL=weight.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"weight.js","sourceRoot":"","sources":["../../src/constants/weight.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,mCAAmC;AACtB,QAAA,WAAW,GAAyB;IAChD,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,UAAU;IACzB,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,UAAU;IACzB,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,UAAU;IAC7B,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,UAAU;IACxB,CAAC,YAAI,CAAC,QAAQ,CAAC,EAAE,SAAS;IAC1B,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,OAAO;IAC1B,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,OAAO;IACtB,CAAC,YAAI,CAAC,OAAO,CAAC,EAAE,SAAS;IACzB,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,OAAO;IACzB,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,OAAO;IACrB,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,0CAA0C;CAC3D,CAAC;AAEW,QAAA,eAAe,GAAsB;IACjD,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,aAAa;IACb,UAAU;IACV,WAAW;IACX,eAAe;IACf,iBAAiB;CACR,CAAC;AAEE,QAAA,YAAY,GAAG;IAC3B,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,GAAG;IACnB,wBAAwB,EAAE,CAAC;IAC3B,
|
|
1
|
+
{"version":3,"file":"weight.js","sourceRoot":"","sources":["../../src/constants/weight.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAE/B,mCAAmC;AACtB,QAAA,WAAW,GAAyB;IAChD,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,UAAU;IACzB,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,UAAU;IACzB,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,UAAU;IAC7B,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,UAAU;IACxB,CAAC,YAAI,CAAC,QAAQ,CAAC,EAAE,SAAS;IAC1B,CAAC,YAAI,CAAC,UAAU,CAAC,EAAE,OAAO;IAC1B,CAAC,YAAI,CAAC,MAAM,CAAC,EAAE,OAAO;IACtB,CAAC,YAAI,CAAC,OAAO,CAAC,EAAE,SAAS;IACzB,CAAC,YAAI,CAAC,SAAS,CAAC,EAAE,OAAO;IACzB,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,OAAO;IACrB,CAAC,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,0CAA0C;CAC3D,CAAC;AAEW,QAAA,eAAe,GAAsB;IACjD,UAAU;IACV,WAAW;IACX,WAAW;IACX,YAAY;IACZ,UAAU;IACV,aAAa;IACb,UAAU;IACV,WAAW;IACX,eAAe;IACf,iBAAiB;CACR,CAAC;AAEE,QAAA,YAAY,GAAG;IAC3B,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,GAAG;IACnB,wBAAwB,EAAE,CAAC;IAC3B,uBAAuB,EAAE,EAAE;IAC3B,gBAAgB,EAAE,EAAE;IACpB,kBAAkB,EAAE,CAAC;IACrB,gBAAgB,EAAE,IAAI;IACtB,qBAAqB,EAAE,IAAI;IAC3B,sBAAsB,EAAE,GAAG;IAC3B,kBAAkB,EAAE,IAAI;CACf,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,10 @@ export * from './classes/farmingarmor.js';
|
|
|
2
2
|
export * from './classes/farmingtool.js';
|
|
3
3
|
export * from './classes/farmingpet.js';
|
|
4
4
|
export * from './classes/farmingaccessory.js';
|
|
5
|
+
export * from './classes/farmingequipment.js';
|
|
5
6
|
export * from './classes/item.js';
|
|
6
7
|
export * from './classes/player.js';
|
|
7
8
|
export * from './classes/weightcalc.js';
|
|
8
|
-
export * from './classes/lotusgear.js';
|
|
9
9
|
export * from './constants/armor.js';
|
|
10
10
|
export * from './constants/crops.js';
|
|
11
11
|
export * from './constants/reforges.js';
|
|
@@ -16,11 +16,15 @@ export * from './constants/weight.js';
|
|
|
16
16
|
export * from './constants/pests.js';
|
|
17
17
|
export * from './constants/pets.js';
|
|
18
18
|
export * from './constants/personalbests.js';
|
|
19
|
+
export * from './constants/lotus.js';
|
|
20
|
+
export * from './constants/upgrades.js';
|
|
19
21
|
export * from './util/itemstats.js';
|
|
20
22
|
export * from './util/jacob.js';
|
|
21
23
|
export * from './util/names.js';
|
|
22
24
|
export * from './util/skyblocktime.js';
|
|
23
25
|
export * from './util/ratecalc.js';
|
|
26
|
+
export * from './util/lore.js';
|
|
27
|
+
export * from './util/pests.js';
|
|
24
28
|
export * from './crops/special.js';
|
|
25
29
|
export * from './crops/pumpkin.js';
|
|
26
30
|
export * from './crops/melon.js';
|
package/dist/index.js
CHANGED
|
@@ -18,10 +18,10 @@ __exportStar(require("./classes/farmingarmor.js"), exports);
|
|
|
18
18
|
__exportStar(require("./classes/farmingtool.js"), exports);
|
|
19
19
|
__exportStar(require("./classes/farmingpet.js"), exports);
|
|
20
20
|
__exportStar(require("./classes/farmingaccessory.js"), exports);
|
|
21
|
+
__exportStar(require("./classes/farmingequipment.js"), exports);
|
|
21
22
|
__exportStar(require("./classes/item.js"), exports);
|
|
22
23
|
__exportStar(require("./classes/player.js"), exports);
|
|
23
24
|
__exportStar(require("./classes/weightcalc.js"), exports);
|
|
24
|
-
__exportStar(require("./classes/lotusgear.js"), exports);
|
|
25
25
|
__exportStar(require("./constants/armor.js"), exports);
|
|
26
26
|
__exportStar(require("./constants/crops.js"), exports);
|
|
27
27
|
__exportStar(require("./constants/reforges.js"), exports);
|
|
@@ -32,11 +32,15 @@ __exportStar(require("./constants/weight.js"), exports);
|
|
|
32
32
|
__exportStar(require("./constants/pests.js"), exports);
|
|
33
33
|
__exportStar(require("./constants/pets.js"), exports);
|
|
34
34
|
__exportStar(require("./constants/personalbests.js"), exports);
|
|
35
|
+
__exportStar(require("./constants/lotus.js"), exports);
|
|
36
|
+
__exportStar(require("./constants/upgrades.js"), exports);
|
|
35
37
|
__exportStar(require("./util/itemstats.js"), exports);
|
|
36
38
|
__exportStar(require("./util/jacob.js"), exports);
|
|
37
39
|
__exportStar(require("./util/names.js"), exports);
|
|
38
40
|
__exportStar(require("./util/skyblocktime.js"), exports);
|
|
39
41
|
__exportStar(require("./util/ratecalc.js"), exports);
|
|
42
|
+
__exportStar(require("./util/lore.js"), exports);
|
|
43
|
+
__exportStar(require("./util/pests.js"), exports);
|
|
40
44
|
__exportStar(require("./crops/special.js"), exports);
|
|
41
45
|
__exportStar(require("./crops/pumpkin.js"), exports);
|
|
42
46
|
__exportStar(require("./crops/melon.js"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,2DAAyC;AACzC,0DAAwC;AACxC,gEAA8C;AAC9C,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,2DAAyC;AACzC,0DAAwC;AACxC,gEAA8C;AAC9C,gEAA8C;AAC9C,oDAAkC;AAClC,sDAAoC;AACpC,0DAAwC;AAExC,uDAAqC;AACrC,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,8DAA4C;AAC5C,uDAAqC;AACrC,wDAAsC;AACtC,uDAAqC;AACrC,sDAAoC;AACpC,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AAExC,sDAAoC;AACpC,kDAAgC;AAChC,kDAAgC;AAChC,yDAAuC;AACvC,qDAAmC;AACnC,iDAA+B;AAC/B,kDAAgC;AAEhC,qDAAmC;AACnC,qDAAmC;AACnC,mDAAiC"}
|
package/dist/util/gems.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gems.js","sourceRoot":"","sources":["../../src/util/gems.ts"],"names":[],"mappings":";;;AACA,4CAA4C;AAG5C,SAAgB,iBAAiB,CAAC,MAAc,EAAE,IAAkB;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IAEpB,MAAM,OAAO,GAAG,cAAO,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACzB,MAAM,CAAC,CAAC,CAAE,GAAG,CAAE,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"gems.js","sourceRoot":"","sources":["../../src/util/gems.ts"],"names":[],"mappings":";;;AACA,4CAA4C;AAG5C,SAAgB,iBAAiB,CAAC,MAAc,EAAE,IAAkB;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,CAAC;IAEpB,MAAM,OAAO,GAAG,cAAO,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAEvB,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACzB,MAAM,CAAC,CAAC,CAAE,GAAG,CAAE,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAc,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,CAAC;AAVD,8CAUC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Crop } from '../constants/crops';
|
|
2
|
+
export declare function fortuneFromPests(pests: number): number;
|
|
3
|
+
export declare function fortuneFromPestBestiary(bestiaryKills: Record<string, number>): number;
|
|
4
|
+
export declare function uncountedCropsFromPests(pestKills: Record<string, number>): Partial<Record<Crop, number>>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.uncountedCropsFromPests = exports.fortuneFromPestBestiary = exports.fortuneFromPests = void 0;
|
|
4
|
+
const pests_1 = require("../constants/pests");
|
|
5
|
+
function fortuneFromPests(pests) {
|
|
6
|
+
return pests_1.PEST_EXCHANGE_RATES[pests] ?? 0;
|
|
7
|
+
}
|
|
8
|
+
exports.fortuneFromPests = fortuneFromPests;
|
|
9
|
+
function fortuneFromPestBestiary(bestiaryKills) {
|
|
10
|
+
let reachedBrackets = 0;
|
|
11
|
+
const brackets = Object.entries(pests_1.KILLS_PER_PEST_BRACKET).sort((a, b) => b[1] - a[1]);
|
|
12
|
+
for (const pestId of pests_1.PEST_IDS) {
|
|
13
|
+
const kills = bestiaryKills[`pest_${pestId}_1`];
|
|
14
|
+
if (!kills)
|
|
15
|
+
continue;
|
|
16
|
+
// Find the highest reached bracket for this pest
|
|
17
|
+
const bracket = brackets.find((b) => +kills >= b[1]);
|
|
18
|
+
reachedBrackets += bracket ? +bracket[0] : 0;
|
|
19
|
+
}
|
|
20
|
+
return reachedBrackets * pests_1.FORTUNE_PER_PEST_BRACKET;
|
|
21
|
+
}
|
|
22
|
+
exports.fortuneFromPestBestiary = fortuneFromPestBestiary;
|
|
23
|
+
function uncountedCropsFromPests(pestKills) {
|
|
24
|
+
const crops = {};
|
|
25
|
+
const brackets = pests_1.PEST_COLLECTION_BRACKETS;
|
|
26
|
+
for (const pestId of pests_1.PEST_IDS) {
|
|
27
|
+
let kills = pestKills[`pest_${pestId}_1`];
|
|
28
|
+
if (!kills)
|
|
29
|
+
continue;
|
|
30
|
+
const crop = pests_1.PEST_TO_CROP[pestId];
|
|
31
|
+
if (!crop)
|
|
32
|
+
continue;
|
|
33
|
+
let pestsToCount = 0;
|
|
34
|
+
let totalDrops = 0;
|
|
35
|
+
for (let i = 0; i < brackets.length; i++) {
|
|
36
|
+
const bracket = brackets[i];
|
|
37
|
+
// Exit if there are no more pests to calculate
|
|
38
|
+
if (kills <= 0)
|
|
39
|
+
break;
|
|
40
|
+
const bracketCrops = pests_1.PEST_COLLECTION_ADJUSTMENTS[pestId][bracket] ?? 0;
|
|
41
|
+
// Use the last bracket for all remaining pests
|
|
42
|
+
if (i === brackets.length - 1) {
|
|
43
|
+
totalDrops += Math.ceil(bracketCrops * kills);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
// Get the next bracket to find the maximum pests in the current bracket
|
|
47
|
+
const nextBracket = brackets.at(i + 1);
|
|
48
|
+
if (nextBracket === undefined)
|
|
49
|
+
break;
|
|
50
|
+
if (!Number.isInteger(nextBracket))
|
|
51
|
+
continue;
|
|
52
|
+
// Calculate the pests to count in the current bracket
|
|
53
|
+
pestsToCount = Math.min(nextBracket - pestsToCount, kills);
|
|
54
|
+
if (bracketCrops === 0) {
|
|
55
|
+
// If the value is 0, we don't need to calculate the drops
|
|
56
|
+
kills -= pestsToCount;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
// Calculate the drops for the current bracket
|
|
60
|
+
kills -= pestsToCount;
|
|
61
|
+
totalDrops += Math.ceil(bracketCrops * pestsToCount);
|
|
62
|
+
}
|
|
63
|
+
crops[crop] = totalDrops;
|
|
64
|
+
}
|
|
65
|
+
return crops;
|
|
66
|
+
}
|
|
67
|
+
exports.uncountedCropsFromPests = uncountedCropsFromPests;
|
|
68
|
+
//# sourceMappingURL=pests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pests.js","sourceRoot":"","sources":["../../src/util/pests.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const pests_1 = require("./pests");
|
|
5
|
+
const crops_1 = require("../constants/crops");
|
|
6
|
+
const pests_2 = require("../constants/pests");
|
|
7
|
+
(0, vitest_1.test)('Pest bestiary fortune', () => {
|
|
8
|
+
const bestiaryKills = {
|
|
9
|
+
pest_fly_1: 1,
|
|
10
|
+
pest_beetle_1: 2,
|
|
11
|
+
random_thing: 100
|
|
12
|
+
};
|
|
13
|
+
(0, vitest_1.expect)((0, pests_1.fortuneFromPestBestiary)(bestiaryKills)).toBeCloseTo(1.2);
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.test)('Uncounted crops from pests', () => {
|
|
16
|
+
const bestiaryKills = {
|
|
17
|
+
pest_fly_1: 13414,
|
|
18
|
+
pest_beetle_1: 10,
|
|
19
|
+
pest_worm_1: 51,
|
|
20
|
+
};
|
|
21
|
+
const uncounted = (0, pests_1.uncountedCropsFromPests)(bestiaryKills);
|
|
22
|
+
(0, vitest_1.expect)(Object.values(uncounted)).toHaveLength(3);
|
|
23
|
+
(0, vitest_1.expect)(uncounted[crops_1.Crop.NetherWart]).toBe(0);
|
|
24
|
+
(0, vitest_1.expect)(uncounted[crops_1.Crop.Melon]).toBe(Math.ceil(pests_2.PEST_COLLECTION_ADJUSTMENTS[pests_2.Pest.Worm][50] ?? 0));
|
|
25
|
+
(0, vitest_1.expect)(uncounted[crops_1.Crop.Wheat]).toBe(311892563);
|
|
26
|
+
});
|
|
27
|
+
//# sourceMappingURL=pests.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pests.test.js","sourceRoot":"","sources":["../../src/util/pests.test.ts"],"names":[],"mappings":";;AAAA,mCAAsC;AACtC,mCAA2E;AAC3E,8CAA0C;AAC1C,8CAAuE;AAEvE,IAAA,aAAI,EAAC,uBAAuB,EAAE,GAAG,EAAE;IAClC,MAAM,aAAa,GAAG;QACrB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;QAChB,YAAY,EAAE,GAAG;KACjB,CAAA;IAED,IAAA,eAAM,EAAC,IAAA,+BAAuB,EAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;AAChE,CAAC,CAAC,CAAA;AAEF,IAAA,aAAI,EAAC,4BAA4B,EAAE,GAAG,EAAE;IACvC,MAAM,aAAa,GAAG;QACrB,UAAU,EAAE,KAAK;QACjB,aAAa,EAAE,EAAE;QACjB,WAAW,EAAE,EAAE;KACf,CAAA;IAED,MAAM,SAAS,GAAG,IAAA,+BAAuB,EAAC,aAAa,CAAC,CAAC;IAEzD,IAAA,eAAM,EAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACjD,IAAA,eAAM,EAAC,SAAS,CAAC,YAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAA,eAAM,EAAC,SAAS,CAAC,YAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,mCAA2B,CAAC,YAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/F,IAAA,eAAM,EAAC,SAAS,CAAC,YAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,42 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "farming-weight",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Tools for calculating farming weight and fortune in Hypixel Skyblock",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"build": "tsc",
|
|
9
|
-
"format": "prettier --write \"src/**/*.ts\"",
|
|
10
|
-
"lint": "eslint"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
"hypixel
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"typescript": "^
|
|
41
|
-
|
|
42
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "farming-weight",
|
|
3
|
+
"version": "0.4.0",
|
|
4
|
+
"description": "Tools for calculating farming weight and fortune in Hypixel Skyblock",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "tsc",
|
|
9
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
10
|
+
"lint": "eslint",
|
|
11
|
+
"test": "vitest"
|
|
12
|
+
},
|
|
13
|
+
"keywords": [
|
|
14
|
+
"farming",
|
|
15
|
+
"weight",
|
|
16
|
+
"farming-weight",
|
|
17
|
+
"skyblock",
|
|
18
|
+
"hypixel",
|
|
19
|
+
"hypixel-skyblock",
|
|
20
|
+
"fortune"
|
|
21
|
+
],
|
|
22
|
+
"repository": {
|
|
23
|
+
"type": "git",
|
|
24
|
+
"url": "git+https://github.com/EliteFarmers/Tools.git"
|
|
25
|
+
},
|
|
26
|
+
"files": [
|
|
27
|
+
"dist/**/*"
|
|
28
|
+
],
|
|
29
|
+
"bugs": {
|
|
30
|
+
"url": "https://github.com/EliteFarmers/Tools/issues"
|
|
31
|
+
},
|
|
32
|
+
"publishConfig": {
|
|
33
|
+
"registry": "https://registry.npmjs.org/",
|
|
34
|
+
"access": "public"
|
|
35
|
+
},
|
|
36
|
+
"homepage": "https://github.com/EliteFarmers/Tools#readme",
|
|
37
|
+
"author": "Kaeso",
|
|
38
|
+
"license": "LGPL-3.0-only",
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@typescript-eslint/eslint-plugin": "^6.7.4",
|
|
41
|
+
"eslint": "^8.50.0",
|
|
42
|
+
"prettier": "^3.0.3",
|
|
43
|
+
"typescript": "^5.2.2",
|
|
44
|
+
"vitest": "^1.6.0"
|
|
45
|
+
}
|
|
46
|
+
}
|