Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/simulation/components/GuiInterface.js
Show First 20 Lines • Show All 401 Lines • ▼ Show 20 Lines | for (let type of types) | ||||
let timers = cmpAttack.GetTimers(type); | let timers = cmpAttack.GetTimers(type); | ||||
ret.attack[type].prepareTime = timers.prepare; | ret.attack[type].prepareTime = timers.prepare; | ||||
ret.attack[type].repeatTime = timers.repeat; | ret.attack[type].repeatTime = timers.repeat; | ||||
if (type != "Ranged") | if (type != "Ranged") | ||||
{ | { | ||||
// not a ranged attack, set some defaults | // not a ranged attack, set some defaults | ||||
ret.attack[type].elevationBonus = 0; | ret.attack[type].elevationRangeBonus = 0; | ||||
ret.attack[type].elevationAdaptedRange = ret.attack.maxRange; | ret.attack[type].elevationAdaptedRange = ret.attack.maxRange; | ||||
continue; | continue; | ||||
} | } | ||||
ret.attack[type].elevationBonus = range.elevationBonus; | ret.attack[type].elevationRangeBonus = range.elevationRangeBonus; | ||||
if (cmpUnitAI && cmpPosition && cmpPosition.IsInWorld()) | if (cmpUnitAI && cmpPosition && cmpPosition.IsInWorld()) | ||||
{ | { | ||||
// For units, take the range in front of it, no spread. So angle = 0 | // For units, take the range in front of it, no spread. So angle = 0 | ||||
ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 0); | ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationRangeBonus, 0); | ||||
} | } | ||||
else if(cmpPosition && cmpPosition.IsInWorld()) | else if(cmpPosition && cmpPosition.IsInWorld()) | ||||
{ | { | ||||
// For buildings, take the average elevation around it. So angle = 2*pi | // For buildings, take the average elevation around it. So angle = 2*pi | ||||
ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationBonus, 2*Math.PI); | ret.attack[type].elevationAdaptedRange = cmpRangeManager.GetElevationAdaptedRange(cmpPosition.GetPosition(), cmpPosition.GetRotation(), range.max, range.elevationRangeBonus, 2 * Math.PI); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
// not in world, set a default? | // not in world, set a default? | ||||
ret.attack[type].elevationAdaptedRange = ret.attack.maxRange; | ret.attack[type].elevationAdaptedRange = ret.attack.maxRange; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
▲ Show 20 Lines • Show All 91 Lines • ▼ Show 20 Lines | GuiInterface.prototype.GetAverageRangeForBuildings = function(player, cmd) | ||||
let rot = { "x": 0, "y": 0, "z": 0 }; | let rot = { "x": 0, "y": 0, "z": 0 }; | ||||
let pos = { | let pos = { | ||||
"x": cmd.x, | "x": cmd.x, | ||||
"y": cmpTerrain.GetGroundLevel(cmd.x, cmd.z), | "y": cmpTerrain.GetGroundLevel(cmd.x, cmd.z), | ||||
"z": cmd.z | "z": cmd.z | ||||
}; | }; | ||||
let elevationBonus = cmd.elevationBonus || 0; | let elevationRangeBonus = cmd.elevationRangeBonus || 0; | ||||
let range = cmd.range; | let range = cmd.range; | ||||
return cmpRangeManager.GetElevationAdaptedRange(pos, rot, range, elevationBonus, 2*Math.PI); | return cmpRangeManager.GetElevationAdaptedRange(pos, rot, range, elevationRangeBonus, 2 * Math.PI); | ||||
}; | }; | ||||
GuiInterface.prototype.GetTemplateData = function(player, templateName) | GuiInterface.prototype.GetTemplateData = function(player, templateName) | ||||
{ | { | ||||
let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | let cmpTemplateManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager); | ||||
let template = cmpTemplateManager.GetTemplate(templateName); | let template = cmpTemplateManager.GetTemplate(templateName); | ||||
if (!template) | if (!template) | ||||
▲ Show 20 Lines • Show All 1,436 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator