A Not So Modest Proposal Regarding Buildings, Resources and Units

What did you do to Courthouse, Engineering School, and Church School If I may ask?

JosEPh
 
@Praetyre

1.Tweaked Fire Dock, Hospital, Hotel, Insane Asylum, Interrogation Building, Jail, Library, Minor League Stadium, Mystic's Hut, Opera House, Paper Factory, Paper Maker and Plague Hospital.

2. Gambling Den is not one of mine. I think its Vokarya's.

3. Pirate's Cove doesn't really need anything since its just a secluded cove where pirate ships can hide.

4. Pocket Monsters Store was removed from the mod today by Vokarya.

5. I will go over some more later.
 
@Praetyre

1. Tweaked Police Station, Railroad Station, Ranger Station, Recreation Center, Reeducation Center, Rehabilitation Center, Revivalist Church, School, Security Center and Skyscraper.

Retirement Home: Requires Apartments OR Highrises OR Suburbs

2. What happens when the buildings upgrade?

3. School of Rhetoric is DH's I think. You will need to ask him.

Skyroad Station: Has Automobiles as it's sole AND requirement.

4. But automobiles go obsolete at Skyroads.

Skyscraper: Requires Cement AND Furniture AND Fiberglass AND Steel AND Computers OR Paper

5. They come before Fiberglass and Computers. Also currently its Cement AND (Iron OR Steel) so that needs to be worked in. I can add the Furniture at least.

6. I will go over the rest later.
 
@Praetyre

1. Tweaked Police Station, Railroad Station, Ranger Station, Recreation Center, Reeducation Center, Rehabilitation Center, Revivalist Church, School, Security Center and Skyscraper.

Noted em all (save Skyscraper) in the plan, thanks.

2. What happens when the buildings upgrade?

Suburbs OR Apartments OR Highrises OR Smart Homes OR High-Tech Apartments OR High-Tech Highrises, then?

4. But automobiles go obsolete at Skyroads.

Apologies for the oversight, though a new High-Tech Vehicles resource might be in order.

5. They come before Fiberglass and Computers. Also currently its Cement AND (Iron OR Steel) so that needs to be worked in. I can add the Furniture at least.
How about...
Spoiler :
<Bonus>BONUS_BRICKS</Bonus>
<PrereqBonuses>
<Bonus>BONUS_COMPUTERS</Bonus>
<Bonus>BONUS_PAPER</Bonus>
</PrereqBonuses>
<ConstructCondition>
<And>
<Has>
<GOMType>GOM_BONUS</GOMType>
<ID>BONUS_CEMENT</ID>
</Has>
<Has>
<GOMType>GOM_BONUS</GOMType>
<ID>BONUS_FURNITURE</ID>
</Has>
<Has>
<GOMType>GOM_BONUS</GOMType>
<ID>BONUS_GLASS</ID>
</Has>
<Has>
<GOMType>GOM_BONUS</GOMType>
<ID>BONUS_STEEL</ID>
</Has>
</And>
</ConstructCondition>

There's no obsolescence issue for Glassware, and Steel is required technologically for Skyscraper anyway.
 
Praetyre can you turn your module on by default. All it is are changes that arent hydros buildings right? And you went over them with their creators so all shoud probably be well
 
I'd like at least a few other folks on board with my changes before I have them on by default. It's a simple matter of setting a 0 to a 1 in MLF_CIV4ModularLoadingControls for my folder, and I myself am used to editing my install folder by loading in the long wonder movies, my user settings and my soundtrack pack every new release.
 
@Praetyre

1. Tweaked Sled Dog Trainer, Stargazer's Hut, Steamboat Port, Steel Mill, String Instrument Maker, Subway Station, Tar Refinery, Theatre, Timekeeper's Workshop Sundial and Zero G Sports Arena.

2. The Stable has so many other requirements and you can get it even earlier than the Trading post that I am just going to leave it with its current building requirements.

3. I think the current requirements for the Town Well are enough. There re too many ways to bring up the water that really the material for the well is the only important part.

4. I think the Vacation Resort is in the core so you will need to tweak it.
 
I'd like at least a few other folks on board with my changes before I have them on by default. It's a simple matter of setting a 0 to a 1 in MLF_CIV4ModularLoadingControls for my folder, and I myself am used to editing my install folder by loading in the long wonder movies, my user settings and my soundtrack pack every new release.

I have been growing a little curious about what 'Project Hades' is all about...
 
I have been growing a little curious about what 'Project Hades' is all about...

Project Hades is Praetyre's revamping of most of the buildings. In adding new resource and building requirements. Rather than having him just made a mod with his changes I offered to personally sort through all his buildings and actually add changes to my mod and the core.

In doing this we have come to a middle ground where we both have input on how the buildings are changed without having him override the buildings or having him have to have a separate mod.

Most of his changes I do agree with. Those that I don't either have had tweaks to them or were just straight out rejected (with explanations why). There is also a small group of buildings in limbo where I did not reject nor approve them.

As for the "Project Hades" folder now, its mostly religious buildings or buildings that are from other moders than me or the core buildings.

The main reason this was not made into a mod where you could turn it off or on, is that they were connected to just too many buildings. The more modular things in a mod the harder it is to balance them. Not to mention some I was going to do anyways before he pointed them out. (ex. Linking buildings to the Factory).

I hope that answers your question.
 
The storage pit requirement for buildings is causing me some problems because when you build the grainery you loose access to many buildings.
 
Very similar then to how the Combat Mod design will go from here.

I have some forming ideas on how to make such varied balance structures into a game option though so it may be worthy of note here that I could set that up for building structures as well (probably will need to for the detailed combat mod game option as well so it won't be out of my way.)

The trick would involve turning any redefined items (such as buildings) off on the game option being on, while including a full re-definition on the optioned side and having THAT object ON with the game option. It would require that the game option side building not just be an adaptation to the original but a completely different building with all the same naming so it fits into the same space where the old one has been removed. Prereqs that depend on those objects would need to be found and alternatively take the other optional version (that's going to be the more involved part of this trick. I may find a way to get the code to count an item as another item via an optional xml tag on that item that relates it to the other for considerations of prerequisites so that the adjustment doesn't require finding all items that have a prereq off the original - just tagging the alternative to be considered AS the original should suffice.)

Its going to take a bit to work out all the details, but I figured I'd mention here that I was planning to do some work to enable this kind of modular optionalization to be a game option rather than a matter of turning the module on or not because it would greatly enable the rest of what Praetyre wanted to do to be included on equally accessible footing to the core.

The storage pit requirement for buildings is causing me some problems because when you build the grainery you loose access to many buildings.

Yeah... another thing that could be done with a tag that allows a building to be considered AS another for purposes of any prereqs. You could easily tag the Granary AS a Storage Pit for purposes of prerequisites this way.
 
The storage pit requirement for buildings is causing me some problems because when you build the grainery you loose access to many buildings.

Do you have specific examples? Most should be covered by the Barter Post too. Are you switching off Barter Civic? This may be the issue and I guess I may need to unlink the Barter Post from Barter civic.
 
Do you have specific examples? Most should be covered by the Barter Post too. Are you switching off Barter Civic? This may be the issue and I guess I may need to unlink the Barter Post from Barter civic.

I have a storage pit but no barter post or trading post. I look at the large number of buildings I can build but come to the conclusion that the grainery is the one I want right now. The grainery is built and now there are a host of buildings I can't build - the healer's hut is one such.
 
Very similar then to how the Combat Mod design will go from here.

I have some forming ideas on how to make such varied balance structures into a game option though so it may be worthy of note here that I could set that up for building structures as well (probably will need to for the detailed combat mod game option as well so it won't be out of my way.)

The trick would involve turning any redefined items (such as buildings) off on the game option being on, while including a full re-definition on the optioned side and having THAT object ON with the game option. It would require that the game option side building not just be an adaptation to the original but a completely different building with all the same naming so it fits into the same space where the old one has been removed. Prereqs that depend on those objects would need to be found and alternatively take the other optional version (that's going to be the more involved part of this trick. I may find a way to get the code to count an item as another item via an optional xml tag on that item that relates it to the other for considerations of prerequisites so that the adjustment doesn't require finding all items that have a prereq off the original - just tagging the alternative to be considered AS the original should suffice.)

Its going to take a bit to work out all the details, but I figured I'd mention here that I was planning to do some work to enable this kind of modular optionalization to be a game option rather than a matter of turning the module on or not because it would greatly enable the rest of what Praetyre wanted to do to be included on equally accessible footing to the core.
Tbh that sounds like a nightmare to implement.

An alternative would be the following (which is not without problems either but should be doable):
Add a BindToGameOption tag to all XML files that specifies a game option. An info class with that tag set would be read like normal, but it does not replace the previous version of that info. Instead it is added to a game option specific name space. This means that it can use the same type name as a normal info class and also be based on it but it does not replace it.
When a game with a specific game option set is started or loaded, the alternatives from the game option specific name space are swapped in.
One difficulty is that that way you could only replace info objects, not add or remove them so at the same time a new tag should be added that specifies if an info class is active. Now of course that will require to go through all the code and deal with the access to info classes.
If we only want to replace objects for now it would be a rather easy solution though.
 
Hydro funneling everything thru 2 or 3 buildings to get the Rest of the buildings IS the problem. Then later Obsoleting the Unlocking building exacerbates the problem. Not every building in this game should be dependent upon Barter and Trade Posts.

Now throw in the additional problem of the prereqs. Seriously? up to 7 AND/OR prereqs for a building? That's overly complicated and takes away from the game play. I as a player now have to acquire up to 7 other "resources" or "conditions" to get this building? No thank you, too complicated and too demanding.

Loosen the Barter/Trade post/Storage Pit/Granary strangle hold on the buildings.

JosEPh
 
Tbh that sounds like a nightmare to implement.

An alternative would be the following (which is not without problems either but should be doable):
Add a BindToGameOption tag to all XML files that specifies a game option. An info class with that tag set would be read like normal, but it does not replace the previous version of that info. Instead it is added to a game option specific name space. This means that it can use the same type name as a normal info class and also be based on it but it does not replace it.
When a game with a specific game option set is started or loaded, the alternatives from the game option specific name space are swapped in.
One difficulty is that that way you could only replace info objects, not add or remove them so at the same time a new tag should be added that specifies if an info class is active. Now of course that will require to go through all the code and deal with the access to info classes.
If we only want to replace objects for now it would be a rather easy solution though.
Honestly, I'd considered something similar but I kinda figured my ability to understand and manipulate the WoC loader and manage data in coding was not up to par enough to pull that off. While I'm all for trying to learn, I'd have to learn so much to do this its fairly overwhelming to consider. And I fear my capacity, even then, to create vast bug problems in the process.

So what I have in mind is to give OnGameOption and NotOnGameOption tags where such does not exist in the buildings, units, and promos (all I'm really working with for now - perhaps more later) and use those to filter in or out any given info class object accordingly. But then again, this works in tandem with your proposition too to resolve that second issue for those that need to be simply removed or included on the basis of the gameoption.

Since you're saying we'd bind the entire info file to the game option, I guess this means we'd need any Adjustments in a separate modular file from Additions (with removals being just fine to include in the core files). Am I right?

So... off the top of my head, it would seem, at first, like we'd have to go through the woc loading bits in the info.cpp and designate each item to consider the new information only if the file its coming from is bound to the game option used, except that this info.cpp loading doesn't take place at game load but rather on mod load, right? So where do we load info according to game load that can then be manipulated? Or am I wrong and the info.cpp is loading for a game rather than entirely for the mod?
 
Hydro funneling everything thru 2 or 3 buildings to get the Rest of the buildings IS the problem. Then later Obsoleting the Unlocking building exacerbates the problem. Not every building in this game should be dependent upon Barter and Trade Posts.

Now throw in the additional problem of the prereqs. Seriously? up to 7 AND/OR prereqs for a building? That's overly complicated and takes away from the game play. I as a player now have to acquire up to 7 other "resources" or "conditions" to get this building? No thank you, too complicated and too demanding.

Loosen the Barter/Trade post/Storage Pit/Granary strangle hold on the buildings.

JosEPh

+1 to this.
 
Honestly, I'd considered something similar but I kinda figured my ability to understand and manipulate the WoC loader and manage data in coding was not up to par enough to pull that off. While I'm all for trying to learn, I'd have to learn so much to do this its fairly overwhelming to consider. And I fear my capacity, even then, to create vast bug problems in the process.

So what I have in mind is to give OnGameOption and NotOnGameOption tags where such does not exist in the buildings, units, and promos (all I'm really working with for now - perhaps more later) and use those to filter in or out any given info class object accordingly. But then again, this works in tandem with your proposition too to resolve that second issue for those that need to be simply removed or included on the basis of the gameoption.

Since you're saying we'd bind the entire info file to the game option, I guess this means we'd need any Adjustments in a separate modular file from Additions (with removals being just fine to include in the core files). Am I right?

So... off the top of my head, it would seem, at first, like we'd have to go through the woc loading bits in the info.cpp and designate each item to consider the new information only if the file its coming from is bound to the game option used, except that this info.cpp loading doesn't take place at game load but rather on mod load, right? So where do we load info according to game load that can then be manipulated? Or am I wrong and the info.cpp is loading for a game rather than entirely for the mod?
Info files are only loaded once at startup of the game.
I'd not bind the entire XML file but each entry in it could be bound to one. In that case it would exist more than once in memory afterwards and the right one is swapped in on game start or load depending on the selected options.
 
Back
Top Bottom