cc: tweak gemstone find chance

This commit is contained in:
Crypto City 2020-04-15 23:34:02 +00:00
parent dc6de325cc
commit 13a0ef7fe8

View File

@ -557,7 +557,7 @@ static void add_cities(const BlockchainDB &db, cc_command_game_update_t &cg, gam
// gemstones
if (flag.role == ROLE_STONECUTTER)
{
const uint64_t gemstone_power = sqrtint(flag_area) * flag.economic_power * flag.economic_power * (8 + flag.age / (86400 * 7 / DIFFICULTY_TARGET_V2));
const uint64_t gemstone_power = sqrtint(flag_area) * flag.economic_power * sqrt(flag.economic_power) * (8 + flag.age / (86400 * 7 / DIFFICULTY_TARGET_V2));
uint8_t data[sizeof(crypto::hash) + sizeof(uint32_t) + 1], *ptr = data;
crypto::hash hash = db.top_block_hash();
memcpy(ptr, &hash, sizeof(crypto::hash));
@ -570,11 +570,11 @@ static void add_cities(const BlockchainDB &db, cc_command_game_update_t &cg, gam
uint64_t r = SWAP64LE(*(uint64_t*)&hash);
r /= gemstone_power;
int item = ITEM_NONE;
if (r < 100000000) item = ITEM_DIAMOND;
else if (r < 250000000) item = ITEM_RUBY;
else if (r < 500000000) item = ITEM_EMERALD;
else if (r < 1500000000) item = ITEM_SAPPHIRE;
else if (r < 5000000000) item = ITEM_AMETHYST;
if (r < 2000000000) item = ITEM_DIAMOND;
else if (r < 5000000000) item = ITEM_RUBY;
else if (r < 10000000000) item = ITEM_EMERALD;
else if (r < 30000000000) item = ITEM_SAPPHIRE;
else if (r < 100000000000) item = ITEM_AMETHYST;
if (item != ITEM_NONE)
{
events.add(flag.owner, flag.id) << "Found a " << cc::get_item_name(db, item);