// Holds encounter code, seperate from poiscreens.js import { randomNumber } from "./functions.js"; //5-50 abominations, 51-200 MWBOS, 201-255 legion, a5-a40 NCR, b0-b30 abomination, b40-b80 abomination, b90+ NCR, b80-b90 enclave //HLE = high level encounter, this is a filter that determines if the player can get, as the name implies, high level encounters export function naturalEncounter(location){ var HLE = false; var encounter = false; var encounterLuck = randomNumber(1, 100); if(location > 250){ HLE = true; } if(0 < location <= 5){ encounter = false; } else if(5 < location <= 50){ if(1 <= encounterLuck <= 50){ encounter = false; } else if(51 <= encounterLuck <= 80){ encounter = "abomination"; } else if(81 <= encounterLuck <= 90){ encounter = "settler"; } else if(91 <= encounterLuck <= 100){ encounter = "MWBOS"; } } else if(50 < location <= 200){ if(1 <= encounterLuck <= 50){ encounter = false; } else if(51 <= encounterLuck <= 80){ encounter = "MWBOS"; } else if(81 <= encounterLuck <= 95){ encounter = "settler"; } else if(96 <= encounterLuck <= 100){ encounter = "abominaton"; } } else if(200 < location <= 255){ if(1 <= encounterLuck <= 40){ encounter = false; } else if(41 <= encounterLuck <= 75){ encounter = "legion"; } else if(76 <= encounterLuck <= 90){ encounter = "abomination"; } else if(91 <= encounterLuck <= 99){ encounter = "raider"; } else if(encounterLuck = 100){ encounter = "settler"; } } if(encounter != false){ switch(encounter){ case "abomination": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return abominationEncounters[randomNumber(0, abominationEncounters.length-1)]; case 2: return HLabominationEncounters[randomNumber(0, HLabominationEncounters.length-1)]; } } else { return abominationEncounters[randomNumber(0, abominationEncounters.length-1)]; } case "MWBOS": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return MWBOSEncounters[randomNumber(0, MWBOSEncounters.length-1)]; case 2: return HLMWBOSEncounters[randomNumber(0, HLMWBOSEncounters.length-1)]; } } else { return MWBOSEncounters[randomNumber(0, MWBOSEncounters.length-1)]; } case "BOS": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return BOSEncounters[randomNumber(0, BOSEncounters.length-1)]; case 2: return HLBOSEncounters[randomNumber(0, HLBOSEncounters.length-1)]; } } else { return BOSEncounters[randomNumber(0, BOSEncounters.length-1)]; } case "NCR": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return NCREncounters[randomNumber(0, NCREncounters.length-1)]; case 2: return HLNCREncounters[randomNumber(0, HLNCREncounters.length-1)]; } } else { return NCREncounters[randomNumber(0, NCREncounters.length-1)]; } case "legion": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return legionEncounters[randomNumber(0, legionEncounters.length-1)]; case 2: return HLlegionEncounters[randomNumber(0, HLlegionEncounters.length-1)]; } } else { return legionEncounters[randomNumber(0, legionEncounters.length-1)]; } case "settler": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return settlerEncounters[randomNumber(0, settlerEncounters.length-1)]; case 2: return HLsettlerEncounters[randomNumber(0, HLsettlerEncounters.length-1)]; } } else { return settlerEncounters[randomNumber(0, settlerEncounters.length-1)]; } case "raider": if(HLE == true){ switch(randomNumber(1, 2)){ case 1: return raiderEncounters[randomNumber(0, raiderEncounters.length-1)]; case 2: return HLraiderEncounters[randomNumber(0, HLraiderEncounters.length-1)]; } } else { return raiderEncounters[randomNumber(0, raiderEncounters.length-1)]; } } } else { return false; } }; export function forcedEncounter(HLE, faction, forcedHLE){ var HLEDeterminant = randomNumber(1, 2) if((HLE == true && HLEDeterminant == 1) || forcedHLE == true){ switch (faction){ case "raider": return HLraiderEncounters[randomNumber(0, HLraiderEncounters.length-1)]; case "MWBOS": return HLMWBOSEncounters[randomNumber(0, HLMWBOSEncounters.length-1)]; case "BOS": return HLBOSEncounters[randomNumber(0, HLBOSEncounters.length-1)]; case "settler": return HLsettlerEncounters[randomNumber(0, HLsettlerEncounters.length-1)]; case "abomination": return HLabominationEncounters[randomNumber(0, HLabominationEncounters.length-1)]; case "NCR": return HLNCREncounters[randomNumber(0, HLNCREncounters.length-1)]; case "legion": return HLlegionEncounters[randomNumber(0, HLlegionEncounters.length-1)]; } } else { switch (faction){ case "raider": return raiderEncounters[randomNumber(0, raiderEncounters.length-1)]; case "MWBOS": return MWBOSEncounters[randomNumber(0, MWBOSEncounters.length-1)]; case "BOS": return BOSEncounters[randomNumber(0, BOSEncounters.length-1)]; case "settler": return settlerEncounters[randomNumber(0, settlerEncounters.length-1)]; case "abomination": return abominationEncounters[randomNumber(0, abominationEncounters.length-1)]; case "NCR": return NCREncounters[randomNumber(0, NCREncounters.length-1)]; case "legion": return legionEncounters[randomNumber(0, legionEncounters.length-1)]; } } } var raiderEncounters = [ {name: "Raider Aspirant", faction: "raider", minLevel: 1, maxLevel: 15, damageClass: "B", minDamage: 5, maxDamage: 10}, {name: "Raider", faction: "raider", minLevel: 15, maxLevel: 25, damageClass: "B", minDamage: 10, maxDamage: 20}, {name: "Raider Scavenger", faction: "raider", minLevel: 25, maxLevel: 35, damageClass: "B", minDamage: 20, maxDamage: 30} ]; var HLraiderEncounters = [ {name: "Raider Enforcer", faction: "raider", minLevel: 35, maxLevel: 50, damageClass: "B", minDamage: 30, maxDamage: 40}, {name: "Raider Warlord", faction: "raider", minLevel: 50, maxLevel: 65, damageClass: "B", minDamage: 40, maxDamage: 50}, {name: "Raider Boss", faction: "raider", minLevel: 65, maxLevel: 80, damageClass: "B", minDamage: 50, maxDamage: 60} ]; var MWBOSEncounters = [ {name: "MWBOS Initiate", faction: "MWBOS", minLevel: 5, maxLevel: 10, damageClass: "E", minDamage: 5, maxDamage: 40}, {name: "MWBOS Knight", faction: "MWBOS", minLevel: 15, maxLevel: 20, damageClass: "E", minDamage: 40, maxDamage: 60}, {name: "MWBOS Knight Captain", faction: "MWBOS", minLevel: 25, maxLevel: 30, damageClass: "E", minDamage: 60, maxDamage: 80} ]; var HLMWBOSEncounters = [ {name: "MWBOS Paladin", faction: "MWBOS", minLevel: 35, maxLevel: 40, damageClass: "E", minDamage: 60, maxDamage: 80}, {name: "MWBOS Star Paladin", faction: "MWBOS", minLevel: 45, maxLevel: 50, damageClass: "E", minDamage: 80, maxDamage: 100}, {name: "MWBOS Head Paladin", faction: "MWBOS", minLevel: 55, maxLevel: 60, damageClass: "E", minDamage: 100, maxDamage: 120} ]; var abominationEncounters = [ {name: "Mole Rat", faction: "abomination", minLevel: 1, maxLevel: 15, damageClass: "B", minDamage: 1, maxDamage: 5}, {name: "Mongrel", faction: "abomination", minLevel: 15, maxLevel: 30, damageClass: "B", minDamage: 5, maxDamage: 10}, {name: "Radscorpion", faction: "abomination", minLevel: 30, maxLevel: 50, damageClass: "B", minDamage: 5, maxDamage: 10}, ]; var HLabominationEncounters = [ {name: "Super Mutant", faction: "abomination", minLevel: 50, maxLevel: 65, damageClass: "B", minDamage: 5, maxDamage: 10}, {name: "Tunneler", faction: "abomination", minLevel: 65, maxLevel: 80, damageClass: "B", minDamage: 5, maxDamage: 10}, {name: "Deathclaw", faction: "abomination", minLevel: 80, maxLevel: 100, damageClass: "B", minDamage: 5, maxDamage: 10}, ]; var NCREncounters = [ {name: "NCR Trooper", faction: "NCR", minLevel: 40, maxLevel: 70, damageClass: "B", minDamage: 5, maxDamage: 10}, {name: "NCR Ranger", faction: "NCR", minLevel: 50, maxLevel: 70, damageClass: "B", minDamage: 10, maxDamage: 20}, {name: "NCR Commander", faction: "NCR", minLevel: 60, maxLevel: 70, damageClass: "B", minDamage: 20, maxDamage: 30} ]; var HLNCREncounters = [ {name: "NCR Heavy Trooper", faction: "NCR", minLevel: 70, maxLevel: 100, damageClass: "B", minDamage: 30, maxDamage: 40}, {name: "NCR Veteran Ranger", faction: "NCR", minLevel: 80, maxLevel: 100, damageClass: "B", minDamage: 40, maxDamage: 50}, {name: "NCR General", faction: "NCR", minLevel: 90, maxLevel: 100, damageClass: "B", minDamage: 50, maxDamage: 60} ]; var BOSEncounters = [ //Reduntant, your not gonna encounter a low level Lost Hills BOS encounter {name: "BOS Paladin", faction: "BOS", minLevel: 60, maxLevel: 80, damageClass: "E", minDamage: 60, maxDamage: 80}, {name: "BOS Star Paladin", faction: "BOS", minLevel: 70, maxLevel: 90, damageClass: "E", minDamage: 80, maxDamage: 100}, {name: "BOS Head Paladin", faction: "BOS", minLevel: 80, maxLevel: 100, damageClass: "E", minDamage: 100, maxDamage: 120} ]; var HLBOSEncounters = [ {name: "BOS Paladin", faction: "BOS", minLevel: 60, maxLevel: 80, damageClass: "E", minDamage: 60, maxDamage: 80}, {name: "BOS Star Paladin", faction: "BOS", minLevel: 70, maxLevel: 90, damageClass: "E", minDamage: 80, maxDamage: 100}, {name: "BOS Head Paladin", faction: "BOS", minLevel: 80, maxLevel: 100, damageClass: "E", minDamage: 100, maxDamage: 120} ]; var settlerEncounters = [ {name: "John Settler", faction: "settler", minLevel: 1, maxLevel: 2, damageClass: "B", minDamage: 1, maxDamage: 2}, {name: "Settler", faction: "settler", minLevel: 2, maxLevel: 3, damageClass: "B", minDamage: 2, maxDamage: 3}, {name: "Settler Scavenger", faction: "settler", minLevel: 3, maxLevel: 4, damageClass: "B", minDamage: 3, maxDamage: 4}, ]; var HLsettlerEncounters = [ {name: "Settler Gaurdsman", faction: "settler", minLevel: 4, maxLevel: 5, damageClass: "B", minDamage: 4, maxDamage: 5}, {name: "Settler Enforcer", faction: "settler", minLevel: 5, maxLevel: 6, damageClass: "B", minDamage: 5, maxDamage: 6}, {name: "Settler Sheriff", faction: "settler", minLevel: 6, maxLevel: 7, damageClass: "B", minDamage: 6, maxDamage: 7}, ]; var legionEncounters = [ {name: "Legion Recruit", faction: "legion", minLevel: 30, maxLevel: 40, damageClass: "B", minDamage: 1, maxDamage: 2}, {name: "Legionary", faction: "legion", minLevel: 40, maxLevel: 50, damageClass: "B", minDamage: 2, maxDamage: 3}, {name: "Legion Vexillarius", faction: "legion", minLevel: 50, maxLevel: 60, damageClass: "B", minDamage: 3, maxDamage: 4}, ]; var HLlegionEncounters = [ {name: "Legion Decanus", faction: "legion", minLevel: 60, maxLevel: 70, damageClass: "B", minDamage: 4, maxDamage: 5}, {name: "Legion Centurion", faction: "legion", minLevel: 70, maxLevel: 80, damageClass: "B", minDamage: 5, maxDamage: 6}, {name: "Legion Praetorian", faction: "legion", minLevel: 80, maxLevel: 90, damageClass: "B", minDamage: 6, maxDamage: 7}, ];