Giter Site home page Giter Site logo

civ6-better-report-screen's People

Contributors

infixo avatar

Watchers

 avatar

civ6-better-report-screen's Issues

RMA: Refactor YieldTable for better performance

Now it uses strings as indices i.e. PRODUCTION, FOOD, etc. They come from YieldTypes enumerate. This enumerate eventually changes them into number that correspond to yield indices in the Yields table.

Units: abilities tooltip displays info without checking the unit class

Many abilities are assigned to all player units via 'effect grant ability' and collection 'all player units'. The game decides which is actually active based on TypeTags table.
It makes sense to filter the wrong classes out - this will make the tooltips much more readable.
The change is best to be made in RegisterModifierForUnit function.

RMA: Wisselbank DESTINATION effects not implemented

These effects are not implemented:
EFFECT_ADJUST_PLAYER_TRADE_ROUTE_DESTINATION_YIELD_FOR_ALLY_ROUTE
EFFECT_ADJUST_PLAYER_TRADE_ROUTE_DESTINATION_YIELD_FOR_SUZERAIN_ROUTE

Only ORIGIN versions are supported atm.

RMA: Garrison unit can be naval.

Naval units are also considered a garrison. And Air units!
Military Engineer - not.
Also, unit placed in Encampment also triggers CITY_HAS_GARRISON_UNIT_REQUIERMENT

RMA: Support for multiple arguments

It is done for EFFECT_ADJUST_PLOT_YIELD

Add support for multiple args etc. for Tokugawa (using comma).
EFFECT_ADJUST_CITY_YIELD_MODIFIER (TRAIT_SAME_CONTINENT_YIELD, TRAIT_LEADER_NEARBY_CITIES_LOSE_YIELDS, TRAIT_SULEIMAN_ALT_SCIENCE_CULTURE_GOLDEN_AGE)

EFFECT_ADJUST_PLAYER_INTERNATIONAL_TRADE_ROUTE_YIELD_MODIFIER - not used yet

There is 5 effects atm that use multiple args format.

  • EFFECT_ADJUST_BUILDING_PRODUCTION - not implemented, only 1: MINOR_CIV_PRODUCTION_WALLS - internal, to grant prod boost for Minors
  • EFFECT_ADJUST_CITY_YIELD_MODIFIER - implemented as simple ➡️ 5 modifiers use it e.g. Maya, Suleiman, Nzinga
  • EFFECT_ADJUST_DIPLOMATIC_ACTION_PREFERENCE - not implemented, only 1: AGENDA_FLOWER_OF_SCOTLAND_BAN_WARS - to adjust war types, not affecting yields
  • EFFECT_ADJUST_PLAYER_INTERNATIONAL_TRADE_ROUTE_YIELD_MODIFIER - not implemented ➡️ TOKUGAWA_NEGATIVE_INTERNATIONAL_YIELDS and TRAIT_INTERNATIONAL_TRADE_GAIN_ALL_YIELDS
  • EFFECT_ADJUST_PLOT_YIELD - implemented as multiargs, PETRA, HALICARNASSUS and CLEOPATRA_FLOODPLAINS_RESOURCE_YIELD

RMA: Economic Union doesn't recognize gains from Shipyard

There are multiple reports stating that EU and Scripture don't calculate yields properly.
The modifiers are implemented ok. It is about recognizing effects from different modifiers.
Original post: It would also be nice also if economic union for instance would count the production from shipyard, or if scripture would count the production from work ethics.
Scripture moved to #16

Yields: Hide/show revenues and costs

The yields window - the parts about building and unit costs are kind of weirdly placed. Maybe there should be “Economy” tab?
Two columns, one Revenues, and one Costs
Revenues - empire, cities, trade routes, deals, other (?)
Costs - buildings, units, other (?)
Possible siphoning funds detection? How? Compare turn by turn? Maybe this could be a GamePlay script that fires a proper event for UI and notification.

22.05 Well, there is not much value added in this. I am closing it.

Units: Levied units cost no gold.

From cholsy.
If levied units can be marked on Unit panel, it will be helpful.
The maintenance of Levied units does not cost gold, but cost resource only.
So we need to see how many and which units should be ignored on the gold cost book.

RMA: Simplify display and fetching of Modifiers

Remove initial: MODIFIER_, COLLECTION_, EFFECT_, etc. Make sure they are always the same
Requirements:
Impact, Likeliness, Reverse is always 0 [OK, already not used]
Inverse is used
Persistent is used 5x (looks like Permanent for reqs)
ProgressWeight - 1 virtually always TODO: make ‘1’ as default not displayed
4 - for sci victory condition, counts points
0 - for victories, to not (?) count as points?
Triggered is mostly 0, 1 in 14 cases - relate to triggered events

  • Fetching reqs
  • Fetching req sets
  • Fetching modifiers

Late data reading

Late data reading - only when needed. Basically each tab should be read only when opening.
Related to #12

  • Refactor reading city data - don’t use the game standard one (canceled - this function is pretty efficient)
  • Yields - Don’t read city detailed yields when not necessary.
  • City 1 - read when opening, refactor
  • City 2 - read when opening, refactor
  • Separate deals
  • Separate resources.

Deals: Redesign of Deals window

Currently the deals are presented in a very detailed and "widespread" form. When there is like 10+ deals it is hard to grasp who, what, and when.
Key features I'd like to have.

  1. Easily see where my luxes come from and when each deal ends.
  2. Easily see the situation with a selected Civ.
  3. Open borders?

Ideas.

Option A - make each deal in a separate line, together with info about Civ, etc. Then it is easy to filter out and sort by various criteria.
Option B - easy one. Group deals by Civ, enable collapse/expand. Each deal in 1 line, concatenate deal items into a single line.

Option C
Make a form of table?
Each row will show a Civ.
Columns might show various deal item types. Since we are talking about multi-turns items, then there is no need to show all of them.
We have: Gold, Luxuries, Strategics (non-XP2), Agreements (6 types, e.g. Open borders)

New mod architecture

There is no visible functional changes here. The goal is just to refactor the code so each tab is in a separate file, get rid of unnecessary includes and introduce dirty flag and late reading.
Related to #4

  • Refactor OnOpen so it uses separate UpdateX functions
  • Make timers use Ticks to measure elapsed time more precisely
  • (canceled) Remove "CitySupport" include
  • Remove "SupportFunctions" include
  • Remove "LeaderIcon" include
  • Introduce Dirty flags and Late data update
  • Separate Yields tab
  • Separate Cities tab
  • Separate XP2 Cities tab
  • Separate Deals tab
  • Separate Units tab
  • Separate Resources tab
  • Separate Policies tab
  • Separate Minors tab
  • Separate Gossip tab

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.