Code Monkey home page Code Monkey logo

eu4-eve's People

Contributors

matshou avatar

Watchers

 avatar

eu4-eve's Issues

Improve method argument system

So far we have implemented quasi-argument-methods by delegating argument values to country scope variables and then reading them from methods. I've recently discovered a better way to do this.

There also might be a possibility of exporting variable values from one scope to another using this system. Experimenting with this should be a priority.

See more information here:
https://eu4.paradoxwikis.com/Commands#Scripted_Effects

Naval maintenance effects

Low naval maintenance should have secondary and maybe even tercial effects such as sailor growth. Think about possible effects for land maintenance as well.

Base leaders without upkeep determined by force limit

Here is a great suggestion on how to determine base free_leader_pool value:

The limit should be based on your forcelimit - how will you manage your army AND navy while having massive chunks of land and only 2 generals? I think the most balanced system would be giving 1 slot per 20 land units or 25 ships.

Courthouse modifier not being removed

Province modifier State Administrative Center is not removed when the courthouse building is removed from the province. A simple code implementation in states would be enough handle this.

Courthouse scripted trigger condition error

Commit 96e90f3 replaced courthouse building trigger condition with scripted trigger condition in hopes that new game patches have solved this problem, but this still remains an issue.

...vanilla code does not recognize references to building entries that are made AFTER the calling building. In this situation the town hall building would not be recognized because it's declared after courthouse.

[trigger.cpp:2154]: Error "failed trigger validation for "none"" when compiling instance of "has_admin_building" resulting in source:
OR = { has_building = courthouse has_building = town_hall } 
[trigger.cpp:2154]: Error "failed trigger validation for "none"" when compiling instance of "can_build_adm_center" resulting in source:
is_state = yes NOT = { is_capital = yes any_province_in_state = { NOT = { province_id = PREV } has_admin_building = yes } }

Immortal merchant envoys

Merchants in the game have static hardcoded names and never die. This breaks realism and seems like a relique of EUIII where merchants had dynamic names (as far as I remember).

One possible solution would be to mess around in the interface folder (outliner.gui) to try to replace it with a custom gui class if that's somehow possible.

Relevant forum threads here and here

Vassal Taxes #2

Raising vassal taxes should have an administrative power cost and a cooldown so it can't be spammed.
Initial thoughts on this: 100 ADM power cost, 2-5 year cooldown.

Task List #2

  • Decentralization edict should give boost to governance policy proportional to state development
  • Add more bonuses to capital state to make it on-par with reworked courthouse.
  • Fix a small GUI text error that happens when rating is moving to neutral.

Previous owner variable not working

The province scope variable previous_owner gets set with the tag of the country that owned that province before changing ownership. However this value becomes null after loading the campaign. This is very similar to issue #2 - certain things just don't work after loading the campaign.

Unknown token and effect-type

[effect.cpp:854]: Unknown effect-type governance.calc_ruler_m in  line : 1
[persistent.cpp:52]: Error: "Unexpected token: governance.calc_ruler_m, near line: 1
" in file: "" near line: 1
[persistent.cpp:52]: Error: "Malformed token: {, near line: 1
" in file: "" near line: 1
[effect.cpp:854]: Unknown effect-type id in  line : 1
[persistent.cpp:52]: Error: "Unexpected token: id, near line: 1
" in file: "" near line: 1
[effect.cpp:854]: Unknown effect-type = in  line : 1
[persistent.cpp:52]: Error: "Unexpected token: =, near line: 1
" in file: "" near line: 1
[persistent.cpp:52]: Error: "Malformed token: {, near line: 1
" in file: "" near line: 1
[effect.cpp:854]: Unknown effect-type id in  line : 1
[persistent.cpp:52]: Error: "Unexpected token: id, near line: 1
" in file: "" near line: 1
[effect.cpp:854]: Unknown effect-type = in  line : 1
[persistent.cpp:52]: Error: "Unexpected token: =, near line: 1
" in file: "" near line: 1.
[effect.cpp:854]: Unknown effect-type governance.reinit_values in common/on_actions/00_on_actions.txt line : 29
[persistent.cpp:52]: Error: "Unexpected token: governance.reinit_values, near line: 29
" in file: "common/on_actions/00_on_actions.txt" near line: 29

CTD when updating policy

Crash happens on the first update pulse somewhere in "update_gov_policy" method for some overseas countries. Cause unknown for now.

Advisor corruption

Create advisor corruption events which frequency scale with current corruption.
Advisors can become corrupt and have negative impact on the country and which advisor on the court is responsible is not clear to the player.

Task list #1

  • Rename monthly pulse country modifier to something else, also add a province icon to it.
  • Add icons for country modifiers and check the error log. try maybe altering the dimensions properties of modifier window in province view if size is the problem.
  • Investigate errors mentioned in issue #4
  • Finish reworking the courthouse building.
  • Move on_is_no_longer_capital into a daily pulse check.

Null variables get deallocated

When saving a game every variable that has a value of "0" will not get saved. It will not be removed from current memory, but will not get allocated the next time we load that save game.

This is actually good news, as we don't have to worry so much about declaring temporary local variables knowing they will essentially be erased and cease to exist on next load. However it also means that legitimate static variables that hold null values need to be manually allocated on every load.

Add Function List to UDL

Functions can be declared in an xml file somewhere in npp folder. This acts as a parser of some sort that displays these functions in a dockable window. Read more about it here.

Foreign advisors

Explore the possibility of having advisors from other countries or cultures (make them more costly).

CKII Scripting

Paradox scripting language is written for Clausewitz game engine built for games other then EU4. It's possible that EU4 wiki does not include a complete list of scripting features.

Here's a CKII scripting wiki page that might contain some syntax not included on EU4 wiki.

Monthly pulse not firing after loading save

After either auto-loading from the launcher or loading from the main menu, the "on_activation" method of province triggered modifiers stops firing daily (does not fire at all actually). This however does not happen if we start a new campaign and then load our save.

I speculate this is a bug on Paradox's side due to spaghetti code problems.

Rework mercantilism

Mercantilism:
+local goods produced
-improve relations (diplo rep)
-trade steering
+national spy defense

25% of steering gets collected
merchant compete mechanics based on random events/modifiers (monthly)

When embargoing apply malus to relations with other countries based on victims diplo reputation

CTD on printing log

Since Dharma update (1.26) the game would crash when printing a log containing customizable localization tags from scripted effects and scripted triggers. I don't believe this is intended and most probably a bug on Pradox's side.

Have to find a workaround until they release a patch that addresses this issue.

Add more benefits to spy networks

Spy networks should have more some more benefits like added monthly corruption which could replace the related covert action. Read more about the forums about this topic and add suggestions here.

Vassal Taxes

  • By default vassals should have no taxes enforced and a lowered liberty desire for "no taxes".
  • Standard tax rate should not impose liberty desire penalties.
  • Both tax and liberty desire values need to be re-calibrated.

Better advisors

Weak Advisors:

  • Artist (institution spread)
  • Master of Mint (buff to 0.15%)
  • Colonial Governor (+5/10 settlers)
  • Spymaster
  • Navigator

Medium Advisors

  • Quartermaster (decrease attrition)
  • Philosopher (institution spread)

New Advisors

  • State Architect (10% construction build time)
  • Foreign Minister/Ambassador (1 Diplomatic relations cap)
  • Drill Seargent (increase drill gain modifier)

Have advisors of the same 'class' but with different stats.
They would have less frequency of spawning and some would require buildings to spawn at all.

Punish the player for firing the advisor too soon or reward him for keeping him around somehow,
to avoid players abusing hiring advisors for one day and firing them the next to cash in on the bonuses
like artist with stab mod. This can also be avoided by redoing advisor modifiers in a way where players
have no incentive to do the insta hire-fire tactic (artist needs to go).

Advisor personalities and influence over the ruler that increases with time and with some events.
This can be displayed in a custom tooltip when hovering over the ruler.

Buff army drill effect

This would make drilled regiments a lot stronger then un-drilled ones making them elite.

Pulses on start of month

Have all countries synchronize to fire their pulse on the beginning of each month. This should lower the apparent random slowdowns the players will exhibit as countries are randomly updating. Having a uniformed date of pulse will also make things more predictable for development in the future.

To do this I would recommend using "is_year" condition on eve initialization to determine which year is it, make a calendar system and track each day as it fires.

Policy advisor localisation text

Fix a small GUI text error that happens when rating is moving to neutral.

Text string_policy_gov_increase_time_1 should have an additional condition to NOT display adjective (only quantifier) when we're moving to neutral. Edit policy_gov_mod_pref_2_txt for that.

For The King!

Add an army modifier for all units when a monarch (king or queen) has been converted to a general.
The modifier should scale with legitimacy for more realism.

Local governments

Decentralized governance should encourage the growth of local provincial governments that if given enough autonomy and time could potentially rise up in arms and declare an independence war in the name of separatism, religion, previously conquered nation etc.

Here are some potential names for province modifier progression levels:

  • Supporting Local Governance
  • Established Local Government
  • Effective Local Government
  • Strong Local Government
  • Independent Local Government

Error Handler

Introduce some kind of error system that grabs strings from localization when printing.

Paradox Script Language

Try adding syntax highlight functionality for Paradox script language to Notepad++
This would be enormously useful when writing code. Found an article about it here.

Courthouse

  • Add governance modifier based on state development.
  • Add building description and requirements as localisation.

Vanilla localization diff

Find a way to generate a diff of localization files that are stored in replace folder. Since they are not in the same folder we will not be able to obtain this information by calling a standard git diff command.

Commit Style

Start using and document a standardized commit convention.

Expand Witch Trials

Recently watched a documentary on witch trials and thought it would be a good idea to expand on the papal event called "Witch Trials". Read more about the history of these trials and implement an interesting mechanic with modifiers and events (maybe even disasters) revolving around this topic.

Read more about the history of witch trials here.

Vanilla diff build interface

Create a central batch script that gives a welcome message listing all the options from which we can call other scripts to perform various operations.

Update to Dharma

Paradox has released a new DLC called Dharma a few weeks ago.
Read in detail about all the changes and update the mod.

Missing owner and country id

Some countries and provinces appear to be missing their id's, this could be related to code refactoring. Need to implement error codes and investigate further.

Add first development note

Explain by which principal should future domestic policies be structured. Things like good description, included secondary modifiers, associated country decisions and events etc. This sounds like a good first dev note, probably should place it in readme.

Any topic would be great, just do it.

CTD on first update

On first update after initializing mod, the game will sometimes crash to desktop. This most probably happens when exporting variable triggers, One possible solution to this would be to create a dedicated method that handles all trigger exports avoiding direct trigger_value:variable usage.

Task List #3

  • Write documentation for syntax highlighting.
  • Convert case of all scripted trigger variable arguments to lower case.
  • Redefine governance triggered modifier effects.
  • Finish working on vassal tax rates.
  • Add script keywords for terrain.txt and events.
  • Add comments that describe customizable localisation.
  • Create flavor events for courthouse on_built.
  • Disable governance policy for low tech.

Province modifier missing localization

Province modifier province_developing_0 does not have localization because it is not visible in the province UI panel to the player. However, it still displays in the event log with unlocalized string.

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.