Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixes a few changes in my previous commit. Makes "Medium" the default…

… difficulty setting.

git-svn-id: http://svn.wildfiregames.com/public/ps/trunk@13303 3db68df2-c116-0410-a063-a993310a9797
  • Loading branch information...
commit 1c8fa10f3e6940d856af8bb7dbc53b54d7f08b1e 1 parent 41b8a24
wraitii authored
View
2  binaries/data/mods/public/simulation/ai/common-api-v2/entity.js
@@ -356,7 +356,7 @@ var Entity = Class({
isFull: function()
{
if (this._entity.resourceSupplyGatherers !== undefined)
- return (this.maxGatherers === this._entity.resourceSupplyGatherers.length);
+ return (this.maxGatherers() === this._entity.resourceSupplyGatherers.length);
return undefined;
},
View
2  binaries/data/mods/public/simulation/ai/common-api-v3/entity.js
@@ -538,7 +538,7 @@ var Entity = Class({
isFull: function()
{
if (this._entity.resourceSupplyGatherers !== undefined)
- return (this.maxGatherers === this._entity.resourceSupplyGatherers.length);
+ return (this.maxGatherers() === this._entity.resourceSupplyGatherers.length);
return undefined;
},
View
2  binaries/data/mods/public/simulation/ai/common-api-v3/terrain-analysis-pathfinder.js
@@ -45,6 +45,8 @@ function aStarPath(gameState, onWater, disregardEntities, targetTerritory) {
this.widthMap[i] = 2;
else if (!disregardEntities && this.map[i] === 42)
this.widthMap[i] = 1;
+ else if (!onWater && this.map[i] === 201)
+ this.widthMap[i] = 2;
else
this.widthMap[i] = 255;
}
View
21 binaries/data/mods/public/simulation/ai/qbot-wc/economy.js
@@ -487,7 +487,7 @@ EconomyManager.prototype.buildNewCC= function(gameState, queues) {
EconomyManager.prototype.updateResourceMaps = function(gameState, events) {
// By how much to divide the resource amount for plotting.
- var decreaseFactor = {'wood': 100.0, 'stone': 180.0, 'metal': 180.0, 'food': 80.0};
+ var decreaseFactor = {'wood': 50.0, 'stone': 90.0, 'metal': 90.0, 'food': 40.0};
// This is the maximum radius of the influence
var dpRadius = 10;
var radius = {'wood':10.0, 'stone': 24.0, 'metal': 24.0, 'food': 24.0};
@@ -536,7 +536,7 @@ EconomyManager.prototype.updateResourceMaps = function(gameState, events) {
this.CCResourceMaps[resource].addInfluence(x, z, 15, -strength/2.0,'constant');
} else if (resource === "stone" || resource === "metal")
{
- this.resourceMaps[resource].addInfluence(x, z, 3, 50);
+ this.resourceMaps[resource].addInfluence(x, z, 8, 50);
this.resourceMaps[resource].addInfluence(x, z, 12.0, -strength/1.5);
this.resourceMaps[resource].addInfluence(x, z, 12.0, -strength/2.0,'constant');
this.CCResourceMaps[resource].addInfluence(x, z, 30, -strength,'constant');
@@ -588,7 +588,7 @@ EconomyManager.prototype.updateResourceMaps = function(gameState, events) {
self.CCResourceMaps[resource].addInfluence(x, z, 30, strength,'constant');
self.resourceMaps[resource].addInfluence(x, z, 12.0, strength/1.5);
self.resourceMaps[resource].addInfluence(x, z, 12.0, strength/2.0,'constant');
- self.resourceMaps[resource].addInfluence(x, z, 3, -50);
+ self.resourceMaps[resource].addInfluence(x, z, 8, -50);
}
}
});
@@ -635,7 +635,7 @@ EconomyManager.prototype.updateResourceMaps = function(gameState, events) {
this.CCResourceMaps[resource].addInfluence(x, z, 30, strength,'constant');
this.resourceMaps[resource].addInfluence(x, z, 12.0, strength/1.5);
this.resourceMaps[resource].addInfluence(x, z, 12.0, strength/2.0,'constant');
- this.resourceMaps[resource].addInfluence(x, z, 3, -50);
+ this.resourceMaps[resource].addInfluence(x, z, 8, -50);
}
}
} else if (ent && ent.position() && ent.resourceDropsiteTypes) {
@@ -654,8 +654,8 @@ EconomyManager.prototype.updateResourceMaps = function(gameState, events) {
this.updateNearbyResources(gameState,i);
this.updateResourceConcentrations(gameState,i);
}
-
- /*if (gameState.ai.playedTurn % 20 === 1)
+ /*
+ if (gameState.ai.playedTurn % 20 === 1)
{
this.resourceMaps['wood'].dumpIm("s_tree_density_ " + gameState.getTimeElapsed() +".png", 255);
this.resourceMaps['stone'].dumpIm("stone_density_ " + gameState.getTimeElapsed() +".png", 255);
@@ -709,7 +709,7 @@ EconomyManager.prototype.getBestResourceBuildSpot = function(gameState, resource
}
}
- //friendlyTiles.dumpIm(gameState.getTimeElapsed() + "_" + resource + "_dp_placement_base.png", 1000);
+ //friendlyTiles.dumpIm(gameState.getTimeElapsed() + "_" + resource + "_dp_placement_base.png", 255);
var isCivilCenter = false;
var best = friendlyTiles.findBestTile(2, obstructions); // try to find a spot to place a DP.
@@ -825,7 +825,7 @@ EconomyManager.prototype.updateNearbyResources = function(gameState,resource){
var resourceSupplies;
// By how much to divide the resource amount for plotting.
- var decreaseFactor = {'wood': 100.0, 'stone': 180.0, 'metal': 180.0, 'food': 80.0};
+ var decreaseFactor = {'wood': 50.0, 'stone': 90.0, 'metal': 90.0, 'food': 40.0};
// This is the maximum radius of the influence
var radius = {'wood':10.0, 'stone': 24.0, 'metal': 24.0, 'food': 24.0};
@@ -850,7 +850,8 @@ EconomyManager.prototype.updateNearbyResources = function(gameState,resource){
if (distance < bigRadius[resource]) {
if (distance < smallRadius[resource]) {
// it's new to the game, remove it from the resource maps
- if (supply.getMetadata(PlayerID, "linked-dropsite") == undefined || supply.getMetadata(PlayerID, "linked-dropsite-nearby") == false) {
+ if ((supply.getMetadata(PlayerID, "linked-dropsite") == undefined || supply.getMetadata(PlayerID, "linked-dropsite-nearby") == false)
+ && supply.resourceSupplyType().generic !== "treasure") {
var x = Math.round(supply.position()[0] / gameState.cellSize);
var z = Math.round(supply.position()[1] / gameState.cellSize);
var strength = Math.round(supply.resourceSupplyMax()/decreaseFactor[resource]);
@@ -862,7 +863,7 @@ EconomyManager.prototype.updateNearbyResources = function(gameState,resource){
} else if (resource === "stone" || resource === "metal")
{
self.CCResourceMaps[resource].addInfluence(x, z, 30, -strength,'constant');
- self.resourceMaps[resource].addInfluence(x, z, 3, 50);
+ self.resourceMaps[resource].addInfluence(x, z, 8, 50);
self.resourceMaps[resource].addInfluence(x, z, 12.0, -strength/1.5);
self.resourceMaps[resource].addInfluence(x, z, 12.0, -strength/2.0,'constant');
}
View
4 binaries/data/mods/public/simulation/ai/qbot-wc/map-module.js
@@ -9,8 +9,9 @@ function Map(gameState, originalMap, actualCopy){
this.height = gameMap.height;
this.length = gameMap.data.length;
+ this.maxVal = 65535;
+
if (originalMap && actualCopy){
- this.maxVal = 65535;
this.map = new Uint16Array(this.length);
for (var i = 0; i < originalMap.length; ++i)
this.map[i] = originalMap[i];
@@ -18,7 +19,6 @@ function Map(gameState, originalMap, actualCopy){
this.map = originalMap;
} else {
this.map = new Uint16Array(this.length);
- this.maxVal = 65535;
}
this.cellSize = gameState.cellSize;
}
View
34 binaries/data/mods/public/simulation/ai/qbot-wc/worker.js
@@ -10,7 +10,6 @@ var Worker = function(ent) {
Worker.prototype.update = function(gameState) {
-
var subrole = this.ent.getMetadata(PlayerID, "subrole");
if (!this.ent.position() || (this.ent.getMetadata(PlayerID,"fleeing") && gameState.getTimeElapsed() - this.ent.getMetadata(PlayerID,"fleeing") < 8000)){
@@ -226,7 +225,9 @@ Worker.prototype.startGathering = function(gameState){
return;
}
- if (supply.isFull() === true) {
+ if (supply.isFull() === true || (supply.maxGatherers() - supply.resourceSupplyGatherers().length == 0) ||
+ (gameState.turnCache["ressGathererNB"] && gameState.turnCache["ressGathererNB"][supply.id()]
+ && gameState.turnCache["ressGathererNB"][supply.id()] + supply.resourceSupplyGatherers().length >= supply.maxGatherers())) {
return;
}
@@ -313,9 +314,38 @@ Worker.prototype.startGathering = function(gameState){
}
}
if (!tried) {
+
+ if (!gameState.turnCache["ressGathererNB"])
+ {
+ gameState.turnCache["ressGathererNB"] = {};
+ gameState.turnCache["ressGathererNB"][nearestSupply.id()] = 1;
+ } else if (!gameState.turnCache["ressGathererNB"][nearestSupply.id()])
+ gameState.turnCache["ressGathererNB"][nearestSupply.id()] = 1;
+ else
+ gameState.turnCache["ressGathererNB"][nearestSupply.id()]++;
+
this.maxApproachTime = Math.max(25000, VectorDistance(pos,this.ent.position()) * 1000);
ent.gather(nearestSupply);
ent.setMetadata(PlayerID, "target-foundation", undefined);
+
+ // check if the resource we've started gathering from is now full, in which case inform the dropsite.
+ if (gameState.turnCache["ressGathererNB"][nearestSupply.id()] + nearestSupply.resourceSupplyGatherers().length >= nearestSupply.maxGatherers()
+ && nearestSupply.getMetadata(PlayerID, "linked-dropsite") != undefined)
+ {
+ var dropsite = gameState.getEntityById(nearestSupply.getMetadata(PlayerID, "linked-dropsite"));
+ if (dropsite == undefined || dropsite.getMetadata(PlayerID, "linked-resources-" + resource) === undefined)
+ return;
+ if (nearestSupply.getMetadata(PlayerID, "linked-dropsite-nearby") == true) {
+ dropsite.setMetadata(PlayerID, "resource-quantity-" + resource, +dropsite.getMetadata(PlayerID, "resource-quantity-" + resource) - (+nearestSupply.getMetadata(PlayerID, "dp-update-value")));
+ dropsite.getMetadata(PlayerID, "linked-resources-" + resource).updateEnt(nearestSupply);
+ dropsite.getMetadata(PlayerID, "nearby-resources-" + resource).updateEnt(nearestSupply);
+ } else {
+ dropsite.setMetadata(PlayerID, "resource-quantity-far-" + resource, +dropsite.getMetadata(PlayerID, "resource-quantity-" + resource) - (+nearestSupply.getMetadata(PlayerID, "dp-update-value")));
+ dropsite.getMetadata(PlayerID, "linked-resources-" + resource).updateEnt(nearestSupply);
+ }
+
+ }
+
}
} else {
if (resource === "food" && this.buildAnyField(gameState))
View
18 binaries/data/mods/public/simulation/data/player_defaults.json
@@ -6,63 +6,63 @@
"Civ": "gaia",
"Colour": { "r": 255, "g": 255, "b": 255 },
"AI": "",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 1",
"Civ": "athen",
"Colour": { "r": 46, "g": 46, "b": 200 },
"AI": "",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 2",
"Civ": "cart",
"Colour": { "r": 150, "g": 20, "b": 20 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 3",
"Civ": "gaul",
"Colour": { "r": 50, "g": 165, "b": 5 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 4",
"Civ": "iber",
"Colour": { "r": 230, "g": 230, "b": 75 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 5",
"Civ": "mace",
"Colour": { "r": 50, "g": 170, "b": 170 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 6",
"Civ": "pers",
"Colour": { "r": 160, "g": 80, "b": 200 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 7",
"Civ": "rome",
"Colour": { "r": 235, "g": 120, "b": 20 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
},
{
"Name": "Player 8",
"Civ": "spart",
"Colour": { "r": 64, "g": 64, "b": 64 },
"AI": "qbot-wc",
- "AIDiff": 2
+ "AIDiff": 1
}
]
}
View
2  source/ps/GameSetup/GameSetup.cpp
@@ -1193,7 +1193,7 @@ bool Autostart(const CmdLineArgs& args)
CStr name = aiArgs[i].AfterFirst(":");
scriptInterface.SetProperty(player.get(), "AI", std::string(name));
- scriptInterface.SetProperty(player.get(), "AIDiff", 2);
+ scriptInterface.SetProperty(player.get(), "AIDiff", 1);
scriptInterface.SetPropertyInt(playerData.get(), playerID-1, player);
}
}
Please sign in to comment.
Something went wrong with that request. Please try again.