Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: new engine #180

Draft
wants to merge 24 commits into
base: beta
Choose a base branch
from
Draft

feat: new engine #180

wants to merge 24 commits into from

Commits on Mar 25, 2024

  1. i fucked up...

    Hà Trung Kiên committed Mar 25, 2024
    Configuration menu
    Copy the full SHA
    2c1ecd0 View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2024

  1. chore: upgrade to esm (fribbels#240)

    * chore: move to new ESLint config format
    
    ESLint is providing a new config format (typically called flat config).
    The old config format will be deprecated in ESLint 9.0 (currently in
    rc), and will be removed in ESLint 10. This commit migrate from the old
     config format at .eslintrc.js to the new flat config one at
     eslint.config.js.
    
    In addition, 3 packages were added:
    
    - @types/eslint: A dev dependency used to provide ESLint rules code
    suggestion.
    This dependency is used to provide linting through jsdoc for `styleRule`
     function. It has a very weak consumption (only 1 function relies on
     it), but it is a small types package. The old config file also relies
     on it (but does not install it as a npm package).
    
    - globals: A dev dependency used to configure ESLint global linting
    environment.
    It is consumed by various other package, and already present on the
    path. Although, some package depend on a very old version of globals
    (babel), and with how terrible npm symlinking is, ESLint would import
    version 11.x.x, with a tragic yet funny bug that will break ESLint.
    
    - typescript-eslint: A dev dependency that provide first class
    Typescript integration with ESLint.
    It provides a convenient config function fully typed to create ESLint
    flat config array. Additionally, provide the recommended
    Typescript/ESLint settings that can be conveniently extended.
    
    This commit also deleted 2 other dependencies:
    
    - @typescript-eslint/eslint-plugin
    - @typescript-eslint/parser
    
    Both these two packages are no longer needed to be explicitly declared
    as typescript-eslint already import them. And it will make better
    decision on which version of them it should depend on.
    
    chore: ESM support
    
    package.json is changed to declare module (ESM), practically mark the
    project as an ESM first class. Additionally, using ESM module to
    configure Playwright and ESLint.
    
    * chore: change npm lint script
    
    With the new config file format, ESLint no longer accepts --ext flag,
    as the new configuration file is capable of that already.
    
    * fix: __dirname on Node 18
    
    ---------
    
    Co-authored-by: Hà Trung Kiên <[email protected]>
    Kamii0909 and Hà Trung Kiên authored Mar 28, 2024
    Configuration menu
    Copy the full SHA
    be036c2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e408f1f View commit details
    Browse the repository at this point in the history
  3. i fucked up...

    Hà Trung Kiên committed Mar 28, 2024
    Configuration menu
    Copy the full SHA
    5352ed4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    90fa94b View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2024

  1. Configuration menu
    Copy the full SHA
    2a14dd4 View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2024

  1. Configuration menu
    Copy the full SHA
    8e62ac8 View commit details
    Browse the repository at this point in the history

Commits on Apr 1, 2024

  1. feat: break damage calculations, beta 2 update, implement boothill ta…

    …lent break dmg (fribbels#248)
    
    * feat: initial break dmg calc
    
    * feat: allow upload gif
    
    * feat: adding gallagher's besotted teammate debuff
    
    * feat: replace enemy hp option with max toughness selector
    
    * feat: add break elemental type scaling
    
    * feat: replace enemyHp logic with individual toggles
    
    * feat: implement boothill talent, ruan mei break efficiency buff
    
    * fix: tests
    
    * feat: update beta timestamps, update beta 2 content
    
    * fix: change boothill sort to basic atk
    fribbels authored Apr 1, 2024
    Configuration menu
    Copy the full SHA
    ace7075 View commit details
    Browse the repository at this point in the history
  2. fix: empty toughness bug

    fribbels committed Apr 1, 2024
    Configuration menu
    Copy the full SHA
    03bbe49 View commit details
    Browse the repository at this point in the history

Commits on Apr 2, 2024

  1. feat: 2.2 beta update, various QOLs (fribbels#250)

    * feat: undo 2.2 incorrect changes
    
    * fix: caelus imaginary weights wrong
    
    * feat: allow 0x debuffs for pioneer set, update conditional menu
    
    * feat: 2.1 light cone descriptions, fix acheron lc debuff name
    
    * feat: add warning for char/lc path mismatch, clarified teammate penacony set
    
    * fix: ui tweaks
    fribbels authored Apr 2, 2024
    Configuration menu
    Copy the full SHA
    c87074e View commit details
    Browse the repository at this point in the history

Commits on Apr 3, 2024

  1. Configuration menu
    Copy the full SHA
    215699b View commit details
    Browse the repository at this point in the history
  2. feat: replace conditionalstats addition with condensed substats, fix …

    …min stat filter precision (fribbels#254)
    
    * feat: replace conditionalstats addition with condensed substats
    
    * feat: increase block size to 150,000, switch clone method to spread operator
    
    * feat: add 0.000001 to basic stats to fix float filters
    
    * feat: save filters to 1000ths precision, add precisionRound to char preview stat hovers
    
    * fix: max main stat filter not applied to condensed stats, sort relic set display
    
    * fix: delete useless relic fields for optimizer, tweak artist label opacity
    fribbels authored Apr 3, 2024
    Configuration menu
    Copy the full SHA
    24609f0 View commit details
    Browse the repository at this point in the history
  3. style: 2 ESLint configs modified

    - @stylistic/indent:
    This rule is recommended to be disabled by ESLint
    author because it aren't very aware about lesser than traditional
    Typescript elements. In fact, it pops up in the most random places,
    some places hand-formatted, some conflict with formatter(s).
    
    Trivia: it conflicts with both prettier and dprint on indentation.
    Considering even dprint doesn't have the neccesary configuration to
    amend it, actually pretty(er) amazing.
    
    Alternative: disable the rule inline where it is less than amusing for
    the rule to kick in. Disabling a styling rule confuses the reader about
    unneccesary diretives, so it isn't a strong option.
    
    - @typescript-eslint/no-unused-vars:
    Configure the rule to ignore the _XXX pattern for unused arguments and
    variables. This is the TypeScript "noUnusedLocals" configuration
    behavior. In fact, _ is considered unnamed/throwaway in a majority of
    programming languages.
    Hà Trung Kiên committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b5facaa View commit details
    Browse the repository at this point in the history
  4. feat: stable serialization process

    The front API for the new serialization (for structuredClone) is in
    src/lib/optimizer/new/format.
    
    It relies on user supplied serialization and deserialization method to
    safely serialize/deserialize instances to JSON. By default, if a class
    is not configured to implement Serializable<SerializedFormat, Class>,
    Object.create(clazz.prototype) will be used for deserialization.
    
    Revisited classes that will be serialized to integrate the new API.
    
    test/refactor: Jingliu optimization test suite
    
    - Added 2 new optimizer tests for Jingliu, one with 133 SPD limit.
    - Added unit tests for the new serialization API.
    - Grouped the test into proper test suites.
    Hà Trung Kiên committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    29b8672 View commit details
    Browse the repository at this point in the history
  5. i fucked up...

    Hà Trung Kiên committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    33d92d8 View commit details
    Browse the repository at this point in the history
  6. style: 2 ESLint configs modified

    - @stylistic/indent:
    This rule is recommended to be disabled by ESLint
    author because it aren't very aware about lesser than traditional
    Typescript elements. In fact, it pops up in the most random places,
    some places hand-formatted, some conflict with formatter(s).
    
    Trivia: it conflicts with both prettier and dprint on indentation.
    Considering even dprint doesn't have the neccesary configuration to
    amend it, actually pretty(er) amazing.
    
    Alternative: disable the rule inline where it is less than amusing for
    the rule to kick in. Disabling a styling rule confuses the reader about
    unneccesary diretives, so it isn't a strong option.
    
    - @typescript-eslint/no-unused-vars:
    Configure the rule to ignore the _XXX pattern for unused arguments and
    variables. This is the TypeScript "noUnusedLocals" configuration
    behavior. In fact, _ is considered unnamed/throwaway in a majority of
    programming languages.
    Hà Trung Kiên committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    b5034b9 View commit details
    Browse the repository at this point in the history
  7. feat: stable serialization process

    The front API for the new serialization (for structuredClone) is in
    src/lib/optimizer/new/format.
    
    It relies on user supplied serialization and deserialization method to
    safely serialize/deserialize instances to JSON. By default, if a class
    is not configured to implement Serializable<SerializedFormat, Class>,
    Object.create(clazz.prototype) will be used for deserialization.
    
    Revisited classes that will be serialized to integrate the new API.
    
    test/refactor: Jingliu optimization test suite
    
    - Added 2 new optimizer tests for Jingliu, one with 133 SPD limit.
    - Added unit tests for the new serialization API.
    - Grouped the test into proper test suites.
    Hà Trung Kiên committed Apr 3, 2024
    Configuration menu
    Copy the full SHA
    cdfeda8 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    deaf51a View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2024

  1. refactor: folder reordering

    test: move unit test into its own folder (unit-tests).
    
    feat: add the progress update feature, allowing main thread to listen
    for partial optimization completion event.
    
    test: added a test that for progress update.
    Hà Trung Kiên committed Apr 6, 2024
    Configuration menu
    Copy the full SHA
    cab3787 View commit details
    Browse the repository at this point in the history
  2. fix: rollup optional dependencies

    Hà Trung Kiên committed Apr 6, 2024
    Configuration menu
    Copy the full SHA
    34a182c View commit details
    Browse the repository at this point in the history
  3. fix: rollup optional dependencies

    Hà Trung Kiên committed Apr 6, 2024
    Configuration menu
    Copy the full SHA
    ab7bc9b View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2024

  1. refactor: moved calculation logic out of iteration

    Previously, the calculation logic (which set effects are active,...etc)
    is in iteration/index.ts, which make it hard to calculate a single shot
    damage with a specified formula and build.
    
    feat: proof of concept implementation of tingyun, dhil and jingliu
    
    3 characters were re implemented with the new optimization system to
    probe for feedback.
    Hà Trung Kiên committed Apr 11, 2024
    Configuration menu
    Copy the full SHA
    9b6c162 View commit details
    Browse the repository at this point in the history

Commits on Apr 21, 2024

  1. feat: implementation for tricky characters

    Reference implementation for Boothill, Black Swan and Topaz.
    
    fix: stacking step for dhil
    Hà Trung Kiên committed Apr 21, 2024
    Configuration menu
    Copy the full SHA
    65858de View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2024

  1. feat/draft: implementation of an expression tree

    Should we rewrite it in Rust?
    kienht2 committed Jun 15, 2024
    Configuration menu
    Copy the full SHA
    d83cda1 View commit details
    Browse the repository at this point in the history