Ticket #2190: betterGarrisonRange.patch
File betterGarrisonRange.patch, 16.6 KB (added by , 11 years ago) |
---|
-
binaries/data/mods/public/simulation/components/Builder.js
42 42 Builder.prototype.GetRange = function() 43 43 { 44 44 var cmpObstruction = Engine.QueryInterface(this.entity, IID_Obstruction); 45 var max = 2;45 var max = 1; 46 46 if (cmpObstruction) 47 max += cmpObstruction.GetUnitRadius(); 47 max += cmpObstruction.GetUnitRadius()*1.5; 48 // multiply by something larger than sqrt(2) 48 49 49 50 return { "max": max, "min": 0 }; 50 51 }; -
binaries/data/mods/public/simulation/components/GarrisonHolder.js
18 18 "</element>" + 19 19 "<element name='BuffHeal' a:help='Number of hit points that will be restored to this holder's garrisoned units each second'>" + 20 20 "<ref name='nonNegativeDecimal'/>" + 21 "</element>" +22 "<element name='LoadingRange' a:help='The maximum distance from this holder at which entities are allowed to garrison. Should be about 2.0 for land entities and preferably greater for ships'>" +23 "<ref name='nonNegativeDecimal'/>" +24 21 "</element>"; 25 22 26 23 /** … … 35 32 }; 36 33 37 34 /** 38 * Return range at which entities can garrison here39 */40 GarrisonHolder.prototype.GetLoadingRange = function()41 {42 var max = +this.template.LoadingRange;43 return { "max": max, "min": 0 };44 };45 46 /**47 35 * Return the list of entities garrisoned inside 48 36 */ 49 37 GarrisonHolder.prototype.GetEntities = function() -
binaries/data/mods/public/simulation/components/UnitAI.js
3469 3469 3470 3470 UnitAI.prototype.CheckGarrisonRange = function(target) 3471 3471 { 3472 var cmpGarrisonHolder = Engine.QueryInterface(target, IID_GarrisonHolder); 3473 var range = cmpGarrisonHolder.GetLoadingRange(); 3472 var cmpObstruction = Engine.QueryInterface(this.entity, IID_Obstruction); 3473 var max = 1; 3474 if (cmpObstruction) 3475 max += cmpObstruction.GetUnitRadius()*1.5; 3476 // multiply by something larger than sqrt(2) 3474 3477 3475 3478 var cmpUnitMotion = Engine.QueryInterface(this.entity, IID_UnitMotion); 3476 return cmpUnitMotion.IsInTargetRange(target, range.min, range.max);3479 return cmpUnitMotion.IsInTargetRange(target, 0, max); 3477 3480 }; 3478 3481 3479 3482 /** -
binaries/data/mods/public/simulation/templates/other/plane.xml
23 23 <EjectHealth>0</EjectHealth> 24 24 <List datatype="tokens">Support Infantry</List> 25 25 <BuffHeal>1</BuffHeal> 26 <LoadingRange>5</LoadingRange>27 26 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 28 27 </GarrisonHolder> 29 28 <Decay> -
binaries/data/mods/public/simulation/templates/structures/athen_wonder.xml
10 10 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 11 11 <List datatype="tokens">Support Infantry Cavalry</List> 12 12 <BuffHeal>3</BuffHeal> 13 <LoadingRange>2</LoadingRange>14 13 </GarrisonHolder> 15 14 <Identity> 16 15 <Civ>athen</Civ> -
binaries/data/mods/public/simulation/templates/structures/ptol_wonder.xml
10 10 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 11 11 <List datatype="tokens">Support Infantry Cavalry</List> 12 12 <BuffHeal>3</BuffHeal> 13 <LoadingRange>2</LoadingRange>14 13 </GarrisonHolder> 15 14 <Identity> 16 15 <Civ>ptol</Civ> -
binaries/data/mods/public/simulation/templates/structures/rome_army_camp.xml
47 47 <Max>40</Max> 48 48 <List datatype="tokens">Support Infantry Cavalry Siege</List> 49 49 <BuffHeal>1</BuffHeal> 50 <LoadingRange>6</LoadingRange>51 50 </GarrisonHolder> 52 51 <Health> 53 52 <Max>3600</Max> -
binaries/data/mods/public/simulation/templates/structures/rome_tent.xml
19 19 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 20 20 <List datatype="tokens">Support Infantry</List> 21 21 <BuffHeal>0</BuffHeal> 22 <LoadingRange>2</LoadingRange>23 22 </GarrisonHolder> 24 23 <Health> 25 24 <Max>200</Max> -
binaries/data/mods/public/simulation/templates/structures/rome_wonder.xml
10 10 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 11 11 <List datatype="tokens">Support Infantry Cavalry</List> 12 12 <BuffHeal>3</BuffHeal> 13 <LoadingRange>2</LoadingRange>14 13 </GarrisonHolder> 15 14 <Identity> 16 15 <Civ>rome</Civ> -
binaries/data/mods/public/simulation/templates/template_structure_civic_civil_centre.xml
45 45 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 46 46 <List datatype="tokens">Support Infantry Cavalry</List> 47 47 <BuffHeal>1</BuffHeal> 48 <LoadingRange>2</LoadingRange>49 48 </GarrisonHolder> 50 49 <Health> 51 50 <Max>3000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_civic_temple.xml
26 26 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 27 27 <List datatype="tokens">Support Infantry Cavalry</List> 28 28 <BuffHeal>3</BuffHeal> 29 <LoadingRange>2</LoadingRange>30 29 </GarrisonHolder> 31 30 <Health> 32 31 <Max>2000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_defense_defense_tower.xml
44 44 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 45 45 <List datatype="tokens">Support Infantry</List> 46 46 <BuffHeal>0</BuffHeal> 47 <LoadingRange>2</LoadingRange>48 47 </GarrisonHolder> 49 48 <Health> 50 49 <Max>1000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_defense_outpost.xml
47 47 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 48 48 <List datatype="tokens">Support Infantry</List> 49 49 <BuffHeal>0</BuffHeal> 50 <LoadingRange>2</LoadingRange>51 50 </GarrisonHolder> 52 51 <Health> 53 52 <Max>800</Max> -
binaries/data/mods/public/simulation/templates/template_structure_defense_wall_tower.xml
38 38 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 39 39 <List datatype="tokens">Support Infantry</List> 40 40 <BuffHeal>0</BuffHeal> 41 <LoadingRange>2</LoadingRange>42 41 </GarrisonHolder> 43 42 <Health> 44 43 <Max>5000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_military_barracks.xml
19 19 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 20 20 <List datatype="tokens">Infantry Cavalry</List> 21 21 <BuffHeal>0</BuffHeal> 22 <LoadingRange>2</LoadingRange>23 22 </GarrisonHolder> 24 23 <Health> 25 24 <Max>2000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_military_blacksmith.xml
19 19 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 20 20 <List datatype="tokens">Infantry</List> 21 21 <BuffHeal>0</BuffHeal> 22 <LoadingRange>2</LoadingRange>23 22 </GarrisonHolder> 24 23 <Health> 25 24 <Max>2000</Max> -
binaries/data/mods/public/simulation/templates/template_structure_military_fortress.xml
39 39 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 40 40 <List datatype="tokens">Support Infantry Cavalry Siege</List> 41 41 <BuffHeal>0</BuffHeal> 42 <LoadingRange>6</LoadingRange>43 42 </GarrisonHolder> 44 43 <Health> 45 44 <Max>4200</Max> -
binaries/data/mods/public/simulation/templates/template_structure_resource_corral.xml
16 16 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 17 17 <List datatype="tokens">Animal</List> 18 18 <BuffHeal>1</BuffHeal> 19 <LoadingRange>2</LoadingRange>20 19 </GarrisonHolder> 21 20 <Health> 22 21 <Max>500</Max> -
binaries/data/mods/public/simulation/templates/template_structure_special.xml
32 32 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 33 33 <List datatype="tokens">Support Infantry Cavalry</List> 34 34 <BuffHeal>1</BuffHeal> 35 <LoadingRange>2</LoadingRange>36 35 </GarrisonHolder> 37 36 <Health> 38 37 <Max>2000</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_bireme.xml
36 36 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 37 37 <List datatype="tokens">Support Infantry Cavalry</List> 38 38 <BuffHeal>1</BuffHeal> 39 <LoadingRange>10</LoadingRange>40 39 </GarrisonHolder> 41 40 <Health> 42 41 <Max>800</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fishing.xml
25 25 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 26 26 <List datatype="tokens">Support Infantry</List> 27 27 <BuffHeal>1</BuffHeal> 28 <LoadingRange>10</LoadingRange>29 28 </GarrisonHolder> 30 29 <Identity> 31 30 <GenericName>Fishing Boat</GenericName> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_merchant.xml
17 17 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 18 18 <List datatype="tokens">Support Infantry Cavalry</List> 19 19 <BuffHeal>1</BuffHeal> 20 <LoadingRange>10</LoadingRange>21 20 </GarrisonHolder> 22 21 <Health> 23 22 <Max>400</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_quinquereme.xml
44 44 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 45 45 <List datatype="tokens">Support Infantry Cavalry Siege</List> 46 46 <BuffHeal>1</BuffHeal> 47 <LoadingRange>10</LoadingRange>48 47 </GarrisonHolder> 49 48 <Health> 50 49 <Max>2000</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_trireme.xml
36 36 <EjectEntitiesOnDestroy>false</EjectEntitiesOnDestroy> 37 37 <List datatype="tokens">Support Infantry Cavalry Siege</List> 38 38 <BuffHeal>1</BuffHeal> 39 <LoadingRange>10</LoadingRange>40 39 </GarrisonHolder> 41 40 <Health> 42 41 <Max>1400</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_ram.xml
59 59 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 60 60 <List datatype="tokens">Support Infantry</List> 61 61 <BuffHeal>1</BuffHeal> 62 <LoadingRange>2</LoadingRange>63 62 </GarrisonHolder> 64 63 <Health> 65 64 <Max>200</Max> -
binaries/data/mods/public/simulation/templates/template_unit_mechanical_siege_tower.xml
41 41 <EjectEntitiesOnDestroy>true</EjectEntitiesOnDestroy> 42 42 <List datatype="tokens">Support Infantry</List> 43 43 <BuffHeal>1</BuffHeal> 44 <LoadingRange>2</LoadingRange>45 44 </GarrisonHolder> 46 45 <Health> 47 46 <Max>800</Max>