import { EntityDamageCause } from "@minecraft/server";



export const COMPANY_MOODS = {
  agitated: {
    irritability: 0.8,
    starting_patience: 2,
    sensitivity: 0.6,
    judgement_speed: 2,
    max_player_kills: 2,
  },
  silent_calm: {
    irritability: 0.4,
    starting_patience: 3,
    sensitivity: 0.7,
    judgement_speed: 5,
    max_player_kills: 1,
  },
  snoring_giant: {
    irritability: 0.5,
    starting_patience: 2,
    sensitivity: 0.25,
    judgement_speed: 3,
    max_player_kills: 1,
  },
};

export const SOUNDS = {
  bell: {
    range: 18,
    volume: 1.25,
  },
  icabob: {
    range: 48,
    volume: 1.5,
  },
  whoopie_cushion: {
    range: 22,
    volume: 0.6,
  },
  sprint: {
    range: 22,
    volume: 0.6,
  },
  walk: {
    range: 17,
    volume: 0.4,
  },
  talk: {
    range: 18,
    volume: 0.7,
  },
  fall: {
    range: 7,
    volume: 0.5,
  },
  drop_scrap: {
    range: 8,
    volume: 0.5,
  },
  drop_bell: {
    range: 12,
    volume: 0.75,
  },
  dropship: {
    range: 60,
    volume: 1.3,
  },
  shovel: {
    range: 17,
    volume: 0.8,
  },
  shotgun: {
    range: 22,
    volume: 0.9,
  },
  boombox: {
    range: 16,
    volume: 0.9,
  },
  clown_horn: {
    range: 60,
    volume: 0.8,
  },
  air_horn: {
    range: 65,
    volume: 1,
  },
  robot_toy: {
    range: 15,
    volume: 0.55,
  },
};

//Item Type 1 = 1 handed
//Item Type 2 = 2 Handed
/**
 * @typedef ItemDefinition
 * @property {number} id
 * @property {boolean} fills_hands
 * @property {0 | 1 | 2} item_type
 * @property {number | [min: number, max: number]} value
 * @property {number} weight
 * @property {string} [sound]
 * @property {string} [pick_up_sound]
 * @property {string} [name]
 * @property {string} [tool_tip_text]
 * @property {number} [battery_life]
 * @property {boolean} [conductive]
 */
/** @type {Record<string, ItemDefinition>} */
export const ITEM_LIST = {
  undefined: {
    id: 0,
    fills_hands: false,
    item_type: 0,
    value: 0,
    weight: 0,
  },
  "js:big_bolt": {
    id: 1,
    item_type: 1,
    fills_hands: false,
    weight: 19,
    value: [20, 32],
    sound: "items.drop.metal1",
    pick_up_sound: "items.pickup.shovel",
    name: "Big Bolt",
    tool_tip_text: "Drop Big Bolt",
    conductive: true,
  },
  "js:boombox": {
    id: 2,
    item_type: 1,
    fills_hands: false,
    weight: 16,
    value: 0,
    sound: "items.drop.heavybox1",
    pick_up_sound: "items.pickup.shovel",
    name: "Boombox",
    tool_tip_text: "Drop Boombox\nUse Boombox []",
    battery_life: 340,
    conductive: false,
  },
  "js:key": {
    id: 3,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: 3,
    sound: "items.drop.key",
    pick_up_sound: "items.pickup.key",
    name: "Key",
    tool_tip_text: "Drop Key\nUse Key []",
    conductive: true,
  },
  "js:metal_sheet": {
    id: 4,
    item_type: 1,
    fills_hands: false,
    weight: 26,
    value: [10, 22],
    sound: "items.drop.thin_metal",
    pick_up_sound: "items.pickup.shovel",
    name: "Metal Sheet",
    tool_tip_text: "Drop Metal Sheet",
    conductive: true,
  },
  "js:shovel": {
    id: 5,
    item_type: 2, //this is because the animation uses 2 hands
    fills_hands: false,
    weight: 14,
    value: 0,
    sound: "items.drop.shovel",
    pick_up_sound: "items.pickup.shovel",
    name: "Shovel",
    tool_tip_text: "Drop Shovel\nSwing Shovel []",
    conductive: true,
  },
  "js:flashlight": {
    id: 6,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: 0,
    sound: "items.drop.flashlight",
    pick_up_sound: "items.pocket.flashlight",
    name: "Flashlight",
    tool_tip_text: "Drop Flashlight\nToggle light []",
    battery_life: 140,
    conductive: false,
  },
  "js:pro_flashlight": {
    id: 7,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: 0,
    sound: "items.drop.flashlight",
    pick_up_sound: "items.pocket.flashlight",
    name: "Pro-flashlight",
    tool_tip_text: "Drop Pro-flashlight\nToggle light []",
    battery_life: 300,
    conductive: false,
  },
  "js:large_axle": {
    id: 8,
    item_type: 2,
    fills_hands: true,
    weight: 16,
    value: [36, 56],
    sound: "items.drop.metal3",
    pick_up_sound: "items.pickup.shovel",
    name: "Large Axle",
    tool_tip_text: "Drop Large Axle",
    conductive: true,
  },
  "js:bottles": {
    id: 9,
    item_type: 2,
    fills_hands: true,
    weight: 19,
    value: [44, 56],
    sound: "items.drop.bottles",
    pick_up_sound: "items.pickup.plastic",
    name: "Bottles",
    tool_tip_text: "Drop Bottles",
    conductive: false,
  },
  "js:v_type_engine": {
    id: 10,
    item_type: 2,
    fills_hands: true,
    weight: 16,
    value: [20, 56],
    sound: "items.drop.metal3",
    pick_up_sound: "items.pickup.shovel",
    name: "V-Type Engine",
    tool_tip_text: "Drop V-Type Engine",
    conductive: true,
  },
  "js:steering_wheel": {
    id: 11,
    item_type: 1,
    fills_hands: false,
    weight: 16,
    value: [20, 32],
    sound: "items.drop.plastic_large",
    pick_up_sound: "items.pickup.shovel",
    name: "Steering Wheel",
    tool_tip_text: "Drop Steering Wheel",
    conductive: false,
  },
  "js:dust_pan": {
    id: 12,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [12, 32],
    sound: "items.drop.plastic2",
    pick_up_sound: "items.pickup.shovel",
    name: "Dustpan",
    tool_tip_text: "Drop Dustpan",
    conductive: false,
  },
  "js:plastic_fish": {
    id: 13,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [28, 40],
    sound: "items.drop.plastic2",
    pick_up_sound: "items.pickup.shovel",
    name: "Plastic Fish",
    tool_tip_text: "Drop Plastic Fish",
    conductive: false,
  },
  "js:body": {
    id: 14,
    item_type: 2,
    fills_hands: true,
    weight: 5,
    value: [5, 5],
    sound: "land.stone",
    pick_up_sound: "null",
    name: "Body",
    tool_tip_text: "Drop Body",
    conductive: false,
  },
  "js:apparatus": {
    id: 15,
    item_type: 2,
    fills_hands: true,
    weight: 31,
    value: [80, 80],
    sound: "items.drop.metal2",
    pick_up_sound: "items.pickup.shovel",
    name: "Apparatus",
    tool_tip_text: "Drop Apparatus",
    conductive: true,
  },
  "js:walkie": {
    id: 16,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [0, 0],
    sound: "items.drop.flashlight",
    pick_up_sound: "items.pocket.flashlight",
    name: "Walkie-talkie",
    tool_tip_text: "Drop Walkie-talkie\nPower Button []\nSend Voice []",
    battery_life: 820,
    conductive: false,
  },
  "js:hive": {
    id: 17,
    item_type: 2,
    fills_hands: true,
    weight: 0,
    value: [40, 125],
    sound: "monster.circuit_bees.drop",
    pick_up_sound: "monster.circuit_bees.grab",
    name: "Bee Hive",
    tool_tip_text: "Drop Bee Hive",
    conductive: true,
  },
  "js:clown_horn": {
    id: 18,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [52, 72],
    sound: "items.drop.plastic1",
    pick_up_sound: "items.pocket.flashlight",
    name: "Clown Horn",
    tool_tip_text: "Drop Clown Horn\nUse Horn []",
    conductive: true,
  },
  "js:robot_toy": {
    id: 19,
    item_type: 1,
    fills_hands: false,
    weight: 21,
    value: [56, 88],
    sound: "items.drop.plastic_large",
    pick_up_sound: "items.pickup.shovel",
    name: "Toy Robot",
    tool_tip_text: "Drop Toy Robot",
    conductive: true,
  },
  "js:egg_beater": {
    id: 20,
    item_type: 1,
    fills_hands: false,
    weight: 11,
    value: [12, 44],
    sound: "items.drop.plastic1",
    pick_up_sound: "items.pickup.shovel",
    name: "Egg Beater",
    tool_tip_text: "Drop Egg Beater",
    conductive: true,
  },
  "js:kettle": {
    id: 21,
    item_type: 1,
    fills_hands: false,
    weight: 21,
    value: [32, 56],
    sound: "items.drop.thin_metal",
    pick_up_sound: "items.pickup.shovel",
    name: "Tea Kettle",
    tool_tip_text: "Drop Tea Kettle",
    conductive: true,
  },
  "js:cookie_mold_pan": {
    id: 22,
    item_type: 1,
    fills_hands: false,
    weight: 16,
    value: [12, 40],
    sound: "items.drop.thin_metal",
    pick_up_sound: "items.pickup.shovel",
    name: "Cookie Mold Pan",
    tool_tip_text: "Drop Cookie Mold Pan",
    conductive: false,
  },
  "js:toy_cube": {
    id: 23,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [24, 44],
    sound: "items.drop.plastic2",
    pick_up_sound: "items.pickup.shovel",
    name: "Toy Cube",
    tool_tip_text: "Drop Toy Cube",
    conductive: false,
  },
  "js:candy": {
    id: 24,
    item_type: 1,
    fills_hands: false,
    weight: 11,
    value: [6, 36],
    sound: "items.drop.plastic2",
    pick_up_sound: "items.pickup.shovel",
    name: "Candy",
    tool_tip_text: "Drop Candy",
    conductive: false,
  },
  "js:ring": {
    id: 25,
    item_type: 1,
    fills_hands: false,
    weight: 16,
    value: [58, 79],
    sound: "items.drop.metal1",
    pick_up_sound: "items.pickup.shovel",
    name: "Ring",
    tool_tip_text: "Drop Ring",
    conductive: true,
  },
  "js:flask": {
    id: 26,
    item_type: 1,
    fills_hands: false,
    weight: 19,
    value: [16, 44],
    sound: "items.drop.glass1",
    pick_up_sound: "items.grab.bottle",
    name: "Flask",
    tool_tip_text: "Drop Flask",
    conductive: false,
  },
  "js:duck": {
    id: 27,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [2, 100],
    sound: "items.drop.plastic2",
    pick_up_sound: "items.drop.duck",
    name: "Rubber Ducky",
    tool_tip_text: "Drop Rubber Ducky",
    conductive: false,
  },
  "js:brass_bell": {
    id: 28,
    item_type: 1,
    fills_hands: false,
    weight: 24,
    value: [48, 80],
    sound: "items.drop.brass_bell",
    pick_up_sound: "items.pickup.shovel",
    name: "Brass Bell",
    tool_tip_text: "Drop Brass Bell",
    conductive: true,
  },
  "js:painting": {
    id: 29,
    item_type: 1,
    fills_hands: true,
    weight: 32,
    value: [60, 124],
    sound: "items.drop.plastic_large",
    pick_up_sound: "items.pickup.plastic",
    name: "Painting",
    tool_tip_text: "Drop Painting",
    conductive: false,
  },
  "js:cash_register": {
    id: 30,
    item_type: 2,
    fills_hands: true,
    weight: 84,
    value: [80, 160],
    sound: "items.drop.metal3",
    pick_up_sound: "items.pickup.shovel",
    name: "Cash Register",
    tool_tip_text: "Drop Cash Register",
    conductive: true,
  },
  "js:garbage_lid": {
    id: 31,
    item_type: 2,
    fills_hands: true,
    weight: 0,
    value: [20, 43],
    sound: "items.drop.metal4",
    pick_up_sound: "items.pickup.shovel",
    name: "Garbage Lid",
    tool_tip_text: "Drop Garbage Lid",
    conductive: true,
  },
  "js:gift": {
    id: 32,
    item_type: 1,
    fills_hands: false,
    weight: 19,
    value: [12, 28],
    sound: "items.drop.cardboard_box",
    pick_up_sound: "items.pickup.cardboard_box",
    name: "Gift Box",
    tool_tip_text: "Drop Gift Box",
    conductive: false,
  },
  "js:gold_bar": {
    id: 33,
    item_type: 1,
    fills_hands: false,
    weight: 77,
    value: [102, 210],
    sound: "items.drop.metal3",
    pick_up_sound: "items.pickup.shovel",
    name: "Gold Bar",
    tool_tip_text: "Drop Gold Bar",
    conductive: true,
  },
  "js:magnifying_glass": {
    id: 34,
    item_type: 1,
    fills_hands: false,
    weight: 11,
    value: [44, 60],
    sound: "items.drop.glass1",
    pick_up_sound: "items.pickup.shovel",
    name: "Magnifying Glass",
    tool_tip_text: "Drop Magnifying Glass",
    conductive: false,
  },
  "js:pickle_jar": {
    id: 35,
    item_type: 1,
    fills_hands: false,
    weight: 16,
    value: [32, 60],
    sound: "items.drop.glass1",
    pick_up_sound: "items.pickup.shovel",
    name: "Jar of Pickles",
    tool_tip_text: "Drop Jar of Pickles",
    conductive: false,
  },
  "js:plastic_cup": {
    id: 36,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [12, 36],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Plastic Cup",
    tool_tip_text: "Drop Plastic Cup",
    conductive: false,
  },
  "js:red_soda": {
    id: 37,
    item_type: 1,
    fills_hands: false,
    weight: 7,
    value: [18, 90],
    sound: "items.drop.metal1",
    pick_up_sound: "items.pickup.shovel",
    name: "Red Soda",
    tool_tip_text: "Drop Red Soda",
    conductive: true,
  },
  "js:remote": {
    id: 38,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [20, 48],
    sound: "items.drop.plastic1",
    pick_up_sound: "items.pickup.shovel",
    name: "Remote",
    tool_tip_text: "Drop Remote\nUse Remote []",
    conductive: false,
  },
  "js:whoopie_cushion": {
    id: 39,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [6, 36],
    sound: "items.drop.plastic_large",
    pick_up_sound: "items.pickup.plastic",
    name: "Whoopie-Cushion",
    tool_tip_text: "Drop Whoopie-Cushion",
    conductive: false,
  },
  "js:shotgun": {
    id: 40,
    item_type: 2,
    fills_hands: false,
    weight: 16,
    value: [60, 60],
    sound: "items.shotgun.drop",
    pick_up_sound: "items.shotgun.grab",
    name: "Double-Barrel",
    tool_tip_text1: "Drop Shotgun\nFire []\nReload [Sneak + ]\nTurn safety off []",
    tool_tip_text2: "Drop Shotgun\nFire []\nReload [Sneak + ]\nTurn safety on []",
    conductive: false,
  }, 
  "js:shotgun_shell": {
    id: 41,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [30, 30],
    sound: "items.shotgun_shell.drop",
    pick_up_sound: "items.shotgun_shell.grab",
    name: "Shotgun Shell",
    tool_tip_text: "Drop Shotgun Shell",
    conductive: false,
  },
  "js:yield_sign": {
    id: 42,
    item_type: 2,
    fills_hands: false,
    weight: 42,
    value: [ 18, 36 ],
    sound: "items.drop.shovel",
    pick_up_sound: "items.pickup.shovel",
    name: "Yield Sign",
    tool_tip_text: "Drop Yield Sign\nSwing Yield Sign []",
    conductive: true,
  },
  "js:stop_sign": {
    id: 43,
    item_type: 2,
    fills_hands: false,
    weight: 24,
    value: [ 20, 52 ],
    sound: "items.drop.shovel",
    pick_up_sound: "items.pickup.shovel",
    name: "Stop Sign",
    tool_tip_text: "Drop Stop Sign\nSwing Stop Sign []",
    conductive: true,
  },
  "js:jetpack": {
    id: 44,
    item_type: 2,
    fills_hands: false,
    weight: 52,
    value: 0,
    sound: "items.drop.shovel",
    pick_up_sound: "items.pickup.shovel",
    name: "Jetpack",
    tool_tip_text: "Drop Jetpack\nUse Jetpack []",
    battery_life: 65 * 20,
    conductive: true,
  },
  "js:krypt_plush": {
    id: 45,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [ 1, 199 ],
    sound: "items.drop.metal1",
    pick_up_sound: "items.pickup.shovel",
    name: "Krypt Plush",
    tool_tip_text: "Drop Krypt Plush",
    conductive: false,
  },
  "js:mrdinger_plush": {
    id: 46,
    item_type: 1,
    fills_hands: false,
    weight: 100,
    value: [ 1, 199 ],
    sound: "items.drop.ding_plush",
    pick_up_sound: "items.pickup.ding_plush",
    name: "MrDinger Plush",
    tool_tip_text: "Drop MrDinger Plush",
    conductive: false,
  },
  "js:smolldave_plush": {
    id: 47,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [ 1, 199 ],
    sound: "items.drop.dy_plush",
    pick_up_sound: "items.pickup.dy_plush",
    name: "SmollDave Plush",
    tool_tip_text: "Drop SmollDave Plush",
    conductive: false,
  },
  "js:mecha_plush": {
    id: 48,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [ 1, 199 ],
    sound: "items.drop.mecha_plush",
    pick_up_sound: "items.pickup.mecha_plush",
    name: "Mecha Plush",
    tool_tip_text: "Drop Mecha Plush",
    conductive: true,
  },
  "js:juliusscizzor_plush": {
    id: 49,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [ 1, 199 ],
    sound: "items.drop.js_plush",
    pick_up_sound: "items.pickup.js_plush",
    name: "JuliusScizzor Plush",
    tool_tip_text: "Drop JuliusScizzor Plush",
    conductive: true,
  },
  "js:icabob_plush": {
    id: 50,
    item_type: 1,
    fills_hands: false,
    weight: 100,
    value: [ 1, 199 ],
    sound: "items.drop.icabob_plush",
    pick_up_sound: "random.anvil_land",
    name: "Agent Icabob Plush",
    tool_tip_text: "Drop Agent Icabob Plush",
    conductive: true,
  },
  "js:sinevector_plush": {
    id: 51,
    item_type: 1,
    fills_hands: false,
    weight: 12,
    value: [ -50, 50 ],
    sound: "items.drop.sinevector_plush",
    pick_up_sound: "items.pickup.shovel",
    name: "SineVector Plush",
    tool_tip_text: "Drop SineVector Plush",
    conductive: false,
  },
  "js:perfume_bottle": {
    id: 52,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [48, 104],
    sound: "items.drop.glass1",
    pick_up_sound: "items.grab.bottle",
    name: "Perfume Bottle",
    tool_tip_text: "Drop Perfume Bottle",
    conductive: false,
  },
  "js:pill_bottle": {
    id: 53,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [16, 40],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Pill Bottle",
    tool_tip_text: "Drop Pill Bottle",
    conductive: false,
  },
  "js:hair_brush": {
    id: 54,
    item_type: 1,
    fills_hands: false,
    weight: 11,
    value: [8, 36],
    sound: "items.drop.plastic1",
    pick_up_sound: "items.pickup.shovel",
    name: "Hair Brush",
    tool_tip_text: "Drop Hair Brush",
    conductive: false,
  },
  "js:air_horn": {
    id: 55,
    item_type: 1,
    fills_hands: false,
    weight: 0,
    value: [52, 71],
    sound: "items.drop.plastic1",
    pick_up_sound: "items.pocket.flashlight",
    name: "Air Horn",
    tool_tip_text: "Drop Air Horn\nUse Horn []",
    conductive: false,
  },
  "js:mug1": {
    id: 56,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: [24, 67],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Coffee Mug",
    tool_tip_text: "Drop Coffee Mug",
    conductive: false,
  },
  "js:mug2": {
    id: 57,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: [67, 76],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Dingo Mugo",
    tool_tip_text: "Drop Dingo Mugo",
    conductive: false,
  },
  "js:mug3": {
    id: 58,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: [24, 67],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Cow Mug",
    tool_tip_text: "Drop Cow Mug",
    conductive: false,
  },
  "js:mug4": {
    id: 59,
    item_type: 1,
    fills_hands: false,
    weight: 5,
    value: [24, 67],
    sound: "items.drop.plastic_cup",
    pick_up_sound: "items.pickup.shovel",
    name: "Mug",
    tool_tip_text: "Drop Mug",
    conductive: false,
  },
};

export const EMOTE_LIST = {
  "js:dance": {
    id: 1,
  },
  "js:point": {
    id: 2,
  },
};

export const DEATH_CAUSES = {
  entityAttack: "Bludgeoning",
  contact: "Mauling",
  override: "Unknown",
  stalactite: "Kicking",
  anvil: "Crushing",
  fallingBlock: "Gravity",
  temperature: "Suffocation",
  blockExplosion: "Blast",
  projectile: "Gunshots",
  lava: "Burning",
  lightning: "Electrocution",
  soulCampfire: "Snipped",
  drowning: "Drowning",
  suffocation: "Drowning",
};

export const BLOCKS = {
  "js:facility_door": {
    hit_sound: "items.shovel.hit",
  },  
  "js:main_door": {
    hit_sound: "items.shovel.hit",
  },
  "js:fire_exit_door": {
    hit_sound: "items.shovel.hit",
  },
  "js:vent": {
    hit_sound: "items.shovel.hit",
  },
  "ding:ship_collision": {
    hit_sound: "items.shovel.hit",
  },
  "ding:ship_door_collision": {
    hit_sound: "items.shovel.hit",
  },
  "ding:terminal_block": {
    hit_sound: "items.shovel.hit",
  },
  "ding:sheet_wall": {
    hit_sound: "items.shovel.hit",
  },
  "ding:concrete_floor": {
    hit_sound: "items.shovel.hit",
  },
  "ding:floor_grate": {
    hit_sound: "items.shovel.hit",
  },
  "ding:pipe_block": {
    hit_sound: "items.shovel.hit",
  },
  "ding:pipe": {
    hit_sound: "items.shovel.hit",
  },
  "ding:hand_rail": {
    hit_sound: "items.shovel.hit",
  },
  "ding:stairs_top_rail": {
    hit_sound: "items.shovel.hit",
  },
  "ding:pipe_connector": {
    hit_sound: "items.shovel.hit",
  },
  "ding:concrete_wall": {
    hit_sound: "items.shovel.hit",
  },
  "ding:concrete_brick_wall": {
    hit_sound: "items.shovel.hit",
  },
  "ding:concrete_brick_wall2": {
    hit_sound: "items.shovel.hit",
  },
  "ding:concrete_tiled_floor": {
    hit_sound: "items.shovel.hit",
  },
  "ding:ship_door_collison": {
    hit_sound: "items.shovel.hit",
  },
  "ding:door_buttons_block": {
    hit_sound: "items.shovel.hit",
  },
  "minecraft:barrier": {
    hit_sound: "items.shovel.hit",
  },
  "minecraft:grass": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:planks": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:planks_slab": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:planks2": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:planks2_slab": {
    hit_sound: "items.shovel.hit_wood",
  },    
  "ding:mansion_bookshelf": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_hall_planks": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_pillar_bottom": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_pillar": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_planks": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_table": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wall": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wall_pillar_bottom_corner": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wall_pillar_bottom": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wall_pillar_top_corner": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wall_pillar_top": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wallpaper_bottom_trim": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wallpaper_bottom": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wallpaper_fancy": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:mansion_wallpaper": {
    hit_sound: "items.shovel.hit_wood",
  },  
  "ding:orange_rock_slab": {
    hit_sound: "items.shovel.hit_ground",
  },  
  "ding:orange_rock": {
    hit_sound: "items.shovel.hit_ground",
  },  
  "ding:artifice_dirt": {
    hit_sound: "items.shovel.hit_dirt",
  },  
  "ding:artifice_dirt_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:artifice_dark": {
    hit_sound: "items.shovel.hit_dirt",
  }, 
  "ding:artifice_dark_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_1_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_2_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_3_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_1": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_2": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dry_soil_3": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:ex_soil1": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:ex_soil1_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:ex_soil2": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:ex_soil2_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:march_grass": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:march_soil": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:march_soil_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dark_snow_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:dark_snow": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:snow_block_slab": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:snow_block": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "ding:snowy_stone_slab": {
    hit_sound: "items.shovel.hit_ground",
  },
  "ding:snowy_stone": {
    hit_sound: "items.shovel.hit_ground",
  },
  "minecraft:dirt": {
    hit_sound: "items.shovel.hit_dirt",
  },
  "minecraft:water": {
    hit_sound: "items.shovel.hit_water",
  },
  "minecraft:flowing_water": {
    hit_sound: "items.shovel.hit_water",
  },
};

export const DEATH_BLOCKS = ["ding:sheet_wall_death", "ding:concrete_floor_death", "ding:concrete_wall_death"];

export const ENTITIES = {
  "minecraft:player": {
    shovel_sound: "items.shovel.hit_player",
  },
  "minecraft:iron_golem": {
    shovel_sound: "items.shovel.hit_player",
  },
  "js:mine": {
    display_name: "Landmine",
    type: "indoor",
  },
  "js:turret": {
    display_name: "Turret",
    type: "indoor",
  },
  "js:hoarding_bug": {
    display_name: "Hoarding Bug",
    door_open_speed: 0.5,
    damage: 30,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 1,
    max_count: 10,
  },
  "js:barber": {
    display_name: "Barber",
    door_open_speed: 3.33,
    damage: 100,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 1,
    max_count: 1,
  },
  "js:coil_head": {
    display_name: "Coil-head",
    door_open_speed: 17.28,
    damage: 90,
    damage_type: EntityDamageCause.contact,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 1,
    max_count: 5,
  },
  "js:bunker_spider": {
    display_name: "Bunker Spider",
    door_open_speed: 3,
    damage: 90,
    damage_type: EntityDamageCause.magic,
    shovel_sound: "monster.bunker_spider.hit",
    type: "indoor",
    power_level: 2,
    max_count: 1,
  },
  "js:bracken": {
    display_name: "Bracken",
    door_open_speed: 1.25,
    shovel_sound: "items.shovel.hit_enemy",
    type: "indoor",
    power_level: 3,
    max_count: 1,
  },
  "js:thumper": {
    display_name: "Thumper",
    door_open_speed: 0.5,
    shovel_sound: "null",
    type: "indoor",
    power_level: 3,
    max_count: 4,
  },
  "js:nutcracker": {
    display_name: "Nutcracker",
    door_open_speed: 0.5,
    damage: 100,
    damage_type: EntityDamageCause.stalactite,
    shovel_sound: "monster.nutcracker.hurt",
    type: "indoor",
    power_level: 1,
    max_count: 10,
  },
  "js:jester": {
    display_name: "Jester",
    door_open_speed: 2,
    shovel_sound: "items.shovel.hit_enemy",
    type: "indoor",
    power_level: 3,
    max_count: 1
  },
  "js:ghost_girl": {
    door_open_speed: 0.67,
    damage: 100,
    damage_type: EntityDamageCause.override,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 2,
    max_count: 1,
  },
  "js:spore_lizard": {
    display_name: "Spore Lizard",
    door_open_speed: 3.33,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 1,
    max_count: 2,
  },
  "js:hygrodere": {
    display_name: "Hygrodere",
    door_open_speed: 0.4,
    damage: 35,
    damage_type: EntityDamageCause.override,
    shovel_sound: "items.shovel.hit_slime",
    type: "indoor",
    power_level: 1,
    max_count: 2,
  },
  "js:snare_flea": {
    display_name: "Snare Flea",
    door_open_speed: 4.35,
    damage: 10,
    damage_type: EntityDamageCause.temperature,
    shovel_sound: "items.shovel.hit_player",
    type: "indoor",
    power_level: 1,
    max_count: 2,
  },
  "js:eyeless_dog": {
    display_name: "Eyeless Dog",
    door_open_speed: 3.33,
    damage: 100,
    damage_type: EntityDamageCause.contact,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
    power_level: 2,
    max_count: 8,
  }, 
  "js:forest_keeper": {
    display_name: "Forest Keeper",
    door_open_speed: 3,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
    power_level: 3,
    max_count: 3,
  }, 
  "js:earth_leviathan": {
    display_name: "Earth Leviathan",
    door_open_speed: 99999,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
    power_level: 2,
    max_count: 3,
  },
  "js:old_bird": {
    display_name: "Old Bird",
    door_open_speed: 3,
    damage: 0,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
    power_level: 3,
    max_count: 20,
  },
  "js:circuit_bees": {
    display_name: "Circuit Bees",
    door_open_speed: 3,
    damage: 0,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
  },
  "js:wandering_locusts": {
    display_name: "Wandering Locusts",
    door_open_speed: 3,
    damage: 0,
    shovel_sound: "items.shovel.hit_player",
    type: "outdoor",
  },
};

export const OUTDOOR_SPAWNABLE_BLOCKS = [
  "ding:ex_soil1",
  "ding:ex_soil2",
  "ding:ex_soil1_slab",
  "ding:ex_soil2_slab",
  "ding:ex_exterior_bricks2",
  "ding:march_grass",
  "ding:march_grass_foilage",
  "ding:march_soil",
  "ding:march_stone",
  "ding:march_grass_slab",
  "ding:march_soil_slab",
  "ding:march_stone_slab",
  "ding:snow_block",
  "ding:snow_block_slab",
  "ding:dark_snow",
  "ding:dark_snow_slab",
  "ding:snowy_stone",
  "ding:snowy_stone_slab",
  "ding:artifice_dirt",
  "ding:artifice_dirt_slab",
  "ding:artifice_dirt_dark",
  "ding:artifice_dirt_dark_slab",
  "ding:embrion_amethyst",
  "ding:embrion_amethyst_slab",
  "ding:dry_soil_1",
  "ding:dry_soil_2",
  "ding:dry_soil_1_slab",
  "ding:dry_soil_2_slab",
  "minecraft:stone",
  "minecraft:snow",
  "ding:concrete_wall"
];

export const MAPS = {
  company: {
    name: "The Company Building",
    shipLocation: { x: 1000, y: 64, z: 0 },
    deliveryShipLocation: { x: 1029, y: 61, z: -7 },
    id: 0,
    cost: 0,
  },
  experimentation: {
    name: "41-Experimentation",
    id: 1,
    shipLocation: { x: 2000, y: 64, z: 0 },
    deliveryShipLocation: { x: 1976, y: 62, z: 23 },
    mainLocation: { x: 2004.0, y: 66.0, z: 81.5 },
    fireExitLocations: {
      0: { x: 2022.3, y: 81.0, z: 93 },
    },
    eclipsedMinEntSpawn: 1,
    layout: {
      facility: 99.67,
      mansion: 0.33
    },
    mapMultiplier: 1,
    fireExits: 1,
    cost: 0,
    scrap: {
      min: 8,
      max: 11,
    },
    indoor_power: 4,
    outdoor_power: 8,
    daytime_power: 5,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 5,
    hazards: {
      mines: {
        min: 0,
        max: 12,
        avg: 2,
      },
      turrets: {
        min: 0,
        max: 7,
        avg: 2,
      },
      spike_traps: {
        min: 0,
        max: 0,
        avg: 0,
      },
    },
    spawnCurves: {
      indoor: {
        // a(x+b)^3 + dx^2 + c
        type: "cubic",
        a: 0.000000006,
        b: -600,
        c: 0.7,
        d: -0.0000005,
      },
      outdoor: {
        type: "quad",
        a: 0.000002,
        c: -1,
      },
    },
    spawns: {
      "js:bunker_spider": 25.5,
      "js:snare_flea": 22.47,
      "js:hygrodere": 13.66,
      "js:hoarding_bug": 12.33,
      "js:spore_lizard": 12.33,
      "js:thumper": 12.33,
      "js:bracken": 5.73,
      "js:coil_head": 2.17,
      "js:barber": 0.55,
      "js:ghost_girl": 0.44,
      "js:nutcracker": 0.44,
    },
    outdoor_spawns: {
      "js:eyeless_dog": 55.56,
      "js:earth_leviathan": 41.48,
      "js:old_bird": 2.22,
      "js:forest_keeper": 0.74,
    },
    floodMinHeight: 61,
    floodMaxHeight: 64
  },
  assurance: {
    name: "220-Assurance",
    id: 2,
    shipLocation: { x: 3000, y: 64, z: 0 },
    deliveryShipLocation: { x: 2981, y: 72, z: -14 }, //2981 72 -14
    mainLocation: { x: 2939.0, y: 68.0, z: -93.7 },//tp 2939.0 68.0 -93.7
    fireExitLocations: {
      0: { x: 3044.7, y: 72.0, z: -82.4 }, ///tp   
    },
    eclipsedMinEntSpawn: 1,
    layout: {
      facility: 99.01,
      mansion: 0.99
    },
    mapMultiplier: 1,
    fireExits: 1,
    cost: 0,
    scrap: {
      min: 13,
      max: 15,
    },
    indoor_power: 6,
    outdoor_power: 8,
    daytime_power: 7,
    indoor_spawn_deviation: 3,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 8,
    hazards: {
      mines: {
        min: 0,
        max: 7,
        avg: 3,
      },
      turrets: {
        min: 0,
        max: 11,
        avg: 4,
      },
      spike_traps: {
        min: 0,
        max: 2,
        avg: 1,
      },
    },
    spawnCurves: {
      indoor: {
        type: "quad",
        a: 0.0000012,
        c: -0.05,
      },
      outdoor: {
        type: "quad",
        a: 0.0000014,
        c: -0.28,
      },
    },
    spawns: {
      "js:snare_flea": 25.91,
      "js:hoarding_bug": 21.73,
      "js:bunker_spider": 19.22,
      "js:hygrodere": 7.8,
      "js:thumper": 6.69,
      "js:bracken": 3.9,
      "js:spore_lizard": 3.9,
      "js:barber": 0.84,
      "js:ghost_girl": 0.28,
      "js:nutcracker": 0.28,
    },
    outdoor_spawns: {
      "js:earth_leviathan": 48.97,
      "js:eyeless_dog": 40.21,
      "js:forest_keeper": 0.52,
    },
    floodMinHeight: 61,
    floodMaxHeight: 64
  },
  vow: {
    name: "56-Vow",
    id: 3,
    shipLocation: { x: 4000, y: 64, z: 0 },
    deliveryShipLocation: { x: 4000, y: 64, z: 50 },
    layout: "facility",
    mapMultiplier: 1.15,
    fireExits: 1,
    cost: 0,
    scrap: {
      min: 10,
      max: 12,
    },
    indoor_power: 7,
    outdoor_power: 6,
    daytime_power: 17,
    indoor_spawn_deviation: 3,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 7,
    spawns: {
      "js:bracken": {
        chance: 26.14,
        power_level: 3,
        max_count: 1,
      },
      "js:hoarding_bug": {
        chance: 20.59,
        power_level: 1,
        max_count: 8,
      },
      "js:snare_flea": {
        chance: 19.93,
        power_level: 1,
        max_count: 4,
      },
      "js:bunker_spider": {
        chance: 13.07,
        power_level: 3,
        max_count: 1,
      },
      "js:hygrodere": {
        chance: 9.15,
        power_level: 1,
        max_count: 2,
      },
      "js:spore_lizard": {
        chance: 6.21,
        power_level: 1,
        max_count: 2,
      },
      "js:thumper": {
        chance: 2.94,
        power_level: 3,
        max_count: 4,
      },
      "js:coil_head": {
        chance: 1.96,
        power_level: 1,
        max_count: 5,
      },
    },
  },
  offense: {
    name: "21-Offense",
    id: 4,
    shipLocation: { x: 5000, y: 64, z: 0 },
    deliveryShipLocation: { x: 5000, y: 64, z: 50 },
    layout: "facility",
    mapMultiplier: 1.25,
    fireExits: 1,
    cost: 0,
    scrap: {
      min: 14,
      max: 17,
    },
    indoor_power: 12,
    outdoor_power: 8,
    daytime_power: 20,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 10,
    spawns: {
      "js:thumper": {
        chance: 26.07,
        power_level: 3,
        max_count: 4,
      },
      "js:bunker_spider": {
        chance: 20.85,
        power_level: 3,
        max_count: 1,
      },
      "js:hygrodere": {
        chance: 15.17,
        power_level: 1,
        max_count: 2,
      },
      "js:snare_flea": {
        chance: 12.8,
        power_level: 1,
        max_count: 4,
      },
      "js:coil_head": {
        chance: 11.85,
        power_level: 1,
        max_count: 5,
      },
      "js:hoarding_bug": {
        chance: 7.58,
        power_level: 1,
        max_count: 8,
      },
      "js:spore_lizard": {
        chance: 3.32,
        power_level: 1,
        max_count: 2,
      },
      "js:bracken": {
        chance: 1.42,
        power_level: 3,
        max_count: 1,
      },
      "js:nutcracker": {
        chance: 0.95,
        power_level: 1,
        max_count: 10,
      },
    },
  },
  march: {
    name: "61-March",
    id: 5,
    shipLocation: { x: 6000, y: 64, z: 0 },
    deliveryShipLocation: { x: 5967, y: 61, z: -2 },
    mainLocation: { x: 5972.99 , y: 60.0 , z: 106.5 },
    fireExitLocations: {
      0: { x: 6064.50, y: 55.0, z: 73.50 }, //tp 6064.50 55.0 73.50
      1: { x: 6081.5, y: 57.0, z: -9.50 },  //tp 6081.50 57.0 -9.50
      2: { x: 6018.50, y: 68.0, z: -82.50 }, //tp 6018.50 68.0 -82.50
    },
    eclipsedMinEntSpawn: 2,
    layout: {
      facility: 100,
      mansion: 0
    },
    mapMultiplier: 2,
    fireExits: 3,
    cost: 0,
    scrap: {
      min: 13,
      max: 16,
    },
    indoor_power: 14,
    outdoor_power: 12,
    daytime_power: 20,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 7,
    hazards: {
      mines: {
        min: 0,
        max: 15,
        avg: 6,
      },
      turrets: {
        min: 0,
        max: 15,
        avg: 6,
      },
      spike_traps: {
        min: 0,
        max: 18,
        avg: 4,
      },
    },
    spawnCurves: {
      indoor: {
        // aLog(x)^d+c
        type: "log",
        a: 1,
        c: -2.9,
        d: 1.24,
      },
      outdoor: {
        type: "quad",
        a: 0.000002,
        c: -1,
      },
    },
    spawns: {
      "js:thumper": 23.49,
      "js:bunker_spider": 20.32,
      "js:bracken": 17.78,
      "js:snare_flea": 12.06,
      "js:hoarding_bug": 11.43,
      "js:hygrodere": 4.76,
      "js:coil_head": 3.17,
      "js:spore_lizard": 2.86,
      "js:nutcracker": 0.95,
      "js:jester": 0.32,
    },
    outdoor_spawns: {
      "js:eyeless_dog": 18.72,
      "js:earth_leviathan": 7.88,
      "js:forest_keeper": 31.53,
    },
    floodMinHeight: 57,
    floodMaxHeight: 64
  },
  adamance: {
    name: "20-Adamance",
    id: 6,
    shipLocation: { x: 6000, y: 64, z: 0 },
    deliveryShipLocation: { x: 6000, y: 64, z: 50 },
    layout: "facility",
    mapMultiplier: 2,
    fireExits: 4,
    cost: 0,
    scrap: {
      min: 13,
      max: 16,
    },
    indoor_power: 14,
    outdoor_power: 12,
    daytime_power: 20,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 7,
    spawns: {
      "js:thumper": {
        chance: 24.18,
        power_level: 3,
        max_count: 4,
      },
      "js:bunker_spider": {
        chance: 20.92,
        power_level: 3,
        max_count: 1,
      },
      "js:bracken": {
        chance: 18.3,
        power_level: 3,
        max_count: 1,
      },
      "js:snare_flea": {
        chance: 12.42,
        power_level: 1,
        max_count: 4,
      },
      "js:hoarding_bug": {
        chance: 11.76,
        power_level: 1,
        max_count: 8,
      },
      "js:hygrodere": {
        chance: 4.9,
        power_level: 1,
        max_count: 2,
      },
      "js:coil_head": {
        chance: 3.27,
        power_level: 1,
        max_count: 5,
      },
      "js:spore_lizard": {
        chance: 2.94,
        power_level: 1,
        max_count: 2,
      },
      "js:nutcracker": {
        chance: 0.98,
        power_level: 1,
        max_count: 10,
      },
      "js:jester": {
        chance: 0.33,
        power_level: 3,
        max_count: 1,
      },
    },
  },
  rend: {
    name: "85-Rend",
    id: 7,
    shipLocation: { x: 7000, y: 64, z: 0 },
    deliveryShipLocation: { x: 7016, y: 63, z: -17 },
    mainLocation: { x: 7100.50, y: 64.0, z: -36.0 },
    fireExitLocations: {
      0: { x: 7065.5, y: 53.0, z: 64.50 },
    },
    eclipsedMinEntSpawn: 3,
    layout: {
      facility: 1.64,
      mansion: 98.36
    },
    mapMultiplier: 1.8,
    fireExits: 1,
    cost: 550,
    scrap: {
      min: 18,
      max: 25,
    },
    indoor_power: 10,
    outdoor_power: 6,
    daytime_power: 20,
    indoor_spawn_deviation: 3,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 10,
    hazards: {
      mines: {
        min: 0,
        max: 3,
        avg: 1,
      },
      turrets: {
        min: 0,
        max: 0,
        avg: 0,
      },
      spike_traps: {
        min: 0,
        max: 7,
        avg: 3,
      },
    },
    spawnCurves: {
      indoor: {
        type: "cubic",
        a: 0.000000005,
        b: -430,
        c: 0.25,
        d: 0.00000094,
      },
      outdoor: {
        type: "cubic",
        a: 0.000000009,
        b: -680,
        c: 0.25,
        d: 0.00000014,
      },
    },
    spawns: {
      "js:nutcracker": 25.91,
      "js:jester": 14.5,
      "js:bracken": 12.29,
      "js:bunker_spider": 10.36,
      "js:coil_head": 10.36,
      "js:snare_flea": 7.47,
      "js:barber": 2.65,
      // "js:masked": 6.48,
      "js:ghost_girl": 5.18,
      "js:spore_lizard": 1.81,
      "js:hygrodere": 1.45,
    },
    outdoor_spawns: {
      "js:eyeless_dog": 55.22,
      "js:forest_keeper": 44.78,
    },
  },
  dine: {
    name: "7-Dine",
    id: 8,
    shipLocation: { x: 8000, y: 64, z: 0 },
    deliveryShipLocation: { x: 8000, y: 64, z: 50 },
    layout: "mansion",
    mapMultiplier: 1.3,
    fireExits: 1,
    cost: 600,
    scrap: {
      min: 20,
      max: 27,
    },
    indoor_power: 15,
    outdoor_power: 6,
    daytime_power: 20,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 10,
    spawns: {
      "js:jester": {
        chance: 13.5,
        power_level: 3,
        max_count: 1,
      },
      "js:bunker_spider": {
        chance: 13.09,
        power_level: 3,
        max_count: 1,
      },
      "js:nutcracker": {
        chance: 12.27,
        power_level: 1,
        max_count: 10,
      },
      "js:coil_head": {
        chance: 10.84,
        power_level: 1,
        max_count: 5,
      },
      "js:snare_flea": {
        chance: 10.63,
        power_level: 1,
        max_count: 4,
      },
      "js:thumper": {
        chance: 9.82,
        power_level: 3,
        max_count: 4,
      },
      "js:hoarding_bug": {
        chance: 9.82,
        power_level: 1,
        max_count: 8,
      },
      "js:hygrodere": {
        chance: 7.98,
        power_level: 1,
        max_count: 2,
      },
      "js:bracken": {
        chance: 5.11,
        power_level: 3,
        max_count: 1,
      },
      "js:ghost_girl": {
        chance: 3.68,
        power_level: 2,
        max_count: 1,
      },
      "js:spore_lizard": {
        chance: 3.27,
        power_level: 1,
        max_count: 2,
      },
    },
  },
  titan: {
    name: "8-Titan",
    id: 9,
    shipLocation: { x: 9000, y: 64, z: 0 },
    deliveryShipLocation: { x: 9017, y: 62, z: -6 }, 
    mainLocation: { x: 9001.99, y: 95.0, z: 33.50 }, //tp 9001.99 95.0 33.50
    layout: {
      facility: 83.99,
      mansion: 16.01
    },
    mapMultiplier: 2.2,
    fireExitLocations: {
      0: { x: 9024.5, y: 95.0, z: 31.5 },//tp 9024.5 95.0 31.5
    },
    fireExits: 1,
    cost: 700,
    scrap: {
      min: 28,
      max: 31,
    },
    eclipsedMinEntSpawn: 3,
    indoor_power: 18,
    outdoor_power: 7,
    daytime_power: 20,
    indoor_spawn_deviation: 2,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 10,
    hazards: {
      mines: {
        min: 0,
        max: 23,
        avg: 9,
      },
      turrets: {
        min: 0,
        max: 35,
        avg: 12,
      },
      spike_traps: {
        min: 0,
        max: 2,
        avg: 1,
      },
    },
    spawnCurves: {
      indoor: {
        type: "cubic",
        a: 0.000000001,
        b: -620,
        c: 0.22,
        d: 0.0000007,
      },
      outdoor: {
        type: "quad",
        a: 0.000001,
        c: -0.03,
      },
    },
    spawns: {
      "js:jester": 12.00,
      "js:nutcracker": 12.84,
      "js:bracken": 11.21,
      "js:bunker_spider": 10.67,
      "js:coil_head": 10.67,
      "js:snare_flea": 9.76,
      "js:thumper": 9.76,
      "js:hoarding_bug": 6.87,
      // "js:masked": 5.67,
      "js:ghost_girl": 3.07,
      "js:hygrodere": 3.62,
      "js:spore_lizard": 2.89,
    },
    outdoor_spawns: {
      "js:eyeless_dog": 65.04,
      "js:forest_keeper": 26.02,
      "js:earth_leviathan": 3.25,
      "js:old_bird": 5.69,
    },
  },
  embrion: {
    name: "5-Embrion",
    id: 10,
    shipLocation: { x: 10000, y: 64, z: 0 },  
    mainLocation: { x: 10018.0, y: 67.0, z: 150.7 },  //tp 10018.0 67.0 150.7
    deliveryShipLocation: { x: 10011, y: 62, z: -10 },
    layout: {
      facility: 96.79,
      mansion: 3.21
    },
    fireExits: 1,
    mapMultiplier: 1.1,
    fireExitLocations: {
      0: { x: 9914.50, y: 72.0, z: 183.7 }, //tp 9914.50 72.0 183.7 180 0
    },
    cost: 150,
    scrap: {
      min: 14,
      max: 16,
    },
    eclipsedMinEntSpawn: 4,
    indoor_power: 8,
    outdoor_power: 70,
    daytime_power: 20,
    indoor_spawn_deviation: 4,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 0,
    hazards: {
      mines: {
        min: 0,
        max: 16,
        avg: 5,
      },
      turrets: {
        min: 0,
        max: 9,
        avg: 3,
      },
      spike_traps: {
        min: 2,
        max: 14,
        avg: 8,
      },
    },
    spawnCurves: {
      indoor: {
        type: "cubic",
        a: 0.000000008,
        b: -420,
        c: 0.22,
        d: 0.0000003,
      },
      outdoor: {
        type: "quad2",
        a: -0.00001,
        c: 0.95,
        b: 484
      },
    },
    spawns: {
      "js:hoarding_bug": 27.13,
      "js:hygrodere": 13.25,
      "js:barber": 11.36,
      "js:spore_lizard": 11.04,
      "js:thumper": 9.46,
      "js:coil_head": 7.89,
      "js:bunker_spider": 7.26,
      "js:nutcracker": 6.94,
      "js:snare_flea": 4.73,
      "js:bracken": 0.95,
    },
    outdoor_spawns: {
      "js:old_bird": 86.96,
      "js:forest_keeper": 2.61,
      "js:earth_leviathan": 7.83,
      "js:eyeless_dog": 2.61,
    },
  },
  artifice: {
    name: "68-Artifice",
    id: 11,
    shipLocation: { x: 11000, y: 64, z: 17 },
    mainLocation: { x: 11121.5, y: 59.0, z: -14.0 },  //tp 11121.5 59.0 -14.0
    deliveryShipLocation: { x: 11005, y: 67, z: -31 },
    layout: {
      facility: 29.76,
      mansion: 70.24
    },
    mapMultiplier: 1.8,
    fireExitLocations: {
      0: { x: 11130.50, y: 58.0, z: 12.50 },//tp 11130.50 58.0 12.50
    },
    fireExits: 1,
    cost: 1500,
    scrap: {
      min: 26,
      max: 30,
    },
    eclipsedMinEntSpawn: 3,
    indoor_power: 13,
    outdoor_power: 13,
    daytime_power: 15,
    indoor_spawn_deviation: 3,
    outdoor_spawn_deviation: 3,
    daytime_spawn_deviation: 4,
    hazards: {
      mines: {
        min: 0,
        max: 35,
        avg: 10,
      },
      turrets: {
        min: 0,
        max: 10,
        avg: 3,
      },
      spike_traps: {
        min: 0,
        max: 5,
        avg: 3,
      },
    },
    spawnCurves: {
      indoor: {
        type: "cubic",
        a: 0.0000000035,
        b: -360,
        c: 0.15,
        d: 0.0000005,
      },
      outdoor: {
        type: "quad2",
        a: -0.0000035,
        c: 0.93,
        b: 680
      },
    },
    spawns: {
      "js:bunker_spider": 8.29,
      "js:bracken": 8.29,
      "js:nutcracker": 8.29,
      "js:hoarding_bug": 7.87,
      "js:thumper": 7.62,
      "js:jester": 7.62,
      // "js:butler": 7.54,
      "js:spore_lizard": 7.46,
      "js:coil_head": 7.13,
      "js:snare_flea": 6.38,
      "js:hygrodere": 6.05,
      "js:barber": 3.73,
      "js:ghost_girl": 2.9,
      // "js:maneater": 3.48,
    },
    outdoor_spawns: {
      "js:eyeless_dog": 23.00,
      "js:forest_keeper": 19.00,
      "js:earth_leviathan": 6.00,
      "js:old_bird": 45.00,
    },
    floodMinHeight: 55,
    floodMaxHeight: 62
  },
};



export const MOON_LOOT_TABLE = {
  experimentation: {
    "js:v_type_engine": 18.00,
    "js:metal_sheet": 17.60,
    "js:large_axle": 16.00,
    "js:big_bolt": 16.00,
    "js:flask": 8.40,
    "js:steering_wheel": 6.40,
    "js:dust_pan": 6.40,
    "js:bottles": 3.80,
    "js:gift": 3.40,
    "js:plastic_fish": 2.40,
    "js:egg_beater": 2.00,
    "js:pickle_jar": 2.00,
    "js:yield_sign": 1.20,
    "js:cookie_mold_pan": 1.00,
    "js:clown_horn": 0.60,
    "js:air_horn": 0.60,
    "js:cash_register": 0.25,
    "js:ring": 0.60,
    "js:candy": 0.40,
    "js:gold_bar": 0.15
  },


  assurance: {
    "js:bottles": 18.49,
    "js:big_bolt": 9.83,
    "js:cookie_mold_pan": 8.17,
    "js:v_type_engine": 6.67,
    "js:egg_beater": 5.68,
    "js:stop_sign": 5.68,
    "js:garbage_lid": 5.34,
    "js:kettle": 5.34,
    "js:toy_cube": 5.17,
    "js:large_axle": 5.01,
    "js:metal_sheet": 3.83,
    "js:pickle_jar": 3.34,
    "js:plastic_cup": 3.17,
    "js:steering_wheel": 3.17,
    "js:magnifying_glass": 2.83,
    "js:yield_sign": 2.83,
    "js:brass_bell": 2.66,
    "js:gift": 2.18,
    "js:remote": 2.18,
    "js:red_soda": 2.00,
    "js:whoopie_cushion": 1.84,
    "js:plastic_fish": 1.67,
    "js:clown_horn": 1.67,
    "js:robot_toy": 1.00,
    "js:cash_register": 0.30,

    "js:krypt_plush": 0.02,
    "js:mrdinger_plush": 0.02,
    "js:smolldave_plush": 0.02,
    "js:mecha_plush": 0.02,
    "js:juliusscizzor_plush": 0.02,
    "js:icabob_plush": 0.02,
    "js:sinevector_plush": 0.02,

    "js:air_horn": 1.67,
    "js:hair_brush": 3.06,
    "js:mug1": 0.68,
    "js:mug2": 0.46,
    "js:mug3": 0.68,
    "js:mug4": 0.68
  },

  march: {
    "js:big_bolt": 10.18,
    "js:metal_sheet": 9.48,
    "js:large_axle": 8.80,
    "js:v_type_engine": 8.22,
    "js:bottles": 7.65,
    "js:clown_horn": 4.91,
    "js:air_horn": 3.88,
    "js:flask": 4.79,
    "js:stop_sign": 3.31,
    "js:plastic_fish": 3.20,
    "js:plastic_cup": 3.08,
    "js:cookie_mold_pan": 2.74,
    "js:gift": 2.74,
    "js:kettle": 2.74,
    "js:garbage_lid": 2.28,
    "js:toy_cube": 2.05,
    "js:remote": 1.83,
    "js:yield_sign": 0.91,
    "js:magnifying_glass": 0.46,
    "js:gold_bar": 0.40,
    "js:candy": 0.34,
    "js:cash_register": 0.30,
    "js:red_soda": 0.22,
    "js:robot_toy": 0.22,
    "js:duck": 0.12,

    "js:krypt_plush": 0.01,
    "js:mrdinger_plush": 0.01,
    "js:smolldave_plush": 0.01,
    "js:mecha_plush": 0.01,
    "js:juliusscizzor_plush": 0.01,
    "js:icabob_plush": 0.01,
    "js:sinevector_plush": 0.01
  },

  embrion: {
    "js:metal_sheet": 12.16,
    "js:large_axle": 9.86,
    "js:v_type_engine": 9.73,
    "js:big_bolt": 8.03,
    "js:bottles": 6.33,
    "js:cookie_mold_pan": 6.33,
    "js:robot_toy": 5.24,
    "js:stop_sign": 3.41,
    "js:plastic_fish": 3.41,
    "js:remote": 3.41,
    "js:plastic_cup": 3.41,
    "js:toy_cube": 3.04,
    "js:kettle": 2.80,
    "js:air_horn": 2.66,
    "js:clown_horn": 2.19,
    "js:gift": 2.07,
    "js:yield_sign": 1.70,
    "js:magnifying_glass": 1.70
  },

  rend: {
    "js:painting": 5.0,
    "js:brass_bell": 4.51,
    "js:robot_toy": 4.32,
    "js:bottles": 4.32,
    "js:magnifying_glass": 3.29,
    "js:toy_cube": 3.10,
    "js:plastic_cup": 2.73,
    "js:red_soda": 2.44,
    "js:kettle": 2.35,
    "js:ring": 1.78,
    "js:gift": 1.78,
    "js:plastic_fish": 1.51,
    "js:duck": 1.51,
    "js:cash_register": 0.90,
    "js:candy": 1.41,
    "js:air_horn": 0.75,
    "js:clown_horn": 0.75,
    "js:big_bolt": 0.37,
    "js:pickle_jar": 0.37,
    "js:large_axle": 0.19,
    "js:v_type_engine": 0.19,

    "js:krypt_plush": 0.01,
    "js:mrdinger_plush": 0.01,
    "js:smolldave_plush": 0.01,
    "js:mecha_plush": 0.01,
    "js:juliusscizzor_plush": 0.01,
    "js:icabob_plush": 0.01,
    "js:sinevector_plush": 0.01,
    
    "js:mug1": 1.3,
    "js:mug2": 0.8,
    "js:mug3": 1.3,
    "js:mug4": 1.3,
    "js:perfume_bottle": 2.6,
    "js:hair_brush": 2.32,
    "js:pill_bottle": 0.37

  },

  titan: {
    "js:big_bolt": 8.85,
    "js:v_type_engine": 7.54,
    "js:red_soda": 7.15,
    "js:large_axle": 6.96,
    "js:brass_bell": 6.96,
    "js:robot_toy": 6.59,
    "js:painting": 6.0,
    "js:bottles": 6.21,
    "js:kettle": 5.65,
    "js:ring": 5.09,
    "js:whoopie_cushion": 4.90,
    "js:magnifying_glass": 4.71,
    "js:duck": 4.51,
    "js:toy_cube": 3.76,
    "js:plastic_cup": 3.99,
    "js:hair_brush": 3.34,
    "js:gift": 3.20,
    "js:air_horn": 5.0,
    "js:clown_horn": 3.01,
    "js:plastic_fish": 3.01,
    "js:pickle_jar": 1.50,
    "js:mug1": 1,
    "js:mug2": 0.7,
    "js:mug3": 1,
    "js:mug4": 1,
    "js:pill_bottle": 1.61,
    "js:perfume_bottle": 1.51,
  },

  artifice: {
    "js:robot_toy": 4.69,
    "js:painting": 4.3,
    "js:duck": 4.39,
    "js:brass_bell": 4.10,
    "js:whoopie_cushion": 3.15,
    "js:ring": 3.07,
    "js:magnifying_glass": 3.07,
    "js:pickle_jar": 2.42,
    "js:gold_bar": 2.00,
    "js:large_axle": 2.27,
    "js:air_horn": 2.88,
    "js:clown_horn": 2.27,
    "js:kettle": 2.19,
    "js:v_type_engine": 2.19,
    "js:big_bolt": 1.89,
    "js:cash_register": 1.80,
    "js:toy_cube": 1.46,
    "js:red_soda": 1.46,
    "js:hair_brush": 1.17,
    "js:plastic_fish": 1.17,
    "js:bottles": 1.17,
    "js:pill_bottle": 1.10,
    "js:perfume_bottle": 1.03,
    "js:gift": 1.10,
    "js:garbage_lid": 0.80,

    "js:krypt_plush": 0.01,
    "js:mrdinger_plush": 0.01,
    "js:smolldave_plush": 0.01,
    "js:mecha_plush": 0.01,
    "js:juliusscizzor_plush": 0.01,
    "js:icabob_plush": 0.01,
    "js:sinevector_plush": 0.01,
    
    "js:mug1": 0.68,
    "js:mug2": 0.46,
    "js:mug3": 0.68,
    "js:mug4": 0.68
  }
};
