Files
ravaged-planet/src/constants.js
T

161 lines
6.6 KiB
JavaScript

export const W = 640;
export const H = 400;
export const Z = 2;
export const SKY_COLORS = [
{from:[42, 78, 108], to:[0, 0, 0]},
{from:[82, 120, 187], to:[201, 218, 236]},
{from:[94, 171, 184], to:[225, 172, 139]},
{from:[49, 76, 148], to:[242, 171, 85]},
{from:[51, 89, 135], to:[163, 198, 220]},
{from:[105, 95, 108], to:[223, 183, 110]},
];
export const MAX_PLAYERS = 6;
export const PLAYER_COLORS = [
['tomato', 'darkred'],
['deepskyblue', 'royalblue'],
['greenyellow', 'green'],
['gold', 'peru'],
['hotpink', 'mediumvioletred'],
['blueviolet', 'indigo'],
];
export const PLAYER_STARTING_WEAPONS = [
{type: 'babyMissile', ammo:Infinity},
]
export const WEAPON_TYPES = {
tracer: {id:'tracer', name:'Tracer', projectile:{type:'normal'}, explosion:{type:'tracer'}},
babyMissile: {id:'babyMissile', name:'Baby Missile', projectile:{type:'normal'}, explosion:{type:'blast', r:5}},
missile: {id:'missile', name:'Missile', projectile:{type:'normal'}, explosion:{type:'blast', r:20}},
babyNuke: {id:'babyNuke', name:'Baby Nuke', projectile:{type:'normal'}, explosion:{type:'lava', r:50}},
nuke: {id:'nuke', name:'Nuke', projectile:{type:'normal'}, explosion:{type:'lava', r:100}},
babyNapalm: {id:'babyNapalm', name:'Napalm', projectile:{type:'normal'}, explosion:{type:'napalm', particles:32}},
napalm: {id:'napalm', name:'Hot Napalm', projectile:{type:'normal'}, explosion:{type:'napalm', particles:64}},
babyRoller: {id:'babyRoller', name:'Baby Roller', projectile:{type:'roller'}, explosion:{type:'blast', r:15}},
roller: {id:'roller', name:'Roller', projectile:{type:'roller'}, explosion:{type:'blast', r:35}},
superRoller: {id:'superRoller', name:'Super Roller', projectile:{type:'roller'}, explosion:{type:'blast', r:60}},
leapfrog: {id:'leapfrog', name:'Leapfrog', projectile:{type:'leapfrog', n:3, s:10}, explosion:{type:'blast', r:35}},
superLeapfrog: {id:'superLeapfrog', name:'Super Leapfrog', projectile:{type:'leapfrog', n:6, s:10}, explosion:{type:'blast', r:50}},
mirv: {id:'mirv', name:'MIRV', projectile:{type:'mirv', n:3, s:8}, explosion:{type:'blast', r:35}},
xmirv: {id:'xmirv', name:'X-MIRV', projectile:{type:'mirv', n:5, s:8}, explosion:{type:'blast', r:45}},
smallDirt: {id:'smallDirt', name:'Small Dirt', projectile:{type:'normal'}, explosion:{type:'dirt', r:25}},
dirt: {id:'dirt', name:'Dirt', projectile:{type:'normal'}, explosion:{type:'dirt', r:50}},
largeDirt: {id:'largeDirt', name:'Ton of Dirt', projectile:{type:'normal'}, explosion:{type:'dirt', r:75}},
smallDigBomb: {id:'smallDigBomb', name:'Small Dig Bomb', projectile:{type:'normal'}, explosion:{type:'digBomb', r:25}},
digBomb: {id:'digBomb', name:'Dig Bomb', projectile:{type:'normal'}, explosion:{type:'digBomb', r:50}},
largeDigBomb: {id:'largeDigBomb', name:'Large Dig Bomb', projectile:{type:'normal'}, explosion:{type:'digBomb', r:75}},
};
export const SHIELD_TYPES = {
shield: {id:'shield', r:15, s:1, energy:100, projectileEffect:'nullify', color:'white'},
heavyShield: {id:'heavyShield', r:15, s:2, energy:200, projectileEffect:'nullify', color:'white'},
springShield: {id:'springShield', r:15, s:1, energy:100, projectileEffect:'spring', color:'deeppink'},
};
export const DEATH_SPECS = [
{type: 'blast', r: 5},
{type: 'blast', r: 15},
{type: 'blast', r: 30},
{type: 'blast', r: 60},
{type: 'dirt', r: 25},
{type: 'dirt', r: 50},
{type: 'dirt', r: 75},
{type: 'digBomb', r: 25},
{type: 'digBomb', r: 50},
{type: 'digBomb', r: 75},
{type: 'dirtCone', r: 50},
{type: 'dirtCone', r: 100},
{type: 'dirtCone', r: 200},
{type: 'dirtCone', r: H},
];
export const MAX_WIND = 25;
export const DEFAULT_KEYPRESS_DELAY = 150;
export const PLAYER_MAX_ENERGY = 100;
export const PLAYER_ENERGY_POWER_MULTIPLIER = 10;
export const PLAYER_INITIAL_POWER = 300;
export const PLAYER_FALL_DAMAGE_HEIGHT = 25;
export const PLAYER_FALL_DAMAGE_FACTOR = 2;
export const PLAYER_EXPLOSION_PARTICLE_POWER = 500;
export const PLAYER_TANK_BOUNDING_RADIUS = 4;
export const PLAYER_TANK_Y_FOOTPRINT = -2;
export const PLAYER_ANGLE_INCREMENT = 1;
export const PLAYER_ANGLE_FAST_INCREMENT = 3;
export const PLAYER_POWER_INCREMENT = 1;
export const PLAYER_POWER_FAST_INCREMENT = 10;
export const PLAYER_ANGLE_TICK_SOUND_INTERVAL = 2;
export const PLAYER_POWER_TICK_SOUND_INTERVAL = 2;
export const PROJECTILE_POWER_REDUCTION_FACTOR = 10;
export const PROJECTILE_WIND_REDUCTION_FACTOR = 10;
export const PROJECTILE_ITERATIONS_PER_FRAME = 20;
export const PROJECTILE_ITERATION_PROGRESS = 0.01;
export const PROJECTILE_MIN_SOUND_FREQUENCY = 220;
export const PROJECTILE_MAX_SOUND_FREQUENCY = 2200;
export const TRAJECTORY_FADE_SPEED = 10;
export const TRAJECTORY_FLOAT_SPEED = 0.3;
export const PARTICLE_AMOUNT = 30;
export const PARTICLE_MIN_POWER_FACTOR = 0.4;
export const PARTICLE_MAX_POWER_FACTOR = 1;
export const PARTICLE_MIN_LIFETIME = 5;
export const PARTICLE_TIME_FACTOR = 13;
export const PARTICLE_POWER_REDUCTION_FACTOR = 15;
export const PARTICLE_WIND_REDUCTION_FACTOR = 3;
export const PARTICLE_FADE_AMOUNT = 1;
export const NAPALM_SPAWN_RATE = 16;
export const FIRE_DURATION = 3;
export const FIRE_DAMAGE = 5;
export const MAX_EXPLOSION_SHAKE_FACTOR = 45;
export const EXPLOSION_SHAKE_REDUCTION_FACTOR = 7;
export const FONT_WIDTH = 3;
export const FONT_HEIGHT = 5;
export const SOUND_MUSIC_VOLUME = 0.3;
export const SOUND_SFX_VOLUME = 0.1;
export const PLAYER_STARTING_TOOLS = [
];
export const PANEL_WIDTH = 400;
export const PANEL_HEIGHT = 300;
export const PANEL_FONT_SIZE = 8;
export const PANEL_TITLE_FONT_SIZE = 16;
export const PANEL_BG_COLOR = '#666';
export const PANEL_BORDER_COLOR = '#333';
export const STARTING_SCORE = 100;
export const SCORE_PER_KILL = 20;
export const SCORE_FOR_WIN = 100;
export const MARKET_ITEMS = {
babyMissile: { price: 0, ammo: Infinity },
tracer: { price: 5, ammo: 30 },
missile: { price: 15, ammo: 5 },
babyNuke: { price: 25, ammo: 3 },
nuke: { price: 50, ammo: 1 },
babyRoller: { price: 15, ammo: 5 },
roller: { price: 25, ammo: 3 },
superRoller: { price: 40, ammo: 1 },
babyNapalm: { price: 20, ammo: 3 },
napalm: { price: 40, ammo: 2 },
mirv: { price: 25, ammo: 3 },
xmirv: { price: 50, ammo: 1 },
leapfrog: { price: 25, ammo: 3 },
superLeapfrog: { price: 40, ammo: 1 },
smallDirt: { price: 10, ammo: 5 },
dirt: { price: 20, ammo: 3 },
largeDirt: { price: 35, ammo: 1 },
smallDigBomb: { price: 10, ammo: 5 },
digBomb: { price: 20, ammo: 3 },
largeDigBomb: { price: 35, ammo: 1 },
parachute: { price: 20, ammo: 5 },
shield: { price: 50, ammo: 1 },
};