Cant use YieldFromAppeal and YieldFromAppealPercent in a Leader Ability?

FlyingThunder

Chieftain
Joined
Aug 10, 2023
Messages
4
I am trying to make a custom civ using MCs awesome custom civ template just as a way to get into modding. So far i started with giving my leader a trait that changes tile yields.

Just giving all tiles flat yields works just fine. Giving the yields a Requirement also works.
Another thing i tried is giving the leader an improvement, and giving that improvement yields. Again, works just fine.

But my end goal is having my leader ability give tile yields based on appeal. This already exists in the base game, but only on improvements (Seaside Resort, Ski resort, Mapuche Improvement etc)
Giving my improvement Yields based on Appeal works.

However when i add the exact same values into my ModifierArguments in my leader trait, the yields dont work at all, i just get nothing.

Here is what my trait looks like when it does work, just straight out of the box:


INSERT INTO Types (Type, Kind ) VALUES ('TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS', 'KIND_TRAIT' ); INSERT INTO Traits (TraitType, Name, Description ) VALUES ('TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS', 'LOC_TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS_NAME', 'LOC_TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS_DESCRIPTION' ); INSERT INTO CivilizationTraits (CivilizationType, TraitType ) VALUES ('CIVILIZATION_FLYINGTHUNDER_ARBARISTAN', 'TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS' ); INSERT INTO TraitModifiers (TraitType, ModifierId ) VALUES ('TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS', 'MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD' ), ('TRAIT_CIVILIZATION_FLYINGTHUNDER_ARBARE_YIELDS', 'MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD' ); INSERT INTO Modifiers (ModifierId, ModifierType, SubjectRequirementSetId) VALUES ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'MODIFIER_PLAYER_ADJUST_PLOT_YIELD', 'REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL'), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'MODIFIER_PLAYER_ADJUST_PLOT_YIELD', 'REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL'); -- -- INSERT INTO ModifierArguments (ModifierId, Name, Value ) VALUES ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'YieldType', 'YIELD_PRODUCTION' ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'Amount', 2 ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'YieldType', 'YIELD_CULTURE' ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'Amount', 2 ); INSERT INTO RequirementSets (RequirementSetId, RequirementSetType ) VALUES ('REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL', 'REQUIREMENTSET_TEST_ANY' ), ('REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL', 'REQUIREMENTSET_TEST_ANY' ); INSERT INTO RequirementSetRequirements (RequirementSetId, RequirementId ) VALUES ('REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL', 'REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL' ), ('REQUIREMENTS_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL', 'REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL' ); INSERT INTO Requirements (RequirementId, RequirementType ) VALUES ('REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL', 'REQUIREMENT_PLOT_IS_APPEAL_BETWEEN' ), ('REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL', 'REQUIREMENT_PLOT_IS_APPEAL_BETWEEN' ); INSERT INTO RequirementArguments (RequirementId, Name, Value ) VALUES ('REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL', 'MinimumAppeal', 1 ), ('REQUIRES_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL', 'MaximumAppeal', -1 );


This is how i tried to adjust the ModifiersArgument with the yields on appeal. This does not work for me:

INSERT INTO ModifierArguments (ModifierId, Name, Value ) VALUES ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'YieldFromAppeal', 'YIELD_GOLD' ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'YieldFromAppealPercent', 500 ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_POSITIVE_APPEAL_YIELD', 'MinimumAppeal', 1 ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'YieldFromAppeal', 'YIELD_FAITH' ); ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'YieldFromAppealPercent', 500 ), ('MODIFIER_FLYINGTHUNDER_ARBARE_YIELDS_NEGATIVE_APPEAL_YIELD', 'MaximumAppeal', -1 );

Note that i already tried removing the Minimum/Maximum Appeal and it didnt make a difference.
Can someone confirm that this approach in general should work, and that it is even possible to make a leader ability like this? As theres nothing like it in the base game that i know of i feared that it might just not be possible. I checked the base game db to see if there even is a "YieldFromAppeal" in the ModifiersArgument table and it is not. Maybe i have to do further work on that end since it does not already exist?
 
- Check your Database Log and see if it returns any error (syntax errors)

I already spotted one. You have an extra " ; " in the ModifierArguments, it's going to break the parsing of that table, all tables have to end the last entry with " ; " and others with a " , ".

- Use a SQL reader and Firetuner to make sure the modifiers are being applied, that way it will show you if your issue is syntax or logical
 
yes i noticed the sql error too, but it seems like its not being applied at all. i will have a look into this firetuner to see if i can see whats actually happening, thanks!
 
Top Bottom