Tiered flea:
Added system to limit single items by tpl to player level Added: Oakley Mechanism - level 32 Tri-zip - level 30 Beta 2 - level 30 Gruppa 99 T30 - level 30 Eberlestock F5 - level 30 Poyas-A - level 26 Velocity Systems MPPV - level 25 labs keycard - level 30 Sledgehammer - level 25 ledx - level 25 Graphics card - level 35
This commit is contained in:
parent
92c64024eb
commit
a82a41f3df
@ -333,9 +333,24 @@
|
|||||||
},
|
},
|
||||||
"tieredFlea": {
|
"tieredFlea": {
|
||||||
"enabled": false,
|
"enabled": false,
|
||||||
"unlocks": {
|
"unlocksTpl": {
|
||||||
|
"5d5d940f86f7742797262046": 32,
|
||||||
|
"545cdae64bdc2d39198b4568": 30,
|
||||||
|
"5b44c6ae86f7742d1627baea": 30,
|
||||||
|
"628e1ffc83ec92260c0f437f": 30,
|
||||||
|
"5f5e467b0bc58666c37e7821": 30,
|
||||||
|
|
||||||
|
"5c0e6a1586f77404597b4965": 26,
|
||||||
|
"5df8a42886f77412640e2e75": 25,
|
||||||
|
|
||||||
|
"5c94bbff86f7747ee735c08f": 30,
|
||||||
|
"63a0b208f444d32d6f03ea1e": 25,
|
||||||
|
"5c0530ee86f774697952d952": 25,
|
||||||
|
"57347ca924597744596b4e71": 35
|
||||||
|
},
|
||||||
|
"unlocksType": {
|
||||||
"57864a3d24597754843f8721": 35,
|
"57864a3d24597754843f8721": 35,
|
||||||
"57864bb7245977548b3b66c2": 35,
|
"57864bb7245977548b3b66c2": 30,
|
||||||
"57864a66245977548f04a81f": 25,
|
"57864a66245977548f04a81f": 25,
|
||||||
"57864ada245977548638de91": 20,
|
"57864ada245977548638de91": 20,
|
||||||
"590c745b86f7743cc433c5f2": 35,
|
"590c745b86f7743cc433c5f2": 35,
|
||||||
|
@ -87,7 +87,7 @@ export class RagfairOfferHelper {
|
|||||||
): IRagfairOffer[] {
|
): IRagfairOffer[] {
|
||||||
const playerIsFleaBanned = this.profileHelper.playerIsFleaBanned(pmcData);
|
const playerIsFleaBanned = this.profileHelper.playerIsFleaBanned(pmcData);
|
||||||
const tieredFlea = this.ragfairConfig.tieredFlea;
|
const tieredFlea = this.ragfairConfig.tieredFlea;
|
||||||
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocks);
|
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocksType);
|
||||||
return this.ragfairOfferService.getOffers().filter((offer) => {
|
return this.ragfairOfferService.getOffers().filter((offer) => {
|
||||||
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
||||||
return false;
|
return false;
|
||||||
@ -125,18 +125,28 @@ export class RagfairOfferHelper {
|
|||||||
tieredFleaLimitTypes: string[],
|
tieredFleaLimitTypes: string[],
|
||||||
playerLevel: number,
|
playerLevel: number,
|
||||||
): boolean {
|
): boolean {
|
||||||
if (tieredFlea.ammoTplUnlocks && this.itemHelper.isOfBaseclass(offer.items[0]._tpl, BaseClasses.AMMO)) {
|
const offerItemTpl = offer.items[0]._tpl;
|
||||||
const unlockLevel = tieredFlea.ammoTplUnlocks[offer.items[0]._tpl];
|
if (tieredFlea.ammoTplUnlocks && this.itemHelper.isOfBaseclass(offerItemTpl, BaseClasses.AMMO)) {
|
||||||
|
const unlockLevel = tieredFlea.ammoTplUnlocks[offerItemTpl];
|
||||||
if (unlockLevel && playerLevel < unlockLevel) {
|
if (unlockLevel && playerLevel < unlockLevel) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check for a direct level requirement for the offer item
|
||||||
|
const itemLevelRequirement = tieredFlea.unlocksTpl[offerItemTpl];
|
||||||
|
if (itemLevelRequirement) {
|
||||||
|
if (playerLevel < itemLevelRequirement) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Optimisation - Ensure the item has at least one of the limited base types
|
// Optimisation - Ensure the item has at least one of the limited base types
|
||||||
else if (this.itemHelper.isOfBaseclasses(offer.items[0]._tpl, tieredFleaLimitTypes)) {
|
if (this.itemHelper.isOfBaseclasses(offerItemTpl, tieredFleaLimitTypes)) {
|
||||||
// Loop over all flea types to find the matching one
|
// Loop over all flea types to find the matching one
|
||||||
for (const tieredItemType of tieredFleaLimitTypes) {
|
for (const tieredItemType of tieredFleaLimitTypes) {
|
||||||
if (this.itemHelper.isOfBaseclass(offer.items[0]._tpl, tieredItemType)) {
|
if (this.itemHelper.isOfBaseclass(offerItemTpl, tieredItemType)) {
|
||||||
if (playerLevel < tieredFlea.unlocks[tieredItemType]) {
|
if (playerLevel < tieredFlea.unlocksType[tieredItemType]) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +168,7 @@ export class RagfairOfferHelper {
|
|||||||
// Get all offers that requre the desired item and filter out offers from non traders if player below ragifar unlock
|
// Get all offers that requre the desired item and filter out offers from non traders if player below ragifar unlock
|
||||||
const requiredOffers = this.ragfairRequiredItemsService.getRequiredItemsById(searchRequest.neededSearchId);
|
const requiredOffers = this.ragfairRequiredItemsService.getRequiredItemsById(searchRequest.neededSearchId);
|
||||||
const tieredFlea = this.ragfairConfig.tieredFlea;
|
const tieredFlea = this.ragfairConfig.tieredFlea;
|
||||||
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocks);
|
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocksType);
|
||||||
|
|
||||||
return requiredOffers.filter((offer: IRagfairOffer) => {
|
return requiredOffers.filter((offer: IRagfairOffer) => {
|
||||||
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
||||||
@ -195,7 +205,7 @@ export class RagfairOfferHelper {
|
|||||||
const offers: IRagfairOffer[] = [];
|
const offers: IRagfairOffer[] = [];
|
||||||
const playerIsFleaBanned = this.profileHelper.playerIsFleaBanned(pmcData);
|
const playerIsFleaBanned = this.profileHelper.playerIsFleaBanned(pmcData);
|
||||||
const tieredFlea = this.ragfairConfig.tieredFlea;
|
const tieredFlea = this.ragfairConfig.tieredFlea;
|
||||||
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocks);
|
const tieredFleaLimitTypes = Object.keys(tieredFlea.unlocksType);
|
||||||
|
|
||||||
for (const offer of this.ragfairOfferService.getOffers()) {
|
for (const offer of this.ragfairOfferService.getOffers()) {
|
||||||
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
if (!this.passesSearchFilterCriteria(searchRequest, offer, pmcData)) {
|
||||||
|
@ -174,7 +174,10 @@ export interface IArmorSettings {
|
|||||||
|
|
||||||
export interface ITieredFlea {
|
export interface ITieredFlea {
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
unlocks: Record<string, number>;
|
/** key: tpl, value: playerlevel */
|
||||||
|
unlocksTpl: Record<string, number>;
|
||||||
|
/** key: item type id, value: playerlevel */
|
||||||
|
unlocksType: Record<string, number>;
|
||||||
ammoTiersEnabled: boolean;
|
ammoTiersEnabled: boolean;
|
||||||
ammoTplUnlocks: Record<string, number>;
|
ammoTplUnlocks: Record<string, number>;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user