Only have capturing entities contribute to the capture regenrate.
Only entities which have capture attack themselves will contribute to the regen-rate of a structure. The `garrisonRegenRate` is now a multiplier how much each unit contributes their strength. Quite some gameplay change, but we can experiment with this. Differential revision: https://code.wildfiregames.com/D4679 Comments by: @chrstgtr, @marder, @wraitii This was SVN commit r27142.
This commit is contained in:
parent
a315f90980
commit
856e876148
@ -345,6 +345,8 @@ Attack.prototype.GetFullAttackRange = function()
|
||||
Attack.prototype.GetAttackEffectsData = function(type, splash)
|
||||
{
|
||||
let template = this.template[type];
|
||||
if (!template)
|
||||
return undefined;
|
||||
if (splash)
|
||||
template = template.Splash;
|
||||
return AttackHelper.GetAttackEffectsData("Attack/" + type + (splash ? "/Splash" : ""), template, this.entity);
|
||||
|
@ -7,7 +7,7 @@ Capturable.prototype.Schema =
|
||||
"<element name='RegenRate' a:help='Number of capture points that are regenerated per second in favour of the owner.'>" +
|
||||
"<ref name='nonNegativeDecimal'/>" +
|
||||
"</element>" +
|
||||
"<element name='GarrisonRegenRate' a:help='Number of capture points that are regenerated per second and per garrisoned unit in favour of the owner.'>" +
|
||||
"<element name='GarrisonRegenRate' a:help='Factor how much each garrisoned entity will add capture points to the regeneration per second in favour of the owner.'>" +
|
||||
"<ref name='nonNegativeDecimal'/>" +
|
||||
"</element>";
|
||||
|
||||
@ -182,11 +182,22 @@ Capturable.prototype.RegisterCapturePointsChanged = function()
|
||||
|
||||
Capturable.prototype.GetRegenRate = function()
|
||||
{
|
||||
let cmpGarrisonHolder = Engine.QueryInterface(this.entity, IID_GarrisonHolder);
|
||||
const cmpGarrisonHolder = Engine.QueryInterface(this.entity, IID_GarrisonHolder);
|
||||
if (!cmpGarrisonHolder)
|
||||
return this.regenRate;
|
||||
|
||||
return this.regenRate + this.GetGarrisonRegenRate() * cmpGarrisonHolder.GetEntities().length;
|
||||
let total = this.regenRate;
|
||||
const garrisonRegenRate = this.GetGarrisonRegenRate();
|
||||
for (const entity of cmpGarrisonHolder.GetEntities())
|
||||
{
|
||||
const captureStrength = Engine.QueryInterface(entity, IID_Attack)?.GetAttackEffectsData("Capture")?.Capture;
|
||||
if (!captureStrength)
|
||||
continue;
|
||||
|
||||
total += captureStrength * garrisonRegenRate;
|
||||
}
|
||||
|
||||
return total;
|
||||
};
|
||||
|
||||
Capturable.prototype.TimerTick = function()
|
||||
|
@ -14,13 +14,18 @@ var testData = {
|
||||
"playerID": 1,
|
||||
"regenRate": 2,
|
||||
"garrisonedEntities": [30, 31, 32, 33],
|
||||
"garrisonRegenRate": 5,
|
||||
"garrisonRegenRate": 2,
|
||||
"decay": false,
|
||||
"decayRate": 30,
|
||||
"maxCapturePoints": 3000,
|
||||
"neighbours": [20, 0, 20, 10]
|
||||
};
|
||||
|
||||
const testCaptureAttacks = {
|
||||
"30": 1.5,
|
||||
"32": 2.0
|
||||
};
|
||||
|
||||
function testCapturable(testData, test_function)
|
||||
{
|
||||
ResetState();
|
||||
@ -81,7 +86,20 @@ function testCapturable(testData, test_function)
|
||||
"GetConnectedNeighbours": () => testData.neighbours
|
||||
});
|
||||
|
||||
TS_ASSERT_EQUALS(cmpCapturable.GetRegenRate(), testData.regenRate + testData.garrisonRegenRate * testData.garrisonedEntities.length);
|
||||
let regenRate = testData.regenRate;
|
||||
for (const entity of testData.garrisonedEntities)
|
||||
{
|
||||
if (testCaptureAttacks[entity] === undefined)
|
||||
continue;
|
||||
AddMock(entity, IID_Attack, {
|
||||
"GetAttackEffectsData": (type) => {
|
||||
return type === "Capture" ? { "Capture": testCaptureAttacks[entity] } : undefined;
|
||||
},
|
||||
});
|
||||
regenRate += testCaptureAttacks[entity] * testData.garrisonRegenRate;
|
||||
}
|
||||
|
||||
TS_ASSERT_EQUALS(cmpCapturable.GetRegenRate(), regenRate);
|
||||
test_function(cmpCapturable);
|
||||
Engine.PostMessage = (ent, iid, message) => {};
|
||||
}
|
||||
@ -142,13 +160,13 @@ function testRegen(testData, capturePointsIn, capturePointsOut, regenerating)
|
||||
});
|
||||
}
|
||||
|
||||
// With our testData, the total regen rate is 22. That should be taken from the ennemies
|
||||
testRegen(testData, [12, 2950, 2, 36], [1, 2972, 2, 25], true);
|
||||
// With our testData, the total regen rate is 9. That should be taken from the enemies
|
||||
testRegen(testData, [12, 2950, 2, 36], [7.5, 2959, 2, 31.5], true);
|
||||
testRegen(testData, [0, 2994, 2, 4], [0, 2998, 2, 0], true);
|
||||
testRegen(testData, [0, 2998, 2, 0], [0, 2998, 2, 0], false);
|
||||
|
||||
// If the regeneration rate becomes negative, capture points are given in favour of gaia
|
||||
testData.regenRate = -32;
|
||||
testData.regenRate = -19;
|
||||
// With our testData, the total regen rate is -12. That should be taken from all players to gaia
|
||||
testRegen(testData, [100, 2800, 50, 50], [112, 2796, 46, 46], true);
|
||||
testData.regenRate = 2;
|
||||
@ -167,6 +185,8 @@ function testDecay(testData, capturePointsIn, capturePointsOut)
|
||||
});
|
||||
}
|
||||
testData.decay = true;
|
||||
testData.regenRate = 8;
|
||||
testData.garrisonRegenRate = 4;
|
||||
// With our testData, the decay rate is 30, that should be given to all neighbours with weights [20/50, 0, 20/50, 10/50], then it regens.
|
||||
testDecay(testData, [2900, 35, 10, 55], [2901, 27, 22, 50]);
|
||||
testData.decay = false;
|
||||
|
@ -2,8 +2,8 @@
|
||||
"type": "garrison",
|
||||
"affects": ["Structure"],
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 2 }
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 1 }
|
||||
],
|
||||
"auraName": "Inspired Defense",
|
||||
"auraDescription": "When garrisoned, the Structure has +2 capture points garrison regeneration rate."
|
||||
"auraDescription": "When garrisoned, the Structure has +1 capture points garrison regeneration rate."
|
||||
}
|
||||
|
@ -19,9 +19,9 @@
|
||||
"replaces": ["phase_city"],
|
||||
"icon": "city_phase.png",
|
||||
"researchTime": 60,
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +9 capture points regeneration rate per garrisoned unit. Workers +10% metal gather rate.",
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +1 capture points regeneration rate for garrisoned units. Workers +10% metal gather rate.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 9, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 1, "affects": "Structure" },
|
||||
{ "value": "ResourceGatherer/Rates/metal.ore", "multiply": 1.1, "affects": "Worker" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.5, "affects": "CivCentre" }
|
||||
],
|
||||
|
@ -23,9 +23,9 @@
|
||||
"replaces": ["phase_city"],
|
||||
"icon": "city_phase.png",
|
||||
"researchTime": 60,
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +9 capture points regeneration rate per garrisoned unit.",
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +1 capture points regeneration rate for garrisoned units.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 9, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 1, "affects": "Structure" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.5, "affects": "CivCentre" }
|
||||
],
|
||||
"soundComplete": "interface/alarm/alarm_phase.xml"
|
||||
|
@ -16,9 +16,9 @@
|
||||
"replaces": ["phase_city"],
|
||||
"icon": "city_phase.png",
|
||||
"researchTime": 60,
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +9 capture points regeneration rate per garrisoned unit. Stable −10% batch training time.",
|
||||
"tooltip": "Advance to City Phase, which unlocks more entities and technologies. Civic Centers +50% territory influence radius. Structures +1 capture points regeneration rate for garrisoned units. Stable −10% batch training time.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 9, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 1, "affects": "Structure" },
|
||||
{ "value": "Trainer/BatchTimeModifier", "add": -0.1, "affects": "Stable" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.5, "affects": "CivCentre" }
|
||||
],
|
||||
|
@ -19,9 +19,9 @@
|
||||
"replaces": ["phase_town"],
|
||||
"icon": "town_phase.png",
|
||||
"researchTime": 30,
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +7 capture points regeneration rate per garrisoned unit. Workers +10% metal gather rate.",
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +0.5 capture points regeneration rate for garrisoned units. Workers +10% metal gather rate.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 7, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 0.5, "affects": "Structure" },
|
||||
{ "value": "ResourceGatherer/Rates/metal.ore", "multiply": 1.1, "affects": "Worker" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.3, "affects": "CivCentre" }
|
||||
],
|
||||
|
@ -23,9 +23,9 @@
|
||||
"replaces": ["phase_town"],
|
||||
"icon": "town_phase.png",
|
||||
"researchTime": 30,
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +7 capture points regeneration rate per garrisoned unit.",
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +0.5 capture points regeneration rate for garrisoned units.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 7, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 0.5, "affects": "Structure" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.3, "affects": "CivCentre" }
|
||||
],
|
||||
"soundComplete": "interface/alarm/alarm_phase.xml"
|
||||
|
@ -16,9 +16,9 @@
|
||||
"replaces": ["phase_town"],
|
||||
"icon": "town_phase.png",
|
||||
"researchTime": 30,
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +7 capture points regeneration rate per garrisoned unit. Stable −10% batch training time.",
|
||||
"tooltip": "Advance to Town Phase, which unlocks more entities and technologies. Civic Centers +30% territory influence radius. Structures +0.5 capture points regeneration rate for garrisoned units. Stable −10% batch training time.",
|
||||
"modifications": [
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 7, "affects": "Structure" },
|
||||
{ "value": "Capturable/GarrisonRegenRate", "add": 0.5, "affects": "Structure" },
|
||||
{ "value": "Trainer/BatchTimeModifier", "add": -0.1, "affects": "Stable" },
|
||||
{ "value": "TerritoryInfluence/Radius", "multiply": 1.3, "affects": "CivCentre" }
|
||||
],
|
||||
|
@ -10,7 +10,7 @@
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints op="mul">4</CapturePoints>
|
||||
<GarrisonRegenRate>10</GarrisonRegenRate>
|
||||
<GarrisonRegenRate>2</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>500</BuildTime>
|
||||
|
@ -41,7 +41,7 @@
|
||||
<Capturable>
|
||||
<CapturePoints op="mul">3</CapturePoints>
|
||||
<RegenRate>10.0</RegenRate>
|
||||
<GarrisonRegenRate>3.0</GarrisonRegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>250</BuildTime>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>5</GarrisonRegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
|
@ -6,7 +6,7 @@
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>5</GarrisonRegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
|
@ -1,64 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>5</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="12.0" depth="11.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>ptol</Civ>
|
||||
<SpecificName>Desert Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="10.0" depth="10.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>structures/tent_big.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="12.0" depth="11.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>ptol</Civ>
|
||||
<SpecificName>Desert Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="10.0" depth="10.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>structures/tent_big.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
|
@ -1,64 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>5</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="9.0" depth="9.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>mace</Civ>
|
||||
<SpecificName>Macedonian Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="8.0" depth="8.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>structures/tent_greek.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="9.0" depth="9.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>mace</Civ>
|
||||
<SpecificName>Macedonian Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="8.0" depth="8.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>structures/tent_greek.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
|
@ -1,64 +1,64 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>5</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="11.0" depth="11.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>rome</Civ>
|
||||
<SpecificName>Roman Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="8.0" depth="8.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>props/structures/romans/rome_tent.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Entity parent="template_structure_special">
|
||||
<BuildRestrictions>
|
||||
<Territory>own neutral enemy</Territory>
|
||||
</BuildRestrictions>
|
||||
<Capturable>
|
||||
<CapturePoints>25</CapturePoints>
|
||||
<RegenRate>0</RegenRate>
|
||||
<GarrisonRegenRate>1</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<BuildTime>20</BuildTime>
|
||||
<Resources>
|
||||
<wood>50</wood>
|
||||
</Resources>
|
||||
</Cost>
|
||||
<Footprint>
|
||||
<Square width="11.0" depth="11.0"/>
|
||||
<Height>5.0</Height>
|
||||
</Footprint>
|
||||
<GarrisonHolder>
|
||||
<Max>5</Max>
|
||||
<EjectHealth>0.1</EjectHealth>
|
||||
<EjectClassesOnDestroy datatype="tokens">Unit</EjectClassesOnDestroy>
|
||||
<List datatype="tokens">Support Infantry</List>
|
||||
<BuffHeal>0</BuffHeal>
|
||||
<LoadingRange>2</LoadingRange>
|
||||
</GarrisonHolder>
|
||||
<Health>
|
||||
<Max>100</Max>
|
||||
<SpawnEntityOnDeath>decay|rubble/rubble_stone_3x3</SpawnEntityOnDeath>
|
||||
</Health>
|
||||
<Identity>
|
||||
<Civ>rome</Civ>
|
||||
<SpecificName>Roman Army Tent</SpecificName>
|
||||
<GenericName>Tent</GenericName>
|
||||
<Icon>structures/mercenary_camp.png</Icon>
|
||||
<VisibleClasses datatype="tokens">Tent</VisibleClasses>
|
||||
<Tooltip>A temporary shelter for soldiers. +5 population bonus.</Tooltip>
|
||||
</Identity>
|
||||
<Obstruction>
|
||||
<Static width="8.0" depth="8.0"/>
|
||||
</Obstruction>
|
||||
<Population>
|
||||
<Bonus>5</Bonus>
|
||||
</Population>
|
||||
<Sound>
|
||||
<SoundGroups>
|
||||
<select>interface/select/building/sel_universal.xml</select>
|
||||
<constructed>interface/complete/building/complete_universal.xml</constructed>
|
||||
<death>attack/destruction/building_collapse_large.xml</death>
|
||||
</SoundGroups>
|
||||
</Sound>
|
||||
<StatusBars>
|
||||
<HeightOffset>6.0</HeightOffset>
|
||||
</StatusBars>
|
||||
<TerritoryDecay>
|
||||
<DecayRate>1</DecayRate>
|
||||
</TerritoryDecay>
|
||||
<TerritoryInfluence disable=""/>
|
||||
<VisualActor>
|
||||
<Actor>props/structures/romans/rome_tent.xml</Actor>
|
||||
</VisualActor>
|
||||
</Entity>
|
||||
|
@ -9,7 +9,7 @@
|
||||
<Capturable>
|
||||
<CapturePoints>500</CapturePoints>
|
||||
<RegenRate>0.5</RegenRate>
|
||||
<GarrisonRegenRate>5.0</GarrisonRegenRate>
|
||||
<GarrisonRegenRate>1.0</GarrisonRegenRate>
|
||||
</Capturable>
|
||||
<Cost>
|
||||
<Population>0</Population>
|
||||
|
Loading…
Reference in New Issue
Block a user