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:
parent
ecbdcb35b2
commit
d1cc7e10bb
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user