diff --git a/SanityCheck.jar b/devTools/javaSanityCheck/SanityCheck.jar similarity index 100% rename from SanityCheck.jar rename to devTools/javaSanityCheck/SanityCheck.jar diff --git a/java+gitGrep-sanityCheck.sh b/java+gitGrep-sanityCheck.sh index b46d4dd1c320dc803f254fd4816944efc01d3c9f..9e3919be9a4a97f2c57a3c2af6e69b3c246d3539 100755 --- a/java+gitGrep-sanityCheck.sh +++ b/java+gitGrep-sanityCheck.sh @@ -108,4 +108,4 @@ $GREP "\$\(PC\|activeSlave\|slaves\|tanks\)[.][^a-zA-Z]" | myprint "UnexpectedCh ) #run the java sanity check -java -jar SanityCheck.jar +java -jar devTools/javaSanityCheck/SanityCheck.jar diff --git a/src/SpecialForce/SpecialForce.js b/src/SpecialForce/SpecialForce.js index 79f1f7341d450e40f7b577254e1006eb78190640..943a16eca071d28e53836eff817f3bcb974f961d 100644 --- a/src/SpecialForce/SpecialForce.js +++ b/src/SpecialForce/SpecialForce.js @@ -628,7 +628,7 @@ window.BadOutcome = function() { }; window.UnitText = function(input) { - "use strict"; const V = State.variables, S = V.SF.Squad; let r =``; + "use strict"; const V = State.variables, S = V.SF.Squad; //Sorted by case let appear = `is currently constructed in a haphazard fashion.`; let barracks = `Soldiers' cots are mixed in with weapons crates and ammunition.`; @@ -682,7 +682,7 @@ window.UnitText = function(input) { let crew = ``, engine2 = ``, skin = ``; let activate2 = `has been recommissioned for use by ${V.SF.Lower}. Currently, it `; - let barrels = `Miniguns and Gatling cannons line`, distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`; + let barrels = `Miniguns and Gatling cannons line`, distance = `, though the distance to ground targets renders the smaller calibers somewhat less useful`; let b4 = ``, c2 = ``, fuel = ``, GS_Speed = ``, countermeasures = ``, ammunition = ``, DFA = ``, autocannon = ``; let loc1 = `An unused science satellite has been purchased from an Old World nation. While currently useless, it holds potential to be a powerful tool.`; @@ -695,26 +695,26 @@ window.UnitText = function(input) { let armor8 = ``, actuator = ``, cannon1 = ``, heatsink = ``, ammo2 = ``; let missile = ``; -let a4 = `A cruise missile launch site has been constructed near the base of`; -let b2 = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`; -let c8 = ``, d1 = ``, e1 = ``, f1 = ``, g1 = ``, h1 = ``; + let a4 = `A cruise missile launch site has been constructed near the base of`; + let b2 = `outdated, something quickly rigged together to give the launch site something to fire in the case of an attack`; + let c8 = ``, d1 = ``, e1 = ``, f1 = ``, g1 = ``, h1 = ``; -let recom1 = `has been recommissioned from the Old World for ${V.SF.Lower}. It`; -let jets = `Formerly mothballed strike jets`, loc2 = ``, radar = ``, AAG = ``; -let prop = ``, torp = ``, armor9 = ``, power1 = ``, scramble1 = ``; + let recom1 = `has been recommissioned from the Old World for ${V.SF.Lower}. It`; + let jets = `Formerly mothballed strike jets`, loc2 = ``, radar = ``, AAG = ``; + let prop = ``, torp = ``, armor9 = ``, power1 = ``, scramble1 = ``; -let recom = `has been recommissioned from the old world, and`; -let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`; -let reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``; -let control = ``, missiles = ``; + let recom = `has been recommissioned from the old world, and`; + let reactor0 = `Because diesel engines provide power and breathing oxygen is kept in pressurized canisters, the sub must frequently surface.`; + let reactor1 = ``, cal = ``, hull = ``, tubes = ``, torpedoes = ``, sonar = ``; + let control = ``, missiles = ``; -let recom2 = `; has been recommissioned for use by ${V.SF.Lower}. It`; -let tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``; -let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; + let recom2 = `; has been recommissioned for use by ${V.SF.Lower}. It`; + let tons = `200`, skirt = ``, guns = ``, guns2 = ``, fans = ``, speed = ``; + let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; switch(input) { case 'firebase': - if (S.Firebase >= 0) { r += `<br>''Firebase:''`; + if (S.Firebase >= 0) { const text0 = `<br>''Firebase:''`; if (S.Firebase >= 1) appear = `has had some organization put into it.`; barracks = `The majority of weapons, armor, and ammunition have been separated from the soldiers' cots into their own armory.`; garage = `A section near the outer wall of the arcology has been converted to a garage with an adjoining vehicle maintenance bay`; drone = `.`; if (V.terrain === "oceanic") garage += ` for inter-arcology travel`; if (S.Firebase >= 2) barracks = `A barracks has been constructed near the armory, allowing soldiers a quieter place to sleep and store their personal spoils.`; drone = `; as well as a facility for the storage, maintenance, and deployment of armed combat drones.`; if (S.Firebase >= 3) appear = `has become more permanent.`; barracks = `A command center has been constructed near the barracks and armory, allowing for additional support personnel.`; @@ -728,17 +728,26 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Firebase >= 8) { appear = `has become a fully fledged military base.`; comms = `A Free City-wide communication network for ${V.SF.Lower} has been constructed to facilitate faster responses and efficient monitoring of the surrounding area.`; } if (S.Firebase >= 9) training = `A high-tech killhouse has been constructed to aid in soldier training.`; if (S.Firebase >= 10) artillery = `Railgun artillery batteries are set around the base of the arcology, capable of accurately destroying enemies an absurd distance away.`; - return `${r} The firebase ${appear} ${barracks} ${comms} ${training} ${slave} ${common} ${garage}${drone} ${hangar} ${launch} ${artillery}`; - } break; - case 'troop': r += `<br> The large dormitories are`; - if (S.Troops < 100) {return `${r} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future`;} - else if (S.Troops < 400) {return `${r} lightly occupied, with ${Quantity} starting to spread out across them`;} - else if (S.Troops < 800) {return `${r} moderately occupied, though ${Quantity} residing within have a considerable amount of extra room`;} - else if (S.Troops < 1500) {return `${r} well-occupied, and ${Quantity} residing within have started to form small cliques based on section and row`;} - else {return `${r} near capacity, and ${Quantity} often barter their personal loot, whether it be monetary or human, for the choicest bunks`;} + return `${text0} The firebase ${appear} ${barracks} ${comms} ${training} ${slave} ${common} ${garage}${drone} ${hangar} ${launch} ${artillery}`; + } + break; + case 'troop': + if (S.Troops > 0) { const text1 = `<br> The large dormitories are`; + if (S.Troops < 100) { + return `${text1} sparsely occupied, ${Quantity} residing within them concentrating together in a corner. The hundreds of empty beds and lockers visibly herald the future.`; + } else if (S.Troops < 400) { + return `${text1} lightly occupied, with ${Quantity} starting to spread out across them.`; + } else if (S.Troops < 800) { + return `${text1} moderately occupied, though ${Quantity} residing within have a considerable amount of extra room.`; + } else if (S.Troops < 1500) { + return `${text1} well-occupied, and ${Quantity} residing within have started to form small cliques based on section and row.`; + } else { + return `${text1} near capacity, and ${Quantity} often barter their personal loot, whether it be monetary or human, for the choicest bunks.`; + } + } break; case 'armoury': - if (S.Armoury >= 0) { r += `<br><br>''Armory:''<br>`; radio = `Radios have been wired into the soldiers helmets`; helmets = `.`; + if (S.Armoury >= 0) { const text2 = `<br><br>''Armory:''<br>`; radio = `Radios have been wired into the soldiers helmets`; helmets = `.`; if (S.Armoury >= 2) helmets = ` and a HUD has been integrated into the soldier's eyewear.`; if (S.Armoury >= 3) ammo0 = `Tactical vests have been provided, allowing soldiers to carry additional ammo.`; if (S.Armoury >= 4) armor1 = `The body armor is a newer variant, able to stop small arms fire and protect against shrapnel.`; @@ -748,11 +757,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Armoury >= 8) helmets = `and a HUD and camera display have been integrated into soldiers' eyewear, enabling accurate aim around corners or from behind cover`; if (S.Armoury >= 9) exo = `An exosuit has been developed to reduce the amount of weight soldiers carry, increase lifting strength, and move faster in combat.`; if (S.Armoury >= 10) weapons = `Cutting-edge weaponry is available to ${V.SF.Lower}, far outpacing the ability of rival mercenary outfits.`; - return `${r} The armory holds soldiers' weapons and gear while not in training or combat. ${weapons} ${special} ${armor1} ${radio}${helmets} ${ammo0} ${uniforms} ${exo}`; + return `${text2} The armory holds soldiers' weapons and gear while not in training or combat. ${weapons} ${special} ${armor1} ${radio}${helmets} ${ammo0} ${uniforms} ${exo}`; } break; case 'drugs': - if (S.Drugs >= 0) { r += `<br><br>''Drug Lab:''`; amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`; + if (S.Drugs >= 0) { const text3 = `<br><br>''Drug Lab:''`; amphet = `Amphetamines have been added to the cocktail at a low dosage to act as a stimulant, physical performance enhancer, cognition control enhancer. Some side-effects exist.`; if (S.Drugs >= 2) phen = `Phencyclidine has been added to the cocktail at a low dosage as a dissociative psychotropic for soldiers in battle to introduce feelings of detachment, strength and invincibility, and aggression. Some side-effects reduce the tolerable dosage before soldiers go on uncontrollable violent outbreaks.`; if (S.Drugs >= 3) steroid = `Testosterone is being produced for soldiers in training as a natural muscle growth stimulant and to invoke aggression.`; if (S.Drugs >= 4) downer = `Zaleplon is being produced as a downer to counteract the battle cocktail and encourage rest before combat.`; @@ -762,10 +771,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Drugs >= 8) amphet = `Diphenylmethylsulfinylacetamide has been added to the cocktail to counteract the effects of sleep deprivation and promote alertness.`; if (S.Drugs >= 9) stimpack = `A stimpack of the battle cocktail is being given to soldiers in battle to take if the original dose wears off before the battle is over.`; if (S.Drugs >= 10) stabilizer = `A stabilizer has been added to the battle cocktail that helps tie effects together while reducing side-effects, leading to an effectively safe supersoldier drug.`; - return `${r} A drug lab has been established to increase the effectiveness of ${V.SF.Lower}'s soldiers. Many of these chemicals are mixed into a single 'battle cocktail' to be taken before combat. ${amphet} ${phen} ${concen} ${steroid} ${downer} ${stimpack} ${stabilizer}`; - } break; + return `${text3} A drug lab has been established to increase the effectiveness of ${V.SF.Lower}'s soldiers. Many of these chemicals are mixed into a single 'battle cocktail' to be taken before combat. ${amphet} ${phen} ${concen} ${steroid} ${downer} ${stimpack} ${stabilizer}`; + } + break; case 'UAV': - if(S.Firebase >= 2 && S.Drones >= 1) { r += `<br><br>''Drone Bay:''`; + if(S.Firebase >= 2 && S.Drones >= 1) { const text4 = `<br><br>''Drone Bay:''`; if (S.Drones >= 2) a = `equipped with missiles are resting on one side of the drone bay`; b = `; as well as destroying the occasional target.`; if (S.Drones >= 3) c = `A fleet of`; d = `large delivery quadcopters have been converted for military service to support ground forces as combat drones.`; if (S.Drones >= 4) d = `combat drones take up the rest of the space in the drone bay. They have a`; e = `small automatic rifle`; f = `mounted to the underside.`; @@ -775,10 +785,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Drones >= 8) j = `The drone control signal has been boosted and encrypted, giving the drones a greater range and protecting against electronic warfare.`; if (S.Drones >= 9) e = `light machine gun`; if (S.Drones >= 10) k = `A drone-to-drone network has been installed, allowing drones to swarm, maneuver, and attack targets autonomously.`; - return `${r} Surveillance drones ${a}. During combat, they supply aerial intel to commanders and act as the communications network for ground forces${b} ${c} ${d} ${e} ${f} ${g} ${h} ${i} ${j} ${k}`; - } break; + return `${text4} Surveillance drones ${a}. During combat, they supply aerial intel to commanders and act as the communications network for ground forces${b} ${c} ${d} ${e} ${f} ${g} ${h} ${i} ${j} ${k}`; + } + break; case 'AV': - if (S.AV >= 1) { r += `<br> ''Assault:''`; + if (S.AV >= 1) { const text5 = `<br> ''Assault:''`; if (S.AV >= 2) engine1 = `The engine1 has been overhauled, allowing much faster maneuvering around the battlefield.`; activate = ``; mechanics = ``; if (S.AV >= 3) armor2 = `A composite ceramic armor has replaced the original, offering much greater protection from attacks.`; if (S.AV >= 4) ammo1 = `The tanks have been outfitted with additional types of ammo for situational use.`; @@ -788,10 +799,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AV >= 8) armor22 = `A reactive armor system has been added, giving the tank an additional, if temporary, layer of protection.`; if (S.AV >= 9) turret = `The turret has been massively redesigned, lowering the tank profile and increasing the efficiency of the mechanisms within.`; if (S.AV >= 10) MG = `140 mm main gun can quash anything even the greatest Old World nations could muster.`; - return `${r} A fleet of main battle tanks ${activate} are parked in the garage${mechanics}. ${turret} The ${MG} ${ammo1} ${mg} ${fireC0} ${fireC2} ${fireC3} ${fireC1} ${engine1} ${armor2} ${armor22}`; - } break; + return `${text5} A fleet of main battle tanks ${activate} are parked in the garage${mechanics}. ${turret} The ${MG} ${ammo1} ${mg} ${fireC0} ${fireC2} ${fireC3} ${fireC1} ${engine1} ${armor2} ${armor22}`; + } + break; case 'TV': - if (S.TV >= 1) { r += `<br> ''Transport:''`; + if (S.TV >= 1) { const text6 = `<br> ''Transport:''`; if (S.TV >= 2) engine3 = `${e0} overhauled, allowing for higher mobility.`; C = ``; B = ``; if (S.TV >= 3) armor3 = `Composite armor has been bolted to the exterior, increasing the survivability of an explosive attack for the crew and passengers.`; if (S.TV >= 4) tires = `The tires have been replaced with a much more durable version that can support a heavier vehicle.`; @@ -801,11 +813,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.TV >= 8) pod2 = `and an anti-aircraft missile pod have been installed on either side of the turret.`; if (S.TV >= 9) squad = `two squads`; armor3 = ``; m2 = `destroying any incoming missiles with a high-powered laser. Some of the now redundant composite armor has been removed, and the reclaimed space allows for more passengers.`; if (S.TV >= 10) engine3 = `${e0} replaced with the newest model, allowing the vehicle to get in and out of the conflict extremely quickly.`; - return `A fleet of infantry fighting vehicles ${B} are parked in the garage${C}. The IFVs can carry ${squad} of 6 to a firezone. The ${G1} mm autocannon supports infantry ${G2}. ${pod1} ${pod2} ${engine3} ${armor3} ${tires} ${m1} ${m2}`; + return `${text6} A fleet of infantry fighting vehicles ${B} are parked in the garage${C}. The IFVs can carry ${squad} of 6 to a firezone. The ${G1} mm autocannon supports infantry ${G2}. ${pod1} ${pod2} ${engine3} ${armor3} ${tires} ${m1} ${m2}`; } break; case 'PGT': - if (S.PGT >= 1) {r += `<br> ''Prototype Goliath Tank:''`; + if (S.PGT >= 1) { const text7 = `<br> ''Prototype Goliath Tank:''`; if (S.PGT >= 2) c1 = `rests in`; b1 = ``; engines4 = ` and powered by their own engine, allowing the tank to travel with an unsettling speed for its massive bulk`; if (S.PGT >= 3) gun0 = `a railgun capable of`; gun1 = `firing steel slugs`; gun2 = `through one tank and into another`; if (S.PGT >= 4) armor6 = `reinforced, increasing survivability for the crew inside.`; armor5 = `The armor has been`; @@ -815,10 +827,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.PGT >= 8) armor6 = `redesigned with sloping and state-of-the-art materials, allowing the Goliath to shrug off even the most advanced armor5-piercing tank rounds.`; if (S.PGT >= 9) gun1 = `firing guided projectiles`; if (S.PGT >= 10) gun0 = `a twin-barreled railgun capable of rapidly`; - return `A prototype Goliath tank ${b1}${c1} its own garage housing built outside the arcology. The massive bulk is spread out over 8 tracks, two for each corner of the tank${engines4}. The turret is equipped with ${gun0} ${gun1} ${gun2}. ${cannon} ${armor5} ${armor6} ${laser} ${PGTframe}`; - } break; + return `${text7} A prototype Goliath tank ${b1}${c1} its own garage housing built outside the arcology. The massive bulk is spread out over 8 tracks, two for each corner of the tank${engines4}. The turret is equipped with ${gun0} ${gun1} ${gun2}. ${cannon} ${armor5} ${armor6} ${laser} ${PGTframe}`; + } + break; case 'AA': - if (S.AA >= 1) { r += `<br> ''Assault:''`; + if (S.AA >= 1) { const text8 = `<br> ''Assault:''`; if (S.AA >= 2) W1 = `armed`; W2 = ` and air-to-air missiles,`; W3 = `a combination that can defend the arcology from enemy aircraft, as well as`; support = ` support ground troops`; if (S.AA >= 3) engines = `The engines have been tuned, allowing faster flight with greater acceleration.`; if (S.AA >= 4) TAI = `An advanced targeting AI has been installed to handle all control of weapons, allowing much more efficient use of ammunition and anti-countermeasure targeting.`; @@ -828,10 +841,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AA >= 8) stealth = `The old skin has been replaced with a radar-absorbent material, making the aircraft difficult to pick up on radar.`; if (S.AA >= 9) scramble = `The VTOLs can scramble to react to any threat in under three minutes.`; if (S.AA >= 10) PAI = `A piloting AI has been installed, allowing the VTOLs to perform impossible maneuvers that cannot be done by a human pilot. This removes the need for a human in the aircraft altogether.`; - return `${r} ${group}. Several of the landing pads around ${V.arcologies[0].name} host groups of four fighters, ready to defend the arcology. ${scramble} The attack VTOL are currently ${W1} with a Gatling cannon${W2} ${W3}${support}. ${TAI} ${PAI} ${engines} ${lock} ${stealth}`; - } break; + return `${text8} ${group}. Several of the landing pads around ${V.arcologies[0].name} host groups of four fighters, ready to defend the arcology. ${scramble} The attack VTOL are currently ${W1} with a Gatling cannon${W2} ${W3}${support}. ${TAI} ${PAI} ${engines} ${lock} ${stealth}`; + } + break; case 'TA': - if (S.TA >= 1) { r += `<br> ''Transport:''`; + if (S.TA >= 1) { const text9 = `<br> ''Transport:''`; if (S.TA >= 2) engines0 = `The tiltrotor engines have been replaced with a more powerful engine, allowing faster travel times.`; if (S.TA >= 3) counter = `Multispectrum countermeasures have been added to protect against guided missiles.`; if (S.TA >= 4) miniguns = `Mounted miniguns have been installed to cover soldiers disembarking in dangerous areas.`; @@ -841,10 +855,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.TA >= 8) capacity = `large platoon or 20`; engines01 = `Further tweaks to the engine allow for greater lifting capacity.`; if (S.TA >= 9) Radar = `Radar-absorbent materials have replaced the old skin, making it difficult to pick up the VTOL on radar.`; if (S.TA >= 10) type = `tiltjet`; engines01 = ``; engines0 = `The tiltrotors have been replaced with tiltjets, allowing for much greater airspeed and acceleration.`; - return `${r} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`; + return `${text9} A ${Num} of transport ${type} VTOL have been recommissioned for use by ${V.SF.Lower}. The VTOLs are resting on large pads near the base to load either a ${capacity} tons of material. ${engines0} ${engines01} ${Armor} ${landing} ${counter} ${Radar} ${miniguns}`; } break; case 'SP': - if (S.SpacePlane >= 1) { r += `<br> ''Spaceplane:''`; + if (S.SpacePlane >= 1) { const text10 = `<br> ''Spaceplane:''`; if (S.SpacePlane >= 2) b5 = ``; shield = `The current heat shielding has been upgraded, reducing the likelihood of heat damage during reentry.`; if (S.SpacePlane >= 3) engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 18`; if (S.SpacePlane >= 4) camera = `A state-of-the-art camera has been installed in the underbelly that takes incredibly high resolution photos, but requires the frictionless environment of space to focus.`; @@ -854,10 +868,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.SpacePlane >= 8) crew = `Increased the crew comfort and life support systems to increase operational time.`; if (S.SpacePlane >= 9) skin = `Replaced the underbelly skin with a chameleon kit, matching the color to the sky above it.`; if (S.SpacePlane >= 10) engine20 = `experimental scramjet engines in the atmosphere that can reach Mach 15`; engine2 = ` and liquid rocket engines in orbit that can reach an equivalent Mach 25`; - return `${r} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`; - } break; + return `${text10} A prototype spaceplane ${b5} rests in the hangar, its black fuselage gleaming. The craft is powered by ${engine20}${engine2}. ${efficiency} ${shield} ${camera} ${camera2} ${drag} ${crew} ${skin}`; + } + break; case 'GunS': - if(S.GunS >= 1) { r += `<br> ''Gunship:''`; + if(S.GunS >= 1) { const text11 = `<br> ''Gunship:''`; if (S.GunS >= 2) b4 = `Infrared sensors have been added for the gunners to better pick targets.`; activate2 = ``; if (S.GunS >= 3) c2 = `The underside of the aircraft has been better armored against small-arms fire`; countermeasures = `.`; if (S.GunS >= 4) fuel = `Larger fuel tanks have been installed in the wings and fuselage, allowing the gunship to provide aerial support for longer periods before refueling.`; @@ -867,10 +882,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.GunS >= 8) b4 = `Upgraded multi-spectrum sensors can clearly depict targets even with IR shielding.`; if (S.GunS >= 9) ammunition = `The ammunition storage has been increased, only slightly depriving loaders of a place to sit.`; if (S.GunS >= 10) DFA = `; both light and heavy vehicles, and most enemy cover from above`; autocannon = `; a 40 mm autocannon, and a 105 mm howitzer are mounted on`; - return `${r} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${GS_Speed} ${c2}${countermeasures} ${fuel}`; - } break; + return `${text11} A large gunship ${activate2} is being refueled in the hangar. ${barrels}${autocannon} the port side of the fuselage${distance}${DFA}. ${b4} ${ammunition} ${GS_Speed} ${c2}${countermeasures} ${fuel}`; + } + break; case 'sat': - if (S.Satellite.lv >= 1) { r += `<br> ''Satellite:''`; + if (S.Satellite.lv >= 1) { const text12 = `<br> ''Satellite:''`; if (S.Satellite.lv >= 2) if (V.SF.Squad.Satellite.InOrbit < 1) loc1 = `The satellite is being worked on in the Launch Bay.`; else loc1 = `The satellite is in geosynchronous orbit, far above the arcology.`; gyro = `A suite of sensors have been installed to ensure the satellite can detect attitude and orbital altitude.`; if (S.Satellite.lv >= 3) telemetry = `Telemetry systems have been installed to communicate with the satellite in orbit, with strong encryption measures.`; @@ -881,10 +897,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Satellite.lv >= 8) reactor = `A small, efficient nuclear reactor has been installed to continue generating energy while in the Earth's shadow.`; if (S.Satellite.lv >= 9) lens = `A higher quality and adjustable lens has been installed on the laser, allowing scalpel precision on armor or wide-area blasts on unarmored targets.`; if (S.Satellite.lv >= 10) kin = `A magazine of directable tungsten rods have been mounted to the exterior of the satellite, allowing for kinetic bombardment roughly equal to a series of nuclear blasts.`; - return `${r} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`; + return `${text12} ${loc1} ${gyro} ${thrusters} ${telemetry} ${solar} ${reactor} ${surviv} ${laser1}${heat} ${lens} ${kin}`; } break; case 'GR': - if (S.GiantRobot >= 1) { r += `<br> ''Giant Robot:''`; + if (S.GiantRobot >= 1) { const text13 = `<br> ''Giant Robot:''`; if (S.GiantRobot >= 2) loc = ``; armor8 = `Armor plating has been mounted over the majority of the robot.`; if (S.GiantRobot >= 3) power = `The robot is now powered by an umbilical cable system instead of bulky and short-lived batteries.`; if (S.GiantRobot >= 4) knife = `a 25 meter plasma sword. The cutting edge uses plasma to melt and cut through targets, reducing the strain on the sword.`; @@ -894,10 +910,10 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.GiantRobot >= 8) armor8 = ``; actuator = `Final actuator tweaks have allowed for the addition of exceptionally thick armor without any loss in speed or power.`; if (S.GiantRobot >= 9) ammo2 = `; with spare ammunition drums kept along the robot's waist.`; if (S.GiantRobot >= 10) missile = `Missile pods have been mounted on the shoulders.`; - return `${r} A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor8} ${actuator} ${heatsink} The main armament is ${knife} ${cannon1}${ammo2} ${missile}`; + return `${text13} A prototype giant robot ${loc} rests in a gantry along the side of the arcology. The robot is as tall as a medium-sized office building, focusing on speed over other factors. ${power} ${armor8} ${actuator} ${heatsink} The main armament is ${knife} ${cannon1}${ammo2} ${missile}`; } break; case 'ms': - if (S.MissileSilo >= 1) { r += `<br> ''Cruise Missile:''`; + if (S.MissileSilo >= 1) { const text14 = `<br> ''Cruise Missile:''`; if (S.MissileSilo >= 2) b2 = `a modern missile`; c8 = `; tipped with a conventional warhead`; if (S.MissileSilo >= 3) d1 = `The launch systems have been overhauled, allowing a launch within seconds of an attack order being given.`; if (S.MissileSilo >= 4) e1 = `The missile engines have been tweaked, giving them a greater range.`; @@ -907,10 +923,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.MissileSilo >= 8) g1 = `The ability to pick new targets should the original be lost has been added.`; if (S.MissileSilo >= 9) h1 = `The missile now uses its remaining fuel to create a thermobaric explosion, massively increasing explosive power.`; if (S.MissileSilo >= 10) c8 = ` that can be tipped with either a conventional or nuclear warhead`; - return `${r} ${a4} the arcology. The current missile armament is ${b2}${c8}. ${d1} ${e1} ${f1} ${g1} ${h1}`; - } break; + return `${text14} ${a4} the arcology. The current missile armament is ${b2}${c8}. ${d1} ${e1} ${f1} ${g1} ${h1}`; + } + break; case 'AC': - if (S.AircraftCarrier >= 1) { r += `<br> ''Aircraft Carrier:''`; + if (S.AircraftCarrier >= 1) { const text15 = `<br> ''Aircraft Carrier:''`; if (V.week % 6 === 0) loc2 = `moored to the pier in the Naval Yard`; else loc2 = `patrolling the waters near ${V.arcologies[0].name}`; if (S.AircraftCarrier >= 2) radar = `The island's radar and comms have been improved.`; recom1 = ``; if (S.AircraftCarrier >= 3) AAG = `The antiair guns have been updated to automatically track and predict enemy aircraft movement.`; @@ -921,10 +938,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.AircraftCarrier >= 8) power1 = `The power plant has been converted to provide nuclear power.`; if (S.AircraftCarrier >= 9) scramble1 = `The catapult has been converted to an electromagnetic launch system, halving the time it takes to scramble1 jets.`; if (S.AircraftCarrier >= 10) jets = `Attack VTOL from the converted for carrier capability`; - return `${r} An aircraft carrier ${recom1} is ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`; - } break; + return `${text15} An aircraft carrier ${recom1} is ${loc2}. ${jets} serve as its airpower. ${scramble1} ${power1} ${radar} ${AAG} ${torp} ${prop} ${armor9}`; + } + break; case 'Sub': - if (S.Sub >= 1) { r += `<br> ''Submarine:''`; + if (S.Sub >= 1) { const text16 = `<br> ''Submarine:''`; if (S.Sub >= 2) recom = ``; reactor0 = `A nuclear reactor provides power`; reactor1 = `; but because oxygen is still kept in pressurized canisters the sub must frequently surface to replenish its oxygen stocks.`; if (S.Sub >= 3) reactor1 = ` and an oxygen generator pulls O₂ from the surrounding seawater, allowing the submarine to remain underwater for months if necessary.`; if (S.Sub >= 4) cal = `Calibration of the propulsion systems has reduced the telltale hum of a moving sub to a whisper.`; @@ -934,10 +952,11 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.Sub >= 8) control = `The control room computers have been upgraded to automate many conn duties.`; if (S.Sub >= 9) torpedoes = `and launch more agile torpedoes.`; if (S.Sub >= 10) missiles = `The submarine has been outfitted with several cruise missiles to attack land or sea-based targets.`; - return `${r} An attack submarine ${recom} is moored to the pier of the Naval Yard. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`; - } break; + return `${text16} An attack submarine ${recom} is moored to the pier of the Naval Yard. ${reactor0}${reactor1} ${cal} ${hull} ${tubes}${torpedoes} ${sonar} ${control} ${missiles}`; + } + break; case 'HAT': - if (S.HAT >= 1) {r += `<br> ''Amphibious Transport:''`; + if (S.HAT >= 1) { const text17 = `<br> ''Amphibious Transport:''`; if (S.HAT >= 2) skirt = `The skirt has been upgraded to increase durability and improve cushion when traveling over uneven terrain and waves.`; recom2 = `;`; if (S.HAT >= 3) guns = `A minigun`; guns2 = `has been mounted on the front corners of the craft to defend against attackers.`; if (S.HAT >= 4) fans = `The turbines powering the rear fans`; speed = `acceleration and speed.`; turbines = `have been replaced with a more powerful version, allowing greater`; @@ -947,8 +966,9 @@ let turbines = ``, armor10 = ``, ramps = ``, HATframe = ``, loadout = ``; if (S.HAT >= 8) ramps = `The loading ramps have been improved, allowing for faster unloading.`; if (S.HAT >= 9) HATframe = `The frame has been widened and reinforced, allowing for more space on the deck.`; if (S.HAT >= 10) loadout = `An experimental loadout sacrifices all carrying capacity to instead act as a floating gun platform by mounting several rotary autocannons the deck, should the need arise.`; - return `${r} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`; - } break; + return `${text17} An air cushion transport vehicle, or hovercraft ${recom2} is parked on the pier of the Naval Yard, ready to ferry ${tons} tons of soldiers and vehicles. ${guns} ${guns2} ${fans} ${turbines} ${speed} ${skirt} ${armor10} ${ramps} ${HATframe} ${loadout}`; + } + break; } /*if (V.SF.Facility.Toggle > 0 && V.SF.Facility.Active > 0) { r += `<br><br>''${V.SF.Facility.Caps}:''`; if (passage() === "Firebase") { diff --git a/src/endWeek/saChoosesOwnClothes.js b/src/endWeek/saChoosesOwnClothes.js index 39cdbd92e97badfdd6d767e88e8007b4322918f7..84df1ca930060c8764d997eb037daa454e421290 100644 --- a/src/endWeek/saChoosesOwnClothes.js +++ b/src/endWeek/saChoosesOwnClothes.js @@ -33,32 +33,32 @@ window.saChoosesOwnClothes = (function() { His = capFirstChar(his); if (slave.fetish === "mindbroken") { - let corsetChoice = todaysCorset(slave); - let clothingChoice = todaysOutfit(slave); + const corsetChoice = todaysCorset(slave); + const clothingChoice = todaysOutfit(slave); slave.bellyAccessory = corsetChoice.bellyAccessory; slave.clothes = clothingChoice.clothes; r += `${He} is fundamentally broken, but still follows some faint memories of standing within the wardrobe. `; if (slave.amp !== 1) { - let shoeChoice = todaysShoes(slave); + const shoeChoice = todaysShoes(slave); r += `${shoeChoice.text} `; slave.shoes = shoeChoice.shoes; } r += `${corsetChoice.text} Faced with so many choices and no thought on the matter; ${clothingChoice.text}. `; } else if (slave.devotion <= 20) { - let clothingChoice = todaysOutfit(slave); + const clothingChoice = todaysOutfit(slave); slave.clothes = clothingChoice.clothes; r += `${clothingChoice.text} `; if (slave.amp !== 1) { - let shoeChoice = todaysShoes(slave); + const shoeChoice = todaysShoes(slave); r += `${shoeChoice.text} `; slave.shoes = shoeChoice.shoes; } r += `<span class="mediumorchid">increasing ${his} independence.</span>`; slave.devotion -= 5; } else { - let neckChoice = todaysCollar(slave); - let corsetChoice = todaysCorset(slave); - let clothingChoice = todaysOutfit(slave); + const neckChoice = todaysCollar(slave); + const corsetChoice = todaysCorset(slave); + const clothingChoice = todaysOutfit(slave); slave.collar = neckChoice.collar; slave.bellyAccessory = corsetChoice.bellyAccessory; slave.clothes = clothingChoice.clothes; @@ -86,7 +86,7 @@ window.saChoosesOwnClothes = (function() { } if (slave.amp !== 1) { - let shoeChoice = todaysShoes(slave); + const shoeChoice = todaysShoes(slave); r += `${shoeChoice.text}`; slave.shoes = shoeChoice.shoes; } @@ -96,419 +96,419 @@ window.saChoosesOwnClothes = (function() { /** @param {App.Entity.SlaveState} slave */ function todaysOutfit(slave) { - let clothing = []; + const clothing = []; let chosenClothing; - let wardrobeAssignment = []; - let wardrobeFS = []; - let wardrobeTastes = []; + const wardrobeAssignment = []; + const wardrobeFS = []; + const wardrobeTastes = []; let selection; - if(slave.fetish === 'mindbroken') { - if(V.arcologies[0].FSChattelReligionist > 0) { + if (slave.fetish === 'mindbroken') { + if (V.arcologies[0].FSChattelReligionist > 0) { selection = {text: `${he} commonly sees others wearing chattel habits and is drawn to doing so ${himself}.`, clothes: "a chattel habit"}; } else { clothing.push('panties'); - if(V.arcologies[0].FSEgyptianRevivalist > 0) { + if (V.arcologies[0].FSEgyptianRevivalist > 0) { clothing.push('egyptian'); - } else if(V.arcologies[0].FSRomanRevivalist > 0) { + } else if (V.arcologies[0].FSRomanRevivalist > 0) { clothing.push('roman'); - } else if(V.arcologies[0].FSAztecRevivalist > 0) { + } else if (V.arcologies[0].FSAztecRevivalist > 0) { clothing.push('aztec'); - } else if(V.arcologies[0].FSEdoRevivalist > 0) { + } else if (V.arcologies[0].FSEdoRevivalist > 0) { clothing.push('edo'); - } else if(V.arcologies[0].FSArabianRevivalist > 0) { + } else if (V.arcologies[0].FSArabianRevivalist > 0) { clothing.push('arabic'); - } else if(V.arcologies[0].FSChineseRevivalist > 0) { + } else if (V.arcologies[0].FSChineseRevivalist > 0) { clothing.push('chinese'); } - if(V.arcologies[0].FSGenderFundamentalist > 0) { + if (V.arcologies[0].FSGenderFundamentalist > 0) { clothing.push('genderFund'); } - if(V.arcologies[0].FSPaternalist > 0) { + if (V.arcologies[0].FSPaternalist > 0) { clothing.push('paternalist'); - } else if(V.arcologies[0].FSDegradationist > 0) { + } else if (V.arcologies[0].FSDegradationist > 0) { clothing.push('degradationist'); } - if(V.arcologies[0].FSMaturityPreferentialist > 0) { + if (V.arcologies[0].FSMaturityPreferentialist > 0) { clothing.push('mature'); - } else if(V.arcologies[0].FSYouthPreferentialist > 0) { + } else if (V.arcologies[0].FSYouthPreferentialist > 0) { clothing.push('youth'); } - if(V.arcologies[0].FSPhysicalIdealist > 0) { + if (V.arcologies[0].FSPhysicalIdealist > 0) { clothing.push('physicalIdealist'); } - if(V.arcologies[0].FSPastoralist > 0) { + if (V.arcologies[0].FSPastoralist > 0) { clothing.push('pastoralist'); } - if(V.arcologies[0].FSBodyPurist > 0) { + if (V.arcologies[0].FSBodyPurist > 0) { clothing.push('bodyPurist'); } chosenClothing = jsEither(clothing); - switch(chosenClothing) { - case 'egyptian': - selection = {text: `${he} commonly sees others wearing nothing but jewelry and is drawn to doing so ${himself}.`, clothes: "slutty jewelry"}; - break; - case 'roman': - selection = {text: `${he} commonly sees others wearing togas and is drawn to doing so ${himself}.`, clothes: "a toga"}; - break; - case 'aztec': - selection = {text: `${he} commonly sees others wearing huipils and is drawn to doing so ${himself}.`, clothes: "a huipil"}; - break; - case 'edo': - selection = {text: `${he} commonly sees others wearing kimonos and is drawn to doing so ${himself}.`, clothes: "a kimono"}; - break; - case 'arabic': - selection = {text: `${he} commonly sees others wearing silk and is drawn to doing so ${himself}.`, clothes: "harem gauze"}; - break; - case 'chinese': - selection = {text: `${he} commonly sees others wearing qipaos and is drawn to doing so ${himself}.`, clothes: "a slutty qipao"}; - break; - case 'genderFund': - if(jsRandom(1,2) === 1) { - selection = {text: `${he} commonly sees cheerleaders around and instinctually follows along.`, clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; - } else { - selection = {text: `${he} commonly sees bunnies around and instinctually follows along.`, clothes: "a bunny outfit"}; - } - break; - case 'paternalist': - selection = {text: `${he} commonly sees others wearing normal clothing and is drawn to doing so ${himself}.`, clothes: "conservative clothing"}; - break; - case 'degradationist': - selection = {text: `${he} commonly sees others wearing chains and is drawn to doing so ${himself}.`, clothes: jsEither(['chains', 'shibari ropes', 'uncomfortable straps'])}; - break; - case 'mature': - selection = {text: `${he} commonly sees others wearing suits and is drawn to doing so ${himself}.`, clothes: jsEither(['a nice maid outfit', 'nice business attire', 'slutty business attire'])}; - break; - case 'youth': - selection = {text: `${he} commonly sees schoolgirls around and instinctually follows along.`, clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; - break; - case 'physicalIdealist': - selection = {text: `${he} commonly sees naked girls around and seldom realizes they are coated in oil.`, clothes: jsEither(['body oil', 'no clothing', 'no clothing'])}; - break; - case 'pastoralist': - selection = {text: `${he} commonly sees cowgirls around and instinctually follows along.`, clothes: "Western clothing"}; - break; - case 'bodyPurist': - selection = {text: `${he} commonly sees others wearing tight, form-fitting clothes and is drawn to doing so ${himself}.`, clothes: jsEither(['a comfortable bodysuit', 'a halter top dress', 'a leotard', 'a leotard', 'a slave gown', 'a string bikini', 'clubslut netting', 'restrictive latex'])}; - break; - default: - selection = {text: `${he} chooses to put on underwear, the reasons lost to ${him}, and moves on.`, clothes: jsEither(['attractive lingerie', 'panties'])}; - break; + switch (chosenClothing) { + case 'egyptian': + selection = {text: `${he} commonly sees others wearing nothing but jewelry and is drawn to doing so ${himself}.`, clothes: "slutty jewelry"}; + break; + case 'roman': + selection = {text: `${he} commonly sees others wearing togas and is drawn to doing so ${himself}.`, clothes: "a toga"}; + break; + case 'aztec': + selection = {text: `${he} commonly sees others wearing huipils and is drawn to doing so ${himself}.`, clothes: "a huipil"}; + break; + case 'edo': + selection = {text: `${he} commonly sees others wearing kimonos and is drawn to doing so ${himself}.`, clothes: "a kimono"}; + break; + case 'arabic': + selection = {text: `${he} commonly sees others wearing silk and is drawn to doing so ${himself}.`, clothes: "harem gauze"}; + break; + case 'chinese': + selection = {text: `${he} commonly sees others wearing qipaos and is drawn to doing so ${himself}.`, clothes: "a slutty qipao"}; + break; + case 'genderFund': + if (jsRandom(1, 2) === 1) { + selection = {text: `${he} commonly sees cheerleaders around and instinctually follows along.`, clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; + } else { + selection = {text: `${he} commonly sees bunnies around and instinctually follows along.`, clothes: "a bunny outfit"}; + } + break; + case 'paternalist': + selection = {text: `${he} commonly sees others wearing normal clothing and is drawn to doing so ${himself}.`, clothes: "conservative clothing"}; + break; + case 'degradationist': + selection = {text: `${he} commonly sees others wearing chains and is drawn to doing so ${himself}.`, clothes: jsEither(['chains', 'shibari ropes', 'uncomfortable straps'])}; + break; + case 'mature': + selection = {text: `${he} commonly sees others wearing suits and is drawn to doing so ${himself}.`, clothes: jsEither(['a nice maid outfit', 'nice business attire', 'slutty business attire'])}; + break; + case 'youth': + selection = {text: `${he} commonly sees schoolgirls around and instinctually follows along.`, clothes: jsEither(['a cheerleader outfit', 'a schoolgirl outfit'])}; + break; + case 'physicalIdealist': + selection = {text: `${he} commonly sees naked girls around and seldom realizes they are coated in oil.`, clothes: jsEither(['body oil', 'no clothing', 'no clothing'])}; + break; + case 'pastoralist': + selection = {text: `${he} commonly sees cowgirls around and instinctually follows along.`, clothes: "Western clothing"}; + break; + case 'bodyPurist': + selection = {text: `${he} commonly sees others wearing tight, form-fitting clothes and is drawn to doing so ${himself}.`, clothes: jsEither(['a comfortable bodysuit', 'a halter top dress', 'a leotard', 'a leotard', 'a slave gown', 'a string bikini', 'clubslut netting', 'restrictive latex'])}; + break; + default: + selection = {text: `${he} chooses to put on underwear, the reasons lost to ${him}, and moves on.`, clothes: jsEither(['attractive lingerie', 'panties'])}; + break; } } - } else if(slave.devotion <= 20) { + } else if (slave.devotion <= 20) { clothing.push({text: `${He} uses the ability to select outfits to cover up with comfortable cutoffs and a t-shirt.`, clothes: "cutoffs and a t-shirt"}); - if(isItemAccessible("a hijab and blouse")) { + if (isItemAccessible("a hijab and blouse")) { clothing.push({text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`, clothes: "a hijab and blouse"}); } - if(isItemAccessible("conservative clothing")) { + if (isItemAccessible("conservative clothing")) { clothing.push({text: `${He} uses the ability to select outfits to cover up with the most conservative clothing ${he} can find.`, clothes: "conservative clothing"}); } - if(isItemAccessible("a kimono")) { + if (isItemAccessible("a kimono")) { clothing.push({text: `${He} uses the ability to select outfits to cover ${himself} with a kimono.`, clothes: "a kimono"}); } - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { clothing.push({text: `${He} uses the ability to select outfits to cover up with stretch pants and a crop-top, though ${he} wishes it didn't have lewd comments printed on it.`, clothes: "stretch pants and a crop-top"}); } selection = jsEither(clothing); } else { - if(V.arcologies[0].FSChattelReligionist > 0) { + if (V.arcologies[0].FSChattelReligionist > 0) { clothing.push({text: `and wears a chattel habit to conform to your arcology's culture.`, clothes: "a chattel habit"}); } - /*Chooses clothes according to assignment (no exceptions)*/ - else if(slave.assignment === "be the Nurse") { - if(slave.energy > 95 || slave.need > 100) { + /* Chooses clothes according to assignment (no exceptions)*/ + else if (slave.assignment === "be the Nurse") { + if (slave.energy > 95 || slave.need > 100) { wardrobeAssignment.push({text: `and wears a slutty nurse outfit to make it clear just how much this nurse needs ${his} daily lay.`, clothes: "a slutty nurse outfit"}); - } else if(slave.energy > 80) { + } else if (slave.energy > 80) { wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show off ${his} body and arouse ${his} patients.`, clothes: "a slutty nurse outfit"}); - if(isItemAccessible("a nice nurse outfit")) { + if (isItemAccessible("a nice nurse outfit")) { wardrobeAssignment.push({text: `and wears a nice nurse outfit to look professional before ${his} patients.`, clothes: "a nice nurse outfit"}); } wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`, clothes: "a slutty nurse outfit"}); } else { - if(isItemAccessible("a nice nurse outfit")) { + if (isItemAccessible("a nice nurse outfit")) { wardrobeAssignment.push({text: `and wears a nice nurse outfit to look professional before ${his} patients.`, clothes: "a nice nurse outfit"}); } wardrobeAssignment.push({text: `and wears a slutty nurse outfit to show to a little skin as ${he} cares for ${his} patients.`, clothes: "a slutty nurse outfit"}); } - } else if(slave.assignment === "be the Madam") { - if(slave.energy > 95 || slave.need > 100) { + } else if (slave.assignment === "be the Madam") { + if (slave.energy > 95 || slave.need > 100) { wardrobeAssignment.push({text: `and wears a slutty suit to be certain nothing blocks ${him} from getting the sex ${he} needs.`, clothes: "slutty business attire"}); - } else if(slave.energy > 80) { - if(isItemAccessible("nice business attire")) { + } else if (slave.energy > 80) { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a nice suit to show ${he} means business.`, clothes: "nice business attire"}); } wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"}); wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"}); } else { - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a nice suit to show ${he} means business.`, clothes: "nice business attire"}); } wardrobeAssignment.push({text: `and wears a slutty suit to entice and arouse while still looking managerial.`, clothes: "slutty business attire"}); } - } else if(slave.assignment === "be the Milkmaid") { - if(slave.energy > 95 || slave.need > 100) { - if(isItemAccessible("body oil")) { + } else if (slave.assignment === "be the Milkmaid") { + if (slave.energy > 95 || slave.need > 100) { + if (isItemAccessible("body oil")) { wardrobeAssignment.push({text: `and coats ${himself} with oil to better slip between ${his} cows as ${he} pleasures them.`, clothes: "body oil"}); } wardrobeAssignment.push({text: `but goes nude to not be slowed down while moving between ${his} charges.`, clothes: "no clothing"}); } else { - if(isItemAccessible("a nice maid outfit")) { + if (isItemAccessible("a nice maid outfit")) { wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work with the cows.`, clothes: "a nice maid outfit"}); } wardrobeAssignment.push({text: `and decides to call it Casual Friday and wear nothing but cutoffs and a t-shirt. Not like the cows will mind.`, clothes: "cutoffs and a t-shirt"}); wardrobeAssignment.push({text: `and opts to don a cheerleader outfit to help cheer the cows on.`, clothes: "a cheerleader outfit"}); wardrobeAssignment.push({text: `and dresses up as a succubus since ${he}'ll be drawing plenty of fluids.`, clothes: "a succubus outfit"}); wardrobeAssignment.push({text: `and slips into some spats and a tank top since ${he} feels a workout coming on.`, clothes: "spats and a tank top"}); - if(isItemAccessible("Western clothing")) { + if (isItemAccessible("Western clothing")) { wardrobeAssignment.push({text: `and wears an appropriate cowgirl outfit. ${His} bare ass walking past is sure to amuse ${his} charges.`, clothes: "Western clothing"}); } - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { wardrobeAssignment.push({text: `and slips into some comfy stretch pants to relax as ${he} works the cows.`, clothes: "stretch pants and a crop-top"}); } - if(State.variables.cumSlaves > 2) { + if (State.variables.cumSlaves > 2) { wardrobeAssignment.push({text: `and wears a slutty nurse outfit to help keep ${his} charges hard.`, clothes: "a slutty nurse outfit"}); wardrobeAssignment.push({text: `and wears nothing but sexy lingerie to help keep ${his} charges hard.`, clothes: "attractive lingerie"}); wardrobeAssignment.push({text: `and wears the skimpiest bikini on hand to help keep ${his} charges hard.`, clothes: "a string bikini"}); - if(isItemAccessible("body oil")) { + if (isItemAccessible("body oil")) { wardrobeAssignment.push({text: `and coats ${himself} in oil for ${his} charges to savor.`, clothes: "body oil"}); } } } - } else if(slave.assignment === "be your Head Girl") { - if(isItemAccessible("a military uniform")) { + } else if (slave.assignment === "be your Head Girl") { + if (isItemAccessible("a military uniform")) { wardrobeAssignment.push({text: `and wears a military uniform to give ${him} that extra touch of authority.`, clothes: "a military uniform"}); } - if(isItemAccessible("a schutzstaffel uniform")) { + if (isItemAccessible("a schutzstaffel uniform")) { wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to give ${him} that extra touch of authority.`, clothes: "a schutzstaffel uniform"}); wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to give ${him} that extra touch of authority.`, clothes: "a slutty schutzstaffel uniform"}); } - if(isItemAccessible("a red army uniform")) { + if (isItemAccessible("a red army uniform")) { wardrobeAssignment.push({text: `and wears a red army uniform to give ${him} that extra touch of authority.`, clothes: "a red army uniform"}); } - if(isItemAccessible("a mounty outfit")) { + if (isItemAccessible("a mounty outfit")) { wardrobeAssignment.push({text: `and wears a mounty outfit to give ${him} that extra touch of authority.`, clothes: "a mounty outfit"}); } - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a handsome suit to give ${him} that extra touch of authority.`, clothes: "nice business attire"}); } - if(canPenetrate(slave)){ + if (canPenetrate(slave)) { wardrobeAssignment.push({text: `and wears a slutty suit to make it perfectly clear that ${his} dick is ${his} main tool in ${his} job.`, clothes: "slutty business attire"}); } else { wardrobeAssignment.push({text: `and wears a slutty suit to give ${him} an extra touch of authority while keeping ${his} crotch available.`, clothes: "slutty business attire"}); } - } else if(slave.assignment === "be the Schoolteacher") { - if(isItemAccessible("nice business attire")) { + } else if (slave.assignment === "be the Schoolteacher") { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a handsome suit to give ${him} that teacherly authority.`, clothes: "nice business attire"}); } wardrobeAssignment.push({text: `and wears a slutty suit to give ${him} an air of authority will keeping all eyes focused on ${him}.`, clothes: "slutty business attire"}); wardrobeAssignment.push({text: `and wears a schoolgirl outfit to help keep ${his} charges focused on ${him}.`, clothes: "a schoolgirl outfit"}); wardrobeAssignment.push({text: `and dresses up as a succubus to give ${his} sex lessons an extra kick.`, clothes: "a succubus outfit"}); - if(isItemAccessible("conservative clothing")) { + if (isItemAccessible("conservative clothing")) { wardrobeAssignment.push({text: `and wears conservative clothes to not detract from this week's lesson.`, clothes: "conservative clothing"}); } - if(isItemAccessible("a toga")) { + if (isItemAccessible("a toga")) { wardrobeAssignment.push({text: `and wraps ${himself} in a toga to model ${himself} after the philosophers of yore.`, clothes: "a toga"}); } - if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + if (isItemAccessible("a maternity dress") && slave.belly >= 10000) { wardrobeAssignment.push({text: `and settles for a comfortable maternity dress to support ${his} middle while ${he} lectures in front of the class all week.`, clothes: "a maternity dress"}); } - } else if(slave.assignment === "be the Wardeness") { - if(isItemAccessible("battledress")) { + } else if (slave.assignment === "be the Wardeness") { + if (isItemAccessible("battledress")) { wardrobeAssignment.push({text: `and dons battledress, the better to intimidate the prisoners.`, clothes: "battledress"}); } wardrobeAssignment.push({text: `and slips into a scalemail bikini, the better to intimidate the prisoners.`, clothes: "a scalemail bikini"}); wardrobeAssignment.push({text: `and dons a scandalous habit to make it perfectly clear that crossing this nun will result in sexual punishment.`, clothes: "a fallen nuns habit"}); - if(isItemAccessible("a military uniform")) { + if (isItemAccessible("a military uniform")) { wardrobeAssignment.push({text: `and wears a military uniform to look even more brutal and authoritative.`, clothes: "a military uniform"}); } - if(isItemAccessible("a schutzstaffel uniform")) { + if (isItemAccessible("a schutzstaffel uniform")) { wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to look even more brutal and authoritative.`, clothes: "a schutzstaffel uniform"}); wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to look even more brutal and authoritative.`, clothes: "a slutty schutzstaffel uniform"}); } - if(isItemAccessible("a red army uniform")) { + if (isItemAccessible("a red army uniform")) { wardrobeAssignment.push({text: `and wears a red army uniform to look even more brutal and authoritative.`, clothes: "a red army uniform"}); } - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { wardrobeAssignment.push({text: `and decides to take it easy by slipping into some stretch pants. They come off just as quickly as they come on, just in case.`, clothes: "stretch pants and a crop-top"}); } - } else if(slave.assignment === "be the Attendant") { + } else if (slave.assignment === "be the Attendant") { wardrobeAssignment.push({text: `and wears a string bikini, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a string bikini"}); - if(isItemAccessible("a monokini")) { + if (isItemAccessible("a monokini")) { wardrobeAssignment.push({text: `and wears an one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a monokini"}); } - if(isItemAccessible("a one-piece swimsuit")) { + if (isItemAccessible("a one-piece swimsuit")) { wardrobeAssignment.push({text: `and wears a one-piece swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a one-piece swimsuit"}); } - if(isItemAccessible("a burkini")) { + if (isItemAccessible("a burkini")) { wardrobeAssignment.push({text: `and wears a modest swimsuit, since it's all ${he} can wear that won't be ruined by all the moisture in the spa.`, clothes: "a burkini"}); } wardrobeAssignment.push({text: `but decides to go nude, since ${he}'ll be spending so much time in the water.`, clothes: "no clothing"}); - } else if(slave.assignment === "rest") { + } else if (slave.assignment === "rest") { wardrobeAssignment.push({text: `and wears a comfortable t-shirt and cutoffs to relax.`, clothes: "cutoffs and a t-shirt"}); wardrobeAssignment.push({text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`, clothes: "attractive lingerie"}); wardrobeAssignment.push({text: `and slips into nothing more than a pair of panties.`, clothes: "panties"}); wardrobeAssignment.push({text: `but decides that clothing takes too much work and would rather sleep nude.`, clothes: "no clothing"}); - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { wardrobeAssignment.push({text: `and slips into some comfy stretch pants to relax.`, clothes: "stretch pants and a crop-top"}); } - if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { wardrobeAssignment.push({text: `and slips into some attractive lingerie to enjoy ${himself} as ${he} unwinds.`, clothes: "attractive lingerie for a pregnant woman"}); } - if(slave.fetish === "submissive") { + if (slave.fetish === "submissive") { wardrobeAssignment.push({text: `and decides the best way to relax is tied up nice and tight.`, clothes: "shibari ropes"}); } - } else if(slave.assignment === "get milked" || slave.assignment === "work in the dairy") { + } else if (slave.assignment === "get milked" || slave.assignment === "work in the dairy") { wardrobeAssignment.push({text: `and wears sturdy lingerie to offer the best support to ${his} sore, milk-filled udders.`, clothes: "attractive lingerie"}); - if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { + if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 1500) { wardrobeAssignment.push({text: `and wears lingerie designed for milky mothers.`, clothes: "attractive lingerie for a pregnant woman"}); } - if(isItemAccessible("a maternity dress") && slave.belly >= 10000) { + if (isItemAccessible("a maternity dress") && slave.belly >= 10000) { wardrobeAssignment.push({text: `and chooses a maternity dress since it is easy to free ${his} breasts from.`, clothes: "a maternity dress"}); } wardrobeAssignment.push({text: `and wears a string bikini for easy access to ${his} udders.`, clothes: "a string bikini"}); - if(slave.lactation > 1) { + if (slave.lactation > 1) { wardrobeAssignment.push({text: `but goes nude. There's no time for clothing, ${his} udders need to be drained now!`, clothes: "no clothing"}); } wardrobeAssignment.push({text: `and dons a slutty outfit. If ${his} breasts are going to hang out, might as well wear something to complement them.`, clothes: "a slutty outfit"}); - } else if(slave.assignment === "guard you") { + } else if (slave.assignment === "guard you") { wardrobeAssignment.push({text: `and wears a bodysuit to show off ${his} curves without hindering ${his} deadliness.`, clothes: "a comfortable bodysuit"}); - if(isItemAccessible("a military uniform")) { + if (isItemAccessible("a military uniform")) { wardrobeAssignment.push({text: `and wears a military uniform to look the part of the honor guard.`, clothes: "a military uniform"}); } - if(isItemAccessible("a schutzstaffel uniform")) { + if (isItemAccessible("a schutzstaffel uniform")) { wardrobeAssignment.push({text: `and wears a schutzstaffel uniform to look the part of the honor guard.`, clothes: "a schutzstaffel uniform"}); wardrobeAssignment.push({text: `and wears a slutty schutzstaffel uniform to look the part of the honor guard.`, clothes: "a slutty schutzstaffel uniform"}); } - if(isItemAccessible("a red army uniform")) { + if (isItemAccessible("a red army uniform")) { wardrobeAssignment.push({text: `and wears a red army uniform to look the part of the honor guard.`, clothes: "a red army uniform"}); } - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a nice suit to make it clear you mean business.`, clothes: "nice business attire"}); } - if(isItemAccessible("a mounty outfit")) { + if (isItemAccessible("a mounty outfit")) { wardrobeAssignment.push({text: `and wears a mounty outfit to make it clear you mean business.`, clothes: "a mounty outfit"}); } wardrobeAssignment.push({text: `and wears a scalemail bikini to make ${himself} look fierce.`, clothes: "a scalemail bikini"}); - if(isItemAccessible("a kimono")) { + if (isItemAccessible("a kimono")) { wardrobeAssignment.push({text: `and wears a nice kimono to add an air of elegance to your presence.`, clothes: "a kimono"}); } } else { - /*Chooses clothes according to assignment (exceptions allowed)*/ - if(slave.assignment === "recruit girls") { - if(isItemAccessible("a mini dress")) { + /* Chooses clothes according to assignment (exceptions allowed)*/ + if (slave.assignment === "recruit girls") { + if (isItemAccessible("a mini dress")) { wardrobeAssignment.push({text: `and wears a flattering mini dress to appear sexy and carefree before those desperately seeking a better life.`, clothes: "a mini dress"}); } wardrobeAssignment.push({text: `and wears a cutoffs and a t-shirt to appear sexy and carefree before those desperately seeking a better life.`, clothes: "cutoffs and a t-shirt"}); - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeAssignment.push({text: `and wears a nice suit to appear trustworthy before those desperately seeking a better life.`, clothes: "nice business attire"}); } wardrobeAssignment.push({text: `and wears a schoolgirl outfit to appear sexy and carefree before those desperately seeking a better life.`, clothes: "a schoolgirl outfit"}); - if(isItemAccessible("a ball gown")) { + if (isItemAccessible("a ball gown")) { wardrobeAssignment.push({text: `and wears an opulent gown to showcase your wealth before those desperately seeking a better life.`, clothes: "a ball gown"}); } wardrobeAssignment.push({text: `and dresses as a succubus to attempt to lure any potential catches.`, clothes: "a succubus outfit"}); - if(isItemAccessible("harem gauze")) { + if (isItemAccessible("harem gauze")) { wardrobeAssignment.push({text: `and dons ${his} finest silks to showcase the luxuries waiting would-be slaves.`, clothes: "harem gauze"}); } - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { wardrobeAssignment.push({text: `and wears comfortable stretch pants to and crop-top to appear carefree before those desperately seeking a better life.`, clothes: "stretch pants and a crop-top"}); } - if(isItemAccessible("conservative clothing")) { + if (isItemAccessible("conservative clothing")) { wardrobeAssignment.push({text: `and wears normal clothing to suggest to those desperately seeking a better life that they can find it here with you.`, clothes: "conservative clothing"}); } - } else if(slave.assignment === "be the DJ") { + } else if (slave.assignment === "be the DJ") { wardrobeAssignment.push({text: `and wears clubslut netting to look like the perfect easy club girl.`, clothes: "clubslut netting"}); wardrobeAssignment.push({text: `and wears cutoffs and a t-shirt to look like the perfect easy club girl.`, clothes: "cutoffs and a t-shirt"}); wardrobeAssignment.push({text: `and wears the slutty outfit ${he} can find to look like the perfect easy club girl.`, clothes: "a slutty outfit"}); wardrobeAssignment.push({text: `and wears nothing but slutty jewelry since ${he} loves the way it jingles to ${his} moves.`, clothes: "slutty jewelry"}); wardrobeAssignment.push({text: `and wears a skin tight bodysuit so nothing gets in the way of ${his} moves.`, clothes: "a comfortable bodysuit"}); - if(slave.boobs > 1000) { + if (slave.boobs > 1000) { wardrobeAssignment.push({text: `but decides to go naked and let ${his} girls bounce free as ${he} dances.`, clothes: "no clothing"}); } - if(isItemAccessible("harem gauze")) { + if (isItemAccessible("harem gauze")) { wardrobeAssignment.push({text: `and wears the finest available silks to give ${his} moves a sensual grace.`, clothes: "harem gauze"}); } - } else if(slave.assignment === "be your Concubine") { + } else if (slave.assignment === "be your Concubine") { wardrobeAssignment.push({text: `and goes naked, since it's ${his} honored role to be the chief object of your desire.`, clothes: "no clothing"}); wardrobeAssignment.push({text: `and dresses as a slutty nurse as your genitals are always in need of ${his} special treatment.`, clothes: "a slutty nurse outfit"}); wardrobeAssignment.push({text: `and dresses as a schoolgirl in the hopes that you teach ${him} how to be a woman.`, clothes: "a schoolgirl outfit"}); wardrobeAssignment.push({text: `and dresses as a cheerleader so ${he} may cheer you on as you blow ${his} mind.`, clothes: "a cheerleader outfit"}); - if(player.dick === 1) { + if (player.dick === 1) { wardrobeAssignment.push({text: `and dresses as a slutty maid as you always come home with a stiff package that needs a thorough polishing.`, clothes: "a slutty maid outfit"}); } wardrobeAssignment.push({text: `and, since you personally see that ${he} never goes hungry, ${he} dresses like the sex demoness ${he} is.`, clothes: "a succubus outfit"}); - if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 10000 && slave.pregSource === -1) { + if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.belly >= 10000 && slave.pregSource === -1) { wardrobeAssignment.push({text: `and chooses attractive lingerie to showcase the body you've given ${him} in the hopes that you ravish ${him}.`, clothes: "attractive lingerie for a pregnant woman"}); } - if(slave.toyHole === "dick" && canPenetrate(slave)) { + if (slave.toyHole === "dick" && canPenetrate(slave)) { wardrobeAssignment.push({text: `and slips into a scalemail bikini so ${he} can act the role of your conqueror as ${he} bends you over.`, clothes: "a scalemail bikini"}); } - } else if(slave.assignment === "be a subordinate slave") { + } else if (slave.assignment === "be a subordinate slave") { wardrobeAssignment.push({text: `but gives up and goes naked after the other slaves constantly tear whatever ${he}'s wearing off ${him}.`, clothes: "no clothing"}); - if(isItemAccessible("Western clothing")) { + if (isItemAccessible("Western clothing")) { wardrobeAssignment.push({text: `and chooses a pair of crotchless chaps so your other slaves don't have to waste time undressing ${him}.`, clothes: "Western clothing"}); } - if(slave.fetish === "submissive") { + if (slave.fetish === "submissive") { wardrobeAssignment.push({text: `and chooses to slip on a pair of spats and a tank top in the hopes that ${he} gets to be a violated schoolgirl.`, clothes: "spats and a tank top"}); wardrobeAssignment.push({text: `and chooses to slip on a schoolgirl outfit in the hope that ${he} gets held down and raped.`, clothes: "a schoolgirl outfit"}); wardrobeAssignment.push({text: `and chooses to wear the sluttiest outfit available to make it clear what ${he} wants done to ${him}.`, clothes: "a slutty outfit"}); } - } else if(slave.assignment === "work a glory hole") { + } else if (slave.assignment === "work a glory hole") { wardrobeAssignment.push({text: `but doesn't bother wearing anything, since no one can see ${his} clothing when ${he}'s immured inside a glory hole.`, clothes: "no clothing"}); - } else if(slave.assignment === "take classes" || slave.assignment === "learn in the schoolroom") { + } else if (slave.assignment === "take classes" || slave.assignment === "learn in the schoolroom") { wardrobeAssignment.push({text: `and wears a schoolgirl outfit, since it seems most appropriate.`, clothes: "a schoolgirl outfit"}); wardrobeAssignment.push({text: `and wears a cheerleader outfit, since ${he} might as well be one of the popular girls.`, clothes: "a cheerleader outfit"}); - if(isItemAccessible("conservative clothing")) { + if (isItemAccessible("conservative clothing")) { wardrobeAssignment.push({text: `and wears normal clothing to not distract from ${his} lessons.`, clothes: "conservative clothing"}); } - } else if((slave.assignment === "whore") || (slave.assignment === "work in the brothel")) { - if(slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { + } else if ((slave.assignment === "whore") || (slave.assignment === "work in the brothel")) { + if (slave.belly >= 5000 && isItemAccessible("attractive lingerie for a pregnant woman")) { wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while still looking a little classy.`, clothes: "attractive lingerie for a pregnant woman"}); } wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little classy.`, clothes: "attractive lingerie"}); - if(isItemAccessible("kitty lingerie")) { + if (isItemAccessible("kitty lingerie")) { wardrobeAssignment.push({text: `and wears pretty lingerie to show off ${his} merchandise and still look a little cute.`, clothes: "kitty lingerie"}); } - if(isItemAccessible("harem gauze")) { + if (isItemAccessible("harem gauze")) { wardrobeAssignment.push({text: `and dresses ${himself} with harem gauze to add an exotic charm to ${his} display.`, clothes: "harem gauze"}); } - if(isItemAccessible("a kimono")) { + if (isItemAccessible("a kimono")) { wardrobeAssignment.push({text: `and wraps ${himself} in a kimono to add some elegance to ${his} display.`, clothes: "a kimono"}); } - if(isItemAccessible("a slave gown")) { + if (isItemAccessible("a slave gown")) { wardrobeAssignment.push({text: `and adorns ${himself} in fine dress to show off how much of a high class whore ${he} is.`, clothes: "a slave gown"}); } wardrobeAssignment.push({text: `and dresses ${himself} in a slutty suit to show ${he}'s in it for the ¤.`, clothes: "slutty business attire"}); - if(isItemAccessible("a mini dress")) { + if (isItemAccessible("a mini dress")) { wardrobeAssignment.push({text: `and wears a flattering mini dress to really strut ${his} stuff.`, clothes: "a mini dress"}); } - } else if(slave.assignment === "serve the public" || slave.assignment === "serve in the club") { + } else if (slave.assignment === "serve the public" || slave.assignment === "serve in the club") { wardrobeAssignment.push({text: `and wears string lingerie to look fun and fuckable.`, clothes: "a string bikini"}); wardrobeAssignment.push({text: `and throws together the sluttiest outfit since if you're going to slut you might as well go all out.`, clothes: "a slutty outfit"}); wardrobeAssignment.push({text: `and tosses on a slutty suit that screams ${he} needs a good fuck after a long day.`, clothes: "slutty business attire"}); wardrobeAssignment.push({text: `and dresses up as a slutty nurse; ${he} has just the technique to cure penile swelling.`, clothes: "a slutty nurse outfit"}); wardrobeAssignment.push({text: `and wears a cheerleader outfit to look energetic and fuckable.`, clothes: "a cheerleader outfit"}); - if(isItemAccessible("a bunny outfit")) { + if (isItemAccessible("a bunny outfit")) { wardrobeAssignment.push({text: `and slips into a teddy to add some class to ${his} post.`, clothes: "a bunny outfit"}); } wardrobeAssignment.push({text: `and dresses up as a succubus to clearly advertise ${his} promiscuity.`, clothes: "a succubus outfit"}); - if(slave.bellyPreg >= 10000) { + if (slave.bellyPreg >= 10000) { wardrobeAssignment.push({text: `and struggles into a schoolgirl outfit. ${His} gravid belly just screams that ${he} is a slutty little student who cares more for dick than lessons.`, clothes: "a succubus outfit"}); } - } else if(slave.assignment === "be a servant" || slave.assignment === "work as a servant") { - if(slave.energy > 95 || slave.need > 100) { + } else if (slave.assignment === "be a servant" || slave.assignment === "work as a servant") { + if (slave.energy > 95 || slave.need > 100) { wardrobeAssignment.push({text: `and wears a skimpy maid outfit hoping that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`, clothes: "a slutty maid outfit"}); wardrobeAssignment.push({text: `and wears nothing more than an apron in the hopes that someone sneaks up behind ${him} as ${he} works and fulfills ${his} desires.`, clothes: "an apron"}); - } else if(slave.energy > 80) { + } else if (slave.energy > 80) { wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"}); - if(isItemAccessible("a nice maid outfit")) { + if (isItemAccessible("a nice maid outfit")) { wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`, clothes: "a nice maid outfit"}); } wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"}); wardrobeAssignment.push({text: `and wears nothing more than an apron to tempt anyone watching ${his} work.`, clothes: "an apron"}); } else { - if(isItemAccessible("a nice maid outfit")) { + if (isItemAccessible("a nice maid outfit")) { wardrobeAssignment.push({text: `and wears a sturdy maid outfit, since anything else might be damaged by ${his} hard work around the penthouse.`, clothes: "a nice maid outfit"}); } wardrobeAssignment.push({text: `and wears a skimpy maid outfit to tempt anyone watching ${his} work.`, clothes: "a slutty maid outfit"}); @@ -517,118 +517,118 @@ window.saChoosesOwnClothes = (function() { } /* Chooses clothes according to FS*/ - if(V.arcologies[0].FSEgyptianRevivalist > 0) { + if (V.arcologies[0].FSEgyptianRevivalist > 0) { wardrobeFS.push({text: `and complements it with golden bangles, since no clothing is necessary for a sex slave in your warm and sunny arcology.`, clothes: "slutty jewelry"}); - } else if(V.arcologies[0].FSRomanRevivalist > 0) { + } else if (V.arcologies[0].FSRomanRevivalist > 0) { wardrobeFS.push({text: `and wears a toga to take part in your Roman revivalism.`, clothes: "a toga"}); - } else if(V.arcologies[0].FSEdoRevivalist > 0) { + } else if (V.arcologies[0].FSEdoRevivalist > 0) { wardrobeFS.push({text: `and wears a kimono, overjoyed that such lovely clothing is now appropriate.`, clothes: "a kimono"}); - } else if(V.arcologies[0].FSArabianRevivalist > 0) { + } else if (V.arcologies[0].FSArabianRevivalist > 0) { wardrobeFS.push({text: `and wears a harem outfit to look like a slave girl fit for a Sultan.`, clothes: "harem gauze"}); - } else if(V.arcologies[0].FSChineseRevivalist > 0) { + } else if (V.arcologies[0].FSChineseRevivalist > 0) { wardrobeFS.push({text: `and wears a brief qipao to show off and look Chinese at the same time.`, clothes: "a slutty qipao"}); wardrobeFS.push({text: `and wears a long qipao to show off and look Chinese at the same time.`, clothes: "a long qipao"}); - } else if(V.arcologies[0].FSAztecRevivalist > 0) { + } else if (V.arcologies[0].FSAztecRevivalist > 0) { wardrobeFS.push({text: `and drapes a huipil over ${himself} to fit in with your Aztec revivalism.`, clothes: "a huipil"}); } - if(V.arcologies[0].FSGenderFundamentalist > 0) { + if (V.arcologies[0].FSGenderFundamentalist > 0) { wardrobeFS.push({text: `and wears a schoolgirl outfit to look like a hot slut.`, clothes: "a schoolgirl outfit"}); wardrobeFS.push({text: `and wears a cheerleader outfit to look like a hot slut.`, clothes: "a cheerleader outfit"}); wardrobeFS.push({text: `and wears a bunny outfit to look like a slut from the glory days.`, clothes: "a bunny outfit"}); wardrobeFS.push({text: `and wears only an apron, making ${him} look like a slutty housewife.`, clothes: "an apron"}); - if(slave.bellyPreg >= 5000) { + if (slave.bellyPreg >= 5000) { wardrobeFS.push({text: `but decides to wear nothing at all; ${he}'s already pregnant, so ${he} just needs to be barefoot and naked to complete ${his} look.`, clothes: "no clothing"}); } - } else if(V.arcologies[0].FSGenderRadicalist > 0) { + } else if (V.arcologies[0].FSGenderRadicalist > 0) { wardrobeFS.push({text: `and eagerly slips into a skimpy maid outfit so ${he} can take advantage of its short skirt and ${his} lack of underwear`, clothes: "a slutty maid outfit"}); wardrobeFS.push({text: `and wears a cheerleader outfit that clearly shows off ${his} ass.`, clothes: "a cheerleader outfit"}); wardrobeFS.push({text: `and settles for some sexy succubutt.`, clothes: "a succubus outfit"}); } - if(V.arcologies[0].FSPaternalist > 0) { + if (V.arcologies[0].FSPaternalist > 0) { wardrobeFS.push({text: `and wears conservative clothing, as permitted by your paternalism.`, clothes: "conservative clothing"}); - if(isItemAccessible("a hijab and blouse") && slave.race === "middle eastern") { + if (isItemAccessible("a hijab and blouse") && slave.race === "middle eastern") { wardrobeFS.push({text: `and wears very conservative clothing, as permitted by your paternalism.`, clothes: "a hijab and blouse"}); } - if(isItemAccessible("stretch pants and a crop-top")) { + if (isItemAccessible("stretch pants and a crop-top")) { wardrobeFS.push({text: `and wears the most comfortable stretch pants ${he} can find.`, clothes: "stretch pants and a crop-top"}); } - } else if(V.arcologies[0].FSDegradationist > 0) { + } else if (V.arcologies[0].FSDegradationist > 0) { wardrobeFS.push({text: `and wears chains, to degrade ${himself} as required by your societal goals.`, clothes: "chains"}); wardrobeFS.push({text: `and binds ${himself} with a set of uncomfortable straps.`, clothes: "uncomfortable straps"}); wardrobeFS.push({text: `and binds ${himself} with a set of uncomfortable ropes.`, clothes: "shibari ropes"}); } - if(V.arcologies[0].FSMaturityPreferentialist > 0) { - if(slave.visualAge >= 30) { - if(isItemAccessible("nice business attire")) { + if (V.arcologies[0].FSMaturityPreferentialist > 0) { + if (slave.visualAge >= 30) { + if (isItemAccessible("nice business attire")) { wardrobeFS.push({text: `and wears a formal suit to look like the ideal older woman.`, clothes: "nice business attire"}); } wardrobeFS.push({text: `and wears a slutty suit to look like the ideal horny older woman.`, clothes: "slutty business attire"}); wardrobeFS.push({text: `and wears only an apron to make ${himself} seem more matronly.`, clothes: "an apron"}); } else { - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeFS.push({text: `and wears a formal suit to look more mature.`, clothes: "nice business attire"}); } - if(isItemAccessible("a Santa dress")) { + if (isItemAccessible("a Santa dress")) { wardrobeFS.push({text: `and wears a dress referencing a figure of advanced age.`, clothes: "a Santa dress"}); } wardrobeFS.push({text: `and wears only an apron in an attempt to make ${himself} seem more matronly.`, clothes: "an apron"}); } - } else if(V.arcologies[0].FSYouthPreferentialist > 0) { + } else if (V.arcologies[0].FSYouthPreferentialist > 0) { wardrobeFS.push({text: `and wears a schoolgirl outfit to look younger.`, clothes: "a schoolgirl outfit"}); wardrobeFS.push({text: `and wears a cheerleader outfit to look younger and more energetic.`, clothes: "a cheerleader outfit"}); wardrobeFS.push({text: `and wears spats and a tank top to look younger and more energetic.`, clothes: "spats and a tank top"}); } - if(V.arcologies[0].FSPhysicalIdealist > 0) { + if (V.arcologies[0].FSPhysicalIdealist > 0) { wardrobeFS.push({text: `and coats ${himself} in body oil to show off how ${he}'s part of your physical idealism.`, clothes: "body oil"}); wardrobeFS.push({text: `and goes totally nude to show off how ${he}'s part of your physical idealism.`, clothes: "no clothing"}); wardrobeFS.push({text: `and slips into a leotard for ${his} next workout.`, clothes: "a leotard"}); wardrobeFS.push({text: `and slips into some spats for ${his} next workout.`, clothes: "spats and a tank top"}); - } else if(V.arcologies[0].FSHedonisticDecadence > 0) { + } else if (V.arcologies[0].FSHedonisticDecadence > 0) { wardrobeFS.push({text: `and throws on a very casual getup.`, clothes: "stretch pants and a crop-top"}); wardrobeFS.push({text: `but decides against putting forth the effort and goes nude.`, clothes: "no clothing"}); } - if(V.arcologies[0].FSPastoralist > 0) { + if (V.arcologies[0].FSPastoralist > 0) { wardrobeFS.push({text: `and wears Western clothing, since ${he} thinks it fits with pastoralism.`, clothes: "Western clothing"}); - if(isItemAccessible("a monokini")) { + if (isItemAccessible("a monokini")) { wardrobeFS.push({text: `and wears a swimsuit that leaves ${his} breasts uncovered.`, clothes: "a monokini"}); } - if(isItemAccessible("pasties")) { + if (isItemAccessible("pasties")) { wardrobeFS.push({text: `and wears nothing more than a pair of pasties over ${his} nipples.`, clothes: "pasties"}); } - if(slave.lactation > 0) { + if (slave.lactation > 0) { wardrobeFS.push({text: `and dresses up as a slutty wet nurse.`, clothes: "a slutty nurse outfit"}); } wardrobeFS.push({text: `but decides to let ${his} breasts be free. Clothes will just get in the way.`, clothes: "no clothing"}); } - if(V.arcologies[0].FSBodyPurist > 0) { + if (V.arcologies[0].FSBodyPurist > 0) { wardrobeFS.push({text: `and wears a leotard to show off the purity of ${his} body.`, clothes: "a leotard"}); wardrobeFS.push({text: `but decides ${his} body is too nice to hide with clothing.`, clothes: "no clothing"}); - if(isItemAccessible("body oil")) { + if (isItemAccessible("body oil")) { wardrobeFS.push({text: `and coats ${his} pure body in oil to make it stand out.`, clothes: "body oil"}); } - } else if(V.arcologies[0].FSTransformationFetishist > 0) { + } else if (V.arcologies[0].FSTransformationFetishist > 0) { wardrobeFS.push({text: `and decides squeezing into a latex suit will only complement ${his} unnatural appearance.`, clothes: "restrictive latex"}); wardrobeFS.push({text: `and decides to go nude, ensuring everyone sees ${his} assets.`, clothes: "no clothing"}); - if(isItemAccessible("body oil")) { + if (isItemAccessible("body oil")) { wardrobeFS.push({text: `and coats ${his} assets in body oil to give them some extra shine.`, clothes: "body oil"}); } } - if(V.arcologies[0].FSAssetExpansioninst > 0) { + if (V.arcologies[0].FSAssetExpansioninst > 0) { wardrobeFS.push({text: `and decides to dress up like a young man's wet dream.`, clothes: "a succubus outfit"}); wardrobeFS.push({text: `and decides to wear a skimpy bikini to make ${his} assets look even larger.`, clothes: "a string bikini"}); wardrobeFS.push({text: `and decides to throw together a slutty outfit that highlight ${his} assets.`, clothes: "a slutty outfit"}); - if(isItemAccessible("a monokini")) { - wardrobeFS.push ({text: `and decides to wear a monokini that clings to the assets it actually does conceal.`, clothes: "a monokini"}); + if (isItemAccessible("a monokini")) { + wardrobeFS.push({text: `and decides to wear a monokini that clings to the assets it actually does conceal.`, clothes: "a monokini"}); } - } else if(V.arcologies[0].FSSlimnessEnthusiast > 0) { - if(slave.boobs < 300) { + } else if (V.arcologies[0].FSSlimnessEnthusiast > 0) { + if (slave.boobs < 300) { wardrobeFS.push({text: `and wears a string bikini to show off just how flat ${he} is.`, clothes: "a string bikini"}); - if(isItemAccessible("a monokini")) { + if (isItemAccessible("a monokini")) { wardrobeFS.push({text: `and wears a monokini that leaves ${his} flat chest bare.`, clothes: "a monokini"}); } wardrobeFS.push({text: `and wears only panties, leaving ${his} flat chest bare.`, clothes: "panties"}); } - if(slave.boobs < 600 && slave.butt < 3) { + if (slave.boobs < 600 && slave.butt < 3) { wardrobeFS.push({text: `and wears a leotard to show off ${his} lithe body.`, clothes: "a leotard"}); wardrobeFS.push({text: `and wears a form fitting bodysuit to show off ${his} lithe figure.`, clothes: "a comfortable bodysuit"}); wardrobeFS.push({text: `and wears spats to hug ${his} tight butt.`, clothes: "spats and a tank top"}); @@ -637,79 +637,79 @@ window.saChoosesOwnClothes = (function() { wardrobeFS.push({text: `and squeezes into a form fitting bodysuit in the hopes that it squishes down ${his} assets.`, clothes: "restrictive latex"}); } } - if(V.arcologies[0].FSSupremacist > 0) { - if(V.arcologies[0].FSSupremacistRace === "white") { - if(isItemAccessible("a dirndl")) { + if (V.arcologies[0].FSSupremacist > 0) { + if (V.arcologies[0].FSSupremacistRace === "white") { + if (isItemAccessible("a dirndl")) { wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the white race.`, clothes: "a dirndl"}); } - if(isItemAccessible("lederhosen")) { + if (isItemAccessible("lederhosen")) { wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the white race.`, clothes: "lederhosen"}); } - } else if(V.arcologies[0].FSSupremacistRace === "asian") { - if(isItemAccessible("a biyelgee costume")) { + } else if (V.arcologies[0].FSSupremacistRace === "asian") { + if (isItemAccessible("a biyelgee costume")) { wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a biyelgee costume"}); } - if(isItemAccessible("a long qipao")) { + if (isItemAccessible("a long qipao")) { wardrobeFS.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a long qipao"}); } - if(isItemAccessible("a kimono")) { + if (isItemAccessible("a kimono")) { wardrobeAssignment.push({text: `and wears one of the beautiful folk costumes of the asian race.`, clothes: "a kimono"}); } } } - /*Chooses clothes according to fetishes, quirks, etc.*/ - if(slave.attrXY > 70) { - if(slave.attrKnown === 1) { + /* Chooses clothes according to fetishes, quirks, etc.*/ + if (slave.attrXY > 70) { + if (slave.attrKnown === 1) { wardrobeTastes.push({text: `and wears a schoolgirl outfit to show off a some T&A to attract boys.`, clothes: "a schoolgirl outfit"}); wardrobeTastes.push({text: `and wears nothing but pretty lingerie to attract boys.`, clothes: "attractive lingerie"}); wardrobeTastes.push({text: `and selects a slutty outfit that's sure to have men drooling.`, clothes: "a slutty outfit"}); - if(slave.butt > 3){ + if (slave.butt > 3) { wardrobeTastes.push({text: `and slips on some cutoffs that are sure to have men checking out ${his} ass.`, clothes: "cutoffs and a t-shirt"}); } - if(isItemAccessible("a bunny outfit")) { + if (isItemAccessible("a bunny outfit")) { wardrobeTastes.push({text: `and slips into a bunny outfit that ${he} knows will have men lining up.`, clothes: "a bunny outfit"}); } - if(slave.boobs > 800) { + if (slave.boobs > 800) { wardrobeTastes.push({text: `and dresses up as a busty succubus that pulls eyes to ${his} chest and leaves pants feeling tight.`, clothes: "a succubus outfit"}); } } else { wardrobeTastes.push({text: `and selects a schoolgirl outfit that shows off some T&A.`, clothes: "a schoolgirl outfit"}); wardrobeTastes.push({text: `and wears pretty lingerie that shows off ${his} body.`, clothes: "attractive lingerie"}); wardrobeTastes.push({text: `and selects a slutty outfit that's sure to draw attention.`, clothes: "a slutty outfit"}); - if(slave.butt > 3){ + if (slave.butt > 3) { wardrobeTastes.push({text: `and slips on some cutoffs that shows off ${his} ass.`, clothes: "cutoffs and a t-shirt"}); } - if(isItemAccessible("a bunny outfit")) { + if (isItemAccessible("a bunny outfit")) { wardrobeTastes.push({text: `and slips into a bunny outfit that hugs ${his} curves.`, clothes: "a bunny outfit"}); } - if(slave.boobs > 800) { + if (slave.boobs > 800) { wardrobeTastes.push({text: `and dresses up as a busty succubus that's sure to draw eyes.`, clothes: "a succubus outfit"}); } } } - if(slave.attrXX > 70) { - if(slave.attrKnown === 1) { - if(isItemAccessible("a slave gown")) { + if (slave.attrXX > 70) { + if (slave.attrKnown === 1) { + if (isItemAccessible("a slave gown")) { wardrobeTastes.push({text: `and wears a fashionable gown, since girls appreciate nice clothes.`, clothes: "a slave gown"}); } wardrobeTastes.push({text: `and wears nothing but pretty lingerie to give the girls a show.`, clothes: "attractive lingerie"}); - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeTastes.push({text: `and wears a nice suit, since girls appreciate nice clothes.`, clothes: "nice business attire"}); } } else { - if(isItemAccessible("a slave gown")) { + if (isItemAccessible("a slave gown")) { wardrobeTastes.push({text: `and wears a fashionable gown.`, clothes: "a slave gown"}); } wardrobeTastes.push({text: `and wears pretty lingerie that shows off ${his} body.`, clothes: "attractive lingerie"}); - if(isItemAccessible("nice business attire")) { + if (isItemAccessible("nice business attire")) { wardrobeTastes.push({text: `and wears a nice suit, the reasons not entirely clear to you.`, clothes: "nice business attire"}); } } } /* need */ - if(slave.need > 90) { + if (slave.need > 90) { wardrobeTastes.push({text: `but goes naked. ${He} needs sex now and clothing will only get in the way.`, clothes: "no clothing"}); wardrobeTastes.push({text: `and throws on a slutty suit. ${He} hopes that it gets the point across that ${he} needs sex now.`, clothes: "slutty business attire"}); wardrobeTastes.push({text: `and dons a slutty nurse outfit. ${He}'s been infected and the only cure is a strong dicking.`, clothes: "a slutty nurse outfit"}); @@ -718,160 +718,160 @@ window.saChoosesOwnClothes = (function() { } /* quirks n flaws */ - if(slave.behavioralFlaw === "arrogant") { - if(isItemAccessible("a ball gown")) { + if (slave.behavioralFlaw === "arrogant") { + if (isItemAccessible("a ball gown")) { wardrobeTastes.push({text: `and chooses a formal dress that makes ${him} feel like royalty.`, clothes: "a ball gown"}); } - } else if(slave.behavioralFlaw === "devout") { + } else if (slave.behavioralFlaw === "devout") { wardrobeTastes.push({text: `and wears something more appropriate for a monastery than a whorehouse.`, clothes: "a penitent nuns habit"}); } - if(slave.behavioralQuirk === "sinful") { + if (slave.behavioralQuirk === "sinful") { wardrobeTastes.push({text: `and dresses up like a succubus because it makes ${him} feel naughty.`, clothes: "a succubus outfit"}); - } else if(slave.behavioralQuirk === "fitness") { + } else if (slave.behavioralQuirk === "fitness") { wardrobeTastes.push({text: `and wears spats and a tank top to give ${himself} a sporty look.`, clothes: "spats and a tank top"}); } - if(slave.sexualFlaw === "shamefast") { + if (slave.sexualFlaw === "shamefast") { wardrobeTastes.push({text: `and chooses an outfit that covers ${him} up as much as possible.`, clothes: "a hijab and abaya"}); - } else if(slave.sexualFlaw === "breeder") { - if(isItemAccessible("attractive lingerie for a pregnant woman")) { + } else if (slave.sexualFlaw === "breeder") { + if (isItemAccessible("attractive lingerie for a pregnant woman")) { wardrobeTastes.push({text: `and wears lingerie designed to accommodate pregnancies, hoping that others get the hint.`, clothes: "attractive lingerie for a pregnant woman"}); } - } else if(slave.sexualFlaw === "malicious") { - if(isItemAccessible("a schutzstaffel uniform")) { + } else if (slave.sexualFlaw === "malicious") { + if (isItemAccessible("a schutzstaffel uniform")) { wardrobeTastes.push({text: `and chooses an outfit that is commonly associated with wanton cruelty.`, clothes: "a schutzstaffel uniform"}); wardrobeTastes.push({text: `and chooses a skimpy outfit that is commonly associated with wanton cruelty.`, clothes: "a slutty schutzstaffel uniform"}); } } - if(slave.sexualQuirk === "romantic") { - if(isItemAccessible("a halter top dress")) { + if (slave.sexualQuirk === "romantic") { + if (isItemAccessible("a halter top dress")) { wardrobeTastes.push({text: `and dresses up like ${he}'s about to go on a date.`, clothes: "a halter top dress"}); } - } else if(slave.sexualQuirk === "tease") { - if(isItemAccessible("kitty lingerie")) { + } else if (slave.sexualQuirk === "tease") { + if (isItemAccessible("kitty lingerie")) { wardrobeTastes.push({text: `and wears a set of provocatively designed lingerie.`, clothes: "kitty lingerie"}); } - if(isItemAccessible("panties and pasties")) { + if (isItemAccessible("panties and pasties")) { wardrobeTastes.push({text: `and wears the skimpiest outfit ${he} can find.`, clothes: "panties and pasties"}); } } /* age stuff */ - if(slave.actualAge < 10) { - if(isItemAccessible("a ball gown")) { + if (slave.actualAge < 10) { + if (isItemAccessible("a ball gown")) { wardrobeTastes.push({text: `and puts on a pretty dress so ${he} can be a princess.`, clothes: "a ball gown"}); } wardrobeTastes.push({text: `and dresses up like a cheerleader since ${he} thinks it looks cute.`, clothes: "a cheerleader outfit"}); - if(isItemAccessible("a kimono")) { + if (isItemAccessible("a kimono")) { wardrobeTastes.push({text: `and wraps ${himself} in a kimono, since it feels so good on ${his} skin.`, clothes: "a kimono"}); } - } else if(slave.actualAge < 18) { + } else if (slave.actualAge < 18) { wardrobeTastes.push({text: `and chooses an outfit that somewhat resembles one of ${his} school uniforms.`, clothes: "a schoolgirl outfit"}); - } else if(slave.actualAge > 65) { - if(isItemAccessible("a Santa dress")) { + } else if (slave.actualAge > 65) { + if (isItemAccessible("a Santa dress")) { wardrobeTastes.push({text: `and chooses a dress that acknowledges ${his} advanced age while still looking sexy.`, clothes: "a Santa dress"}); } } /* fetishes */ - if(slave.fetishKnown === 1) { - if(slave.fetish === "submissive") { + if (slave.fetishKnown === 1) { + if (slave.fetish === "submissive") { wardrobeTastes.push({text: `and wears restrictive latex to encourage others to dominate ${him}.`, clothes: "restrictive latex"}); wardrobeTastes.push({text: `and wears shibari ropes to encourage others to dominate ${him}.`, clothes: "shibari ropes"}); - } else if(slave.fetish === "dom") { - if(isItemAccessible("nice business attire")) { + } else if (slave.fetish === "dom") { + if (isItemAccessible("nice business attire")) { wardrobeTastes.push({text: `and wears a handsome suit, since ${he} likes other slaves to look up to ${him}.`, clothes: "nice business attire"}); } - if(isItemAccessible("a latex catsuit")) { + if (isItemAccessible("a latex catsuit")) { wardrobeTastes.push({text: `and wears a full body latex catsuit to look the part of the whip cracking dom.`, clothes: "a latex catsuit"}); } wardrobeTastes.push({text: `and wears a scalemail bikini to make ${himself} look tough.`, clothes: "a scalemail bikini"}); - } else if(slave.fetish === "masochist") { + } else if (slave.fetish === "masochist") { wardrobeTastes.push({text: `and wears painfully restrictive bondage gear, since ${he} likes the torment.`, clothes: "uncomfortable straps"}); - if(isItemAccessible("chains")) { + if (isItemAccessible("chains")) { wardrobeTastes.push({text: `and wears painfully tight chains, since ${he} likes the torment.`, clothes: "chains"}); } - } else if(slave.fetish === "sadist") { - if(isItemAccessible("a slave gown")) { + } else if (slave.fetish === "sadist") { + if (isItemAccessible("a slave gown")) { wardrobeTastes.push({text: `and wears an elegant gown, since ${he} thinks it makes ${him} look the part of the femme fatale.`, clothes: "a slave gown"}); } wardrobeTastes.push({text: `and wears a scalemail bikini, since ${he} thinks it makes ${him} look fierce.`, clothes: "a scalemail bikini"}); - } else if(slave.fetish === "cumslut") { + } else if (slave.fetish === "cumslut") { wardrobeTastes.push({text: `and wears cutoffs and a t-shirt, because the fun yet relatively conservative outfit seems to encourage others to ask ${him} for blowjobs.`, clothes: "cutoffs and a t-shirt"}); - } else if(slave.fetish === "humiliation") { + } else if (slave.fetish === "humiliation") { wardrobeTastes.push({text: `and wears leather straps with rings over ${his} private parts because ${he} enjoys the embarrassment such a humiliating outfit causes ${him}.`, clothes: "uncomfortable straps"}); - } else if(slave.fetish === "buttslut") { + } else if (slave.fetish === "buttslut") { wardrobeTastes.push({text: `and wears nothing other than slutty bangles, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`, clothes: "slutty jewelry"}); wardrobeTastes.push({text: `and wears nothing other than an apron, because ${he} likes to catch the eye without putting anything between cocks and ${his} rear end.`, clothes: "an apron"}); - } else if(slave.fetish === "pregnancy") { + } else if (slave.fetish === "pregnancy") { wardrobeTastes.push({text: `and wears a short maid dress, because ${he} wants to look motherly and fuckable at the same time.`, clothes: "a slutty maid outfit"}); - if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + if (isItemAccessible("a maternity dress") && canGetPregnant(slave)) { wardrobeTastes.push({text: `and wears a maternity dress in the hope someone fills out its middle.`, clothes: "a maternity dress"}); } - } else if(slave.fetish === "boobs") { + } else if (slave.fetish === "boobs") { wardrobeTastes.push({text: `and wears a cheerleader outfit, since ${he} loves the way it hugs ${his} tits as ${he} moves.`, clothes: "a cheerleader outfit"}); - if(isItemAccessible("a monokini")) { + if (isItemAccessible("a monokini")) { wardrobeTastes.push({text: `and wears a monokini, since ${he} loves how it leaves ${his} breasts totally bare.`, clothes: "a monokini"}); } - if(isItemAccessible("kitty lingerie")) { + if (isItemAccessible("kitty lingerie")) { wardrobeTastes.push({text: `and chooses a lingerie set that leaves ${his} cleavage on public display.`, clothes: "kitty lingerie"}); } - if(isItemAccessible("pasties")) { + if (isItemAccessible("pasties")) { wardrobeTastes.push({text: `and wears nothing but a pair of pasties to draw eyes straight to ${his} nipples.`, clothes: "pasties"}); } - if(isItemAccessible("a bra")) { + if (isItemAccessible("a bra")) { wardrobeTastes.push({text: `and wears nothing but a bra in the hopes that the outlandish get up fixes eyes on ${his} chest.`, clothes: "a bra"}); } wardrobeTastes.push({text: `and wears nothing but a pair of panties so ${his} tits can bounce freely.`, clothes: "panties"}); } } else { - if(slave.fetish === "submissive") { + if (slave.fetish === "submissive") { wardrobeTastes.push({text: `and strangely opts for restrictive latex.`, clothes: "restrictive latex"}); wardrobeTastes.push({text: `and strangely opts for shibari ropes.`, clothes: "shibari ropes"}); - } else if(slave.fetish === "dom") { - if(isItemAccessible("nice business attire")) { + } else if (slave.fetish === "dom") { + if (isItemAccessible("nice business attire")) { wardrobeTastes.push({text: `and wears a handsome suit; ${he} seems to think highly of ${himself} in it.`, clothes: "nice business attire"}); } - if(isItemAccessible("a latex catsuit")) { + if (isItemAccessible("a latex catsuit")) { wardrobeTastes.push({text: `and wears a full body latex catsuit; there is a strange look on ${his} face as ${he} wears it.`, clothes: "a latex catsuit"}); } wardrobeTastes.push({text: `and wears a scalemail bikini; ${he} keeps flexing and acting tough to ${himself}.`, clothes: "a scalemail bikini"}); - } else if(slave.fetish === "masochist") { + } else if (slave.fetish === "masochist") { wardrobeTastes.push({text: `and strangely opts for painfully restrictive bondage gear.`, clothes: "uncomfortable straps"}); - if(isItemAccessible("chains")) { + if (isItemAccessible("chains")) { wardrobeTastes.push({text: `and strangely opts for painfully tight chains.`, clothes: "chains"}); } - } else if(slave.fetish === "sadist") { - if(isItemAccessible("a slave gown")) { + } else if (slave.fetish === "sadist") { + if (isItemAccessible("a slave gown")) { wardrobeTastes.push({text: `and wears an elegant gown for some reason.`, clothes: "a slave gown"}); } wardrobeTastes.push({text: `and wears a scalemail bikini; an odd choice.`, clothes: "a scalemail bikini"}); - } else if(slave.fetish === "cumslut") { + } else if (slave.fetish === "cumslut") { wardrobeTastes.push({text: `and wears cutoffs and a t-shirt; ${he} can't stop licking ${his} lips.`, clothes: "cutoffs and a t-shirt"}); - } else if(slave.fetish === "humiliation") { + } else if (slave.fetish === "humiliation") { wardrobeTastes.push({text: `and strangely opts for leather straps with rings over ${his} private parts.`, clothes: "uncomfortable straps"}); - } else if(slave.fetish === "buttslut") { + } else if (slave.fetish === "buttslut") { wardrobeTastes.push({text: `and wears nothing other than slutty bangles, an odd choice; ${his} ass is completely exposed.`, clothes: "slutty jewelry"}); wardrobeTastes.push({text: `and wears nothing other than an apron, an odd choice; ${his} ass is completely exposed.`, clothes: "an apron"}); - } else if(slave.fetish === "pregnancy") { + } else if (slave.fetish === "pregnancy") { wardrobeTastes.push({text: `and wears a short maid dress; you frequently notice ${him} observing ${his} stomach.`, clothes: "a slutty maid outfit"}); - if(isItemAccessible("a maternity dress") && canGetPregnant(slave)) { + if (isItemAccessible("a maternity dress") && canGetPregnant(slave)) { wardrobeTastes.push({text: `and wears a maternity dress even though ${he} isn't pregnant.`, clothes: "a maternity dress"}); } - } else if(slave.fetish === "boobs") { + } else if (slave.fetish === "boobs") { wardrobeTastes.push({text: `and wears a cheerleader outfit; ${he} seems to enjoy jiggling ${his} breasts in it.`, clothes: "a cheerleader outfit"}); - if(isItemAccessible("a monokini")) { + if (isItemAccessible("a monokini")) { wardrobeTastes.push({text: `and strangely decides to wear a monokini, which leaves ${his} breasts totally bare.`, clothes: "a monokini"}); } - if(isItemAccessible("kitty lingerie")) { + if (isItemAccessible("kitty lingerie")) { wardrobeTastes.push({text: `and oddly chooses a lingerie set with a cleavage cutout in the bra.`, clothes: "kitty lingerie"}); } - if(isItemAccessible("pasties")) { + if (isItemAccessible("pasties")) { wardrobeTastes.push({text: `and oddly opts for just a pair of pasties attached to ${his} nipples.`, clothes: "pasties"}); } - if(isItemAccessible("a bra")) { + if (isItemAccessible("a bra")) { wardrobeTastes.push({text: `and oddly opts for nothing more than a bra.`, clothes: "a bra"}); } wardrobeTastes.push({text: `and wears nothing but a pair of panties; ${he} seems to enjoy the way ${his} breasts bounce freely.`, clothes: "panties"}); @@ -879,29 +879,29 @@ window.saChoosesOwnClothes = (function() { } /* energy */ - if(slave.energy > 95) { + if (slave.energy > 95) { wardrobeTastes.push({text: `but goes nude, since as a nympho ${he} gets plenty of attention anyway, and considers clothes an unnecessary hindrance.`, clothes: "no clothing"}); - } else if(slave.energy > 60) { + } else if (slave.energy > 60) { wardrobeTastes.push({text: `and puts on some daring lingerie to draw attention to ${himself}.`, clothes: "attractive lingerie"}); wardrobeTastes.push({text: `and goes topless to draw attention to ${himself}.`, clothes: "panties"}); - if(isItemAccessible("kitty lingerie")) { + if (isItemAccessible("kitty lingerie")) { wardrobeTastes.push({text: `and puts on some decorative lingerie to draw attention to ${himself}.`, clothes: "kitty lingerie"}); } } /* pregnancy */ - if(slave.belly >= 5000) { + if (slave.belly >= 5000) { wardrobeTastes.push({text: `and wears pretty lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`, clothes: "attractive lingerie"}); wardrobeTastes.push({text: `and wears only panties. Something so easy to slit on is appreciable with such a big belly in the way.`, clothes: "panties"}); - if(isItemAccessible("kitty lingerie")) { + if (isItemAccessible("kitty lingerie")) { wardrobeTastes.push({text: `and wears cute lingerie to show off ${his} merchandise while giving ${his} protruding belly plenty of room to hang free.`, clothes: "kitty lingerie"}); } - if(isItemAccessible("a Santa dress")) { + if (isItemAccessible("a Santa dress")) { wardrobeTastes.push({text: `and chooses a dress that pokes fun at ${his} rotund figure while still looking sexy.`, clothes: "a Santa dress"}); } - if(isItemAccessible("attractive lingerie for a pregnant woman") && slave.energy > 70) { + if (isItemAccessible("attractive lingerie for a pregnant woman") && slave.energy > 70) { wardrobeTastes.push({text: `and wears pretty lingerie to show off ${his} merchandise and accentuate ${his} pregnancy while giving it plenty of room to hang free.`, clothes: "attractive lingerie for a pregnant woman"}); - } else if(isItemAccessible("a maternity dress")) { + } else if (isItemAccessible("a maternity dress")) { wardrobeTastes.push({text: `and wears a conservative dress with plenty of give for ${his} belly to stretch it.`, clothes: "a maternity dress"}); } wardrobeTastes.push({text: `and wears string lingerie to look fun and fuckable while giving ${his} protruding belly plenty of room to hang free.`, clothes: "a string bikini"}); @@ -909,29 +909,29 @@ window.saChoosesOwnClothes = (function() { wardrobeTastes.push({text: `and wears string lingerie to show off ${his} body.`, clothes: "a string bikini"}); } - if(slave.nationality === "Canadian") { - if(isItemAccessible("a mounty outfit")) { + if (slave.nationality === "Canadian") { + if (isItemAccessible("a mounty outfit")) { wardrobeTastes.push({text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`, clothes: "a mounty outfit"}); } - } else if(slave.nationality === "Japanese") { - if(isItemAccessible("a kimono")) { + } else if (slave.nationality === "Japanese") { + if (isItemAccessible("a kimono")) { wardrobeTastes.push({text: `and chooses an outfit that makes ${him} feel oddly nostalgic.`, clothes: "a kimono"}); } } } - /*Separated in three categories in case you want to, say, increase the probability of choosing _wardrobeAssignment to look more professional*/ - /*clothing = clothing.concat(wardrobeAssignment, wardrobeFS, wardrobeTastes); better version should the above never amount to anything*/ - if(wardrobeAssignment.length > 0) { + /* Separated in three categories in case you want to, say, increase the probability of choosing _wardrobeAssignment to look more professional*/ + /* clothing = clothing.concat(wardrobeAssignment, wardrobeFS, wardrobeTastes); better version should the above never amount to anything*/ + if (wardrobeAssignment.length > 0) { for (let i = 0; i < wardrobeAssignment.length; i++) { clothing.push(wardrobeAssignment[i]); } } - if(wardrobeFS.length > 0) { + if (wardrobeFS.length > 0) { for (let i = 0; i < wardrobeFS.length; i++) { clothing.push(wardrobeFS[i]); } } - if(wardrobeTastes.length > 0) { + if (wardrobeTastes.length > 0) { for (let i = 0; i < wardrobeTastes.length; i++) { clothing.push(wardrobeTastes[i]); } @@ -944,34 +944,34 @@ window.saChoosesOwnClothes = (function() { /** @param {App.Entity.SlaveState} slave */ function todaysShoes(slave) { - let shoes = []; + const shoes = []; - if(slave.fetish === 'mindbroken') { - if(slave.amp !== 1 && slave.heels === 1) { + if (slave.fetish === 'mindbroken') { + if (slave.amp !== 1 && slave.heels === 1) { shoes.push({text: `${He} finds ${he} can inexplicably walk if ${he} wears heels; a daily lesson for ${him}, as ${he} forgets shortly after leaving.`, shoes: jsEither(["boots", "extreme heels", "heels", "pumps"])}); } shoes.push({text: `${He} vaguely remembers putting things on ${his} feet, so ${he} does.`, shoes: jsEither(["boots", "extreme heels", "flats", "heels", "pumps"])}); shoes.push({text: `${He} entered without shoes, and will leave the same.`, shoes: "none"}); - } else if(slave.devotion <= 20) { - if(slave.heels === 0) { + } else if (slave.devotion <= 20) { + if (slave.heels === 0) { shoes.push({text: `and wears comfortable flats,`, shoes: "flats"}); } else { shoes.push({text: `and angrily wears the heels ${he} needs to walk,`, shoes: "heels"}); } } else { - if(slave.fetishKnown === 1 && slave.fetish === "dom") { + if (slave.fetishKnown === 1 && slave.fetish === "dom") { shoes.push({text: `${He} wears boots to look like a proper dominant.`, shoes: "boots"}); - } else if(slave.fetishKnown === 1 && slave.fetish === "sadist") { + } else if (slave.fetishKnown === 1 && slave.fetish === "sadist") { shoes.push({text: `${He} wears boots, since ${he} thinks they make ${him} look dangerous.`, shoes: "boots"}); - } else if(slave.fetishKnown === 1 && slave.fetish === "masochist") { + } else if (slave.fetishKnown === 1 && slave.fetish === "masochist") { shoes.push({text: `${He} wears painfully tall heels, since ${he} enjoys the twinge of pain with each step.`, shoes: "extreme heels"}); - } else if(slave.heels === 1) { + } else if (slave.heels === 1) { shoes.push({text: `${He} wears the heels ${he} needs to walk.`, shoes: "heels"}); - } else if(slave.fetishKnown === 1 && slave.fetish === "pregnancy" && slave.bellyPreg >= 500) { + } else if (slave.fetishKnown === 1 && slave.fetish === "pregnancy" && slave.bellyPreg >= 500) { shoes.push({text: `${He} goes barefoot to complement ${his} pregnancy.`, shoes: "none"}); - } else if(slave.fetishKnown === 1 && slave.fetish === "none") { + } else if (slave.fetishKnown === 1 && slave.fetish === "none") { shoes.push({text: `${He} wears comfortable flats, since ${he} doesn't have a fetish to show off.`, shoes: "flats"}); - } else if(slave.actualAge < 13){ + } else if (slave.actualAge < 13) { shoes.push({text: `${He} puts on boots so ${he} can stomp around.`, shoes: "boots"}); shoes.push({text: `${He} playfully puts on heels to be like all the other girls.`, shoes: "heels"}); shoes.push({text: `${He} wears flats as they are comfortable and easy to take on and off.`, shoes: "flats"}); @@ -987,21 +987,21 @@ window.saChoosesOwnClothes = (function() { /** @param {App.Entity.SlaveState} slave */ function todaysCollar(slave) { - let neck = []; + const neck = []; - if(slave.fetish === 'mindbroken') { - } else if(slave.devotion <= 20) { + if (slave.fetish === 'mindbroken') { + } else if (slave.devotion <= 20) { } else { - if(V.arcologies[0].FSEgyptianRevivalist > 0) { + if (V.arcologies[0].FSEgyptianRevivalist > 0) { neck.push({text: `dons a wesekh to support your ancient Egyptian pretensions,`, collar: "ancient Egyptian"}); } - if(slave.fetish === "masochist") { + if (slave.fetish === "masochist") { neck.push({text: `dons a tight steel collar around ${his} neck,`, collar: "tight steel"}); neck.push({text: `dons a painful leather collar,`, collar: "uncomfortable leather"}); neck.push({text: `dons a painfully tight neck corset,`, collar: "neck corset"}); - } else if(slave.fetish === "pregnancy" && (canGetPregnant(slave) || slave.pregKnown === 1)) { + } else if (slave.fetish === "pregnancy" && (canGetPregnant(slave) || slave.pregKnown === 1)) { neck.push({text: `dons a digital display that tells everything about ${his} womb,`, collar: "preg biometrics"}); - } else if(slave.fetish === "boobs" && slave.boobs >= 1000) { + } else if (slave.fetish === "boobs" && slave.boobs >= 1000) { neck.push({text: `dons a cowbell to draw attention to ${his} luscious udders,`, collar: "leather with cowbell"}); } neck.push({text: `decides ${his} neck needs no accenting,`, collar: "none"}); @@ -1014,57 +1014,56 @@ window.saChoosesOwnClothes = (function() { /** @param {App.Entity.SlaveState} slave */ function todaysCorset(slave) { - let belly = []; + const belly = []; const empathyBellies = ["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"]; - if(slave.fetish === 'mindbroken') { - if(V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500) { - if(slave.weight > 130) { + if (slave.fetish === 'mindbroken') { + if (V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500) { + if (slave.weight > 130) { belly.push({text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one. ${He} struggles to fit it around ${his} huge gut, only stopping when another slave takes it away from ${him} so ${he} moves on and stops blocking the wardrobe with ${his} fat ass.`, bellyAccessory: "none"}); } else { belly.push({text: `${He} notices the fake bellies; since every girl ${he} has ever met has a rounded middle, it's only natural ${he} is compelled to wear one.`, bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly", "a huge empathy belly"])}); } } else { - belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatibility for no output, will likely get deprecated in the future as content is added*/ + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /* compatibility for no output, will likely get deprecated in the future as content is added*/ } - } else if(slave.devotion <= 20) { - if(slave.belly > 10000 && (slave.pregAdaptation*800 <= slave.belly) && slave.bellyAccessory !== "a support band"){ + } else if (slave.devotion <= 20) { + if (slave.belly > 10000 && (slave.pregAdaptation*800 <= slave.belly) && slave.bellyAccessory !== "a support band") { belly.push({text: `slips a pregnancy support band around ${his} middle to help alleviate some of the discomfort,`, bellyAccessory: "a support band"}); } else if (slave.belly < 8000 && slave.bellyAccessory === "a support band") { belly.push({text: `removes ${his} support band since ${he} no longer needs it,`, bellyAccessory: "none"}); } } else { - if(V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500 && slave.sexualFlaw !== "breeder") { - if(slave.weight > 130) { + if (V.arcologies[0].FSRepopulationFocus > 0 && slave.belly < 1500 && slave.sexualFlaw !== "breeder") { + if (slave.weight > 130) { belly.push({text: `struggles to fit a fake pregnant belly around ${his} gut before giving up and hoping ${he} can pass as fecund,`, bellyAccessory: "none"}); } else { belly.push({text: `straps on a fake pregnant belly to fit in with all the other pregnant girls,`, bellyAccessory: jsEither(["a small empathy belly", "a medium empathy belly", "a large empathy belly"])}); } - } else if(slave.belly < 1500 && slave.fetish === "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw !== "breeder" && slave.weight <= 130) { - if(slave.fetishStrength <= 30) { + } else if (slave.belly < 1500 && slave.fetish === "pregnancy" && isItemAccessible("a small empathy belly") && slave.sexualFlaw !== "breeder" && slave.weight <= 130) { + if (slave.fetishStrength <= 30) { belly.push({text: `straps on a 1st trimester belly to sate ${his} curiosity,`, bellyAccessory: "a small empathy belly"}); belly.push({text: `straps on a 2nd trimester belly to sate ${his} curiosity,`, bellyAccessory: "a medium empathy belly"}); belly.push({text: `straps on a 3rd trimester belly to sate ${his} curiosity,`, bellyAccessory: "a large empathy belly"}); - } else if(slave.fetishStrength <= 95) { + } else if (slave.fetishStrength <= 95) { belly.push({text: `straps on a 3rd trimester belly to satisfy ${his} pregnancy fetish,`, bellyAccessory: "a large empathy belly"}); - } else if(slave.fetishStrength > 95) { + } else if (slave.fetishStrength > 95) { belly.push({text: `straps on the largest belly ${he} can find to satisfy ${his} pregnancy fetish,`, bellyAccessory: "a huge empathy belly"}); } - } else if(slave.belly > 10000 && (slave.pregAdaptation*1200 <= slave.belly) && slave.bellyAccessory !== "a support band"){ + } else if (slave.belly > 10000 && (slave.pregAdaptation*1200 <= slave.belly) && slave.bellyAccessory !== "a support band") { belly.push({text: `slips a pregnancy support band around ${his} middle to better handle ${his} fecund mound,`, bellyAccessory: "a support band"}); - } else if(empathyBellies.includes(slave.bellyAccessory) && slave.fetish !== "pregnancy") { + } else if (empathyBellies.includes(slave.bellyAccessory) && slave.fetish !== "pregnancy") { belly.push({text: `removes ${his} fake belly, since ${he} dislikes it,`, bellyAccessory: "none"}); - } else if(empathyBellies.includes(slave.bellyAccessory) && slave.sexualFlaw === "breeder") { + } else if (empathyBellies.includes(slave.bellyAccessory) && slave.sexualFlaw === "breeder") { belly.push({text: `pulls ${his} fake belly off, disgusted by it,`, bellyAccessory: "none"}); } else if (slave.belly < 8000 && slave.bellyAccessory === "a support band") { belly.push({text: `removes ${his} support band since ${he} no longer needs it,`, bellyAccessory: "none"}); } else { - belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /*compatibility for no output, will likely get deprecated in the future as content is added*/ + belly.push({text: "", bellyAccessory: slave.bellyAccessory}); /* compatibility for no output, will likely get deprecated in the future as content is added*/ } } return jsEither(belly); } return saChoosesOwnClothes; - })(); diff --git a/src/endWeek/saPorn.js b/src/endWeek/saPorn.js index 4e24b16a148ee7859679f1c2c81a375d5b06b4e4..2804472deb42f6dff2df62f54f8e098f9d8619d8 100644 --- a/src/endWeek/saPorn.js +++ b/src/endWeek/saPorn.js @@ -1,112 +1,111 @@ /* to later be rolled into saPorn */ -window.getHighestPorn = /** @param {App.Entity.SlaveState} slave */ function (slave) { +window.getHighestPorn = /** @param {App.Entity.SlaveState} slave */ function(slave) { + let max = {value: 0, type: "none"}; - var max = {value: 0, type: "none"}; - - if(slave.pornTypeGeneral > max.value){ + if (slave.pornTypeGeneral > max.value) { max = {value: slave.pornTypeGeneral, type: "generic"}; } - if(slave.pornTypeFuckdoll > max.value){ + if (slave.pornTypeFuckdoll > max.value) { max = {value: slave.pornTypeFuckdoll, type: "fuckdoll"}; } - if(slave.pornTypeRape > max.value){ + if (slave.pornTypeRape > max.value) { max = {value: slave.pornTypeRape, type: "rape"}; } - if(slave.pornTypePreggo > max.value){ + if (slave.pornTypePreggo > max.value) { max = {value: slave.pornTypePreggo, type: "preggo"}; } - if(slave.pornTypeBBW > max.value){ + if (slave.pornTypeBBW > max.value) { max = {value: slave.pornTypeBBW, type: "BBW"}; } - if(slave.pornTypeGainer > max.value){ + if (slave.pornTypeGainer > max.value) { max = {value: slave.pornTypeGainer, type: "weight gain"}; } - if(slave.pornTypeStud > max.value){ + if (slave.pornTypeStud > max.value) { max = {value: slave.pornTypeStud, type: "big dick"}; } - if(slave.pornTypeLoli > max.value){ + if (slave.pornTypeLoli > max.value) { max = {value: slave.pornTypeLoli, type: "underage"}; } - if(slave.pornTypeDeepThroat > max.value){ + if (slave.pornTypeDeepThroat > max.value) { max = {value: slave.pornTypeDeepThroat, type: "deepthroat"}; } - if(slave.pornTypeStruggleFuck > max.value){ + if (slave.pornTypeStruggleFuck > max.value) { max = {value: slave.pornTypeStruggleFuck, type: "unwilling"}; } - if(slave.pornTypePainal > max.value){ + if (slave.pornTypePainal > max.value) { max = {value: slave.pornTypePainal, type: "hardcore anal"}; } - if(slave.pornTypeTease > max.value){ + if (slave.pornTypeTease > max.value) { max = {value: slave.pornTypeTease, type: "softcore"}; } - if(slave.pornTypeRomantic > max.value){ + if (slave.pornTypeRomantic > max.value) { max = {value: slave.pornTypeRomantic, type: "romantic"}; } - if(slave.pornTypePervert > max.value){ + if (slave.pornTypePervert > max.value) { max = {value: slave.pornTypePervert, type: "really perverted"}; } - if(slave.pornTypeCaring > max.value){ + if (slave.pornTypeCaring > max.value) { max = {value: slave.pornTypeCaring, type: "voyeur"}; } - if(slave.pornTypeUnflinching > max.value){ + if (slave.pornTypeUnflinching > max.value) { max = {value: slave.pornTypeUnflinching, type: "unspeakable"}; } - if(slave.pornTypeSizeQueen > max.value){ + if (slave.pornTypeSizeQueen > max.value) { max = {value: slave.pornTypeSizeQueen, type: "huge insertion"}; } - if(slave.pornTypeNeglectful > max.value){ + if (slave.pornTypeNeglectful > max.value) { max = {value: slave.pornTypeNeglectful, type: "orgasm denial"}; } - if(slave.pornTypeCumAddict > max.value){ + if (slave.pornTypeCumAddict > max.value) { max = {value: slave.pornTypeCumAddict, type: "cum addiction"}; } - if(slave.pornTypeAnalAddict > max.value){ + if (slave.pornTypeAnalAddict > max.value) { max = {value: slave.pornTypeAnalAddict, type: "anal addiction"}; } - if(slave.pornTypeAttentionWhore > max.value){ + if (slave.pornTypeAttentionWhore > max.value) { max = {value: slave.pornTypeAttentionWhore, type: "exhibition"}; } - if(slave.pornTypeBreastGrowth > max.value){ + if (slave.pornTypeBreastGrowth > max.value) { max = {value: slave.pornTypeBreastGrowth, type: "breast expansion"}; } - if(slave.pornTypeAbusive > max.value){ + if (slave.pornTypeAbusive > max.value) { max = {value: slave.pornTypeAbusive, type: "abuse"}; } - if(slave.pornTypeMalicious > max.value){ + if (slave.pornTypeMalicious > max.value) { max = {value: slave.pornTypeMalicious, type: "sexual torture"}; } - if(slave.pornTypeSelfHating > max.value){ + if (slave.pornTypeSelfHating > max.value) { max = {value: slave.pornTypeSelfHating, type: "self hating"}; } - if(slave.pornTypeBreeder > max.value){ + if (slave.pornTypeBreeder > max.value) { max = {value: slave.pornTypeBreeder, type: "breeder"}; } - if(slave.pornTypeSub > max.value){ + if (slave.pornTypeSub > max.value) { max = {value: slave.pornTypeSub, type: "submissive"}; } - if(slave.pornTypeCumSlut > max.value){ + if (slave.pornTypeCumSlut > max.value) { max = {value: slave.pornTypeCumSlut, type: "cum"}; } - if(slave.pornTypeAnal > max.value){ + if (slave.pornTypeAnal > max.value) { max = {value: slave.pornTypeAnal, type: "buttslut"}; } - if(slave.pornTypeHumiliation > max.value){ + if (slave.pornTypeHumiliation > max.value) { max = {value: slave.pornTypeHumiliation, type: "humiliating"}; } - if(slave.pornTypeBoobs > max.value){ + if (slave.pornTypeBoobs > max.value) { max = {value: slave.pornTypeBoobs, type: "breast"}; } - if(slave.pornTypeDom > max.value){ + if (slave.pornTypeDom > max.value) { max = {value: slave.pornTypeDom, type: "dominant"}; } - if(slave.pornTypeSadist > max.value){ + if (slave.pornTypeSadist > max.value) { max = {value: slave.pornTypeSadist, type: "sadistic"}; } - if(slave.pornTypeMasochist > max.value){ + if (slave.pornTypeMasochist > max.value) { max = {value: slave.pornTypeMasochist, type: "masochistic"}; } - if(slave.pornTypePregnancy > max.value){ + if (slave.pornTypePregnancy > max.value) { max = {value: slave.pornTypePregnancy, type: "pregnancy fetish"}; } diff --git a/src/facilities/farmyard/farmyard.tw b/src/facilities/farmyard/farmyard.tw index e846a39c53768301a21f0c817532a5bb1d4388fc..34fb3df5ed9a6178e72324174ea08aaa3e6f28c8 100644 --- a/src/facilities/farmyard/farmyard.tw +++ b/src/facilities/farmyard/farmyard.tw @@ -219,7 +219,7 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and <<if (_CL > 0 || _HL > 0 || _FL > 0)>> [[Begin shows|Farmyard][$farmyardShows = 1]] <<else>> - //You must purchase animals before you put on shows// + //You must purchase animals before you can put on shows// <</if>> <</if>> <</if>> @@ -310,14 +310,14 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and <<print $canines>>. <<elseif _CL <= 3>> a couple different - <<for _c = 0; _c < _CL; _c++>> /* FIXME: this does not work */ - <<if $canines[_c].species != "dog">> - <<set _onlyDogs = 0>> - <<else>> - <<set _onlyDogs = 1>> - <</if>> - <</for>> - <<if _onlyDogs == 0>> + <<set $onlyDogs = 0>> + <<run $canines.forEach(function(c) { + const V = State.variables; + if (c.species == "dog") { + V.onlyDogs = 1; + } + })>> + <<if $onlyDogs == 0>> types of canines. <<else>> breeds of dogs. @@ -391,14 +391,14 @@ $farmyardNameCaps is an oasis of growth in the midst of the jungle of steel and <<print $felines>>. <<elseif _FL <= 3>> a couple different - <<for _f = 0; _f < _FL; _f++>> /* FIXME: this does not work */ - <<if $felines[_f].species != "cat">> - <<set _onlyCats = 0>> - <<else>> - <<set _onlyCats = 1>> - <</if>> - <</for>> - <<if _onlyCats == 0>> + <<set $onlyCats = 0>> + <<run $felines.forEach(function(c) { + const V = State.variables; + if (c.species == "cat") { + V.onlyCats = 1; + } + })>> + <<if $onlyCats == 0>> types of felines. <<else>> breeds of cats. diff --git a/src/facilities/farmyard/farmyardAnimals.tw b/src/facilities/farmyard/farmyardAnimals.tw index 4fb491daa66965e82c2015eb59f1fe5eff11bf1a..4831242bd8ed512ba0295a256c81a723e32c844b 100644 --- a/src/facilities/farmyard/farmyardAnimals.tw +++ b/src/facilities/farmyard/farmyardAnimals.tw @@ -2,6 +2,8 @@ <<set $nextButton = "Back", $nextLink = "Farmyard", $returnTo = "FarmyardAnimals", $showEncyclopedia = 1, $encyclopedia = "Farmyard">> +/* TODO: write some descriptions for the different animals in their cages */ + <<if $farmyardKennels > 0 || $farmyardStable > 0 || $farmyardCages > 0>> <br> ''Domestic Animals'' diff --git a/src/js/DefaultRules.js b/src/js/DefaultRules.js index a6985cba59c0921d3aeaff603916fe9dc928a31e..6a1ab33686b346212b5dec66f61bff55447f68fc 100644 --- a/src/js/DefaultRules.js +++ b/src/js/DefaultRules.js @@ -206,7 +206,7 @@ window.DefaultRules = (function() { break; case "work as a farmhand": - if ((V.farmyardSlaves < V.farmyard)) { // TODO: rework these requirements + if ((V.farmyardSlaves < V.farmyard && !slave.fuckdoll)) { // TODO: rework these requirements break; } else { RAFacilityRemove(slave, rule); diff --git a/src/js/slaveSummaryWidgets.js b/src/js/slaveSummaryWidgets.js index 11f08da2fb578dbc680242d9bc429897a693df78..37657febb457cd48cc71ea0413a1fd53ea09b56c 100644 --- a/src/js/slaveSummaryWidgets.js +++ b/src/js/slaveSummaryWidgets.js @@ -4805,7 +4805,7 @@ App.UI.PassageSlaveFilers = { (State.variables.Flag === 1 && s.assignment === "work in the dairy") || (State.variables.Flag !== 0 && State.variables.Flag !== 1 && s.ID === State.variables.Milkmaid.ID))), "Milkmaid Select": s => (s.assignmentVisible === 1 && s.fuckdoll === 0 && s.devotion > 20 && canWalk(s) && canSee(s) && canHear(s)), - "Farmyard": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && canWalk(s) && ( + "Farmyard": s => (s.assignmentVisible === 1 && s.fuckdoll <= 0 && ( (State.variables.Flag === 0 && s.assignment !== "work as a farmhand") || (State.variables.Flag === 1 && s.assignment === "work as a farmhand") || (State.variables.Flag !== 0 && State.variables.Flag !== 1 && s.ID === State.variables.Farmer.ID))), diff --git a/src/js/vignettes.js b/src/js/vignettes.js index b47ce02d1263405100c776bfb233763ed79d0ad7..bc39f1dc80b58204232b5430cec176f8530eafbd 100644 --- a/src/js/vignettes.js +++ b/src/js/vignettes.js @@ -3580,7 +3580,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig type: "trust", effect: -1 }); - if (V.canines.length > 0) { + if ((V.canines.length > 0) && (slave.amp === 0)) { vignettes.push({ text: `an over-excited dog left scratch marks on ${his} legs,`, type: "health", @@ -3603,7 +3603,7 @@ window.GetVignette = /** @param {App.Entity.SlaveState} slave */ function GetVig } } else { vignettes.push({ - text: `TODO: add a vignette here`, + text: `${he} worked extra hard, and managed to sell extra produce,`, type: "cash", effect: 1, }); diff --git a/src/js/walkPastJS.js b/src/js/walkPastJS.js index ca56e19c2cee92cb7f1c22b3b2a073a088c65ffc..3179d7fd04af28ad9a68c0492f63f046a5687940 100644 --- a/src/js/walkPastJS.js +++ b/src/js/walkPastJS.js @@ -2607,3 +2607,308 @@ window.buttWatch = function(slave) { } return t; }; + +window.anusWatch = function(slave) { + + /* will be moved up once this becomes a single, contained function. */ + let t = ""; + let V = State.variables; + + let pronouns = getPronouns(slave); + let he = pronouns.pronoun, him = pronouns.object, his = pronouns.possessive, hers = pronouns.possessivePronoun, himself = pronouns.objectReflexive, boy = pronouns.noun; + let He = capFirstChar(he), His = capFirstChar(his); + + V.target = "FAnus"; + + t += `<<AnusDescription>>`; + if (slave.chastityAnus == 0) { + t += ` `; + switch (slave.clothes) { + case "a Fuckdoll suit": + t += `${His} suit is expressly designed to encourage use of ${his} rear hole.`; + break; + case "uncomfortable straps": + t += `The ring over ${his} asshole beckons.`; + break; + case "shibari ropes": + t += `The rope between ${his} buttocks presses lewdly against ${his} anus as ${he} moves.`; + break; + case "restrictive latex": + t += `As one of the only islands in the sea of black latex, ${his} asshole is eye catching.`; + break; + case "a fallen nuns habit": + t += `${His} slutty nun outfit leaves ${his} butthole bare and available for anal sin.`; + break; + case "a chattel habit": + t += `${His} chattel habit covers ${his} anus with a strip of cloth, but it's designed to be lifted readily.`; + break; + case "a penitent nuns habit": + t += `${His} habit chafes ${his} rear end so cruelly that it would probably be a relief to ${him} to have it pulled up for a rough buttfuck.`; + break; + case "attractive lingerie": + if (alave.anus > 1 && slave.amp === 1) { + t += `${His} pretty g-string frequently fails to cover ${his} big butthole.`; + break; + } else if (slave.anus > 1) { + t += `As ${he} moves, ${his} pretty g-string frequently fails to cover ${his} big butthole.`; + break; + } else { + t += `As ${he} moves, ${his} pretty g-string draws your attention to ${his} ass.`; + } + break; + case "a succubus outfit": + t += `${His} succubus outfit's tail holds ${his} skirt up high in back, inviting a damning buttfuck.`; + break; + case "a nice maid outfit": + t += `${His} long maid's skirt will have to be gotten out of the way to permit access to ${his} ass.`; + break; + case "a slutty maid outfit": + t += `${His} short maid's skirt can be lifted to reveal ${his} bare buttocks.`; + break; + case "a slutty nurse outfit": + t += `${His} tight skirt flatters ${his} ass as ${he} moves.`; + break; + case "a schoolgirl outfit": + if (slave.anus === 0) { + t += `This schoolgirl clearly needs to lose ${his} anal virginity.`; + } else if (slave.vagina === 0) { + t += `This schoolgirl clearly takes it up the ass; that way, ${he} can remain a virgin, and be, like, totally pure and innocent.`; + } else { + t += `This schoolgirl clearly takes it up the ass.`; + } + break; + case "a kimono": + t += ` While ${his} kimono may demurely cover ${his} behind, you know ${his} asshole is bare under it.`; + break; + case "attractive lingerie for a pregnant woman": + t += `${His} silken panties are just begging to be torn off.`; + break; + case "a maternity dress": + t += `${His} dress could easily be slide up over ${his} butt to expose ${his} backdoor.`; + break; + case "stretch pants and a crop-top": + t += `${He} can easily be pantsed to reveal ${his} bare buttocks.`; + break; + case "a hijab and abaya": + case "a niqab and abaya": + t += `While ${his} abaya totally covers ${his} behind, it can be easily lifted to reveal ${his} asshole.`; + break; + case "a klan robe": + t += `While ${his} robe totally covers ${his} behind, it can be lifted to reveal ${his} asshole.`; + break; + case "a burqa": + t += `While ${his} burqa totally covers ${his} behind, it can be lifted to reveal ${his} asshole.`; + break; + case "an oversized t-shirt": + t += `${His} t-shirt may be oversized, but it does little to hide ${his} asshole.`; + break; + case "a tube top and thong": + case "a thong": + case "a t-shirt and thong": + if (alave.anus > 1 && slave.amp === 1) { + t += `${His} thong frequently fails to cover ${his} big butthole.`; + break; + } else if (slave.anus > 1) { + t += `As ${he} moves, ${his} thong frequently fails to cover ${his} big butthole.`; + break; + } else { + t += `As ${he} moves, ${his} thong draws your attention to ${his} ass.`; + } + break; + case "a bra": + case "a button-up shirt": + case "a sweater": + case "a tank-top": + case "a tube top": + case "a striped bra": + case "a slutty klan robe": + case "a sports bra": + case "a t-shirt": + t += `${His} outfit exposes ${his} bare butt and vulnerable asshole.`; + break; + case "an oversized t-shirt and boyshorts": + case "boyshorts": + t += `${His} boyshorts are tight enough to give hints of ${his} asshole.`; + break; + case "a button-up shirt and panties": + case "a sweater and panties": + case "a tank-top and panties": + case "panties": + case "a t-shirt and panties": + case "panties and pasties": + case "striped underwear": + t += `${His} tightly clinging panties can be pulled aside to reveal ${his} asshole.`; + break; + case "cutoffs": + case "sport shorts and a t-shirt": + case "sport shorts": + case "a sweater and cutoffs": + case "sport shorts and a sports bra": + t += `${His} shorts are practically begging to be pulled down to reveal ${his} naked butthole.`; + break; + case "a police uniform": + case "a t-shirt and jeans": + case "leather pants": + case "jeans": + case "leather pants and a tube top": + case "leather pants and pasties": + t += `${His} pants are practically begging to be pulled down to reveal ${his} naked butthole.`; + break; + case "a nice pony outfit": + case "a slutty pony outfit": + t += `${His} leather outfit is practically sculpted to fit ${his} ass, though would need to be undone to reach ${his} butthole.`; + break; + case "a skimpy loincloth": + t += `${His} loincloth gives hints of ${his} bare ass and asshole beneath it.`; + break; + case "a gothic lolita dress": + t += `${His} dress can be lifted easily to reveal ${his} asshole.`; + break; + case "a hanbok": + t += `${His} hanbok can be lifted easily to reveal ${his} asshole.`; + break; + case "a one-piece swimsuit": + t += `${His} swimsuit tightly clings to ${his} rear, but `; + if (slave.butt > 3) { + t += `${his} butt is too large to easily pull it aside and reach ${his} asshole.`; + } else { + t += `can be easily pulled aside to reveal ${his} asshole.`; + } + break; + case "a burkini": + t += `${His} burkini modestly covers ${his} rear.`; + break; + case "a hijab and blouse": + t += `${His} modest skirt can be easily lifted to reveal ${his} asshole.`; + break; + case "battledress": + t += `${His} fatigue trousers are not particularly flattering to ${his} butt but could be pulled down easily enough.`; + break; + case "a monokini": + t += `The bottom of ${his} monokini is practically sculpted to fit ${his} ass.`; + break; + case "a cybersuit": + t += `As ${his} buttocks work naturally with ${his} movement, ${his} tight bodysuit gives hints of ${his} asshole.`; + break; + case "a string bikini": + if (slave.anus > 1) { + t += `As ${he} moves, ${his} big butthole is clearly visible behind ${his} tiny g-string.`; + } else { + t += `As ${he} moves, ${his} tiny g-string draws your attention to ${his} ass.`; + } + break; + case "a scalemail bikini": + t += `${His} scalemail bottom draws attention to ${his} ass cheeks, while concealing ${his} rear hole.`; + break; + case "striped panties": + t += `${His} cute panties draw attention to ${his} ass cheeks, while concealing ${his} rear hole.`; + break; + case "clubslut netting": + t += `As ${he} moves, the hole in ${his} netting right over ${his} butthole looks inviting.`; + break; + case "a cheerleader outfit": + t += `As ${he} moves, ${his} short pleated cheerleader skirt shows off ${his} butt.`; + break; + case "cutoffs and a t-shirt": + t += `As ${he} moves, ${his} tight cutoffs flatter ${his} butt.`; + break; + case "spats and a tank top": + t += `${His} spats show off every curve of ${his} ass.`; + break; + case "a slutty outfit": + t += `For today's slutty outfit ${he}'s chosen `; + if (slave.butt > 5) { + t += `a leather skirt with zippers that permit ready access to ${his} butt.`; + } else { + t += `fishnets with a hole cut over ${his} asshole so ${he} can be sodomized without removing or damaging ${his} clothing.`; + } + break; + case "a slave gown": + t += `${His} gorgeous dress leaves little to the imagination; there's little doubt ${his} butt is bare beneath it.`; + break; + case "a halter top dress": + t += `${His} dress should slide up over ${his} butt to reveal ${his} backdoor.`; + break; + case "a ball gown": + t += `${His} ballgown and its petticoats could easily be flipped up to bare ${his} butt.`; + break; + case "slutty business attire": + t += `${His} short skirt will easily slide up to bare ${his} asshole.`; + break; + case "nice business attire": + t += `${His} conservative skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a comfortable bodysuit": + t += `${His} bodysuit demands attention for ${his} tightly clad backdoor.`; + break; + case "a latex catsuit": + t += `${His} latex catsuit's crotch zipper offers ready access to ${his} backdoor.`; + break; + case "a military uniform": + t += `${His} uniform skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a schutzstaffel uniform": + t += `${His} uniform's trousers can be easily slid down to expose ${his} butthole.`; + break; + case "a slutty schutzstaffel uniform": + t += `${His} uniform miniskirt can be easily slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a red army uniform": + t += `${His} uniform skirt can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "a long qipao": + t += `${His} dress can be slid up over ${his} hips to bare ${his} butthole.`; + break; + case "battlearmor": + t += `${His} armor demands attention for ${his} tightly clad backdoor.`; + break; + case "a mounty outfit": + t += `${His} uniform slacks can be slipped off ${his} hips to bare ${his} butthole.`; + break; + case "a dirndl": + t += `${His} dress can be easily lifted to access ${his} bare ass.`; + break; + case "lederhosen": + t += `${His} tight shorts can be slipped off ${his} hips to bare ${his} butthole.`; + break; + case "a biyelgee costume": + t += `${His} costume can be easily lifted to access ${his} naked butt.`; + break; + case "a nice nurse outfit": + t += `${His} nurse's trousers can be easily slid down to expose ${his} butthole.`; + break; + case "a mini dress": + t += `${His} mini dress can be easily slid up to expose ${his} butthole.`; + break; + case "an apron": + t += `${His} apron leaves ${his} asshole completely exposed.`; + break; + case "a leotard": + t += `As ${his} buttocks work naturally with ${his} movement, ${his} tight leotard gives hints of ${his} asshole.`; + break; + case "a bunny outfit": + t += `${His} fluffy white cottontail draws attention to ${his} butt, inevitably bringing anal to mind.`; + break; + case "harem gauze": + t += `${His} ass is clearly visible through the thin gauze that covers it.`; + break; + case "a toga": + t += `${His} toga is so transparent it can't hide ${his} asscrack, which looks very seductive.`; + break; + case "a huipil": + t += `${His} huipil can be easily lifted to access ${his} naked butt.`; + break; + case "slutty jewelry": + t += `${His} belt of light chain threatens to dip into ${his} asscrack with each step.`; + break; + default: + if (slave.chastityVagina) { + t += `${His} chastity belt leaves ${his} ass available.`; + } else { + t += `You run your eye over ${his} naked ass.`; + } + } + } + + return t; +}; diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw index f1f05e4b040fd81172e739dde97d596ede64234f..e97a0ffd8490f9555d83accd333e0dd0c8ce172f 100644 --- a/src/uncategorized/endWeek.tw +++ b/src/uncategorized/endWeek.tw @@ -27,73 +27,75 @@ <<set $penetrativeUseWeight++>> <</if>> -<<for _i = 0; _i < $slaves.length; _i++>> - <<if $slaves[_i].inflationMethod == 1 || $slaves[_i].inflationMethod == 2>> - <<if $slaves[_i].inflationType == "milk">> - <<set $inflatedSlavesMilk++>> - <<elseif $slaves[_i].inflationType == "cum">> - <<set $inflatedSlavesCum++>> - <</if>> - <</if>> - <<if $slaves[_i].assignment == "be a subordinate slave" && $slaves[_i].subTarget == 0>> - <<set $subSlaves++>> - <</if>> -<</for>> +<<run $slaves.forEach(function(s) { + if (s.inflationMethod == 1 || s.inflationMethod == 2) { + if (s.inflationType == "milk") { + $inflatedSlavesMilk++; + } else if (s.inflationType == "cum") { + $inflatedSlavesCum++; + } + } + if (s.assignment == "be a subordinate slave" && s.subTarget == 0) { + $subSlaves++; + } + s.lastWeeksCashIncome = 0; + s.lastWeeksRepIncome = 0; + s.lastWeeksRepExpenses = 0; +})>> <<if $organs.length > 0>> -<<for _i = 0; _i < $organs.length; _i++>> - <<if $organs[_i].weeksToCompletion > 0>> - <<if $organFarmUpgrade == 3>> - <<set $organs[_i].weeksToCompletion -= 4>> - <<elseif $organFarmUpgrade == 2>> - <<set $organs[_i].weeksToCompletion -= 2>> - <<else>> - <<set $organs[_i].weeksToCompletion-->> - <</if>> - <</if>> - <<if $organs[_i].weeksToCompletion <= 0>> - <<set $completedOrgans.push($organs[_i])>> - <<set $organs.deleteAt(_i)>> - <</if>> -<</for>> +<<run $organs.forEach(function(o) { + if ($organs[o].weeksToCompletion > 0) { + if ($organFarmUpgrade == 3) { + $organs[o].weeksToCompletion -= 4; + } else if ($organFarmUpgrade == 2) { + $organs[o].weeksToCompletion -= 2; + } else { + $organs[o].weeksToCompletion--; + } + } +})>> <</if>> + <<if $incubatorOrgans.length > 0>> -<<for _i = 0; _i < $incubatorOrgans.length; _i++>> - <<if $incubatorOrgans[_i].weeksToCompletion > 0>> - <<if $organFarmUpgrade == 3>> - <<set $incubatorOrgans[_i].weeksToCompletion -= 4>> - <<elseif $organFarmUpgrade == 2>> - <<set $incubatorOrgans[_i].weeksToCompletion -= 2>> - <<else>> - <<set $incubatorOrgans[_i].weeksToCompletion-->> - <</if>> - <</if>> -<</for>> +<<run $incubatorOrgans.forEach(function(io) { + if ($incubatorOrgans[io].weeksToCompletion > 0) { + if ($organFarmUpgrade == 3) { + $incubatorOrgans[io].weeksToCompletion -= 4; + } else if ($organFarmUpgrade == 2) { + $incubatorOrgans[io].weeksToCompletion -= 2; + } else { + $incubatorOrgans[io].weeksToCompletion--; + } + } +})>> <</if>> -/* for future use + +/* for potential future use <<if $nurseryOrgans.length > 0>> -<<for _i = 0; _i < $nurseryOrgans.length; _i++>> - <<if $nurseryOrgans[_i].weeksToCompletion > 0>> - <<if $organFarmUpgrade == 3>> - <<set $nurseryOrgans[_i].weeksToCompletion -= 4>> - <<elseif $organFarmUpgrade == 2>> - <<set $nurseryOrgans[_i].weeksToCompletion -= 2>> - <<else>> - <<set $nurseryOrgans[_i].weeksToCompletion-->> - <</if>> - <</if>> -<</for>> +<<run $nurseryOrgans.forEach(function(no) { + if ($nurseryOrgans[no].weeksToCompletion > 0) { + if ($organFarmUpgrade == 3) { + $nurseryOrgans[no].weeksToCompletion -= 4; + } else if ($organFarmUpgrade == 2) { + $nurseryOrgans[no].weeksToCompletion -= 2; + } else { + $nurseryOrgans[no].weeksToCompletion--; + } + } +})>> <</if>> */ + <<if $limbs.length > 0>> -<<for _i = 0; _i < $limbs.length; _i++>> - <<if $limbs[_i].weeksToCompletion > 0>> - <<set $limbs[_i].weeksToCompletion-->> - <</if>> - <<if $limbs[_i].weeksToCompletion == 0>> - <<set $limbsCompleted++>> - <</if>> -<</for>> +<<run $limbs.forEach(function(l) { + if ($limbs[l].weeksToCompletion > 0) { + $limbs[l].weeksToCompletion--; + } + if ($limbs[l].weeksToCompletion == 0) { + $limbsCompleted++; + } +})>> <</if>> /% Begin section: ensure minimum age is set (game may have been loaded from a non-modded version). %/ @@ -115,19 +117,20 @@ <<set $TSS.schoolSale = 0, $GRI.schoolSale = 0, $SCP.schoolSale = 0, $LDE.schoolSale = 0, $TGA.schoolSale = 0, $HA.schoolSale = 0, $TFS.schoolSale = 0, $TCR.schoolSale = 0, $NUL.schoolSale = 0, $independenceDay = 0, $showEncyclopedia = 0, $racialVarieties = [], $shelterGirlsIDs = [], $oldWeek = $week, $cashLastWeek = $cash, $repLastWeek = $rep, $foodLastWeek = $food>> <<if $foodMarket > 0>> - <<for _f = 0; _f < $slaves.length; _f++>> - <<if $slaves[_f].diet == "restricted">> - <<set $foodConsumption += 1.8>> - <<elseif $slaves[_f].diet == "slimming">> - <<set $foodConsumption += 1.9>> - <<elseif $slaves[_f].diet == "muscle building">> - <<set $foodConsumption += 2.1>> - <<elseif $slaves[_f].diet == "fattening">> - <<set $foodConsumption += 2.2>> - <<else>> - <<set $foodConsumption += 2>> - <</if>> - <</for>> + <<run $slaves.forEach(function(s) { + const V = State.variables; + if (s.diet == "restricted") { + V.foodConsumption += 1.8; + } else if (s.diet == "slimming") { + V.foodConsumption += 1.9; + } else if (s.diet == "muscle building") { + V.foodConsumption += 2.1; + } else if (s.diet == "fattening") { + V.foodConsumption += 2.2; + } else { + V.foodConsumption += 2; + } + })>> <<set $food -= $foodConsumption>> <<if $food < 0>> @@ -135,7 +138,6 @@ <</if>> <</if>> -<<run $slaves.forEach(function(s) { s.lastWeeksCashIncome = 0, s.lastWeeksRepIncome = 0, s.lastWeeksRepExpenses = 0; })>> <<set $lastWeeksCashErrors = "Errors: ">> <<set $lastWeeksRepErrors = "Errors: ">> diff --git a/src/uncategorized/longSlaveDescription.tw b/src/uncategorized/longSlaveDescription.tw index 6f19d35da2490cc35dde221daa0929b35a17b12f..b8bad58b19e7778f30e9cccb281c6234bc5b54ae 100644 --- a/src/uncategorized/longSlaveDescription.tw +++ b/src/uncategorized/longSlaveDescription.tw @@ -1897,7 +1897,7 @@ $He is $He has plump arms with <<elseif $activeSlave.weight > 97>> $He has chubby arms with - <<else>> + <<elseif $activeSlave.muscles > 5>> $He has normal arms with <</if>> <<if $activeSlave.muscles > 95>> @@ -1907,7 +1907,7 @@ $He is <<elseif $activeSlave.muscles > 5>> toned muscles<<if $activeSlave.weight > 30>> hidden beneath $his soft flesh<</if>>. <<else>> - little muscle to them. + /*little muscle to them.*/ <</if>> <</if>> @@ -1943,7 +1943,7 @@ $He is $He has fat legs with thick, soft thighs and <<elseif $activeSlave.weight > 95>> $He has normal legs with thick, soft thighs and - <<else>> + <<elseif $activeSlave.muscles > 5>> $He has relatively normal legs and thighs with <</if>> <<if $activeSlave.muscles > 95>> @@ -1953,7 +1953,7 @@ $He is <<elseif $activeSlave.muscles > 5>> toned muscles<<if $activeSlave.weight > 30>> hidden beneath $his soft flab<</if>>. <<else>> - barely any muscle in them. + /*barely any muscle in them.*/ <</if>> <</if>> diff --git a/src/uncategorized/randomIndividualEvent.tw b/src/uncategorized/randomIndividualEvent.tw index 3060c064d3a0f9684307f9154b67c65d89e69d07..82bdd1fdd28db77d2e1e4d8a1e45d7c6d4d46612 100644 --- a/src/uncategorized/randomIndividualEvent.tw +++ b/src/uncategorized/randomIndividualEvent.tw @@ -4,6 +4,10 @@ <<if $eventSlave == 0>> <<if $cheatMode == 1>> <<set $nextButton = "Refresh", $nextLink = "Random Individual Event", $returnTo = "Random Individual Event">> + + <<link "Skip week-end events" "Next Week">><</link>> + <br><br> + ''One of the following eligible slaves would have been selected for an individual random event:'' <br> <<for $i = 0; $i < $eligibleSlaves.length; $i++>> diff --git a/src/uncategorized/randomNonindividualEvent.tw b/src/uncategorized/randomNonindividualEvent.tw index 1600e155336d43f8030c0b2d555978b665d92103..73d39e4da0775494b9971799936743d6a3a39c01 100644 --- a/src/uncategorized/randomNonindividualEvent.tw +++ b/src/uncategorized/randomNonindividualEvent.tw @@ -5,6 +5,10 @@ <<set $eventSlave = $slaves.random()>> <<if $cheatMode == 1>> <<set $nextButton = "Refresh", $nextLink = "Random Nonindividual Event", $returnTo = "Random Nonindividual Event">> + + <<link "Skip week-end events" "Next Week">><</link>> + <br><br> + ''Any one of your slaves would have been selected for a random non-individual event:'' <br> <<for $i = 0; $i < $slaves.length; $i++>> diff --git a/src/uncategorized/rieEligibilityCheck.tw b/src/uncategorized/rieEligibilityCheck.tw index c4a1ea04810ecc16f6173310487155ebb8df0328..238d270059c1ed7671d5d375fd07c0990e0cc94d 100644 --- a/src/uncategorized/rieEligibilityCheck.tw +++ b/src/uncategorized/rieEligibilityCheck.tw @@ -1,5 +1,7 @@ :: RIE Eligibility Check +<<link "Skip week-end events" "Next Week">><</link>> + <<silently>> <<set $eventSlave = 0, $eligibleSlaves = []>> diff --git a/src/uncategorized/walkPast.tw b/src/uncategorized/walkPast.tw index 1c55bfbfaa7896c4280b6917727dfa3bfa444527..2c2cb1e2f651feb10343f1be83ce892ade791c54 100644 --- a/src/uncategorized/walkPast.tw +++ b/src/uncategorized/walkPast.tw @@ -2993,180 +2993,9 @@ <</if>> <<set $target = "FVagina">> <<elseif (_flag > 20)>> - <<AnusDescription>> - <<switch $activeSlave.clothes>> - <<case "a Fuckdoll suit">> - $His suit is expressly designed to encourage use of $his rear hole. - <<case "uncomfortable straps">> - The ring over $his asshole beckons. - <<case "shibari ropes">> - The rope between $his buttocks presses lewdly against $his anus as $he moves. - <<case "restrictive latex">> - As one of the only islands in the sea of black latex, $his asshole is eye catching. - <<case "a fallen nuns habit">> - $His slutty nun outfit leaves $his butthole bare and available for anal sin. - <<case "a chattel habit">> - $His chattel habit covers $his anus with a strip of cloth, but it's designed to be lifted readily. - <<case "a penitent nuns habit">> - $His habit chafes $his rear end so cruelly that it would probably be a relief to $him to have it pulled up for a rough buttfuck. - <<case "attractive lingerie">> - <<if ($activeSlave.anus > 1) && ($activeSlave.amp == 1)>> - $His pretty g-string frequently fails to cover $his big butthole. - <<elseif ($activeSlave.anus > 1)>> - As $he moves, $his pretty g-string frequently fails to cover $his big butthole. - <<else>> - As $he moves, $his pretty g-string draws your attention to $his ass. - <</if>> - <<case "a succubus outfit">> - $His succubus outfit's tail holds $his skirt up high in back, inviting a damning buttfuck. - <<case "a nice maid outfit">> - $His long maid's skirt will have to be gotten out of the way to permit access to $his ass. - <<case "a slutty maid outfit">> - $His short maid's skirt can be lifted to reveal $his bare buttocks. - <<case "a slutty nurse outfit">> - $His tight skirt flatters $his ass as $he moves. - <<case "a schoolgirl outfit">> - <<if $activeSlave.anus == 0>> - This schoolgirl clearly needs to lose $his anal virginity. - <<elseif $activeSlave.vagina == 0>> - This schoolgirl clearly takes it up the ass; that way, $he can remain a virgin, and be, like, totally pure and innocent. - <<else>> - This schoolgirl clearly takes it up the ass. - <</if>> - <<case "a kimono">> - <<if ($activeSlave.butt > 5)>> - $His kimono demurely covers $his behind, though it cannot conceal its massive shape. - <<else>> - $His kimono demurely covers $his behind. - <</if>> - <<case "attractive lingerie for a pregnant woman">> - $His silken panties are just begging to be torn off. - <<case "a maternity dress">> - <<if $activeSlave.butt > 5>> - $His dress covers $his behind, though it cannot conceal its massive size. - <<else>> - $His dress demurely covers $his behind. - <</if>> - <<case "stretch pants and a crop-top">> - $He can easily be pantsed to reveal $his bare buttocks. - <<case "a hijab and abaya" "a niqab and abaya">> - While $his abaya totally covers $his behind, it can be easily lifted to reveal $his asshole. - <<case "a klan robe">> - While $his robe totally covers $his behind, it can be lifted to reveal $his asshole. - <<case "a burqa">> - While $his burqa totally covers $his behind, it can be lifted to reveal $his asshole. - <<case "a tube top and thong" "a bra" "a button-up shirt" "a sweater" "a tank-top" "a thong" "a tube top" "a striped bra" "a slutty klan robe" "a sports bra" "a t-shirt" "a t-shirt and thong" "an oversized t-shirt">> - $His clothing leaves $his butt bare, with easy access to $his asshole. - <<case "a button-up shirt and panties" "a sweater and panties" "a tank-top and panties" "an oversized t-shirt and boyshorts" "boyshorts" "panties" "a t-shirt and panties" "panties and pasties" "striped underwear">> - $His tightly clinging panties can be pulled aside to reveal $his asshole. - <<case "cutoffs" "sport shorts and a t-shirt" "sport shorts" "a sweater and cutoffs" "sport shorts and a sports bra">> - $His shorts are practically sculpted to fit $his ass. - <<case "a police uniform" "a t-shirt and jeans" "leather pants" "jeans" "leather pants and a tube top" "leather pants and pasties">> - $His pants are practically sculpted to fit $his ass. - <<case "a nice pony outfit" "a slutty pony outfit">> - $His leather outfit is practically sculpted to fit $his ass. - <<case "a skimpy loincloth">> - $his loincloth gives hints of $his bare ass and asshole beneath it. - <<case "a gothic lolita dress">> - $His dress can be lifted easily to reveal $his asshole. - <<case "a hanbok">> - $His hanbok can be lifted easily to reveal $his asshole. - <<case "a one-piece swimsuit">> - $His swimsuit tightly clings to $his rear, but can be easily pulled aside to reveal $his asshole. - <<case "a burkini">> - $His burkini modestly covers $his rear. - <<case "a hijab and blouse">> - $His modest skirt can be easily lifted to reveal $his asshole. - <<case "battledress">> - $His fatigue trousers are not particularly flattering to $his butt. - <<case "a monokini">> - The bottom of $his monokini is practically sculpted to fit $his ass. - <<case "a cybersuit">> - As $his buttocks work naturally with $his movement, $his tight bodysuit gives hints of $his asshole. - <<case "a string bikini">> - <<if ($activeSlave.anus > 1)>> - As $he moves, $his big butthole is clearly visible behind $his tiny g-string. - <<else>> - As $he moves, $his tiny g-string draws your attention to $his ass. - <</if>> - <<case "a scalemail bikini">> - $His scalemail bottom draws attention to $his ass cheeks, while concealing $his rear hole. - <<case "striped panties">> - $His cute panties draw attention to $his ass cheeks, while concealing $his rear hole. - <<case "clubslut netting">> - As $he moves, the hole in $his netting right over $his butthole looks inviting. - <<case "a cheerleader outfit">> - As $he moves, $his short pleated cheerleader skirt shows off $his butt. - <<case "cutoffs and a t-shirt">> - As $he moves, $his tight cutoffs flatter $his butt. - <<case "spats and a tank top">> - $His spats show off every curve of $his ass. - <<case "a slutty outfit">> - <<if ($activeSlave.butt > 5)>> - For today's slutty outfit $he's chosen a leather skirt with zippers that permit ready access to $his butt. - <<else>> - For today's slutty outfit $he's chosen fishnets with a hole cut over $his asshole so $he can be sodomized without removing or damaging $his clothing. - <</if>> - <<case "a slave gown">> - $His gorgeous dress leaves little to the imagination; there's little doubt $his butt is bare beneath it. - <<case "a halter top dress">> - $His dress should slide up over $his butt to reveal $his backdoor. - <<case "a ball gown">> - $His ballgown and its petticoats could easily be flipped up to bare $his butt. - <<case "slutty business attire">> - $His short skirt will easily slide up to bare $his asshole. - <<case "nice business attire">> - $His conservative skirt can be slid up over $his hips to bare $his butthole. - <<case "a comfortable bodysuit">> - $His bodysuit demands attention for $his tightly clad backdoor. - <<case "a latex catsuit">> - $His latex catsuit's crotch zipper offer ready access to $his backdoor. - <<case "a military uniform">> - $His uniform skirt can be slid up over $his hips to bare $his butthole. - <<case "a schutzstaffel uniform">> - $His uniform's trousers can be easily slid down to expose $his butthole. - <<case "a slutty schutzstaffel uniform">> - $His uniform miniskirt can be easily slid up over $his hips to bare $his butthole. - <<case "a red army uniform">> - $His uniform skirt can be slid up over $his hips to bare $his butthole. - <<case "a long qipao">> - $His dress can be slid up over $his hips to bare $his butthole. - <<case "battlearmor">> - $His armor demands attention for $his tightly clad backdoor. - <<case "a mounty outfit">> - $His uniform slacks can be slipped off $his hips to bare $his butthole. - <<case "a dirndl">> - $His dress can be easily lifted to access $his bare ass. - <<case "lederhosen">> - $His tight shorts can be slipped off $his hips to bare $his butthole. - <<case "a biyelgee costume">> - $His costume can be easily lifted to access $his naked butt. - <<case "a nice nurse outfit">> - $His nurse's trousers can be easily slid down to expose $his butthole. - <<case "a mini dress">> - $His mini dress can be easily slid up to expose $his butthole. - <<case "an apron">> - $His apron leaves $his asshole completely exposed. - <<case "a leotard">> - As $his buttocks work naturally with $his movement, $his tight leotard gives hints of $his asshole. - <<case "a bunny outfit">> - $His fluffy white cottontail draws attention to $his butt, inevitably bringing anal to mind. - <<case "harem gauze">> - $His ass is clearly visible through the thin gauze that covers it. - <<case "a toga">> - $His toga is so transparent it can't hide $his asscrack, which looks very seductive. - <<case "a huipil">> - $His huipil can be easily lifted to access $his naked butt. - <<case "slutty jewelry">> - $His belt of light chain threatens to dip into $his asscrack with each step. - <<default>> - <<if ($activeSlave.chastityVagina)>> - $His chastity belt leaves $his ass available. - <<else>> - You run your eye over $his naked ass. - <</if>> - <</switch>> - <<set $target = "FAnus">> + + <<= anusWatch($activeSlave)>> + <<elseif (_flag > 0)>> <<faceDescription>> <<mouthDescription>> diff --git a/src/utility/descriptionWidgetsFlesh.tw b/src/utility/descriptionWidgetsFlesh.tw index b02c5f25494a1536d1ecc00583c896441c4a2f4e..24c0fe73d2f2ee709c09c69729b853adabc0610d 100644 --- a/src/utility/descriptionWidgetsFlesh.tw +++ b/src/utility/descriptionWidgetsFlesh.tw @@ -5389,7 +5389,7 @@ $He's got a <</if>> <<elseif $activeSlave.earShape == "damaged">> $His outer ears have been severely damaged. -<<elseif $activeSlave.earShape == "normal" && $activeSlave.earT>> /* Ears are expected, so lets only mention them if we have two sets */ +<<elseif $activeSlave.earShape == "normal" && $activeSlave.earT != "none">> /* Ears are expected, so lets only mention them if we have two sets */ $He has perfectly ordinary ears. <<elseif $activeSlave.earShape == "robot">> $He has high tech cyber-ears that could be mistaken for headphones. /*not yet implemented*/