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

Calculation Rewriting Part 2.3: Skill and Item parsing #515

Merged
merged 191 commits into from
Dec 31, 2018

Commits on Aug 21, 2018

  1. Better IParser interfaces: 1. IStringParser

    Replace IParser<TResult> by IStringParser<TResult> and move these to subnamespace.
    The non-generic IParser interface will later be generalized to also support GivenStatsParser and parsers for items and skills, making this separation necessary. Plus this also allows grouping the now IStringParsers into a namespace.
    brather1ng committed Aug 21, 2018
    Configuration menu
    Copy the full SHA
    ff7513e View commit details
    Browse the repository at this point in the history
  2. Better IParser interfaces: 2. ICoreParser, IParser<TParameter>

    Change previous IParser interface to ICoreParser.
    Add new IParser<TResult> interface, implemented by ICoreParser using CoreParserParameter.
    Usage of ICoreParser/CoreParser stayed the same, however the underlying interface can now be used for new parsers.
    brather1ng committed Aug 21, 2018
    Configuration menu
    Copy the full SHA
    1786019 View commit details
    Browse the repository at this point in the history
  3. Catch ParseException in CoreParser,

    logging it and creating an appropriate ParseResult.
    Add tests for CoreParser.
    brather1ng committed Aug 21, 2018
    Configuration menu
    Copy the full SHA
    122204f View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2018

  1. Let GivenStatsParser implement IParser

    Refactor ParseResult for easier and safer usage
    brather1ng committed Aug 22, 2018
    Configuration menu
    Copy the full SHA
    839d7fa View commit details
    Browse the repository at this point in the history

Commits on Aug 23, 2018

  1. Configuration menu
    Copy the full SHA
    83d703f View commit details
    Browse the repository at this point in the history
  2. Remove Keyword.Bow

    brather1ng committed Aug 23, 2018
    Configuration menu
    Copy the full SHA
    9e03565 View commit details
    Browse the repository at this point in the history
  3. Change how keyword conditions work

    - With(Keyword) is now in IDamageRelatedStatBuilder instead of IStatBuilder and is used directly everywhere it needs to be.
    - IConditionBuilders.With(Keyword) is no longer part specific, just MainSkillHasKeyword, and directly builds to a value condition. This the correct way everywhere it is still used because those mods refer to skills and are thus not affected by the skill part.
    - Add IConditionBuilders.WithPart(Keyword) for those case where skill part specific keywords are required but the stat is not damage related,
    brather1ng committed Aug 23, 2018
    Configuration menu
    Copy the full SHA
    2566ace View commit details
    Browse the repository at this point in the history
  4. Add RePoE gem files

    brather1ng committed Aug 23, 2018
    Configuration menu
    Copy the full SHA
    2c766d2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fc4fcc4 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e099643 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    37ebcd8 View commit details
    Browse the repository at this point in the history
  8. Add SkillJsonDeserializer

    that deserializes gem json into SkillDefinitions (far from complete atm).
    Flesh out SkillDefinition a bit as required for the implemented deserialization parts.
    Implement selection of Keywords from active skill types and gem tags.
    brather1ng committed Aug 23, 2018
    Configuration menu
    Copy the full SHA
    fe0ca2f View commit details
    Browse the repository at this point in the history

Commits on Aug 24, 2018

  1. Configuration menu
    Copy the full SHA
    1167e4a View commit details
    Browse the repository at this point in the history
  2. Extend SkillDefinition and SkillJsonDeserializer

    to support everything relevant for Frenzy
    brather1ng committed Aug 24, 2018
    Configuration menu
    Copy the full SHA
    7ef4c94 View commit details
    Browse the repository at this point in the history
  3. Add base item related and some other fields to skill parsing

    Add gems.json and gem_tooltips.json to GameModel.Tests/Data containing 20 gems for easily testing fields that can't be tested with Frenzy as the one example skill alone.
    brather1ng committed Aug 24, 2018
    Configuration menu
    Copy the full SHA
    1522304 View commit details
    Browse the repository at this point in the history
  4. Finish SkillDefinition and SkillJsonDeserializer

    - Ignore skills with unreleased base items
    - Move ItemClass to GameModel project
    - Deserialize active_skill.weapon_restrictions
    - Deserialize per_level/static.crit_chance, .cooldown, .mana_multiplier and .mana_reservation_override
    - Deserialize support_gem
    - Set ActiveSkillDefinition.ProvidesBuff from active skill types
    brather1ng committed Aug 24, 2018
    Configuration menu
    Copy the full SHA
    428fe72 View commit details
    Browse the repository at this point in the history

Commits on Aug 25, 2018

  1. Add (mostly empty) ActiveSkillParser and integration test

    The integration test currently fails because there is no implementation.
    Add SkillJsonDeserializer.DeserializeAsync() without parameters that uses the embedded resource files.
    brather1ng committed Aug 25, 2018
    Configuration menu
    Copy the full SHA
    1110e0b View commit details
    Browse the repository at this point in the history
  2. Encode Tags as doubles in NodeValue without loss

    Just casting from/to double does not work with flags above 2^52. Casting to int in between stops working even earlier. (other enums don't have this problem because they are ints, which can be cast from/to double without loss)
    brather1ng committed Aug 25, 2018
    Configuration menu
    Copy the full SHA
    7e67543 View commit details
    Browse the repository at this point in the history
  3. Implement ActiveSkillParser enough to pass the test

    (most is hardcoded for frenzy)
    Add missing gem related stats (requirements, surfacing the keyword stats from IStatFactory as IStatBuilders, damage effectiveness)
    brather1ng committed Aug 25, 2018
    Configuration menu
    Copy the full SHA
    776ebf1 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2fc355e View commit details
    Browse the repository at this point in the history

Commits on Aug 26, 2018

  1. Configuration menu
    Copy the full SHA
    5e5e03d View commit details
    Browse the repository at this point in the history
  2. Add parsing for hand/weapon usage

    - MainHand only skills
    - dual wield requiring skills
    - shield requiring skills
    - weapon restrictions
    brather1ng committed Aug 26, 2018
    Configuration menu
    Copy the full SHA
    4127079 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2018

  1. Configuration menu
    Copy the full SHA
    37b8c09 View commit details
    Browse the repository at this point in the history
  2. Add base damage parsing

    brather1ng committed Aug 27, 2018
    Configuration menu
    Copy the full SHA
    55acdac View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2018

  1. Add and parse skill number of hits and double hit when dual wielding

    (Vaal) Dual Strike and (Vaal) Cyclone have base_skill_number_of_additional_hits.
    Double Strike, Cleave and Riposte have skill_double_hits_when_dual_wielding.
    brather1ng committed Aug 28, 2018
    Configuration menu
    Copy the full SHA
    9790959 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    99012a3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    df6ae98 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    fb66b0a View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2018

  1. Configuration menu
    Copy the full SHA
    d8bb6f2 View commit details
    Browse the repository at this point in the history
  2. Add ModifierSource.Local.Gem for level and attribute requirements

    Requirements come from the gem, not the skill. Item-innate skills do not apply requirements.
    Change all other modifiers in ActiveSkillParser to be global. Skill local isn't required for any of them.
    brather1ng committed Aug 29, 2018
    Configuration menu
    Copy the full SHA
    3ef4c3d View commit details
    Browse the repository at this point in the history
  3. Add UntranslatedStatParser

    brather1ng committed Aug 29, 2018
    Configuration menu
    Copy the full SHA
    2e1a837 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    b34bba0 View commit details
    Browse the repository at this point in the history
  5. Use UntranslatedStatParser in ActiveSkillParser

    to parse quality and level stats.
    brather1ng committed Aug 29, 2018
    Configuration menu
    Copy the full SHA
    90c9b58 View commit details
    Browse the repository at this point in the history
  6. Add StatTranslationLoader; use SkillDefinition.StatTranslationFile

    to select the file to be used for translations.
    brather1ng committed Aug 29, 2018
    Configuration menu
    Copy the full SHA
    ad01353 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2018

  1. Configuration menu
    Copy the full SHA
    1ba83f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ca7dd1d View commit details
    Browse the repository at this point in the history
  3. Add IPartialSkillParser interface for the extracted parsers

    so that ActiveSkillParser can simply run them in a loop.
    brather1ng committed Aug 30, 2018
    Configuration menu
    Copy the full SHA
    219cb47 View commit details
    Browse the repository at this point in the history

Commits on Sep 1, 2018

  1. Update data

    brather1ng committed Sep 1, 2018
    Configuration menu
    Copy the full SHA
    0402406 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7acace7 View commit details
    Browse the repository at this point in the history

Commits on Sep 5, 2018

  1. Update skill tree stat parsing for Delve

    ("increases and reductions to minion damage/attack speed" is parsed but won't yet actually do anything else than setting a flag)
    brather1ng committed Sep 5, 2018
    Configuration menu
    Copy the full SHA
    4b9046f View commit details
    Browse the repository at this point in the history

Commits on Sep 9, 2018

  1. Configuration menu
    Copy the full SHA
    18e8e8e View commit details
    Browse the repository at this point in the history
  2. Fix test broken by parsing update

    Was not run by dotCover for some reason.
    brather1ng committed Sep 9, 2018
    Configuration menu
    Copy the full SHA
    b0ba443 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2018

  1. Implement AffectedByMinion*Increases properly with behaviors

    (not tested except for the behavior itself)
    brather1ng committed Sep 11, 2018
    Configuration menu
    Copy the full SHA
    bcd3a5c View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2018

  1. Configuration menu
    Copy the full SHA
    e1b9aa8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f97c066 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    8c4e56a View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2018

  1. Add behavior for level/attribute requirements

    to only take the highest PathTotal (one path per item and gem)  as UncappedSubtotal
    brather1ng committed Sep 21, 2018
    Configuration menu
    Copy the full SHA
    b1bf5a2 View commit details
    Browse the repository at this point in the history
  2. Parse skill conversion as local stats

    (required for the conversion behaviors)
    brather1ng committed Sep 21, 2018
    Configuration menu
    Copy the full SHA
    707a72b View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2018

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

Commits on Oct 4, 2018

  1. Add SupportSkillParser

    (currently hardcoded for Added Cold Damage)
    brather1ng committed Oct 4, 2018
    Configuration menu
    Copy the full SHA
    8080097 View commit details
    Browse the repository at this point in the history

Commits on Oct 8, 2018

  1. Configuration menu
    Copy the full SHA
    cc52b8e View commit details
    Browse the repository at this point in the history
  2. Refactor ActiveSkillPreParser to also be usable for supports

    Remove parsedStats as part of its parse result, it had no effect.
    brather1ng committed Oct 8, 2018
    Configuration menu
    Copy the full SHA
    8b08726 View commit details
    Browse the repository at this point in the history
  3. Extract translation part from ActiveSkillParser

    and use it to refactor SupportSkillParser to work like ActiveSkillParser's (except that ManaMultiplier usage is still in SupportSkillParser  itself).
    brather1ng committed Oct 8, 2018
    Configuration menu
    Copy the full SHA
    baca369 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2018

  1. Configuration menu
    Copy the full SHA
    0f53d35 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    81540b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    421efb7 View commit details
    Browse the repository at this point in the history
  4. Integrate SkillDefinition into SkillBuilder classes

    - Remove the obsolete constructor from SkillDefinition
    - Pass SkillDefinitions to SkillBuilderCollection and do Keyword filtering there
    - Change ISkillBuilders.FromName to .FromId to remove ambiguity
    - Change SkillMatchers to use all SkillDefinitions (these will need to be filtered in some way once the real model is used because some definitions have the same display name)
    brather1ng committed Oct 20, 2018
    Configuration menu
    Copy the full SHA
    d544a77 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2018

  1. Use GameModel.Skills.SkillDefinitions as data

    Remove Console.SkillDefinitions.
    Async loading of it requires most properties of CompositionRoot to be Tasks (now in AsyncCompositionRoot).
    brather1ng committed Oct 21, 2018
    Configuration menu
    Copy the full SHA
    297845a View commit details
    Browse the repository at this point in the history
  2. Restrict CombineWith to not increase the number of results,

    Add Concat for cases where results can not be merged logically (CombineWith increased the result count exponentially. Merging with some kind of zipping would be possible in some cases, but that can't really be determined automatically. The simplest solution is to simply concat the results.)
    brather1ng committed Oct 21, 2018
    Configuration menu
    Copy the full SHA
    38a668a View commit details
    Browse the repository at this point in the history
  3. Improve integration test performance

    by sharing the CompositionRoot instance
    brather1ng committed Oct 21, 2018
    Configuration menu
    Copy the full SHA
    70e4ee4 View commit details
    Browse the repository at this point in the history
  4. Add mana reservation to ActiveSkillLevelParser

    (can currently activate the same skill multiple times)
    brather1ng committed Oct 21, 2018
    Configuration menu
    Copy the full SHA
    7dd5f3b View commit details
    Browse the repository at this point in the history

Commits on Nov 5, 2018

  1. Only reserve mana for one instance of each skill

    via new {skillId}.ActiveSkillItemSlot and -SocketIndex stats. A behavior for these that arbitrarily selects the active instance will follow.
    brather1ng committed Nov 5, 2018
    Configuration menu
    Copy the full SHA
    a51e06e View commit details
    Browse the repository at this point in the history
  2. Add behavior for ActiveSkillItemSlot and -SocketIndex

    that takes the BaseSet modifier with maximum value. ItemSlot socketIndex combinations are unique so this can be used to identify the active skill.
    brather1ng committed Nov 5, 2018
    Configuration menu
    Copy the full SHA
    aa5db99 View commit details
    Browse the repository at this point in the history
  3. Let mana multiplier affect reservation

    (if the supported skill is the active instance)
    brather1ng committed Nov 5, 2018
    Configuration menu
    Copy the full SHA
    448ff1d View commit details
    Browse the repository at this point in the history
  4. Support ManaCostOverride

    Requires a skill (item slot and socket) specific cost stat so TotalOverride can be used on it.
    brather1ng committed Nov 5, 2018
    Configuration menu
    Copy the full SHA
    b664191 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b2bb2be View commit details
    Browse the repository at this point in the history
  6. Parse active skill types added by supports

    Fix ManaCostOverride affecting the support instead of the active skill
    brather1ng committed Nov 5, 2018
    Configuration menu
    Copy the full SHA
    24e2a29 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    010df61 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    6d7e1e1 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2018

  1. Configuration menu
    Copy the full SHA
    122f73f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    34c2f16 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ebd8228 View commit details
    Browse the repository at this point in the history
  4. Refactor ActiveSkillGeneralParser to not use SkillPreParseResult.HitD…

    …amageSource
    
    Remove HitDamageSource and HasSkillDamageOverTime from SkillPreParser and SkillPreParseResult.
    brather1ng committed Nov 7, 2018
    Configuration menu
    Copy the full SHA
    81be3de View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    914f25f View commit details
    Browse the repository at this point in the history
  6. Add SkillDefinitionExtensions, mainly for skill parts

    These expand the skill definitions from the game model to allow for skill parts, identifying buff modifiers, adding/removing modifiers and adding/removing keywords.
    
    The extensions are far from complete and not used in parsing.
    Some things can't be supported this way, mainly adding custom modifiers. Those will probably be added to the given data in Computation.Data later on.
    brather1ng committed Nov 7, 2018
    Configuration menu
    Copy the full SHA
    5ea7040 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2018

  1. Add SkillStage and MainSkillPart stats

    Add AnyDamageType extension method to IDamageTypeBuilders
    brather1ng committed Nov 8, 2018
    Configuration menu
    Copy the full SHA
    204b93e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2787df3 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    47c68a5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1022eb3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    545dd49 View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2018

  1. Configuration menu
    Copy the full SHA
    e554fea View commit details
    Browse the repository at this point in the history
  2. Add most active skills to SkillDefinitionExtensions

    (no support, buff, minion and item-inherent skills)
    brather1ng committed Nov 9, 2018
    Configuration menu
    Copy the full SHA
    1343470 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2018

  1. Move MainSkillPart stat to IStatBuilders

    so it can be used by Matchers in Computation.Data
    brather1ng committed Nov 10, 2018
    Configuration menu
    Copy the full SHA
    5530077 View commit details
    Browse the repository at this point in the history
  2. Complete support for most active skills

    - Add parsing of the remaining mods to Data
    - Add AdditionslSkillStats IGivenStats to add mechanical modifiers that can't be added to SkillDefinitionExtensions
    brather1ng committed Nov 10, 2018
    Configuration menu
    Copy the full SHA
    fb304ba View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2018

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

Commits on Nov 12, 2018

  1. Add support for most buff skills

    (except for what's required from Active-/SupportSkillParser)
    brather1ng committed Nov 12, 2018
    Configuration menu
    Copy the full SHA
    33c1fe7 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2018

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

Commits on Nov 18, 2018

  1. Fix values of QualityBuffStats not being based on quality

    in TranslatingSkillParser. Also refactor it so PartialSkillParseResult.ParsedStats are never parsed, independent of the type of stats.
    brather1ng committed Nov 18, 2018
    Configuration menu
    Copy the full SHA
    541713f View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2018

  1. Add custom stat translation file and use it for skill stats

    The stats in there only have translations for conditional variants. The unconditional stats occur from renaming in SkillDefinitionExtensions.
    Change IStatTranslator to return the unknown UntranslatedStats, allowing stat translators to be chained easily.
    brather1ng committed Nov 21, 2018
    Configuration menu
    Copy the full SHA
    1b86d21 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2018

  1. Add ModifierSourceOpponentEntityBuilder

    and use it to parse chance to be stunned
    brather1ng committed Nov 22, 2018
    Configuration menu
    Copy the full SHA
    303b5d9 View commit details
    Browse the repository at this point in the history
  2. Add ActiveSkillItemSlot and -SocketIndex modifiers for supports

    to allow activating Arcane Surge and Innervation buffs when the support is socketed
    brather1ng committed Nov 22, 2018
    Configuration menu
    Copy the full SHA
    f1030cd View commit details
    Browse the repository at this point in the history
  3. Refactor SkillDefinitionExtensions to collection initializer syntax

    More lines of code but easier to read and more data-like
    brather1ng committed Nov 22, 2018
    Configuration menu
    Copy the full SHA
    d4d9919 View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2018

  1. Add concept of "passive" stats to SkillDefinition

    (these are active without the skill being the main skill and affect the skill's buff, e.g. the increased aura effect from generosity)
    brather1ng committed Nov 24, 2018
    Configuration menu
    Copy the full SHA
    76078e1 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cb15558 View commit details
    Browse the repository at this point in the history
  3. Change Skill and Gem ModifierSources to use skillId as SourceName

    (instead of skillName) and add a LocalSource property to ModifierSource.Global (was previously private).
    
    This allows referencing the parsed skill from builders while parsing.
    brather1ng committed Nov 24, 2018
    Configuration menu
    Copy the full SHA
    2251ec4 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2018

  1. Add BuildParameters to ICoreBuilder.Build()

    These have to be added to most builders' Build methods to be passed through. Therefore there are a ton of changed files.
    Having them in ICoreBuilder.Build() allows adding a skill builder that builds to the modifier source skill.
    brather1ng committed Nov 25, 2018
    Configuration menu
    Copy the full SHA
    335d3f4 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7e3dc3f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    97f6439 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6e4a607 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    2a94955 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    3824000 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    be19c10 View commit details
    Browse the repository at this point in the history
  8. Add BaseAdd, 1, skill.Instances modifiers in ActiveSkillParser

    - for the skill itself (ISkillBuilder.Instances)
    - for all skills (ISkillBuilders.AllSkills.CombinedInstances)
    - for each keyword (ISkillBuilders[keyword].CombinedInstances
    brather1ng committed Nov 25, 2018
    Configuration menu
    Copy the full SHA
    5ec1d7c View commit details
    Browse the repository at this point in the history
  9. Add BaseAdd, 1, skill.Instances modifiers in SupportSkillParser

    for each added keyword
    brather1ng committed Nov 25, 2018
    Configuration menu
    Copy the full SHA
    7596747 View commit details
    Browse the repository at this point in the history

Commits on Nov 28, 2018

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

Commits on Nov 29, 2018

  1. Configuration menu
    Copy the full SHA
    6ac0fb2 View commit details
    Browse the repository at this point in the history
  2. Move Active-/SupportSkillParser creation to CompositionRoot

    from SkillParserTest.
    Refactor StatTranslationLoader to asynchronously load all required files on creation.
    Use AsyncCompositionRoot in integration tests so only the required instances are initialized.
    brather1ng committed Nov 29, 2018
    Configuration menu
    Copy the full SHA
    748ae38 View commit details
    Browse the repository at this point in the history
  3. Test for successful parsing of skills in SkillParserTest

    Similar to ParsingTest, read skill ids from text file and test that they are parsed successfully or not.
    Most tests fail atm.
    brather1ng committed Nov 29, 2018
    Configuration menu
    Copy the full SHA
    3e5f40d View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2018

  1. Configuration menu
    Copy the full SHA
    11cfb4b View commit details
    Browse the repository at this point in the history
  2. Filter null translations from StatTranslator.Translate()

    (other StatTranslator methods are used from the current crafting, where null makes some sense and changing it would require some refactoring)
    brather1ng committed Nov 30, 2018
    Configuration menu
    Copy the full SHA
    7a7e87a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    630b71d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    62a973e View commit details
    Browse the repository at this point in the history

Commits on Dec 1, 2018

  1. Configuration menu
    Copy the full SHA
    8807607 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ad4af57 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    044edb2 View commit details
    Browse the repository at this point in the history
  4. Add Projectile.Fork stat

    brather1ng committed Dec 1, 2018
    Configuration menu
    Copy the full SHA
    d378fb4 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3b941ae View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    27584ef View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    58e1a86 View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2018

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

    - skip unreleased bases
    - skip non-integer properties
    - handle null requirements
    brather1ng committed Dec 2, 2018
    Configuration menu
    Copy the full SHA
    03b07d3 View commit details
    Browse the repository at this point in the history
  3. Update RePoE data

    brather1ng committed Dec 2, 2018
    Configuration menu
    Copy the full SHA
    3b70692 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9661dfc View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    e62edae View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2018

  1. Add ValueObject abstract class

    to reduce duplicated Equals() and GetHashCode() implementations in value objects
    brather1ng committed Dec 3, 2018
    Configuration menu
    Copy the full SHA
    20e5ca3 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2018

  1. Configuration menu
    Copy the full SHA
    d41b8ae View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d403b21 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bffd86f View commit details
    Browse the repository at this point in the history

Commits on Dec 15, 2018

  1. Fix passive modifiers of support gems applying incorrectly

    They were only depending on the active skill being active but need to depend on the support skill being active (passive mods set buff values and only apply once).
    brather1ng committed Dec 15, 2018
    Configuration menu
    Copy the full SHA
    942ef07 View commit details
    Browse the repository at this point in the history
  2. Update Computation for 3.5.0 passive tree

    (implementation of Impale and DoT multiplier is incomplete)
    brather1ng committed Dec 15, 2018
    Configuration menu
    Copy the full SHA
    c62f914 View commit details
    Browse the repository at this point in the history

Commits on Dec 16, 2018

  1. Configuration menu
    Copy the full SHA
    6b264f4 View commit details
    Browse the repository at this point in the history
  2. Update computation for skills changed in 3.5.0

    (except Block Chance Reduction and Whirling Blades'/Leap Slam's added attack time)
    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    1d30d6a View commit details
    Browse the repository at this point in the history
  3. Add a BaseCastTime stat that is used to BaseSet CastRate

    - Allows parsing of "+# seconds to Attack Time"
    - Can be used for parsing "... is instant"
    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    0f3dbd2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3dc889c View commit details
    Browse the repository at this point in the history
  5. Use Impale in DataDrivenMechanics

    Implemented as a more multiplier to EffectiveDamageMultiplier for physical skill damage. The 10% stored damage is multiplied by Impale effect, stack count (if this is set to the maximum, the DPS represents the damage after ramping up, if set to 0, it is the first hit) and chance to Impale on hit.
    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    d35f46d View commit details
    Browse the repository at this point in the history
  6. Update SkillUsesHand modifier conditions for 3.5.0

    (all equipped weapons must be suitable for the skill, skills can't be main-hand-only)
    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    580375e View commit details
    Browse the repository at this point in the history
  7. Support Brand skills

    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    e8540ed View commit details
    Browse the repository at this point in the history
  8. Support Banner skills

    brather1ng committed Dec 16, 2018
    Configuration menu
    Copy the full SHA
    c923315 View commit details
    Browse the repository at this point in the history

Commits on Dec 17, 2018

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

Commits on Dec 19, 2018

  1. Configuration menu
    Copy the full SHA
    0ea5315 View commit details
    Browse the repository at this point in the history
  2. Add Flag.FarShot so multiple "Far Shot" modifiers don't stack

    Also, limit Impale chance as used in the more effective damage multiplier to 100% (buff chance is not normally used in calculations, there's no way to limit it to 100% for all buffs and actions)
    brather1ng committed Dec 19, 2018
    Configuration menu
    Copy the full SHA
    409b093 View commit details
    Browse the repository at this point in the history

Commits on Dec 21, 2018

  1. Update crafting for 3.5.0

    (data update and code/test fixes)
    brather1ng committed Dec 21, 2018
    Configuration menu
    Copy the full SHA
    81d3411 View commit details
    Browse the repository at this point in the history
  2. Remove PropertyMatchers

    brather1ng committed Dec 21, 2018
    Configuration menu
    Copy the full SHA
    28b001c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    087a46c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    08f0779 View commit details
    Browse the repository at this point in the history

Commits on Dec 22, 2018

  1. Configuration menu
    Copy the full SHA
    f066368 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    61cf41d View commit details
    Browse the repository at this point in the history
  3. Change Item to group modifiers by ModLocation

    instead of having multiple list properties.
    Move ModLocation to the GameModel project.
    brather1ng committed Dec 22, 2018
    Configuration menu
    Copy the full SHA
    5f96243 View commit details
    Browse the repository at this point in the history
  4. Add ItemParser unit test

    brather1ng committed Dec 22, 2018
    Configuration menu
    Copy the full SHA
    8a02a84 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    97f1da5 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    48ac26b View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    e8dfd5a View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2cf52e4 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    40839a8 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    a90bf9c View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a07e14a View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    3b57b8c View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    53c7638 View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    ef71a64 View commit details
    Browse the repository at this point in the history
  15. Parse properties in ItemParser

    (except flask properties)
    They are used to BaseSet a slot-specific variant of the normal stat (e.g. armour). The Total of the slot-specific stat is used to BaseSet the normal stat with a Local modifier source.
    Local modifiers on the item will later modify the slot-specific stat.
    brather1ng committed Dec 22, 2018
    Configuration menu
    Copy the full SHA
    65f0816 View commit details
    Browse the repository at this point in the history

Commits on Dec 23, 2018

  1. Configuration menu
    Copy the full SHA
    29944c3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ee111a0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    be8d498 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    913aa73 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3212c21 View commit details
    Browse the repository at this point in the history

Commits on Dec 24, 2018

  1. Parse "with this weapon" in ConditionMatchers

    Now it does not need to be parsed as local modifier in ItemParser
    brather1ng committed Dec 24, 2018
    Configuration menu
    Copy the full SHA
    1740847 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    abc4461 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dbe08ae View commit details
    Browse the repository at this point in the history
  4. Parse property modifiers in ItemParser AsItemProperty

    Add modifiers for all properties to BaseSet their real stat, even if the base item doesn't have that property. They might be added by property modifiers.
    brather1ng committed Dec 24, 2018
    Configuration menu
    Copy the full SHA
    79aebd8 View commit details
    Browse the repository at this point in the history
  5. Parse level/attribute requirements as properties in ItemParser

    because they can be affected by local modifiers
    brather1ng committed Dec 24, 2018
    Configuration menu
    Copy the full SHA
    70be4cf View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    bb58db7 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ca26860 View commit details
    Browse the repository at this point in the history

Commits on Dec 25, 2018

  1. Configuration menu
    Copy the full SHA
    f432712 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1fd4d58 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    18e619a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    82776fa View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4f12100 View commit details
    Browse the repository at this point in the history
  6. Add unique item parsing integration test

    (only 10 uniques for now)
    brather1ng committed Dec 25, 2018
    Configuration menu
    Copy the full SHA
    372d1cd View commit details
    Browse the repository at this point in the history
  7. Support Iron Will Support

    (somehow thought it is a keystone like Iron Grip)
    brather1ng committed Dec 25, 2018
    Configuration menu
    Copy the full SHA
    46f2b59 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    17c87d7 View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    f69d255 View commit details
    Browse the repository at this point in the history
  10. Add PassiveNodeParser for passive tree node parsing

    Modifiers from nodes have a condition so they are only enabled when set to skilled. This way keystones from items just work (no doubled modifiers) and the whole tree can be parsed and added to the calculator initially (which should be good for performance).
    brather1ng committed Dec 25, 2018
    Configuration menu
    Copy the full SHA
    fdff263 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    7858d60 View commit details
    Browse the repository at this point in the history

Commits on Dec 26, 2018

  1. Add KeystoneStatMatchers to parse keystone modifiers on items

    It matches against the keystone definitions from GameModel, no hardcoding required (except for now in GameModel because there is no real skill tree data yet)
    brather1ng committed Dec 26, 2018
    Configuration menu
    Copy the full SHA
    b1f881d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9583731 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    fd68d18 View commit details
    Browse the repository at this point in the history
  4. Remove unused code from computation interfaces

    - Remove IItemSlotBuilder(s)
    - Remove IMatchContext.First and .Last
    - Remove IResolvable as ancestor of ILeechStatBuilder
    brather1ng committed Dec 26, 2018
    Configuration menu
    Copy the full SHA
    aa26dd6 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    1e51c76 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    75f1830 View commit details
    Browse the repository at this point in the history
  7. Add PassivePoints and AscendancyPassivePoints stats

    - Initialize from CharacterGivenStats
    - Add 2 maximum passive points when Bandit.None
    - Add 1 to one of the stats in PassiveNodeParser (depending on PassiveNodeDefinition.IsAscendancyNode)
    - Add PassiveNodeDefinition.PassivePointsGranted to maximum in PassiveNodeParser
    brather1ng committed Dec 26, 2018
    Configuration menu
    Copy the full SHA
    fe4035d View commit details
    Browse the repository at this point in the history