refactor: Replace natural-regen disciplines with mana conversion speed disciplines
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m25s
Build and Publish Mana Loop Docker Image / build-and-publish (push) Successful in 1m25s
- Add conversionRate + sourceManaTypes fields to DisciplineDefinition
- Rewrite elemental-regen.ts: 8 base disciplines now convert raw→element
- Rewrite elemental-regen-advanced.ts: 6 composite/exotic disciplines with proper source recipes
- Update discipline-effects.ts: produce conversion entries instead of regen bonuses
- Update gameStore.ts tick: drain source mana types, add to target element
- Update discipline-slice.ts: gate activation on source mana type access
- Update discipline-math.ts: resolve mana type IDs to 'X mana' display names
- Update DisciplinesTab.tsx: show conversion info, source requirements, and lock state
- Update DisciplineDebugSection.tsx: pass elements to activate()
- Update effects.ts: remove regen_{element} merge (no longer produced)
This commit is contained in:
@@ -1,197 +1,233 @@
|
||||
// ─── Elemental Regen Disciplines (Composite + Exotic) ─────────────────────────
|
||||
// Regen disciplines for composite and exotic mana types.
|
||||
// ─── Elemental Conversion Disciplines (Composite + Exotic) ──────────────────────
|
||||
// Conversion disciplines for composite and exotic mana types.
|
||||
// All are BASE attunement so they are available to every role once the element is unlocked.
|
||||
|
||||
import { DisciplinesAttunementType } from '../../types/disciplines';
|
||||
import type { DisciplineDefinition } from '../../types/disciplines';
|
||||
|
||||
// ── Composite Elements ─────────────────────────────────────────────────────
|
||||
|
||||
const COMP_CONVERSION = 0.35;
|
||||
const COMP_DRAIN = 2;
|
||||
const COMP_DIFF = 160;
|
||||
const COMP_SCALE = 80;
|
||||
|
||||
const metalDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-metal',
|
||||
name: 'Metal Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'metal',
|
||||
baseCost: 12,
|
||||
description: 'Convert raw mana + fire mana + earth mana into metal mana over time.',
|
||||
statBonus: { stat: 'conversion_metal', baseValue: COMP_CONVERSION, label: 'Metal Conversion/tick' },
|
||||
difficultyFactor: COMP_DIFF,
|
||||
scalingFactor: COMP_SCALE,
|
||||
drainBase: COMP_DRAIN,
|
||||
conversionRate: COMP_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'fire', 'earth'],
|
||||
requires: ['metal'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-metal-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Metal Conversion/tick',
|
||||
bonus: { stat: 'conversion_metal', amount: COMP_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-metal-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Metal Conversion/tick',
|
||||
bonus: { stat: 'conversion_metal', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const sandDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-sand',
|
||||
name: 'Sand Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'sand',
|
||||
baseCost: 12,
|
||||
description: 'Convert raw mana + earth mana + water mana into sand mana over time.',
|
||||
statBonus: { stat: 'conversion_sand', baseValue: COMP_CONVERSION, label: 'Sand Conversion/tick' },
|
||||
difficultyFactor: COMP_DIFF,
|
||||
scalingFactor: COMP_SCALE,
|
||||
drainBase: COMP_DRAIN,
|
||||
conversionRate: COMP_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'earth', 'water'],
|
||||
requires: ['sand'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-sand-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Sand Conversion/tick',
|
||||
bonus: { stat: 'conversion_sand', amount: COMP_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-sand-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Sand Conversion/tick',
|
||||
bonus: { stat: 'conversion_sand', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const lightningDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-lightning',
|
||||
name: 'Lightning Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'lightning',
|
||||
baseCost: 12,
|
||||
description: 'Convert raw mana + fire mana + air mana into lightning mana over time.',
|
||||
statBonus: { stat: 'conversion_lightning', baseValue: COMP_CONVERSION, label: 'Lightning Conversion/tick' },
|
||||
difficultyFactor: COMP_DIFF,
|
||||
scalingFactor: COMP_SCALE,
|
||||
drainBase: COMP_DRAIN,
|
||||
conversionRate: COMP_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'fire', 'air'],
|
||||
requires: ['lightning'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-lightning-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Lightning Conversion/tick',
|
||||
bonus: { stat: 'conversion_lightning', amount: COMP_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-lightning-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Lightning Conversion/tick',
|
||||
bonus: { stat: 'conversion_lightning', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
// ── Exotic Elements ────────────────────────────────────────────────────────
|
||||
|
||||
const EXO_CONVERSION = 0.25;
|
||||
const EXO_DRAIN = 3;
|
||||
const EXO_DIFF = 220;
|
||||
const EXO_SCALE = 110;
|
||||
|
||||
const crystalDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-crystal',
|
||||
name: 'Crystal Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'crystal',
|
||||
baseCost: 18,
|
||||
description: 'Convert raw mana + sand mana + light mana into crystal mana over time.',
|
||||
statBonus: { stat: 'conversion_crystal', baseValue: EXO_CONVERSION, label: 'Crystal Conversion/tick' },
|
||||
difficultyFactor: EXO_DIFF,
|
||||
scalingFactor: EXO_SCALE,
|
||||
drainBase: EXO_DRAIN,
|
||||
conversionRate: EXO_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'sand', 'light'],
|
||||
requires: ['crystal'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-crystal-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Crystal Conversion/tick',
|
||||
bonus: { stat: 'conversion_crystal', amount: EXO_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-crystal-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Crystal Conversion/tick',
|
||||
bonus: { stat: 'conversion_crystal', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const stellarDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-stellar',
|
||||
name: 'Stellar Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'stellar',
|
||||
baseCost: 18,
|
||||
description: 'Convert raw mana + fire mana + light mana into stellar mana over time.',
|
||||
statBonus: { stat: 'conversion_stellar', baseValue: EXO_CONVERSION, label: 'Stellar Conversion/tick' },
|
||||
difficultyFactor: EXO_DIFF,
|
||||
scalingFactor: EXO_SCALE,
|
||||
drainBase: EXO_DRAIN,
|
||||
conversionRate: EXO_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'fire', 'light'],
|
||||
requires: ['stellar'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-stellar-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Stellar Conversion/tick',
|
||||
bonus: { stat: 'conversion_stellar', amount: EXO_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-stellar-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Stellar Conversion/tick',
|
||||
bonus: { stat: 'conversion_stellar', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const voidDiscipline: DisciplineDefinition = {
|
||||
id: 'regen-void',
|
||||
name: 'Void Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'void',
|
||||
baseCost: 18,
|
||||
description: 'Convert raw mana + dark mana + death mana into void mana over time.',
|
||||
statBonus: { stat: 'conversion_void', baseValue: EXO_CONVERSION, label: 'Void Conversion/tick' },
|
||||
difficultyFactor: EXO_DIFF,
|
||||
scalingFactor: EXO_SCALE,
|
||||
drainBase: EXO_DRAIN,
|
||||
conversionRate: EXO_CONVERSION,
|
||||
sourceManaTypes: ['raw', 'dark', 'death'],
|
||||
requires: ['void'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-void-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Void Conversion/tick',
|
||||
bonus: { stat: 'conversion_void', amount: EXO_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: 'regen-void-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Void Conversion/tick',
|
||||
bonus: { stat: 'conversion_void', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
export const elementalRegenAdvancedDisciplines: DisciplineDefinition[] = [
|
||||
// ── Composite Elements ─────────────────────────────────────────────────────
|
||||
{
|
||||
id: 'regen-metal',
|
||||
name: 'Metal Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'metal',
|
||||
baseCost: 12,
|
||||
description: 'Attune your metal mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_metal', baseValue: 0.35, label: 'Metal Regen/tick' },
|
||||
difficultyFactor: 160,
|
||||
scalingFactor: 80,
|
||||
drainBase: 2,
|
||||
requires: ['metal'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-metal-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Metal Regen/tick',
|
||||
bonus: { stat: 'regen_metal', amount: 0.35 },
|
||||
},
|
||||
{
|
||||
id: 'regen-metal-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Metal Regen/tick',
|
||||
bonus: { stat: 'regen_metal', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'regen-sand',
|
||||
name: 'Sand Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'sand',
|
||||
baseCost: 12,
|
||||
description: 'Attune your sand mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_sand', baseValue: 0.35, label: 'Sand Regen/tick' },
|
||||
difficultyFactor: 160,
|
||||
scalingFactor: 80,
|
||||
drainBase: 2,
|
||||
requires: ['sand'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-sand-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Sand Regen/tick',
|
||||
bonus: { stat: 'regen_sand', amount: 0.35 },
|
||||
},
|
||||
{
|
||||
id: 'regen-sand-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Sand Regen/tick',
|
||||
bonus: { stat: 'regen_sand', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'regen-lightning',
|
||||
name: 'Lightning Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'lightning',
|
||||
baseCost: 12,
|
||||
description: 'Attune your lightning mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_lightning', baseValue: 0.35, label: 'Lightning Regen/tick' },
|
||||
difficultyFactor: 160,
|
||||
scalingFactor: 80,
|
||||
drainBase: 2,
|
||||
requires: ['lightning'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-lightning-1',
|
||||
type: 'once',
|
||||
threshold: 150,
|
||||
value: 0,
|
||||
description: '+0.35 Lightning Regen/tick',
|
||||
bonus: { stat: 'regen_lightning', amount: 0.35 },
|
||||
},
|
||||
{
|
||||
id: 'regen-lightning-inf',
|
||||
type: 'infinite',
|
||||
threshold: 400,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.15 Lightning Regen/tick',
|
||||
bonus: { stat: 'regen_lightning', amount: 0.15 },
|
||||
},
|
||||
],
|
||||
},
|
||||
// ── Exotic Elements ────────────────────────────────────────────────────────
|
||||
{
|
||||
id: 'regen-crystal',
|
||||
name: 'Crystal Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'crystal',
|
||||
baseCost: 18,
|
||||
description: 'Attune your crystal mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_crystal', baseValue: 0.25, label: 'Crystal Regen/tick' },
|
||||
difficultyFactor: 220,
|
||||
scalingFactor: 110,
|
||||
drainBase: 3,
|
||||
requires: ['crystal'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-crystal-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Crystal Regen/tick',
|
||||
bonus: { stat: 'regen_crystal', amount: 0.25 },
|
||||
},
|
||||
{
|
||||
id: 'regen-crystal-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Crystal Regen/tick',
|
||||
bonus: { stat: 'regen_crystal', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'regen-stellar',
|
||||
name: 'Stellar Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'stellar',
|
||||
baseCost: 18,
|
||||
description: 'Attune your stellar mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_stellar', baseValue: 0.25, label: 'Stellar Regen/tick' },
|
||||
difficultyFactor: 220,
|
||||
scalingFactor: 110,
|
||||
drainBase: 3,
|
||||
requires: ['stellar'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-stellar-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Stellar Regen/tick',
|
||||
bonus: { stat: 'regen_stellar', amount: 0.25 },
|
||||
},
|
||||
{
|
||||
id: 'regen-stellar-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Stellar Regen/tick',
|
||||
bonus: { stat: 'regen_stellar', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'regen-void',
|
||||
name: 'Void Mana Flow',
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'void',
|
||||
baseCost: 18,
|
||||
description: 'Attune your void mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_void', baseValue: 0.25, label: 'Void Regen/tick' },
|
||||
difficultyFactor: 220,
|
||||
scalingFactor: 110,
|
||||
drainBase: 3,
|
||||
requires: ['void'],
|
||||
perks: [
|
||||
{
|
||||
id: 'regen-void-1',
|
||||
type: 'once',
|
||||
threshold: 200,
|
||||
value: 0,
|
||||
description: '+0.25 Void Regen/tick',
|
||||
bonus: { stat: 'regen_void', amount: 0.25 },
|
||||
},
|
||||
{
|
||||
id: 'regen-void-inf',
|
||||
type: 'infinite',
|
||||
threshold: 500,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.1 Void Regen/tick',
|
||||
bonus: { stat: 'regen_void', amount: 0.1 },
|
||||
},
|
||||
],
|
||||
},
|
||||
metalDiscipline,
|
||||
sandDiscipline,
|
||||
lightningDiscipline,
|
||||
crystalDiscipline,
|
||||
stellarDiscipline,
|
||||
voidDiscipline,
|
||||
];
|
||||
|
||||
@@ -1,28 +1,38 @@
|
||||
// ─── Elemental Regen Disciplines (Base + Utility) ─────────────────────────────
|
||||
// One discipline per mana type that provides passive regen for that element.
|
||||
// ─── Elemental Conversion Disciplines (Base + Utility) ─────────────────────────
|
||||
// One discipline per mana type that converts raw mana into that element.
|
||||
// All are BASE attunement so they are available to every role once the element is unlocked.
|
||||
|
||||
import { DisciplinesAttunementType } from '../../types/disciplines';
|
||||
import type { DisciplineDefinition } from '../../types/disciplines';
|
||||
|
||||
const BASE_REGEN = 0.5;
|
||||
const BASE_CONVERSION = 0.5;
|
||||
const BASE_DRAIN = 1.5;
|
||||
const BASE_DIFF = 120;
|
||||
const BASE_SCALE = 60;
|
||||
|
||||
function makeBaseRegen(id: string, name: string, manaType: string, cost: number): DisciplineDefinition {
|
||||
const shortId = id.replace('regen-', '');
|
||||
function makeBaseConversion(
|
||||
id: string,
|
||||
name: string,
|
||||
manaType: string,
|
||||
cost: number,
|
||||
): DisciplineDefinition {
|
||||
return {
|
||||
id,
|
||||
name: `${name} Mana Flow`,
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: manaType as DisciplineDefinition['manaType'],
|
||||
baseCost: cost,
|
||||
description: `Attune your ${name.toLowerCase()} mana to regenerate passively over time.`,
|
||||
statBonus: { stat: `regen_${shortId}` as DisciplineDefinition['statBonus']['stat'], baseValue: BASE_REGEN, label: `${name} Regen/tick` },
|
||||
description: `Convert raw mana into ${name.toLowerCase()} mana over time.`,
|
||||
statBonus: {
|
||||
stat: `conversion_${manaType}` as DisciplineDefinition['statBonus']['stat'],
|
||||
baseValue: BASE_CONVERSION,
|
||||
label: `${name} Conversion/tick`,
|
||||
},
|
||||
difficultyFactor: BASE_DIFF,
|
||||
scalingFactor: BASE_SCALE,
|
||||
drainBase: BASE_DRAIN,
|
||||
conversionRate: BASE_CONVERSION,
|
||||
sourceManaTypes: ['raw' as DisciplineDefinition['manaType']],
|
||||
requires: [manaType],
|
||||
perks: [
|
||||
{
|
||||
@@ -30,16 +40,16 @@ function makeBaseRegen(id: string, name: string, manaType: string, cost: number)
|
||||
type: 'once',
|
||||
threshold: 100,
|
||||
value: 0,
|
||||
description: `+${BASE_REGEN} ${name} Regen/tick`,
|
||||
bonus: { stat: `regen_${shortId}`, amount: BASE_REGEN },
|
||||
description: `+${BASE_CONVERSION} ${name} Conversion/tick`,
|
||||
bonus: { stat: `conversion_${manaType}`, amount: BASE_CONVERSION },
|
||||
},
|
||||
{
|
||||
id: `${id}-inf`,
|
||||
type: 'infinite',
|
||||
threshold: 300,
|
||||
value: 100,
|
||||
description: `Every 100 XP: +0.25 ${name} Regen/tick`,
|
||||
bonus: { stat: `regen_${shortId}`, amount: 0.25 },
|
||||
description: `Every 100 XP: +0.25 ${name} Conversion/tick`,
|
||||
bonus: { stat: `conversion_${manaType}`, amount: 0.25 },
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -47,13 +57,13 @@ function makeBaseRegen(id: string, name: string, manaType: string, cost: number)
|
||||
|
||||
export const elementalRegenDisciplines: DisciplineDefinition[] = [
|
||||
// ── Base Elements ──────────────────────────────────────────────────────────
|
||||
makeBaseRegen('regen-fire', 'Fire', 'fire', 8),
|
||||
makeBaseRegen('regen-water', 'Water', 'water', 8),
|
||||
makeBaseRegen('regen-air', 'Air', 'air', 8),
|
||||
makeBaseRegen('regen-earth', 'Earth', 'earth', 8),
|
||||
makeBaseRegen('regen-light', 'Light', 'light', 8),
|
||||
makeBaseRegen('regen-dark', 'Dark', 'dark', 8),
|
||||
makeBaseRegen('regen-death', 'Death', 'death', 8),
|
||||
makeBaseConversion('regen-fire', 'Fire', 'fire', 8),
|
||||
makeBaseConversion('regen-water', 'Water', 'water', 8),
|
||||
makeBaseConversion('regen-air', 'Air', 'air', 8),
|
||||
makeBaseConversion('regen-earth', 'Earth', 'earth', 8),
|
||||
makeBaseConversion('regen-light', 'Light', 'light', 8),
|
||||
makeBaseConversion('regen-dark', 'Dark', 'dark', 8),
|
||||
makeBaseConversion('regen-death', 'Death', 'death', 8),
|
||||
|
||||
// ── Utility Element ────────────────────────────────────────────────────────
|
||||
{
|
||||
@@ -62,11 +72,13 @@ export const elementalRegenDisciplines: DisciplineDefinition[] = [
|
||||
attunement: DisciplinesAttunementType.BASE,
|
||||
manaType: 'transference',
|
||||
baseCost: 6,
|
||||
description: 'Attune your transference mana to regenerate passively over time.',
|
||||
statBonus: { stat: 'regen_transference', baseValue: 0.4, label: 'Transference Regen/tick' },
|
||||
description: 'Convert raw mana into transference mana over time.',
|
||||
statBonus: { stat: 'conversion_transference', baseValue: 0.4, label: 'Transference Conversion/tick' },
|
||||
difficultyFactor: 100,
|
||||
scalingFactor: 50,
|
||||
drainBase: 1,
|
||||
conversionRate: 0.4,
|
||||
sourceManaTypes: ['transference'],
|
||||
requires: ['transference'],
|
||||
perks: [
|
||||
{
|
||||
@@ -74,16 +86,16 @@ export const elementalRegenDisciplines: DisciplineDefinition[] = [
|
||||
type: 'once',
|
||||
threshold: 100,
|
||||
value: 0,
|
||||
description: '+0.4 Transference Regen/tick',
|
||||
bonus: { stat: 'regen_transference', amount: 0.4 },
|
||||
description: '+0.4 Transference Conversion/tick',
|
||||
bonus: { stat: 'conversion_transference', amount: 0.4 },
|
||||
},
|
||||
{
|
||||
id: 'regen-transference-inf',
|
||||
type: 'infinite',
|
||||
threshold: 300,
|
||||
value: 100,
|
||||
description: 'Every 100 XP: +0.2 Transference Regen/tick',
|
||||
bonus: { stat: 'regen_transference', amount: 0.2 },
|
||||
description: 'Every 100 XP: +0.2 Transference Conversion/tick',
|
||||
bonus: { stat: 'conversion_transference', amount: 0.2 },
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user