// SHEEP_MAX_VELOCITY = 50; // SHEEP_PERCENT_RULE1 = 0.1; // direction to centre of mass // SHEEP_SAFE_DISTANCE = 100; // distance to obstacles // SHEEP_PERCENT_RULE3 = 0.12; // direction to average velocity // STATE ====================================================================== FLOCK_STATE_IDLE = 'FLOCK_STATE_IDLE'; FLOCK_STATE_SCARE = 'FLOCK_STATE_SCARE'; FLOCK_STATE_WALK = 'FLOCK_STATE_WALK'; FLOCK_STATE_GOAL = 'FLOCK_STATE_GOAL'; FLOCK_STATE_MODIFIERS = { // _centering, _avoid, _velocity, _runfromdog, _runfromwolf, softblock, effects FLOCK_STATE_IDLE : [0.01, 0.25, 0.02, 0.3, 1.0, 1.0, 0.7], FLOCK_STATE_SCARE : [0.00, 0.50, 0.00, 0.3, 1.0, 1.0, 0.7], FLOCK_STATE_WALK : [0.03, 0.50, 0.07, 0.3, 1.0, 1.0, 0.7], FLOCK_STATE_GOAL : [0.01, 0.25, 0.02, 0.0, 1.0, 1.0, 0.7], } PREDATOR_STATE_FOLLOWTARGET = 'PREDATOR_STATE_FOLLOWTARGET'; PREDATOR_STATE_WAITING = 'PREDATOR_STATE_WAITING'; PREDATOR_STATE_FLEEING = 'PREDATOR_STATE_FLEEING'; // ============================================================================ // SHEEP ====================================================================== SHEEP_MAX_VELOCITY = 100; SHEEP_MAX_NEIGHBORHOOD = 100; SHEEP_MIN_SAFE_DISTANCE = 32; SHEEP_PLACE_DISTANCE = 75; // to prefer or walk towards some point SHEEP_DOG_DISTANCE = 75; // to prefer or walk towards some point SHEEP_WOLF_DISTANCE = 100; // to prefer or walk towards some point SHEEP_HARDBLOCK_REPULSION_COEFFICIENT = 5.0; // 0.5; // from obstacles SHEEP_HARDBLOCK_REPULSION_DISTANCE = 35.0; // 0.5; // from obstacles SHEEP_SOFTBLOCK_REPULSION_COEFFICIENT = 3.0; // 0.5; // from obstacles SHEEP_SOFTBLOCK_REPULSION_DISTANCE = 45.0; // 0.5; // from obstacles SHEEP_EFFECT_COEFFICIENT = 10.0; SHEEP_CENTREOFMASS_COEFFICIENT = 1.0; // 0.01; // from centre of mass SHEEP_PLACE_COEFFICIENT = 1.0; // 0.01; // forward to a place SHEEP_DIRECTION_COEFFICIENT = 1.0; // 0.01; // to follow herd direction SHEEP_RUN_COEFFICIENT = 1.0; // 0.1; // forward to a place SHEEP_MEMORY_TIME = 3; // seconds to forget enemy or command SHEEP_VELOCITY_DECAY = 0.99; // how much the velocity decay per miliseconds SHEEP_ROTATION_SPEED = 10; SHEEP_SLOW_RATE = 0.3; SHEEP_SOUND_INTERVAL = 3; SHEEP_SOUND_MIN_INTERVAL = 0.5; SHEEP_SOUND_CHANCE_ON_SCARE = 0.25; // ============================================================================ // WOLF ======================================================================= WOLF_SPAWN_COOLDOWN = 5; // seconds WOLF_SPAWN_CHANCE = 0.2; // chage to appear wolf WOLF_KILL_DISTANCE = 25; WOLF_PERCEPTION_AREA = 150; WOLF_SPEED = 150; WOLF_FLEE_DISTANCE = 50; WOLF_SOUND_INTERVAL = 5; WOLF_SOUND_MIN_INTERVAL = 1; // ============================================================================ VOLUME_MUSIC = 0.3; VOLUME_SFX = 0.1; TILE_EFFECTS = { 8: [1, 0], 9: [0, 1], 10: [-1, 0], 11: [0, -1] } TILE_MASK = [ [-1, -1], [0, -1], [1, -1], [-1, 0], [1, 0], [-1, 1], [0, 1], [1, 1], ] TILE_BLOCK_MASK_DIRECTIONS = [ [1, 1], [0, 1], [-1, 1], [1, 0], [-1, 0], [1, -1], [0, -1], [-1, -1], ] LEVELS = { 0: { 'map': 'map_level01', 'sheeps': 3, }, 1: { 'map': 'map_level02', 'sheeps': 5, }, 2: { 'map': 'map_level03', 'sheeps': 7, }, 3: { 'map': 'map_level04', 'sheeps': 10, }, 4: { 'map': 'map_level05', 'sheeps': 5, }, }