diff --git a/devNotes/twine JS.txt b/devNotes/twine JS.txt index cf6567723a2df392602120b80d607a877bfda2e2..5eb0ca58ae4533588d2f7c273a07e757f386f5e8 100644 --- a/devNotes/twine JS.txt +++ b/devNotes/twine JS.txt @@ -4179,6 +4179,27 @@ window.induceLactation = function induceLactation(slave) { return r; } +window.ResearchLabStockPile = function() { + return `__Stockpile__ + Prosthetics interfaces: <<print commaNum($stockpile.basicPLimbInterface+ + $stockpile.advPLimbInterface)>> + Basic : $stockpile.basicPLimbInterface + Advanced: $stockpile.advPLimbInterface + Limbs: <<print commaNum($stockpile.basicPLimb+$stockpile.advSexPLimb+ + $stockpile.advGracePLimb+$stockpile.advCombatPLimb+$stockpile.cyberneticPLimb)>> + Basic: $stockpile.basicPLimb + Sex: $stockpile.advSexPLimb + Beauty: $stockpile.advGracePLimb + Combat: $stockpile.advCombatPLimb + Cybernetic: $stockpile.cyberneticPLimb + Implants: <<print commaNum($stockpile.ocularImplant+$stockpile.cochlearImplant + +$stockpile.erectileImplant)>> + Ocular: $stockpile.ocularImplant + Cochlear: $stockpile.cochlearImplant + // Erectile: $stockpile.erectileImplant + Electrolarynx: $stockpile.electrolarynx` +} + /*:: Span Macro JS [script]*/ /* @@ -34720,21 +34741,21 @@ window.GenerateNewSlave = (function(){ /*SecForceEX JS*/ window.SFC = function() { const V = State.variables; - if (V.SFTradeShow.CanAttend === -1) {return `The Colonel`;} + if (V.SF.MercCon.CanAttend === -1) {return `The Colonel`;} else { if (V.SF.Facility.LCActive > 0) {return `Lieutenant Colonel <<= SlaveFullName(V.SF.Facility.LC)>>`;} else {return `a designated soldier`;}} }; window.SFCR = function() { - const V = State.variables, C = V.SFColonel; + const V = State.variables, C = V.SF.Colonel; if (C.Status <= 19) {return `boss`;} else if (C.Status <= 39) {return `friend`;} else {return `fuckbuddy`;} }; window.TroopDec = function() { - const V = State.variables, commom = "the <<print commaNum($SFUnit.Troops)>> members of $SF.Lower", S = V.SFUnit; + const V = State.variables, commom = "the <<print commaNum($SF.Squad.Troops)>> members of $SF.Lower", S = V.SF.Squad; if (S.Troops < 100) {return `sparsely occupied, ${commom} 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 `lightly occupied, with ${commom} starting to spread out across them`;} else if (S.Troops < 800) {return `moderately occupied, though ${commom} residing within have a considerable amount of extra room`;} @@ -34759,7 +34780,7 @@ window.HSM = function() { }; window.Count = function() { - const V = State.variables, T = State.temporary, C = Math.clamp, S = V.SFUnit, E = V.economy; + const V = State.variables, T = State.temporary, C = Math.clamp, S = V.SF.Squad, E = V.economy; T.SFF = V.SF.Facility.Active; T.SFFU = 1,T.SFF = C(T.SFF, 0, T.SFFU); T.FU = 10,S.Firebase = C(S.Firebase, 0, T.FU); @@ -34775,23 +34796,23 @@ window.Count = function() { else {T.PGTU = 8,T.SPU = 8,T.GunSU = 8,T.SatU = 8,T.GRU = 8,T.MSU = 8,T.ACU = 8,T.SubU = 8,T.HATU = 8;} S.PGT = C(S.PGT, 0, T.PGTU); S.SpacePlane = C(S.SpacePlane, 0, T.SPU), S.GunS = C(S.GunS, 0, T.GunSU); - S.Satellite = C(S.Satellite, 0, T.SatU), S.GiantRobot = C(S.GiantRobot, 0, T.GRU), S.MissileSilo = C(S.MissileSilo, 0, T.MSU); + S.Satellite.lv = C(S.Satellite.lv, 0, T.SatU), S.GiantRobot = C(S.GiantRobot, 0, T.GRU), S.MissileSilo = C(S.MissileSilo, 0, T.MSU); S.AircraftCarrier = C(S.AircraftCarrier, 0, T.ACU),S.Sub = C(S.Sub, 0, T.SubU),S.HAT = C(S.HAT, 0, T.HATU); T.GU = T.AVU+T.TVU+T.PGTU, T.G = S.AV+S.TV+S.PGT; T.H = S.AA+S.TA+S.SpacePlane+S.GunS, T.HU = T.AAU+T.TAU+T.SPU+T.GunSU; - T.LBU = T.SatU + T.MSU, T.LB = S.Satellite + S.MissileSilo; + T.LBU = T.SatU + T.MSU, T.LB = S.Satellite.lv + S.MissileSilo; T.Base = S.Firebase + S.Armoury + S.Drugs + S.Drones + T.H; T.max = T.FU + T.AU + T.DrugsU + T.DU + T.HU; if (V.SF.Facility.Toggle > 0) { T.Base += T.SFF, T.max += T.SFFU; } - + if (V.terrain !== "oceanic") { T.LBU += T.GRU, T.LB += S.GiantRobot, T.Base += T.G, T.max += T.GU; - T.max += T.LBU, T.Base += T.LB;} + T.max += T.LBU, T.Base += T.LB;} if (V.terrain === "oceanic" || V.terrain === "marine") { T.NY = S.AircraftCarrier + S.Sub + S.HAT, T.Base += T.NY; T.NYU = T.ACU + T.SubU + T.HATU, T.max += T.NYU;} - V.SF.Units = T.Base, V.SF.Units = C(V.SF.Units, 0, T.max); + V.SF.Size = T.Base, V.SF.Size = C(V.SF.Size, 0, T.max); if (E > 100) {T.Env = 4;} else if (E > 67) {T.Env = 3;} else {T.Env = 2;} @@ -34801,7 +34822,7 @@ window.Count = function() { }; window.Firebase = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var appear = `is currently constructed in a haphazard fashion.`, barracks = `Soldiers' cots are mixed in with weapons crates and ammunition.`, slave = `Cages for processing slaves lie off to one side,`, common = `and in the center is a common area with tables for soldiers to gather around for meals or rowdy conversations.`, garage = ``, drone = ``, hangar = ``, launch = ``, artillery = ``, comms = ``, training = ``; 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 = `.`; @@ -34824,7 +34845,7 @@ window.Firebase = function() { }; window.Armoury = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var weapons = `The weapons are mostly worn rifles that have already seen years of service before $SF.Lower acquired them.`, armor = `The body armor is enough to stop smaller calibers, but nothing serious.`, comms = ``, helmets = ``, ammo = ``, uniforms = ``, special = ``, exo = ``; if (S.Armoury >= 1) comms = `Radios have been wired into the soldiers helmets`, helmets = `.`; @@ -34842,9 +34863,9 @@ window.Armoury = function() { }; window.Drugs = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var amphet = ``, phen = ``, steroid = ``, downer = ``, concen = ``, stimpack = ``, stabilizer = ``; - + if (S.Drugs >= 1) 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.`; @@ -34860,7 +34881,7 @@ window.Drugs = function() { }; window.LUAV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `have been recommissioned for use by $SF.Lower`, b = `.`, c = ``, d = ``, e = ``, f = ``, g = ``, h = ``, i = ``, j = ``, k = ``; 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.`; @@ -34877,7 +34898,7 @@ window.LUAV = function() { }; window.AV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var b = `has been recommissioned for use by $SF.Lower. They`, c = `; mechanics are methodically checking the recent purchases for battle-readiness`, MG = `120 mm main gun is enough to handle the majority of opponents around the Free Cities.`, engine = ``, armor = ``, armor2 = ``, ammo = ``, mg = ``, fireC0 = ``, fireC1 = ``, fireC2 = ``, fireC3 = ``, turret = ``; if (S.AV >= 2) engine = `The engine has been overhauled, allowing much faster maneuvering around the battlefield.`, b = ``, c = ``; @@ -34894,7 +34915,7 @@ window.AV = function() { }; window.TV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var B = `has been recommissioned for use by $SF.Lower. They`, C = `; mechanics are giving the new purchases a final tuneup`, squad = `a squad`, G1 = `20`, G2 = `in a firefight`, e0 = `The engine has been`, engine = ``, armor = ``, tires = ``, m1 = ``, m2 = ``, pod1 = ``, pod2 = ``; if (S.TV >= 2) engine = `${e0} overhauled, allowing for higher mobility.`, C = ``, B = ``; @@ -34911,7 +34932,7 @@ window.TV = function() { }; window.PGT = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var b = `has been sold to $SF.Lower through back channels to support a failing Old World nation. The tank is so large it cannot fit inside the garage, and has`, c = ``, engines = `. Two engines power the left and right sides of the tank separately, leaving it underpowered and slow`, gun0 = ``, gun1 = ``, gun2 = `an undersized main gun and makeshift firing system from a standard battle tank`, armor1 = ``, armor0 = ``, cannon = ``, laser = ``, PGTframe = ``; if (S.PGT >= 2) c = `rests in`, b = ``, engines = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`; @@ -34928,7 +34949,7 @@ window.PGT = function() { }; window.AA = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var W1 = `only armed`, W2 = `,`, W3 = `a poor weapon against flying targets, but enough to handle ground forces`, group = `A small group of attack VTOL have been recommissioned for use by $SF.Lower, enough to make up a squadron`, engines = ``, TAI = ``, lock = ``, support = ``, stealth = ``, scramble = ``, PAI = ``; 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`; @@ -34945,7 +34966,7 @@ window.AA = function() { }; window.TA = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var Num = `number`, type = `tiltrotor`, capacity = `small platoon or 15`, engines = ``, engines2 = ``, Radar = ``, Armor = ``, landing = ``, miniguns = ``, counter = ``; if (S.TA >= 2) engines = `The tiltrotor engines have been replaced with a more powerful engine, allowing faster travel times.`; @@ -34962,7 +34983,7 @@ window.TA = function() { }; window.SP = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var engine = `ramjet engines in the atmosphere that can reach Mach 10`, b = `has been purchased from an insolvent Old World nation. It `, shield = ``, camera = ``, efficiency = ``, camera2 = ``, drag = ``, crew = ``, engine2 = ``, skin = ``; if (S.SpacePlane >= 2) b = ``, shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`; @@ -34979,7 +35000,7 @@ window.SP = function() { }; window.GunS = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `has been recommissioned for use by $SF.Lower. Currently, it `, b = ``, c = ``, d = ``, e = `Miniguns and Gatling cannons line`, f = `, though the distance to ground targets renders the smaller calibers somewhat less useful`, g = ``, h = ``, i = ``, j = ``, k = ``; if (S.GunS >= 2) b = `Infrared sensors have been added for the gunners to better pick targets.`, a = ``; @@ -34996,26 +35017,26 @@ window.GunS = function() { }; window.Sat = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var loc = `An unused science satellite has been purchased from an Old World nation. While currently useless, it holds potential to be a powerful tool.`, gyro = ``, telemetry = ``, thrusters = ``, solar = ``, surviv = ``, laser = ``, heat = ``, reactor = ``, lens = ``, kin = ``; - if (S.Satellite >= 2) { - if (V.SatLaunched < 1) {loc = `The satellite is being worked on in the Launch Bay.`;} else {loc = `The satellite is in geosynchronous orbit, far above the arcology.`;} + if (S.Satellite.lv >= 2) { + if (V.SF.Squad.Satellite.InOrbit < 1) {loc = `The satellite is being worked on in the Launch Bay.`;} else {loc = `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 >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; - if (S.Satellite >= 4) thrusters = `Thrusters have been installed to control satellite attitude and orbit.`; - if (S.Satellite >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`, surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`; - if (S.Satellite >= 6) laser = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`, heat = ` while generating a large amount of heat.`; - if (S.Satellite >= 7) heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`; - if (S.Satellite >= 8) reactor = `A small, efficient nuclear reactor has been installed to continue generating energy while in the Earth's shadow.`; - if (S.Satellite >= 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 >= 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.`; + if (S.Satellite.lv >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; + if (S.Satellite.lv >= 4) thrusters = `Thrusters have been installed to control satellite attitude and orbit.`; + if (S.Satellite.lv >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`, surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`; + if (S.Satellite.lv >= 6) laser = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`, heat = ` while generating a large amount of heat.`; + if (S.Satellite.lv >= 7) heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`; + 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 `${loc} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser}${heat} ${lens} ${kin}`; }; window.GR = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var loc = `has been purchased from a crumbling Old World nation. It`, power = `Large batteries mounted in oversized shoulders power the robot for up to ten minutes of use, though they make for large targets.`, knife = `simply a 8.5 meter long knife, though additional weapons are under development.`, armor = ``, actuator = ``, cannon = ``, heatsink = ``, ammo = ``, missile = ``; if (S.GiantRobot >= 2) loc = ``, armor = `Armor plating has been mounted over the majority of the robot.`; @@ -35032,7 +35053,7 @@ window.GR = function() { }; window.ms = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `A cruise missile launch site has been constructed near the base of`, b = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`, c = ``, d = ``, e = ``, f = ``, g = ``, h = ``; if (S.MissileSilo >= 2) b = `a modern missile`, c = `, tipped with a conventional warhead`; @@ -35049,7 +35070,7 @@ window.ms = function() { }; window.AC = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `has been recommisioned from the Old World for $SF.Lower. It`, jets = `Formerly mothballed strike jets`, loc = ``, radar = ``, AA = ``, prop = ``, torp = ``, armor = ``, power = ``, scramble = ``; if (V.week % 6 === 0) { loc = `moored to the pier in the Naval Yard`; } else { loc = `patrolling the waters near $arcologies[0].name`; } @@ -35067,7 +35088,7 @@ window.AC = function() { }; window.Sub = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `has been recommissioned from the old world, and`, reactor = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`, reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``, control = ``, missiles = ``; if (S.Sub >= 2) recom = ``, reactor = `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.`; @@ -35084,7 +35105,7 @@ window.Sub = function() { }; window.HAT = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `, has been recommissioned for use by $SF.Lower. It`, tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``, turbines = ``, armor = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`, recom = `,`; @@ -35101,34 +35122,34 @@ window.HAT = function() { }; window.Interactions = function() { - const V = State.variables, C = V.SFColonel, T = State.temporary; + const V = State.variables, C = V.SF.Colonel, T = State.temporary; var choice = ``, time = ``; - - if (V.SF.WG > 0){ + + if (V.SF.Gift > 0){ if (V.choice == 1){ choice = `$SF.Caps is turning over spare capital in tribute this week. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"I think I can find @@.yellowgreen;<<print cashFormat(Math.ceil($CashGift))>>@@ for you, boss."`;} - else { + else { choice += `"We can spare@@.yellowgreen;<<print cashFormat(Math.ceil($CashGift))>>@@ in tribute this week, `; if (V.PC.title != 1){choice += `sir."`;}else{choice += `ma'am."`;}}} else if (V.choice == 2){ choice = `$SF.Caps will be throwing a military parade this week. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"I expect the @@.green;public to enjoy@@ the parade, boss."`;} - else { + else { choice += `"I'll have plans for an @@.green;popular parade@@ on your desk, `; if (V.PC.title != 1){choice += `sir."`;}else{choice += `ma'am."`;}}} else if (V.choice == 3){ choice = `$SF.Caps will be conducting corporate sabotage on rival arcologies' businesses. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"Our interests should see a @@.yellowgreen;big boost,@@ boss."`;} - else { + else { choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<= properTitle()>>.`; }}} if (C.Talk + C.Fun > 0) time = `The Colonel is busy for the rest of the week, so the Lieutenant Colonel will assist you.`; - + return `${time} <br>${choice}`; }; @@ -35139,7 +35160,7 @@ window.ColonelQuarters = function() { out = `raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave girl kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the girl's head, forcing the girl to service her if she wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body thus gripping the girl even tighter and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the girl, giving her a hard smack and shouting at her to fuck off.<br><br> The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, <<print SFCR()>>?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?"`; }else if (R > 50){ out = `is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, <<print SFCR()>>," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, <<print SFCR()>>," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "Excellent", she laughs. "I have to say; it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So - I'm assuming you want something?"`; - }else if (R > 70 && V.SF.Depravity >= 1.5 && V.SFColonel.Core == "cruel"){ + }else if (R > 70 && V.SF.Depravity >= 1.5 && V.SF.Colonel.Core == "cruel"){ out = `is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave girl being forced to eat her out. "Hey, <<print SFCR()>>, what's -" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave girl in the face. She pushes the girl to the ground, straddling her then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the girl's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the girl's neck with her powerful hands. Wordlessly, she increases the pressure and soon the girl begins to turn blue as she struggles to draw breath. Eventually her struggles weaken and then finally, end.<br><br> The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the girl's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that <<print SFCR()>>," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem - you're here to talk business. So, what's up?"`; }else{ out = `is topless while reviewing the particulars of her unit on a tablet as you approach. She raises a hand in greeting. "Hey <<print SFCR()>>," she says, noticing you looking at her chest. She laughs. "Nice, aren't they? But they're not for you or them." She throws a thumb at the plaza around her. "You're down here for a reason, though. What can I do for you?"`;} @@ -35150,7 +35171,7 @@ window.progress = function(x,max) { var out = `â`, z, i; if (max === undefined) { Math.clamp(x,0,10); - if (State.variables.SF.Units < 30) { + if (State.variables.SF.Size < 30) { z = 5 - x; for (i=0;i<x;i++) out += `â–ˆâ`; for (i=0;i<z;i++) out += `<span style=\"opacity: 0;\">â–ˆ</span>â`; @@ -35170,14 +35191,244 @@ window.progress = function(x,max) { window.SFInit = function() { const V = State.variables; - V.SF = {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}; - V.SFUnit = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; - V.SFColonel = {Core:"", Talk:0, Fun:0, Status:0}; - V.SFTradeShow = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; - V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF = {Toggle:V.SF.Toggle,Active:-1,Depravity:0, Size:0, Upgrade:0, Gift:0, UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1, BadOutcome:""}; + V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; + V.SF.Colonel = {Core:"", Talk:0, Fun:0, Status:0}; + V.SF.MercCon = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; + V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; }; +window.SFBC = function() { + const V = State.variables; + function Init() { + delete V.SFMODToggle; + delete V.securityForceActive; + delete V.securityForceCreate; + delete V.securityForceEventSeen; + } + function Main() { + delete V.securityForceActive; + delete V.securityForceRecruit; + delete V.securityForceTrade; + delete V.securityForceBooty; + delete V.securityForceIncome; + delete V.securityForceMissionEfficiency; + delete V.securityForceProfitable; + delete V.TierTwoUnlock; + delete V.securityForceDepravity; + delete V.SFAO; + delete V.securityForceUpgradeTokenReset; + delete V.securityForceUpgradeToken; + delete V.securityForceGiftToken; + delete V.securityForceRulesOfEngagement; + delete V.securityForceFocus; + delete V.securityForceAccountability; + delete V.securityForceName; + delete V.SubsidyActive; + } + function Colonel() { + delete V.SubsidyActive; + delete V.ColonelCore; + delete V.securityForceColonelToken; + delete V.securityForceColonelSexed; + delete V.ColonelRelationship; + } + function TradeShow() { + delete V.OverallTradeShowAttendance; + delete V.CurrentTradeShowAttendance; + delete V.TradeShowIncome; + delete V.TotalTradeShowIncome; + delete V.TradeShowHelots; + delete V.TotalTradeShowHelots; + } + function Units() { + delete V.securityForcePersonnel; + delete V.securityForceInfantryPower; + delete V.securityForceArcologyUpgrades; + delete V.securityForceVehiclePower; + delete V.securityForceDronePower; + delete V.securityForceStimulantPower; + delete V.securityForceHeavyBattleTank; + delete V.securityForceAircraftPower; + delete V.securityForceSpacePlanePower; + delete V.securityForceAC130; + delete V.securityForceSatellitePower; + delete V.securityForceGiantRobot; + delete V.securityForceMissileSilo; + delete V.securityForceAircraftCarrier; + delete V.securityForceSubmarine; + delete V.securityForceHeavyAmphibiousTransport; + } + + if (V.SF == undefined) { + if (V.securityForceEventSeen < 1) { V.securityForceActive = -1 } else { V.securityForceActive = 2 }; + V.SF = {Toggle:V.SFMODToggle, Active:V.securityForceActive}; Init(); + if (V.securityForceName === undefined) V.securityForceName = "the special force"; + if (V.SF.Active >= 1) { + Object.assign(V.SF, { + Depravity:V.securityForceDepravity, + Size:V.SFAO, + Upgrade:V.securityForceUpgradeToken, + Gift:V.securityForceGiftToken, + UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, + ROE:V.securityForceRulesOfEngagement, + Target:V.securityForceFocus, + Regs:V.securityForceAccountability, + Caps:"The Special Force", + Lower:V.securityForceName, + Subsidy:V.SubsidyActive}); Main(); + if (V.SF.Lower !== "the special force") V.SF.Caps = V.SF.Lower.replace("the ", "The "); + + if (V.ColonelCore === undefined) V.ColonelCore = ""; + if (V.ColonelDiscussion === undefined) V.ColonelDiscussion = 0; + if (V.ColonelSexed === undefined) V.ColonelSexed = 0; + V.SF.Colonel = { + Core:V.ColonelCore, + Talk:V.securityForceColonelToken, + Fun:V.securityForceColonelSexed, + Status:V.ColonelRelationship}; Colonel(); + + if (V.TradeShowIncome === undefined) V.TradeShowIncome = 0; + if (V.TotalTradeShowIncome === undefined) V.TotalTradeShowIncome = 0; + if (V.TradeShowHelots === undefined) V.TradeShowHelots = 0; + if (V.TotalTradeShowHelots === undefined) V.TotalTradeShowHelots = 0; + V.SF.MercCon = { + History:V.OverallTradeShowAttendance, + CanAttend:V.CurrentTradeShowAttendance, + Income:V.TradeShowIncome, + Revenue:V.TotalTradeShowIncome, + Helots:V.TradeShowHelots, + TotalHelots:V.TotalTradeShowHelots, + Mercs:0, + TotalMercs:0}; TradeShow(); + if (V.SF.MercCon.History > 0) V.SF.MercCon.View = 1; + + if (V.securityForceHeavyBattleTank === undefined) V.securityForceHeavyBattleTank = 0; + if (V.securityForceSpacePlanePower === undefined) V.securityForceSpacePlanePower = 0; + if (V.securityForceAC130 === undefined) V.securityForceAC130 = 0; + if (V.securityForceSatellitePower === undefined) V.securityForceSatellitePower = 0; + if (V.securityForceGiantRobot === undefined) V.securityForceGiantRobot = 0; + if (V.securityForceMissileSilo === undefined) V.securityForceMissileSilo = 0; + if (V.securityForceAircraftCarrier === undefined) V.securityForceAircraftCarrier = 0; + if (V.securityForceSubmarine === undefined) V.securityForceSubmarine = 0; + if (V.securityForceHeavyAmphibiousTransport === undefined) V.securityForceHeavyAmphibiousTransport = 0; + V.SF.Squad = { + Troops:V.securityForcePersonnel, + Armoury:V.securityForceInfantryPower, + Firebase:V.securityForceArcologyUpgrades, + AV:V.securityForceVehiclePower, + TV:V.securityForceVehiclePower, + Drones:V.securityForceDronePower, + Drugs:V.securityForceStimulantPower, + PGT:V.securityForceHeavyBattleTank, + AA:V.securityForceAircraftPower, + TA:V.securityForceAircraftPower, + SpacePlane:V.securityForceSpacePlanePower, + GunS:V.securityForceAC130, + Satellite:{lv:V.securityForceSatellitePower, InOrbit:0}, + GiantRobot:V.securityForceGiantRobot, + MissileSilo:V.securityForceMissileSilo, + AircraftCarrier:V.securityForceAircraftCarrier, + Sub:V.securityForceSubmarine, + HAT:V.securityForceHeavyAmphibiousTransport}; Units(); + } else { + V.SF = {Depravity:0, Size:0, Upgrade:0, Gift:0, UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}; + V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:{lv:0, InOrbit:0}, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; + V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF.Colonel = {Core:"", Talk:0, Fun:0, Status:0}; + V.SF.MercCon = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; + if (V.securityForceName) { + Init(); Main(); Colonel(); TradeShow(); Units(); + } + } + V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; + } else { + if (V.SF.MWU) { + delete V.SF.MWU; + } + if (V.SpecOpsLock != undefined) { + V.SF.SpecOpsLock = V.SpecOpsLock; delete V.SpecOpsLock; + } + if (V.SF.UC == undefined) { + V.SF.UC = {Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}; delete V.SF.SpecOps; + delete V.SF.SpecOpsLock; + } + if (V.SF.U != undefined) { + V.SF.Upgrade = V.SF.U; delete V.SF.U; + } + if (V.SF.WG != undefined) { + V.SF.Gift = V.SF.WG; delete V.SF.WG; + } + if (V.SF.Facility == undefined) { + V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; + } + if (V.SF.Bonus == undefined) { + V.SF.Bonus = 0; + } + if (V.SF.Depravity < 0) { + V.SF.Depravity = 0; + } + if (V.SF.Size == undefined) { + V.SF.Size = V.SF.Units; delete V.SF.Units; + } + if (V.SFUnit != undefined) { + if (V.SFUnit.AT != undefined) { + delete V.SFUnit.AT; V.SFUnitTA = 0; + } + V.SF.Squad = V.SFUnit; + delete V.SFUnit; + V.SF.Squad.Sat = {lv:V.SF.Squad.Satellite, InOrbit:V.SatLaunched}; + delete V.SatLaunched; + V.SF.Squad.Satellite = V.SF.Squad.Sat; delete V.SF.Squad.Sat; + } + if (V.SFTradeShow != undefined) V.SF.MercCon = V.SFTradeShow; delete V.SFTradeShow; + if (V.SFColonel != undefined) V.SF.Colonel = V.SFColonel; delete V.SFColonel; + if (V.securityForceName) Init(); Main(); Colonel(); TradeShow(); Units(); + if (V.SF.BadOutcome === undefined) V.SF.BadOutcome = ""; + } +}; + +window.BadOutcome = function() { + const V = State.variables,t = `The Colonel's`; var r =``;V.SF.Active = -2; + switch(V.SF.Colonel.Core) { + case "Shell-Shocked": + V.SF.BadOutcome = "lockdown",V.trinkets.push("${t} explosives detonator"); + r +=`Unnerved by your ever-increasing influence over your men and undercutting of her authority, The Colonel uses heavy explosives at Midnight to seal off The Firebase from your access. When you step off of your express elevator, you are met not with two guards, but several armed proximity mines next to an incredibly thick wall of smoking rubble. No doubt there are machine gun nests, anti-tank nests, and lots more proximity mines just waiting for you on the other side, should you somehow get through the wall of debris.`; + r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independance of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + break; + case "Cruel": + V.SF.BadOutcome = "Revolt",V.trinkets.push("${t} dog tags"),V.Rep = 0, + V.cash -= 10000,V,arcologies[0].prosperity -= 50,V.ASlaves = 49, + V.ACitizens = 751,V.helots = 0, V.researchLab.menials = 0, + V.researchLab.hired = 0, V.fuckdolls = 0,V.menialBioreactors = 0, + V.activeUnits = 0,V.secBots.troops = 0, V.createdSlavesUnits = 0, + V.createdMilitiaUnits = 0, V.createdMercUnits = 0; + r += `<br>Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for an utterly ferocious rebellion. The promises of rape and plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves) are all thats needed to give the selfish lot of them a nearly unshakable resolve in the task of delivering their overlord Her most coveted prize: You.`; + r += `<br>It is now Midnight. The lights are the first thing they disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens start panicking almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Things like this were never supposed to happen again. You had promised them that you'd create an army that would protect them...`; + r += `<br>Her army vanguard strikes fast and hard throughout the main Plaza, cutting through your security personnel, defensive platoons, and drones with an ease that stinks of months of careful planning and study. Your defensive platoons, veterans of many Battles, are outmanuvered at every turn; their hidden ammunition caches are found empty, their communications networks are mysteriously scrambled, and key chokepoints are found to be booby-trapped before your men can even get to them; their well-rehearsed arcology defense routines have gone to ash. Assuming you ever get a chance to speak to The Colonel again, you would ask if her betrayal was actually inevitable rather than something you triggered.`; + r += `<br>You watch with immense dissappointment as the very APC's and IFV's that you paid for now charge into resisting storefronts to storm the armed civillians inside with heavy infantry at point blank range. Battle Tanks trample wounded civillians in the streets as they maneuver to blast your citizens' hastily-made holdouts to pieces, burying dozens of civillian loyalists under mountains of rubble while hundreds more are gunned down in the streets for want of adequate cover. The Plaza is lost; the enemy vanguard has gained access to the Residential Sectors upstairs. Enticed, entire platoons of her vanguard decide to become bandits, ignoring their Colonel's orders and scattering off from the main force to kick down many apartment doors and help themselves to whatever desirable goods or inhabitants they find within.`; + r += `<br>Outside, her many aircraft swarm the local airspace to patrol the Arcology outskirts, conduct recon scans of the upper levels, or monitor your sealed penthouse outside the range of your SAM turrets, while shooting down any other fleeing VTOL's. You will not be escaping by air today. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for later enslavement, as the remainder of her army begins to pour into the bloody Plaza. This is your Arcology's darkest hour.`; + r += `<br>And yet your Mercenaries stand ready. On security feeds throughout the Residential Sectors and Garrison you see your elite sellswords charging out of their lodgings in full kit. They are few, but this is their home, and you are their Patron and Commander. They hold firm, fighting like legends of old in some places, and fighting like animals in others. The Mercenaries trapped downstairs near The Garrison take to the Markets, pinning down most of The Colonel's reinforcements from various shopping outlets using towed quad anti-aircraft guns, and ultimately cutting off many of the assets needed for The Colonel's ongoing assault upstairs. Enemy troop carriers laden with heavy infantry breach the shopping centers in order to dislodge them, only to have their inhabitants cooked alive before they can disembark in time or shot to pieces even when they do. Keeping these Mercenaries alive are the roving exosuit-clad tank hunter duos that frag entire armour platoons en route to these shopping outlets, resorting to carving open enemy AFV's up close with their powered CQB weapons once they've run out of missiles. Back in the Residencies upstairs, in the still-evacuating streets and atriums, your actively-camoflauged snipers take up choice positions on various balconies and overpasses, sowing panic among the advancing traitors with their impressive anti-material rifles with one explosive headshot after another, sometimes even hitting them through walls and buildings. In large indoor parks leading up to the main Residential courtyard, Mercenary fireteams force enemy flankers to flee every single footpath they walk through, harrassing constantly and preventing any hostile reconnaisance or infiltration from being done.`; + r += `<br>The main Residential courtyard features the Residential Sectors' massive elevator complex, which will give The Colonel's forces rapid access to the Promenade, and ultimately, You. In front of it, your Mercenary Captain stands atop one of the many metres-thick sandbag walls his men just assembled there, leading the raging defensive blockade in bringing the vangaurd's assault to a gory halt. ${V.SF.Lower}'s bodies and bits and debris pile up in small walls on the outskirts under the burning heat of hundreds of flying autocannon rounds and dozens of screeching missiles. Before the vanguard's morale can break however, The Colonel shows up in person behind her own lines, kitted in a customized power armour and dragging, of all things, a hydraulic trebucket loaded with a crudely-welded large metal box. She launches the box from beyond your Merceneries' line of sight, sending it reeling towards them and predicting that they will try to shoot it out of the sky. They do, not wanting the slow but strange projectile to hit them directly, only learning of their folly when the metal 'box' detonates midair and releases a dense cloud of cluster bombs over their position. The munitions themselves disable some of the exosuits, but they don't kill too many on their own. However, the bomblets do succeed in detonating the various ammo dumps that were feeding your Mercenaries' blazing guns. The chain explosions, resulting fires, destroyed cover, and widespread casualties and confusion all create the perfect opportunity for The Colonel to storm the previously implacable barricade at the head of her troops, with her followers rushing the merc lines and blasting off the heavy armour plating of your disoriented Mercenaries themselves before stabbing them to death, or in some cases, hauling off the dis-armoured and defeated female Mercenaries they discover for immediate use. As the few intact Mercenaries remaining desperately struggle to hold off the advancing horde with their remaining ammo, The Colonel takes on your dazed Mercenary Captain in single combat. When their ammunition runs dry, and their blasted battlesuits break down, they both eject, and then the knives come out. Minutes later, she stabs him in the side of his skull after she dodges yet another attempt to land a killing blow on her. With the source of Mercenary command and control gone, The Colonel stauches her own bleeding, yanks a trooper out of a near-pristine battlesuit that she now claims for herself, and directly organizes the isolation and extermination of the smaller teams of Mercenaries that are bleeding her troops everywhere else. She routs your Mercenaries for good with the razing of their Garrison structure. The ${V.SF.Lower} now enjoys absolute air and ground superiority. Soon the surviving rear of her army is brought upstairs from the killing floors down in the Markets, and the many elevators and cargo lifts of the elevator complex are boarded, with your executive override codes to remotely shut down the elevators somehow being manually bypassed by her combat engineers. It won't be long now.`; + r += `<br>Dawn has broken over the Free City. Only five hours into the slaughter (of which your Mercenaries no doubt bought you at least three), it becomes very clear to you that the only way to save your arcology is to destroy it. Everything and Everyone will burn before you let this crazy bitch and her rabid dogs get thier dirty hands on you or your slaves. On your order, your most loyal subordinates, the ones who were with you since the early days to patrol your Arcology before you even had drones to protect it, fight their way to through the carnage of your panicking civillians on The Promenade to get to the exact hidden elevators that your Personal Assistant specifies for them. Their destination is the arcology's reactor complex, of course. Following the PA's instructions precisely, they arm their many high-yield explosive charges on your now-exposed and de-stabilized reactor, and in one final service to you, detonate them, creating a collosal explosion. The rapidly ascending heretics quite literally have the rug pulled from under them, as the blast takes out nearly all of the arcology's lesser foundational support beams, thus collapsing many thousands of metric tons of concrete, steel, plastic, and plaster out from underneath the upward bound Colonel and her men... And everyone else, unforteunately. With no foundation any longer, all of your arcology's interior Sectors are utterly gutted from the bottom-up by gravity itself, and everything beneath your ration-stocked, backup-powered Penthouse crumbles to the earth. The massive cloud of dust created by the widespread fires and interior collapse ends up covering the entire Free City for hours. Her aircraft, now berift of their logistical support and command structure, immediately fly off to neighboring arcologies to offer their services to the various employers there, seeing as the coup has failed and they have nowhere else to go. The skies are free for You to travel as you please, but You aren't going anywhere.`; + r += `<br>It is Eveningtime when the tremors finally stop. Everything below your Penthouse is ruin, and your arcology, its population, and your reputation are now essentially dust. However, the arcology did not fall. It. Is. Still. Yours. You shall rise again, not flee this tragedy in shame. Of course, no one will ever know that you sacrificed the arcology delibrately in order to save yourself; it is all too easy to claim that The Colonel carelessly damaged the reactor complex during her assault, ironically causing her own defeat. Frankly, sacrificing most of your tenants doesn't bother you as much as it probably should; maybe its because you know that if The Colonel and her men had won, all those people were as good as dead anyway.`; + r += `<br>You know that if you want to survive, you'll need to sorround yourself with workers and allies to rebuild fast, else your rivals gobble you up. It costs you a horrific sum to clear and process the wreckage and rebuild the basic Sector superstructures and infrastructure for your arcology on such short notice, even after liqidating everything your workers salvage. Your powerful friends still residing in the Old World or other Free Cities have lent you a suprising amount of aid too, with quite a few lended super-heavy contruction assets getting huge amounts of work done quickly. Even then, what you've been able to rebuild is very little. After a nearly sleepless, sexless week of immense toil, you've successfully organized tens of thousands of people in restoring the arcology to a barely functional condition (along with rudimentary imitations of all your upgrades), and you've even got some new Garrison Mercenaries in by week's end too... But its just not the same. If it weren't for your bruised weather-plating your arcology would look like a giant skeleton. Inside, it feels like a concrete boneyard; everything has been built cheap and utilitarian, and the walls aren't even painted. With only a few operational services staffed by commuters from neighboring arcologies, there is just an eerie silence just about everywhere. With few amenities for relief, there are going to be many long days ahead for your few tenants, most of them being wealthy but distraught returning travellers who left before the attack. Maybe your slaves can help entertain them. A lot of these people are VIP's it seems.`; + r += `<br>It is now Midnight. In a rare moment of reflection, you contemplate that what The Colonel just did to your arcology was exactly what you were all too happy to have her do to dozens, if not hundreds of innocent villages and townships under your shadow during her 'Raiding and Slaving' operations. Nevertheless, You have hard work ahead of you, especially now that your enemies see that you are now much weaker than you have ever been.`; + r += `<br>The Colonel's body was never found.`; + break; + case "Kind": + V.SF.BadOutcome = "Exodus",V.trinkets.push("${t} gift card"), + V.Cash += 55000,V.helots += 73; + r += `Your Colonel has had enough of your meddling. In her eyes, you've broken faith with her. She asked one thing of you in return for her full support, and you could not even give her that.`; + r += `<br>At Midnight, a great mechanized convoy, the biggest you've seen in a long while, streams out of your Arcology. Troop Carriers, Aircraft, Heavy Trucks, and other war machines of varying sizes pour out of the Firebase in tight formation. The Colonel is refusing your calls, and you know it would be ill advised to go out there yourself or to try to stop them with force. The many bandits and mercenary groups that the convoy will inevitably pass by will probably feel this way as well. You have no idea where they are going or how they will end up, but with their wealth and weaponry, you are not worried.`; + r += `<br>Upon your inspection of the abandoned firebase itself, most of the heavier installations have been dismantled and carried away, but about 55,000# of miscellaneous supplies and 73 menials have been left behind, presumably because the convoy had no space for them. On The Colonel's old pavillion, you see a white gift card standing upright.`; + r += `<br>When you climb the crates to take it and read it, you see The Colonel's handwritten sentiments about the way things turned out; her gratitude for taking her in when you did, her dissappointment in your actions, a detailed account of your failings, her regrets that things had to end this way, and finally, her well wishes for your future endeavours.`; + r += `<br>Disgusted, you pocket the gift card and leave your employees and menials to gather up the valuables here before stalking back to your Penthouse. The former Firebase is returned to being a warehouse facility.`; + break; + } +} + /*:: DebugJS [script]*/ /* diff --git a/src/SecExp/attackHandler.tw b/src/SecExp/attackHandler.tw index 281cdf4c1915602a013f2d368875327efa5f66ae..92b56410fdb85fa1cf5e5b307f72aad6878d7b15 100644 --- a/src/SecExp/attackHandler.tw +++ b/src/SecExp/attackHandler.tw @@ -98,21 +98,20 @@ <<set _SFMod = 1.5>> <<set _turns = $maxTurns * 2>> <<if $SF.Toggle && $SF.Active >= 1>> - <<if $SFUnit.Firebase >= 7>> - <<set _atkMod += ($SFUnit.Firebase - 6) * 0.05>> + <<if $SF.Squad.Firebase >= 7>> + <<set _atkMod += ($SF.Squad.Firebase - 6) * 0.05>> <</if>> - <<if $SFUnit.GunS >= 1>> - <<set _defMod += $SFUnit.GunS * 0.05>> + <<if $SF.Squad.GunS >= 1>> + <<set _defMod += $SF.Squad.GunS * 0.05>> <</if>> - <<if $SFUnit.Satellite >= 5 && $SatLaunched > 0>> - <<set _atkMod += ($SFUnit.Satellite - 5) * 0.05>> + <<if $SF.Squad.Satellite.lv >= 5 && $SF.Squad.Satellite.InOrbit > 0>> + <<set _atkMod += ($SF.Squad.Satellite.lv - 5) * 0.05>> <</if>> - <<if $SFUnit.GiantRobot >= 6>> - <<set _defMod += ($SFUnit.GiantRobot - 5) * 0.05>> + <<if $SF.Squad.GiantRobot >= 6>> + <<set _defMod += ($SF.Squad.GiantRobot - 5) * 0.05>> <</if>> - <<if $SFUnit.MissileSilo >= 1 && $SatLaunched > 0>> - <<set _atkMod += $SFUnit.MissileSilo * 0.05>> - <<set _defMod += $SFUnit.MissileSilo * 0.05>> + <<if $SF.Squad.MissileSilo >= 1>> + <<set _atkMod += $SF.Squad.MissileSilo * 0.05>> <</if>> <</if>> <</if>> diff --git a/src/SecExp/attackOptions.tw b/src/SecExp/attackOptions.tw index 608ba9aeeef25e3c1f99a762504cb4548e7d3110..ee754659331ad6dc875fb7fec9d03b554ae5d8e4 100644 --- a/src/SecExp/attackOptions.tw +++ b/src/SecExp/attackOptions.tw @@ -247,7 +247,7 @@ __Battle Plan__: <<replace "#leader">><strong><<print _leader>></strong><</replace>> <</link>> <</if>> - <<if $SF.Toggle && $SF.Active >= 1 && $SFTradeShow.CanAttend === -1>> + <<if $SF.Toggle && $SF.Active >= 1 && $SF.MercCon.CanAttend === -1>> | <<link "Let The Colonel lead the troops">> <<set $leadingTroops = "colonel">> diff --git a/src/SecExp/attackReport.tw b/src/SecExp/attackReport.tw index 5782d88a8ba7364ad71f91e95cccc123ae35841a..f6b2b2b3885275f6e0b23e50e86fd2611a78ac02 100644 --- a/src/SecExp/attackReport.tw +++ b/src/SecExp/attackReport.tw @@ -1509,21 +1509,21 @@ <br> <<include "unitsBattleReport">> - <<if $SF.Toggle && $SF.Active >= 1 && ($SFUnit.Firebase >= 7 || $SFUnit.GunS >= 1 || $SFUnit.Satellite >= 5 || $SFUnit.GiantRobot >= 6 || $SFUnit.MissileSilo >= 1)>> + <<if $SF.Toggle && $SF.Active >= 1 && ($SF.Squad.Firebase >= 7 || $SF.Squad.GunS >= 1 || $SF.Squad.Satellite.lv >= 5 || $SF.Squad.GiantRobot >= 6 || $SF.Squad.MissileSilo >= 1)>> /* SF upgrades effects */ <br><br> - <<if $SFUnit.Firebase >= 7>> + <<if $SF.Squad.Firebase >= 7>> The artillery pieces installed around the $SF.Lower firebase provided vital fire support to the troops in the field. <</if>> - <<if $SFUnit.GunS >= 1>> + <<if $SF.Squad.GunS >= 1>> The gunship gave our troops an undeniable advantage in recon capabilities, air superiority and fire support. <</if>> - <<if $SFUnit.Satellite >= 5 && $SatLaunched > 0>> + <<if $SF.Squad.Satellite.lv >= 5 && $SF.Squad.Satellite.InOrbit > 0>> The $SF.Lower satellite's devastating power was employed with great efficiency against the enemy. <</if>> - <<if $SFUnit.GiantRobot >= 6>> + <<if $SF.Squad.GiantRobot >= 6>> The giant robot of the $SF.Lower proved to be a great boon to our troops, shielding many from the worst the enemy had to offer. <</if>> - <<if $SFUnit.MissileSilo >= 1>> + <<if $SF.Squad.MissileSilo >= 1>> The missile silo exterminated many enemy soldiers even before the battle would begin. <</if>> <</if>> diff --git a/src/SecExp/authorityReport.tw b/src/SecExp/authorityReport.tw index 6c274f0a9b62d08ee06d7d07d9fa5275933aae5f..e53db47327e6988c42c0dc8ba26d30e7c9c05ad8 100644 --- a/src/SecExp/authorityReport.tw +++ b/src/SecExp/authorityReport.tw @@ -106,9 +106,9 @@ Your authority is <<set _authGrowth += 12 * $activeUnits>> <</if>> -<<if $SF.Toggle && $SF.Active >= 1 && $SF.Units > 10>> +<<if $SF.Toggle && $SF.Active >= 1 && $SF.Size > 10>> Having a powerful special force, increases your authority. - <<set _authGrowth += $SF.Units/10>> + <<set _authGrowth += $SF.Size/10>> <</if>> <<if $arcologies[0].FSChattelReligionist >= 90>> diff --git a/src/SecExp/edicts.tw b/src/SecExp/edicts.tw index bbf21ceca64745f03da68c99ab192f3fb5acef13..e4d33710c7006521ec6d003c9b272c8ca2dbd49e 100644 --- a/src/SecExp/edicts.tw +++ b/src/SecExp/edicts.tw @@ -317,7 +317,7 @@ <br>//Not enough Authority.// <</if>> <br> //Will lower the amount of personnel necessary to man the security HQ by 5, but will incur upkeep costs.// - <<elseif $SFSupportLevel && $SFUnit.Firebase >= 4 && $reqHelots > 5>> + <<elseif $SFSupportLevel && $SF.Squad.Firebase >= 4 && $reqHelots > 5>> <br>''Personnel training:'' $SF.Caps will provide the security HQ personnel with advanced training. <<if $authority >= 1000>> [[Implement|edicts][$SFSupportLevel++, $cash -=5000, $authority -= 1000, $SFSupportUpkeep += 2000, $reqHelots -= 5]] @@ -325,7 +325,7 @@ <br>//Not enough Authority.// <</if>> <br> //Will lower the amount of personnel necessary to man the security HQ by a further 5, but will incur additional upkeep costs.// - <<elseif $SFSupportLevel === 2 && $SFUnit.Firebase >= 6 && $reqHelots > 5>> + <<elseif $SFSupportLevel === 2 && $SF.Squad.Firebase >= 6 && $reqHelots > 5>> <br>''Troops detachment:'' $SF.Caps will provide troops to the security department. <<if $authority >= 1000>> [[Implement|edicts][$SFSupportLevel++, $cash -=5000, $authority -= 1000, $SFSupportUpkeep += 3000, $reqHelots -= 5]] @@ -333,7 +333,7 @@ <br>//Not enough Authority.// <</if>> <br> //Will lower the amount of personnel necessary to man the security HQ by a further 5, but will incur additional upkeep costs.// - <<elseif $SFSupportLevel === 3 && $SFUnit.Firebase >= 6 && $reqHelots > 5>> + <<elseif $SFSupportLevel === 3 && $SF.Squad.Firebase >= 6 && $reqHelots > 5>> <br>''Full Support:'' $SF.Caps will give the security department its full support. <<if $authority >= 1000>> [[Implement|edicts][$SFSupportLevel++, $cash -=5000, $authority -= 1000, $SFSupportUpkeep += 3000, $reqHelots -= 5]] @@ -341,7 +341,7 @@ <br>//Not enough Authority.// <</if>> <br> //Will lower the amount of personnel necessary to man the security HQ by a further 5, but will incur additional upkeep costs.// - <<elseif $SFSupportLevel === 4 && $SFUnit.Firebase === 10 && $reqHelots > 5>> + <<elseif $SFSupportLevel === 4 && $SF.Squad.Firebase === 10 && $reqHelots > 5>> <br>''Network assistance:'' $SF.Caps will assist the security department with installing a local version of their custom network. <<if $authority >= 1000>> [[Implement|edicts][$SFSupportLevel++, $cash -=50000, $authority -= 1000, $SFSupportUpkeep += 4000, $secHQUpkeep += 1000, $reqHelots -= 5]] diff --git a/src/SecExp/rebellionOptions.tw b/src/SecExp/rebellionOptions.tw index 91c470b22cd01b36d61caa6d88360e80de86d8c2..0935bf038e6bcefac27c8a998cd1b56a623d45b9 100644 --- a/src/SecExp/rebellionOptions.tw +++ b/src/SecExp/rebellionOptions.tw @@ -97,10 +97,10 @@ <</if>> <</if>> <</for>> - <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print commaNum($SFUnit.Troops)>> strong<</if>> + <<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print commaNum($SF.Squad.Troops)>> strong<</if>> are called to defend the arcology from this menace. <<else>> - <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print commaNum($SFUnit.Troops)>> strong<</if>> <</if>> + <<if $arcologyUpgrade.drones == 1>>Your security drones<<if $SF.Toggle && $SF.Active >= 1>>and $SF.Lower, <<print commaNum($SF.Squad.Troops)>> strong<</if>> <</if>> are called to defend the arcology from this menace. <</if>> <hr> diff --git a/src/SecExp/riotControlCenter.tw b/src/SecExp/riotControlCenter.tw index 5385f0867edb4c89acca05b09c7bda32eb693ce0..6d81ae9f9e84b68ff573028cd9edb17c334ea331 100644 --- a/src/SecExp/riotControlCenter.tw +++ b/src/SecExp/riotControlCenter.tw @@ -208,9 +208,9 @@ The riot control center opens its guarded doors to you. The great chamber inside <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <<if $SFSupportLevel >= 4 && !$SFGear && $SFUnit.Armoury >= 8>> <<= Count()>> - <br><br> <<link "Give the riot unit access to the combat armor suits of $SF.Lower.""riotControlCenter">> <<set $SFGear = 1,$riotUpkeep += 15000,$cash -= Math.ceil(500000*_Env*(1.15+($SFUnit.Armoury/10)))>> <</link>> - <br>//Costs <<print cashFormat(Math.ceil(500000*_Env*(1.15+($SFUnit.Armoury/10))))>> + <<if $SFSupportLevel >= 4 && !$SFGear && $SF.Squad.Armoury >= 8>> <<= Count()>> + <br><br> <<link "Give the riot unit access to the combat armor suits of $SF.Lower.""riotControlCenter">> <<set $SFGear = 1,$riotUpkeep += 15000,$cash -= Math.ceil(500000*_Env*(1.15+($SF.Squad.Armoury/10)))>> <</link>> + <br>//Costs <<print cashFormat(Math.ceil(500000*_Env*(1.15+($SF.Squad.Armoury/10))))>> <<else>> <br><br>//You have given the riot unit access to the combat armor suits of $SF.Lower.// <</if>> diff --git a/src/SecExp/securityReport.tw b/src/SecExp/securityReport.tw index aa6e0755196db7c29ee86e24c517ddb06ee328a0..a871d048792b9229a3dde7a10e7781a2e43001b7 100644 --- a/src/SecExp/securityReport.tw +++ b/src/SecExp/securityReport.tw @@ -284,9 +284,9 @@ <<if $militiaFounded == 1 || $activeUnits >= 1>> <br> <strong> Military</strong>: /* militia */ - <<if $SF.Toggle && $SF.Active >= 1 && $SF.Units > 10>> + <<if $SF.Toggle && $SF.Active >= 1 && $SF.Size > 10>> Having a powerful special force attracts a lot of citizens, hopeful that they may be able to fight along side it. - <<set _recruits += random(0,(Math.round($SF.Units/10)))>> + <<set _recruits += random(0,(Math.round($SF.Size/10)))>> <</if>> <<if $propCampaign >= 1 && $propFocus == "recruitment">> <<if $RecuriterOffice == 0 || $Recruiter == 0>> @@ -436,9 +436,9 @@ <<if $crime > 60>> The powerful crime organizations that nested themselves in the arcology have an unending need for cheap guns for hire, many mercenaries flock to your free city in search of employment.<<set _newMercs += random(1,2)>> <</if>> - <<if $SF.Toggle && $SF.Active >= 1 && $SF.Units > 10>> + <<if $SF.Toggle && $SF.Active >= 1 && $SF.Size > 10>> Having a powerful special force attracts a lot of mercenaries, hopeful that they may be able to fight along side it. - <<set _newMercs += random(0,Math.round($SF.Units/10))>> + <<set _newMercs += random(0,Math.round($SF.Size/10))>> <</if>> <<if $discountMercenaries > 0>> More mercenaries are attracted to your archology as a result of the reduced rent. diff --git a/src/SecExp/tradeReport.tw b/src/SecExp/tradeReport.tw index a57f7ca877111497fbc0f33f68ab783c26f371c9..b5df9dfc6694ec0093c6070dfdf4d9a8da3e66fe 100644 --- a/src/SecExp/tradeReport.tw +++ b/src/SecExp/tradeReport.tw @@ -99,9 +99,9 @@ <</if>> <</if>> -<<if $SF.Toggle && $SF.Active >= 1 && $SF.Units > 10>> +<<if $SF.Toggle && $SF.Active >= 1 && $SF.Size > 10>> Having a powerful special force, increases trade security. - <<set _tradeChange += $SF.Units/10>> + <<set _tradeChange += $SF.Size/10>> <</if>> <<if _tradeChange > 0>> diff --git a/src/SecExp/unitsBattleReport.tw b/src/SecExp/unitsBattleReport.tw index c30475e2cf0eb5bcc1f6c0869ce12686fb435561..3c110c598440b6784ce0ae354fa5dfb07d377e10 100644 --- a/src/SecExp/unitsBattleReport.tw +++ b/src/SecExp/unitsBattleReport.tw @@ -7,7 +7,7 @@ <</if>> <<if $SF.Toggle && $SF.Active >= 1 && $SFIntervention>> <br> - <<print commaNum($SFUnit.Troops)>> soldiers from $SF.Lower joined the battle: no casualties suffered. + <<print commaNum($SF.Squad.Troops)>> soldiers from $SF.Lower joined the battle: no casualties suffered. <</if>> <<if $deployingMilitia == 1>> <<for _j = 0; _j < $militiaUnits.length; _j++>> @@ -125,8 +125,8 @@ <<if $SF.Toggle && $SF.Active >= 1 && $SFIntervention>> <br> <<set _loss = _lossesList.pluck()>> - <<set _loss = Math.clamp(_loss,0,$SFUnit.Troops)>> - <<print commaNum($SFUnit.Troops)>> soldiers from $SF.Lower joined the battle: + <<set _loss = Math.clamp(_loss,0,$SF.Squad.Troops)>> + <<print commaNum($SF.Squad.Troops)>> soldiers from $SF.Lower joined the battle: <<if _loss <= 0>> no casualties <<elseif _loss <= 10>> @@ -139,7 +139,7 @@ catastrophic casualties <</if>> suffered. - <<set $SFUnit.Troops -= _loss>> + <<set $SF.Squad.Troops -= _loss>> <br> <</if>> <<if $deployingMilitia == 1>> diff --git a/src/SecExp/unitsRebellionReport.tw b/src/SecExp/unitsRebellionReport.tw index 979398ff8e3657ce2fd4cd7d0057fdaaaf10474f..9ab83927154c3cd9e56ee41d5dbc3a7761aaaf2e 100644 --- a/src/SecExp/unitsRebellionReport.tw +++ b/src/SecExp/unitsRebellionReport.tw @@ -9,7 +9,7 @@ Security drones: no casualties suffered. <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <br>$SF.Lower, <<print commaNum($SFUnit.Troops)>> strong, was called to join the battle: no casualties suffered. + <br>$SF.Lower, <<print commaNum($SF.Squad.Troops)>> strong, was called to join the battle: no casualties suffered. <</if>> <<set _count = 0>> <<if $loyalID.length > 0>> @@ -370,9 +370,9 @@ <br> <br> <<set _loss = _lossesList.pluck()>> - <<set _loss = Math.clamp(_loss,0,$SFUnit.Troops)>> - $SF.Lower, $SFUnit.Troops strong, is called to join the battle: - <<set $SFUnit.Troops -= _loss>> + <<set _loss = Math.clamp(_loss,0,$SF.Squad.Troops)>> + $SF.Lower, $SF.Squad.Troops strong, is called to join the battle: + <<set $SF.Squad.Troops -= _loss>> <<if _loss <= 0>> no casualties <<elseif _loss <= 10>> diff --git a/src/SecExp/weaponsManufacturing.tw b/src/SecExp/weaponsManufacturing.tw index b0d8d4b7476967441ebab733f62405fc105044d5..93056c5c5823b4a0ce7559d14a34ca4c70534912 100644 --- a/src/SecExp/weaponsManufacturing.tw +++ b/src/SecExp/weaponsManufacturing.tw @@ -325,7 +325,7 @@ __Upgrades__: <</if>> <br> <<if $SF.Toggle && $SF.Active >= 1>> - <<if !$completedUpgrades.includes(6) && $weapLab >= 2 && $SFSupportLevel >= 2 && $SFUnit.Firebase >= 7>> + <<if !$completedUpgrades.includes(6) && $weapLab >= 2 && $SFSupportLevel >= 2 && $SF.Squad.Firebase >= 7>> <br> <<link "Develop combined training regimens with $SF.Lower">> <<set $currentUpgrade = { @@ -338,7 +338,7 @@ __Upgrades__: <</link>> <br>//Will take _time weeks, and will increase the base attack and defense values of human troops.// <</if>> - <<if !$completedUpgrades.includes(7) && $weapLab >= 2 && $SFSupportLevel >= 4 && $SFUnit.Drugs >= 8>> + <<if !$completedUpgrades.includes(7) && $weapLab >= 2 && $SFSupportLevel >= 4 && $SF.Squad.Drugs >= 8>> <br> <<link "Develop a variant of the stimulant cocktail that $SF.Lower created">> <<set $currentUpgrade = { @@ -371,7 +371,7 @@ __Upgrades__: You have fully upgraded your human troops. <<elseif $humanUpgrade.attack >= 2 || $humanUpgrade.hp >= 2 || $humanUpgrade.morale >= 20 || $humanUpgrade.defense >= 2>> You have fully upgraded your human troops. - <<if $SF.Toggle && $SF.Active >= 1 && ($humanUpgrade.attack < 4 || $humanUpgrade.hp < 4 || $humanUpgrade.morale < 40 || $humanUpgrade.defense < 4) && (($SFSupportLevel >= 2 && $SFUnit.Firebase >= 7) || ($SFSupportLevel >= 4 && $SFUnit.Drugs >= 8) || ($SFSupportLevel >= 5))>> + <<if $SF.Toggle && $SF.Active >= 1 && ($humanUpgrade.attack < 4 || $humanUpgrade.hp < 4 || $humanUpgrade.morale < 40 || $humanUpgrade.defense < 4) && (($SFSupportLevel >= 2 && $SF.Squad.Firebase >= 7) || ($SFSupportLevel >= 4 && $SF.Squad.Drugs >= 8) || ($SFSupportLevel >= 5))>> With support from $SF.Lower, however, we may be able to further upgrade our troops. <</if>> <<elseif $weapLab < 3>> diff --git a/src/SecExp/widgets/battleWidgets.tw b/src/SecExp/widgets/battleWidgets.tw index af41b8843d7e8cd8cd849e62446089e47bd1013d..fbf36b41b7c4a108e98bdceab28245703f3049f7 100644 --- a/src/SecExp/widgets/battleWidgets.tw +++ b/src/SecExp/widgets/battleWidgets.tw @@ -3,33 +3,33 @@ <<widget "calcSFStatistics">> <<if $slaveRebellion != 1 || $citizenRebellion != 1>> /* atk, def */ - <<set _upgradesSum = $SFUnit.Armoury + $SFUnit.Drugs + ($SFUnit.AA+$SFUnit.TA < 1) + ($SFUnit.AV+$SFUnit.TV)>> + <<set _upgradesSum = $SF.Squad.Armoury + $SF.Squad.Drugs + ($SF.Squad.AA+$SF.Squad.TA < 1) + ($SF.Squad.AV+$SF.Squad.TV)>> <<if !isInt(_upgradesSum)>> <<set _upgradesSum = random(10,15)>> <</if>> <<set $SFatk = Math.trunc(0.65 * _upgradesSum)>> <<set $SFdef = Math.trunc(0.40 * _upgradesSum)>> /* hp */ - <<set $carriableSoldiers = 125 * ($securityForceAC130 + $securityForceVehiclePower)>> + <<set $carriableSoldiers = 125 * ($SF.Squad.GunS + (($SF.Squad.AV + $SF.Squad.TV)/2))>> <<if !isInt($carriableSoldiers)>> - <<set $carriableSoldiers = $SFUnit.Troops / 10>> + <<set $carriableSoldiers = $SF.Squad.Troops / 10>> <</if>> - <<if $SFUnit.Troops > $carriableSoldiers>> + <<if $SF.Squad.Troops > $carriableSoldiers>> <<set $SFhp = $carriableSoldiers * $SFBaseHp>> <<else>> - <<set $carriableSoldiers = $SFUnit.Troops>> + <<set $carriableSoldiers = $SF.Squad.Troops>> <<set $SFhp = $carriableSoldiers * $SFBaseHp>> <</if>> <<else>> /* atk, def */ - <<set _upgradesSum = $SFUnit.Armoury + $SFUnit.Drugs + ($SFUnit.AA+$SFUnit.TA < 1) + ($SFUnit.AV+$SFUnit.TV)>> + <<set _upgradesSum = $SF.Squad.Armoury + $SF.Squad.Drugs + ($SF.Squad.AA+$SF.Squad.TA < 1) + ($SF.Squad.AV+$SF.Squad.TV)>> <<if !isInt(_upgradesSum)>> <<set _upgradesSum = random(10,15)>> <</if>> <<set $SFatk = Math.trunc(0.75 * _upgradesSum)>> <<set $SFdef = Math.trunc(0.50 * _upgradesSum)>> /* hp */ - <<set $SFhp = $SFUnit.Troops * $SFBaseHp>> + <<set $SFhp = $SF.Squad.Troops * $SFBaseHp>> <</if>> <</widget>> @@ -111,7 +111,7 @@ <<set _troops += $mercUnits[_i].troops>> <</if>> <</for>> - <<if $securityForceCreate == 1>> + <<if $SF.Toggle && $SF.Active >= 1>> <<set _troops += $carriableSoldiers>> <</if>> <<set $troopCount = _troops>> diff --git a/src/SpecialForce/CheatEdit.tw b/src/SpecialForce/CheatEdit.tw index 87cc4d5207063e78128eadfa604eea22082a5b4c..d580017421444f1c4d2ca660b34504c553beb23f 100644 --- a/src/SpecialForce/CheatEdit.tw +++ b/src/SpecialForce/CheatEdit.tw @@ -1,35 +1,35 @@ :: CheatEdit [nobr] <<set $nextButton = "Back to $SF.Lower's Firebase", $nextLink = "Firebase", $returnTo = "Firebase">> -<<= Count()>>__Upgrades__: $SF.Units/_max -<<if $SF.Units >= 30>><<set _T1 = 1>><<else>><<set _T1 = 0>><</if>> -<br><br>''Firebase:'' <<textbox "$SFUnit.Firebase" $SFUnit.Firebase "CheatEdit">>/_FU -<br>''Armory:'' <<textbox "$SFUnit.Armoury" $SFUnit.Armoury "CheatEdit">>/_AU -<br>''Drug Lab:'' <<textbox "$SFUnit.Drugs" $SFUnit.Drugs "CheatEdit">>/_DrugsU -<<if $SFUnit.Firebase >= 2>> -<br>''Drone Bay:'' <<textbox "$SFUnit.Drones" $SFUnit.Drones "CheatEdit">>/_DU<</if>> +<<= Count()>>__Upgrades__: $SF.Size/_max +<<if $SF.Size >= 30>><<set _T1 = 1>><<else>><<set _T1 = 0>><</if>> +<br><br>''Firebase:'' <<textbox "$SF.Squad.Firebase" $SF.Squad.Firebase "CheatEdit">>/_FU +<br>''Armory:'' <<textbox "$SF.Squad.Armoury" $SF.Squad.Armoury "CheatEdit">>/_AU +<br>''Drug Lab:'' <<textbox "$SF.Squad.Drugs" $SF.Squad.Drugs "CheatEdit">>/_DrugsU +<<if $SF.Squad.Firebase >= 2>> +<br>''Drone Bay:'' <<textbox "$SF.Squad.Drones" $SF.Squad.Drones "CheatEdit">>/_DU<</if>> -<<if $SFUnit.Firebase >= 1 && $terrain !== "oceanic">> <br><br>''Garage:'' +<<if $SF.Squad.Firebase >= 1 && $terrain !== "oceanic">> <br><br>''Garage:'' <br> ''Vehicles:'' - <br> ''Attack:'' <<textbox "$SFUnit.AV" $SFUnit.AV "CheatEdit">>/_AVU - <br> ''Transport:'' <<textbox "$SFUnit.TV" $SFUnit.TV "CheatEdit">>/_TVU + <br> ''Attack:'' <<textbox "$SF.Squad.AV" $SF.Squad.AV "CheatEdit">>/_AVU + <br> ''Transport:'' <<textbox "$SF.Squad.TV" $SF.Squad.TV "CheatEdit">>/_TVU <<if _T1>> - <br> ''Prototype Goliath Tank:'' <<textbox "$SFUnit.PGT" $SFUnit.PGT "CheatEdit">>/_PGTU<</if>> + <br> ''Prototype Goliath Tank:'' <<textbox "$SF.Squad.PGT" $SF.Squad.PGT "CheatEdit">>/_PGTU<</if>> <</if>> -<<if $SFUnit.Firebase >= 4>> <br><br>''Hangar:'' +<<if $SF.Squad.Firebase >= 4>> <br><br>''Hangar:'' <br> ''Aircraft:'' - <br> ''Attack:'' <<textbox "$SFUnit.AA" $SFUnit.AA "CheatEdit">>/_AAU - <br> ''Transport:'' <<textbox "$SFUnit.TA" $SFUnit.TA "CheatEdit">>/_TAU + <br> ''Attack:'' <<textbox "$SF.Squad.AA" $SF.Squad.AA "CheatEdit">>/_AAU + <br> ''Transport:'' <<textbox "$SF.Squad.TA" $SF.Squad.TA "CheatEdit">>/_TAU <<if _T1>> - <br> ''Spaceplane'': <<textbox "$SFUnit.SpacePlane" $SFUnit.SpacePlane "CheatEdit">>/_SPU - <br> ''Gunship:'' <<textbox "$SFUnit.GunS" $SFUnit.GunS "CheatEdit">>/_GunSU + <br> ''Spaceplane'': <<textbox "$SF.Squad.SpacePlane" $SF.Squad.SpacePlane "CheatEdit">>/_SPU + <br> ''Gunship:'' <<textbox "$SF.Squad.GunS" $SF.Squad.GunS "CheatEdit">>/_GunSU <br><br>''Launch Bay:'' - <br> ''Satellite:'' <<textbox "$SFUnit.Satellite" $SFUnit.Satellite "CheatEdit">>/_SatU + <br> ''Satellite:'' <<textbox "$SF.Squad.Satellite.lv" $SF.Squad.Satellite.lv "CheatEdit">>/_SatU <<if $terrain !== "oceanic">> - <br> ''Giant Robot:'' <<textbox "$SFUnit.GiantRobot" $SFUnit.GiantRobot "CheatEdit">>/_GRU<</if>> - <br> ''Cruise Missile:'' <<textbox "$SFUnit.MissileSilo" $SFUnit.MissileSilo "CheatEdit">>/_MSU + <br> ''Giant Robot:'' <<textbox "$SF.Squad.GiantRobot" $SF.Squad.GiantRobot "CheatEdit">>/_GRU<</if>> + <br> ''Cruise Missile:'' <<textbox "$SF.Squad.MissileSilo" $SF.Squad.MissileSilo "CheatEdit">>/_MSU <<if $terrain === "oceanic" || $terrain === "marine">> <br><br>''Naval Yard:'' - <br> ''Aircraft Carrier:'' <<textbox "$SFUnit.AircraftCarrier" $SFUnit.AircraftCarrier "CheatEdit">>/_ACU - <br> ''Submarine:'' <<textbox "$SFUnit.Sub" $SFUnit.Sub "CheatEdit">>/_SubU - <br> ''Amphibious Transport:'' <<textbox "$SFUnit.HAT" $SFUnit.HAT "CheatEdit">>/_HATU + <br> ''Aircraft Carrier:'' <<textbox "$SF.Squad.AircraftCarrier" $SF.Squad.AircraftCarrier "CheatEdit">>/_ACU + <br> ''Submarine:'' <<textbox "$SF.Squad.Sub" $SF.Squad.Sub "CheatEdit">>/_SubU + <br> ''Amphibious Transport:'' <<textbox "$SF.Squad.HAT" $SF.Squad.HAT "CheatEdit">>/_HATU <</if>><</if>><</if>> \ No newline at end of file diff --git a/src/SpecialForce/ColonelSexDec.tw b/src/SpecialForce/ColonelSexDec.tw index 8f47023524fa86c33bfc3ae3d553f78436f07faa..df4875dcef8d4a1980e87f9c4da11e4bcd6d1de0 100644 --- a/src/SpecialForce/ColonelSexDec.tw +++ b/src/SpecialForce/ColonelSexDec.tw @@ -1,5 +1,5 @@ -:: SFColonelSexDec -<<switch $SFColonel.Core>> +:: SF.ColonelSexDec +<<switch $SF.Colonel.Core>> <<case "shell shocked">> <span id="result7"> The entire time it is obvious that The Colonel is reliving a horrible event. diff --git a/src/SpecialForce/Firebase.tw b/src/SpecialForce/Firebase.tw index 965c3d2d8bca91473860b80f4b8609cf4844aa24..3eac4577a335c36c6820a2eadd6a6ed317a7f2e3 100644 --- a/src/SpecialForce/Firebase.tw +++ b/src/SpecialForce/Firebase.tw @@ -26,9 +26,9 @@ The firebase of $arcologies[0].name's <<textbox "$SF.Lower" $SF.Lower "Firebase">> is located in the lower levels, occupying unneeded warehouse space. It is not accessible to the general citizenry, but your personal elevator has express service to it. As you step off, two soldiers in combat armor manning the entry checkpoint tense before recognizing their Marshal and stepping aside with a sharp salute. - <br><br><<if $SFTradeShow.CanAttend === 1 || ($SFColonel.Fun + $SFColonel.Talk >= 1)>> + <br><br><<if $SF.MercCon.CanAttend === 1 || ($SF.Colonel.Fun + $SF.Colonel.Talk >= 1)>> - You make your way to the operations center, <<print SFC()>> is handling a minor issue. As you enter, she salutes. <<if $SFTradeShow.CanAttend == 1>> The Colonel is away at her merc meetup, so <<print SFC()>> will assist you.<</if>> + You make your way to the operations center, <<print SFC()>> is handling a minor issue. As you enter, she salutes. <<if $SF.MercCon.CanAttend == 1>> The Colonel is away at her merc meetup, so <<print SFC()>> will assist you.<</if>> <<elseif random(1,100) > 5>> @@ -40,7 +40,7 @@ She notices your entrance and turns her attention to you. - <<if $SFColonel.Core == "brazen">> + <<if $SF.Colonel.Core == "brazen">> She gives a textbook salute. "<<= properTitle()>>, how can I help you?" @@ -54,31 +54,31 @@ <</if>> - <<if ndef $SFTradeShow.View && ($SFColonel.Fun + $SFColonel.Talk < 1)>> + <<if ndef $SF.MercCon.View && ($SF.Colonel.Fun + $SF.Colonel.Talk < 1)>> - <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SFColonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, back when I was a merc me and a couple of my old friends would have a meetup every several months. Drinking, fucking, drugs... a little poker. It eventually grew into a whole thing, and now we bring our latest and greatest toys to show off, maybe make some money off selling the schematics. I'd like to continue going, for old times' sake." + <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SF.Colonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, back when I was a merc me and a couple of my old friends would have a meetup every several months. Drinking, fucking, drugs... a little poker. It eventually grew into a whole thing, and now we bring our latest and greatest toys to show off, maybe make some money off selling the schematics. I'd like to continue going, for old times' sake." - <br>[[Grant leave|Firebase][$SFTradeShow.CanAttend = 1,$SFTradeShow.View = 1]] + <br>[[Grant leave|Firebase][$SF.MercCon.CanAttend = 1,$SF.MercCon.View = 1]] - <br>[[Request she remain on base|Firebase][$SFTradeShow.CanAttend = -2,$SFTradeShow.View = 0]]<br> + <br>[[Request she remain on base|Firebase][$SF.MercCon.CanAttend = -2,$SF.MercCon.View = 0]]<br> <</if>> - <<if $SFTradeShow.History >= 1 && (Math.trunc($week/24) === ($week/24)) && $SFTradeShow.CanAttend === -1>> + <<if $SF.MercCon.History >= 1 && (Math.trunc($week/24) === ($week/24)) && $SF.MercCon.CanAttend === -1>> - <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SFColonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, that biannual merc meetup has come around again. You've already gave me leave to attend, but I just wanted to be sure I'm still clear to go." + <br><br>Her expression changes as something jogs her memory. "Before we begin <<if $SF.Colonel.Core == "brazen">><<= properTitle()>><<else>>boss<</if>>, that biannual merc meetup has come around again. You've already gave me leave to attend, but I just wanted to be sure I'm still clear to go." - <br>[[Grant leave.|Firebase][$SFTradeShow.CanAttend = 1]] + <br>[[Grant leave.|Firebase][$SF.MercCon.CanAttend = 1]] - <br>[[Request she remain on site.|Firebase][$SFTradeShow.CanAttend = -1]]<br> + <br>[[Request she remain on site.|Firebase][$SF.MercCon.CanAttend = -1]]<br> <</if>> - <<if $SFTradeShow.History >= 1 && ((Math.trunc(($week-1)/24) === ($week-1)/24) || (Math.trunc(($week-2)/24) === ($week-2)/24) || (Math.trunc(($week-3)/24) === ($week-3)/24))>> + <<if $SF.MercCon.History >= 1 && ((Math.trunc(($week-1)/24) === ($week-1)/24) || (Math.trunc(($week-2)/24) === ($week-2)/24) || (Math.trunc(($week-3)/24) === ($week-3)/24))>> - While at the recent merc meetup, the Colonel made @@.yellowgreen;<<print cashFormat(Math.ceil($SFTradeShow.Income))>>@@ selling generic schematics to her friends, <<print commaNum($SFTradeShow.Helots)>> menial slaves were won in a poker game, and <<print commaNum($SFTradeShow.TotalMercs)>> mercenaries were persuaded to join $SF.Lower. + While at the recent merc meetup, the Colonel made @@.yellowgreen;<<print cashFormat(Math.ceil($SF.MercCon.Income))>>@@ selling generic schematics to her friends, <<print commaNum($SF.MercCon.Helots)>> menial slaves were won in a poker game, and <<print commaNum($SF.MercCon.TotalMercs)>> mercenaries were persuaded to join $SF.Lower. - <br>Total earnings thus far: @@.yellowgreen;<<print cashFormat(Math.ceil($SFTradeShow.Revenue))>>@@ in income, <<print commaNum($SFTradeShow.TotalHelots)>> menial slaves and <<print commaNum($SFTradeShow.Mercs)>> mercenaries joined across $SFTradeShow.History meetups. + <br>Total earnings thus far: @@.yellowgreen;<<print cashFormat(Math.ceil($SF.MercCon.Revenue))>>@@ in income, <<print commaNum($SF.MercCon.TotalHelots)>> menial slaves and <<print commaNum($SF.MercCon.Mercs)>> mercenaries joined across $SF.MercCon.History meetups. <</if>> @@ -86,41 +86,41 @@ <<include "WC">> - <<if $SF.SpecOpsLock < 1>> - <br><<switch $SF.SpecOps>> + <<if $SF.UC.Lock < 1>> + <br><<switch $SF.UC.Assign>> <<case 0>> - <br>No soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] - <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] + <br>No soldiers are working undercover. [[Full time assignement|Firebase][$SF.UC.Lock = 1]] + <br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]] <<case 1>> - <br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] - <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] + <br>A small section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.UC.Lock = 1]] + <br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]] <<case 2>> - <br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.SpecOpsLock = 1]] - <br>[[Reassign soldiers|Firebase][$SF.SpecOps = -1]] + <br>A large section of soldiers are working undercover. [[Full time assignement|Firebase][$SF.UC.Lock = 1]] + <br>[[Reassign soldiers|Firebase][$SF.UC.Assign = -1]] <<default>> <br>Would you like to assign soldiers to undercover duty? - <br>[[Do not assign soldiers to work undercover|Firebase][$SF.SpecOps = 0]] + <br>[[Do not assign soldiers to work undercover|Firebase][$SF.UC.Assign = 0]] - <br>[[Assign a small section of soldiers to work undercover|Firebase][$SF.SpecOps = 1]] + <br>[[Assign a small section of soldiers to work undercover|Firebase][$SF.UC.Assign = 1]] - <br>[[Assign a large section of soldiers to work undercover|Firebase][$SF.SpecOps = 2]] + <br>[[Assign a large section of soldiers to work undercover|Firebase][$SF.UC.Assign = 2]] <</switch>> <<else>> - <br> <<if $SF.SpecOps < 1>>''Zero''<<elseif $SF.SpecOps < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SF.SpecOpsLock = 0]] + <br> <<if $SF.UC.Assign < 1>>''Zero''<<elseif $SF.UC.Assign < 2>>A ''small'' section<<else>>A ''large'' section<</if>> of the special force is assigned to undercover work. [[Re-alloclate the units|Firebase][$SF.UC.Lock = 0]] <</if>> - <<if $SFUnit.Firebase > 5 && $secExp > 0 && $SFSupportLevel >= 4 && $maxUnits === 16 && $readiness <= 10>> + <<if $SF.Squad.Firebase > 5 && $secExp > 0 && $SFSupportLevel >= 4 && $maxUnits === 16 && $readiness <= 10>> - <br><br>[[Provide the security force with their own section.|Firebase][$maxUnits += 4,$readiness = 10,$cash -= Math.ceil((750000*(1.15+($SF.Units/1000))*(1.15+($SFUnit.Firebase/10)))*_Env)]] + <br><br>[[Provide the security force with their own section.|Firebase][$maxUnits += 4,$readiness = 10,$cash -= Math.ceil((750000*(1.15+($SF.Size/1000))*(1.15+($SF.Squad.Firebase/10)))*_Env)]] - @@.yellowgreen;<<print cashFormat(Math.ceil((750000*(1.15+($SF.Units/1000))*(1.15+($SFUnit.Firebase/10)))*_Env))>>@@ + @@.yellowgreen;<<print cashFormat(Math.ceil((750000*(1.15+($SF.Size/1000))*(1.15+($SF.Squad.Firebase/10)))*_Env))>>@@ <</if>> diff --git a/src/SpecialForce/FlavourText.tw b/src/SpecialForce/FlavourText.tw index 0a9e49e34d882d1dc7896785c08663cf7acce65c..3c2a7607d6cc7b8492673845bb1f56d078a4e485 100644 --- a/src/SpecialForce/FlavourText.tw +++ b/src/SpecialForce/FlavourText.tw @@ -152,15 +152,15 @@ wearing plain jumpsuits and slim identification collars to set them apart from the soldiers, and look resigned but not fearful. <</if>> <<else>> - <<if $SF.Depravity <= 0.3 && $SFColonel.Core === "kind">> + <<if $SF.Depravity <= 0.3 && $SF.Colonel.Core === "kind">> wearing plain jumpsuits and slim identification collars to set them apart from the soldiers, and look resigned but not fearful. The soldiers themselves socialize at the bars, in small groups around tables, and in the gambling parlors. Many of them can be seen entering or leaving the dens occupied by the sexual slaves they have acquired. Laughter from the carousing soldiers can be heard at all times. Small groups of slaves move freely between the plaza and their basic accommodations attached to the firebase. - <<elseif $SF.Depravity <= 0.6 && $SFColonel.Core === "kind">> + <<elseif $SF.Depravity <= 0.6 && $SF.Colonel.Core === "kind">> topless, wearing only utilitarian pants and leather collars to set them apart from the soldiers, and occasionally shoot fearful looks at the soldiers. The soldiers themselves socialize at the bars, or in large groups around tables, leering at and groping slaves of interest as they pass by. Many of them can be seen entering or leaving the dens occupied by the sexual slaves they have acquired, and often emerge only partially dressed, sometimes pulling half-naked slaves out with them. <<elseif $SF.Depravity <= 0.9>> topless, wearing only utilitarian shorts and steel collars to set them apart from the soldiers, and often shoot fearful looks at the soldiers. The soldiers themselves socialize at the bars, or in large groups around tables, leering at and heavily groping slaves of interest as they pass by. Many of them can be seen entering or leaving the dens occupied by the sexual slaves they have acquired, and often emerge stark naked, sometimes pulling naked slaves out with them for one last servicing in public. A few soldiers stagger around in drunken hazes or drugged-out stupors. <<elseif $SF.Depravity <= 1.2>> topless, wearing only a single undergarment and heavy steel collars to set them apart from the soldiers, and often shoot fearful looks at the soldiers. The soldiers occupy themselves primarily with sex, pulling slaves onto benches and fucking them hard in public. Many soldiers stagger around or lie passed out from drug and alcohol abuse. - <<elseif $SF.Depravity >= 1.5 && ($SFColonel.Core === "Warmonger" || $SFColonel.Core != "Shell Shocked")>> + <<elseif $SF.Depravity >= 1.5 && ($SF.Colonel.Core === "Warmonger" || $SF.Colonel.Core != "Shell Shocked")>> To a one, they are naked, and are wearing heavy shock collars to force obedience. Most are wild-eyed with fear or dull-eyed from mental collapse, and many others bear marks of abuse. Few of the slaves are here long-term, the depraved pleasures of the soldiers resulting in enormous turnover and loss of 'damaged' stock. The extreme libations of the soldiers are ever-present. Drunken soldiers stagger around everywhere, beating slaves too slow to get out of their way. Others lie sprawled out on the ground, rendered senseless from heavy drug abuse. Some walk around naked, and hold slaves down on the benches scattered around, raping or sodomizing them with their cocks or their personal strap-ons as they desire. In alcoves, some soldier-lover pairs fuck loudly, moaning in pleasure. <<if random(1,100) > 50>> Off to the side, a group of soldiers brutally gangbang a very young slave girl, with one soldier buried balls-deep in her ass, another brutally sawing a barbed strap-on in and out of her pussy, and a third with his cock forced deep down her throat. The slave girl struggles and gags, desperate for breath or relief. @@ -181,12 +181,12 @@ raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave girl kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the girl's head, forcing the girl to service her if she wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body thus gripping the girl even tighter and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the girl, giving her a hard smack and shouting at her to fuck off.<br><br> The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, <<print SFCR()>>?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?" <<elseif random(0,100) > 50>> is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, <<print SFCR()>>," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, <<print SFCR()>>," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "Excellent", she laughs. "I have to say; it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So - I'm assuming you want something?" - <<elseif random(0,100) > 70 && $SF.Depravity >= 1.5 && $SFColonel.Core == "cruel">> + <<elseif random(0,100) > 70 && $SF.Depravity >= 1.5 && $SF.Colonel.Core == "cruel">> is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave girl being forced to eat her out. "Hey, <<print SFCR()>>, what's -" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave girl in the face. She pushes the girl to the ground, straddling her then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the girl's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the girl's neck with her powerful hands. Wordlessly, she increases the pressure and soon the girl begins to turn blue as she struggles to draw breath. Eventually her struggles weaken and then finally, end.<br><br> The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the girl's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that <<print SFCR()>>," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem - you're here to talk business. So, what's up?" <<else>> is topless while reviewing the particulars of her unit on a tablet as you approach. She raises a hand in greeting. "Hey <<print SFCR()>>," she says, noticing you looking at her chest. She laughs. "Nice, aren't they? But they're not for you or them." She throws a thumb at the plaza around her. "You're down here for a reason, though. What can I do for you?" <</if>> </div> - <<if $SFUnit.Firebase === 10>> + <<if $SF.Squad.Firebase === 10>> <br>The echo of simulated gun fire and explosions can be heard from the state of the art killhouse. The quite hum of fans keeping the faster and much more efficient custom network operational can be heard throughout the firebase.<br> <</if>> @@ -197,36 +197,36 @@ <br> The large dormitories are <<print TroopDec()>>. <br><br>''Armory:'' <<print Armoury()>> <br><br>''Drug Lab:'' <<print Drugs()>> -<<if $SFUnit.Firebase >= 2 && $SFUnit.Drones > 0>> <br><br>''Drone Bay:'' <<print LUAV()>> <</if>> +<<if $SF.Squad.Firebase >= 2 && $SF.Squad.Drones > 0>> <br><br>''Drone Bay:'' <<print LUAV()>> <</if>> -<<if _G > 0 && $SFUnit.Firebase >= 1>> <br><br>''Garage:'' - <<if $SFUnit.AV+$SFUnit.TV > 0>> <br> ''Vehicles:'' - <<if $SFUnit.AV > 0>> <br> ''Assault:'' <<print AV()>> <</if>> - <<if $SFUnit.TV > 0>> <br> ''Transport:'' <<print TV()>> <</if>> +<<if _G > 0 && $SF.Squad.Firebase >= 1>> <br><br>''Garage:'' + <<if $SF.Squad.AV+$SF.Squad.TV > 0>> <br> ''Vehicles:'' + <<if $SF.Squad.AV > 0>> <br> ''Assault:'' <<print AV()>> <</if>> + <<if $SF.Squad.TV > 0>> <br> ''Transport:'' <<print TV()>> <</if>> <</if>> - <<if $SFUnit.PGT > 0>> <br> ''Prototype Goliath Tank:'' <<print PGT()>> <</if>> + <<if $SF.Squad.PGT > 0>> <br> ''Prototype Goliath Tank:'' <<print PGT()>> <</if>> <</if>> -<<if $SFUnit.Firebase >= 4>> +<<if $SF.Squad.Firebase >= 4>> <<if _H > 0>> <br><br>''Hangar:'' - <<if $SFUnit.AA+$SFUnit.TA > 0>> <br> ''Airforce:'' - <<if $SFUnit.AA > 0>> <br> ''Assault:'' <<print AA()>> <</if>> - <<if $SFUnit.TA > 0>> <br> ''Transport:'' <<print TA()>> <</if>> + <<if $SF.Squad.AA+$SF.Squad.TA > 0>> <br> ''Airforce:'' + <<if $SF.Squad.AA > 0>> <br> ''Assault:'' <<print AA()>> <</if>> + <<if $SF.Squad.TA > 0>> <br> ''Transport:'' <<print TA()>> <</if>> <</if>> - <<if $SFUnit.SpacePlane > 0>> <br> ''Spaceplane:'' <<print SP()>> <</if>> - <<if $SFUnit.GunS > 0>> <br> ''Gunship:'' <<print GunS()>> <</if>> + <<if $SF.Squad.SpacePlane > 0>> <br> ''Spaceplane:'' <<print SP()>> <</if>> + <<if $SF.Squad.GunS > 0>> <br> ''Gunship:'' <<print GunS()>> <</if>> <</if>> <<if _LB> 0>> <br><br>''Launch Bay:'' - <<if $SFUnit.Satellite > 0>> <br> ''Satellite:'' <<print Sat()>> <<if $SatLaunched < 1>><br> [[Launch it into geostationary orbit|Firebase][$SatLaunched = 1]]<br> //You cannot upgrade the satellite once it has been launched.//<</if>><</if>> - <<if $SFUnit.GiantRobot > 0>> <br> ''Giant Robot'': <<print GR()>> <</if>> - <<if $SFUnit.MissileSilo > 0>> <br> ''Cruise Missile:'' <<print ms()>> <</if>> + <<if $SF.Squad.Satellite.lv > 0>> <br> ''Satellite:'' <<print Sat()>> <<if $SF.Squad.Satellite.InOrbit < 1>><br> [[Launch it into geostationary orbit|Firebase][$SF.Squad.Satellite.InOrbit = 1]]<br> //You cannot upgrade the satellite once it has been launched.//<</if>><</if>> + <<if $SF.Squad.GiantRobot > 0>> <br> ''Giant Robot'': <<print GR()>> <</if>> + <<if $SF.Squad.MissileSilo > 0>> <br> ''Cruise Missile:'' <<print ms()>> <</if>> <</if>> <</if>> <<if _NY > 0>> <br><br>''Naval Yard:'' - <<if $SFUnit.AircraftCarrier > 0>> <br> ''Aircraft Carrier:'' <<print AC()>> <</if>> - <<if $SFUnit.Sub > 0>> <br> ''Submarine:'' <<print Sub()>> <</if>> - <<if $SFUnit.HAT > 0>> <br> ''Amphibious Transport:'' <<print HAT()>> <</if>> + <<if $SF.Squad.AircraftCarrier > 0>> <br> ''Aircraft Carrier:'' <<print AC()>> <</if>> + <<if $SF.Squad.Sub > 0>> <br> ''Submarine:'' <<print Sub()>> <</if>> + <<if $SF.Squad.HAT > 0>> <br> ''Amphibious Transport:'' <<print HAT()>> <</if>> <</if>> /*<<if $SF.Facility.Toggle > 0 && $SF.Facility.Active > 0>> <br><br>''$SF.Facility.Caps:'' diff --git a/src/SpecialForce/JS.js b/src/SpecialForce/JS.js index 420f66b1de01adcd8d59e715dabdae27ab755a66..160971a94cc94a1bde28c15c3749308013685594 100644 --- a/src/SpecialForce/JS.js +++ b/src/SpecialForce/JS.js @@ -1,21 +1,21 @@ /*SecForceEX JS*/ window.SFC = function() { const V = State.variables; - if (V.SFTradeShow.CanAttend === -1) {return `The Colonel`;} + if (V.SF.MercCon.CanAttend === -1) {return `The Colonel`;} else { if (V.SF.Facility.LCActive > 0) {return `Lieutenant Colonel <<= SlaveFullName(V.SF.Facility.LC)>>`;} else {return `a designated soldier`;}} }; window.SFCR = function() { - const V = State.variables, C = V.SFColonel; + const V = State.variables, C = V.SF.Colonel; if (C.Status <= 19) {return `boss`;} else if (C.Status <= 39) {return `friend`;} else {return `fuckbuddy`;} }; window.TroopDec = function() { - const V = State.variables, commom = "the <<print commaNum($SFUnit.Troops)>> members of $SF.Lower", S = V.SFUnit; + const V = State.variables, commom = "the <<print commaNum($SF.Squad.Troops)>> members of $SF.Lower", S = V.SF.Squad; if (S.Troops < 100) {return `sparsely occupied, ${commom} 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 `lightly occupied, with ${commom} starting to spread out across them`;} else if (S.Troops < 800) {return `moderately occupied, though ${commom} residing within have a considerable amount of extra room`;} @@ -40,7 +40,7 @@ window.HSM = function() { }; window.Count = function() { - const V = State.variables, T = State.temporary, C = Math.clamp, S = V.SFUnit, E = V.economy; + const V = State.variables, T = State.temporary, C = Math.clamp, S = V.SF.Squad, E = V.economy; T.SFF = V.SF.Facility.Active; T.SFFU = 1,T.SFF = C(T.SFF, 0, T.SFFU); T.FU = 10,S.Firebase = C(S.Firebase, 0, T.FU); @@ -56,11 +56,11 @@ window.Count = function() { else {T.PGTU = 8,T.SPU = 8,T.GunSU = 8,T.SatU = 8,T.GRU = 8,T.MSU = 8,T.ACU = 8,T.SubU = 8,T.HATU = 8;} S.PGT = C(S.PGT, 0, T.PGTU); S.SpacePlane = C(S.SpacePlane, 0, T.SPU), S.GunS = C(S.GunS, 0, T.GunSU); - S.Satellite = C(S.Satellite, 0, T.SatU), S.GiantRobot = C(S.GiantRobot, 0, T.GRU), S.MissileSilo = C(S.MissileSilo, 0, T.MSU); + S.Satellite.lv = C(S.Satellite.lv, 0, T.SatU), S.GiantRobot = C(S.GiantRobot, 0, T.GRU), S.MissileSilo = C(S.MissileSilo, 0, T.MSU); S.AircraftCarrier = C(S.AircraftCarrier, 0, T.ACU),S.Sub = C(S.Sub, 0, T.SubU),S.HAT = C(S.HAT, 0, T.HATU); T.GU = T.AVU+T.TVU+T.PGTU, T.G = S.AV+S.TV+S.PGT; T.H = S.AA+S.TA+S.SpacePlane+S.GunS, T.HU = T.AAU+T.TAU+T.SPU+T.GunSU; - T.LBU = T.SatU + T.MSU, T.LB = S.Satellite + S.MissileSilo; + T.LBU = T.SatU + T.MSU, T.LB = S.Satellite.lv + S.MissileSilo; T.Base = S.Firebase + S.Armoury + S.Drugs + S.Drones + T.H; T.max = T.FU + T.AU + T.DrugsU + T.DU + T.HU; if (V.SF.Facility.Toggle > 0) { @@ -72,7 +72,7 @@ window.Count = function() { if (V.terrain === "oceanic" || V.terrain === "marine") { T.NY = S.AircraftCarrier + S.Sub + S.HAT, T.Base += T.NY; T.NYU = T.ACU + T.SubU + T.HATU, T.max += T.NYU;} - V.SF.Units = T.Base, V.SF.Units = C(V.SF.Units, 0, T.max); + V.SF.Size = T.Base, V.SF.Size = C(V.SF.Size, 0, T.max); if (E > 100) {T.Env = 4;} else if (E > 67) {T.Env = 3;} else {T.Env = 2;} @@ -82,7 +82,7 @@ window.Count = function() { }; window.Firebase = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var appear = `is currently constructed in a haphazard fashion.`, barracks = `Soldiers' cots are mixed in with weapons crates and ammunition.`, slave = `Cages for processing slaves lie off to one side,`, common = `and in the center is a common area with tables for soldiers to gather around for meals or rowdy conversations.`, garage = ``, drone = ``, hangar = ``, launch = ``, artillery = ``, comms = ``, training = ``; 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 = `.`; @@ -105,7 +105,7 @@ window.Firebase = function() { }; window.Armoury = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var weapons = `The weapons are mostly worn rifles that have already seen years of service before $SF.Lower acquired them.`, armor = `The body armor is enough to stop smaller calibers, but nothing serious.`, comms = ``, helmets = ``, ammo = ``, uniforms = ``, special = ``, exo = ``; if (S.Armoury >= 1) comms = `Radios have been wired into the soldiers helmets`, helmets = `.`; @@ -123,7 +123,7 @@ window.Armoury = function() { }; window.Drugs = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var amphet = ``, phen = ``, steroid = ``, downer = ``, concen = ``, stimpack = ``, stabilizer = ``; if (S.Drugs >= 1) 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.`; @@ -141,7 +141,7 @@ window.Drugs = function() { }; window.LUAV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `have been recommissioned for use by $SF.Lower`, b = `.`, c = ``, d = ``, e = ``, f = ``, g = ``, h = ``, i = ``, j = ``, k = ``; 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.`; @@ -158,7 +158,7 @@ window.LUAV = function() { }; window.AV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var b = `has been recommissioned for use by $SF.Lower. They`, c = `; mechanics are methodically checking the recent purchases for battle-readiness`, MG = `120 mm main gun is enough to handle the majority of opponents around the Free Cities.`, engine = ``, armor = ``, armor2 = ``, ammo = ``, mg = ``, fireC0 = ``, fireC1 = ``, fireC2 = ``, fireC3 = ``, turret = ``; if (S.AV >= 2) engine = `The engine has been overhauled, allowing much faster maneuvering around the battlefield.`, b = ``, c = ``; @@ -175,7 +175,7 @@ window.AV = function() { }; window.TV = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var B = `has been recommissioned for use by $SF.Lower. They`, C = `; mechanics are giving the new purchases a final tuneup`, squad = `a squad`, G1 = `20`, G2 = `in a firefight`, e0 = `The engine has been`, engine = ``, armor = ``, tires = ``, m1 = ``, m2 = ``, pod1 = ``, pod2 = ``; if (S.TV >= 2) engine = `${e0} overhauled, allowing for higher mobility.`, C = ``, B = ``; @@ -192,7 +192,7 @@ window.TV = function() { }; window.PGT = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var b = `has been sold to $SF.Lower through back channels to support a failing Old World nation. The tank is so large it cannot fit inside the garage, and has`, c = ``, engines = `. Two engines power the left and right sides of the tank separately, leaving it underpowered and slow`, gun0 = ``, gun1 = ``, gun2 = `an undersized main gun and makeshift firing system from a standard battle tank`, armor1 = ``, armor0 = ``, cannon = ``, laser = ``, PGTframe = ``; if (S.PGT >= 2) c = `rests in`, b = ``, engines = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`; @@ -209,7 +209,7 @@ window.PGT = function() { }; window.AA = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var W1 = `only armed`, W2 = `,`, W3 = `a poor weapon against flying targets, but enough to handle ground forces`, group = `A small group of attack VTOL have been recommissioned for use by $SF.Lower, enough to make up a squadron`, engines = ``, TAI = ``, lock = ``, support = ``, stealth = ``, scramble = ``, PAI = ``; 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`; @@ -226,7 +226,7 @@ window.AA = function() { }; window.TA = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var Num = `number`, type = `tiltrotor`, capacity = `small platoon or 15`, engines = ``, engines2 = ``, Radar = ``, Armor = ``, landing = ``, miniguns = ``, counter = ``; if (S.TA >= 2) engines = `The tiltrotor engines have been replaced with a more powerful engine, allowing faster travel times.`; @@ -243,7 +243,7 @@ window.TA = function() { }; window.SP = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var engine = `ramjet engines in the atmosphere that can reach Mach 10`, b = `has been purchased from an insolvent Old World nation. It `, shield = ``, camera = ``, efficiency = ``, camera2 = ``, drag = ``, crew = ``, engine2 = ``, skin = ``; if (S.SpacePlane >= 2) b = ``, shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`; @@ -260,7 +260,7 @@ window.SP = function() { }; window.GunS = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `has been recommissioned for use by $SF.Lower. Currently, it `, b = ``, c = ``, d = ``, e = `Miniguns and Gatling cannons line`, f = `, though the distance to ground targets renders the smaller calibers somewhat less useful`, g = ``, h = ``, i = ``, j = ``, k = ``; if (S.GunS >= 2) b = `Infrared sensors have been added for the gunners to better pick targets.`, a = ``; @@ -277,26 +277,26 @@ window.GunS = function() { }; window.Sat = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var loc = `An unused science satellite has been purchased from an Old World nation. While currently useless, it holds potential to be a powerful tool.`, gyro = ``, telemetry = ``, thrusters = ``, solar = ``, surviv = ``, laser = ``, heat = ``, reactor = ``, lens = ``, kin = ``; - if (S.Satellite >= 2) { - if (V.SatLaunched < 1) {loc = `The satellite is being worked on in the Launch Bay.`;} else {loc = `The satellite is in geosynchronous orbit, far above the arcology.`;} + if (S.Satellite.lv >= 2) { + if (V.SF.Squad.Satellite.InOrbit < 1) {loc = `The satellite is being worked on in the Launch Bay.`;} else {loc = `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 >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; - if (S.Satellite >= 4) thrusters = `Thrusters have been installed to control satellite attitude and orbit.`; - if (S.Satellite >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`, surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`; - if (S.Satellite >= 6) laser = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`, heat = ` while generating a large amount of heat.`; - if (S.Satellite >= 7) heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`; - if (S.Satellite >= 8) reactor = `A small, efficient nuclear reactor has been installed to continue generating energy while in the Earth's shadow.`; - if (S.Satellite >= 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 >= 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.`; + if (S.Satellite.lv >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; + if (S.Satellite.lv >= 4) thrusters = `Thrusters have been installed to control satellite attitude and orbit.`; + if (S.Satellite.lv >= 5) solar = `A massive folding solar panel array, combined with the latest in battery technology allow the satellite to store an enormous amount of energy relatively quickly.`, surviv = `Enough of the satellite has been finished that it can expect to survive for a significant period of time in space.`; + if (S.Satellite.lv >= 6) laser = `A laser cannon has been mounted facing the earth, capable of cutting through steel in seconds`, heat = ` while generating a large amount of heat.`; + if (S.Satellite.lv >= 7) heat = `. The installed heatsink allows the laser cannon to fire more frequently without damaging the satellite.`; + 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 `${loc} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser}${heat} ${lens} ${kin}`; }; window.GR = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var loc = `has been purchased from a crumbling Old World nation. It`, power = `Large batteries mounted in oversized shoulders power the robot for up to ten minutes of use, though they make for large targets.`, knife = `simply a 8.5 meter long knife, though additional weapons are under development.`, armor = ``, actuator = ``, cannon = ``, heatsink = ``, ammo = ``, missile = ``; if (S.GiantRobot >= 2) loc = ``, armor = `Armor plating has been mounted over the majority of the robot.`; @@ -313,7 +313,7 @@ window.GR = function() { }; window.ms = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var a = `A cruise missile launch site has been constructed near the base of`, b = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`, c = ``, d = ``, e = ``, f = ``, g = ``, h = ``; if (S.MissileSilo >= 2) b = `a modern missile`, c = `, tipped with a conventional warhead`; @@ -330,7 +330,7 @@ window.ms = function() { }; window.AC = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `has been recommisioned from the Old World for $SF.Lower. It`, jets = `Formerly mothballed strike jets`, loc = ``, radar = ``, AA = ``, prop = ``, torp = ``, armor = ``, power = ``, scramble = ``; if (V.week % 6 === 0) { loc = `moored to the pier in the Naval Yard`; } else { loc = `patrolling the waters near $arcologies[0].name`; } @@ -348,7 +348,7 @@ window.AC = function() { }; window.Sub = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `has been recommissioned from the old world, and`, reactor = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`, reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``, control = ``, missiles = ``; if (S.Sub >= 2) recom = ``, reactor = `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.`; @@ -365,7 +365,7 @@ window.Sub = function() { }; window.HAT = function() { - const V = State.variables, S = V.SFUnit; + const V = State.variables, S = V.SF.Squad; var recom = `, has been recommissioned for use by $SF.Lower. It`, tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``, turbines = ``, armor = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`, recom = `,`; @@ -382,27 +382,27 @@ window.HAT = function() { }; window.Interactions = function() { - const V = State.variables, C = V.SFColonel, T = State.temporary; + const V = State.variables, C = V.SF.Colonel, T = State.temporary; var choice = ``, time = ``; - if (V.SF.WG > 0){ + if (V.SF.Gift > 0){ if (V.choice == 1){ choice = `$SF.Caps is turning over spare capital in tribute this week. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"I think I can find @@.yellowgreen;<<print cashFormat(Math.ceil($CashGift))>>@@ for you, boss."`;} else { choice += `"We can spare@@.yellowgreen;<<print cashFormat(Math.ceil($CashGift))>>@@ in tribute this week, `; if (V.PC.title != 1){choice += `sir."`;}else{choice += `ma'am."`;}}} else if (V.choice == 2){ choice = `$SF.Caps will be throwing a military parade this week. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"I expect the @@.green;public to enjoy@@ the parade, boss."`;} else { choice += `"I'll have plans for an @@.green;popular parade@@ on your desk, `; if (V.PC.title != 1){choice += `sir."`;}else{choice += `ma'am."`;}}} else if (V.choice == 3){ choice = `$SF.Caps will be conducting corporate sabotage on rival arcologies' businesses. `; - if (V.SFTradeShow.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { + if (V.SF.MercCon.CanAttend === -1 && (C.Talk + C.Fun !== 1)) { choice += `"Our interests should see a @@.yellowgreen;big boost,@@ boss."`;} else { choice += `"Your @@.yellowgreen;arcology's business prospects should see an improvement@@ this week, <<= properTitle()>>.`; @@ -420,7 +420,7 @@ window.ColonelQuarters = function() { out = `raises a hand in greeting and nods. She is sprawled on a couch, wearing only her combat suit tank top and fingerless gloves. She's holding a near-empty bottle of strong liquor in her hand and you can see a naked slave girl kneeling on the floor between her legs. The Colonel has her legs wrapped tightly around the girl's head, forcing the girl to service her if she wants to breathe. The Colonel is close to her climax then suddenly tenses her lower body thus gripping the girl even tighter and throws her head back in ecstasy as she orgasms. She lets out a long breath finally releasing the girl, giving her a hard smack and shouting at her to fuck off.<br><br> The Colonel finishes off her bottle, tossing it over her shoulder then leaning back on the couch and spreading her legs wide. You look down briefly, falling into your habits of inspection. Her pussy is completely devoid of hair with heavy labia in with a very large and hard clit peaking out. Beads of moisture, the result of her excitation, are visible, and you can tell from long experience that she would be tight as a vise. You return your gaze to her face to find her smirking at you. "Like what you see, <<print SFCR()>>?" She waves her hand at the plaza around her, "So do they. But you're not here for pussy. You're here to talk business. So, what's up?"`; }else if (R > 50){ out = `is in no condition initially to greet you. She's naked except for one sock that gives you a very good view of her muscled, taut body while lunging with her feet on the table and the rest on her couch. She is face down in a drugged-out stupor in the middle of a wide variety of powders and pills. Perhaps sensing your approach, her head suddenly shoots up and looks at you with unfocused, bloodshot eyes. "Sorry, <<print SFCR()>>," she slurs, wiping her face and weakly holding up a hand. "Hold on a second, I need something to help me out here. Long fucking night." She struggles to sit on the couch and bending over the table, loudly snorts up some of the white powder on it. "Ahhh, fuck," she says, breathing heavily.<br><br> She shakes her head powerfully now looking at you, her eyes once again alert and piercing. "That's better," she says, leaning back on the couch and giving you another good view of her assets. "So, <<print SFCR()>>," she begins, "what brings you down here to our little clubhouse? I trust you're happy with how we've been handling things out there?" You nod. "Excellent", she laughs. "I have to say; it's nice to have a place like this while having some top-end gear and to be able to have fun out there without worrying about anyone coming back on us. Good fucking times." She laughs again. "So - I'm assuming you want something?"`; - }else if (R > 70 && V.SF.Depravity >= 1.5 && V.SFColonel.Core == "cruel"){ + }else if (R > 70 && V.SF.Depravity >= 1.5 && V.SF.Colonel.Core == "cruel"){ out = `is relaxing on her couch stark naked, greeting you with a raised hand. Between her tightly clenched legs is a slave girl being forced to eat her out. "Hey, <<print SFCR()>>, what's -" she breaks off as a flash of pain crosses her features. "Fucking bitch!" she exclaims, pulling her legs away and punching the slave girl in the face. She pushes the girl to the ground, straddling her then begins hitting. You hear one crunch after another as The Colonel's powerful blows shatter the girl's face. She hisses from between clenched teeth, each word accompanied by a brutal punch. "How. Many. Fucking. Times. Have. I. Told. You. To. Watch. Your. Fucking. Teeth. On. My. Fucking. Clit!" She leans back, exhaling heavily. Before leaning back down to grip apply pressure onto the girl's neck with her powerful hands. Wordlessly, she increases the pressure and soon the girl begins to turn blue as she struggles to draw breath. Eventually her struggles weaken and then finally, end.<br><br> The Colonel relaxes her grip then wipes her brow, clearing away the sweat from her exertion. Finally rising from the girl's body, relaxing back on the couch and putting her feet back up on the table. "Sorry about that <<print SFCR()>>," she says, shrugging. "So many of these bitches we pick up from the outside don't understand that they have to behave." Shaking her head in frustration, "Now I need to find another one. But that's not your problem - you're here to talk business. So, what's up?"`; }else{ out = `is topless while reviewing the particulars of her unit on a tablet as you approach. She raises a hand in greeting. "Hey <<print SFCR()>>," she says, noticing you looking at her chest. She laughs. "Nice, aren't they? But they're not for you or them." She throws a thumb at the plaza around her. "You're down here for a reason, though. What can I do for you?"`;} @@ -431,7 +431,7 @@ window.progress = function(x,max) { var out = `â`, z, i; if (max === undefined) { Math.clamp(x,0,10); - if (State.variables.SF.Units < 30) { + if (State.variables.SF.Size < 30) { z = 5 - x; for (i=0;i<x;i++) out += `â–ˆâ`; for (i=0;i<z;i++) out += `<span style=\"opacity: 0;\">â–ˆ</span>â`; @@ -451,10 +451,244 @@ window.progress = function(x,max) { window.SFInit = function() { const V = State.variables; - V.SF = {Active:1, Bonus:0, Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}; - V.SFUnit = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; - V.SFColonel = {Core:"", Talk:0, Fun:0, Status:0}; - V.SFTradeShow = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; - V.SatLaunched = 0, V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF = {Toggle:V.SF.Toggle,Active:-1,Depravity:0, Size:0, Upgrade:0, Gift:0, UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1, BadOutcome:""}; + V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; + V.SF.Colonel = {Core:"", Talk:0, Fun:0, Status:0}; + V.SF.MercCon = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; + V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; -}; \ No newline at end of file +}; + +window.SFBC = function() { + const V = State.variables; + function Init() { + delete V.SFMODToggle; + delete V.securityForceActive; + delete V.securityForceCreate; + delete V.securityForceEventSeen; + } + function Main() { + delete V.securityForceActive; + delete V.securityForceRecruit; + delete V.securityForceTrade; + delete V.securityForceBooty; + delete V.securityForceIncome; + delete V.securityForceMissionEfficiency; + delete V.securityForceProfitable; + delete V.TierTwoUnlock; + delete V.securityForceDepravity; + delete V.SFAO; + delete V.securityForceUpgradeTokenReset; + delete V.securityForceUpgradeToken; + delete V.securityForceGiftToken; + delete V.securityForceRulesOfEngagement; + delete V.securityForceFocus; + delete V.securityForceAccountability; + delete V.securityForceName; + delete V.SubsidyActive; + } + function Colonel() { + delete V.SubsidyActive; + delete V.ColonelCore; + delete V.securityForceColonelToken; + delete V.securityForceColonelSexed; + delete V.ColonelRelationship; + } + function TradeShow() { + delete V.OverallTradeShowAttendance; + delete V.CurrentTradeShowAttendance; + delete V.TradeShowIncome; + delete V.TotalTradeShowIncome; + delete V.TradeShowHelots; + delete V.TotalTradeShowHelots; + } + function Units() { + delete V.securityForcePersonnel; + delete V.securityForceInfantryPower; + delete V.securityForceArcologyUpgrades; + delete V.securityForceVehiclePower; + delete V.securityForceDronePower; + delete V.securityForceStimulantPower; + delete V.securityForceHeavyBattleTank; + delete V.securityForceAircraftPower; + delete V.securityForceSpacePlanePower; + delete V.securityForceAC130; + delete V.securityForceSatellitePower; + delete V.securityForceGiantRobot; + delete V.securityForceMissileSilo; + delete V.securityForceAircraftCarrier; + delete V.securityForceSubmarine; + delete V.securityForceHeavyAmphibiousTransport; + } + + if (V.SF == undefined) { + if (V.securityForceEventSeen < 1) { V.securityForceActive = -1 } else { V.securityForceActive = 2 }; + V.SF = {Toggle:V.SFMODToggle, Active:V.securityForceActive}; Init(); + if (V.securityForceName === undefined) V.securityForceName = "the special force"; + if (V.SF.Active >= 1) { + Object.assign(V.SF, { + Depravity:V.securityForceDepravity, + Size:V.SFAO, + Upgrade:V.securityForceUpgradeToken, + Gift:V.securityForceGiftToken, + UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, + ROE:V.securityForceRulesOfEngagement, + Target:V.securityForceFocus, + Regs:V.securityForceAccountability, + Caps:"The Special Force", + Lower:V.securityForceName, + Subsidy:V.SubsidyActive}); Main(); + if (V.SF.Lower !== "the special force") V.SF.Caps = V.SF.Lower.replace("the ", "The "); + + if (V.ColonelCore === undefined) V.ColonelCore = ""; + if (V.ColonelDiscussion === undefined) V.ColonelDiscussion = 0; + if (V.ColonelSexed === undefined) V.ColonelSexed = 0; + V.SF.Colonel = { + Core:V.ColonelCore, + Talk:V.securityForceColonelToken, + Fun:V.securityForceColonelSexed, + Status:V.ColonelRelationship}; Colonel(); + + if (V.TradeShowIncome === undefined) V.TradeShowIncome = 0; + if (V.TotalTradeShowIncome === undefined) V.TotalTradeShowIncome = 0; + if (V.TradeShowHelots === undefined) V.TradeShowHelots = 0; + if (V.TotalTradeShowHelots === undefined) V.TotalTradeShowHelots = 0; + V.SF.MercCon = { + History:V.OverallTradeShowAttendance, + CanAttend:V.CurrentTradeShowAttendance, + Income:V.TradeShowIncome, + Revenue:V.TotalTradeShowIncome, + Helots:V.TradeShowHelots, + TotalHelots:V.TotalTradeShowHelots, + Mercs:0, + TotalMercs:0}; TradeShow(); + if (V.SF.MercCon.History > 0) V.SF.MercCon.View = 1; + + if (V.securityForceHeavyBattleTank === undefined) V.securityForceHeavyBattleTank = 0; + if (V.securityForceSpacePlanePower === undefined) V.securityForceSpacePlanePower = 0; + if (V.securityForceAC130 === undefined) V.securityForceAC130 = 0; + if (V.securityForceSatellitePower === undefined) V.securityForceSatellitePower = 0; + if (V.securityForceGiantRobot === undefined) V.securityForceGiantRobot = 0; + if (V.securityForceMissileSilo === undefined) V.securityForceMissileSilo = 0; + if (V.securityForceAircraftCarrier === undefined) V.securityForceAircraftCarrier = 0; + if (V.securityForceSubmarine === undefined) V.securityForceSubmarine = 0; + if (V.securityForceHeavyAmphibiousTransport === undefined) V.securityForceHeavyAmphibiousTransport = 0; + V.SF.Squad = { + Troops:V.securityForcePersonnel, + Armoury:V.securityForceInfantryPower, + Firebase:V.securityForceArcologyUpgrades, + AV:V.securityForceVehiclePower, + TV:V.securityForceVehiclePower, + Drones:V.securityForceDronePower, + Drugs:V.securityForceStimulantPower, + PGT:V.securityForceHeavyBattleTank, + AA:V.securityForceAircraftPower, + TA:V.securityForceAircraftPower, + SpacePlane:V.securityForceSpacePlanePower, + GunS:V.securityForceAC130, + Satellite:{lv:V.securityForceSatellitePower, InOrbit:0}, + GiantRobot:V.securityForceGiantRobot, + MissileSilo:V.securityForceMissileSilo, + AircraftCarrier:V.securityForceAircraftCarrier, + Sub:V.securityForceSubmarine, + HAT:V.securityForceHeavyAmphibiousTransport}; Units(); + } else { + V.SF = {Depravity:0, Size:0, Upgrade:0, Gift:0, UC:{Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1}; + V.SF.Squad = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:{lv:0, InOrbit:0}, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}; + V.arcologies[0].SFRaid = 1,V.arcologies[0].SFRaidTarget = -1; + V.SF.Colonel = {Core:"", Talk:0, Fun:0, Status:0}; + V.SF.MercCon = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}; + if (V.securityForceName) { + Init(); Main(); Colonel(); TradeShow(); Units(); + } + } + V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; + } else { + if (V.SF.MWU) { + delete V.SF.MWU; + } + if (V.SpecOpsLock != undefined) { + V.SF.SpecOpsLock = V.SpecOpsLock; delete V.SpecOpsLock; + } + if (V.SF.UC == undefined) { + V.SF.UC = {Assign:V.SF.SpecOps, Lock:V.SF.SpecOpsLock}; delete V.SF.SpecOps; + delete V.SF.SpecOpsLock; + } + if (V.SF.U != undefined) { + V.SF.Upgrade = V.SF.U; delete V.SF.U; + } + if (V.SF.WG != undefined) { + V.SF.Gift = V.SF.WG; delete V.SF.WG; + } + if (V.SF.Facility == undefined) { + V.SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}; + } + if (V.SF.Bonus == undefined) { + V.SF.Bonus = 0; + } + if (V.SF.Depravity < 0) { + V.SF.Depravity = 0; + } + if (V.SF.Size == undefined) { + V.SF.Size = V.SF.Units; delete V.SF.Units; + } + if (V.SFUnit != undefined) { + if (V.SFUnit.AT != undefined) { + delete V.SFUnit.AT; V.SFUnitTA = 0; + } + V.SF.Squad = V.SFUnit; + delete V.SFUnit; + V.SF.Squad.Sat = {lv:V.SF.Squad.Satellite, InOrbit:V.SatLaunched}; + delete V.SatLaunched; + V.SF.Squad.Satellite = V.SF.Squad.Sat; delete V.SF.Squad.Sat; + } + if (V.SFTradeShow != undefined) V.SF.MercCon = V.SFTradeShow; delete V.SFTradeShow; + if (V.SFColonel != undefined) V.SF.Colonel = V.SFColonel; delete V.SFColonel; + if (V.securityForceName) Init(); Main(); Colonel(); TradeShow(); Units(); + if (V.SF.BadOutcome === undefined) V.SF.BadOutcome = ""; + } +}; + +window.BadOutcome = function() { + const V = State.variables,t = `The Colonel's`; var r =``;V.SF.Active = -2; + switch(V.SF.Colonel.Core) { + case "Shell-Shocked": + V.SF.BadOutcome = "lockdown",V.trinkets.push("${t} explosives detonator"); + r +=`Unnerved by your ever-increasing influence over your men and undercutting of her authority, The Colonel uses heavy explosives at Midnight to seal off The Firebase from your access. When you step off of your express elevator, you are met not with two guards, but several armed proximity mines next to an incredibly thick wall of smoking rubble. No doubt there are machine gun nests, anti-tank nests, and lots more proximity mines just waiting for you on the other side, should you somehow get through the wall of debris.`; + r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You receive no money from their exploits, and their total defiance and independance of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + break; + case "Cruel": + V.SF.BadOutcome = "Revolt",V.trinkets.push("${t} dog tags"),V.Rep = 0, + V.cash -= 10000,V,arcologies[0].prosperity -= 50,V.ASlaves = 49, + V.ACitizens = 751,V.helots = 0, V.researchLab.menials = 0, + V.researchLab.hired = 0, V.fuckdolls = 0,V.menialBioreactors = 0, + V.activeUnits = 0,V.secBots.troops = 0, V.createdSlavesUnits = 0, + V.createdMilitiaUnits = 0, V.createdMercUnits = 0; + r+=`<br>The ${V.SF.Lower} still deploys into the old world to plunder as it pleases, but no longer for you. You recieve no money from their exploits, and their total defiance and independance of you is a permanent stain on your reputation. Of course, you'll never have the needed military power to dislodge them, especially with all the redundant fortifications, crossfire envelopes, and myriad traps that paranoid bitch had built around each entrance ever since she went rouge. Trying to sabotage certain support beams from above to make the Firebase facility collapse in on itself could easily cause enough damage to topple other parts of the arcology too, and such a thing would be very difficult to cover up. In other words, you're stuck with them. The Firebase has become a permanent tumor on your Arcology and good name.`; + break; + case "Cruel and Psychopathic": + V.SF.BadOutcome = "Revolt",V.trinkets.push("${t} dog tags"),V.Rep = 0; + r += `<br>Finally fed up with your constant intrusions into her territory and crew, The Colonel riles up her people for an utterly ferocious rebellion. The promises of rape and plunder and dominion over some of the wealthiest tenants in the entire Free City (and their world-class slaves) are all thats needed to give the selfish lot of them a nearly unshakable resolve in the task of delivering their overlord Her most coveted prize: You.`; + r += `<br>It is now Midnight. The lights are the first thing they disable, as they still have the excellent night vision equipment you purchased for them. Some of your citizens start panicking almost immediately at the sudden blackout; this is very reminiscent of the Daughters of Liberty attack that still haunts many of their memories. Things like this were never supposed to happen again. You had promised them that you'd create an army that would protect them...`; + r += `<br>Her army vanguard strikes fast and hard throughout the main Plaza, cutting through your security personnel, defensive platoons, and drones with an ease that stinks of months of careful planning and study. Your defensive platoons, veterans of many Battles, are outmanuvered at every turn; their hidden ammunition caches are found empty, their communications networks are mysteriously scrambled, and key chokepoints are found to be booby-trapped before your men can even get to them; their well-rehearsed arcology defense routines have gone to ash. Assuming you ever get a chance to speak to The Colonel again, you would ask if her betrayal was actually inevitable rather than something you triggered.`; + r += `<br>You watch with immense dissappointment as the very APC's and IFV's that you paid for now charge into resisting storefronts to storm the armed civillians inside with heavy infantry at point blank range. Battle Tanks trample wounded civillians in the streets as they maneuver to blast your citizens' hastily-made holdouts to pieces, burying dozens of civillian loyalists under mountains of rubble while hundreds more are gunned down in the streets for want of adequate cover. The Plaza is lost; the enemy vanguard has gained access to the Residential Sectors upstairs. Enticed, entire platoons of her vanguard decide to become bandits, ignoring their Colonel's orders and scattering off from the main force to kick down many apartment doors and help themselves to whatever desirable goods or inhabitants they find within.`; + r += `<br>Outside, her many aircraft swarm the local airspace to patrol the Arcology outskirts, conduct recon scans of the upper levels, or monitor your sealed penthouse outside the range of your SAM turrets, while shooting down any other fleeing VTOL's. You will not be escaping by air today. No one will. No escaping by land either: Swarms of her drones are tasing fleeing noncombatants by the hundreds for later enslavement, as the remainder of her army begins to pour into the bloody Plaza. This is your Arcology's darkest hour.`; + r += `<br>And yet your Mercenaries stand ready. On security feeds throughout the Residential Sectors and Garrison you see your elite sellswords charging out of their lodgings in full kit. They are few, but this is their home, and you are their Patron and Commander. They hold firm, fighting like legends of old in some places, and fighting like animals in others. The Mercenaries trapped downstairs near The Garrison take to the Markets, pinning down most of The Colonel's reinforcements from various shopping outlets using towed quad anti-aircraft guns, and ultimately cutting off many of the assets needed for The Colonel's ongoing assault upstairs. Enemy troop carriers laden with heavy infantry breach the shopping centers in order to dislodge them, only to have their inhabitants cooked alive before they can disembark in time or shot to pieces even when they do. Keeping these Mercenaries alive are the roving exosuit-clad tank hunter duos that frag entire armour platoons en route to these shopping outlets, resorting to carving open enemy AFV's up close with their powered CQB weapons once they've run out of missiles. Back in the Residencies upstairs, in the still-evacuating streets and atriums, your actively-camoflauged snipers take up choice positions on various balconies and overpasses, sowing panic among the advancing traitors with their impressive anti-material rifles with one explosive headshot after another, sometimes even hitting them through walls and buildings. In large indoor parks leading up to the main Residential courtyard, Mercenary fireteams force enemy flankers to flee every single footpath they walk through, harrassing constantly and preventing any hostile reconnaisance or infiltration from being done.`; + r += `<br>The main Residential courtyard features the Residential Sectors' massive elevator complex, which will give The Colonel's forces rapid access to the Promenade, and ultimately, You. In front of it, your Mercenary Captain stands atop one of the many metres-thick sandbag walls his men just assembled there, leading the raging defensive blockade in bringing the vangaurd's assault to a gory halt. ${V.SF.Lower}'s bodies and bits and debris pile up in small walls on the outskirts under the burning heat of hundreds of flying autocannon rounds and dozens of screeching missiles. Before the vanguard's morale can break however, The Colonel shows up in person behind her own lines, kitted in a customized power armour and dragging, of all things, a hydraulic trebucket loaded with a crudely-welded large metal box. She launches the box from beyond your Merceneries' line of sight, sending it reeling towards them and predicting that they will try to shoot it out of the sky. They do, not wanting the slow but strange projectile to hit them directly, only learning of their folly when the metal 'box' detonates midair and releases a dense cloud of cluster bombs over their position. The munitions themselves disable some of the exosuits, but they don't kill too many on their own. However, the bomblets do succeed in detonating the various ammo dumps that were feeding your Mercenaries' blazing guns. The chain explosions, resulting fires, destroyed cover, and widespread casualties and confusion all create the perfect opportunity for The Colonel to storm the previously implacable barricade at the head of her troops, with her followers rushing the merc lines and blasting off the heavy armour plating of your disoriented Mercenaries themselves before stabbing them to death, or in some cases, hauling off the dis-armoured and defeated female Mercenaries they discover for immediate use. As the few intact Mercenaries remaining desperately struggle to hold off the advancing horde with their remaining ammo, The Colonel takes on your dazed Mercenary Captain in single combat. When their ammunition runs dry, and their blasted battlesuits break down, they both eject, and then the knives come out. Minutes later, she stabs him in the side of his skull after she dodges yet another attempt to land a killing blow on her. With the source of Mercenary command and control gone, The Colonel stauches her own bleeding, yanks a trooper out of a near-pristine battlesuit that she now claims for herself, and directly organizes the isolation and extermination of the smaller teams of Mercenaries that are bleeding her troops everywhere else. She routs your Mercenaries for good with the razing of their Garrison structure. The ${V.SF.Lower} now enjoys absolute air and ground superiority. Soon the surviving rear of her army is brought upstairs from the killing floors down in the Markets, and the many elevators and cargo lifts of the elevator complex are boarded, with your executive override codes to remotely shut down the elevators somehow being manually bypassed by her combat engineers. It won't be long now.`; + r += `<br>Dawn has broken over the Free City. Only five hours into the slaughter (of which your Mercenaries no doubt bought you at least three), it becomes very clear to you that the only way to save your arcology is to destroy it. Everything and Everyone will burn before you let this crazy bitch and her rabid dogs get thier dirty hands on you or your slaves. On your order, your most loyal subordinates, the ones who were with you since the early days to patrol your Arcology before you even had drones to protect it, fight their way to through the carnage of your panicking civillians on The Promenade to get to the exact hidden elevators that your Personal Assistant specifies for them. Their destination is the arcology's reactor complex, of course. Following the PA's instructions precisely, they arm their many high-yield explosive charges on your now-exposed and de-stabilized reactor, and in one final service to you, detonate them, creating a collosal explosion. The rapidly ascending heretics quite literally have the rug pulled from under them, as the blast takes out nearly all of the arcology's lesser foundational support beams, thus collapsing many thousands of metric tons of concrete, steel, plastic, and plaster out from underneath the upward bound Colonel and her men... And everyone else, unforteunately. With no foundation any longer, all of your arcology's interior Sectors are utterly gutted from the bottom-up by gravity itself, and everything beneath your ration-stocked, backup-powered Penthouse crumbles to the earth. The massive cloud of dust created by the widespread fires and interior collapse ends up covering the entire Free City for hours. Her aircraft, now berift of their logistical support and command structure, immediately fly off to neighboring arcologies to offer their services to the various employers there, seeing as the coup has failed and they have nowhere else to go. The skies are free for You to travel as you please, but You aren't going anywhere.`; + r += `<br>It is Eveningtime when the tremors finally stop. Everything below your Penthouse is ruin, and your arcology, its population, and your reputation are now essentially dust. However, the arcology did not fall. It. Is. Still. Yours. You shall rise again, not flee this tragedy in shame. Of course, no one will ever know that you sacrificed the arcology delibrately in order to save yourself; it is all too easy to claim that The Colonel carelessly damaged the reactor complex during her assault, ironically causing her own defeat. Frankly, sacrificing most of your tenants doesn't bother you as much as it probably should; maybe its because you know that if The Colonel and her men had won, all those people were as good as dead anyway.`; + r += `<br>You know that if you want to survive, you'll need to sorround yourself with workers and allies to rebuild fast, else your rivals gobble you up. It costs you a horrific sum to clear and process the wreckage and rebuild the basic Sector superstructures and infrastructure for your arcology on such short notice, even after liqidating everything your workers salvage. Your powerful friends still residing in the Old World or other Free Cities have lent you a suprising amount of aid too, with quite a few lended super-heavy contruction assets getting huge amounts of work done quickly. Even then, what you've been able to rebuild is very little. After a nearly sleepless, sexless week of immense toil, you've successfully organized tens of thousands of people in restoring the arcology to a barely functional condition (along with rudimentary imitations of all your upgrades), and you've even got some new Garrison Mercenaries in by week's end too... But its just not the same. If it weren't for your bruised weather-plating your arcology would look like a giant skeleton. Inside, it feels like a concrete boneyard; everything has been built cheap and utilitarian, and the walls aren't even painted. With only a few operational services staffed by commuters from neighboring arcologies, there is just an eerie silence just about everywhere. With few amenities for relief, there are going to be many long days ahead for your few tenants, most of them being wealthy but distraught returning travellers who left before the attack. Maybe your slaves can help entertain them. A lot of these people are VIP's it seems.`; + r += `<br>It is now Midnight. In a rare moment of reflection, you contemplate that what The Colonel just did to your arcology was exactly what you were all too happy to have her do to dozens, if not hundreds of innocent villages and townships under your shadow during her 'Raiding and Slaving' operations. Nevertheless, You have hard work ahead of you, especially now that your enemies see that you are now much weaker than you have ever been.`; + r += `<br>The Colonel's body was never found.`; + break; + case "Kind": + V.SF.BadOutcome = "Exodus",V.trinkets.push("${t} gift card"), + V.Cash += 55000,V.helots += 73; + r += `Your Colonel has had enough of your meddling. In her eyes, you've broken faith with her. She asked one thing of you in return for her full support, and you could not even give her that.`; + r += `<br>At Midnight, a great mechanized convoy, the biggest you've seen in a long while, streams out of your Arcology. Troop Carriers, Aircraft, Heavy Trucks, and other war machines of varying sizes pour out of the Firebase in tight formation. The Colonel is refusing your calls, and you know it would be ill advised to go out there yourself or to try to stop them with force. The many bandits and mercenary groups that the convoy will inevitably pass by will probably feel this way as well. You have no idea where they are going or how they will end up, but with their wealth and weaponry, you are not worried.`; + r += `<br>Upon your inspection of the abandoned firebase itself, most of the heavier installations have been dismantled and carried away, but about 55,000# of miscellaneous supplies and 73 menials have been left behind, presumably because the convoy had no space for them. On The Colonel's old pavillion, you see a white gift card standing upright.`; + r += `<br>When you climb the crates to take it and read it, you see The Colonel's handwritten sentiments about the way things turned out; her gratitude for taking her in when you did, her dissappointment in your actions, a detailed account of your failings, her regrets that things had to end this way, and finally, her well wishes for your future endeavours.`; + r += `<br>Disgusted, you pocket the gift card and leave your employees and menials to gather up the valuables here before stalking back to your Penthouse. The former Firebase is returned to being a warehouse facility.`; + break; + } +} \ No newline at end of file diff --git a/src/SpecialForce/NamingColonel.tw b/src/SpecialForce/NamingColonel.tw index 12d3e95c9c48b768c946a28397a956f057115685..2c76f6b885f8791c8b3da87fabd91bc242511b99 100644 --- a/src/SpecialForce/NamingColonel.tw +++ b/src/SpecialForce/NamingColonel.tw @@ -1,6 +1,8 @@ :: Security Force Naming-Colonel [nobr] -<<set $nextButton = " ">> <<if ndef $NamingColonel>> <<set $NamingColonel = 0>> <</if>> -<<if $NamingColonel === 0>> +<<set $nextButton = " ">> <<if ndef $NamingColonel>> <<set $NamingColonel = -1>> <</if>> +<<if $NamingColonel < 0>> + You instruct $assistantName to announce to the arcology's citizenry that you will be making an important announcement in the near future regarding the security situation. Given the damage still present from the Daughters' attack, everyone will be tuning in. You also instruct your assistant to begin quietly investigating potential leadership figures for the force itself. + It's been a short while since you told your citizens that you were going to talk to them about their security, and by all accounts, they've turned out in force to watch your address over the arcology's internal communications system. You wake up early, relieve your frustrations on a few slaves woken out of deep sleep, and take position behind your desk. You also call over a slave and push her under your desk. The unspoken instruction is clear, and she begins enthusiastically <<if $PC.dick == 1>> sucking your cock, taking it as deep as she can without gagging. @@ -14,26 +16,26 @@ <br><br>As you speak, you carefully monitor the citizens' opinions as indicated on their communication devices. It is uniformly positive - they know whom they have to thank for their continued survival and dominance. You also monitor your arousal given the ministrations of your slave. A few small movements on your part communicate to your citizens what is happening without being too obvious. Free Cities business etiquette respects business conducted while being subtly serviced (and your doing so during such a public and important broadcast signals how seriously you are taking it), but a climax would be seen as a serious lack of discipline. - <br><br>You finally wrap up your speech, declaring yourself Marshal of the newly-formed <<textbox "$SF.Lower" $SF.Lower>> + <br><br>You finally wrap up your speech, declaring yourself Marshal of the newly-formed <<textbox "$SF.Lower" $SF.Lower "Security Force Naming-Colonel">> <br><br>You close the link to the communication system and read a message from your assistant that appeared during the last moments of your address. In consultation with major figures in the mercenary community, a suitable candidate for day-to-day command of the new unit has been found. Your instructions were to keep you in the dark about them so as to avoid prejudgment. They are waiting outside your office. <br><br>[[Invite them inside|Security Force Naming-Colonel][$NamingColonel = 1]] -<</if>> -<<if $NamingColonel === 1>> +<<elseif $NamingColonel < 2>> + <<if $SF.Lower != "the special force">> <<set $SF.Caps = $SF.Lower.replace("the ", "The ")>> <</if>> The figure that enters is not what you were expecting, given your previous experiences with the mercenary groups that work with the arcology owners of the Free Cities. Most mercenaries you've worked with have been grizzled stout men, veterans of the Old World militaries that finally had too much and went private. Instead, a woman walks in. - <<if $SFColonel.Core == "">> + <<if $SF.Colonel.Core == "">> She strikes you as someone who is likely to be: - <br><br>[[Kind|Security Force Naming-Colonel][$SFColonel.Core = "kind"]] - <br>[[Cruel and psychopathic|Security Force Naming-Colonel][$SFColonel.Core = "cruel"]] - <br>[[A brazen warmonger|Security Force Naming-Colonel][$SFColonel.Core = "brazen"]] - <br>[[Jaded|Security Force Naming-Colonel][$SFColonel.Core = "jaded"]] - <br>[[Shell-shocked|Security Force Naming-Colonel][$SFColonel.Core = "shell shocked"]] + <br><br>[[Kind|Security Force Naming-Colonel][$SF.Colonel.Core = "kind"]] + <br>[[Cruel and psychopathic|Security Force Naming-Colonel][$SF.Colonel.Core = "cruel"]] + <br>[[A brazen warmonger|Security Force Naming-Colonel][$SF.Colonel.Core = "brazen"]] + <br>[[Jaded|Security Force Naming-Colonel][$SF.Colonel.Core = "jaded"]] + <br>[[Shell-shocked|Security Force Naming-Colonel][$SF.Colonel.Core = "shell shocked"]] <</if>> - <<if $SFColonel.Core !== "">> - She is likely to be ''$SFColonel.Core''. + <<if $SF.Colonel.Core !== "">> + She is likely to be ''$SF.Colonel.Core''. <br><br>She strides in, stopping in front of your desk, - <<switch $SFColonel.Core>> + <<switch $SF.Colonel.Core>> <<case "kind">> pulling off a laid-back salute with an easy grin. <<case "cruel">> @@ -48,7 +50,7 @@ <br><br>Returning your gaze to her face, she crosses her arms underneath her chest, pressing her breasts up and forward. You have her measure. Given the generally patriarchal nature of both the mercenary community, and the same nature combined with the heavily sexualized lifestyle of the Free Cities, she's decided to embrace her position rather than fight it. <br><br>"So," she begins, "you're the boss." You invite her to sit down. "No thanks, boss. Besides," - <<switch $SFColonel.Core>> + <<switch $SF.Colonel.Core>> <<case "kind">> she playfully <<case "shell shocked">> @@ -63,7 +65,7 @@ eaten out, <</if>> but I've never seen anyone actually do it. Hell, most of you people don't want to have to have too much to do with a merc like me. I usually get my instructions remotely." - <<switch $SFColonel.Core>> + <<switch $SF.Colonel.Core>> <<case "jaded" "brazen">> A short, harsh laugh escapes her. "But I guess it keeps you focused. Can't have the entire arcology seeing you cum." <<case "kind">> @@ -71,8 +73,8 @@ <<case "cruel">> She frowns. "The client always seems to be happier that way." <</switch>> - <br><br>She moves a step closer. "Your computer-helper-thing told me you wanted me to be a surprise, so I guess I'll tell you why you want me to run the $SF.Lower for you. I'm a killer, pure and simple,<<if $SFColonel.Core === "cruel">>" she smiles, "<</if>>and you need that. I looked into those attacks you've suffered. Nasty business. I'll make sure that an attack like that never happens again. I was a soldier out there, in charge of about a thousand men when the Free Cities first started going up, and I knew they were the future. Eventually I deserted, found the first refugee convoy I could, killed the moron protecting it, sold the girls off to slavers, and bought enough gear to start killing for people like you. Ran my own merc crew, did well till we tried to take on a bigger one and everyone died." - <<switch $SFColonel.Core>> + <br><br>She moves a step closer. "Your computer-helper-thing told me you wanted me to be a surprise, so I guess I'll tell you why you want me to run the $SF.Lower for you. I'm a killer, pure and simple,<<if $SF.Colonel.Core === "cruel">>" she smiles, "<</if>>and you need that. I looked into those attacks you've suffered. Nasty business. I'll make sure that an attack like that never happens again. I was a soldier out there, in charge of about a thousand men when the Free Cities first started going up, and I knew they were the future. Eventually I deserted, found the first refugee convoy I could, killed the moron protecting it, sold the girls off to slavers, and bought enough gear to start killing for people like you. Ran my own merc crew, did well till we tried to take on a bigger one and everyone died." + <<switch $SF.Colonel.Core>> <<case "shell shocked">> She looks away, caught in her own memories. It takes a solid minute before she starts again. <<case "cruel">> @@ -90,13 +92,13 @@ <</if>> <br><br> - <<if $SFColonel.Core === "shell shocked">> + <<if $SF.Colonel.Core === "shell shocked">> The merc looks away again, letting the girl settle down before continuing. <<else>> The merc laughs again. "I could get used to a place like this." <</if>> - She waves her hand around the office. "I bet you want to know why I'd be trustworthy for something like this." You don't correct her. "Thought so." Her demeanor softens, and you can detect a hit of nervousness. "I would say that I've never turned on a client and leave it at that, but this is different. It's getting worse out there. I'm sure you know that." You give her a slight nod. "Four times now I've woken up in the middle of the night and had to kill someone.<<if $SFColonel.Core === "shell shocked">>"<<else>> Two of them were the people I'd taken to bed. You can't even trust your drunken fucks anymore. - <<switch $SFColonel.Core>> + She waves her hand around the office. "I bet you want to know why I'd be trustworthy for something like this." You don't correct her. "Thought so." Her demeanor softens, and you can detect a hit of nervousness. "I would say that I've never turned on a client and leave it at that, but this is different. It's getting worse out there. I'm sure you know that." You give her a slight nod. "Four times now I've woken up in the middle of the night and had to kill someone.<<if $SF.Colonel.Core === "shell shocked">>"<<else>> Two of them were the people I'd taken to bed. You can't even trust your drunken fucks anymore. + <<switch $SF.Colonel.Core>> <<case "kind">> It's a shame, but that's the world we live in." <<case "cruel">> @@ -106,13 +108,13 @@ <</switch>><</if>> <br><br> - <<if $SFColonel.Core === "jaded" || $SFColonel.Core === "shell shocked">> + <<if $SF.Colonel.Core === "jaded" || $SF.Colonel.Core === "shell shocked">> "All I know how to do at this point is fight, and that's kept me alive this far. <<else>> "I like fighting, but I want to live somewhere where I can relax from life out there. <</if>> You give me the job and a place to live, let me hang up the uncertainty of being a merc, and I'll die for you if it comes to that. I promise the people I recruit will feel the same. Besides," she grins, "I could get used to - <<switch $SFColonel.Core>> + <<switch $SF.Colonel.Core>> <<case "brazen">> crushing any enemy that looks our way." <<case "cruel">> @@ -128,17 +130,16 @@ <br><br>[[Let her leave|Security Force Naming-Colonel][$NamingColonel = 2]] <</if>> -<</if>> -<<if $NamingColonel === 2>> - <<set $nextLink = "Next Week",$nextButton = "Continue">> <<unset $NamingColonel>> +<<elseif $NamingColonel < 3>> + <<set $nextLink = "RIE Eligibility Check",$nextButton = "Continue">> <<unset $NamingColonel>> She turns and leaves, and you chase the slave out after her. A few minutes later, a soft chime announces the arrival of a message. It's from the Colonel. - <br><br>//Hey boss, just wanted to mention something else. In your speech you said that you were going to be paying for $SF.Lower. In my mind that means it's yours, no matter what anyone else here might think. I do what you tell me to do. I make sure the troops behave as you want them to behave. I've worked for some 'nice guys' in the past, and I can do that job if you want. It's boring, but sustainable, and I'll have the $SF.Lower turning a profit and supporting the arcology in good order. But if you let me <<if $SFColonel.Core === "cruel">>off the leash<<else>>do what I do<</if>> and throw any Old World complaints in the trash where they belong, I promise you'll have money pouring into your coffers, even accounting for the good amounts me and my boys will pocket along the way. You'll have an empire in short order. + <br><br>//Hey boss, just wanted to mention something else. In your speech you said that you were going to be paying for $SF.Lower. In my mind that means it's yours, no matter what anyone else here might think. I do what you tell me to do. I make sure the troops behave as you want them to behave. I've worked for some 'nice guys' in the past, and I can do that job if you want. It's boring, but sustainable, and I'll have the $SF.Lower turning a profit and supporting the arcology in good order. But if you let me <<if $SF.Colonel.Core === "cruel">>off the leash<<else>>do what I do<</if>> and throw any Old World complaints in the trash where they belong, I promise you'll have money pouring into your coffers, even accounting for the good amounts me and my boys will pocket along the way. You'll have an empire in short order. <<if $mercenaries > 1>> Either way, I'll keep my hands off those mercs you've already installed. I figure that you've reasons for having two different death squads under contract. <</if>> <br><br>Oh, one last thing. I know you've got some kind of grand social experiment going on up there like all the other arco owners, and that's your own deal, but I'd appreciate it if you could keep that stuff out of the new barracks. I'll have a hard time approaching potential recruits and telling them they should come live in a Roman apartment, an Egyptian temple, a goddamn Japanese teahouse, or some of the other crazy shit I've seen in the past. They're hard, nasty people, and trust me, I can tell you from experience that changing that is just not going to happen. Like I said, though, I can hold them back a bit if you like. - <br><br>Talk to you later, boss.// <<set $SF.Active = 2>> + <br><br>Talk to you later, boss.// <</if>> \ No newline at end of file diff --git a/src/SpecialForce/Proposal.tw b/src/SpecialForce/Proposal.tw index b9acd01fc5eeaa4566fd64b79ba931c99c7307c1..307368db34bce27694e31fb164e239aea5c27109 100644 --- a/src/SpecialForce/Proposal.tw +++ b/src/SpecialForce/Proposal.tw @@ -1,26 +1,20 @@ :: Security Force Proposal [nobr] -<<if $SF.Active === -1 && passage() !== "New Game Plus">> - <span id="result"> +<<set $nextButton = " ">> <span id="result"> +The Free Cities were founded on the principles of unrestrained anarcho-capitalism. To those with such beliefs, the very idea of possessing an armed force, a key tool of government control, or weapons at all, was anathema. - The Free Cities were founded on the principles of unrestrained anarcho-capitalism. To those with such beliefs, the very idea of possessing an armed force, a key tool of government control, or weapons at all, was anathema. +<br><br>In the period since, however, your citizens have seen the value in weaponry. They watched on their news-feed as some Free Cities were sacked by the armies and mobs of the Old World, driven by their hatred of the citizens' luxurious lifestyles. They've seen other Cities toppled from within, by slave conspiracies or infighting among citizen groupings with differing beliefs. They've witnessed the distressingly rapid rise of fanatical anti-slavery organizations, who would like nothing more than to see them slowly bled by their own chattel. They are learned people, and they know what happens to slaveowners who lose their power. - <br><br>In the period since, however, your citizens have seen the value in weaponry. They watched on their news-feed as some Free Cities were sacked by the armies and mobs of the Old World, driven by their hatred of the citizens' luxurious lifestyles. They've seen other Cities toppled from within, by slave conspiracies or infighting among citizen groupings with differing beliefs. They've witnessed the distressingly rapid rise of fanatical anti-slavery organizations, who would like nothing more than to see them slowly bled by their own chattel. They are learned people, and they know what happens to slaveowners who lose their power. +<br><br>They've also seen the results of your policies. Your actions towards the arming of both yourself and the arcology proved critical, and ensured their safety when the Old World came for them. And your victory over the Daughters of Liberty, who the citizens know would have executed every single one of them, has created an opportunity. If you insisted upon the creation of a standing 'special' force for the arcology, many would support you and, more importantly, nobody of note would object. - <br><br>They've also seen the results of your policies. Your actions towards the arming of both yourself and the arcology proved critical, and ensured their safety when the Old World came for them. And your victory over the Daughters of Liberty, who the citizens know would have executed every single one of them, has created an opportunity. If you insisted upon the creation of a standing 'special' force for the arcology, many would support you and, more importantly, nobody of note would object. +<br><br>Such a force would solve many problems. More soldiers would mean more control, which is very good for you. More soldiers would mean more security for the arcology and the approaches to it, which is very good for business. More soldiers would mean more obedience from rebellious slaves who can see how powerless they truly are, which is very good for everybody. The force would be tiny compared to the Old World militaries that still exist, but money and technology can, of course, overcome massive numerical inferiority. This being the Free Cities, they would have other uses besides security. Perhaps, in time, you could exert some manner of influence on the Old World itself. - <br><br>Such a force would solve many problems. More soldiers would mean more control, which is very good for you. More soldiers would mean more security for the arcology and the approaches to it, which is very good for business. More soldiers would mean more obedience from rebellious slaves who can see how powerless they truly are, which is very good for everybody. The force would be tiny compared to the Old World militaries that still exist, but money and technology can, of course, overcome massive numerical inferiority. This being the Free Cities, they would have other uses besides security. Perhaps, in time, you could exert some manner of influence on the Old World itself. +<br><br>''This is a unique and very important opportunity'', and is possible only because of your recent victory over the Daughters. If you do not seize it, the memories and fears of your citizens will fade,and you will not be able to raise the matter again. - <br><br>''This is a unique and very important opportunity'', and is possible only because of your recent victory over the Daughters. If you do not seize it, the memories and fears of your citizens will fade,and you will not be able to raise the matter again. +<<set _price = 20000>> <<if $PC.warfare >= 100>> <<set _price = _price*.5>> +<<elseif $PC.warfare >= 50||$PC.career === "arcology owner">> +<<set _price = _price*.75>> <</if>> +<br><<link "Prepare for an announcement.""Security Force Naming-Colonel">> <<replace "#result">> + <<= SFInit()>> <<set $cash -= _price,$SF.Active += 2>> +<</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.// - <<set _price = 20000>> <<if $PC.warfare >= 100>> <<set _price = _price*.5>> - <<elseif $PC.warfare >= 50||$PC.career === "arcology owner">> - <<set _price = _price*.75>> <</if>> - <br><<link "Prepare for an announcement.""Security Force Proposal">> <<replace "#result">> - You instruct $assistantName to announce to the arcology's citizenry that you will be making an important announcement in the near future regarding the security situation. Given the damage still present from the Daughters' attack, everyone will be tuning in. You also instruct your assistant to begin quietly investigating potential leadership figures for the force itself. - <<set $cash -= _price>> <<= SFInit()>> - <</replace>> <</link>><br>//Initial costs are @@.yellowgreen;<<print cashFormat(_price)>>@@ and upon establishment the force will have significant support costs until it is self-sufficient.// - - <br><<link "The current measures are enough.""Next Week">> <<replace "#result">> <<run Object.assign(, $SF, {Active:0})>> <</replace>> <</link>> </span> -<<elseif $SF.Active === 1>> - <<include "Security Force Naming-Colonel">> -<</if>> \ No newline at end of file +<br><<link "The current measures are enough.""RIE Eligibility Check">> <<replace "#result">> <<run Object.assign(, $SF, {Active:0})>> <</replace>> <</link>> </span> \ No newline at end of file diff --git a/src/SpecialForce/Report.tw b/src/SpecialForce/Report.tw index 352ad3ba4d11d8d4b2021d346d53b895bb66135f..3ac1fd5c98baa6b749a33dad7d883412ec4c88f6 100644 --- a/src/SpecialForce/Report.tw +++ b/src/SpecialForce/Report.tw @@ -1,89 +1,89 @@ :: SF_Report [nobr] -<<silently>> <<= Count()>> - <<if $SFUnit.Troops > 2000>> <<set $SFUnit.Troops = random(1955,1999)>> <</if>> - <<if $SFUnit.Troops < 100>> <<set $SFUnit.Troops += Math.ceil(random(2,5))>> - <<elseif $SFUnit.Troops < 2000>> +<<silently>> <<= Count()>> <<set _target = 100000>> + <<if $SF.Squad.Troops > 2000>> <<set $SF.Squad.Troops = random(1955,1999)>> <</if>> + <<if $SF.Squad.Troops < 100>> <<set $SF.Squad.Troops += Math.ceil(random(2,5))>> + <<elseif $SF.Squad.Troops < 2000>> <<if $SF.Target == "recruit">> - <<set $SFUnit.Troops += Math.ceil(random(-1*$SFUnit.Troops/100,0))>> + <<set $SF.Squad.Troops += Math.ceil(random(-1*$SF.Squad.Troops/100,0))>> <<elseif $SF.Target == "raiding">> - <<set $SFUnit.Troops += Math.ceil(random(-3*$SFUnit.Troops/100,-4*$SFUnit.Troops/100))>> + <<set $SF.Squad.Troops += Math.ceil(random(-3*$SF.Squad.Troops/100,-4*$SF.Squad.Troops/100))>> <<else>> - <<set $SFUnit.Troops += Math.ceil(random(-2*$SFUnit.Troops/100,-3*$SFUnit.Troops/100))>> + <<set $SF.Squad.Troops += Math.ceil(random(-2*$SF.Squad.Troops/100,-3*$SF.Squad.Troops/100))>> <</if>> <</if>> <<set _SFIncome = 75000,_actionMultiplier = 1,_troopMultiplier = 1,_unitMultiplier = 1,_depravityMultiplier = 1,_SFupkeep = 0,_FNGs = 10,_Trade = 0.025>> - <<if $SF.SpecOps > 0>> - <<if $SF.SpecOps === 1>> <<set $SFUC = Math.ceil($SFUnit.Troops*.1),$SFUnit.Troops-$SFUC>> - <<else>> <<set $SFUC = Math.ceil($SFUnit.Troops*.25),$SFUnit.Troops-$SFUC>> <</if>> + <<if $SF.UC.Assign > 0>> + <<if $SF.UC.Assign === 1>> <<set $SFUC = Math.ceil($SF.Squad.Troops*.1),$SF.Squad.Troops-$SFUC>> + <<else>> <<set $SFUC = Math.ceil($SF.Squad.Troops*.25),$SF.Squad.Troops-$SFUC>> <</if>> <</if>> - <<if $SFUnit.Troops > 200>> <<set _Trade += 0.05*(Math.ceil($SFUnit.Troops/100))>> - <<set _troopMultiplier = $SFUnit.Troops/200, _SFupkeep += $SFUnit.Troops*25>> + <<if $SF.Squad.Troops > 200>> <<set _Trade += 0.05*(Math.ceil($SF.Squad.Troops/100))>> + <<set _troopMultiplier = $SF.Squad.Troops/200, _SFupkeep += $SF.Squad.Troops*25>> <<if $secExp > 0>> - <<set $authority += 25*(Math.ceil($SFUnit.Troops/200)),$authority = Math.clamp($authority, 0, 20000)>> + <<set $authority += 25*(Math.ceil($SF.Squad.Troops/200)),$authority = Math.clamp($authority, 0, 20000)>> <</if>> <</if>> - <<if $SFUnit.Firebase > 0>> - <<set _FNGs += $SFUnit.Firebase,_Trade += 0.5*$SFUnit.Firebase,_unitMultiplier += 7.5*$SFUnit.Firebase+2*Math.pow($SFUnit.Firebase,2),_SFupkeep += 500*(10+$SFUnit.Firebase)>> + <<if $SF.Squad.Firebase > 0>> + <<set _FNGs += $SF.Squad.Firebase,_Trade += 0.5*$SF.Squad.Firebase,_unitMultiplier += 7.5*$SF.Squad.Firebase+2*Math.pow($SF.Squad.Firebase,2),_SFupkeep += 95*(10+$SF.Squad.Firebase)>> <</if>> - <<if $SFUnit.Armoury > 0>> - <<set _FNGs += (2*$SFUnit.Armoury),_Trade += 0.25*$SFUnit.Armoury,_unitMultiplier += 7.5*$SFUnit.Armoury+2*Math.pow($SFUnit.Armoury,2), _SFupkeep += 100*$SFUnit.Armoury>> + <<if $SF.Squad.Armoury > 0>> + <<set _FNGs += (2*$SF.Squad.Armoury),_Trade += 0.25*$SF.Squad.Armoury,_unitMultiplier += 7.5*$SF.Squad.Armoury+2*Math.pow($SF.Squad.Armoury,2), _SFupkeep += 55*$SF.Squad.Armoury>> <</if>> - <<if $SFUnit.Drugs > 0>> - <<set _FNGs += $SFUnit.Drugs,_Trade += 0.25*$SFUnit.Drugs,_unitMultiplier += 7.5*$SFUnit.Drugs+2*Math.pow($SFUnit.Drugs,2),_SFupkeep += 300*$SFUnit.Drugs>> + <<if $SF.Squad.Drugs > 0>> + <<set _FNGs += $SF.Squad.Drugs,_Trade += 0.25*$SF.Squad.Drugs,_unitMultiplier += 7.5*$SF.Squad.Drugs+2*Math.pow($SF.Squad.Drugs,2),_SFupkeep += 35*$SF.Squad.Drugs>> <</if>> - <<if $SFUnit.Firebase >= 1>> - <<if $SFUnit.AV > 0>> - <<set _FNGs += $SFUnit.AV,_Trade += 0.25*$SFUnit.AV,_unitMultiplier += 7.5*$SFUnit.AV+2*Math.pow($SFUnit.AV,2),_SFupkeep += 1000*$SFUnit.AV>> + <<if $SF.Squad.Firebase >= 1>> + <<if $SF.Squad.AV > 0>> + <<set _FNGs += $SF.Squad.AV,_Trade += 0.25*$SF.Squad.AV,_unitMultiplier += 7.5*$SF.Squad.AV+2*Math.pow($SF.Squad.AV,2),_SFupkeep += 89*$SF.Squad.AV>> <</if>> - <<if $SFUnit.TV > 0>> - <<set _FNGs += $SFUnit.TV,_Trade += 0.25*$SFUnit.TV,_unitMultiplier += 7.5*$SFUnit.TV+2*Math.pow($SFUnit.TV,2), _SFupkeep += 800*$SFUnit.TV>> + <<if $SF.Squad.TV > 0>> + <<set _FNGs += $SF.Squad.TV,_Trade += 0.25*$SF.Squad.TV,_unitMultiplier += 7.5*$SF.Squad.TV+2*Math.pow($SF.Squad.TV,2), _SFupkeep += 89*$SF.Squad.TV>> <</if>> - <<if $SFUnit.PGT > 0>> - <<set _Trade += 0.25*($SFUnit.PGT),_unitMultiplier += 15*$SFUnit.PGT+3*Math.pow($SFUnit.PGT,2),_SFupkeep += 5000+1000*$SFUnit.PGT>> + <<if $SF.Squad.PGT > 0>> + <<set _Trade += 0.25*($SF.Squad.PGT),_unitMultiplier += 15*$SF.Squad.PGT+3*Math.pow($SF.Squad.PGT,2),_SFupkeep += 100*$SF.Squad.PGT>> <</if>> <</if>> - <<if $SFUnit.Firebase >= 2 && $SFUnit.Drones > 0>> - <<set _FNGs += $SFUnit.Drones,_Trade += 0.5*$SFUnit.Drones,_unitMultiplier += 7.5*$SFUnit.Drones+2*Math.pow($SFUnit.Drones,2),_SFupkeep += 500*$SFUnit.Drones>> + <<if $SF.Squad.Firebase >= 2 && $SF.Squad.Drones > 0>> + <<set _FNGs += $SF.Squad.Drones,_Trade += 0.5*$SF.Squad.Drones,_unitMultiplier += 7.5*$SF.Squad.Drones+2*Math.pow($SF.Squad.Drones,2),_SFupkeep += 50*$SF.Squad.Drones>> <</if>> - <<if $SFUnit.Firebase >= 4>> - <<if $SFUnit.AA > 0>> - <<set _FNGs += $SFUnit.AA,_Trade += 0.25*$SFUnit.AA,_unitMultiplier += 7.5*$SFUnit.AA+2*Math.pow($SFUnit.AA,2),_SFupkeep += 1000*$SFUnit.AA>> + <<if $SF.Squad.Firebase >= 4>> + <<if $SF.Squad.AA > 0>> + <<set _FNGs += $SF.Squad.AA,_Trade += 0.25*$SF.Squad.AA,_unitMultiplier += 7.5*$SF.Squad.AA+2*Math.pow($SF.Squad.AA,2),_SFupkeep += 100*$SF.Squad.AA>> <</if>> - <<if $SFUnit.TA > 0>> - <<set _FNGs += $SFUnit.TA,_Trade += 0.25*$SFUnit.TA,_unitMultiplier += 7.5*$SFUnit.TA+2*Math.pow($SFUnit.TA,2),_SFupkeep += 800*$SFUnit.TA>> + <<if $SF.Squad.TA > 0>> + <<set _FNGs += $SF.Squad.TA,_Trade += 0.25*$SF.Squad.TA,_unitMultiplier += 7.5*$SF.Squad.TA+2*Math.pow($SF.Squad.TA,2),_SFupkeep += 80*$SF.Squad.TA>> <</if>> - <<if $SFUnit.SpacePlane > 0>> - <<set _FNGs += $SFUnit.SpacePlane,_Trade += 0.25*$SFUnit.SpacePlane,_unitMultiplier += 7.5*$SFUnit.SpacePlane+2*Math.pow($SFUnit.SpacePlane,2),_SFupkeep += 1000*$SFUnit.SpacePlane>> + <<if $SF.Squad.SpacePlane > 0>> + <<set _FNGs += $SF.Squad.SpacePlane,_Trade += 0.25*$SF.Squad.SpacePlane,_unitMultiplier += 7.5*$SF.Squad.SpacePlane+2*Math.pow($SF.Squad.SpacePlane,2),_SFupkeep += 100*$SF.Squad.SpacePlane>> <</if>> - <<if $SFUnit.GunS > 0>> - <<set _FNGs += $SFUnit.GunS,_Trade += 0.25*$SFUnit.GunS,_unitMultiplier += 12*$SFUnit.GunS+3*Math.pow($SFUnit.GunS,2),_SFupkeep += 3000+700*$SFUnit.GunS>> + <<if $SF.Squad.GunS > 0>> + <<set _FNGs += $SF.Squad.GunS,_Trade += 0.25*$SF.Squad.GunS,_unitMultiplier += 12*$SF.Squad.GunS+3*Math.pow($SF.Squad.GunS,2),_SFupkeep += 70*$SF.Squad.GunS>> <</if>> - <<if $SFUnit.Satellite > 0>> - <<set _FNGs += $SFUnit.Satellite,_Trade += 0.25*$SFUnit.Satellite,_unitMultiplier += 15*$SFUnit.Satellite+5*Math.pow($SFUnit.Satellite,2)>> + <<if $SF.Squad.Satellite.lv > 0 && $SF.Squad.Satellite.InOrbit > 0>> + <<set _FNGs += $SF.Squad.Satellite.lv,_Trade += 0.25*$SF.Squad.Satellite.lv,_unitMultiplier += 15*$SF.Squad.Satellite.lv+5*Math.pow($SF.Squad.Satellite.lv,2),_SFupkeep += 85*$SF.Squad.Satellite.lv>> <</if>> - <<if $SFUnit.GiantRobot > 0>> - <<set _FNGs += $SFUnit.GiantRobot,_Trade += 0.25*$SFUnit.GiantRobot,_unitMultiplier += 15*$SFUnit.GiantRobot+5*Math.pow($SFUnit.GiantRobot,2),_SFupkeep += 10000+1500*$SFUnit.GiantRobot>> + <<if $SF.Squad.GiantRobot > 0>> + <<set _FNGs += $SF.Squad.GiantRobot,_Trade += 0.25*$SF.Squad.GiantRobot,_unitMultiplier += 15*$SF.Squad.GiantRobot+5*Math.pow($SF.Squad.GiantRobot,2),_SFupkeep += 95*$SF.Squad.GiantRobot>> <</if>> - <<if $SFUnit.MissileSilo > 0>> - <<set _Trade += 0.25*$SFUnit.MissileSilo,_unitMultiplier += 15*$SFUnit.MissileSilo+5*Math.pow($SFUnit.MissileSilo,2),_SFupkeep += 1000*$SFUnit.MissileSilo>> + <<if $SF.Squad.MissileSilo > 0>> + <<set _Trade += 0.25*$SF.Squad.MissileSilo,_unitMultiplier += 15*$SF.Squad.MissileSilo+5*Math.pow($SF.Squad.MissileSilo,2),_SFupkeep += 100*$SF.Squad.MissileSilo>> <</if>> <</if>> - <<if $SFUnit.AircraftCarrier > 0>> - <<set _FNGs += $SFUnit.AircraftCarrier,_Trade += 0.25*$SFUnit.AircraftCarrier,_unitMultiplier += 9*$SFUnit.AircraftCarrier+3*Math.pow($SFUnit.AircraftCarrier,2),_SFupkeep += 800*$SFUnit.AircraftCarrier>> + <<if $SF.Squad.AircraftCarrier > 0>> + <<set _FNGs += $SF.Squad.AircraftCarrier,_Trade += 0.25*$SF.Squad.AircraftCarrier,_unitMultiplier += 9*$SF.Squad.AircraftCarrier+3*Math.pow($SF.Squad.AircraftCarrier,2),_SFupkeep += 80*$SF.Squad.AircraftCarrier>> <</if>> - <<if $SFUnit.Sub > 0>> - <<set _FNGs += $SFUnit.Sub,_Trade += 0.25*$SFUnit.Sub,_unitMultiplier += 7.5*$SFUnit.Sub+2*Math.pow($SFUnit.Sub,2),_SFupkeep += 900*$SFUnit.Sub>> + <<if $SF.Squad.Sub > 0>> + <<set _FNGs += $SF.Squad.Sub,_Trade += 0.25*$SF.Squad.Sub,_unitMultiplier += 7.5*$SF.Squad.Sub+2*Math.pow($SF.Squad.Sub,2),_SFupkeep += 90*$SF.Squad.Sub>> <</if>> - <<if $SFUnit.HAT > 0>> - <<set _Trade += 0.25*$SFUnit.HAT,_unitMultiplier += 7.5*$SFUnit.HAT+2*Math.pow($SFUnit.HAT,2),_SFupkeep += 700*$SFUnit.HAT>> + <<if $SF.Squad.HAT > 0>> + <<set _Trade += 0.25*$SF.Squad.HAT,_unitMultiplier += 7.5*$SF.Squad.HAT+2*Math.pow($SF.Squad.HAT,2),_SFupkeep += 70*$SF.Squad.HAT>> <</if>> <<set _SFD = $SF.Depravity>> - <<switch $SFColonel.Core>> + <<switch $SF.Colonel.Core>> <<case "kind">> <<set _FNGs += 10,_Trade += 0.15,_SFD -= 0.15>> <<case "cruel">> @@ -112,29 +112,29 @@ <<else>> <<set $rep += Math.ceil($rep*((_Trade/100)*.25))>> <<set $arcologies[0].prosperity = Math.ceil(($arcologies[0].prosperity+(_Trade/10)*.25))>> <</if>> - <<if $secExp > 0>> <<set $authority += $SF.Units*10,$authority = Math.clamp($authority, 0, 20000)>> <</if>> + <<if $secExp > 0>> <<set $authority += $SF.Size*10,$authority = Math.clamp($authority, 0, 20000)>> <</if>> - <<set _SFIncome = Math.ceil((_SFIncome*_troopMultiplier/10*_unitMultiplier/10*_actionMultiplier/10*_depravityMultiplier)-_SFupkeep),$SFUnit.Troops += Math.round(_FNGs/2)>> + <<set _SFIncome += Math.ceil((_SFIncome*(_troopMultiplier/5*_unitMultiplier/5*_actionMultiplier/5*_depravityMultiplier))-_SFupkeep),$SF.Squad.Troops += Math.round(_FNGs/2)>> /*Remove below line if hard mode ever gets fixed*/ <<if $economy < 100>> <<set _SFIncome = Math.ceil(_SFIncome*(1+($week/100)))>> <</if>> - <<if $SFUnit.Troops > 2000>> <<set $SFUnit.Troops = random(1955,1999)>> <</if>> + <<if $SF.Squad.Troops > 2000>> <<set $SF.Squad.Troops = random(1955,1999)>> <</if>> <<if $rep > 20000>> <<set $rep = 20000>> <</if>> <<if $arcologies[0].prosperity > $AProsperityCap>> <<set $arcologies[0].prosperity = $AProsperityCap>> <</if>> - <<if _SFIncome >= 100000>> + <<if _SFIncome >= _target>> <<set _Profitable = 1,$SF.Subsidy = 0,$cash += _SFIncome>> <<else>> <<set _Profitable = 0>> <</if>> - <<if $SFUnit.Drugs >= 8 || $SFUnit.Drugs >= 10>> <<set _Deaths = 0,_SurvivalChance = 50>> - <<if $SFUnit.Drugs >= 8>> <<set _SurvivalChance -= 5>> <<elseif $SFUnit.Drugs >= 10>> + <<if $SF.Squad.Drugs >= 8 || $SF.Squad.Drugs >= 10>> <<set _Deaths = 0,_SurvivalChance = 50>> + <<if $SF.Squad.Drugs >= 8>> <<set _SurvivalChance -= 5>> <<elseif $SF.Squad.Drugs >= 10>> <<set _SurvivalChance += 5>> <</if>> <<if random(0,100) > _SurvivalChance>> - <<set _Deaths = random(0,(($SFUnit.Drugs*2)+4))>> <</if>> - <<if _Deaths > 0>> <<set $SFUnit.Troops -= _Deaths>> <</if>> + <<set _Deaths = random(0,(($SF.Squad.Drugs*2)+4))>> <</if>> + <<if _Deaths > 0>> <<set $SF.Squad.Troops -= _Deaths>> <</if>> <</if>> <</silently>> <br><br>__Status and Activities of $SF.Lower __: -<br>This week, $SF.Lower focused their <<print commaNum($SFUnit.Troops)>> troops on +<br>This week, $SF.Lower focused their <<print commaNum($SF.Squad.Troops)>> troops on <<if $SF.Target === "recruit">> recruiting and training more personnel. Smaller parties ventured out to protect the arcology's trade routes and strike targets of opportunity. <<elseif $SF.Target === "secure">> @@ -142,11 +142,11 @@ <<else>> locating and striking targets of opportunity, capturing both material loot and new slaves. Smaller parties secured the most important of the arcology's trade routes and processed new recruits. <</if>> -<<if $SF.SpecOps > 0>> <br>A <<if $SF.SpecOps <2>>small<<else>>large<</if>> portion of the force was assigned as <<if $SF.SpecOps <2>>part<<else>>full<</if>> time undercover officers.<</if>> +<<if $SF.UC.Assign > 0>> <br>A <<if $SF.UC.Assign <2>>small<<else>>large<</if>> portion of the force was assigned as <<if $SF.UC.Assign <2>>part<<else>>full<</if>> time undercover officers.<</if>> <<if _Deaths > 0>> <<print (_Deaths)>> soldiers fatally overdosed on the drug cocktail - <<if $SFTradeShow.CanAttend === -1>> + <<if $SF.MercCon.CanAttend === -1>> , The Colonel's much heavier than average drug use saves her from this side effect <</if>>. <</if>> @@ -156,6 +156,7 @@ The goods procured by the $SF.Lower this week, after accounting for the spoils r @@.green;more than sufficient@@ to cover expenses. Excess material and human assets totaling @@.yellowgreen;<<print cashFormat(_SFIncome)>>@@ (after liquidation) were transferred to your accounts. <<else>> @@.red;barely enough@@ to cover expenses. More growth will be needed to ensure profitability. + <<print SFC()>> estimates that an additional @@.yellowgreen;<<print cashFormat(_target-_SFIncome)>>@@ is required to sufficiently cover operating expenses. <</if>> $SF.Caps managed to recruit <<print Math.round(_FNGs/2)>> new soldiers this week, and your reputation has @@.green;increased@@ through the improvement of trade security. @@ -184,20 +185,20 @@ $SF.Caps managed to recruit <<print Math.round(_FNGs/2)>> new soldiers this week <<replace "#accountability">> ''Some Accountability'' <</replace>> <</link>> | <<link "No Accountability">> <<set $SF.Regs = "none">> <<replace "#accountability">> ''No Accountability'' <</replace>> <</link>> -<<if $SFTradeShow.View > 0 && $SFTradeShow.CanAttend === 1>> <br>''TradeShow'': - <<set $SFTradeShow.Income = 0,$SFTradeShow.Helots = 0>> +<<if $SF.MercCon.View > 0 && $SF.MercCon.CanAttend === 1>> <br>''TradeShow'': + <<set $SF.MercCon.Income = 0,$SF.MercCon.Helots = 0>> <<set _TradeShowAttendes = 200,_MenialSlavesPerAttendee = 5>> <<set _MenialSlaves = Math.ceil(random(1,((_TradeShowAttendes*_MenialSlavesPerAttendee)/10)))>> - <<set _TSProfit = Math.ceil(500000*(1+($SF.Units/1000))*(1+($arcologies[0].prosperity/1000))*_Env)>> + <<set _TSProfit = Math.ceil(500000*(1+($SF.Size/1000))*(1+($arcologies[0].prosperity/1000))*_Env)>> During a break, The Colonel managed to sell some generic schematics to the _TradeShowAttendes attendes, some decided to also give her some menial slaves as a bonus.<br> <<set $helots += _MenialSlaves>> - <<set $SFTradeShow.Helots += _MenialSlaves,$SFTradeShow.TotalHelots += _MenialSlaves>> - <<set $cash += _TSProfit,$SFTradeShow.Income += _TSProfit>> - <<set $SFTradeShow.Revenue += _TSProfit>> - <<if $secExp > 0 && $mercenaries > 0>> <<set $SFTradeShow.Mercs = 0>> + <<set $SF.MercCon.Helots += _MenialSlaves,$SF.MercCon.TotalHelots += _MenialSlaves>> + <<set $cash += _TSProfit,$SF.MercCon.Income += _TSProfit>> + <<set $SF.MercCon.Revenue += _TSProfit>> + <<if $secExp > 0 && $mercenaries > 0>> <<set $SF.MercCon.Mercs = 0>> <<set _NewMercs = random(1,(_TradeShowAttendes/10))>> - <<set $mercFreeManpower += _NewMercs,$SFTradeShow.TotalMercs += _NewMercs>> - <<set $SFTradeShow.Mercs += _NewMercs>> - <</if>> <<set $SFTradeShow.History += 1>> -<</if>> <<if $SF.SpecOps === 1 && !$SF.SpecOpsLock>> <<set $SF.SpecOps = 0>> <</if>> -<<set $SF.U = 0,$SF.WG = 0,$SFColonel.Talk = 0,$SFColonel.Fun = 0>> \ No newline at end of file + <<set $mercFreeManpower += _NewMercs,$SF.MercCon.TotalMercs += _NewMercs>> + <<set $SF.MercCon.Mercs += _NewMercs>> + <</if>> <<set $SF.MercCon.History += 1>> +<</if>> <<if $SF.UC.Assign === 1 && !$SF.UC.Lock>> <<set $SF.UC.Assign = 0>> <</if>> +<<set $SF.Upgrade = 0,$SF.Gift = 0,$SF.Colonel.Talk = 0,$SF.Colonel.Fun = 0>> \ No newline at end of file diff --git a/src/SpecialForce/Upgrades.tw b/src/SpecialForce/Upgrades.tw index 49b647132d3cd03099c714fc0c62757faa786f95..9f9858fade6b6afe794fd139f1d9243f88e5625f 100644 --- a/src/SpecialForce/Upgrades.tw +++ b/src/SpecialForce/Upgrades.tw @@ -1,323 +1,321 @@ :: Upgrades [nobr] - <br><br>Total upgrade progress: <<print progress($SF.Units,_max)>> + <br><br>Total upgrade progress: <<print progress($SF.Size,_max)>> - <<if $SF.MWU >= 1>> <br>Total multi week $SF.Lower upgrades: $SF.MWU <</if>> + <<if $SF.Upgrade > 0 && ($SF.Size !== _max)>> + <<set _cost = Math.ceil(Math.abs($cash*.05*(1.25+($SF.Size/1000))))>> + <br>[[Re-unlock upgrading.|Firebase][$SF.Upgrade = 0,$cash -= _cost]] @@.yellowgreen;<<print cashFormat(_cost)>> <</if>> - <<if $SF.U > 0 && $SF.MWU >= 0 && ($SF.Units !== _max)>> - - <br>[[Re-unlock upgrading.|Firebase][$SF.U = 0,$SF.MWU += 1,$cash -= Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000))))]] @@.yellowgreen;<<print cashFormat(Math.ceil(Math.abs($cash*.05*(1.25+($SF.Units/1000)))))>><</if>> - - <<if ($SF.Units < 30 || $SF.Units !== _max) && $SF.U < 1>> <<set _T1 = $SF.Units >= 30>> + <<if ($SF.Size < 30 || $SF.Size !== _max) && $SF.Upgrade < 1>> <<set _T1 = $SF.Size >= 30>> <br>Which facility or equipment do you wish to upgrade this week? <br><br> - <<if $SFUnit.Firebase < 5||_T1 && $SFUnit.Firebase < _FU>> - - <<set _cF = Math.ceil(100000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Firebase/100)))>> - + <<if $SF.Squad.Firebase < 5||_T1 && $SF.Squad.Firebase < _FU>> + + <<set _cF = Math.ceil(100000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Firebase/100)))>> + <<if $cash >= _cF>> - - <<link "Upgrade Firebase">> <<set $SF.U = 1, $SFUnit.Firebase++, $cash -= _cF>><<goto "Firebase">><</link>> - + + <<link "Upgrade Firebase">> <<set $SF.Upgrade = 1, $SF.Squad.Firebase++, $cash -= _cF>><<goto "Firebase">><</link>> + <<else>>//Cannot afford to upgrade the Firebase.//<</if>> - - //Costs @@.yellowgreen;<<print cashFormat(_cF)>>@@ // - - <<elseif $SFUnit.Firebase == _FU>>//The Firebase has been fully upgraded.// - + + //Costs @@.yellowgreen;<<print cashFormat(_cF)>>@@ // + + <<elseif $SF.Squad.Firebase == _FU>>//The Firebase has been fully upgraded.// + <<else>>//More upgrades are required to unlock the next tier.// - - <</if>> <span style="float:right;"> <<print progress($SFUnit.Firebase)>> </span><br> + + <</if>> <span style="float:right;"> <<print progress($SF.Squad.Firebase)>> </span><br> - <<if $SFUnit.Armoury < 5||_T1 && $SFUnit.Armoury < _AU>> + <<if $SF.Squad.Armoury < 5||_T1 && $SF.Squad.Armoury < _AU>> - <<set _cA = Math.ceil(40000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Armoury/100)))>> + <<set _cA = Math.ceil(40000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Armoury/100)))>> <<if $cash >= _cA>> - <<link "Upgrade Armory">> <<set $SF.U = 1, $SFUnit.Armoury++, $cash -= _cA>> <<goto "Firebase">><</link>> + <<link "Upgrade Armory">> <<set $SF.Upgrade = 1, $SF.Squad.Armoury++, $cash -= _cA>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Armory.//<</if>> //Costs @@.yellowgreen;<<print cashFormat(_cA)>>@@ // - <<elseif $SFUnit.Armoury == _AU>>//The Armory has been fully upgraded.// + <<elseif $SF.Squad.Armoury == _AU>>//The Armory has been fully upgraded.// <<else>>//More upgrades are required to unlock the next tier.// - <</if>> <span style="float:right;"> <<print progress($SFUnit.Armoury)>> </span><br> + <</if>> <span style="float:right;"> <<print progress($SF.Squad.Armoury)>> </span><br> - <<if $SFUnit.Drugs < 5||_T1 && $SFUnit.Drugs < _DrugsU>> + <<if $SF.Squad.Drugs < 5||_T1 && $SF.Squad.Drugs < _DrugsU>> - <<set _cDrugs = Math.ceil(40000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drugs/100)))>> + <<set _cDrugs = Math.ceil(40000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Drugs/100)))>> <<if $cash >= _cDrugs>> - <<link "Upgrade Drug Lab">><<set $SF.U = 1, $SFUnit.Drugs++, $cash -= _cDrugs>> <<goto "Firebase">><</link>> + <<link "Upgrade Drug Lab">><<set $SF.Upgrade = 1, $SF.Squad.Drugs++, $cash -= _cDrugs>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Drug Lab.//<</if>> //Costs @@.yellowgreen;<<print cashFormat(_cDrugs)>>@@ // - <<elseif $SFUnit.Drugs == _DrugsU>>//The Drug Lab has been fully upgraded.// + <<elseif $SF.Squad.Drugs == _DrugsU>>//The Drug Lab has been fully upgraded.// <<else>>//More upgrades are required to unlock the next tier.// - <</if>> <span style="float:right;"> <<print progress($SFUnit.Drugs)>> </span><br> + <</if>> <span style="float:right;"> <<print progress($SF.Squad.Drugs)>> </span><br> - <<if $SFUnit.Firebase >= 2 && ($SFUnit.Drones < 5 ||_T1 && $SFUnit.Drones < _DU)>> + <<if $SF.Squad.Firebase >= 2 && ($SF.Squad.Drones < 5 ||_T1 && $SF.Squad.Drones < _DU)>> - <<set _cDrones = Math.ceil(45000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drones/100))*HSM())>> + <<set _cDrones = Math.ceil(45000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Drones/100))*HSM())>> <<if $cash >= _cDrones>> - <<link "Upgrade Drone Bay">><<set $SF.U = 1, $SFUnit.Drones++, $cash -= _cDrones>> <<goto "Firebase">> <</link>> + <<link "Upgrade Drone Bay">><<set $SF.Upgrade = 1, $SF.Squad.Drones++, $cash -= _cDrones>> <<goto "Firebase">> <</link>> <<else>>//Cannot afford to upgrade the Drone Bay.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(45000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Drones/100))*HSM()))>>@@ // <span style="float:right;"> <<print progress($SFUnit.Drones)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(45000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Drones/100))*HSM()))>>@@ // <span style="float:right;"> <<print progress($SF.Squad.Drones)>> </span> - <<elseif $SFUnit.Drones == _DU>>//The Drone Bay has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.Drones)>> </span> + <<elseif $SF.Squad.Drones == _DU>>//The Drone Bay has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.Drones)>> </span> - <<elseif _T1 && $SFUnit.Drones == 5>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.Drones)>> </span><</if>> + <<elseif _T1 && $SF.Squad.Drones == 5>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SF.Squad.Drones)>> </span><</if>> - <<if $SFUnit.Firebase >= 1 && $terrain !== "oceanic">><br>''Garage'' + <<if $SF.Squad.Firebase >= 1 && $terrain !== "oceanic">><br>''Garage'' - <div style="margin-left:2em"><<if ($SFUnit.AV < 5||_T1 && $SFUnit.AV < _AVU)>> + <div style="margin-left:2em"><<if ($SF.Squad.AV < 5||_T1 && $SF.Squad.AV < _AVU)>> - <<set _cAV = Math.ceil(60000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AV/100)))>> + <<set _cAV = Math.ceil(60000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.AV/100)))>> <<if $cash >= _cAV>> - <<link "Upgrade Attack Vehicle Fleet">><<set $SF.U = 1, $SFUnit.AV++, $cash -= _cAV>> <<goto "Firebase">><</link>> + <<link "Upgrade Attack Vehicle Fleet">><<set $SF.Upgrade = 1, $SF.Squad.AV++, $cash -= _cAV>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Attack Vehicle Fleet.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cAV)>>@@//<span style="float:right;"><<print progress($SFUnit.AV)>></span> + //Costs @@.yellowgreen;<<print cashFormat(_cAV)>>@@//<span style="float:right;"><<print progress($SF.Squad.AV)>></span> - <<elseif $SFUnit.AV == _AVU>>//The Attack Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.AV)>></span> + <<elseif $SF.Squad.AV == _AVU>>//The Attack Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SF.Squad.AV)>></span> - <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"><<print progress($SFUnit.AV)>></span> + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"><<print progress($SF.Squad.AV)>></span> <</if>></div> - <div style="margin-left:2em"><<if ($SFUnit.TV < 5||_T1 && $SFUnit.TV < _TVU)>> + <div style="margin-left:2em"><<if ($SF.Squad.TV < 5||_T1 && $SF.Squad.TV < _TVU)>> - <<set _cTV = Math.ceil(60000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.TV/100)))>> + <<set _cTV = Math.ceil(60000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.TV/100)))>> <<if $cash >= _cTV>> - <<link "Upgrade Transport Vehicle Fleet">><<set $SF.U = 1, $SFUnit.TV++, $cash -= _cTV>><<goto "Firebase">><</link>> + <<link "Upgrade Transport Vehicle Fleet">><<set $SF.Upgrade = 1, $SF.Squad.TV++, $cash -= _cTV>><<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Transport Vehicle Fleet.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cTV)>>@@//<span style="float:right;"><<print progress($SFUnit.TV)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cTV)>>@@//<span style="float:right;"><<print progress($SF.Squad.TV)>> </span> - <<elseif $SFUnit.TV == _TVU>>//The Transport Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.TV)>></span> + <<elseif $SF.Squad.TV == _TVU>>//The Transport Vehicle Fleet has been fully upgraded.//<span style="float:right;"><<print progress($SF.Squad.TV)>></span> - <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.TV)>> </span><</if>></div> + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SF.Squad.TV)>> </span><</if>></div> - <div style="margin-left:2em"><<if _T1 && $SFUnit.PGT < _PGTU>> + <div style="margin-left:2em"><<if _T1 && $SF.Squad.PGT < _PGTU>> - <<set _cPGT = Math.ceil(735000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.PGT/100)))>> + <<set _cPGT = Math.ceil(735000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.PGT/100)))>> <<if $cash >= _cPGT>> - <<link "Upgrade Prototype Goliath tank">><<set $SF.U = 1, $SFUnit.PGT++, $cash -= _cPGT>> <<goto "Firebase">><</link>> + <<link "Upgrade Prototype Goliath tank">><<set $SF.Upgrade = 1, $SF.Squad.PGT++, $cash -= _cPGT>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Prototype Goliath Tank.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cPGT)>>@@ //<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cPGT)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.PGT)>> </span> - <<elseif $SFUnit.PGT == _PGTU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span> + <<elseif $SF.Squad.PGT == _PGTU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.PGT)>> </span> - <<elseif $SFUnit.PGT == _PGTU>>//The Prototype Goliath Tank has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.PGT)>> </span><</if>></div><</if>> + <<elseif $SF.Squad.PGT == _PGTU>>//The Prototype Goliath Tank has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.PGT)>> </span><</if>></div><</if>> - <<if $SFUnit.Firebase >= 4>>''Hangar'' + <<if $SF.Squad.Firebase >= 4>>''Hangar'' - <div style="margin-left:2em"><<if $SFUnit.AA < 5||_T1 && $SFUnit.AA < _AAU>> + <div style="margin-left:2em"><<if $SF.Squad.AA < 5||_T1 && $SF.Squad.AA < _AAU>> - <<set _cAA = Math.ceil(70000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AA/100)))>> + <<set _cAA = Math.ceil(70000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.AA/100)))>> <<if $cash >= _cAA>> - <<link "Upgrade Attack Aircraft Fleet">><<set $SF.U = 1, $SFUnit.AA++, $cash -= _cAA>> <<goto "Firebase">><</link>> + <<link "Upgrade Attack Aircraft Fleet">><<set $SF.Upgrade = 1, $SF.Squad.AA++, $cash -= _cAA>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Attack Aircraft Fleet.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cAA)>>@@ //<span style="float:right;"> <<print progress($SFUnit.AA)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cAA)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.AA)>> </span> - <<elseif $SFUnit.AA == _AAU>>//The Attack Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.AA)>> </span> + <<elseif $SF.Squad.AA == _AAU>>//The Attack Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.AA)>> </span> - <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.AA)>> </span><</if>></div> + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SF.Squad.AA)>> </span><</if>></div> - <div style="margin-left:2em"><<if $SFUnit.TA < 5||_T1 && $SFUnit.TA < _TAU>> + <div style="margin-left:2em"><<if $SF.Squad.TA < 5||_T1 && $SF.Squad.TA < _TAU>> - <<set _cTA = Math.ceil(70000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.TA/100)))>> + <<set _cTA = Math.ceil(70000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.TA/100)))>> <<if $cash >= _cTA>> - <<link "Upgrade Transport Aircraft Fleet">><<set $SF.U = 1, $SFUnit.TA++, $cash -= _cTA>> <<goto "Firebase">><</link>> + <<link "Upgrade Transport Aircraft Fleet">><<set $SF.Upgrade = 1, $SF.Squad.TA++, $cash -= _cTA>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Transport Aircraft Fleet.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cTA)>>@@ //<span style="float:right;"> <<print progress($SFUnit.TA)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cTA)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.TA)>> </span> - <<elseif $SFUnit.TA == _TAU>>//The Transport Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.TA)>> </span> + <<elseif $SF.Squad.TA == _TAU>>//The Transport Aircraft Fleet has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.TA)>> </span> - <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SFUnit.TA)>> </span><</if>></div> + <<else>>//More upgrades are required to unlock the next tier.//<span style="float:right;"> <<print progress($SF.Squad.TA)>> </span><</if>></div> - <div style="margin-left:2em"><<if _T1 && $SFUnit.SpacePlane < _SPU>> + <div style="margin-left:2em"><<if _T1 && $SF.Squad.SpacePlane < _SPU>> - <<set _cSP = Math.ceil(250000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.SpacePlane/100))*HSM())>> + <<set _cSP = Math.ceil(250000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.SpacePlane/100))*HSM())>> <<if $cash >= _cSP>> - <<link "Upgrade Spaceplane">><<set $SF.U = 1, $SFUnit.SpacePlane++, $cash -= _cSP>> <<goto "Firebase">><</link>> + <<link "Upgrade Spaceplane">><<set $SF.Upgrade = 1, $SF.Squad.SpacePlane++, $cash -= _cSP>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Spaceplane.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cSP)>>@@//<span style="float:right;"><<print progress($SFUnit.SpacePlane)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cSP)>>@@//<span style="float:right;"><<print progress($SF.Squad.SpacePlane)>> </span> - <<elseif $SFUnit.SpacePlane == _SPU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.SpacePlane)>> </span> + <<elseif $SF.Squad.SpacePlane == _SPU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.SpacePlane)>> </span> - <<elseif $SFUnit.SpacePlane == _SPU>>//The Spaceplane has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.SpacePlane)>> </span><</if>></div> + <<elseif $SF.Squad.SpacePlane == _SPU>>//The Spaceplane has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.SpacePlane)>> </span><</if>></div> - <div style="margin-left:2em"><<if _T1 && $SFUnit.GunS < _GunSU>> + <div style="margin-left:2em"><<if _T1 && $SF.Squad.GunS < _GunSU>> - <<set _cGunS = Math.ceil(350000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.GunS/100))*HSM())>> + <<set _cGunS = Math.ceil(350000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.GunS/100))*HSM())>> <<if $cash >= _cGunS>> - <<link "Upgrade Gunship">><<set $SF.U = 1, $SFUnit.GunS++, $cash -= _cGunS>><<goto "Firebase">><</link>> + <<link "Upgrade Gunship">><<set $SF.Upgrade = 1, $SF.Squad.GunS++, $cash -= _cGunS>><<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Gunship.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cGunS)>>@@ //<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cGunS)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.GunS)>> </span> - <<elseif $SFUnit.GunS == _GunSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span> + <<elseif $SF.Squad.GunS == _GunSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.GunS)>> </span> - <<elseif $SFUnit.GunS == _GunSU>>//The Gunship has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.GunS)>> </span><</if>></div><</if>> + <<elseif $SF.Squad.GunS == _GunSU>>//The Gunship has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.GunS)>> </span><</if>></div><</if>> <<if _T1>>''Launch Bay'' - <div style="margin-left:2em"><<if $SFUnit.Satellite < _SatU && $SatLaunched < 1>> + <div style="margin-left:2em"><<if $SF.Squad.Satellite.lv < _SatU && $SF.Squad.Satellite.InOrbit < 1>> - <<set _cSat = Math.ceil(525000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Satellite/100))*HSM())>> + <<set _cSat = Math.ceil(525000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Satellite.lv/100))*HSM())>> <<if $cash >= _cSat>> - <<link "Upgrade Satellite">><<set $SF.U = 1, $SFUnit.Satellite++, $cash -= _cSat>> <<goto "Firebase">><</link>> + <<link "Upgrade Satellite">><<set $SF.Upgrade = 1, $SF.Squad.Satellite.lv++, $cash -= _cSat>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Satellite.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cSat)>>@@//<span style="float:right;"><<print progress($SFUnit.Satellite)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cSat)>>@@//<span style="float:right;"><<print progress($SF.Squad.Satellite.lv)>> </span> - <<elseif $SFUnit.Satellite == _SatU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.Satellite)>> </span> + <<elseif $SF.Squad.Satellite.lv == _SatU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.Satellite.lv)>> </span> - <<else>>//The Satellite has been fully upgraded.//<span style="float:right;"><<print progress($SFUnit.Satellite)>></span><</if>></div> + <<else>>//The Satellite has been fully upgraded.//<span style="float:right;"><<print progress($SF.Squad.Satellite.lv)>></span><</if>></div> <<if $terrain !== "oceanic">> - <div style="margin-left:2em"><<if $SFUnit.GiantRobot < _GRU>> + <div style="margin-left:2em"><<if $SF.Squad.GiantRobot < _GRU>> - <<set _cGR = Math.ceil(550000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.GiantRobot/100))*HSM())>> + <<set _cGR = Math.ceil(550000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.GiantRobot/100))*HSM())>> <<if $cash >= _cGR>> - <<link "Upgrade Giant Robot">><<set $SF.U = 1, $SFUnit.GiantRobot++, $cash -= _cGR>> <<goto "Firebase">><</link>> + <<link "Upgrade Giant Robot">><<set $SF.Upgrade = 1, $SF.Squad.GiantRobot++, $cash -= _cGR>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade the Giant Robot.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cGR)>>@@//<span style="float:right;"><<print progress($SFUnit.GiantRobot)>></span> + //Costs @@.yellowgreen;<<print cashFormat(_cGR)>>@@//<span style="float:right;"><<print progress($SF.Squad.GiantRobot)>></span> - <<elseif $SFUnit.GiantRobot == _GRU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.GiantRobot)>> </span> + <<elseif $SF.Squad.GiantRobot == _GRU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.GiantRobot)>> </span> - <<else>>//The Giant Robot has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.GiantRobot)>> </span><</if>></div><</if>> + <<else>>//The Giant Robot has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.GiantRobot)>> </span><</if>></div><</if>> - <div style="margin-left:2em"><<if $SFUnit.MissileSilo < _MSU>> + <div style="margin-left:2em"><<if $SF.Squad.MissileSilo < _MSU>> - <<set _cMS = Math.ceil(565000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.MissileSilo/100))*HSM())>> + <<set _cMS = Math.ceil(565000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.MissileSilo/100))*HSM())>> <<if $cash >= _cMS>> - <<link "Upgrade Cruise Missile">><<set $SF.U = 1, $SFUnit.MissileSilo++, $cash -= _cMS>> <<goto "Firebase">><</link>> + <<link "Upgrade Cruise Missile">><<set $SF.Upgrade = 1, $SF.Squad.MissileSilo++, $cash -= _cMS>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Cruise Missile.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cMS)>>@@ //<span style="float:right;"><<print progress($SFUnit.MissileSilo)>></span> + //Costs @@.yellowgreen;<<print cashFormat(_cMS)>>@@ //<span style="float:right;"><<print progress($SF.Squad.MissileSilo)>></span> - <<elseif $SFUnit.MissileSilo == _MSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.MissileSilo)>> </span> + <<elseif $SF.Squad.MissileSilo == _MSU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.MissileSilo)>> </span> - <<else>>//The Cruise Missile has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.MissileSilo)>> </span><</if>></div><</if>> + <<else>>//The Cruise Missile has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.MissileSilo)>> </span><</if>></div><</if>> <<if _T1 && ($terrain == "oceanic" || $terrain == "marine")>>''Naval Yard'' - <div style="margin-left:2em"><<if $SFUnit.AircraftCarrier < _ACU>> + <div style="margin-left:2em"><<if $SF.Squad.AircraftCarrier < _ACU>> - <<set _cAC = Math.ceil(650000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AircraftCarrier/100))*HSM())>> + <<set _cAC = Math.ceil(650000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.AircraftCarrier/100))*HSM())>> <<if $cash >= _cAC>> - <<link "Upgrade Aircraft Carrier">><<set $SF.U = 1, $SFUnit.AircraftCarrier++, $cash -= _cAC>> <<goto "Firebase">><</link>> + <<link "Upgrade Aircraft Carrier">><<set $SF.Upgrade = 1, $SF.Squad.AircraftCarrier++, $cash -= _cAC>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Aircraft Carrier.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(650000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.AircraftCarrier/100))*HSM()))>>@@ //<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(Math.ceil(650000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.AircraftCarrier/100))*HSM()))>>@@ //<span style="float:right;"> <<print progress($SF.Squad.AircraftCarrier)>> </span> - <<elseif $SFUnit.AircraftCarrier == _ACU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span> + <<elseif $SF.Squad.AircraftCarrier == _ACU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.AircraftCarrier)>> </span> - <<else>>//The Aircraft Carrier has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.AircraftCarrier)>> </span><</if>></div> + <<else>>//The Aircraft Carrier has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.AircraftCarrier)>> </span><</if>></div> - <div style="margin-left:2em"><<if $SFUnit.Sub < _SubU>> + <div style="margin-left:2em"><<if $SF.Squad.Sub < _SubU>> - <<set _cSub = Math.ceil(700000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.Sub/100))*HSM())>> + <<set _cSub = Math.ceil(700000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.Sub/100))*HSM())>> <<if $cash >= _cSub>> - <<link "Upgrade Submarine">><<set $SF.U = 1, $SFUnit.Sub++, $cash -= _cSub>> <<goto "Firebase">><</link>> + <<link "Upgrade Submarine">><<set $SF.Upgrade = 1, $SF.Squad.Sub++, $cash -= _cSub>> <<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Submarine//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cSub)>>@@ //<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cSub)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.Sub)>> </span> - <<elseif $SFUnit.Sub == _SubU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span> + <<elseif $SF.Squad.Sub == _SubU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.Sub)>> </span> - <<else>>//The Submarine has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.Sub)>> </span><</if>></div> + <<else>>//The Submarine has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.Sub)>> </span><</if>></div> - <div style="margin-left:2em"><<if $SFUnit.HAT < _HATU>> + <div style="margin-left:2em"><<if $SF.Squad.HAT < _HATU>> - <<set _cHAT = Math.ceil(665000*_Env*(1.15+($SF.Units/10))*(1.15+($SFUnit.HAT/100)))>> + <<set _cHAT = Math.ceil(665000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Squad.HAT/100)))>> <<if $cash >= _cHAT>> - <<link "Upgrade Amphibious Transport">><<set $SF.U = 1, $SFUnit.HAT++, $cash -= _cHAT>><<goto "Firebase">><</link>> + <<link "Upgrade Amphibious Transport">><<set $SF.Upgrade = 1, $SF.Squad.HAT++, $cash -= _cHAT>><<goto "Firebase">><</link>> <<else>>//Cannot afford to upgrade Amphibious Transport.//<</if>> - //Costs @@.yellowgreen;<<print cashFormat(_cHAT)>>@@ //<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span> + //Costs @@.yellowgreen;<<print cashFormat(_cHAT)>>@@ //<span style="float:right;"> <<print progress($SF.Squad.HAT)>> </span> - <<elseif $SFUnit.HAT == _HATU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span> + <<elseif $SF.Squad.HAT == _HATU && $PC.warfare < 75>>//Your warfare skill is not high enough unlock the next upgrade.//<span style="float:right;"> <<print progress($SF.Squad.HAT)>> </span> - <<else>>//The Amphibious Transport has been fully upgraded.//<span style="float:right;"> <<print progress($SFUnit.HAT)>> </span><</if>></div> + <<else>>//The Amphibious Transport has been fully upgraded.//<span style="float:right;"> <<print progress($SF.Squad.HAT)>> </span><</if>></div> <</if>> @@ -327,11 +325,11 @@ /* <div style="margin-left:2em"><<if _T1 && $SF.Facility.Toggle > 0 && $SF.Facility.Active < 1>> - <<set _cSFF = Math.ceil(735000*_Env*(1.15+($SF.Units/10))*(1.15+($SF.Facility.Active/100)))>> + <<set _cSFF = Math.ceil(735000*_Env*(1.15+($SF.Size/10))*(1.15+($SF.Facility.Active/100)))>> <<if $cash >= _cSFF>> - <<link "Build $SF.Lower's support facility">><<set $SF.U = 1, $SF.Facility.Active++, $cash -= _cSFF>><<goto "Firebase">><</link>> + <<link "Build $SF.Lower's support facility">><<set $SF.Upgrade = 1, $SF.Facility.Active++, $cash -= _cSFF>><<goto "Firebase">><</link>> <<else>>//Cannot afford to build $SF.Lower's support facility.//<</if>> diff --git a/src/SpecialForce/WeeklyChoices.tw b/src/SpecialForce/WeeklyChoices.tw index d13b4777e6fb10d947aaf936cff961898bedaa58..7f554aead7e6851340d31dcd8ee58abd9b44a56c 100644 --- a/src/SpecialForce/WeeklyChoices.tw +++ b/src/SpecialForce/WeeklyChoices.tw @@ -1,53 +1,53 @@ :: WC [nobr] -<<if $SF.WG === 0 && $SFTradeShow.CanAttend === -1 && ($SFColonel.Talk + $SFColonel.Fun !== 1)>> +<<if $SF.Gift === 0 && $SF.MercCon.CanAttend === -1 && ($SF.Colonel.Talk + $SF.Colonel.Fun !== 1)>> The Colonel looks down a list on her tablet. "There's some things we can do to help you out, boss. <br>We've had some good prizes turn up, that's made us some extra money we could turn over. | <<link "Request cash""Firebase">> - /*<<set $CashGift = ((Math.ceil((Math.abs($cash)*0.05)*(Math.max(0.99,$SF.Units))))*($arcologies[0].prosperity/100))*_Env>> OLD*/ - <<set $CashGift = Math.ceil(25000*($SF.Units/10)*_Env),$SF.WG = 1,$choice = 1>> + /*<<set $CashGift = ((Math.ceil((Math.abs($cash)*0.05)*(Math.max(0.99,$SF.Size))))*($arcologies[0].prosperity/100))*_Env>> OLD*/ + <<set $CashGift = Math.ceil(25000*($SF.Size/10)*_Env),$SF.Gift = 1,$choice = 1>> <<set $CashGift = ($CashGift > 5000 ? $CashGift : 5000),$cash += $CashGift>> <</link>> <<if $rep < 20000>> <br>If you want we could throw a quick military parade, get the people feeling extra patriotic. | <<link "Request military parade""Firebase">> - <<set $GoodWords1 += 50*(Math.ceil($SF.Units*0.03*_Env))>> - <<set $GoodWords1 = (Number($GoodWords1) ? $GoodWords1 : 500),$SF.WG = 1>> + <<set $GoodWords1 += 50*(Math.ceil($SF.Size*0.03*_Env))>> + <<set $GoodWords1 = (Number($GoodWords1) ? $GoodWords1 : 500),$SF.Gift = 1>> <<set $rep += $GoodWords1,$choice = 2>> <</link>> <</if>> <<if $arcologies[0].prosperity < $AProsperityCap>> <br>Or we could hit some businesses that rival the ones in $arcologies[0].name with some sabotage. | <<link "Request sabotage""Firebase">> - <<set $GoodWords2 = _EnvProsp+(Math.ceil($SF.Units/100*_Env)),$SF.WG = 1,$choice = 3>> + <<set $GoodWords2 = _EnvProsp+(Math.ceil($SF.Size/100*_Env)),$SF.Gift = 1,$choice = 3>> <<if $arcologies[0].prosperity + $GoodWords2 > $AProsperityCap>> <<set $arcologies[0].prosperity = $AProsperityCap>> <<else>> <<set $arcologies[0].prosperity += $GoodWords2>> <</if>> <</link>> <</if>> -<<elseif $SF.WG == 0 && ($SFTradeShow.CanAttend > -1 || ($SFColonel.Talk + $SFColonel.Fun > 0))>> +<<elseif $SF.Gift == 0 && ($SF.MercCon.CanAttend > -1 || ($SF.Colonel.Talk + $SF.Colonel.Fun > 0))>> <br>He looks down a list on his tablet. "<<if $PC.title != 0>>Sir<<else>>Ma'am<</if>>, how can $SF.Lower help you this week? <br>$SF.Caps can spare some profits from our recent operations. | <<link "Request cash""Firebase">> - <<set $CashGift = 25000*($SF.Units/10)*_Env,$SF.WG = 1,$choice = 1>> + <<set $CashGift = 25000*($SF.Size/10)*_Env,$SF.Gift = 1,$choice = 1>> <<set $CashGift = ($CashGift > 5000 ? $CashGift : 5000),$cash += Math.ceil($CashGift * 0.8)>> <</link>> <<if $rep < 20000>> <br>We can set some units aside for a ceremonial march through the arcology. | <<link "Request a parade""Firebase">> - <<set $GoodWords1 += 50*(Math.ceil($SF.Units*0.03*_Env))>> - <<set $GoodWords1 = (Number($GoodWords1) ? $GoodWords1 : 500),$SF.WG = 1>> + <<set $GoodWords1 += 50*(Math.ceil($SF.Size*0.03*_Env))>> + <<set $GoodWords1 = (Number($GoodWords1) ? $GoodWords1 : 500),$SF.Gift = 1>> <<set $rep += Math.ceil($GoodWords1*0.8),$choice = 2>> <</link>> <</if>> <<if $arcologies[0].prosperity < $AProsperityCap>> <br>Or we can target rival businesses for sabotage. | <<link "Request sabotage""Firebase">> - <<set $GoodWords2 = _EnvProsp+(Math.ceil($SF.Units/100*_Env)),$SF.WG = 1,$choice = 3>> + <<set $GoodWords2 = _EnvProsp+(Math.ceil($SF.Size/100*_Env)),$SF.Gift = 1,$choice = 3>> <<if $arcologies[0].prosperity + $GoodWords2 * 0.8 > $AProsperityCap>> <<set $arcologies[0].prosperity = $AProsperityCap>> <<else>> <<set $arcologies[0].prosperity += Math.ceil($GoodWords2*0.8)>> <</if>> <</link>> <</if>> <</if>> -<<if $SFColonel.Talk === 0 && $SFColonel.Fun === 0 && $SFTradeShow.CanAttend === -1>> <span id="result0"> +<<if $SF.Colonel.Talk === 0 && $SF.Colonel.Fun === 0 && $SF.MercCon.CanAttend === -1>> <span id="result0"> <br><br>If you need me for anything else, let me know."<br> - <<if $SFColonel.Status >= 25>> + <<if $SF.Colonel.Status >= 25>> <<link "Walk with the Colonel on the surface.">> <<replace "#result0">> - <<set $SFColonel.Talk = 1>> + <<set $SF.Colonel.Talk = 1>> <br><br>You ask the Colonel if she would like to stretch her legs up on the surface. It doesn't take much effort for her to agree. <<if $PC.warfare >= 100 && $PC.career == "mercenary">> Your mastery of wet work and prior experience in a PMC satisfies the Colonel that between you<<if $Bodyguard != 0>>, $Bodyguard.slaveName,<</if>> and her, there should be little threat to walking around the arcology. Being able to see and interact with the arcology owner directly maintains the false idea that you're just like one of them while also giving them an increased opportunity to try gaining your favor. @@ -65,7 +65,7 @@ Your complete lack of combat skill convinces the Colonel that <<if $Bodyguard != 0>>in addition to $Bodyguard.slaveName, <</if>>you need two full squads of armed soldiers, an armored car escort, and a sniper overwatch for a simple walk around the arcology. <</if>> <br>As you make your way through the arcology you stop at a <<if $arcologies[0].FSPaternalist != "unset">> - paternalist shop, <<if $SFColonel.Core == "cruel">>earning a sneer from the Colonel.<<else>>helping the Colonel select some luxurious and relaxing slave treatments.<</if>> + paternalist shop, <<if $SF.Colonel.Core == "cruel">>earning a sneer from the Colonel.<<else>>helping the Colonel select some luxurious and relaxing slave treatments.<</if>> <<elseif $arcologies[0].FSPastoralist != "unset">> pastoralist shop, helping the Colonel select a more comfortable breast pump. <<else>>shop that catches the Colonel's eye. <</if>> @@ -104,14 +104,14 @@ Your total lack of surgical skill causes the death of the citizen through repeated medical blunders. <<set $arcologies[0].prosperity -= .25>><</if>> <</if>> - <<set $SFColonel.Status += 2>> <</replace>> <</link>> + <<set $SF.Colonel.Status += 2>> <</replace>> <</link>> <</if>> <br> <<link "Talk in $SF.Lower's HQ.">> <<replace "#result0">> <span id="result1"> <br><br>What do you want to do with the Colonel in the HQ? <br> <<link "Talk">><<replace "#result1">> <br><br>You and the Colonel talk over some $PC.refreshment, where she ends up talking about her past. You learn a little more about her. - <<set $SFColonel.Status +=3>> + <<set $SF.Colonel.Status +=3>> <<switch random(1,6)>> <<case 1>> <<set $PC.medicine += 1>><<set $PC.trading += 1>><<set $PC.slaving += 1>> @@ -129,7 +129,7 @@ <</replace>><</link>> <br> <<link "Learn">> <<replace "#result1">> - <<set $SFColonel.Talk = 1,$SFColonel.Status += 1>> + <<set $SF.Colonel.Talk = 1,$SF.Colonel.Status += 1>> <br><br>"Sure boss, I can use a break from all of this," she laughs. The Colonel tells a story about one time when she <<switch random(1,6)>> <<case 1>> @@ -153,49 +153,49 @@ <</switch>> <</replace>> <</link>> - <<if $SFColonel.Status >= 45>> <br> <<link "Have some fun.">> <<replace "#result1">> <span id="result4"> - <<set $SFColonel.Fun = 1,$SFColonel.Talk = 1,$SFColonel.Status += 3>> + <<if $SF.Colonel.Status >= 45>> <br> <<link "Have some fun.">> <<replace "#result1">> <span id="result4"> + <<set $SF.Colonel.Fun = 1,$SF.Colonel.Talk = 1,$SF.Colonel.Status += 3>> <br>Where should this fun take place? <<link "Go back""Firebase">> - <<set $SFColonel.Fun = 0, $SFColonel.Talk = 0,$SFColonel.Status -= 3>> + <<set $SF.Colonel.Fun = 0, $SF.Colonel.Talk = 0,$SF.Colonel.Status -= 3>> <</link>> <br> <<link "In private">> <<replace "#result4">> <span id="result6"> <br>Which orifice do you wish to target? <<link "Go back""Firebase">> <</link>> <br> <<link "Pussy">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "Ass">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "Both pussy and ass">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 2>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 2>> <</link>> <br> <<link "Mouth">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "All three holes">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 3>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 3>> <</link>> </span> <</replace>> <</link>> <br> <<link "On The Colonel's throne.">> <<replace "#result4">> <span id="result6"> <br>Which orifice do you wish to target? <<link "Go back""Firebase">> <</link>> <br> <<link "Pussy">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "Ass">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "Both pussy and ass">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 2>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 2>> <</link>> <br> <<link "Mouth">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 1>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 1>> <</link>> <br> <<link "All three holes">> <<replace "#result6">> - <<include "SFColonelSexDec">> - <</replace>> <<set $SFColonel.Fun += 3>> <</link>> + <<include "SF.ColonelSexDec">> + <</replace>> <<set $SF.Colonel.Fun += 3>> <</link>> </span> <</replace>> </span> <</link>> </span> <</replace>> <</link>> <</if>> /*Closes fun*/ </span> <</replace>> <</link>> /*Closes talk*/ diff --git a/src/init/dummy.tw b/src/init/dummy.tw index f820ed1211b4159563bf6fc6ebe45c798b882b85..cc5417ebcd6d1430c7e7925e7c8c7fe372c62e03 100644 --- a/src/init/dummy.tw +++ b/src/init/dummy.tw @@ -23,7 +23,5 @@ $PC.origRace, $PC.origSkin $isReady, $fatherID, $servantsQuartersSpots $sEnunciate, $SEnunciate, $ssEnunciate, $cEnunciate, $ccEnunciate, $zEnunciate, $shEnunciate, $ShEnunciate, $xEnunciate -$Girl, -$securityForceRecruit, $securityForceTrade,$securityForceBooty, $securityForceIncome, $securityForceMissionEfficiency,$securityForceProfitable, $TierTwoUnlock -$farmyardSpots +$Girl, $farmyardSpots */ diff --git a/src/interaction/researchLab.tw b/src/interaction/researchLab.tw index 09a5cc2f0c7f4cdfdf9cbd2d8e2ce8138e19980a..af980ed1a51b094abdfbed1d61f381da1c0fc37f 100644 --- a/src/interaction/researchLab.tw +++ b/src/interaction/researchLab.tw @@ -150,9 +150,9 @@ <<if $researchLab.electrolarynx == 0 && $stockpile.electrolarynx > 0>><br> [[Reverse engineer electrolarynx|Research Lab][$stockpile.electrolarynx -= 1,$researchLab.productionTime = 80,$researchLab.research = "Electrolarynx"]] <</if>> - <<if $researchLab.erectileImplant == 0 && $stockpile.erectileImplant > 0>><br> + /*<<if $researchLab.erectileImplant == 0 && $stockpile.erectileImplant > 0>><br> [[Reverse engineer erectile implant|Research Lab][$stockpile.erectileImplant -= 1,$researchLab.productionTime = 100,$researchLab.research = "Erectile implant"]] - <</if>> + <</if>>*/ <</if>> <br><br> @@ -195,11 +195,15 @@ <<if $researchLab.electrolarynx == 1>><br> [[Build electrolarynx|Research Lab][$researchLab.productionTime = 60,$researchLab.manufacture = "Electrolarynx"]] // Currently have: $stockpile.electrolarynx// <</if>> - <<if $researchLab.erectileImplant == 1>><br> + /*<<if $researchLab.erectileImplant == 1>><br> [[Build erectile implant|Research Lab][$researchLab.productionTime = 50,$researchLab.manufacture = "Erectile implant"]] // Costs <<print cashFormat(25000)>>. Currently have: $stockpile.erectileImplant// - <</if>> + <</if>>*/ <</if>> +<<if $researchLab.manufacture != "none"||$researchLab.research != "none">> + <br><br> <<= ResearchLabStockPile()>> +<</if>> + <<case 1>> <<set $temp = 0>> <<set $nextLink = "Research Lab">> diff --git a/src/js/assayJS.tw b/src/js/assayJS.tw index b909b9d3b6ae950b6e804c864d83fff5c128fc1f..62175285b478fcff3b7d449e476e06111e37dab0 100644 --- a/src/js/assayJS.tw +++ b/src/js/assayJS.tw @@ -736,6 +736,20 @@ window.PCTitle = function PCTitle() { } } + if (V.SF.Active < -1) { + switch(V.SF.BadOutcome) { + case "lockdown": + titles.push("The War Host"); + break; + case "Revolt": + titles.push("The Betrayed"); + break; + case "Exodus": + titles.push("The Abandoned"); + break; + } + } + if (V.mercenaries >= 5) { if (V.mercenariesTitle === "Evocati") { titles.push("Princeps of the " + V.mercenariesTitle); diff --git a/src/js/economyJS.tw b/src/js/economyJS.tw index 9b375c4d5e4f8ba1c0b25494cbef5a20998f9864..6ef2b127b9da8acf0e296ae72fda8a0c543fd247 100644 --- a/src/js/economyJS.tw +++ b/src/js/economyJS.tw @@ -327,7 +327,7 @@ window.getCost = function(array) { if(State.variables.SF.Toggle && State.variables.SF.Active >= 1) { if(State.variables.SF.Subsidy) { - costs += Math.ceil( (10000*(State.variables.SFUnit.Troops/10))+(1+(State.variables.arcologies[0].prosperity/100))+(1+(State.variables.SF.Units/100)) ); + costs += Math.ceil( (10000*(State.variables.SF.Squad.Troops/10))+(1+(State.variables.arcologies[0].prosperity/100))+(1+(State.variables.SF.Size/100)) ); } if(State.variables.SF.Bonus) { const T = State.temporary; diff --git a/src/js/utilJS.tw b/src/js/utilJS.tw index 2c05fc54bb5f4ac126c650b6ec628c29c2f912b8..59655e0c63c72be8a6088be6b47f752ad7007acd 100644 --- a/src/js/utilJS.tw +++ b/src/js/utilJS.tw @@ -1054,4 +1054,25 @@ window.induceLactation = function induceLactation(slave) { } } return r; +} + +window.ResearchLabStockPile = function() { + return `__Stockpile__ + Prosthetics interfaces: <<print commaNum($stockpile.basicPLimbInterface+ + $stockpile.advPLimbInterface)>> + Basic : $stockpile.basicPLimbInterface + Advanced: $stockpile.advPLimbInterface + Limbs: <<print commaNum($stockpile.basicPLimb+$stockpile.advSexPLimb+ + $stockpile.advGracePLimb+$stockpile.advCombatPLimb+$stockpile.cyberneticPLimb)>> + Basic: $stockpile.basicPLimb + Sex: $stockpile.advSexPLimb + Beauty: $stockpile.advGracePLimb + Combat: $stockpile.advCombatPLimb + Cybernetic: $stockpile.cyberneticPLimb + Implants: <<print commaNum($stockpile.ocularImplant+$stockpile.cochlearImplant + +$stockpile.erectileImplant)>> + Ocular: $stockpile.ocularImplant + Cochlear: $stockpile.cochlearImplant + // Erectile: $stockpile.erectileImplant + Electrolarynx: $stockpile.electrolarynx` } \ No newline at end of file diff --git a/src/pregmod/eliteTakeOverResult.tw b/src/pregmod/eliteTakeOverResult.tw index dd187bfd70a8019bef2d55bd01806f3f3d438782..dd8508e6dcf9a4cd7c27c6ac24cb2ad4680951ba 100644 --- a/src/pregmod/eliteTakeOverResult.tw +++ b/src/pregmod/eliteTakeOverResult.tw @@ -91,11 +91,11 @@ <</replace>> <</link>> </span> - <<if $SFTradeShow.CanAttend === -1>> - <<switch $ColonelCore>> + <<if $SF.MercCon.CanAttend === -1>> + <<switch $SF.Colonel.Core>> <<case "kind">> The Colonel is shocked that you would allow her troops to do this but understands that it comes with the territory. <<if _SFHappyEverAfter == 1>>Thanks for being kind to one of my soldiers.<</if>> - <<case "warmonger" "cruel" "sociopathic" "jaded" "brazen" "psychopathic" "mischievous">> + <<case "brazen""jaded""cruel">> The Colonel is grateful that you let her troops let off some steam. <<if _SFHappyEverAfter == 1>>Thanks for being kind to one of my soldiers.<</if>> <</switch>> <</if>> diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw index bbc7477bcf18ab549a87e9c9c90686eb12ad4cb8..38d97b0ba24e087458561c2f0259a9033947d08c 100644 --- a/src/uncategorized/BackwardsCompatibility.tw +++ b/src/uncategorized/BackwardsCompatibility.tw @@ -1120,121 +1120,9 @@ <<set $drugAssetPrice = 10>> <</if>> -/*SFVAR*/ -<<if ndef $SF>> - <<if $securityForceEventSeen < 1>> <<set $securityForceActive = -1>> <<else>> <<set $securityForceActive = 2>> <</if>> - - <<set $SF = {Toggle:$SFMODToggle, Active:$securityForceActive}>> - <<unset $SFMODToggle, $securityForceActive, $securityForceCreate, $securityForceEventSeen>> - <<if ndef $securityForceName>><<set $securityForceName = "the special force">><</if>> - <<if $SF.Active >= 1>> - <<run Object.assign($SF, { - Depravity:$securityForceDepravity, - Units:$SFAO, - MWU:$securityForceUpgradeTokenReset, - U:$securityForceUpgradeToken, - WG:$securityForceGiftToken, - SpecOps:0, - SpecOpsLock:0, - ROE:$securityForceRulesOfEngagement, - Target:$securityForceFocus, - Regs:$securityForceAccountability, - Caps:"The Special Force", - Lower:$securityForceName, - Subsidy:$SubsidyActive})>> - <<unset $securityForceActive, $securityForceRecruit, $securityForceTrade, $securityForceBooty, $securityForceIncome, $securityForceMissionEfficiency, $securityForceProfitable, $TierTwoUnlock, $securityForceDepravity, $SFAO, $securityForceUpgradeTokenReset, $securityForceUpgradeToken, $securityForceGiftToken, $securityForceRulesOfEngagement, $securityForceFocus, $securityForceAccountability, $securityForceName, $SubsidyActive>> - <<if $SF.Lower != "the special force">><<set $SF.Caps = $SF.Lower.replace("the ", "The ")>><</if>> - - <<if ndef $ColonelCore>><<set $ColonelCore = "">><</if>> - <<if ndef $ColonelDiscussion>><<set $ColonelDiscussion = 0>><</if>> - <<if ndef $ColonelSexed>><<set $ColonelSexed = 0>><</if>> - <<set $SFColonel = { - Core:$ColonelCore, - Talk:$securityForceColonelToken, - Fun:$securityForceColonelSexed, - Status:$ColonelRelationship}>> - <<unset $ColonelCore, $securityForceColonelToken, $securityForceColonelSexed, $ColonelRelationship>> - - <<if ndef $TradeShowIncome>><<set $TradeShowIncome = 0>><</if>> - <<if ndef $TotalTradeShowIncome>><<set $TotalTradeShowIncome = 0>><</if>> - <<if ndef $TradeShowHelots>><<set $TradeShowHelots = 0>><</if>> - <<if ndef $TotalTradeShowHelots>><<set $TotalTradeShowHelots = 0>><</if>> - <<set $SFTradeShow = { - History:$OverallTradeShowAttendance, - CanAttend:$CurrentTradeShowAttendance, - Income:$TradeShowIncome, - Revenue:$TotalTradeShowIncome, - Helots:$TradeShowHelots, - TotalHelots:$TotalTradeShowHelots, - Mercs:0, - TotalMercs:0}>> - <<unset $OverallTradeShowAttendance, $CurrentTradeShowAttendance, $TradeShowIncome, $TotalTradeShowIncome, $TradeShowHelots, $TotalTradeShowHelots>> - <<if $SFTradeShow.History > 0>> <<set $SFTradeShow.View = 1>> <</if>> - - <<if ndef $securityForceHeavyBattleTank>><<set $securityForceHeavyBattleTank = 0>><</if>> - <<if ndef $securityForceSpacePlanePower>><<set $securityForceSpacePlanePower = 0>><</if>> - <<if ndef $securityForceAC130>><<set $securityForceAC130 = 0>><</if>> - <<if ndef $securityForceSatellitePower>><<set $securityForceSatellitePower = 0>><</if>> - <<if ndef $securityForceGiantRobot>><<set $securityForceGiantRobot = 0>><</if>> - <<if ndef $securityForceMissileSilo>><<set $securityForceMissileSilo = 0>><</if>> - <<if ndef $securityForceAircraftCarrier>><<set $securityForceAircraftCarrier = 0>><</if>> - <<if ndef $securityForceSubmarine>><<set $securityForceSubmarine = 0>><</if>> - <<if ndef $securityForceHeavyAmphibiousTransport>><<set $securityForceHeavyAmphibiousTransport = 0>><</if>> - <<set $SFUnit = { - Troops:$securityForcePersonnel, - Armoury:$securityForceInfantryPower, - Firebase:$securityForceArcologyUpgrades, - AV:$securityForceVehiclePower, - TV:$securityForceVehiclePower, - Drones:$securityForceDronePower, - Drugs:$securityForceStimulantPower, - PGT:$securityForceHeavyBattleTank, - AA:$securityForceAircraftPower, - TA:$securityForceAircraftPower, - SpacePlane:$securityForceSpacePlanePower, - GunS:$securityForceAC130, - Satellite:$securityForceSatellitePower, - GiantRobot:$securityForceGiantRobot, - MissileSilo:$securityForceMissileSilo, - AircraftCarrier:$securityForceAircraftCarrier, - Sub:$securityForceSubmarine, - HAT:$securityForceHeavyAmphibiousTransport}>> - <<set $SatLaunched = 0>> - <<unset $securityForcePersonnel, $securityForceInfantryPower, $securityForceArcologyUpgrades, $securityForceVehiclePower, $securityForceDronePower, $securityForceStimulantPower, $securityForceHeavyBattleTank, $securityForceAircraftPower, $securityForceSpacePlanePower,$securityForceAC130, $securityForceSatellitePower, $securityForceGiantRobot, $securityForceMissileSilo, $securityForceAircraftCarrier, $securityForceSubmarine, $securityForceHeavyAmphibiousTransport>> - <<else>> - <<run Object.assign($SF, {Depravity:0, Units:0, MWU:0, U:0, WG:0, SpecOps:0, SpecOpsLock:0, ROE:"hold", Target:"recruit", Regs:"strict", Caps:"The Special Force", Lower:"the special force", Subsidy:1})>> - <<set $SFUnit = {Troops:40, Armoury:0, Firebase:0, AV:0, TV:0, Drones:0, Drugs:0, PGT:0, AA:0, TA:0, SpacePlane:0, GunS:0, Satellite:0, GiantRobot:0, MissileSilo:0, AircraftCarrier:0, Sub:0, HAT:0}>> - <<set $SatLaunched = 0>> - <<set $arcologies[0].SFRaid = 1,$arcologies[0].SFRaidTarget = -1>> - <<set $SFColonel = {Core:"", Talk:0, Fun:0, Status:0}>> - <<set $SFTradeShow = {History:0, CanAttend:0, Income:0, Revenue:0, Helots:0, TotalHelots:0, Mercs:0, TotalMercs:0}>> - <</if>> - <<set $SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}>> -<</if>> -<<if def $SF>> - <<if def $SpecOpsLock>> - <<set $SF.SpecOpsLock = $SpecOpsLock>> - <<unset $SpecOpsLock>> - <</if>> - <<if $SF.Active >= 0 && passage() === "New Game Plus">> - <<= SFInit()>> - <<run Object.assign($SF, {Active:-1})>> - <</if>> - <<if ndef $SF.Facility>> - <<set $SF.Facility = {Toggle:0, Active:0, LC:0, Workers:0, Max:5, Caps:"Special force support facility", Lower:"special force support facility", Decoration:"standard", Speed:0, Upgrade:0, IDs:[]}>> - <</if>> - <<if ndef $SF.Bonus>> - <<set $SF.Bonus = 0>> - <</if>> - <<if $SF.Depravity < 0>> - <<set $SF.Depravity = 0>> - <</if>> -<</if>> -<<if def $SFUnit>> - <<if def $SFUnit.AT>> - <<run delete $SFUnit.AT>> - <<set $SFUnit.TA = 0>> - <</if>> +<<= SFBC()>> +<<if def $SF && $SF.Active >= 0 && passage() === "New Game Plus">> + <<= SFInit()>> <</if>> <<if ndef $useSlaveSummaryTabs>> diff --git a/src/uncategorized/corporationDevelopments.tw b/src/uncategorized/corporationDevelopments.tw index ea5fc7730a94ad05c79b98f2d4a67d8d1f3ce5f5..ef840b07efbfe3db5cdce9195485ef6dfe5ea1c4 100644 --- a/src/uncategorized/corporationDevelopments.tw +++ b/src/uncategorized/corporationDevelopments.tw @@ -21,19 +21,19 @@ <<set $corpCash = Math.trunc($corpCash + $corpProfit)>> Your corporation was valued at @@.yellowgreen;<<print cashFormat($corpValue)>>@@ and made a profit of @@.yellowgreen;<<print cashFormat($corpProfit)>>@@ last week. <<set _addedSlaves = Math.ceil(Math.log($captureAssets+$entrapmentAssets))>> -<<if $mercenariesHelpCorp > 0 || ($SF.Toggle && $SF.Active >= 1 && $SF.Units >= 10 && $SFSupportLevel >= 4)>> +<<if $mercenariesHelpCorp > 0 || ($SF.Toggle && $SF.Active >= 1 && $SF.Size >= 10 && $SFSupportLevel >= 4)>> <<if $mercenariesHelpCorp > 0>> The $mercenariesTitle <<set _addedSlaves += Math.ceil(_addedSlaves * (1.04*$mercenaries))>> /* increase by 12-20% ($mercenaries == 3 - 5) */ <</if>> - <<if $mercenariesHelpCorp > 0 && $SF.Toggle && $SF.Active >= 1 && $SF.Units >= 10 && $SFSupportLevel >= 4>> + <<if $mercenariesHelpCorp > 0 && $SF.Toggle && $SF.Active >= 1 && $SF.Size >= 10 && $SFSupportLevel >= 4>> and a - <<elseif $SF.Toggle && $SF.Active >= 1 && $SF.Units >= 10 && $SFSupportLevel >= 4>> + <<elseif $SF.Toggle && $SF.Active >= 1 && $SF.Size >= 10 && $SFSupportLevel >= 4>> A <</if>> - <<if $SF.Toggle && $SF.Active >= 1 && $SF.Units >= 10 && $SFSupportLevel >= 4>> + <<if $SF.Toggle && $SF.Active >= 1 && $SF.Size >= 10 && $SFSupportLevel >= 4>> small portion of $SF.Lower - <<set _addedSlaves += Math.ceil(_addedSlaves * (1.04*($SF.Units/10)))>> + <<set _addedSlaves += Math.ceil(_addedSlaves * (1.04*($SF.Size/10)))>> <</if>> assist it with difficult enslavement targets. Otherwise, it <<else>> diff --git a/src/uncategorized/costsReport.tw b/src/uncategorized/costsReport.tw index d8423cf34f7a9770182e52acdaf2743f0e1ac276..db8b8fe239992d28a6cfd833af8b5f677b4c828e 100644 --- a/src/uncategorized/costsReport.tw +++ b/src/uncategorized/costsReport.tw @@ -80,14 +80,14 @@ your __personal living expenses__ are <<print cashFormat(Math.trunc($girls*(250+ <<if $SF.Toggle && $SF.Active >= 1>> <<if $SF.Subsidy>> - <br>__Finacinally supporting $SF.Lower unitll self sufficiency:__ <<print cashFormat(Math.ceil( (10000*($SFUnit.Troops/10))+(1+($arcologies[0].prosperity/100))+(1+($SF.Units/100)) ))>> - <<set _archologyCosts += Math.ceil( (10000*($SFUnit.Troops/10))+(1+($arcologies[0].prosperity/100))+(1+($SF.Units/100)) )>> + <br>__Finacinally supporting $SF.Lower unitll self sufficiency:__ <<print cashFormat(Math.ceil( (10000*($SF.Squad.Troops/10))+(1+($arcologies[0].prosperity/100))+(1+($SF.Size/100)) ))>> + <<set _archologyCosts += Math.ceil( (10000*($SF.Squad.Troops/10))+(1+($arcologies[0].prosperity/100))+(1+($SF.Size/100)) )>> <</if>> <<if $SF.Bonus>> <<= Count()>> <br>__Bonuses for basic FS acceptance amongst $SF.Lower:__ <<print cashFormat(Math.ceil(_SFCashBonus))>> <br> Colonel <<print cashFormat(_ColonelCashBonus*_Env)>>. - Troop size: <<print commaNum($SFUnit.Troops)>> and each solider recives <<print cashFormat(_inviTroop*_Env)>>, totalling <<print cashFormat(Math.ceil(_TroopCashBonus*_Env))>>. + Troop size: <<print commaNum($SF.Squad.Troops)>> and each solider recives <<print cashFormat(_inviTroop*_Env)>>, totalling <<print cashFormat(Math.ceil(_TroopCashBonus*_Env))>>. <<set _archologyCosts += _SFCashBonus>> <</if>> <</if>> diff --git a/src/uncategorized/fsDevelopments.tw b/src/uncategorized/fsDevelopments.tw index e9498821ba5579d11100e6e95ab52fe738819e36..3f93ad7a7fcead1557993f96f3ab4caaa1fb33d9 100644 --- a/src/uncategorized/fsDevelopments.tw +++ b/src/uncategorized/fsDevelopments.tw @@ -94,8 +94,8 @@ /* Spending, terrain, rep effects */ <<set _broadProgress = 0>> -<<if $SF.Toggle && $SF.Active >= 1 && $SF.SpecOps > 0>> - Assigning a <<if $SF.SpecOps === 1>>small<<else>>large<</if>> portion of $SF.Lower to under cover work helps forward your goals for the arcology's future. +<<if $SF.Toggle && $SF.Active >= 1 && $SF.UC.Assign > 0>> + Assigning a <<if $SF.UC.Assign === 1>>small<<else>>large<</if>> portion of $SF.Lower to undercover work helps forward your goals for your arcology's future. <<set _broadProgress += $SFUC/10>> <br> <</if>> <<if $FSSpending > 1>> diff --git a/src/uncategorized/labReport.tw b/src/uncategorized/labReport.tw index 07e4898fd099c5b4d069b9478a12bf94e8409469..c5c1f6b5ce2daeb767c012c8bfc12964a667d613 100644 --- a/src/uncategorized/labReport.tw +++ b/src/uncategorized/labReport.tw @@ -9,7 +9,7 @@ <<elseif $researchLab.research != "none">> <<set $researchLab.productionTime -= (($researchLab.hired * 3) + ($researchLab.menials) * ($researchLab.aiModule))>> <<if $researchLab.productionTime <= 0>> - Your lab staff have @@.green;completed@@ their research project, and + Your lab staff have @@.green;completed@@ their $researchLab.research research project, and <<switch $researchLab.research>> <<case "Basic prosthetics interface">> <<set $researchLab.basicPLimbInterface = 1>> @@ -31,18 +31,19 @@ <<set $researchLab.cochlearImplant = 1>> <<case "Electrolarynx">> <<set $researchLab.electrolarynx = 1>> - <<case "Erectile implant">> - <<set $researchLab.erectileImplant = 1>> + /*<<case "Erectile implant">> + <<set $researchLab.erectileImplant = 1>>*/ <</switch>> they are awaiting your next instruction. <<set $researchLab.productionTime = 0, $researchLab.research = "none">> <<else>> Your lab staff are currently researching @@.yellow;$researchLab.research@@. <</if>> + <br><br> <<= ResearchLabStockPile()>> <<elseif $researchLab.manufacture != "none">> <<set $researchLab.productionTime -= (($researchLab.hired * 3) + ($researchLab.menials) * ($researchLab.aiModule))>> <<if $researchLab.productionTime <= 0>> - Your lab staff have @@.green;completed@@ their project, and + Your lab staff have @@.green;completed@@ their $researchLab.manufacture project, and <<switch $researchLab.manufacture>> <<case "Basic prosthetics interface">> <<set $stockpile.basicPLimbInterface += 1, $researchLab.productionTime = 50>> @@ -64,8 +65,8 @@ <<set $stockpile.cochlearImplant += 1, $researchLab.productionTime = 60>> <<case "Electrolarynx">> <<set $stockpile.electrolarynx += 1, $researchLab.productionTime = 100>> - <<case "Erectile implant">> - <<set $stockpile.erectileImplant += 1, $researchLab.productionTime = 50>> + /*<<case "Erectile implant">> + <<set $stockpile.erectileImplant += 1, $researchLab.productionTime = 50>>*/ <</switch>> <span id="haltproduction"> they are starting work on another unit. @@ -79,5 +80,6 @@ <<else>> Your lab staff are currently working on @@.yellow;$researchLab.manufacture@@. <</if>> + <br><br> <<= ResearchLabStockPile()>> <</if>> <</if>> diff --git a/src/uncategorized/manageArcology.tw b/src/uncategorized/manageArcology.tw index 4a4fa1d7ae2381491a660bdbbf536d23f1d56236..2aca5e09a8a18e246901e10935274669eed49d1e 100644 --- a/src/uncategorized/manageArcology.tw +++ b/src/uncategorized/manageArcology.tw @@ -276,7 +276,7 @@ Your slaves have participated in approximately <<print commaNum($oralTotal+$vagi <<if $SF.Toggle === 0||$SF.Active === 0>> Your army counts <<print commaNum($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower)>> total soldiers. <<elseif $SF.Toggle && $SF.Active >= 1>> - Your army counts <<print commaNum($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower + $SFUnit.Troops)>> total soldiers of which <<print commaNum($SFUnit.Troops)>> under the special force command and the rest under your direct control. + Your army counts <<print commaNum($militiaEmployedManpower + $slavesEmployedManpower + $mercEmployedManpower + $SF.Squad.Troops)>> total soldiers of which <<print commaNum($SF.Squad.Troops)>> under the special force command and the rest under your direct control. <</if>> <<if $hasFoughtOnce == 1>> Your troops were involved in <<print commaNum($battlesCount)>> battles of which <<print commaNum($majorBattlesCount)>> were major engagements. You won diff --git a/src/uncategorized/managePenthouse.tw b/src/uncategorized/managePenthouse.tw index 8c51df770d52613b852a624114d0ff688075cba0..6c5f3e87fbeaa525a6864ec1de781c4229ebeed1 100644 --- a/src/uncategorized/managePenthouse.tw +++ b/src/uncategorized/managePenthouse.tw @@ -15,6 +15,13 @@ <br><br> +<<if $SF.Toggle && $SF.Active >= 1>> + <<link "Take your express elevator down to $SF.Lower""Firebase">> <</link>> + <br><br> +<<elseif $SF.BadOutcome === "lockdown">>> + The thick wall of rubble in front of the entrance to $SF.Lower's firebase would make the trip worthless. +<</if>> + __Penthouse Capacity__ <br> diff --git a/src/uncategorized/nextWeek.tw b/src/uncategorized/nextWeek.tw index 0d8e9c9fa5db0513a3646c380f67b5eedb181785..4ca2f28d4744f924a369b2d2bff45a40421cee69 100644 --- a/src/uncategorized/nextWeek.tw +++ b/src/uncategorized/nextWeek.tw @@ -404,8 +404,8 @@ <<script>>Save.autosave.save("Week Start Autosave")<</script>> <</if>> -<<if $SF.Toggle && $SF.Active >= 1 && $SFTradeShow.CanAttend > -1 && $SFTradeShow.CanAttend > -2>> - <<set $SFTradeShow.CanAttend = -1>> +<<if $SF.Toggle && $SF.Active >= 1 && $SF.MercCon.CanAttend > -1 && $SF.MercCon.CanAttend > -2>> + <<set $SF.MercCon.CanAttend = -1>> <</if>> <<set $NaNArray = findNaN()>> <<goto "Main">> diff --git a/src/uncategorized/reputation.tw b/src/uncategorized/reputation.tw index e3215f38f544cce459d5857c81c2a71677619626..f63f1f71cb027269f111a58a90c4a72d2e3d560d 100644 --- a/src/uncategorized/reputation.tw +++ b/src/uncategorized/reputation.tw @@ -674,6 +674,11 @@ On formal occasions, you are announced as $PCTitle. <</if>> <</if>> +<<if $SF.BadOutcome === "lockdown">> + Your citizens are @@.red;very displeased@@ that you are hosting a legion of heavily armed squatters in your basement. + <<set $rep -= $SF.Troops+$SF.Size>> +<</if>> + <<if $secExp == 1>> <<if $fakeNews == 1>> The authenticity department produces and distributes copious amounts of plausible enough news and reports, @@.green;increasing your reputation.@@ diff --git a/src/uncategorized/scheduledEvent.tw b/src/uncategorized/scheduledEvent.tw index 9c6ff30524a68452c9029516426824986d9931b0..12dd0adc662c4951ce410a23258475eb16779f7d 100644 --- a/src/uncategorized/scheduledEvent.tw +++ b/src/uncategorized/scheduledEvent.tw @@ -209,8 +209,6 @@ <<set $nicaeaAchievement = either("devotion", "trust", "slaves")>> <<goto "SE nicaea council">> -<<elseif (Math.trunc($week/24) == ($week/24)) && ($securityForceCreate == 1) && ($SFMODToggle == 1) && $OverallTradeShowAttendance >= 1>> - <<goto "securityForceTradeShow">> <<else>> <<goto "Nonrandom Event">> <</if>> diff --git a/src/uncategorized/seIndependenceDay.tw b/src/uncategorized/seIndependenceDay.tw index 03bfdfa360a43df12b9ea52b491ef88face4266f..5e358e0b91f6760a7ad550fbc74de4fab627df56 100644 --- a/src/uncategorized/seIndependenceDay.tw +++ b/src/uncategorized/seIndependenceDay.tw @@ -333,49 +333,49 @@ In the Free Cities, Independence Day falls on the day when the Free City achieve <<if $SF.Toggle && $SF.Active >= 1>> <span id="result3"> <br><<link "Host a parade">> <<replace "#result3">><br><br> - <<if $SFUnit.Troops < 100>> + <<if $SF.Squad.Troops < 100>> The tiny size of $SF.Lower does not inspire confidence in your citizens. <<set $rep -= 200>> - <<elseif $SFUnit.Troops < 2000>> + <<elseif $SF.Squad.Troops < 2000>> The almost full size of $SF.Lower inspires confidence in your citizens. <<set $rep += 250>> <</if>> - <<if $SFUnit.Armoury === 0>> + <<if $SF.Squad.Armoury === 0>> Seeing the soldiers of $SF.Lower with high-quality personal weapons and light armor, but little in the way of exceptional armament, provides little confidence in $SF.Lower. <<set $rep -= 200>> <<else>> The citizens of $arcologies[0].name are relieved to see that $SF.Lower's troops are out fitted the absolutely latest in gear. <<set $rep += 250>> <</if>> - <<if $SFUnit.Drugs === 0>> + <<if $SF.Squad.Drugs === 0>> Seeing $SF.Lower being relaxed inspires confidence that they are unlikely to <<set $rep += 250>> <<else>> The slight twitchiness and high-end alertness of $SF.Lower's troops makes your citizens afraid that they may <<set $rep -= 200>> <</if>> get a face full of lead. - <<if $SFUnit.AV < 1 && $SFUnit.TV < 1>> + <<if $SF.Squad.AV < 1 && $SF.Squad.TV < 1>> The use of basic, unarmored mainly high-end civilian vehicles with jury-rigged crew-served weapons by $SF.Lower does not <<set $rep -= 200>> - <<elseif $SFUnit.AV < 11 && $SFUnit.TV < 11>> + <<elseif $SF.Squad.AV < 11 && $SF.Squad.TV < 11>> $SF.Lower's use of the most advanced heavy armored and support vehicles possible <<set $rep += 250>> <</if>> inspires confidence in your citizens. - <<if $SFUnit.AA < 1 && $SFUnit.TA < 1>> + <<if $SF.Squad.AA < 1 && $SF.Squad.TA < 1>> Seeing $SF.Lower's air force only number enough to be a squadron and armed with just a Gatling cannon does not assure your citizens. <<set $rep -= 200>> - <<elseif $SFUnit.AA < 11 && $SFUnit.TA < 11>> + <<elseif $SF.Squad.AA < 11 && $SF.Squad.TA < 11>> Seeing $SF.Lower's air force using more advanced equipment assures your citizens that they are safe from the air. <<set $rep += 250>> <</if>> - <<if $SFUnit.Drones === 0>> + <<if $SF.Squad.Drones === 0>> Seeing "re-purposed" non-military drones from the arcology's original contingent flying around, does not inspire confidence in your citizens. <<set $rep -= 200>> <<else>> Seeing the latest and greatest drones buzzing over head assures your citizens that they are unmatched. <<set $rep += 250>> <</if>> - <<if $SFUnit.GiantRobot === 1>> + <<if $SF.Squad.GiantRobot === 1>> Seeing a basic old world rusted looking Giant Robot, doesn't provide your citizens with much assurance that they are protected. <<set $rep -= 200>> <<else>> diff --git a/src/uncategorized/seRaiding.tw b/src/uncategorized/seRaiding.tw index 70c5c0908651251e775bedea9eafccc1cac83fa2..6a2febbb957ab1fc6912aeef9cdcda96ac1b11f5 100644 --- a/src/uncategorized/seRaiding.tw +++ b/src/uncategorized/seRaiding.tw @@ -3,19 +3,19 @@ <<set $nextLink = "Scheduled Event", $returnTo = "Scheduled Event", $nextButton = "Continue", $raided = $week>> The leader of your $mercenariesTitle has contacted you from the world outside your arcology. It seems that your $mercenariesTitle have enjoyed a profitable series of raids in their time outside the arcology and have decided to push their luck by plundering one last location on their way back to the arcology. As their nominal leader, they ask your opinion of a small number of potential targets. Given the distance from the arcology and the time sensitivity of conducting such a mission, you have little to base your decision on besides a brief description. -<<if $SF.Toggle && $SF.Active >= 1 && (($SFUnit.Satellite >= 1 && $SatLaunched > 0) || $SFUnit.SpacePlane >= 1)>> +<<if $SF.Toggle && $SF.Active >= 1 && (($SF.Squad.Satellite.lv >= 1 && $SF.Squad.Satellite.InOrbit > 0) || $SF.Squad.SpacePlane >= 1)>> By having access to the use of $SF.Lower's - <<if $SFUnit.Satellite >= 1 && $SatLaunched > 0>> - satellite + <<if $SF.Squad.Satellite.lv >= 1 && $SF.Squad.Satellite.InOrbit > 0>> + satellite <</if>> - <<if $SFUnit.SpacePlane >= 1>> + <<if $SF.Squad.SpacePlane >= 1>> space plane <</if>> - <<if ($SFUnit.Satellite >= 1 && $SatLaunched > 0) && $SFUnit.SpacePlane >= 1>> + <<if ($SF.Squad.Satellite.lv >= 1 && $SF.Squad.Satellite.InOrbit > 0) && $SF.Squad.SpacePlane >= 1>> satellite and space plane <</if>> it is - <<if $SFUnit.Satellite >= 1 && $SatLaunched > 0 && $SFUnit.SpacePlane >= 1>> + <<if ($SF.Squad.Satellite.lv >= 1 && $SF.Squad.Satellite.InOrbit > 0) && $SF.Squad.SpacePlane >= 1>> even <</if>> less likely that the target will escape. diff --git a/src/uncategorized/seRaidingAssault.tw b/src/uncategorized/seRaidingAssault.tw index 18225ec271a8d13a6917143f2ac50d6a5e38fb5a..1b3f3134c1bb8089c261d6bd98d505cd1101e44b 100644 --- a/src/uncategorized/seRaidingAssault.tw +++ b/src/uncategorized/seRaidingAssault.tw @@ -6,11 +6,11 @@ You make your selection and direct your $mercenariesTitle to attack the target. <<set _raidescapeL = 1,_raidescapeU = 3>> <<if $SF.Toggle && $SF.Active >= 1>> - <<if $SFUnit.Satellite >= 1 && $SatLaunched > 0>> + <<if $SF.Squad.Satellite.lv >= 1 && $SF.Squad.Satellite.InOrbit > 0>> <<set _MercCaptureL += 1,_MercCaptureU +1>> <<set _raidescapeL -= 1,_raidescapeU -= 1>> <</if>> - <<if $SFUnit.SpacePlane >= 1>> + <<if $SF.Squad.SpacePlane >= 1>> <<set _MercCaptureL += 1,_MercCaptureU +1>> <<set _raidescapeL -= 1>> <</if>> diff --git a/src/uncategorized/slaveInteract.tw b/src/uncategorized/slaveInteract.tw index 7080524bb61a913f18141a8f859fcfefc708e98c..81c155c869af8ff3ece2a44b34ab3ebcf310a084 100644 --- a/src/uncategorized/slaveInteract.tw +++ b/src/uncategorized/slaveInteract.tw @@ -1502,7 +1502,7 @@ Hormones: <strong><span id="hormones"> <br>Diet: <strong><span id="diet">$activeSlave.diet</span></strong>. <<link "Healthy">><<set $activeSlave.diet = "healthy">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> -<<if ($activeSlave.health < 90) && ($activeSlave.chem >= 10) && ($dietCleanse == 1)>> +<<if ($activeSlave.health < 90 || $activeSlave.chem >= 10) && ($dietCleanse == 1)>> | <<link "Cleanse">><<set $activeSlave.diet = "cleansing">><<replace "#diet">>$activeSlave.diet<</replace>><</link>> <<elseif ($dietCleanse == 1)>> | //$He is already healthy// diff --git a/src/uncategorized/storyCaption.tw b/src/uncategorized/storyCaption.tw index 24806ae00944f774c40655437e51bf28be24d909..70200a14739e20759985ecbe2fc9be7b5196f5e0 100644 --- a/src/uncategorized/storyCaption.tw +++ b/src/uncategorized/storyCaption.tw @@ -519,7 +519,7 @@ <</if>> <br> <<if $SF.Toggle && $SF.Active >= 1>> - <br><span id="SFMButton"> <<link "$SF.Caps's Firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ + <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> <br><span id="optionsButton"><<link "Game Options">><<set $nextButton = "Back", $nextLink = _Pass>><<goto "Options">><</link>></span> @@.cyan;[O]@@ <<else>> @@ -545,7 +545,7 @@ <br>[[Manage Research Lab|Research Lab][$temp = 0]] <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <br><span id="SFMButton"> <<link "$SF.Caps's Firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ + <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> <br> @@ -587,7 +587,7 @@ <br>[[Manage Research Lab|Research Lab][$temp = 0]] <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <br><span id="SFMButton"> <<link "$SF.Caps's Firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ + <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> <br> @@ -635,7 +635,7 @@ <br>[[Manage Research Lab|Research Lab][$temp = 0]] <</if>> <<if $SF.Toggle && $SF.Active >= 1>> - <br><span id="SFMButton"> <<link "$SF.Caps's Firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ + <br><span id="SFMButton"> <<link "$SF.Caps's firebase""Firebase">><</link>> </span> @@.cyan;[Z]@@ <</if>> <br>