Other Wonders

Discussion in 'Civ4 - Creation & Customization' started by LPlate2, Feb 23, 2021.

  1. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236
    Hi,

    I’d be interested if anyone has any suggestions for Wonder effects that aren’t currently implemented.
    I’d be interested in new city wonder suggestions but also tile wonders (e.g. Continental Bridge).
    I’m specifically looking for ideas which can not be dealt with through the existing xml, where I can implement effects through DLL and/or python.

    Example:
    School of Satire/Ministry of Propaganda/Media organisation such as Al Jazeera or Fox News

    New effect
    Use tag iEnemyWarWearinessModifier to increase the war weariness of any civ at war with the civ.

    Using existing effects
    Possibly also includes a reduction in the civ’s own war weariness.
    Boost diplomatic relations with known civs.
     
  2. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    ooooh lovely

    great western; you need x number of cities linked to your rail network before you can build this commerce - boosting wonder (boosts railway connected cities). obsoletes with TECH_WRONG_SORT_OF_LEAVES_ON_THE_LINE

    patriot movement: stacks of enemy units over n size entering your territory get a variety of nasty effects, a few get damaged (but not more than 0.1*size of stack), one or two get PROMOTION_CRAP_PROMO whilst in your borders, and occasionally one of the stack gets immobilized. obsoletes with TECH_GUBMINT_TOOK_MY_GUNS

    err last brain cell entered sleep mode
     
  3. Set

    Set Prince

    Joined:
    Mar 31, 2010
    Messages:
    325
    Here's a few quick suggestions:

    Iona Abbey
    When one of your missionaries spreads a religion, add 50 culture to this city (or gain beakers/gold maybe).
    A monastery founded by the famous Irish monk Columba. Columba spent his life prostelytizing and spreading Christiainity throughout the British isles.
    Would be nice to have a wonder that actively encouraged spreading your state religion yourself.


    Circus Maximus
    +100 Culture in all cities. +1 happiness from horses in all cities (this is slightly different from the effect of the hippodrome since it applies to all cities).
    The Circus Maximus is the famous chariot racing track of ancient rome.
    Similar to how the hanging gardens work. Might be interesting to build a lot of cities and then pop their borders with this wonder.

    St. Marks Basilica
    +1(2?) commerce from every luxury resource you control (so 3 copies of dyes would provide three commerce)
    A famous basilica in Venice. One of the symbols of the city.
    A wonder that might encourage the kind of resource hoarding that corporations encourage, but earlier in the game.

    Isn't this already the effect of the Statue of Zeus?
     
  4. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    (reads original post and retains it for longer than 0.1 seconds)

    Underground Railroad <iHurryAngerModifier>,<iHurryCostModifier> or <iGlobalHurryModifier> increases for early, cheap building for other civs.

    A Really Big Picture Of The Rival President Sexing A Hamster: <iGlobalExperience> negative to BUILDING_PALACE, but some tags don't take kindly to negatives. Or a bonus maybe? Who am I to judge.

    Justin Bieber Tour <iHappiness> negative for early, cheap building; proceeds via lowest x,y coordinates to highest. Last city on list revolts and joins Barbarian State
     
  5. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236
    Embarrassingly, it is. Which just goes to show how long it is since I played vanilla.
     
    Set likes this.
  6. Zeta Nexus

    Zeta Nexus <{[(Nexus)]}>

    Joined:
    Jan 23, 2014
    Messages:
    4,656
    Gender:
    Male
    Location:
    In a constant brainstorm...
    I am very much interested in easy-to-implement python effects :)

    Here are some ideas:

    Vatican:
    • +1 :gold: per City with Christianity
    This can be done ONLY in the Holy City of the religion but it would be great, if other wonders could have similar effect too.

    Diocese:
    • +1 :gold: per Own City with Christianity
    So this would count only your cities, not the whole world.

    Art of War:
    • settled Great Generals generate +1 Great General Points per turn.
     
    Last edited: Feb 23, 2021
  7. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    Sesame Street /Infowars /BBC World Service (take your pick): replaces Broadcasting Towers built by other civs with .... unique building Broadcasting Towers that are rubbish.

    You can (I'm pretty sure) have two instances of the same buildingclass in a city if you just dump them in willy - nilly via python, but ... and I will test this ... pretty sure if you have a BUILDINGCLASS_THINGY, you can't replace it normally with another instance of BUILDINGCLASS_THINGY (maybe needs a slow removal of bad buildings via EVENT_HOLLY_WILLOUGHBY_SAVES_THE_DAY / EVENT_RUPERT_MURDOCH_SOTER or something).

    Would be really happy to make the building art as well ... Elmo, some pink frogs, etc etc.

    EDIT - FYI: checked this, delivered a ub via python to a city .... city was still capable of building normal building. Shame! Will check the other way round next time.
     
    Last edited: Feb 28, 2021
  8. Leoreth

    Leoreth Vampire of the Blue Moon Moderator

    Joined:
    Aug 23, 2009
    Messages:
    35,373
    Gender:
    Male
    Location:
    Paris
    Oh I love this idea.
     
  9. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236
    Rather than going with extra versions of a building class, which could get really messy if dealing with a civ who has their own unique building for the building class, would the way to deal with this be to identify an enemybuildingclass and then allow modifiers or negative buffs to be applied to it? Then it could be more generally applicable as modders choose; Sesame Street decreasing cultural output for broadcast towers, Madoff Scheme reduces commerce benefits of foreign banks, etc. There’s probably a few wonders that could be implemented around damaging other civs, as opposed to boosting your own.

    —-
    Similarly, for the great general idea, it would be better if doing a DLL mod, to have it as being usable by any great person type, so modders could develop whatever type of wonder they wanted in the xml.

    I think those and @zeta Nexus’s other suggestions are promising for DLL modding.

    I think the Iona Abbey effect could more effectively be implemented through python (I’d like to see an Iona Abbey model though).

    The instant culture boost for Circus Maximus could be done thru python but a bit of DLL editing could allow for global happiness boosts based on how many of a given resource are worked by/available to a city.
     
    Last edited: Feb 24, 2021
  10. GreatLordofPie

    GreatLordofPie Prince

    Joined:
    Nov 20, 2009
    Messages:
    331
    Gender:
    Male
    DARPA (maybe a chivalric order or ancient military academy for an earlier era?)
    -each great person type in the city provides new units a unique promotion
    -additional GPs give 1XP


    Also pinging @Louis the XIV
     
  11. Zeta Nexus

    Zeta Nexus <{[(Nexus)]}>

    Joined:
    Jan 23, 2014
    Messages:
    4,656
    Gender:
    Male
    Location:
    In a constant brainstorm...
    An other/alternate idea for BBC or Sesame Street:
    • Broadcast Towers in other civilizations are spreading your culture in their cities instead of their own.
    So your culture could spread to any foreign city. Basically it shouldn't be so possible that a foreign core city flips to you - unless the Broadcast Tower was the only :culture: source in that city. But it should make border cities flip easier.
    Spoiler :
     
  12. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    errm well
    1. hey it's your call, i could write it in event python ... but it would blow up my brain, and no doubt require some lengthy testing
    2. that's the point Sesame Street's corrupting mix of radical anarchism and antisocial genderfluidity renders your carefully constructed broadcasting system a white elephant (just +1 culture or something), but ... it would slowly recover (replacing bad-> normal buildingclass city by city) every few turns, as your fine upstanding citizens recovered their senses and started lynching anyone who looked like a Muppet, liked cookies, or could count
    3. a general idea is just to add a single building that grants free buildings (which aren't realbuilding, of course)

    Code:
        eventCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_SESAME_STREET"), 0)
        eventCity.setNumRealBuilding(gc.getInfoTypeForString("BUILDING_OANN"), 1)
    EDIT (switches on thinking aid) ah, i see your point: you'd have to list [all ub BROADCAST_TOWER] ... then, could just pick cities WITHOUT the broadcast_tower bclass (which sort of makes more sense), all other cities get attacked by a 25' kaiju style Big Bird. Hell, I'm on fire.

    Code:
        for i in range(pPlayer.getNumCities()):
            pCity = pPlayer.getCity(i)
            if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_BROADCAST_TOWER')) == 0:
                CyInterface().addMessage(pCity.getOwner(),True,25,CyTranslator().getText("TXT_KEY_POPUP_DANGEROUS_PROPAGANDA_SPEW",()),'AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/BloodSplatteredPuppetsInLingerie.dds',ColorTypes(8),pCity.getX(),pCity.getY(),True,True)
                pCity.setNumRealBuilding(gc.getInfoTypeForString('BUILDING_ENEMY_BROADCAST_TOWER'), 1)
    that's just nasty. Shame on your sick mind.
     
    Last edited: Feb 24, 2021
  13. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236

    • This kind of effect could also be appropriate for a religious wonder, which can only be built in a holy city but is linked to temples or another religious building.
     
  14. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    Apolitical Yet Nasty Person Moves To Your Country: another 'who needs buffs when you can nerf your neighbour' event. There's already bad people mods around (?platyping), wonder that exports really horrible, antisocial characters

    EDIT - didn't want to get into trouble
     
    Last edited: Feb 25, 2021
  15. Leoreth

    Leoreth Vampire of the Blue Moon Moderator

    Joined:
    Aug 23, 2009
    Messages:
    35,373
    Gender:
    Male
    Location:
    Paris
    Moderator Action: This thread is not the place to voice a political opinion in the form of a wonder suggestion.
     
  16. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    Late arrivals at trhe Neo Wonders Suggestions Ball:

    (Apolitical Toponym) Biowarfare Labs: employing the <NoBonus> tag: victim's cities progressively acquire a ban on a resource, say "An oil consuming bacteria has spread to your city". Not sure how it would interact with the effect created by the vanilla Standard Ethanol corporation, will test.
     
  17. Cruiser76

    Cruiser76 Warlord

    Joined:
    Feb 4, 2018
    Messages:
    110
    Gender:
    Male
    Extra yield by specialist type in city built
    Extra commerce (gold, beakers, etc) by specialist type in city built

    Currently these are only available in the xml on a global basis. They would be valuable for any type of mod, including regular building effects.
     
  18. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236
    @Set, for the first part of your Circus Maximus wonder, try the following in def onBuildingBuilt(self, argsList): in CvEventManager.py

    Code:
           if iBuildingType == gc.getInfoTypeForString('BUILDING_WONDER_CULTURE_BOOST'):
               iCultureBoost = 100
               for pyCity in PyPlayer(player).getCityList():
                   pCity = pyCity.GetCy()
                   pCity.changeCulture(player,iCultureBoost,True , True)
    
    DLL code for the Sesame Street/Infowars, spreading culture in foreign cities, suggested by Spillandstains and Zeta Nexus is available in https://forums.civfanatics.com/threads/lplate-dll-bits.667338/#post-16055165 .
     
  19. Spillsandstains

    Spillsandstains Warlord

    Joined:
    Mar 31, 2008
    Messages:
    243
    Don't know whether it's been done already, but:

    Singapore - unlimited national wonders per city, combined with some kind of discount for buildings of that class
     
  20. LPlate2

    LPlate2 Warlord

    Joined:
    Dec 27, 2018
    Messages:
    236
    @Spillandstains, to do what you want with the national wonders would mean adding a new boolean, e.g. bUnlimitedNatWonders into the CIV4BuildingsSchema.xml, adding it in the CvInfos files and reflecting it on to the CvCity files (so the city updates a similar boolean whenever such a wonder is created or removed. The functional code change would be in bool CvCity::canConstruct(BuildingTypes eBuilding, bool bContinue, bool bTestVisible, bool bIgnoreCost) const in the CvCity.cpp file. Something along the lines of,
    Spoiler :
    Code:
           if (!(GC.getBuildingClassInfo((BuildingClassTypes)(GC.getBuildingInfo(eBuilding).getBuildingClassType())).isNoLimit()))
           {
               if (isWorldWonderClass((BuildingClassTypes)(GC.getBuildingInfo(eBuilding).getBuildingClassType())))
               {
                   if (isWorldWondersMaxed())
                   {
                       return false;
                   }
               }
               else if (isTeamWonderClass((BuildingClassTypes)(GC.getBuildingInfo(eBuilding).getBuildingClassType())))
               {
                   if (isTeamWondersMaxed())
                   {
                       return false;
                   }
               }
               else if (isNationalWonderClass((BuildingClassTypes)(GC.getBuildingInfo(eBuilding).getBuildingClassType())))
               {
    // LPlate - Unmodified line
    //               if (isNationalWondersMaxed())
    // End LPlate - Unmodified line
    // LPlate - Modified line
                   if (isNationalWondersMaxed() && !isUnlimitedNatWonders())
    // End LPlate - Modified line
                   {
                       return false;
                   }
               }
    


    On a separate note, I'm looking at adding in some defensive wonders;
    My Wall of Thorns will cause a percentage damage to any units attacking the city before combat resolution, as well as giving first strikes to ranged units against attackers.

    I'm looking to add in some other effects, which would be triggered when a unit tries to attack a city with the wonders.
    Hall of Mirrors. In FFH this creates a mirror image of a unit based on a unit being close to the city and the python is handled in onCityDoTurn. What I want to do is have a random chance of creating a mirror defender unit whenever a unit attacks the city with that mirror defender unit then acting as the defender. Am I correct in thinking that void CvUnit::updateCombat(bool bQuick) is where I would need to put in the code to do this?[/SPOILER][/SPOILER]
     

Share This Page