1
0
mirror of https://github.com/veden/Rampant.git synced 2025-03-17 20:58:35 +02:00

FACTO-128: Updated migration and siege movement to maximize distance

between existing structures
This commit is contained in:
Aaron Veden 2022-05-01 21:31:08 -07:00
parent ecbdcb35b2
commit d1cc7e10bb
No known key found for this signature in database
GPG Key ID: FF5990B1C6DD3F84
3 changed files with 18 additions and 6 deletions

View File

@ -2,6 +2,7 @@
Version: 3.1.0
Improvements:
- Readded enemy pheromone for pathfinding incorporating enemy bases
- Migration and siege groups now try to avoid chunks with existing enemy structures
Tweaks:
- Runtime number generator just uses the map seed now

View File

@ -87,6 +87,7 @@ constants.COOLDOWN_DRAIN = constants.TICKS_A_SECOND * 1
constants.RESOURCE_NORMALIZER = 1 / 1024
constants.PLAYER_PHEROMONE_MULTIPLER = 100
constants.ENEMY_PHEROMONE_MULTIPLER = 200
constants.DURATION_ACTIVE_NEST = 120 * constants.TICKS_A_SECOND

View File

@ -33,6 +33,7 @@ local queryUtils = require("QueryUtils")
local COMMAND_TIMEOUT = constants.COMMAND_TIMEOUT
local PLAYER_PHEROMONE = constants.PLAYER_PHEROMONE
local BASE_PHEROMONE = constants.BASE_PHEROMONE
local ENEMY_PHEROMONE = constants.ENEMY_PHEROMONE
local RESOURCE_PHEROMONE = constants.RESOURCE_PHEROMONE
local FIVE_DEATH_PHEROMONE_GENERATOR_AMOUNT = constants.FIVE_DEATH_PHEROMONE_GENERATOR_AMOUNT
@ -48,6 +49,7 @@ local BASE_AI_STATE_SIEGE = constants.BASE_AI_STATE_SIEGE
local BASE_AI_STATE_AGGRESSIVE = constants.BASE_AI_STATE_AGGRESSIVE
local PLAYER_PHEROMONE_MULTIPLER = constants.PLAYER_PHEROMONE_MULTIPLER
local ENEMY_PHEROMONE_MULTIPLER = constants.ENEMY_PHEROMONE_MULTIPLER
local DEFINES_DISTRACTION_NONE = defines.distraction.none
local DEFINES_DISTRACTION_BY_ENEMY = defines.distraction.by_enemy
@ -88,24 +90,32 @@ local scoreNeighborsForSettling = movementUtils.scoreNeighborsForSettling
local function scoreResourceLocationKamikaze(_, neighborChunk)
local settle = neighborChunk[RESOURCE_PHEROMONE]
return settle - (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
return settle
- (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
- (neighborChunk[ENEMY_PHEROMONE] * ENEMY_PHEROMONE_MULTIPLER)
end
local function scoreSiegeLocationKamikaze(_, neighborChunk)
local settle = neighborChunk[BASE_PHEROMONE] +
neighborChunk[RESOURCE_PHEROMONE] + (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
local settle = neighborChunk[BASE_PHEROMONE]
+ neighborChunk[RESOURCE_PHEROMONE]
+ (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
- (neighborChunk[ENEMY_PHEROMONE] * ENEMY_PHEROMONE_MULTIPLER)
return settle
end
local function scoreResourceLocation(map, neighborChunk)
local settle = (getDeathGeneratorRating(map, neighborChunk) * neighborChunk[RESOURCE_PHEROMONE])
return settle - (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
return settle
- (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
- (neighborChunk[ENEMY_PHEROMONE] * ENEMY_PHEROMONE_MULTIPLER)
end
local function scoreSiegeLocation(map, neighborChunk)
local settle = neighborChunk[BASE_PHEROMONE] + neighborChunk[RESOURCE_PHEROMONE] +
(neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
local settle = neighborChunk[BASE_PHEROMONE]
+ neighborChunk[RESOURCE_PHEROMONE]
+ (neighborChunk[PLAYER_PHEROMONE] * PLAYER_PHEROMONE_MULTIPLER)
- (neighborChunk[ENEMY_PHEROMONE] * ENEMY_PHEROMONE_MULTIPLER)
return settle * getDeathGeneratorRating(map, neighborChunk)
end