Make the tooltips and the required members part of the formation template + fix allowing the wedge formation only for cavalry
This was SVN commit r14542.
This commit is contained in:
parent
bec7cfd520
commit
4585f7322c
@ -4,6 +4,12 @@ Formation.prototype.Schema =
|
||||
"<element name='FormationName' a:help='Name of the formation'>" +
|
||||
"<text/>" +
|
||||
"</element>" +
|
||||
"<element name='RequiredMemberCount' a:help='Minimum number of entities the formation should contain'>" +
|
||||
"<data type='nonNegativeInteger'/>" +
|
||||
"</element>" +
|
||||
"<element name='DisabledTooltip' a:help='Tooltip shown when the formation is disabled'>" +
|
||||
"<text/>" +
|
||||
"</element>" +
|
||||
"<element name='SpeedMultiplier' a:help='The speed of the formation is determined by the minimum speed of all members, multiplied with this number.'>" +
|
||||
"<ref name='nonNegativeDecimal'/>" +
|
||||
"</element>" +
|
||||
|
@ -1365,53 +1365,17 @@ function ClusterEntities(ents, separationDistance)
|
||||
|
||||
function GetFormationRequirements(formationTemplate)
|
||||
{
|
||||
// TODO fix by querying the formation template and only accessing the info there
|
||||
var formationName = formationTemplate.split("/")[1];
|
||||
var cmpTempManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_TemplateManager);
|
||||
var template = cmpTempManager.GetTemplate(formationTemplate);
|
||||
if (!template.Formation)
|
||||
return false;
|
||||
|
||||
var r = {};
|
||||
r.minCount = 1;
|
||||
r.maxCount = 200;
|
||||
r.tooltip = ""
|
||||
switch(formationName)
|
||||
{
|
||||
case "scatter":
|
||||
case "column_closed":
|
||||
case "line_closed":
|
||||
case "column_open":
|
||||
case "line_open":
|
||||
case "battle_line":
|
||||
break;
|
||||
case "skirmish":
|
||||
r.tooltip = "Only ranged unit allowed.";
|
||||
break;
|
||||
case "box":
|
||||
r.minCount = 4;
|
||||
r.tooltip = "4 units required.";
|
||||
break;
|
||||
case "flank":
|
||||
r.minCount = 8;
|
||||
r.tooltip = "8 units required.";
|
||||
break;
|
||||
case "wedge":
|
||||
r.minCount = 3;
|
||||
r.tooltip = "3 cavalry units required.";
|
||||
break;
|
||||
case "phalanx":
|
||||
r.minCount = 10;
|
||||
r.tooltip = "10 melee units required.";
|
||||
break;
|
||||
case "syntagma":
|
||||
r.minCount = 9;
|
||||
r.tooltip = "9 pikemen required.";
|
||||
break;
|
||||
case "testudo":
|
||||
r.minCount = 9;
|
||||
r.tooltip = "9 melee units required.";
|
||||
break;
|
||||
default:
|
||||
// We encountered a unknown formation -> warn the user
|
||||
warn("Commands.js: GetFormationRequirements: unknown formation: " + formationName);
|
||||
return null;
|
||||
}
|
||||
r.minCount = +template.Formation.RequiredMemberCount;
|
||||
if (template.Formation.DisabledTooltip)
|
||||
r.tooltip = "\n" + template.Formation.DisabledTooltip;
|
||||
else
|
||||
r.tooltip = "";
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -1436,7 +1400,7 @@ function CanMoveEntsIntoFormation(ents, formationTemplate)
|
||||
count++;
|
||||
}
|
||||
|
||||
return count >= requirements.minCount && count <= requirements.maxCount;
|
||||
return count >= requirements.minCount;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -7,7 +7,7 @@
|
||||
<ShiftRows>true</ShiftRows>
|
||||
<MinColumns>5</MinColumns>
|
||||
<MaxColumns>8</MaxColumns>
|
||||
<MaxRows>6</MaxRows>
|
||||
<MaxRows>4</MaxRows>
|
||||
<WidthDepthRatio>2</WidthDepthRatio>
|
||||
</Formation>
|
||||
</Entity>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>4</RequiredMemberCount>
|
||||
<DisabledTooltip>4 units required</DisabledTooltip>
|
||||
<FormationName>Box</FormationName>
|
||||
<FormationShape>square</FormationShape>
|
||||
<SortingClasses>Melee Ranged</SortingClasses>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>8</RequiredMemberCount>
|
||||
<DisabledTooltip>8 units required</DisabledTooltip>
|
||||
<FormationName>Flank</FormationName>
|
||||
<FormationShape>square</FormationShape>
|
||||
<ShiftRows>true</ShiftRows>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>10</RequiredMemberCount>
|
||||
<DisabledTooltip>10 melee infantry units required</DisabledTooltip>
|
||||
<FormationName>Phalanx</FormationName>
|
||||
<MinColumns>5</MinColumns>
|
||||
<MaxColumns>8</MaxColumns>
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<DisabledTooltip>Only ranged units allowed</DisabledTooltip>
|
||||
<FormationName>Skirmish</FormationName>
|
||||
<ShiftRows>true</ShiftRows>
|
||||
<UnitSeparationWidthMultiplier>2</UnitSeparationWidthMultiplier>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>9</RequiredMemberCount>
|
||||
<DisabledTooltip>9 pike infantry units required</DisabledTooltip>
|
||||
<FormationName>Syntagma</FormationName>
|
||||
</Formation>
|
||||
</Entity>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>9</RequiredMemberCount>
|
||||
<DisabledTooltip>9 melee infantry units required</DisabledTooltip>
|
||||
<FormationName>Testudo</FormationName>
|
||||
</Formation>
|
||||
</Entity>
|
||||
|
@ -1,6 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_formation">
|
||||
<Formation>
|
||||
<RequiredMemberCount>3</RequiredMemberCount>
|
||||
<DisabledTooltip>3 cavalry units required</DisabledTooltip>
|
||||
<FormationName>Wedge</FormationName>
|
||||
<FormationShape>triangle</FormationShape>
|
||||
</Formation>
|
||||
|
@ -6,6 +6,8 @@
|
||||
</VisualActor>
|
||||
-->
|
||||
<Formation>
|
||||
<RequiredMemberCount>1</RequiredMemberCount>
|
||||
<DisabledTooltip></DisabledTooltip>
|
||||
<SpeedMultiplier>1</SpeedMultiplier>
|
||||
<FormationShape>square</FormationShape>
|
||||
<SortingClasses>Hero Champion Cavalry Melee Ranged</SortingClasses>
|
||||
|
@ -44,7 +44,6 @@
|
||||
formations/column_open
|
||||
formations/line_open
|
||||
formations/flank
|
||||
formations/wedge
|
||||
formations/battle_line
|
||||
</Formations>
|
||||
</Identity>
|
||||
|
@ -31,6 +31,9 @@
|
||||
<Classes datatype="tokens">Cavalry CitizenSoldier Organic</Classes>
|
||||
<GenericName>Cavalry</GenericName>
|
||||
<Rank>Basic</Rank>
|
||||
<Formations datatype="tokens">
|
||||
formations/wedge
|
||||
</Formations>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<xp>130</xp>
|
||||
|
@ -36,6 +36,9 @@
|
||||
<Identity>
|
||||
<GenericName>Champion Cavalry</GenericName>
|
||||
<Classes datatype="tokens">Cavalry</Classes>
|
||||
<Formations datatype="tokens">
|
||||
formations/wedge
|
||||
</Formations>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Unit radius="1.0"/>
|
||||
|
@ -40,6 +40,9 @@
|
||||
<GenericName>Hero Cavalry</GenericName>
|
||||
<Classes datatype="tokens">Hero -Champion</Classes>
|
||||
<RequiredTechnology>phase_city</RequiredTechnology>
|
||||
<Formations datatype="tokens">
|
||||
formations/wedge
|
||||
</Formations>
|
||||
</Identity>
|
||||
<Loot>
|
||||
<xp>500</xp>
|
||||
|
Loading…
Reference in New Issue
Block a user