Ticket #1724: collectiveBehavior-edit.patch
File collectiveBehavior-edit.patch, 7.8 KB (added by , 11 years ago) |
---|
-
binaries/data/mods/public/simulation/components/Identity.js
15 15 "<text/>" + 16 16 "</element>" + 17 17 "<optional>" + 18 "<element name='Species' a:help='Species this unit belongs to'>" + 19 "<text/>" + 20 "</element>" + 21 "</optional>" + 22 "<optional>" + 18 23 "<element name='SpecificName' a:help='Specific native-language name for this unit type'>" + 19 24 "<text/>" + 20 25 "</element>" + -
binaries/data/mods/public/simulation/components/UnitAI.js
2127 2127 this.template.NaturalBehaviour == "passive") 2128 2128 { 2129 2129 this.Flee(msg.data.attacker, false); 2130 this.NearbyAnimalsRespondToAttack(msg.data.attacker); 2130 2131 } 2131 2132 else if (this.IsDangerousAnimal() || this.template.NaturalBehaviour == "defensive") 2132 2133 { 2133 2134 if (this.CanAttack(msg.data.attacker)) 2134 2135 this.Attack(msg.data.attacker, false); 2136 this.NearbyAnimalsRespondToAttack(msg.data.attacker); 2135 2137 } 2136 2138 else if (this.template.NaturalBehaviour == "domestic") 2137 2139 { … … 4238 4240 ); 4239 4241 }; 4240 4242 4243 /** 4244 * All wild animals in a given distance respond to the attack : 4245 * If skittish behaviour, they flee 4246 * If defensive behaviour, they attack if it is a member of their species which is involved 4247 */ 4248 UnitAI.prototype.NearbyAnimalsRespondToAttack = function(attacker) 4249 { 4250 var cmpOwnIdentity = Engine.QueryInterface(this.entity, IID_Identity); 4251 var cmpRangeManager = Engine.QueryInterface(SYSTEM_ENTITY, IID_RangeManager); 4252 // Get other animals ; range = 24 (TODO: what is a good value?), players = [0] (gaia only) 4253 var nearby = cmpRangeManager.ExecuteQuery(this.entity, 0, 24, [0], IID_UnitAI); 4254 for each (var ent in nearby) 4255 { 4256 var cmpUnitAI = Engine.QueryInterface(ent, IID_UnitAI); 4257 if (cmpUnitAI.template.NaturalBehaviour == "skittish" || 4258 cmpUnitAI.template.NaturalBehaviour == "passive") 4259 { 4260 cmpUnitAI.Flee(attacker, false); 4261 } 4262 else if (cmpOwnIdentity && cmpOwnIdentity.template.Species && 4263 (cmpUnitAI.IsDangerousAnimal() || cmpUnitAI.template.NaturalBehaviour == "defensive")) 4264 { 4265 var cmpIdentity = Engine.QueryInterface(ent, IID_Identity); 4266 if (cmpIdentity && cmpIdentity.template.Species && 4267 cmpIdentity.template.Species == cmpOwnIdentity.template.Species) 4268 { 4269 if(cmpUnitAI.CanAttack(attacker)) 4270 cmpUnitAI.Attack(attacker, false); 4271 } 4272 } 4273 } 4274 }; 4275 4241 4276 Engine.RegisterComponentType(IID_UnitAI, "UnitAI", UnitAI); -
binaries/data/mods/public/simulation/templates/gaia/fauna_elephant.xml
11 11 <Identity> 12 12 <Civ>gaia</Civ> 13 13 <Classes datatype="tokens">Elephant</Classes> 14 <Species>Elephant</Species> 14 15 <SpecificName>Elephant</SpecificName> 15 16 <Icon>gaia/fauna_elephant.png</Icon> 16 17 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_bush.xml
44 44 <Identity> 45 45 <Civ>gaia</Civ> 46 46 <Classes datatype="tokens">Elephant</Classes> 47 <Species>Elephant</Species> 47 48 <SpecificName>African Bush Elephant</SpecificName> 48 49 <Icon>gaia/fauna_elephant_african_bush.png</Icon> 49 50 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_african_infant.xml
12 12 <Identity> 13 13 <Civ>gaia</Civ> 14 14 <Classes datatype="tokens">Elephant</Classes> 15 <Species>Elephant</Species> 15 16 <SpecificName>African Elephant (Infant)</SpecificName> 16 17 <Icon>gaia/fauna_elephant_african_infant.png</Icon> 17 18 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_asian.xml
44 44 <Identity> 45 45 <Civ>gaia</Civ> 46 46 <Classes datatype="tokens">Elephant</Classes> 47 <Species>Elephant</Species> 47 48 <SpecificName>Asian Elephant</SpecificName> 48 49 <Icon>gaia/fauna_elephant_african_bush.png</Icon> 49 50 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_elephant_north_african.xml
31 31 <Identity> 32 32 <Civ>gaia</Civ> 33 33 <Classes datatype="tokens">Elephant</Classes> 34 <Species>Elephant</Species> 34 35 <SpecificName>North African Elephant</SpecificName> 35 36 <Icon>gaia/fauna_elephant_north_african.png</Icon> 36 37 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_lion.xml
15 15 </Footprint> 16 16 <Identity> 17 17 <Civ>gaia</Civ> 18 <Species>Panthera leo</Species> 18 19 <SpecificName>Lion</SpecificName> 19 20 <Icon>gaia/fauna_lion.png</Icon> 20 21 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_lioness.xml
15 15 </Footprint> 16 16 <Identity> 17 17 <Civ>gaia</Civ> 18 <Species>Panthera leo</Species> 18 19 <SpecificName>Lion</SpecificName> 19 20 <Icon>gaia/fauna_lion.png</Icon> 20 21 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_wolf.xml
15 15 </Footprint> 16 16 <Identity> 17 17 <Civ>gaia</Civ> 18 <Species>Canis lupus</Species> 18 19 <SpecificName>Wolf</SpecificName> 19 20 <Icon>gaia/fauna_wolf.png</Icon> 20 21 </Identity> -
binaries/data/mods/public/simulation/templates/gaia/fauna_wolf_snow.xml
15 15 </Footprint> 16 16 <Identity> 17 17 <Civ>gaia</Civ> 18 <Species>Canis lupus</Species> 18 19 <SpecificName>Snow Wolf</SpecificName> 19 20 <Icon>gaia/fauna_wolf_snow.png</Icon> 20 21 </Identity>