ruff_hi
Live 4ever! Or die trying
is there a list / screen of where National Wonders are located? I am playing a scenario (next war) and I had to hunt thru 30 cities looking for wall street - v annoying.
There is? Guess you learn something every day.There is a drop down list box in the F9 screen to choose between World Wonders, National Wonders and Projects.
brilliant - got any source code to share?While we are at it, I've changed that screen to look like this (quick and better overview plus sortable by build date and owner).
<snip>
What do you think about that?
ThxBTW, BUG 3.6 is great !!
Funny - I had also overlooked it for years .There is? Guess you learn something every day.
ruff_hi said:brilliant - got any source code to share?
There is a drop down list box in the F9 screen to choose between World Wonders, National Wonders and Projects.
While we are at it, I've changed that screen to look like this (quick and better overview plus sortable by build date and owner).
What do you think about that?
BTW, BUG 3.6 is great !!
Let me show a simple example form my version of current LHC:How do you know they have the tech? If you mean because you see a unit that requires that tech (your Knight example) or an improvement, then I understand. If there's some other method you're thinking of, please explain.
Look carefully to the can/won't trade colums: Ragnar has monotheism on me. Now look to the can research column: It says that he can research Divine Right and no Theology there. So: if he has monotheism but can't research theology, is because he already has it or there is any prereq missing. We could compare with our own tech tree or infer that he has the other prereq ( writing ) by other means ( for example if he can tech/trade Alphabet or Mathematics, a thing that requires comparing with our own tech tree most of the times ), but here we know that ragnar can research a tech that has Theology as a prereq ( Divine Right ), so he has to have Theology.
From my reading of the tech tree ...
Theology needs writing or Monotheism
I knew I should have posted a 'IIRC' or similar as I felt that I was wrong as I was typing out the above.You're wrong, ruff. Theo needs Mono and writing and DR needs Theo and monarchy
But still, the question as to why the system is showing that he can research Divine Right remains outstanding.
My understanding (and I am more than happy to be proven wrong) is that the AIs 'can research' column should only show techs that ...
. .. .. .. .. .a) the AI can actually research
AND b) the player either knows or can research
While we are at it, I've changed that screen to look like this (quick and better overview plus sortable by build date and owner).
I took Dan's code and folded it into BUG last night. As per BUG standards D), it is optional. I also changed the date format so that AD / BC appears. I am not sure or not if I like the color coding options - some colors are difficult to read. Oh, and I am going to change the code so that the city name is shown as long as the player can see that city (on the assumption that you can zoom in and inspect the city for the wonder graphic).Glad you like it -- here is my "blemished" CvInfoScreen.py, but please be careful, since I don't approach this kind of "programming" with the professionalism of your class...
Yeah - I know you didn't change anything. It uses ...!
I didn't touch the city display rule, which only gave away the name of the city if you had "active visibility" for its plot (via enough EPs, or a unit there or the plot lit up by a recent air-recon mission). But yeah, I just noticed that the graphics for Wonders and the city size *do* get updated after you've seen the city once, even without any "active" refreshes of the city's plot. So that change should be ok re spoiler info and is very welcome.
What is it with you and the need to color code everything . But - yes- looks good. What file controls the color coding (and I assume the makeup) of the log? Can we get a copy?Something else: <snip> you like ?
//Any anti-unaltered comments anyone? // Further - what about a 'zoom to city' button so that once you have found were that pesky (+100% WW) wonder is, you can locate the city easier and make war plans accordingly.
I like colors .What is it with you and the need to color code everything .
def onCombatLogHit(self, argsList):
'Combat Message'
global gCombatMessages, gCombatLog
genericArgs = argsList[0][0]
cdAttacker = genericArgs[0]
cdDefender = genericArgs[1]
iIsAttacker = genericArgs[2]
iDamage = genericArgs[3]
if cdDefender.eOwner == cdDefender.eVisualOwner:
szDefenderName = gc.getPlayer(cdDefender.eOwner).getNameKey()
else:
szDefenderName = localText.getText("TXT_KEY_TRAIT_PLAYER_UNKNOWN", ())
if cdAttacker.eOwner == cdAttacker.eVisualOwner:
szAttackerName = gc.getPlayer(cdAttacker.eOwner).getNameKey()
else:
szAttackerName = localText.getText("TXT_KEY_TRAIT_PLAYER_UNKNOWN", ())
if (iIsAttacker == 0):
combatMessage = localText.getText("TXT_KEY_COMBAT_MESSAGE_HIT", (szDefenderName, cdDefender.sUnitName, iDamage, cdDefender.iCurrHitPoints, cdDefender.iMaxHitPoints))
combatMessageAttacker = localText.changeTextColor(u" - " + combatMessage, gc.getInfoTypeForString("COLOR_PLAYER_LIGHT_GREEN_TEXT")) #DanF
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessageAttacker)
combatMessageDefender = localText.changeTextColor(u" - " + combatMessage, gc.getInfoTypeForString("COLOR_PLAYER_PINK_TEXT")) #DanF
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessageDefender)
if (cdDefender.iCurrHitPoints <= 0):
combatMessage = localText.getText("TXT_KEY_COMBAT_MESSAGE_DEFEATED", (szAttackerName, cdAttacker.sUnitName, szDefenderName, cdDefender.sUnitName))
combatMessageAttacker = localText.changeTextColor(combatMessage, gc.getInfoTypeForString("COLOR_POSITIVE_TEXT")) #DanF
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessageAttacker)
combatMessageDefender = localText.changeTextColor(combatMessage, gc.getInfoTypeForString("COLOR_NEGATIVE_TEXT")) #DanF
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessageDefender)
elif (iIsAttacker == 1):
combatMessage = localText.getText("TXT_KEY_COMBAT_MESSAGE_HIT", (szAttackerName, cdAttacker.sUnitName, iDamage, cdAttacker.iCurrHitPoints, cdAttacker.iMaxHitPoints))
combatMessageAttacker = localText.changeTextColor(u" - " + combatMessage, gc.getInfoTypeForString("COLOR_PLAYER_PINK_TEXT")) #DanF
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessageAttacker)
combatMessageDefender = localText.changeTextColor(u" - " + combatMessage, gc.getInfoTypeForString("COLOR_PLAYER_LIGHT_GREEN_TEXT")) #DanF
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessageDefender)
if (cdAttacker.iCurrHitPoints <= 0):
combatMessage = localText.getText("TXT_KEY_COMBAT_MESSAGE_DEFEATED", (szDefenderName, cdDefender.sUnitName, szAttackerName, cdAttacker.sUnitName))
combatMessageAttacker = localText.changeTextColor(combatMessage, gc.getInfoTypeForString("COLOR_NEGATIVE_TEXT")) #DanF
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessageAttacker)
combatMessageDefender = localText.changeTextColor(combatMessage, gc.getInfoTypeForString("COLOR_POSITIVE_TEXT")) #DanF
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessageDefender)
def combatMessageBuilder(cdAttacker, cdDefender, iCombatOdds):
combatMessage = "%s's %s (%.2f)" %(gc.getPlayer(cdAttacker.eOwner).getName(),cdAttacker.sUnitName,cdAttacker.iCurrCombatStr/100.0,)
combatMessage += " " + localText.getText("TXT_KEY_COMBAT_MESSAGE_VS", ()) + " "
combatMessage += "%s's %s (%.2f)" %(gc.getPlayer(cdDefender.eOwner).getName(),cdDefender.sUnitName,cdDefender.iCurrCombatStr/100.0,)
combatMessage = localText.changeTextColor(combatMessage, gc.getInfoTypeForString("COLOR_HIGHLIGHT_TEXT")) #DanF
CyInterface().addCombatMessage(cdAttacker.eOwner, u" --- ")
CyInterface().addCombatMessage(cdDefender.eOwner, u" --- ")
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessage)
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessage)
combatMessage = "%s %.1f%%" %(localText.getText("TXT_KEY_COMBAT_MESSAGE_ODDS", ()),iCombatOdds/10.0,)
CyInterface().addCombatMessage(cdAttacker.eOwner,combatMessage)
CyInterface().addCombatMessage(cdDefender.eOwner,combatMessage)
combatDetailMessageBuilder(cdAttacker,cdAttacker.eOwner,-1)
combatDetailMessageBuilder(cdDefender,cdAttacker.eOwner,1)
combatDetailMessageBuilder(cdAttacker,cdDefender.eOwner,-1)
combatDetailMessageBuilder(cdDefender,cdDefender.eOwner,1)
pCity.isRevealed(eTeam)
CyCamera().JustLookAtPlot(pCity.plot())
You speak my mind.Roland_Johansen said:How is it possible that after you guys have already made so many improvements, still new suggestions for improvements keep appearing? It don't think it shows that the original Firaxis interface was bad, I think it shows how hard it is to create a great interface for such a complex game.
Something else:
you like ?