Coder Social home page Coder Social logo

Comments (2)

Spice-King avatar Spice-King commented on July 21, 2024
// For linking system def to classes, foci and what not.
declare interface SWNRPowerSystemDef {
  resourceName: string;
  type: "effort pool" | "prepared spells" | "spell slots";
  system: SWNRPowerSystemDefs;
}

declare type SWNRValidLevels = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10;
declare type SWNRSpellLevels = 1 | 2 | 3 | 4 | 5;
declare type SWNRPowerSystemDefs =
  | SWNREffortPoolDef
  | SWNRPreparedSpellsDef
  | SWNRSpellSlotsDef;

declare interface SWNRPowerSystem {
  localizationKey: string;
  value: number;
  max: number;
  type: SWNRPowerSystemTypes;
}

declare type SWNRPowerSystemTypes =
  | SWNREffortPool
  | SWNRSpellSlots
  | SWNRPreparedSpells;

declare interface SWNREffortPool extends SWNRPowerSystem {
  committed: {
    active: number;
    scene: number;
    day: number;
  };
}

declare interface SWNRSpellSlots extends SWNRPowerSystem {
  spentSlots: {
    [SpellLevel in SWNRSpellLevels]: number;
  };
}

declare interface SWNRPreparedSpells extends SWNRPowerSystem {
  preparedSpells: {
    spellItemId: string;
    slotLevel: SWNRSpellLevels;
    used: boolean;
  }[];
}

declare interface SWNREffortPoolDef extends SWNRPowerSystemDef {
  timeSlots: {
    name: string;
    localization: string;
  }[];
}

declare interface SWNRPreparedSpellsDef extends SWNRPowerSystemDef {
  preparedSpellsPerCharLevel: {
    [P in SWNRValidLevels]: {
      [P in SWNRSpellLevels]: number;
    };
  };
}

declare interface SWNRSpellSlotsDef extends SWNRPowerSystemDef {
  spellsPerLevel: {
    [P in SWNRValidLevels]: {
      [P in SWNRSpellLevels]: {
        spellSlots: number;
        knownSpellsLimit: number;
      };
    };
  };
}

from foundry-swnr.

bwebster4 avatar bwebster4 commented on July 21, 2024

I like this

from foundry-swnr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.