diff --git a/scripts/augments.js b/scripts/augments.js new file mode 100644 index 0000000..6d7847a --- /dev/null +++ b/scripts/augments.js @@ -0,0 +1,177 @@ +export const DEFAULT_AUGMENTS = [ + { + id: "bonded", + name: "Bonded", + effect: "Primary module for Ikonis hardware synchronization.", + cost: "Cost: None", + img: "icons/magic/control/debuff-energy-hold-blue-yellow.webp", + effects: [ + { + _id: "ikonisBondedEff", + name: "Ikonis: Bonded", + type: "base", + img: "icons/magic/control/debuff-energy-hold-blue-yellow.webp", + system: { + changes: [ + { + key: "system.bonuses.damage.primaryWeapon.bonus", + type: "add", + value: "@tier", + priority: null, + phase: "initial" + } + ], + duration: { description: "", type: "" }, + rangeDependence: { enabled: false, type: "withinRange", target: "hostile", range: "melee" }, + stacking: null, + targetDispositions: [] + }, + disabled: false, + transfer: true, + statuses: [], + showIcon: 1, + flags: {} + } + ] + }, + { + id: "force", + name: "Force", + effect: "+1 Damage on Melee attacks.", + cost: "Cost: 3 gears, 2 lenses, 4 aluminum, 1 capacitor", + img: "icons/commodities/gems/gem-cut-faceted-princess-purple.webp", + effects: [ + { + _id: "ikonisForceEff", + name: "Ikonis: Force", + type: "base", + img: "icons/commodities/gems/gem-cut-faceted-princess-purple.webp", + system: { + changes: [ + { + key: "system.bonuses.damage.physical.bonus", + type: "add", + value: "1", + priority: null, + phase: "initial" + } + ], + duration: { description: "", type: "" }, + rangeDependence: { enabled: false, type: "withinRange", target: "hostile", range: "melee" }, + stacking: null, + targetDispositions: [] + }, + disabled: false, + transfer: true, + statuses: [], + showIcon: 1, + flags: {} + } + ] + }, + { + id: "guard", + name: "Guard", + effect: "+1 Armor", + cost: "Cost: 3 wires, 2 silver, 2 platinum, 3 fuses", + img: "icons/magic/fire/flame-burning-orange.webp", + effects: [ + { + _id: "ikonisGuardEff", + name: "Ikonis: Guard", + type: "base", + img: "icons/magic/fire/flame-burning-orange.webp", + system: { + changes: [ + { + key: "system.damageType", + type: "override", + value: "fire", + priority: null, + phase: "initial" + } + ], + duration: { description: "", type: "" }, + rangeDependence: { enabled: false, type: "withinRange", target: "hostile", range: "melee" }, + stacking: null, + targetDispositions: [] + }, + disabled: false, + transfer: true, + statuses: [], + showIcon: 1, + flags: {} + } + ] + }, + { + id: "converge", + name: "Converge", + effect: "+1 to attack rolls", + cost: "Cost: 4 coils, 2 crystals, 5 gold, 3 discs", + img: "icons/equipment/chest/breastplate-metal-scaled-grey.webp", + effects: [ + { + _id: "ikonisConvergeEff", + name: "Ikonis: Converge", + type: "base", + img: "icons/equipment/chest/breastplate-metal-scaled-grey.webp", + system: { + changes: [ + { + key: "system.bonuses.roll.attack.bonus", + type: "add", + value: "1", + priority: null, + phase: "initial" + } + ], + duration: { description: "", type: "" }, + rangeDependence: { enabled: false, type: "withinRange", target: "hostile", range: "melee" }, + stacking: null, + targetDispositions: [] + }, + disabled: false, + transfer: true, + statuses: [], + showIcon: 1, + flags: {} + } + ] + }, + { + id: "amplify", + name: "Amplify", + effect: "On a successful attack, roll an additional damage die and drop the lowest result.", + cost: "Cost: 4 crystals, 4 cobalt, 4 copper, 4 capacitors", + img: "icons/magic/deflect/shield-barrier-energy-pink.webp", + effects: [ + { + _id: "ikonisAmplifyEff", + name: "Ikonis: Amplify", + type: "base", + img: "icons/magic/deflect/shield-barrier-energy-pink.webp", + system: { + changes: [ + { + key: "system.bonuses.damage.primaryWeapon.dice", + type: "add", + value: "1", + priority: null, + phase: "initial" + } + ], + duration: { description: "", type: "" }, + rangeDependence: { enabled: false, type: "withinRange", target: "hostile", range: "melee" }, + stacking: null, + targetDispositions: [] + }, + disabled: false, + transfer: true, + statuses: [], + showIcon: 1, + flags: {} + } + ] + } +]; diff --git a/scripts/ikonis-data.js b/scripts/ikonis-data.js index 490275d..9122513 100644 --- a/scripts/ikonis-data.js +++ b/scripts/ikonis-data.js @@ -1,52 +1,4 @@ -export const DEFAULT_AUGMENTS = [ - { - id: "bonded", - name: "Bonded", - effect: "Primary module for Ikonis hardware synchronization.", - cost: "Cost: None", - img: "icons/magic/control/debuff-energy-hold-blue-yellow.webp", - effects: [ - { - _id: "ikonisBondedEff", - name: "Ikonis: Bonded", - type: "base", - img: "icons/magic/control/debuff-energy-hold-blue-yellow.webp", - system: { - changes: [ - { - key: "system.bonuses.damage.primaryWeapon.bonus", - type: "add", - value: "@tier", - priority: null, - phase: "initial" - } - ], - duration: { - description: "", - type: "" - }, - rangeDependence: { - enabled: false, - type: "withinRange", - target: "hostile", - range: "melee" - }, - stacking: null, - targetDispositions: [] - }, - disabled: false, - transfer: true, - statuses: [], - showIcon: 1, - flags: {} - } - ] - }, - { id: "force", name: "Force", effect: "+1 Damage on Melee attacks.", cost: "Cost: 2 Iron" }, - { id: "fire", name: "Fire", effect: "Deals Fire damage instead of Physical.", cost: "Cost: 1 Blaze Glass" }, - { id: "shield", name: "Shield", effect: "+1 Armor while equipped.", cost: "Cost: 2 Steel" }, - { id: "range", name: "Range", effect: "Increases Range by 1 step.", cost: "Cost: 1 Lens" } -]; +import { DEFAULT_AUGMENTS } from './augments.js'; // Global caches for resolved features to keep getters fast const _featureCache = new Map();