Ticket #3395: ticket3395unitactions_6.diff

File ticket3395unitactions_6.diff, 4.3 KB (added by bb, 8 years ago)

display build rate for foundations in tooltip (and renaming "repairtime" to "repairratio" in cleanup of last commit, since that is the correct name)

  • binaries/data/mods/public/gui/common/tooltips.js

     
    244244    });
    245245}
    246246
     247function getBuildRatioTooltip(ratio)
     248{
     249    let unit = sprintf(translate("%(health)s / %(second)s / %(worker)s"), {
     250        "health": g_TooltipTextFormats.unit[0] + translate("health") + g_TooltipTextFormats.unit[1],
     251        "second": g_TooltipTextFormats.unit[0] + translate("second") + g_TooltipTextFormats.unit[1],
     252        "worker": g_TooltipTextFormats.unit[0] + translate("worker") + g_TooltipTextFormats.unit[1]
     253    });
     254
     255    return "\n" + sprintf(translate("%(buildRateLabel)s %(detail)s %(unit)s"), {
     256        "buildRateLabel": g_TooltipTextFormats.header[0] + translate("Build Rate:") + g_TooltipTextFormats.header[1],
     257        "detail": ratio,
     258        "unit": unit
     259    });
     260}
     261
    247262/**
    248263 * Translates a cost component identifier as they are used internally
    249264 * (e.g. "population", "food", etc.) to proper display names.
  • binaries/data/mods/public/gui/session/selection_details.js

     
    265265    if (entState.repairRatio)
    266266        Engine.GetGUIObjectByName("attackAndArmorStats").tooltip += getRepairRatioTooltip(entState.repairRatio);
    267267
     268    // Build Rate
     269    if (entState.buildRatio)
     270        Engine.GetGUIObjectByName("attackAndArmorStats").tooltip += getBuildRatioTooltip(entState.buildRatio);
     271
    268272    // Icon Tooltip
    269273    let iconTooltip = "";
    270274
  • binaries/data/mods/public/simulation/components/Foundation.js

     
    254254    // Add an appropriate proportion of hitpoints
    255255    var cmpHealth = Engine.QueryInterface(this.entity, IID_Health);
    256256    var maxHealth = cmpHealth.GetMaxHitpoints();
    257     var deltaHP = Math.max(work, Math.min(maxHealth, Math.floor(maxHealth * (amount * this.buildMultiplier))));
     257    var deltaHP = Math.max(work, Math.min(maxHealth, Math.floor(maxHealth * amount * this.buildMultiplier)));
    258258    if (deltaHP > 0)
    259259    {
    260260        cmpHealth.Increase(deltaHP);
     
    344344    }
    345345};
    346346
     347Foundation.prototype.GetBuildRatio = function()
     348{
     349    let cmpHealth = Engine.QueryInterface(this.entity, IID_Health);
     350    let cmpCost = Engine.QueryInterface(this.entity, IID_Cost);
     351    let buildRatio = cmpHealth.GetMaxHitpoints() / cmpCost.GetBuildTime();
     352    return (Math.round(buildRatio * 10 ) / 10);
     353};
     354
    347355Engine.RegisterComponentType(IID_Foundation, "Foundation", Foundation);
    348356
  • binaries/data/mods/public/simulation/components/GuiInterface.js

     
    404404        "obstruction": null,
    405405        "turretParent":null,
    406406        "promotion": null,
    407         "repairTime": null,
     407        "repairRatio": null,
     408        "buildRatio": null,
    408409        "resourceDropsite": null,
    409410        "resourceGatherRates": null,
    410411        "resourceSupply": null,
     
    489490    if (cmpRepairable)
    490491        ret.repairRatio = cmpRepairable.GetRepairRatio();
    491492
     493    let cmpFoundation = Engine.QueryInterface(ent, IID_Foundation);
     494    if (cmpFoundation)
     495        ret.buildRatio = cmpFoundation.GetBuildRatio();
     496
    492497    let cmpResourceSupply = QueryMiragedInterface(ent, IID_ResourceSupply);
    493498    if (cmpResourceSupply)
    494499        ret.resourceSupply = {
  • binaries/data/mods/public/simulation/components/tests/test_GuiInterface.js

     
    510510    obstruction: null,
    511511    turretParent: null,
    512512    promotion: null,
    513     repairTime: null,
     513    repairRatio: null,
     514    buildRatio: null,
    514515    resourceDropsite: null,
    515516    resourceGatherRates: null,
    516517    resourceSupply: null,