cc: pass role, not stability, to influence calc

This commit is contained in:
Crypto City 2019-09-09 01:14:22 +00:00
parent 1795477cdd
commit bfa21bfd15
3 changed files with 5 additions and 3 deletions

View File

@ -133,7 +133,7 @@ cc_command_game_update_t create_cc_game_update_command(BlockchainDB &db, bool co
if (!flag.active)
continue;
const uint32_t influence_radius = cc::get_cc_influence(flag.x0, flag.y0, flag.x1, flag.y1, flag.stability);
const uint32_t influence_radius = cc::get_cc_influence(flag.x0, flag.y0, flag.x1, flag.y1, flag.role);
const uint32_t ix0 = std::max(flag.x0, influence_radius) - influence_radius;
const uint32_t iy0 = std::max(flag.y0, influence_radius) - influence_radius;
const uint32_t ix1 = std::min(flag.x1, std::numeric_limits<uint32_t>::max() - influence_radius) + influence_radius;

View File

@ -32,11 +32,13 @@
namespace cc
{
uint32_t get_cc_influence(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint8_t potential)
uint32_t get_cc_influence(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint8_t role)
{
const uint32_t w = x1 - x0 + 1;
const uint32_t h = y1 - y0 + 1;
const uint32_t tiles = w * h;
#warning TODO
const uint32_t potential = 100;
const uint32_t potential_multiplier = 100 * (150 + potential) / 405;
return ((sqrtint(4 * (w + h) * (w + h) + 16 * tiles) * potential_multiplier) - 2 * (w + h)) / 800;
}

View File

@ -32,5 +32,5 @@
namespace cc
{
uint32_t get_cc_influence(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint8_t potential);
uint32_t get_cc_influence(uint32_t x0, uint32_t y0, uint32_t x1, uint32_t y1, uint8_t role);
}