Giter Club home page Giter Club logo

cwtools-ck3-config's Introduction

cwtools nuget

A library for parsing, editing, and validating Paradox Interactive script files.
Supports all modern Paradox Interactive games, and targets .net standard 2.0.

Considering contributing? Start here!

Projects that use CW Tools

An interactive tech tree visualiser that uses CW Tools to parse the vanilla tech files, and extract localisation.

A mod manager that uses CW Tools for parsing and manipulating mod files.

Example usage (C#)

This is a simple example of loading an event file, modifying it, and printing the updated events.

            //Support UTF-8
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

            //Parse event file
            var parsed = CWTools.Parser.CKParser.parseEventFile("./testevent.txt");
            var eventFile = parsed.GetResult();

            //"Process" result into nicer format
            var processed = CK2Process.processEventFile(eventFile);

            //Find interesting event
            var myEvent = processed.Events.FirstOrDefault(x => x.ID == "test.1");
            
            //Add is_triggered_only = true
            var leaf = new Leaf("is_triggered_only", Value.NewBool(true));
            myEvent.AllChildren.Add(Child.NewLeafC(leaf));
            // or
            myEvent.AllChildren.Add(Leaf.Create("is_triggered_only", Value.NewBool(true)));

            //Output
            var output = processed.ToRaw;
            Console.WriteLine(CKPrinter.printKeyValueList(output, 0));

Which will take a file like

namespace = test

#One event
country_event = {
        id = test.1
    desc = "test description"
}
#Another event
country_event = {
    id = test.2
desc = "test 2 description"
}

and output a file like

namespace = test
#One event
country_event = {
        is_triggered_only = yes
        id = test.1
        desc = "test description"
         }
#Another event
country_event = {
        id = test.2
        desc = "test 2 description"
         }

cwtools-ck3-config's People

Contributors

delnarersike avatar domi1294 avatar ernie0013 avatar fiveby21 avatar ihatetrains avatar latueur avatar mklokocka avatar ramit110 avatar sfeldkamp avatar tboby avatar yakau avatar yard1 avatar zonr0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cwtools-ck3-config's Issues

First pass implementation for flavorization folder contents

Provide first pass implementation for the flavorization folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for combat_scenarios folder contents

Provide first pass implementation for the combat_scenarios folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Open issues for tracking scope and prepare for contributions

Especially as more people start contributing, it'll be very helpful to document areas that need to be implemented. This should help new contributors easily see work that needs done, and hopefully prevent duplication of work. Initial issues will probably be for draft level completion that covers most common cases but maybe not complicated rules or full validation checks for difficult validations. In general, I'm expecting about 3 regular contributors, a smattering of people submitting PRs for rules that they write while working on their own mods (and who generally won't be closely updating progress on the tracker), people who just file issues for false positives/false negatives, and people who just want to track development and know whats implemented.

There are two main options that I can think of to track this:

  1. Vanilla script passing. Progress is measured by getting vanilla files to properly validate with minimal false positives. This works as a concrete, tangible goal and is a good measure of project progress. Bonus points for finding legitimate vanilla bugs. Having a 'standard' set of files is helpful for keeping a standardized set of test cases, and guarantees an acceptable level of functionality for end users even if not all rules are implemented. This does run the issue however of some possible duplication of effort as getting files to validate might require dipping into tangentially related areas. This could possibly result in work duplication among core contributors if good communication isn't followed. This would more closely follow one-off contributions. It would require PR reviewers to fetch the branch and test it against the vanilla files.

  2. .cwt completion. Track purely on the .cwt files and types that need a .cwt; combine sub-folders into a single issue. This keeps things isolated for better or for worse. It lacks the standardized test cases, and leads to very abstracted work that feels divorced from actual use. This doesn't seem like it would fit well with the workflow of that type of contributor, but would be easier to mark issues completed.

After typing it out, I'm very much leaning towards 1, and will probably implement things that way. Other than that, we should probably build out some issue infrastructure and repository QoL things.

  • Create issue labels for common issue types. Off the top of my head: false positive/false negative, great first contribution, implementation, meta/project management, refactor, polish/misc. Does it make sense to split implementation into fresh or draft implementation and subsequent passes?
  • Create issue templates where it makes sense.
    • false positives/negatives
    • new implementation (for easier automation)
  • Record issues for each part of the rules scope. It may be possible to partially automate this.
  • Create some milestones as goals. eg. Core rules, common rules, full vanilla validation, maybe an end of September goal?
  • (Maybe) Pull request template
  • Write CONTRIBUTING.md
  • Link to new shiny github.io parent project website.
  • Clarify in parent/sibling projects that this is the repository to go for ck3 specific rule issues.

First pass implementation for bookmark_portraits folder contents

Provide first pass implementation for the bookmark_portraits folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for effect_localization folder contents

Provide first pass implementation for the effect_localization folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for event_backgrounds folder contents

Provide first pass implementation for the event_backgrounds folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for ai_war_stances folder contents

Provide first pass implementation for the ai_war_stances folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for console_groups folder contents

Provide first pass implementation for the console_groups folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for decisions folder contents

Provide first pass implementation for the decisions folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for activities folder contents

Provide first pass implementation for the activities folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Possible upstream parsing bug

trigger_event is currently defined using the following union:

### triggers an event or on_action trigger_event = { id = X days/months/years = Y } (for events) or trigger_event = { on_action = X days/months/years = Y } (for on_actions) ...
alias[effect:trigger_event] = {
    id = <event>
    ## cardinality = 0..1
    enum[duration] = int
    ## cardinality = 0..1
    enum[duration] = {
        ## cardinality = 1..inf
        int
    }
}

...

alias[effect:trigger_event] = {
    on_action = <on_action>
    ## cardinality = 0..1
    enum[duration] = int
    ## cardinality = 0..1
    enum[duration] = {
        ## cardinality = 1..inf
        int
    }
}

The implementation in IR is similar.

However, on vanilla event files that use the id key, the parsing still expects on_action, and complains with a false positive. As far as I understand it, this union should work, so there's possibly either a bug with alias unions, or an undocumented limitation. Filing here for further diagnosis before filing an issue in the appropriate sub-project.

First pass implementation for dynasty_perks folder contents

Provide first pass implementation for the dynasty_perks folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for deathreasons folder contents

Provide first pass implementation for the deathreasons folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for dynasty_legacies folder contents

Provide first pass implementation for the dynasty_legacies folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for dynasty_house_mottos folder contents

Provide first pass implementation for the dynasty_house_mottos folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for courtier_guest_management folder contents

Provide first pass implementation for the courtier_guest_management folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Value Field Rework

Possible numeric value types:

  • int/float: Only accepts the number itself, no variables, only @ links in the file itself.
  • int_static_field/static_field: Accept static variables too. It's mainly used for modifiers.
  • int_value_field/value_field: Accept scripted variables or can itself be a value field. Mainly used for effects.

The current value_field is what I called static_field, I'm not really sure about naming.
The last one currently has no real support. They are basically a special effect fields, which can have scopes and ifs, just the commands themselves are restricted to numeric operations.
It might worth it to make an universal framework for restricted effect fields, since there are places where only interface commands can be used.

Draft Core Implementation: effects

Effects are a core key type that are used in several scopes and are currently causing lots of false positives in events. Much work has been done already, but they need to be more fleshed out.

First pass implementation for dna_data folder contents

Provide first pass implementation for the dna_data folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for culture folder contents

Provide first pass implementation for the culture folder and the below listed sub-folders.

  • cultures
  • culture_names
  • eras
  • innovations

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for coat_of_arms folder contents

Provide first pass implementation for the coat_of_arms folder and the below listed sub-folders.

  • coat_of_arms
  • options
  • template_lists

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for dynasty_house_motto_inserts folder contents

Provide first pass implementation for the dynasty_house_motto_inserts folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Draft core Implementation: Triggers

Triggers are a core block used in several scopes and are causing false positives in many areas. A lot of work has been done on this, but a good complete draft implementation of them would significantly help practical usability of cwtools for ck3.

First pass implementation for achievements folder contents

Provide first pass implementation for the achievements folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for customizable_localization folder contents

Provide first pass implementation for the customizable_localization folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for casus_belli_types folder contents

Provide first pass implementation for the casus_belli_types folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for bookmarks folder contents

Provide first pass implementation for the bookmarks folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for dynasties

Provide first pass implementation for all dynasty related folders. This includes:

  • dynasties
  • dynasty_houses
  • dynasty_house_mottos
  • dynasty_house_motto_inserts
  • dynasty_legacies
  • dynasty_perks

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

First pass implementation for character_interactions folder contents

Provide first pass implementation for the character_interactions folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for combat_effects folder contents

Provide first pass implementation for the combat_effects folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for focuses folder contents

Provide first pass implementation for the focuses folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for character_interaction_categories folder contents

Provide first pass implementation for the character_interaction_categories folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for ethnicities folder contents

Provide first pass implementation for the ethnicities folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for event_themes folder contents

Provide first pass implementation for the event_themes folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for ai_goaltypes folder contents

Provide first pass implementation for the ai_goaltypes folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Refactor: move common used aliases to alias.cwt and remove duplicates.

As title. There are several aliases that are defined in a narrowly scoped file but are used across a variety of definitions. This makes it difficult to check at a glance what the aliases for complex descriptions are for example.

Off the top of my head, triggers, complex descriptions, and weight blocks are used in multiple places, but are in specific files at the moment.

Complex aliases used across many definitions could possibly be moved into an aliases subfolder as well.

Finish draft implementation of bookmarks.cwt

bookmarks.cwt seems largely complete, but needs behavior confirmation on several keys and verification against vanilla files. Contains the following todos. Issue will be considered resolved when important todos are resolved and vanilla files parse without false positives (excluding missing core dependencies). Remaining todos can be spun off into new issues as necessary.

  • L18:# TODO: figure out, [default] confirm uniqueness
  • L23:# TODO: figure out [start_date]
  • L26:# TODO: figure out [recommended]
  • L31:# TODO: figure out, confirm cardinality, see if it's not a target for an alias [character]
  • L36:dynasty_splendor_level = int[0..inf] # TODO: confirm bounds
  • L41:type = enum[genders] # TODO: dig into this; something tells me this can be scripted to be more than just male/female
  • L42:birth = date_field # TODO: see if it can be made to validate to be before the given start_date for the bookmark? Probably not worth the effort
  • L43:history_id = int[1..inf] # TODO: confirm bounds
  • L49:int[1..inf] # TODO: confirm bounds
  • L52:# TODO: see if I can remember how to make it with subtypes so that I don't need to duplicate stuff :D [sub character]

First pass implementation for council_tasks folder contents

Provide first pass implementation for the council_tasks folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Complex Descriptions defined multiple times

L15 of traits.cwt:

single_alias[complex_desc] = {
    ## cardinality = 0..inf
    desc = localisation

    ## cardinality = 0..inf
    random_valid = {
        ## cardinality = 2..inf
        desc = localisation
    }

    ## cardinality = 0..inf
    first_valid = {
        ## cardinality = 1..inf
        triggered_desc = {
            desc = localisation
            trigger = {
                ## cardinality = 1..inf
                alias_name[trigger] = alias_match_left[trigger]
            }
        }
        # This should probably be recursive in some way
        ## cardinality = 0..inf
        desc = localisation
    }
}

L40 of events.cwt

single_alias[complex_event_desc] = {
    ## cardinality = 0..inf
    desc = localisation

    ## cardinality = 0..inf
    random_valid = {
        ## cardinality = 2..inf
        desc = localisation
    }

    ## cardinality = 0..inf
    first_valid = {
        ## cardinality = 1..inf
        triggered_desc = {
            desc = localisation
            trigger = {
                ## cardinality = 1..inf
                alias_name[trigger] = alias_match_left[trigger]
            }
        }
    }
}

These should be refactored into a single alias.

First pass implementation for dynasty_houses folder contents

Provide first pass implementation for the dynasty_houses folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for casus_belli_groups folder contents

Provide first pass implementation for the casus_belli_groups folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

Organize and triage code TODOs into github issue

There are a lot of todos in code without a lot of external visibility unless actively searching from them. It would behoove us to move them to a more visible spot on github to track them in one place. Checked box means the item has either been addressed in code or documented on the issue tracker.

  • Get TODOs from code
  • Separate out into issues, combine as makes sense
    • chance_weight.cwt
      • L8: # TODO: Figure out if the chance-weight difference is really needed
      • L11, L28: # TODO: Requires further testing, might necessiate splitting into chance_block and chance_block_with_base or something
    • list_effects.cwt
      • Over many order_by keys: # TODO: Work out what exactly this is restricted to
    • activities.cwt
      • Figure and confirm bounds of values for 3 keys
      • Figure out and confirm default values for 2 keys
      • Find and confirm cardinality for 3 keys
      • L28: # TODO: alias for colour; probably not as rigid as activities make it look (see interface files for comp.)
    • ai_goaltypes.cwt
      • L1: # TODO: This ~~article~~ type is a stub. You can help CWTools by expanding it.
    • bookmarks.cwt
      • L18:# TODO: figure out, [default] confirm uniqueness
      • L23:# TODO: figure out [start_date]
      • L26:# TODO: figure out [recommended]
      • L31:# TODO: figure out, confirm cardinality, see if it's not a target for an alias [character]
      • L36:dynasty_splendor_level = int[0..inf] # TODO: confirm bounds
      • L41:type = enum[genders] # TODO: dig into this; something tells me this can be scripted to be more than just male/female
      • L42:birth = date_field # TODO: see if it can be made to validate to be before the given start_date for the bookmark? Probably not worth the effort
      • L43:history_id = int[1..inf] # TODO: confirm bounds
      • L49:int[1..inf] # TODO: confirm bounds
      • L52:# TODO: see if I can remember how to make it with subtypes so that I don't need to duplicate stuff :D [sub character]
    • buildings.cwt
      • L7:# TODO add subtype for pdxmesh vs entity
      • L131:# TODO: more detailed flags
    • deathreasons.cwt
      • Icon
    • lifestyles.cwt
      • Icon
    • modifier_container.cwt
      • Icon
    • opinion_modifiers.cwt
      • L1:# WISHLIST still: add ways to ensure a type has definitions for specified hardcoded names; for example, "opinion_war" must exist as an opinion type
      • L2:# TODO: There's a single "negative_test" that uses a "months" parameter but we'll need to check if it's legacy or actually a thing
    • scripted_effects.cwt
      • L29:# Todo: Make sure this works [alias for scripted effect]
    • scripted_triggers.cwt
      • L6:#Todo: Make sure this works [alias for scripted trigger]
    • traits.cwt
      • TODO: It might make sense to move many of these fields into a full alias for character_modifier. They are re-used in many places. (Done needs comment removed)
      • # TODO: Many of these (effects) seem like they're possibly soft-coded.
      • # TODO: Can some of these be replaced with keyed templates? (Done, needs comment removed)
      • L89:`#TODO: Make [ililegitimate_bast... and legitimate-bast...] mutually exclusive
      • L145:# TODO: Implement dna_modifiers. Probably as an alias.
      • L218:# TODO: Anything that can refer to a trait can refer to a group. Is there some way we can use this to mark a type name too? (Done, needs comment removed)
      • L222:#TODO: Does [level key] require group? Test with error log to confirm.
      • L251:# TODO: Require at least one trait or trait group
      • L279:#TODO: These are supposed to be linked to the parameters in doctrines. This means parameters in doctrines should probably be refactored to a type.
    • religions.cwt
      • L11:#TODO: Actually match these with defined traits. (Done. Needs comment removed)
      • L55:#TODO: Script check to make sure gfx/ui stuff is present in either the family, religion, or faith.
      • L124:#TODO: Implement coat of arms and regiments (Partially done)
    • interface.cwt
      • L23:#TODO: group cardinality (percent coords)
      • Many gui loc string todos
      • Many sound todos
      • Several shader todos
    • windows.old
      • Many gui loc string todos
    • triggers.fsx
      • L256: # TODO: Work out what exactly this is restricted to

Determine if same_opinion_if_same_faith should be added to modifiers.cwt

From discord:

[10:45 AM] Zonr_0: There's also what seems to be a missing modifier
[10:46 AM] Zonr_0: that I see no reason why it shouldn't be in [modifiers.cwt]
[10:46 AM] Zonr_0: same_opinion_if_same_faith
[10:46 AM] Dayshine: Used in one place, not in docs
[10:46 AM] Dayshine: Hmmm
[10:46 AM] Dayshine: 50/50 it's an error
[10:47 AM] Dayshine: It's also not in the localisation, so would show up weirdly
[10:49 AM] Zonr_0: Yeah, thats partially what I'm leaning to, but after parsing it, I can see it distinct from same_faith_opinion
[10:49 AM] Zonr_0: but I could also see it as a typo too
[10:49 AM] Dayshine: Easiest thing to do is just...
[10:49 AM] Dayshine: Try it ingame :P
[10:49 AM] Zonr_0: I'll flag it as an issue in github and test/fix it later.

First pass implementation for defines folder contents

Provide first pass implementation for the defines folder and the below listed sub-folders.

  • ai
  • audio
  • graphic
  • jomini

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for character_backgrounds folder contents

Provide first pass implementation for the character_backgrounds folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for buildings folder contents

Provide first pass implementation for the buildings folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for factions folder contents

Provide first pass implementation for the factions folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

First pass implementation for council_positions folder contents

Provide first pass implementation for the council_positions folder.

First pass implementation means that all (valid) keys used in vanilla files either:

  • Have full working implementations OR
  • Have working placeholder implementations (eg. simple scalars) with status documented on the tracker OR
  • Have false positives in a placeholder or incomplete implementation that properly covers the majority of use cases. OR
  • Have false positives or are unimplementable due to bugs or missing features in cwtools core

Additionally, before this issue can be closed, please make sure of the following:

  • All significant TODO items are documented in the issue tracker
  • Documentation strings are either present or documented as missing in the tracker

That being said, these are just the criteria for this issue and scope item to be considered finished. In these early days, every new definition is incredibly helpful for end users trying to use cwtools! PRs with partial implementations are more than welcome!

This is an auto-generated issue. It may make sense to close this ticket, combine it with others, or split it into smaller chunks.

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.