diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js index 79f1f7341d450e40f7b577254e1006eb78190640..943a16eca071d28e53836eff817f3bcb974f961d 100644 --- a/src/SpecialForce/SpecialForce.js +++ b/src/SpecialForce/SpecialForce.js @@ -628,7 +628,7 @@ window.BadOutcome = function() { }; window.UnitText = function(input) { - "use strict"; const V = State.variables, S = V.SF.Squad; let r =``; + "use strict"; const V = State.variables, S = V.SF.Squad; //Sorted by case let appear = `is currently constructed in a haphazard fashion.`; let barracks = `Soldiers' cots are mixed in with weapons crates and ammunition.`; @@ -682,7 +682,7 @@ window.UnitText = function(input) { let crew = ``, engine2 = ``, skin = ``; let activate2 = `has been recommissioned for use by ${V.SF.Lower}. Currently, it `; - let barrels = `Miniguns and Gatling cannons line`, distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`; + let barrels = `Miniguns and Gatling cannons line`, distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`; let b4 = ``, c2 = ``, fuel = ``, GS_Speed = ``, countermeasures = ``, ammunition = ``, DFA = ``, autocannon = ``; let loc1 = `An unused science satellite has been purchased from an Old World nation. While currently useless, it holds potential to be a powerful tool.`; @@ -695,26 +695,26 @@ window.UnitText = function(input) { let armor8 = ``, actuator = ``, cannon1 = ``, heatsink = ``, ammo2 = ``; let missile = ``; -let a4 = `A cruise missile launch site has been constructed near the base of`; -let b2 = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`; -let c8 = ``, d1 = ``, e1 = ``, f1 = ``, g1 = ``, h1 = ``; + let a4 = `A cruise missile launch site has been constructed near the base of`; + let b2 = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`; + let c8 = ``, d1 = ``, e1 = ``, f1 = ``, g1 = ``, h1 = ``; -let recom1 = `has been recommissioned from the Old World for ${V.SF.Lower}. It`; -let jets = `Formerly mothballed strike jets`, loc2 = ``, radar = ``, AAG = ``; -let prop = ``, torp = ``, armor9 = ``, power1 = ``, scramble1 = ``; + let recom1 = `has been recommissioned from the Old World for ${V.SF.Lower}. It`; + let jets = `Formerly mothballed strike jets`, loc2 = ``, radar = ``, AAG = ``; + let prop = ``, torp = ``, armor9 = ``, power1 = ``, scramble1 = ``; -let recom = `has been recommissioned from the old world, and`; -let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`; -let reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``; -let control = ``, missiles = ``; + let recom = `has been recommissioned from the old world, and`; + let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`; + let reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``; + let control = ``, missiles = ``; -let recom2 = `; has been recommissioned for use by ${V.SF.Lower}. It`; -let tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``; -let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; + let recom2 = `; has been recommissioned for use by ${V.SF.Lower}. It`; + let tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``; + let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; switch(input) { case 'firebase': - if (S.Firebase >= 0) { r += `<br>''Firebase:''`; + if (S.Firebase >= 0) { const text0 = `<br>''Firebase:''`; if (S.Firebase >= 1) appear = `has had some organization put into it.`; barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`; garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`; drone = `.`; if (V.terrain === "oceanic") garage += ` for inter-arcology travel`; if (S.Firebase >= 2) barracks = `A barracks has been constructed near the armory, allowing soldiers a quieter place to sleep and store their personal spoils.`; drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`; if (S.Firebase >= 3) appear = `has become more permanent.`; barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`; @@ -728,17 +728,26 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Firebase >= 8) { appear = `has become a fully fledged military base.`; comms = `A Free City-wide communication network for ${V.SF.Lower} has been constructed to facilitate faster responses and efficient monitoring of the surrounding area.`; } if (S.Firebase >= 9) training = `A high-tech killhouse has been constructed to aid in soldier training.`; if (S.Firebase >= 10) artillery = `Railgun artillery batteries are set around the base of the arcology, capable of accurately destroying enemies an absurd distance away.`; - return `${r} The firebase ${appear} ${barracks} ${comms} ${training} ${slave} ${common} ${garage}${drone} ${hangar} ${launch} ${artillery}`; - } break; - case 'troop': r += `<br> The large dormitories are`; - if (S.Troops < 100) {return `${r} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future`;} - else if (S.Troops < 400) {return `${r} lightly occupied, with ${Quantity} starting to spread out across them`;} - else if (S.Troops < 800) {return `${r} moderately occupied, though ${Quantity} residing within have a considerable amount of extra room`;} - else if (S.Troops < 1500) {return `${r} well-occupied, and ${Quantity} residing within have started to form small cliques based on section and row`;} - else {return `${r} near capacity, and ${Quantity} often barter their personal loot, whether it be monetary or human, for the choicest bunks`;} + return `${text0} The firebase ${appear} ${barracks} ${comms} ${training} ${slave} ${common} ${garage}${drone} ${hangar} ${launch} ${artillery}`; + } + break; + case 'troop': + if (S.Troops > 0) { const text1 = `<br> The large dormitories are`; + if (S.Troops < 100) { + return `${text1} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future.`; + } else if (S.Troops < 400) { + return `${text1} lightly occupied, with ${Quantity} starting to spread out across them.`; + } else if (S.Troops < 800) { + return `${text1} moderately occupied, though ${Quantity} residing within have a considerable amount of extra room.`; + } else if (S.Troops < 1500) { + return `${text1} well-occupied, and ${Quantity} residing within have started to form small cliques based on section and row.`; + } else { + return `${text1} near capacity, and ${Quantity} often barter their personal loot, whether it be monetary or human, for the choicest bunks.`; + } + } break; case 'armoury': - if (S.Armoury >= 0) { r += `<br><br>''Armory:''<br>`; radio = `Radios have been wired into the soldiers helmets`; helmets = `.`; + if (S.Armoury >= 0) { const text2 = `<br><br>''Armory:''<br>`; radio = `Radios have been wired into the soldiers helmets`; helmets = `.`; if (S.Armoury >= 2) helmets = ` and a HUD has been integrated into the soldier's eyewear.`; if (S.Armoury >= 3) ammo0 = `Tactical vests have been provided, allowing soldiers to carry additional ammo.`; if (S.Armoury >= 4) armor1 = `The body armor is a newer variant, able to stop small arms fire and protect against shrapnel.`; @@ -748,11 +757,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Armoury >= 8) helmets = `and a HUD and camera display have been integrated into soldiers' eyewear, enabling accurate aim around corners or from behind cover`; if (S.Armoury >= 9) exo = `An exosuit has been developed to reduce the amount of weight soldiers carry, increase lifting strength, and move faster in combat.`; if (S.Armoury >= 10) weapons = `Cutting-edge weaponry is available to ${V.SF.Lower}, far outpacing the ability of rival mercenary outfits.`; - return `${r} The armory holds soldiers' weapons and gear while not in training or combat. ${weapons} ${special} ${armor1} ${radio}${helmets} ${ammo0} ${uniforms} ${exo}`; + return `${text2} The armory holds soldiers' weapons and gear while not in training or combat. ${weapons} ${special} ${armor1} ${radio}${helmets} ${ammo0} ${uniforms} ${exo}`; } break; case 'drugs': - if (S.Drugs >= 0) { r += `<br><br>''Drug Lab:''`; amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`; + if (S.Drugs >= 0) { const text3 = `<br><br>''Drug Lab:''`; amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`; if (S.Drugs >= 2) phen = `Phencyclidine has been added to the cocktail at a low dosage as a dissociative psychotropic for soldiers in battle to introduce feelings of detachment, strength and invincibility, and aggression. Some side-effects reduce the tolerable dosage before soldiers go on uncontrollable violent outbreaks.`; if (S.Drugs >= 3) steroid = `Testosterone is being produced for soldiers in training as a natural muscle growth stimulant and to invoke aggression.`; if (S.Drugs >= 4) downer = `Zaleplon is being produced as a downer to counteract the battle cocktail and encourage rest before combat.`; @@ -762,10 +771,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Drugs >= 8) amphet = `Diphenylmethylsulfinylacetamide has been added to the cocktail to counteract the effects of sleep deprivation and promote alertness.`; if (S.Drugs >= 9) stimpack = `A stimpack of the battle cocktail is being given to soldiers in battle to take if the original dose wears off before the battle is over.`; if (S.Drugs >= 10) stabilizer = `A stabilizer has been added to the battle cocktail that helps tie effects together while reducing side-effects, leading to an effectively safe supersoldier drug.`; - return `${r} A drug lab has been established to increase the effectiveness of ${V.SF.Lower}'s soldiers. Many of these chemicals are mixed into a single 'battle cocktail' to be taken before combat. ${amphet} ${phen} ${concen} ${steroid} ${downer} ${stimpack} ${stabilizer}`; - } break; + return `${text3} A drug lab has been established to increase the effectiveness of ${V.SF.Lower}'s soldiers. Many of these chemicals are mixed into a single 'battle cocktail' to be taken before combat. ${amphet} ${phen} ${concen} ${steroid} ${downer} ${stimpack} ${stabilizer}`; + } + break; case 'UAV': - if(S.Firebase >= 2 && S.Drones >= 1) { r += `<br><br>''Drone Bay:''`; + if(S.Firebase >= 2 && S.Drones >= 1) { const text4 = `<br><br>''Drone Bay:''`; if (S.Drones >= 2) a = `equipped with missiles are resting on one side of the drone bay`; b = `; as well as destroying the occasional target.`; if (S.Drones >= 3) c = `A fleet of`; d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`; if (S.Drones >= 4) d = `combat drones take up the rest of the space in the drone bay. They have a`; e = `small automatic rifle`; f = `mounted to the underside.`; @@ -775,10 +785,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Drones >= 8) j = `The drone control signal has been boosted and encrypted, giving the drones a greater range and protecting against electronic warfare.`; if (S.Drones >= 9) e = `light machine gun`; if (S.Drones >= 10) k = `A drone-to-drone network has been installed, allowing drones to swarm, maneuver, and attack targets autonomously.`; - return `${r} Surveillance drones ${a}. During combat, they supply aerial intel to commanders and act as the communications network for ground forces${b} ${c} ${d} ${e} ${f} ${g} ${h} ${i} ${j} ${k}`; - } break; + return `${text4} Surveillance drones ${a}. During combat, they supply aerial intel to commanders and act as the communications network for ground forces${b} ${c} ${d} ${e} ${f} ${g} ${h} ${i} ${j} ${k}`; + } + break; case 'AV': - if (S.AV >= 1) { r += `<br> ''Assault:''`; + if (S.AV >= 1) { const text5 = `<br> ''Assault:''`; if (S.AV >= 2) engine1 = `The engine1 has been overhauled, allowing much faster maneuvering around the battlefield.`; activate = ``; mechanics = ``; if (S.AV >= 3) armor2 = `A composite ceramic armor has replaced the original, offering much greater protection from attacks.`; if (S.AV >= 4) ammo1 = `The tanks have been outfitted with additional types of ammo for situational use.`; @@ -788,10 +799,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AV >= 8) armor22 = `A reactive armor system has been added, giving the tank an additional, if temporary, layer of protection.`; if (S.AV >= 9) turret = `The turret has been massively redesigned, lowering the tank profile and increasing the efficiency of the mechanisms within.`; if (S.AV >= 10) MG = `140 mm main gun can quash anything even the greatest Old World nations could muster.`; - return `${r} A fleet of main battle tanks ${activate} are parked in the garage${mechanics}. ${turret} The ${MG} ${ammo1} ${mg} ${fireC0} ${fireC2} ${fireC3} ${fireC1} ${engine1} ${armor2} ${armor22}`; - } break; + return `${text5} A fleet of main battle tanks ${activate} are parked in the garage${mechanics}. ${turret} The ${MG} ${ammo1} ${mg} ${fireC0} ${fireC2} ${fireC3} ${fireC1} ${engine1} ${armor2} ${armor22}`; + } + break; case 'TV': - if (S.TV >= 1) { r += `<br> ''Transport:''`; + if (S.TV >= 1) { const text6 = `<br> ''Transport:''`; if (S.TV >= 2) engine3 = `${e0} overhauled, allowing for higher mobility.`; C = ``; B = ``; if (S.TV >= 3) armor3 = `Composite armor has been bolted to the exterior, increasing the survivability of an explosive attack for the crew and passengers.`; if (S.TV >= 4) tires = `The tires have been replaced with a much more durable version that can support a heavier vehicle.`; @@ -801,11 +813,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.TV >= 8) pod2 = `and an anti-aircraft missile pod have been installed on either side of the turret.`; if (S.TV >= 9) squad = `two squads`; armor3 = ``; m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`; if (S.TV >= 10) engine3 = `${e0} replaced with the newest model, allowing the vehicle to get in and out of the conflict extremely quickly.`; - return `A fleet of infantry fighting vehicles ${B} are parked in the garage${C}. The IFVs can carry ${squad} of 6 to a firezone. The ${G1} mm autocannon supports infantry ${G2}. ${pod1} ${pod2} ${engine3} ${armor3} ${tires} ${m1} ${m2}`; + return `${text6} A fleet of infantry fighting vehicles ${B} are parked in the garage${C}. The IFVs can carry ${squad} of 6 to a firezone. The ${G1} mm autocannon supports infantry ${G2}. ${pod1} ${pod2} ${engine3} ${armor3} ${tires} ${m1} ${m2}`; } break; case 'PGT': - if (S.PGT >= 1) {r += `<br> ''Prototype Goliath Tank:''`; + if (S.PGT >= 1) { const text7 = `<br> ''Prototype Goliath Tank:''`; if (S.PGT >= 2) c1 = `rests in`; b1 = ``; engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`; if (S.PGT >= 3) gun0 = `a railgun capable of`; gun1 = `firing steel slugs`; gun2 = `through one tank and into another`; if (S.PGT >= 4) armor6 = `reinforced, increasing survivability for the crew inside.`; armor5 = `The armor has been`; @@ -815,10 +827,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.PGT >= 8) armor6 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor5-piercing tank rounds.`; if (S.PGT >= 9) gun1 = `firing guided projectiles`; if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`; - return `A prototype Goliath tank ${b1}${c1} its own garage housing built outside the arcology. The massive bulk is spread out over 8 tracks, two for each corner of the tank${engines4}. The turret is equipped with ${gun0} ${gun1} ${gun2}. ${cannon} ${armor5} ${armor6} ${laser} ${PGTframe}`; - } break; + return `${text7} A prototype Goliath tank ${b1}${c1} its own garage housing built outside the arcology. The massive bulk is spread out over 8 tracks, two for each corner of the tank${engines4}. The turret is equipped with ${gun0} ${gun1} ${gun2}. ${cannon} ${armor5} ${armor6} ${laser} ${PGTframe}`; + } + break; case 'AA': - if (S.AA >= 1) { r += `<br> ''Assault:''`; + if (S.AA >= 1) { const text8 = `<br> ''Assault:''`; if (S.AA >= 2) W1 = `armed`; W2 = ` and air-to-air missiles,`; W3 = `a combination that can defend the arcology from enemy aircraft, as well as`; support = ` support ground troops`; if (S.AA >= 3) engines = `The engines have been tuned, allowing faster flight with greater acceleration.`; if (S.AA >= 4) TAI = `An advanced targeting AI has been installed to handle all control of weapons, allowing much more efficient use of ammunition and anti-countermeasure targeting.`; @@ -828,10 +841,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AA >= 8) stealth = `The old skin has been replaced with a radar-absorbent material, making the aircraft difficult to pick up on radar.`; if (S.AA >= 9) scramble = `The VTOLs can scramble to react to any threat in under three minutes.`; if (S.AA >= 10) PAI = `A piloting AI has been installed, allowing the VTOLs to perform impossible maneuvers that cannot be done by a human pilot. This removes the need for a human in the aircraft altogether.`; - return `${r} ${group}. Several of the landing pads around ${V.arcologies[0].name} host groups of four fighters, ready to defend the arcology. ${scramble} The attack VTOL are currently ${W1} with a Gatling cannon${W2} ${W3}${support}. ${TAI} ${PAI} ${engines} ${lock} ${stealth}`; - } break; + return `${text8} ${group}. Several of the landing pads around ${V.arcologies[0].name} host groups of four fighters, ready to defend the arcology. ${scramble} The attack VTOL are currently ${W1} with a Gatling cannon${W2} ${W3}${support}. ${TAI} ${PAI} ${engines} ${lock} ${stealth}`; + } + break; case 'TA': - if (S.TA >= 1) { r += `<br> ''Transport:''`; + if (S.TA >= 1) { const text9 = `<br> ''Transport:''`; if (S.TA >= 2) engines0 = `The tiltrotor engines have been replaced with a more powerful engine, allowing faster travel times.`; if (S.TA >= 3) counter = `Multispectrum countermeasures have been added to protect against guided missiles.`; if (S.TA >= 4) miniguns = `Mounted miniguns have been installed to cover soldiers disembarking in dangerous areas.`; @@ -841,10 +855,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.TA >= 8) capacity = `large platoon or 20`; engines01 = `Further tweaks to the engine allow for greater lifting capacity.`; if (S.TA >= 9) Radar = `Radar-absorbent materials have replaced the old skin, making it difficult to pick up the VTOL on radar.`; if (S.TA >= 10) type = `tiltjet`; engines01 = ``; engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`; - return `${r} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`; + return `${text9} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`; } break; case 'SP': - if (S.SpacePlane >= 1) { r += `<br> ''Spaceplane:''`; + if (S.SpacePlane >= 1) { const text10 = `<br> ''Spaceplane:''`; if (S.SpacePlane >= 2) b5 = ``; shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`; if (S.SpacePlane >= 3) engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 18`; if (S.SpacePlane >= 4) camera = `A state-of-the-art camera has been installed in the underbelly that takes incredibly high resolution photos, but requires the frictionless environment of space to focus.`; @@ -854,10 +868,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.SpacePlane >= 8) crew = `Increased the crew comfort and life support systems to increase operational time.`; if (S.SpacePlane >= 9) skin = `Replaced the underbelly skin with a chameleon kit, matching the color to the sky above it.`; if (S.SpacePlane >= 10) engine20 = `experimental scramjet engines in the atmosphere that can reach Mach 15`; engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`; - return `${r} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`; - } break; + return `${text10} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`; + } + break; case 'GunS': - if(S.GunS >= 1) { r += `<br> ''Gunship:''`; + if(S.GunS >= 1) { const text11 = `<br> ''Gunship:''`; if (S.GunS >= 2) b4 = `Infrared sensors have been added for the gunners to better pick targets.`; activate2 = ``; if (S.GunS >= 3) c2 = `The underside of the aircraft has been better armored against small-arms fire`; countermeasures = `.`; if (S.GunS >= 4) fuel = `Larger fuel tanks have been installed in the wings and fuselage, allowing the gunship to provide aerial support for longer periods before refueling.`; @@ -867,10 +882,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.GunS >= 8) b4 = `Upgraded multi-spectrum sensors can clearly depict targets even with IR shielding.`; if (S.GunS >= 9) ammunition = `The ammunition storage has been increased, only slightly depriving loaders of a place to sit.`; if (S.GunS >= 10) DFA = `; both light and heavy vehicles, and most enemy cover from above`; autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`; - return `${r} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${GS_Speed} ${c2}${countermeasures} ${fuel}`; - } break; + return `${text11} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${GS_Speed} ${c2}${countermeasures} ${fuel}`; + } + break; case 'sat': - if (S.Satellite.lv >= 1) { r += `<br> ''Satellite:''`; + if (S.Satellite.lv >= 1) { const text12 = `<br> ''Satellite:''`; if (S.Satellite.lv >= 2) if (V.SF.Squad.Satellite.InOrbit < 1) loc1 = `The satellite is being worked on in the Launch Bay.`; else loc1 = `The satellite is in geosynchronous orbit, far above the arcology.`; gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`; if (S.Satellite.lv >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; @@ -881,10 +897,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Satellite.lv >= 8) reactor = `A small, efficient nuclear reactor has been installed to continue generating energy while in the Earth's shadow.`; if (S.Satellite.lv >= 9) lens = `A higher quality and adjustable lens has been installed on the laser, allowing scalpel precision on armor or wide-area blasts on unarmored targets.`; if (S.Satellite.lv >= 10) kin = `A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts.`; - return `${r} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`; + return `${text12} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`; } break; case 'GR': - if (S.GiantRobot >= 1) { r += `<br> ''Giant Robot:''`; + if (S.GiantRobot >= 1) { const text13 = `<br> ''Giant Robot:''`; if (S.GiantRobot >= 2) loc = ``; armor8 = `Armor plating has been mounted over the majority of the robot.`; if (S.GiantRobot >= 3) power = `The robot is now powered by an umbilical cable system instead of bulky and short-lived batteries.`; if (S.GiantRobot >= 4) knife = `a 25 meter plasma sword. The cutting edge uses plasma to melt and cut through targets, reducing the strain on the sword.`; @@ -894,10 +910,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.GiantRobot >= 8) armor8 = ``; actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`; if (S.GiantRobot >= 9) ammo2 = `; with spare ammunition drums kept along the robot's waist.`; if (S.GiantRobot >= 10) missile = `Missile pods have been mounted on the shoulders.`; - return `${r} A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor8} ${actuator} ${heatsink} The main armament is ${knife} ${cannon1}${ammo2} ${missile}`; + return `${text13} A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor8} ${actuator} ${heatsink} The main armament is ${knife} ${cannon1}${ammo2} ${missile}`; } break; case 'ms': - if (S.MissileSilo >= 1) { r += `<br> ''Cruise Missile:''`; + if (S.MissileSilo >= 1) { const text14 = `<br> ''Cruise Missile:''`; if (S.MissileSilo >= 2) b2 = `a modern missile`; c8 = `; tipped with a conventional warhead`; if (S.MissileSilo >= 3) d1 = `The launch systems have been overhauled, allowing a launch within seconds of an attack order being given.`; if (S.MissileSilo >= 4) e1 = `The missile engines have been tweaked, giving them a greater range.`; @@ -907,10 +923,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.MissileSilo >= 8) g1 = `The ability to pick new targets should the original be lost has been added.`; if (S.MissileSilo >= 9) h1 = `The missile now uses its remaining fuel to create a thermobaric explosion, massively increasing explosive power.`; if (S.MissileSilo >= 10) c8 = ` that can be tipped with either a conventional or nuclear warhead`; - return `${r} ${a4} the arcology. The current missile armament is ${b2}${c8}. ${d1} ${e1} ${f1} ${g1} ${h1}`; - } break; + return `${text14} ${a4} the arcology. The current missile armament is ${b2}${c8}. ${d1} ${e1} ${f1} ${g1} ${h1}`; + } + break; case 'AC': - if (S.AircraftCarrier >= 1) { r += `<br> ''Aircraft Carrier:''`; + if (S.AircraftCarrier >= 1) { const text15 = `<br> ''Aircraft Carrier:''`; if (V.week % 6 === 0) loc2 = `moored to the pier in the Naval Yard`; else loc2 = `patrolling the waters near ${V.arcologies[0].name}`; if (S.AircraftCarrier >= 2) radar = `The island's radar and comms have been improved.`; recom1 = ``; if (S.AircraftCarrier >= 3) AAG = `The antiair guns have been updated to automatically track and predict enemy aircraft movement.`; @@ -921,10 +938,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AircraftCarrier >= 8) power1 = `The power plant has been converted to provide nuclear power.`; if (S.AircraftCarrier >= 9) scramble1 = `The catapult has been converted to an electromagnetic launch system, halving the time it takes to scramble1 jets.`; if (S.AircraftCarrier >= 10) jets = `Attack VTOL from the converted for carrier capability`; - return `${r} An aircraft carrier ${recom1} is ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`; - } break; + return `${text15} An aircraft carrier ${recom1} is ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`; + } + break; case 'Sub': - if (S.Sub >= 1) { r += `<br> ''Submarine:''`; + if (S.Sub >= 1) { const text16 = `<br> ''Submarine:''`; if (S.Sub >= 2) recom = ``; reactor0 = `A nuclear reactor provides power`; reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`; if (S.Sub >= 3) reactor1 = ` and an oxygen generator pulls Oâ‚‚ from the surrounding seawater, allowing the submarine to remain underwater for months if necessary.`; if (S.Sub >= 4) cal = `Calibration of the propulsion systems has reduced the telltale hum of a moving sub to a whisper.`; @@ -934,10 +952,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Sub >= 8) control = `The control room computers have been upgraded to automate many conn duties.`; if (S.Sub >= 9) torpedoes = `and launch more agile torpedoes.`; if (S.Sub >= 10) missiles = `The submarine has been outfitted with several cruise missiles to attack land or sea-based targets.`; - return `${r} An attack submarine ${recom} is moored to the pier of the Naval Yard. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`; - } break; + return `${text16} An attack submarine ${recom} is moored to the pier of the Naval Yard. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`; + } + break; case 'HAT': - if (S.HAT >= 1) {r += `<br> ''Amphibious Transport:''`; + if (S.HAT >= 1) { const text17 = `<br> ''Amphibious Transport:''`; if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`; recom2 = `;`; if (S.HAT >= 3) guns = `A minigun`; guns2 = `has been mounted on the front corners of the craft to defend against attackers.`; if (S.HAT >= 4) fans = `The turbines powering the rear fans`; speed = `acceleration and speed.`; turbines = `have been replaced with a more powerful version, allowing greater`; @@ -947,8 +966,9 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.HAT >= 8) ramps = `The loading ramps have been improved, allowing for faster unloading.`; if (S.HAT >= 9) HATframe = `The frame has been widened and reinforced, allowing for more space on the deck.`; if (S.HAT >= 10) loadout = `An experimental loadout sacrifices all carrying capacity to instead act as a floating gun platform by mounting several rotary autocannons the deck, should the need arise.`; - return `${r} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`; - } break; + return `${text17} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`; + } + break; } /*if (V.SF.Facility.Toggle > 0 && V.SF.Facility.Active > 0) { r += `<br><br>''${V.SF.Facility.Caps}:''`; if (passage() === "Firebase") {