1. We have added a Gift Upgrades feature that allows you to gift an account upgrade to another member, just in time for the holiday season. You can see the gift option when going to the Account Upgrades screen, or on any user profile screen.
    Dismiss Notice

Multiple-Heals Confusion

Discussion in 'Civ6 - General Discussions' started by Bleser, Nov 16, 2018.

  1. Bleser

    Bleser Prince

    Joined:
    Jun 23, 2002
    Messages:
    442
    Location:
    USA
    Hello!

    I've been playing Civ VI since the day it came out and love it even though it has its ups and downs. This community has served me well in solving mysteries about how the game works (and all the way back o Civ III when I started the Civ Franchise).

    One mystery I have yet to solve (through searching as well) is the mystery of "multiple heals". I just can't figure out the formula.

    I get that:
    • Healing in enemy territory = +5 HP per turn
    • Healing in neutral territory = +10 HP per turn
    • Healing in friendly territory = +15 HP per turn
    • Healing in a city = +20 HP per turn
    What I don't understand is when I see a unit heal by each value above multiple times per turn, sometimes three or four iterations. i.e. the animation is +10, +10, +10 on one unit for one turn. There are no medics around or anything.

    What is causing this? What is the formula so I can plan to take advantage? Thanks!
     
  2. TheMarshmallowBear

    TheMarshmallowBear Benelovent Chieftain of the BearKingdom

    Joined:
    Dec 27, 2006
    Messages:
    7,271
    Location:
    Inside an Ikanda.
    Are they actually going up by +30 in a single turn?

    Sometimes if a unit isn't in focus the floating text is still queued and appears the next time you see the unit, giving the illusion that it heals multiple times.
     
  3. Bleser

    Bleser Prince

    Joined:
    Jun 23, 2002
    Messages:
    442
    Location:
    USA
    Thanks @TheMarshmallowBear, and I know what you are referring to with respect to animations, but that is not what is going on here - I can see the same unit in one turn heal multiple times; the health bar jumping up with each iteration.
     
  4. BarbarianHunter

    BarbarianHunter King

    Joined:
    Dec 2, 2016
    Messages:
    979
    Gender:
    Male
    Location:
    Los Angeles, CA
    I have seen it and am curious as well. I have never studied it. I think I notice it happening after a unit has been fortified/on alert for some time then gets into combat, although this may be completely imaginary.
     
  5. Kryxal

    Kryxal Chieftain

    Joined:
    Aug 10, 2017
    Messages:
    50
    I've noticed the same from time to time, some unit that could use maybe two turns stationary so I just skip turn, then it's good for the next turn.
     
  6. RealAntithesis

    RealAntithesis Warlord

    Joined:
    Oct 23, 2016
    Messages:
    239
    I've also noticed this. One of my heavily damaged units (in the red) was inexplicably healed multiple times in one turn to full health. I didn't complain, but I was assuming it was due to one of the mods I had installed.
     
  7. Victoria

    Victoria Regina Supporter

    Joined:
    Apr 11, 2011
    Messages:
    10,433
    I have seen it, it appears to be a random bug like the extra builder charge... we tend to highlight bugs that are bad not good.
     
  8. Bleser

    Bleser Prince

    Joined:
    Jun 23, 2002
    Messages:
    442
    Location:
    USA
    Yeah, I see no mention of this anywhere so maybe it is bug. But I do see it in every game - sometimes for me, sometimes for my enemy. If it isn't a bug, I would love to know the mechanics.
     
  9. cvb

    cvb Prince

    Joined:
    Jun 12, 2017
    Messages:
    364
    Report the bug. So many players lament, the game is too easy, is boring ...
    In the youtube videos I often wondered why the barbs & AI units are dying like flies in the light of the human super heroes ... no wonder ;)
     
  10. cvb

    cvb Prince

    Joined:
    Jun 12, 2017
    Messages:
    364
    For better understanding the mechanics, I would first check for correlation of the multiple healings with the different turn phases of the human player.

    I'll have a look into this when we have a stable code base - ie. after the final patch after the release of the 'complete edition'.

    In civ4 I used this entry points into different stages of the human player turn:
    Spoiler :

    def beginTurn(iGameTurn, iPlayer):
    'called FROM onBeginPlayerTurn(self, argsList) at the beginning of a players turn'

    def endTurn(iGameTurn, iPlayer):
    'called FROM onEndPlayerTurn(self, argsList) at the end of a players turn'

    def checkTurn(iGameTurn):
    'called FROM onBeginGameTurn(self, argsList) at the beginning of the end of each turn'
    """Check once per turn and execute only the (single) human"""

    def allEndTurn(iGameTurn):
    'called FROM onEndGameTurn(self, argsList) at the end of the end of each turn'


    Something like this could be used to print data of all units into PythonDbg.log (and so showing the differences between the healing in the stages above):
    Spoiler :

    Code:
                            iNumUnits = pPlayer.getNumUnits()
                            iUnit = 0
                            while iUnit < iNumUnits:
                                pUnit = pPlayer.getUnit(iUnit)
                                if not pUnit.isNone():
                                    iDomainType = pUnit.getDomainType()
                                    if iDomainType == 0:     sAppendix = "   naval "
                                    elif iDomainType == 1:   sAppendix = "   AIR "
                                    elif iDomainType == 2:   sAppendix = "    "          # land
    
                                    if pUnit.getDamage():    sAppendix = sAppendix + "   w%s" % pUnit.getDamage()
    
                                    print(   "%s~ [%s,%s] %s (%s)%s-%s: %s     Exp%s L%s     F%s %s %s" %
                                             ( iUnit, pUnit.getX(), pUnit.getY(), pUnit.getName(), pUnit.isGroupHead(),
                                               pUnit.getGroupID(), pUnit.getID(), pUnit.getMoves(), pUnit.getExperience (), pUnit.getLevel(),
                                               pUnit.getFortifyTurns(), gc.getUnitAIInfo(pUnit.getUnitAIType()).getDescription(), sAppendix )   )
                                iUnit += 1
    
     

Share This Page