src/client/js/obj/blueprints.js
/**
* This constant stores all data that is used to define Blueprints,
* which define the recipe and behaviors of Compounds.
*
* Fields required:
* Name: The formatted name of the compound to display
* Unlocked: TEMPORARY. True if it should show up on initial load, false if it needs to be unlocked from playing.
* Tooltip: Description of compound
* Texture: Path to image to load
* Type: Class of compound. Each different type has a different behavior as defined in `compound.js`.
* Params: Optional parameters to pass to the compound class associated with the given type.
* Atoms: How to make the compound. Format is `Element symbol: Number required`. All excluded atoms will be considered 0.
*/
export const BLUEPRINTS = {
binaryHydrogen: {
name: 'Hydrogen',
unlocked: true,
tooltip: 'This is quite literally the smallest compound in the universe. Why are you using this as a weapon?',
texture: 'compound_PLACEHOLDER.png',
type: 'flammable',
params: {
speed: 5 * 3,
damage: 3,
size: 20,
splashDamage: 10,
splash: 50,
splashImage: '../assets/explosion.png'
},
atoms: {
h: 2
}
},
basicMethane: {
name: 'Methane',
unlocked: false,
tooltip: 'Okay, who passed gas?',
texture: 'compound_PLACEHOLDER.png',
type: 'flammable',
params: {
speed: 3 * 3,
damage: 3,
size: 10
},
atoms: {
c: 1,
h: 4
}
},
basicBenzene: {
name: 'Benzene',
unlocked: false,
tooltip: 'Carbon rings. They smell nice.',
texture: 'compound_PLACEHOLDER.png',
type: 'inert',
params: {
speed: 1 * 3,
damage: 5,
size: 30
},
atoms: {
h: 6,
c: 6
}
},
basicWater: {
name: 'Water',
unlocked: true,
tooltip: 'Why life exists. Are you trying to drown someone?',
texture: 'compound_PLACEHOLDER.png',
type: 'stream',
params: {
speed: 4 * 3,
damage: 1,
size: 15,
length: 10,
spacing: 50,
compoundsPerCraft: 10,
evaporate: true
},
atoms: {
h: 2,
o: 1
}
},
binaryNitrogen: {
name: 'Nitrogen',
unlocked: true,
tooltip: '78% of your air, and also why you get the bends.',
texture: 'compound_PLACEHOLDER.png',
type: 'inert',
params: {
speed: 3 * 3,
damage: 3,
size: 20
},
atoms: {
n: 2
}
},
carbon: {
name: 'Carbon',
unlocked: true,
tooltip: 'The building block of life.',
texture: 'placeholder_barrier.png',
type: 'block',
params: {
health: 1,
size: 50,
speed: 0
},
atoms: {
c: 1
}
},
binaryHelium: {
name: 'Helium',
unlocked: false,
tooltip: 'A nonreactive, inert gas. In other words, useless.',
texture: 'compound_PLACEHOLDER.png',
type: 'inert',
params: {
speed: 4 * 3,
damage: 2,
size: 14
},
atoms: {
he: 2
}
},
ionicSodiumChloride: {
name: 'Sodium Chloride',
unlocked: false,
tooltip: 'Can kill small insects, slugs, and snails. Cannot kill much else.',
texture: 'compound_PLACEHOLDER.png',
type: 'ionic',
params: {
speed: 4 * 3,
damage: 2,
size: 14
},
atoms: {
na: 1,
cl: 1
}
},
acidicHydrogenChloride: {
name: 'Hydrochloric Acid',
unlocked: false,
tooltip: 'In a pure form, can corrode metal.',
texture: 'compound_PLACEHOLDER.png',
type: 'acidic',
params: {
speed: 4 * 3,
damage: 2,
size: 14
},
atoms: {
h: 1,
cl: 1
}
},
nuclearLithiumHydrogen: {
name: 'Lithium Deuteride',
unlocked: false,
tooltip: 'Used as the primary fuel in thermonuclear weapons.',
texture: '../assets/spritesheet/atoms/atom_lithium.png',
type: 'nuclear',
params: {
speed: 1 * 3,
damage: 2,
size: 14
},
atoms: {
h: 1,
li: 1
}
},
glucose: {
name: 'Sugar',
unlocked: true,
tooltip: 'S U G A R R U S H !!!!',
texture: 'compound_sugar.png',
type: 'speed',
params: {
speedFactor: 0.5
},
atoms: {
c: 6,
h: 12,
o: 6
}
},
protonPack: {
name: 'Proton Pack',
unlocked: false,
tooltip: 'Easy health!',
texture: 'compound_PLACEHOLDER.png',
type: 'health',
params: {
healthModifier: 10
},
atoms: {
h: 10
}
},
ozone: {
name: 'Ozone',
unlocked: true,
tooltip: 'Shield em up!',
texture: 'compound_ozone.png',
type: 'defense',
params: {
defenseModifier: 2
},
atoms: {
o: 3
}
},
cyanide: {
name: 'Cyanide',
unlocked: true,
tooltip: 'Less deadly and more happy than Cyanide and Happiness.',
texture: 'cyanide.png',
type: 'toxic',
params: {
speed: 2,
splashDamage: 0.2,
size: 100
},
atoms: {
c: 1,
n: 1
}
},
nitricAcid: {
name: 'Nitric Acid',
unlocked: true,
tooltip: 'Contains "NO"... as in NO don\'t use this',
texture: 'compound_PLACEHOLDER.png',
type: 'acid',
params: {
damagePerSecond: 2,
size: 100,
speed: 0
},
atoms: {
h: 1,
n: 1,
o: 3
}
}
}
/**
* Contains descriptions for the different types of compounds (acid, stream, etc)
*/
export const TOOLTIPS = {
flammable: 'Flammable: When passing over a lava pit, this compound ignites, dealing additional damage.',
stream: 'Stream: Hold down the shoot button to shoot a large number of individual compounds, like a stream. Several individual compounds can be shot using a single recipe.',
inert: 'Inert: Just a plain old compound. You can shoot it and it can hit stuff, that is all.',
block: 'Block: Place it down to protect strategic points! Deals no damage, but will intercept compounds if touched.',
speed: 'Speed: When consumed, it makes you move faster!',
defense: 'Defense: When consumed, it increases your shield. Damage below your shield amount will not harm you.',
toxic: 'Toxic: Moves slowly, but deals splash damage to everyone inside the radius.',
acid: 'Acid: Places a stationary pool of corrosive material that damages all who touches it. If a base touches it, then both react to create water.',
base: 'Base: Acts like an inert compound, but when it is shot at acid, it will react to create water.'
}