Advanced Great People

How far are we from getting the iExperience tag on the specialists changed to be a list like we have on the buildings?

This is so that the different great people settled in the city can give differing experience to units GArtists points to the Story Teller Line, GHunters to the hunter and recon lines and GGs to only the combat lines.

Which is needed by next release, i hope??
 
There are still three things to do to get the GH working

1) those tags

2) get combat points when you fight an animal to go to GH not GG. Plus same style requirements for next GH.

3) the UI to show how many points you have towards your next GH.
 
There are still three things to do to get the GH working

1) those tags

2) get combat points when you fight an animal to go to GH not GG. Plus same style requirements for next GH.

3) the UI to show how many points you have towards your next GH.

So thats what your waiting for the tags then, ok i get it, thx.
 
How far are we from getting the iExperience tag on the specialists changed to be a list like we have on the buildings?

This is so that the different great people settled in the city can give differing experience to units GArtists points to the Story Teller Line, GHunters to the hunter and recon lines and GGs to only the combat lines.

There is the Tag UnitCombatExperienceTypes for SpecialistInfo it was added by Thunderbrd some time ago.

Code:
 <UnitCombatExperienceTypes>
  <UnitCombatExperienceType>
   <UnitCombatType>UNITCOMBAT_MELEE</UnitCombatType>
   <iModifier>1</iModifier>
  </UnitCombatExperienceType>
 </UnitCombatExperienceTypes>
 
Thanks, I did look but missed it. I'll start changing the specialists over.

edit So what are the top level UnitCombatType values for soldiers, Naval unit and air unit? Or do I have to go through and list them all?
 
Thanks, I did look but missed it. I'll start changing the specialists over.

edit So what are the top level UnitCombatType values for soldiers, Naval unit and air unit? Or do I have to go through and list them all?

There is a UnitCombat COMBATANT, if that's what you mean. It excludes Civilians, some Criminals, but I'm not sure what else.
 
I am testing out the changes for each specialist to give exp only to the correct unit combats now. We don't have a unit that represents the science field so I made the Great Scientist be a weak (Great Artist + Great Engineer)
 
There are still three things to do to get the GH working

1) those tags

2) get combat points when you fight an animal to go to GH not GG. Plus same style requirements for next GH.

3) the UI to show how many points you have towards your next GH.
#2 I can do during the next cycle. Been looking forward to that but it hasn't hit the priority yet. I'd love to do it this version but there's so many bugs to resolve and I'm still finishing up with my most recent project (I'll have a commit on that tomorrow hopefully. Doesn't represent everything I want to have done by the release for that but it does represent the lion's share of the effort and testing is now finally showing it to be working perfectly.)

Oh... on that line of thinking, where on earth is the coding that controls the health bars??? And I also couldn't figure out where the coding was for the Unit Help box (bottom left corner when you have a unit selected) where the Strength is displayed. Tests proved it's not being displayed via any controls in the SVN so it must be python and I can't seem to figure out which file it would be in. Any help on those issues would be appreciated and would assist me in mopping up the final details on this Size Matters project.

Thanks, I did look but missed it. I'll start changing the specialists over.

edit So what are the top level UnitCombatType values for soldiers, Naval unit and air unit? Or do I have to go through and list them all?
Combatants - You could also work with the motility CCs but SO has been pressing me to change the spelling to Mo'b'ility - researching the term 'motility' proved that I do seem to be overreaching to find a term that means quite what I wanted it to and apparently mobility would be the unfortunately off-meaning term that would be closest to what I'm trying to label it as.

There is a UnitCombat COMBATANT, if that's what you mean. It excludes Civilians, some Criminals, but I'm not sure what else.
It also excludes Explorers.
The list of the categories that Combatant is a part of is as follows (Only one of these Primary Category CCs should ever be assigned to one unit):
Combatant (Military)
Civilian
Criminal
Explorer
Commander
Transport
Swarm
Ruffian
Wild
Subdued
Idea
Ballistic
Attache
Captive

I am testing out the changes for each specialist to give exp only to the correct unit combats now. We don't have a unit that represents the science field so I made the Great Scientist be a weak (Great Artist + Great Engineer)

Perhaps the Scientist shouldn't give any XP. Would make sense really. If anything, until we have the Great Hunter in place, perhaps Explorers would be the right category.
 
Whatever you see in the screen and is not controlled in the dll are all defined in cvmaininterface
 
edit So what are the top level UnitCombatType values for soldiers, Naval unit and air unit? Or do I have to go through and list them all?

Did someone go through all of these 2, because Zaparra(?) deleted these in RoM.
 
Did someone go through all of these 2, because Zaparra(?) deleted these in RoM.

Not sure what you're asking here given that until I implemented it, we didn't have the capability to assign multiple combat classes at all. Therefore the Combatant class and the category to which it belongs to didn't exist then to be deleted.
 
Not sure what you're asking here given that until I implemented it, we didn't have the capability to assign multiple combat classes at all. Therefore the Combatant class and the category to which it belongs to didn't exist then to be deleted.

Naval and Air were deleted in RoM.
 
Naval and Air were deleted in RoM.

Ah... I get it then.

Erata: I mentioned I'd have a commit for yesterday but since Platyping pointed out where I needed to manipulate things in python I've been working on fixing up a few last minute details. I did have a major breakthrough on figuring out what I've been doing wrong with python all this time - Notepad++ does not work well with python indents! I MAY actually now be able to work with python in more than a rudimentary fashion now. (It's still proving to be a huge pain compared to dll though!)
 
Ah... I get it then.

Erata: I mentioned I'd have a commit for yesterday but since Platyping pointed out where I needed to manipulate things in python I've been working on fixing up a few last minute details. I did have a major breakthrough on figuring out what I've been doing wrong with python all this time - Notepad++ does not work well with python indents! I MAY actually now be able to work with python in more than a rudimentary fashion now. (It's still proving to be a huge pain compared to dll though!)

I was under the impression you could use the same GUI for Python as you do for C++. I use Win SciTE to edit python.

Remember make sure you use tabs or spaces not a mixture across lines since the tab may be 3 characters on one persons machine and 5 on another, so tab space space space would be two tabs or 6 spaces on the first but 8 spaces on the second and the code will fail.
 
I was under the impression you could use the same GUI for Python as you do for C++. I use Win SciTE to edit python.

Remember make sure you use tabs or spaces not a mixture across lines since the tab may be 3 characters on one persons machine and 5 on another, so tab space space space would be two tabs or 6 spaces on the first but 8 spaces on the second and the code will fail.

I have some py program Baldyr recommended a while back and found in using it that I did need it over a text editor. It already told me I needed to do just as you said there to make the file valid. I'm still finding python difficult but I think I'll get this sorted out anyhow. I may try to look into your program though since the one I have does have some things I don't like about it. (No bottom left to right scroll bar kinda sucks!)
 
Well... I was finding that while it would look perfect on the text editor, the python editor would show it to be far off in terms of the tabs so I'm not sure how that could be working for ya.

Anyhow, I still cannot figure out why this produces a completely blank unit help panel :mad: :
Code:
if ((pSelectedGroup == 0) or (pSelectedGroup.getLengthMissionQueue() <= 1)):
          screen.show( "SelectedUnitText" )
          screen.show( "SelectedUnitPanel" )

          szBuffer = u""

          szLeftBuffer = u""
          szRightBuffer = u""

          if (gc.getGame().isOption(GameOptionTypes.GAMEOPTION_SIZE_MATTERS)):
            if (pHeadSelectedUnit.getDomainType() == DomainTypes.DOMAIN_AIR):
              if (pHeadSelectedUnit.airBaseCombatStr() > 0):
                szLeftBuffer = localText.getText("INTERFACE_PANE_AIR_STRENGTH", ())
                if (pHeadSelectedUnit.isFighting()):
                  szRightBuffer = u"?/%.1f%c" %((float(pHeadSelectedUnit.airBaseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                elif (pHeadSelectedUnit.isHurt()):
                  szRightBuffer = u"%.1f/%.1f%c" %(((float(pHeadSelectedUnit.airBaseCombatStr() * pHeadSelectedUnit.currHitPoints())) / (float(pHeadSelectedUnit.maxHitPoints()))), (float(pHeadSelectedUnit.airBaseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                else:
                  szRightBuffer = u"%.1f%c" %((float(pHeadSelectedUnit.airBaseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
            else:
              if (pHeadSelectedUnit.canFight()):
                szLeftBuffer = localText.getText("INTERFACE_PANE_STRENGTH", ())
                if (pHeadSelectedUnit.isFighting()):
                  szRightBuffer = u"?/%.1f%c" %((float(pHeadSelectedUnit.baseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                elif (pHeadSelectedUnit.isHurt()):
                  szRightBuffer = u"%.1f/%.1f%c" %(((float(pHeadSelectedUnit.baseCombatStr() * pHeadSelectedUnit.currHitPoints())) / (float(pHeadSelectedUnit.maxHitPoints()))), (float(pHeadSelectedUnit.baseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                else:
                  szRightBuffer = u"%.1f%c" %((float(pHeadSelectedUnit.baseCombatStr())), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
          else:
            if (pHeadSelectedUnit.getDomainType() == DomainTypes.DOMAIN_AIR):
              if (pHeadSelectedUnit.airBaseCombatStr() > 0):
                szLeftBuffer = localText.getText("INTERFACE_PANE_AIR_STRENGTH", ())
                if (pHeadSelectedUnit.isFighting()):
                  szRightBuffer = u"?/%d%c" %(pHeadSelectedUnit.airBaseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                elif (pHeadSelectedUnit.isHurt()):
                  szRightBuffer = u"%.1f/%d%c" %(((float(pHeadSelectedUnit.airBaseCombatStr() * pHeadSelectedUnit.currHitPoints())) / (float(pHeadSelectedUnit.maxHitPoints()))), pHeadSelectedUnit.airBaseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                else:
                  szRightBuffer = u"%d%c" %(pHeadSelectedUnit.airBaseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
            else:
              if (pHeadSelectedUnit.canFight()):
                szLeftBuffer = localText.getText("INTERFACE_PANE_STRENGTH", ())
                if (pHeadSelectedUnit.isFighting()):
                  szRightBuffer = u"?/%d%c" %(pHeadSelectedUnit.baseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                elif (pHeadSelectedUnit.isHurt()):
                  szRightBuffer = u"%.1f/%d%c" %(((float(pHeadSelectedUnit.baseCombatStr() * pHeadSelectedUnit.currHitPoints())) / (float(pHeadSelectedUnit.maxHitPoints()))), pHeadSelectedUnit.baseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))
                else:
                  szRightBuffer = u"%d%c" %(pHeadSelectedUnit.baseCombatStr(), CyGame().getSymbolID(FontSymbols.STRENGTH_CHAR))

          szBuffer = szLeftBuffer + szRightBuffer
The original is pretty much identical minus the if option reference and the adaptations to floats. What on earth could be wrong here? It checks out in terms of the tabs.
 
So what do you see with and without the option activated.
P.S. What a long winded code :D
 
On both, it simply doesn't display the strength and after portion of the unit help panel. It also keeps the unit from getting any action buttons. If you select multiple units on a stack with a double click, you get the action buttons for the lead unit but it sticks on that when you move to another unit selection. It will also show as normal for the stack help panel until a singular unit is selected again.

One way or another, the option needs to copy the entire Air unit to all other unit help segments so that the strength values may be converted to floats under that option. So... long winded? Only as much as I can imagine would be necessary. At least this way, the option is only called once.
 
Back
Top Bottom