Split AirdropTypeEnum
into 2 enums, a spt specific one and another for the icon
property sent to client
This commit is contained in:
parent
0f7531ea76
commit
2448fe24b5
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"airdropTypeWeightings": {
|
"airdropTypeWeightings": {
|
||||||
"mixed": 5,
|
"mixed": 5,
|
||||||
"weaponArmor": 2,
|
"weaponArmor": 4,
|
||||||
"foodMedical": 1,
|
"foodMedical": 1,
|
||||||
"barter": 1,
|
"barter": 1,
|
||||||
"radar": 0
|
"radar": 0
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
export enum AirdropTypeEnum {
|
export enum AirdropTypeEnum {
|
||||||
|
COMMON = "Common",
|
||||||
|
SUPPLY = "Supply",
|
||||||
|
MEDICAL = "Medical",
|
||||||
|
WEAPON_ARMOR = "Weapon",
|
||||||
|
}
|
||||||
|
|
||||||
|
export enum SptAirdropTypeEnum {
|
||||||
COMMON = "mixed",
|
COMMON = "mixed",
|
||||||
SUPPLY = "barter",
|
SUPPLY = "barter",
|
||||||
FOOD_MEDICAL = "foodMedical",
|
FOOD_MEDICAL = "foodMedical",
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
import { MinMax } from "@spt/models/common/MinMax";
|
import { MinMax } from "@spt/models/common/MinMax";
|
||||||
import { AirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
import { AirdropTypeEnum, SptAirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
||||||
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
import { IBaseConfig } from "@spt/models/spt/config/IBaseConfig";
|
||||||
|
|
||||||
export interface IAirdropConfig extends IBaseConfig {
|
export interface IAirdropConfig extends IBaseConfig {
|
||||||
kind: "spt-airdrop";
|
kind: "spt-airdrop";
|
||||||
airdropTypeWeightings: Record<AirdropTypeEnum, number>;
|
airdropTypeWeightings: Record<SptAirdropTypeEnum, number>;
|
||||||
/** What rewards will the loot crate contain, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */
|
/** What rewards will the loot crate contain, keyed by drop type e.g. mixed/weaponArmor/foodMedical/barter */
|
||||||
loot: Record<string, IAirdropLoot>;
|
loot: Record<string, IAirdropLoot>;
|
||||||
customAirdropMapping: Record<string, AirdropTypeEnum>;
|
customAirdropMapping: Record<string, SptAirdropTypeEnum>;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Chance map will have an airdrop occur out of 100 - locations not included count as 0% */
|
/** Chance map will have an airdrop occur out of 100 - locations not included count as 0% */
|
||||||
|
@ -4,7 +4,7 @@ import { WeightedRandomHelper } from "@spt/helpers/WeightedRandomHelper";
|
|||||||
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
import { IItem } from "@spt/models/eft/common/tables/IItem";
|
||||||
import { IGetAirdropLootRequest } from "@spt/models/eft/location/IGetAirdropLootRequest";
|
import { IGetAirdropLootRequest } from "@spt/models/eft/location/IGetAirdropLootRequest";
|
||||||
import { IGetAirdropLootResponse } from "@spt/models/eft/location/IGetAirdropLootResponse";
|
import { IGetAirdropLootResponse } from "@spt/models/eft/location/IGetAirdropLootResponse";
|
||||||
import { AirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
import { AirdropTypeEnum, SptAirdropTypeEnum } from "@spt/models/enums/AirdropType";
|
||||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||||
import { ItemTpl } from "@spt/models/enums/ItemTpl";
|
import { ItemTpl } from "@spt/models/enums/ItemTpl";
|
||||||
import { IAirdropConfig, IAirdropLoot } from "@spt/models/spt/config/IAirdropConfig";
|
import { IAirdropConfig, IAirdropLoot } from "@spt/models/spt/config/IAirdropConfig";
|
||||||
@ -88,7 +88,7 @@ export class AirdropService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return { icon: AirdropTypeEnum.COMMON, container: crateLoot };
|
return { icon: airdropConfig.icon, container: crateLoot };
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -96,7 +96,7 @@ export class AirdropService {
|
|||||||
* @param airdropType What tpye of container: weapon/common etc
|
* @param airdropType What tpye of container: weapon/common etc
|
||||||
* @returns Item
|
* @returns Item
|
||||||
*/
|
*/
|
||||||
protected getAirdropCrateItem(airdropType: AirdropTypeEnum): IItem {
|
protected getAirdropCrateItem(airdropType: SptAirdropTypeEnum): IItem {
|
||||||
const airdropContainer = {
|
const airdropContainer = {
|
||||||
_id: this.hashUtil.generate(),
|
_id: this.hashUtil.generate(),
|
||||||
_tpl: "", // picked later
|
_tpl: "", // picked later
|
||||||
@ -107,19 +107,19 @@ export class AirdropService {
|
|||||||
};
|
};
|
||||||
|
|
||||||
switch (airdropType) {
|
switch (airdropType) {
|
||||||
case AirdropTypeEnum.FOOD_MEDICAL:
|
case SptAirdropTypeEnum.FOOD_MEDICAL:
|
||||||
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_MEDICAL_CRATE;
|
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_MEDICAL_CRATE;
|
||||||
break;
|
break;
|
||||||
case AirdropTypeEnum.SUPPLY:
|
case SptAirdropTypeEnum.SUPPLY:
|
||||||
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_SUPPLY_CRATE;
|
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_SUPPLY_CRATE;
|
||||||
break;
|
break;
|
||||||
case AirdropTypeEnum.WEAPON_ARMOR:
|
case SptAirdropTypeEnum.WEAPON_ARMOR:
|
||||||
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_WEAPON_CRATE;
|
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_WEAPON_CRATE;
|
||||||
break;
|
break;
|
||||||
case AirdropTypeEnum.COMMON:
|
case SptAirdropTypeEnum.COMMON:
|
||||||
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_COMMON_SUPPLY_CRATE;
|
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_COMMON_SUPPLY_CRATE;
|
||||||
break;
|
break;
|
||||||
case AirdropTypeEnum.RADAR:
|
case SptAirdropTypeEnum.RADAR:
|
||||||
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_1;
|
airdropContainer._tpl = ItemTpl.LOOTCONTAINER_AIRDROP_TECHNICAL_SUPPLY_CRATE_EVENT_1;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -134,7 +134,7 @@ export class AirdropService {
|
|||||||
* Randomly pick a type of airdrop loot using weighted values from config
|
* Randomly pick a type of airdrop loot using weighted values from config
|
||||||
* @returns airdrop type value
|
* @returns airdrop type value
|
||||||
*/
|
*/
|
||||||
protected chooseAirdropType(): AirdropTypeEnum {
|
protected chooseAirdropType(): SptAirdropTypeEnum {
|
||||||
const possibleAirdropTypes = this.airdropConfig.airdropTypeWeightings;
|
const possibleAirdropTypes = this.airdropConfig.airdropTypeWeightings;
|
||||||
|
|
||||||
return this.weightedRandomHelper.getWeightedValue(possibleAirdropTypes);
|
return this.weightedRandomHelper.getWeightedValue(possibleAirdropTypes);
|
||||||
@ -151,6 +151,8 @@ export class AirdropService {
|
|||||||
this.logger.error(
|
this.logger.error(
|
||||||
this.localisationService.getText("location-unable_to_find_airdrop_drop_config_of_type", airdropType),
|
this.localisationService.getText("location-unable_to_find_airdrop_drop_config_of_type", airdropType),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Default to common
|
||||||
lootSettingsByType = this.airdropConfig.loot[AirdropTypeEnum.COMMON];
|
lootSettingsByType = this.airdropConfig.loot[AirdropTypeEnum.COMMON];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user