Index: ps/trunk/binaries/data/mods/public/simulation/components/UnitAI.js =================================================================== --- ps/trunk/binaries/data/mods/public/simulation/components/UnitAI.js +++ ps/trunk/binaries/data/mods/public/simulation/components/UnitAI.js @@ -872,6 +872,36 @@ return ACCEPT_ORDER; }, + "Order.CollectTreasure": function(msg) { + // TODO: on what should we base this range? + if (this.CheckTargetRangeExplicit(msg.data.target, 0, 20)) + { + this.CallMemberFunction("CollectTreasure", [msg.data.target, false, false]); + this.SetNextState("MEMBER"); + + return ACCEPT_ORDER; + } + if (msg.data.secondTry || !this.CheckTargetVisible(msg.data.target)) + return this.FinishOrder(); + + msg.data.secondTry = true; + this.PushOrderFront("WalkToTargetRange", { "target": msg.data.target, "min": 0, "max": 20 }); + return ACCEPT_ORDER; + }, + + "Order.CollectTreasureNearPosition": function(msg) { + // TODO: on what should we base this range? + if (!this.CheckPointRangeExplicit(msg.data.x, msg.data.z, 0, 20)) + { + this.PushOrderFront("WalkToPointRange", { "x": msg.data.x, "z": msg.data.z, "min": 0, "max": 20 }); + return ACCEPT_ORDER; + } + + this.CallMemberFunction("CollectTreasureNearPosition", [msg.data.x, msg.data.z, false, false]); + this.SetNextState("MEMBER"); + return ACCEPT_ORDER; + }, + "Order.Repair": function(msg) { // TODO: on what should we base this range? if (!this.CheckTargetRangeExplicit(msg.data.target, 0, 10)) @@ -5193,6 +5223,7 @@ case "ReturnResource": case "Repair": case "Garrison": + case "CollectTreasure": var cmpTargetPosition = Engine.QueryInterface(order.data.target, IID_Position); if (!cmpTargetPosition || !cmpTargetPosition.IsInWorld()) return targetPositions;