1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Unique Cultural Influence

Discussion in 'Civ5 - Mod Components' started by Ryoga, Feb 7, 2015.

  1. Ryoga

    Ryoga King

    Joined:
    Oct 12, 2010
    Messages:
    993
    Each culture is unique, and their influence on other cultures is also unique.
    If you think Arabia, Japan and Zulu aren't supposed to sell blue jeans and pop music, then this mod is for you.

    With "Unique Cultural Influence" the effect of becoming "influential" with another civilization will be different depending on whom you are playing as. And by "effect" I mean the sentence that the influenced civilizations will tell you; this mod is just for flavor.

    REQUIREMENTS:
    BNW, of course. The concept of "becoming culturally influential" doesn't exist in vanilla and G&K.

    MOD COMPATIBILITY:
    The code is meant to be very adaptable. To add new statements for other mod civilizations all that is required is writing a few XML lines.
    Check under "text" in your Civ V mod directory (for windows users is inside "Documents\My Games\Sid Meier's Civilization 5\MODS\Unique Cultural Influence"), open the "xml" of your language and you'll find several examples.
    The Tag must be "TXT_KEY_GENERIC_%YOURCIVNAMEHERE%_INFLUENTIAL_ON_AI_1". Replace %YOURCIVNAMEHERE% with whatever is the "type" label that defines the civilization, but without the "CIVILIZATION_" part.
    Example: "CIVILIZATION_AMERICA" -> "TXT_KEY_GENERIC_AMERICA_INFLUENTIAL_ON_AI_1"

    LANGUAGE COMPATIBILITY:
    The code is meant to work with all the languages supported by Civ V. There is an "xml" file for each of them, however some are just filled with the default text. Currently German, English, Spanish, French, Italian, Japanese, Russian and Polish are customized, Chinese and Korean are simply available for customization.

    NOTE: In case you want to edit the text remember that apostrophes (or actually single quotation marks, 'like these') are forbidden characters in SQL. Type them twice to solve the problem (''like this'') they will appear as one in the actual game.

    THESE NEW SENTENCES ARE SILLY, INCORRECT, STEREOTYPED AND WRONG!
    That's the point.
    I like to believe that it is implied that by becoming influential with another civilization you do something more profound than simply selling clothes, commercial music and souvenirs. However these remarks are supposed to come from leaders that are all but happy about that. The idea is that they aren't exactly lying, but they purposely mention the more mundane, and superficially famous, aspects of the influential culture.

    X WOULD BE A LOT BETTER FOR CIVILIZATION Y:
    At this point I'm no longer accepting suggestions on that regards, that is mainly because it would be a problem to update the changes in all the other currently translated languages.
    Remember though that you can very easily change the text. So you can personalize it to suit your preferences.

    FINAL NOTE:
    This mod was made for single player only. The text will change for just one human player.

    SPECIAL THANKS:
    The civfanatics and civilization subreddit communities for their insightful ideas and suggestions.
    JFD for providing me with the fundamental line of code to make this mod work.
    Aendaeron Bluescale / Ettanin for the German translation
    ffdeke for the Spanish translation
    ***** for the Polish translation
    Fedatur for the Russian translation

    Mirrored from Steam Workshop
     

    Attached Files:

  2. Fedatur

    Fedatur Warlord

    Joined:
    Sep 2, 2014
    Messages:
    152
    Location:
    Russia
    Yay, finnaly Unique Cultural Influence on Civfanatics. Now nothing stops me from making russain translation of it. So when I'll translate it should I sent you text in PM or post it here?
     
  3. Ryoga

    Ryoga King

    Joined:
    Oct 12, 2010
    Messages:
    993
    However you wish :)

    A Russian translation would be nice, with it then only two languages would be left.
     
  4. EndoConvert

    EndoConvert Warlord

    Joined:
    Dec 17, 2010
    Messages:
    297
    This is a pretty cool mod! :goodjob:

    That said, a request for an improvement: Can you modify the mod (or explain how to edit the mod) so that there are multiple possible sentences for each culturally-influential civ, and one of those sentences gets chosen at random each time another civ comments? That way, you don't see the same sentence over and over again in each game.
     
  5. Typhlomence

    Typhlomence Magical Tomomo

    Joined:
    Mar 19, 2014
    Messages:
    394
    Location:
    Brisbane, Australia
    A bit of a bump, but I only just saw this and since I've been messing with diplomacy quite a bit lately, I can answer EndoConvert's question.

    That would be quite easy to do, actually, and in a way that wouldn't require any changes in mods that already include compatibility with this.

    In fact... I can't test this now but this should do it:
    Code:
    function ChangeInfluentialText()
        for iPlayer = 0, GameDefines.MAX_MAJOR_CIVS - 1, 1 do
            local player = Players[iPlayer]
            if player ~= nil and player:IsAlive() and player:IsHuman() then
                local text
                local tag = "TXT_KEY_GENERIC_" ..string.gsub(GameInfo.Civilizations[player:GetCivilizationType()].Type, "CIVILIZATION_", "") .."_INFLUENTIAL_ON_AI%"
                --print( tag )
                local locale = "Language_" ..Locale.GetCurrentLanguage().Type
                --print ( locale )
                for _ in DB.Query("SELECT Text FROM " ..locale .." WHERE Tag LIKE '" ..tag .. "'") do text = _.Text end
                if text then
                    --print (text)
                    for _ in DB.Query("UPDATE Diplomacy_Responses SET Response = '" .. tag .. "', Bias = 500 WHERE Response = 'TXT_KEY_GENERIC_INFLUENTIAL_ON_AI%' OR Response = 'TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_1'") do end
                    Locale.SetCurrentLanguage( Locale.GetCurrentLanguage().Type )
                end
            end
        end
    end
    (I put OR there since I can't check whether they use '%' or '_1' in the original game files right now, and it's probably better to check for both anyway. Bias is there so that it's about guaranteed to appear all the time.)

    Then all you'd have to add in the XML is additional entries numbered 2, 3, and so on. For instance, for Japan (no offense meant, it was the first one I could think of multiple responses :blush:) you could have:
    Code:
    <Row Tag="TXT_KEY_GENERIC_JAPAN_INFLUENTIAL_ON_AI_1">
        <Text>Our people are now buying your kimono and watching your anime. I worry the rest of the world will also succumb to the influence of your culture.</Text>
    </Row>
    
    <Row Tag="TXT_KEY_GENERIC_JAPAN_INFLUENTIAL_ON_AI_2">
        <Text>Our people are now buying your katanas and playing your video games. I worry the rest of the world will also succumb to the influence of your culture.</Text>
    </Row>
    
    <Row Tag="TXT_KEY_GENERIC_JAPAN_INFLUENTIAL_ON_AI_3">
        <Text>Our people are now dressing up as ninjas and eating your sushi. I worry the rest of the world will also succumb to the influence of your culture.</Text>
    </Row>
     
  6. Ryoga

    Ryoga King

    Joined:
    Oct 12, 2010
    Messages:
    993
    I've been a bit busy lately so I didn't check the forum for a while. Yes I think I can make those changes as suggested by Typhlomence, but I'll need to test it first. I'll try to do it a soon as I have a bit of time.
     
  7. Typhlomence

    Typhlomence Magical Tomomo

    Joined:
    Mar 19, 2014
    Messages:
    394
    Location:
    Brisbane, Australia
    Just a thought I had about it... it might be a good idea to still replace the generic line anyway, since for some reason Civ V will throw the generic line in to appear sometimes even if you don't define it as a valid response (that's the reason why I set a huge bias for the new response).

    Alternatively you can stick with replacing the original line, and set any additional lines to be "TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_2", "TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_3" and so on. I checked in the original game files and the entry for the response is "TXT_KEY_GENERIC_INFLUENTIAL_ON_AI%" so adding the additional lines should add them to the rotation - it's just by default there's only the one line.
     
  8. Skaz881

    Skaz881 History Major

    Joined:
    Dec 15, 2013
    Messages:
    1,349
    Location:
    Crystal Lake, Illinois, USA.
    Is there a way to make this compatible with the Community Patch? Right now the Community Patch overrides this mod and I'm not sure how to change that.
     
  9. Danmacsch

    Danmacsch Geheimekabinetsminister

    Joined:
    Jan 14, 2014
    Messages:
    1,303
    Location:
    Copenhagen, Denmark
  10. JFD

    JFD Kathigitarkh

    Joined:
    Oct 19, 2010
    Messages:
    9,114
    Location:
    The Kingdom of New Zealand
    Does it? Heck, I never realised. That's a shame. A reference would do it, as Danmacsch says, but is the author still around?
     
  11. Vicevirtuoso

    Vicevirtuoso The Modetta Man

    Joined:
    May 14, 2013
    Messages:
    775
    Location:
    The Wreckage, Brother
    A CP reference wouldn't help, because CP actually replaces the Influential Reached line with three variants:

    Code:
    		<Row LeaderType="GENERIC">
    			<ResponseType>RESPONSE_INFLUENTIAL_ON_AI_CLASSICAL</ResponseType>
    			<Response>TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_CLASSICAL%</Response>
    		</Row>
    		<Row LeaderType="GENERIC">
    			<ResponseType>RESPONSE_INFLUENTIAL_ON_AI_RENAISSANCE</ResponseType>
    			<Response>TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_RENAISSANCE%</Response>
    		</Row>
    		<Row LeaderType="GENERIC">
    			<ResponseType>RESPONSE_INFLUENTIAL_ON_AI_MODERN</ResponseType>
    			<Response>TXT_KEY_GENERIC_INFLUENTIAL_ON_AI_MODERN%</Response>
    		</Row>
    UCI would thus need to be edited to replace all three of those line variants if CP is active.
     
  12. pyroflare77

    pyroflare77 King

    Joined:
    Sep 22, 2010
    Messages:
    667
    Couldn't you just green those out?
     
  13. Vicevirtuoso

    Vicevirtuoso The Modetta Man

    Joined:
    May 14, 2013
    Messages:
    775
    Location:
    The Wreckage, Brother
    As in, comment them out in the XML?

    I haven't tried that, but I'm not sure how well the CP DLL would respond to that when it tried to fetch the dialog lines it's looking for when you become Influential on an AI.
     
  14. Xony

    Xony Chieftain

    Joined:
    Mar 9, 2016
    Messages:
    99
    Nice flavorful mod. Would it be ok if I try to edit the mod to be compatible with the cbp?
     
  15. Xony

    Xony Chieftain

    Joined:
    Mar 9, 2016
    Messages:
    99
    Did a version of this mod for the CPP. Should work with both the cp only and the cbp. Special thanks to Typhlomence whose code I should have used in the first place before spending countless hours trying my own stuff with no real modding experience :crazyeye:.
    Edit: And now that I read it Vicevirtuoso suggested it, too.

    Added:

    - implementing of multiple possible responses now possible by adding ..._1, _2, _3 etc. at the end to the xml like with other civ responses. Game will choose a random response each time.

    - added typhlomence's alternative japan responses as a concept

    Should be compatible with all civs that support UCI.
     

    Attached Files:

  16. Danmacsch

    Danmacsch Geheimekabinetsminister

    Joined:
    Jan 14, 2014
    Messages:
    1,303
    Location:
    Copenhagen, Denmark
    Nice. It was certainly a shame UCI didn't work with the CP, so I'm glad to see this and will definitely check it out.
     
  17. Xony

    Xony Chieftain

    Joined:
    Mar 9, 2016
    Messages:
    99
    Thank you. It's because of the other helpful comments in this thread that i was able to put it together. Also added a line "stolen" from JFD so v2 should work without the CP, too. All credits for it go to him.
     

    Attached Files:

Share This Page