Changeset View
Changeset View
Standalone View
Standalone View
binaries/data/mods/public/gui/session/selection_panels.js
Show First 20 Lines • Show All 41 Lines • ▼ Show 20 Lines | g_SelectionPanels.Alert = { | ||||
}, | }, | ||||
"getItems": function(unitEntStates) | "getItems": function(unitEntStates) | ||||
{ | { | ||||
return unitEntStates.some(state => !!state.alertRaiser) ? ["raise", "end"] : []; | return unitEntStates.some(state => !!state.alertRaiser) ? ["raise", "end"] : []; | ||||
}, | }, | ||||
"setupButton": function(data) | "setupButton": function(data) | ||||
{ | { | ||||
data.button.onPress = function() { | data.button.onPress = function() { | ||||
switch (data.item) | switch (data.item) | ||||
Lint: ESLintBear (default-case): `Expected a default case.` | |||||
{ | { | ||||
case "raise": | case "raise": | ||||
raiseAlert(); | raiseAlert(); | ||||
return; | return; | ||||
case "end": | case "end": | ||||
endOfAlert(); | endOfAlert(); | ||||
return; | return; | ||||
} | } | ||||
}; | }; | ||||
switch (data.item) | switch (data.item) | ||||
Lint: ESLintBear (default-case) Expected a default case. Lint: ESLintBear (default-case): `Expected a default case.` | |||||
{ | { | ||||
case "raise": | case "raise": | ||||
data.icon.sprite = "stretched:session/icons/bell_level1.png"; | data.icon.sprite = "stretched:session/icons/bell_level1.png"; | ||||
data.button.tooltip = translate("Raise an alert!"); | data.button.tooltip = translate("Raise an alert!"); | ||||
break; | break; | ||||
case "end": | case "end": | ||||
data.button.tooltip = translate("End of alert."); | data.button.tooltip = translate("End of alert."); | ||||
data.icon.sprite = "stretched:session/icons/bell_level0.png"; | data.icon.sprite = "stretched:session/icons/bell_level0.png"; | ||||
▲ Show 20 Lines • Show All 585 Lines • ▼ Show 20 Lines | "setupButton": function(data) | ||||
let playerState = GetSimState().players[player]; | let playerState = GetSimState().players[player]; | ||||
for (let tech of data.item.tech.pair ? [data.item.tech.bottom, data.item.tech.top] : [data.item.tech]) | for (let tech of data.item.tech.pair ? [data.item.tech.bottom, data.item.tech.top] : [data.item.tech]) | ||||
{ | { | ||||
// Don't change the object returned by GetTechnologyData | // Don't change the object returned by GetTechnologyData | ||||
let template = clone(GetTechnologyData(tech, playerState.civ)); | let template = clone(GetTechnologyData(tech, playerState.civ)); | ||||
if (!template) | if (!template) | ||||
return false; | return false; | ||||
// Not allowed by civ. | |||||
if (!template.reqs) | |||||
{ | |||||
// One of the pair may still be researchable by the current civ, | |||||
// hence don't hide everything. | |||||
Engine.GetGUIObjectByName("unitResearchButton[" + data.i + "]").hidden = true; | |||||
pair.hidden = true; | |||||
continue; | |||||
} | |||||
for (let res in template.cost) | for (let res in template.cost) | ||||
template.cost[res] *= data.item.techCostMultiplier[res]; | template.cost[res] *= data.item.techCostMultiplier[res]; | ||||
let neededResources = Engine.GuiInterfaceCall("GetNeededResources", { | let neededResources = Engine.GuiInterfaceCall("GetNeededResources", { | ||||
"cost": template.cost, | "cost": template.cost, | ||||
"player": player | "player": player | ||||
}); | }); | ||||
Show All 20 Lines | for (let tech of data.item.tech.pair ? [data.item.tech.bottom, data.item.tech.top] : [data.item.tech]) | ||||
{ | { | ||||
if (!req.entities) | if (!req.entities) | ||||
continue; | continue; | ||||
let entityCounts = []; | let entityCounts = []; | ||||
for (let entity of req.entities) | for (let entity of req.entities) | ||||
{ | { | ||||
let current = 0; | let current = 0; | ||||
switch (entity.check) | switch (entity.check) | ||||
Lint: ESLintBear (default-case) Expected a default case. Lint: ESLintBear (default-case): `Expected a default case.` | |||||
{ | { | ||||
case "count": | case "count": | ||||
current = playerState.classCounts[entity.class] || 0; | current = playerState.classCounts[entity.class] || 0; | ||||
break; | break; | ||||
case "variants": | case "variants": | ||||
current = playerState.typeCountsByClass[entity.class] ? | current = playerState.typeCountsByClass[entity.class] ? | ||||
Object.keys(playerState.typeCountsByClass[entity.class]).length : 0; | Object.keys(playerState.typeCountsByClass[entity.class]).length : 0; | ||||
Show All 18 Lines | for (let tech of data.item.tech.pair ? [data.item.tech.bottom, data.item.tech.top] : [data.item.tech]) | ||||
} | } | ||||
tooltips.push(getNeededResourcesTooltip(neededResources)); | tooltips.push(getNeededResourcesTooltip(neededResources)); | ||||
button.tooltip = tooltips.filter(tip => tip).join("\n"); | button.tooltip = tooltips.filter(tip => tip).join("\n"); | ||||
button.onPress = (t => function() { | button.onPress = (t => function() { | ||||
addResearchToQueue(data.item.researchFacilityId, t); | addResearchToQueue(data.item.researchFacilityId, t); | ||||
})(tech); | })(tech); | ||||
let showTemplateFunc = (t => function() { | let showTemplateFunc = (t => function() { | ||||
Lint: ESLintBear (no-multi-spaces) Multiple spaces found before '('. Lint: ESLintBear (no-multi-spaces): `Multiple spaces found before '('.` | |||||
showTemplateDetails( | showTemplateDetails( | ||||
t, | t, | ||||
GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv); | GetTemplateData(data.unitEntStates.find(state => state.id == data.item.researchFacilityId).template).nativeCiv); | ||||
}); | }); | ||||
button.onPressRight = showTemplateFunc(tech); | button.onPressRight = showTemplateFunc(tech); | ||||
button.onPressRightDisabled = showTemplateFunc(tech); | button.onPressRightDisabled = showTemplateFunc(tech); | ||||
▲ Show 20 Lines • Show All 454 Lines • Show Last 20 Lines |
Wildfire Games · Phabricator
Expected a default case.