exafunction--windsurf-demo
1b66bc97c4
- Fix missing DECAY_SIZE_FACTOR import in utils.test.js - Fix inconsistent decay calculation in tests (use power function instead of sqrt) - Remove unused DECAY_ENABLED import from utils.test.js - Improve DECAY_THRESHOLD documentation for clarity
41 行
1.9 KiB
JavaScript
41 行
1.9 KiB
JavaScript
export const WORLD_SIZE = 2000;
|
|
export const FOOD_SIZE = 5;
|
|
export const STARTING_SCORE = 100;
|
|
export const AI_STARTING_SCORE = 50; // Starting score for AI players
|
|
export const FOOD_SCORE = 10;
|
|
export const FOOD_COUNT = 100;
|
|
export const AI_COUNT = 10;
|
|
export const COLLISION_THRESHOLD = 1.1; // 10% size difference needed for consumption
|
|
|
|
// Decay mechanics
|
|
export const DECAY_ENABLED = true; // Can be toggled to enable/disable decay
|
|
export const DECAY_RATE = 0.05; // Base score lost per second
|
|
export const DECAY_THRESHOLD = 50; // Minimum score - decay stops completely when score reaches this value
|
|
export const DECAY_INTERVAL = 1000; // Decay calculation interval in milliseconds
|
|
|
|
// Advanced decay mechanics
|
|
export const DECAY_MOVEMENT_MULTIPLIER = 1.5; // Decay multiplier when moving (higher = more decay when moving)
|
|
export const DECAY_SIZE_FACTOR = 0.2; // How much size affects decay (higher = larger cells decay faster)
|
|
export const DECAY_STARVATION_THRESHOLD = 10; // Seconds without food before starvation decay kicks in
|
|
export const DECAY_STARVATION_MULTIPLIER = 2; // Multiplier for decay when starving
|
|
|
|
// Split mechanics
|
|
export const MIN_SPLIT_SCORE = 40; // Minimum score needed to split
|
|
export const SPLIT_VELOCITY = 12; // Initial velocity of split cells
|
|
export const MAX_PLAYER_CELLS = 16; // Maximum number of cells a player can have
|
|
export const SPLIT_COOLDOWN = 5000; // Milliseconds before cells can merge back
|
|
export const MERGE_DISTANCE = 2; // Distance threshold for merging cells
|
|
|
|
// Merge mechanics
|
|
export const MERGE_COOLDOWN = 10000; // Time in ms before cells can merge
|
|
export const MERGE_FORCE = 0.3; // Strength of the merging force
|
|
export const MERGE_START_FORCE = 0.1; // Initial attraction force (before merge cooldown)
|
|
|
|
export const COLORS = {
|
|
PLAYER: '#008080', // Teal color
|
|
MINIMAP: {
|
|
PLAYER: '#4CAF50',
|
|
TOP_PLAYER: '#FFC107',
|
|
OTHER: 'rgba(255, 255, 255, 0.3)'
|
|
}
|
|
}; |