Grabbed dndbeyond's source code
``` ~/go/bin/sourcemapper -output ddb -jsurl https://media.dndbeyond.com/character-app/static/js/main.90aa78c5.js ```
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
import { DB_STRING_CARAPACE, DB_STRING_INTEGRATED_PROTECTION } from '../Core';
|
||||
import { DataOriginTypeEnum } from '../DataOrigin';
|
||||
import { ModifierAccessors, ModifierDerivers, ModifierValidators } from '../Modifier';
|
||||
import { RacialTraitAccessors } from '../RacialTrait';
|
||||
import { getArmorTypeId } from './accessors';
|
||||
import { ArmorTypeEnum } from './constants';
|
||||
/**
|
||||
* TODO fix this dirty dirty hack for Integrated Protection
|
||||
* @param modifier
|
||||
* @param modifierData
|
||||
* @param hasLightArmorProficiency
|
||||
*/
|
||||
export function hack__getSetUnarmoredModifierValue(modifier, modifierData, hasLightArmorProficiency) {
|
||||
const dataOrigin = ModifierAccessors.getDataOrigin(modifier);
|
||||
const dataOriginType = ModifierAccessors.getDataOriginType(modifier);
|
||||
if (dataOriginType === DataOriginTypeEnum.RACE &&
|
||||
RacialTraitAccessors.getName(dataOrigin.primary) === DB_STRING_INTEGRATED_PROTECTION &&
|
||||
ModifierAccessors.getValue(modifier) === 1 &&
|
||||
!hasLightArmorProficiency) {
|
||||
return ModifierDerivers.deriveValue(modifier, modifierData, undefined, false);
|
||||
}
|
||||
return ModifierDerivers.deriveValue(modifier, modifierData);
|
||||
}
|
||||
/**
|
||||
* TODO fix this dirty dirty hack for Carapace
|
||||
* @param modifier
|
||||
* @param modifierData
|
||||
* @param isWearingHeavyArmor
|
||||
*/
|
||||
export function hack__deriveBonusArmorModifierValue(modifier, modifierData, isWearingHeavyArmor) {
|
||||
const dataOrigin = ModifierAccessors.getDataOrigin(modifier);
|
||||
const dataOriginType = ModifierAccessors.getDataOriginType(modifier);
|
||||
if (dataOriginType === DataOriginTypeEnum.RACE &&
|
||||
RacialTraitAccessors.getName(dataOrigin.primary) === DB_STRING_CARAPACE &&
|
||||
ModifierAccessors.getValue(modifier) === 1 &&
|
||||
isWearingHeavyArmor) {
|
||||
return 0;
|
||||
}
|
||||
return ModifierDerivers.deriveValue(modifier, modifierData);
|
||||
}
|
||||
// This is a very CLEAN hack, but should probably not be here
|
||||
// If we have a global modifier turning off disadvantage on stealth, and it is
|
||||
// medium armor master, we need to check if this is medium armor
|
||||
// since we only remove disadvantage in that case for that modifier
|
||||
/**
|
||||
*
|
||||
* @param item
|
||||
* @param modifiers
|
||||
* @returns {boolean}
|
||||
*/
|
||||
export function hack__deriveStealthMediumArmorMasterShouldReturnStealthDefinition(item, modifiers) {
|
||||
if (modifiers.length === 1) {
|
||||
if (ModifierValidators.isStealthDisadvantageRemoveModifierForMediumArmor(modifiers[0])) {
|
||||
const armorType = getArmorTypeId(item);
|
||||
if (armorType && armorType !== ArmorTypeEnum.MEDIUM_ARMOR) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user