Progress Update (5/16/2020):
Since I'm mostly back on the phones at work I get to make a little progress (more now that the SA playthrough has come to a finish) on the unit design work. So although I'm hitting some of the tougher stuff, I've made some big strides.
I had said earlier:
Coming up still:
Builds Done - There was some interesting cleanup in this that I found as well as the reveal that we are a little elementary in our current setup with terraforming which Raxo ironically already began to address - suffice it to say as an upcoming project I think we can still accomplish quite a bit of improvement in this regard so even this planning document was just a way to mop up application of what we currently have and didn't attempt to consider adding more... yet.
XP Done - Toffer recently changed the meanings of the attack and defense XP tags and in going through this planning document I was able to establish some initial ways to approach assignment guidelines for these tags. I think they will work quite nicely once implemented in full.
This evaluation also brought to mind a question... would promotions that increase the amount of XP you earn for attack or defense be an interesting thing to introduce into play? I'm thinking it would be very interesting indeed.
Somehow, the Great Commander stuff and XP for attachment and so on got blended into this evaluation so that became a part of this page and I'm now chomping at the bit to get that Great Aviator (Great Military Person) into the game pronto! A few investigations showed it will be super easy to isolate the range of a commander to units of a particular domain only so between the 3 this should be really cool to have.
This one did illuminate that by the time I really call this whole project complete and can start actually applying it to code and xml, I will probably need to include ALL (naval, air, cultural, hero, non-combat capable) units to the plans before going forward or numerous things will be highly out of whack with the land domain core combat units I'm evaluating now.
However, I do think those will go much smoother with this core being mapped out first. Adding a huge degree of insight that the FULL unit review will be necessary was the next page review project:
Theaters of Operation
Well this became a much bigger project than I'd thought it might going in. I was thinking, these are all land units by definition so this should be quick. Ugh. The mapcategory assignments got really REALLY interesting but it was cool because I was watching that SA playthrough walking through a lot of that future material. Thank you Raxo for helping to clarify what each maptype meant. We may have more coming at some point but for now, it's a good structure and the units I planned now have determined what they can and cannot experience.
I know that I need to ensure that units that are being transported don't have to necessarily qualify to be on that maptype they are being transported through. And buildings need a tag that will make the city count as if it can be considered another maptype environment once the building is in place so that, for example, earth units can be moved to moon cities. May also look to make promos capable of adding a mapcategory type to a unit, so that cyborgs in spacesuits can go out wandering on the moon surface all they want. And so on.
The concept of a land unit VS naval unit gets really liquid later on in the tree... another reason it's going to be critical to doing the reworked naval review as part of this thing.
Cargo
My previous note added: (which will include planning some deep coding changes to this stuff to allow multiple kinds of cargo to be carried and accounted separately or in a pool by the transporting units - and some debugging)
I managed to rethink this whole system. Not reprogram it yet - I've decided this is my new methodology: Plan (thoroughly), Program, Implement. I'd just jump in on what I've planned out here to the programming side but I really came to realize ALL units will be needing editing now with this new design in place so... I'm going to press on and finish the xml planning on all these units first.
However, here's the overall gist of what the new system will be. It should be a lot cleaner than the metastasized version of the original highly shortcut simplified original CivIV setup I was too intimidated to rework from the ground up the first time through.
Units will ALL require being defined with the <Special> tag and at this time it looks like it can be completely dedicated to being a tag for determining a 'transportation type' as other possible ways to apply the special tag have fallen by the wayside in C2C. I have numerous new definitions for these which came together as the planning revealed their needs. After navies are added in, this list might add one or two but I think having done most of the naval planning previously already, we're probably looking mostly there with what defines I've found so far.
Then units that can transport other units will have a SpecialCargoTypes tag that will have nested <SpecialCargoType> tag and beneath that an optional nested iTypeCargo tag. It's optional because only if an iTypeCargo of a non-default (-1) amount is assigned to the SpecialCargoType, will that Cargo Type be isolated out of counting against and towards general cargo hold when a unit of that type is carried. Otherwise, if it is defined, then the amount of units that can be carried of that type is defined entirely separately for this carrier and any units of those types (a unit can only have one special definition) will count only towards the pool of units that can be carried of that specific type.
Word salad there I know.
Here's an example of some random kind of setup, possibly for a coastal warship or something:
Code:
<SpecialCargoTypes>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_PEOPLE</SpecialType>
<iTypeCargo>2</iTypeCargo>
</SpecialCargoType>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_TROOP</SpecialType>
</SpecialCargoType>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_BEAST</SpecialType>
</SpecialCargoType>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_ROBOTIC</SpecialType>
</SpecialCargoType>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_MISSILE</SpecialType>
<iTypeCargo>2</iTypeCargo>
</SpecialCargoType>
<SpecialCargoType>
<SpecialType>SPECIALUNIT_VTOL</SpecialType>
<iTypeCargo>1</iTypeCargo>
</SpecialCargoType>
</SpecialCargoTypes>
<iCargo>3</iCargo>
The ship's general cargo hold is 3 units (iCargo in its own generic tag). Since Troops, Beasts, and Robotic units are not given an iTypeCargo, any of these types will count towards those 3 when carried and any of those types can be carried as long as there is room in the general cargo hold still. None of them can be counted as any of the special types or take up room in the hold specifically dedicated by the iTypeCargo tags to those special types. Thus, I can't store a Robotic unit in the VTOL only slot or in either of the People only slots. Conversely, I cannot have more VTOL (helicopters) units landing on this unit than the one it has room for, even if the iCargo general hold has room for more.
Thus, this unit can carry 0-2 people, 0-3 Troops, Beasts, or Robotic units in any combination of the 3, and up to one Helicopter.
I will be able to program promotions to add to general hold, add to the types that can be added to general hold, and add additional space for a special type only.
There are enough Special type defines planned to be able to eliminate the old DomainCargo tag entirely, as well as be able to play into SM naturally with this so that I need to add a tag to the SpecialUnitTypes xml to help guide that but generally, I can save us a lot of memory by getting rid of SMSpecialCargo, SMNotSpecialCargo, iSMCargo and iSMCargoVolume entirely.
So while this may seem more complex to some, it should save us quite a bit of memory and aggravation and will completely debug all problems I've been having with the captive transportation system. Although I haven't planned it out, it also allows us to make it possible for hunters or scouts or whatever to load subdued animals and maintain an expandable cargo hold for them, and I've planned out a return to having trained bird units be a special thing one can develop for their hunters - and possibly even scouts. I also have considered some even more interesting things for the lategame in terms of spirits, bringing back the dead, trapping spirits, using them for energy, that sort of thing. Some of that is still being considered and coming together but there's a skeleton of a plan in regards to some of it in terms of transportation. Further, releasing nasty carried nano units may become a thing for advanced spies. And this whole rework is setting us up for the trap system to come into play finally as well.
And yes, for the core land units, the planning on all this is complete and once the basics were determined, it was pretty easy to work out the details on a given unit so as I'm adding more units to the eval, this should go pretty quick. I feel a great weight lifted even just having sorted out how this will work.
Still pending:
UnitCombat Class assignments and more firm categorization rule definition planning - This begins this week but should go quickly since MOST of it is already pretty well defined out - it will mostly be a maintenance review more than anything. There are some rule plans, sure, but it's all pretty simple really and most of that has already been conceptualized in notes.
AI type assignments and some deeper planning for some major unit AI overhauling. - Been thinking a lot on this. A lot indeed. Oyvey.
Prereq Bonuses
Prereq Civics
Prereq Buildings (With all of these prereqs, I may not be seeking to do a very deep conceptual restructure and might keep it to mostly just a review into this for now and may leave a lot more of it until later potential deepening as we go back over buildings with some new tags and such, but we've been discussing some building prereq tag redesign and I may just plan and implement a version of that now for units.)
Misc tags - most of these basically mean very little after being sucked up into the other design pages.
Then I get to get into some fun stuff with some Combat Mod planning
Combat Mod core basic tags
Advanced S&D tags
Size Matters tags that apply to unit type infos
Hide and Seek tags (and a bunch of stuff that applies to the core game without it)
Heart of Battle tags (and some deepening planning of a morale system)
Battleworn tags (exhaustion and frenzy)
Strength in Numbers tags (probably going to be renaming the option)
Power Shots (limited number of initial more powerful attacks)
Stunning Strikes
Outbreaks&Affliction tags - won't enable the activation of the option yet but will take care of the core unit planning side of it
Critical Hits - will require O&A and again won't enable the activation of the option but will take care of the core unit planning required
Elemental Damage - Some replanning will be necessary for this section but I'd like to map it out and determine what units will do what - the naval plan includes some of this. I don't think I can underestimate the importance of accomplishing this for the lategame units as this kind of diversity becomes a very critical element to things there.
Note: I've been doing a lot of ruminating on the morale system and have some concepts forming that should make it fairly workable - would be implemented through the Heart of Battle combat mod as noted but I think I've figured out mostly what I'm going to do there. When going through all this stuff with a fine toothed comb in the code, I'm hoping we can get any bugs and deficiencies in the combat odds and displays sorted out nicely as well. Also would like to advance the combat log display quite a bit and take away some of the overburdening general combat notes from the normal game alerts, so that if you want to see things blow by blow and well defined how combat played out, you will be able to, while not being nagged by a bunch of withdrawal messages and such at game turnovers.