Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • PantyNabber/fc-pregmod
  • pregmodfan/fc-pregmod
  • Alice.Grant/fc-pregmod
  • powerfful/fc-pregmod
  • elstumpo/fc-pregmod
  • Y/fc-pregmod
  • floer/fc-pregmod
  • oidocrop/fc-pregmod
  • hawk5005/fc-pregmod
  • nn/fc-pregmod
  • latios298/fc-pregmod
  • brpregmodfan/fc-pregmod
  • SomeoneTookMyUserName/fc-pregmod
  • 000-250-006/fc-pregmod
  • rewrica/fc-pregmod
  • Stuffedgame/fc-pregmod
  • wisepants314/fc-pregmod
  • fcanon/fc-pregmod
  • randomanon1/pregmod-mod-cyberfurry
  • teddy.buckland/fc-pregmod
  • farsinian_591b7a2d8b49d/fc-pregmod
  • FCShotadev/fc-pregmod
  • uselessartifact/fc-pregmod
  • irina_90/fc-pregmod
  • thaumx/fc-pregmod
  • MouseOfLight/fc-pregmod
  • empresssela/fc-pregmod
  • MasterAaran/fc-pregmod
  • ishy/fc-pregmod
  • psychofox/fc-pregmod
  • shadomancer/fc-pregmod
  • tycrakgg/fc-pregmod
  • azktaawc/fc-pregmod
  • andonno07/fc-pregmod
  • Onithyr/fc-pregmod
  • redneck987.jl/fc-pregmod
  • Farseeker/fc-pregmod
  • milliarc/fc-pregmod
  • BeefimusMaximus/fc-pregmod
  • magicknight79/fc-pregmod
  • hexall90/fc-pregmod
  • cantworkforever/fc-pregmod
  • jc052005/fc-pregmod
  • klorpa/fc-pregmod
  • doku/fc-pregmod
  • samhradh/fc-pregmod
  • scientist/fc-pregmod
  • albania420/fc-pregmod
  • Editoranon/fc-pregmod
  • Anony/fc-pregmod
  • deimios666/fc-pregmod
  • IvoHoe/fc-pregmod
  • bitty/fc-pregmod
  • RealAnon1800/fc-pregmod
  • brankirk/fc-pregmod
  • Amygdalan/fc-pregmod
  • DankWolf/fc-pregmod
  • Supot1951/fc-pregmod
  • bcy603/fc-pregmod
  • pwfxjpuv/fc-pregmod
  • ThreadAnon/fc-pregmod
  • Anon1800/fc-pregmod
  • Echoart/fc-pregmod
  • Dingotush/fc-pregmod
  • anonman/fc-pregmod
  • Arkerthan/fc-pregmod
  • svornost/fc-pregmod
  • wierdwierdos/fc-pregmod
  • wetwareAnon/fc-pregmod
  • QuartzHat/fc-pregmod
  • IchthysdeKilt/fc-pregmod
  • AnonAnonFC/fc-pregmod
  • Alexsis/fc-pregmod
  • LoyalTreeWP/fc-pregmod
  • aerialace/fc-pregmod
  • NurseryAnon/fc-pregmod
  • drakeashordcataclysm/fc-pregmod
  • AshVaris/fc-pregmod
  • purely0nothing/fc-pregmod
  • alex2011/fc-pregmod
  • Lindontree/fc-pregmod
  • FCaa/fc-pregmod
  • TR-8R/fc-pregmod
  • Jones/fc-pregmod
  • brr99/fc-pregmod
  • WriteAnon101/fc-pregmod
  • Drosil/fc-pregmod
  • Bob1221/fc-pregmod
  • vas/fc-pregmod
  • gitgud.user.937/fc-pregmod
  • D-K/fc-pregmod
  • AnonDev/fc-pregmod
  • madman23456/fc-pregmod
  • InarusLynx/fc-pregmod
  • Sonofrevvan/fc-pregmod
  • Randoisrando/fc-pregmod
  • cheez94/fc-pregmod
  • dldldl/fc-pregmod
  • alice321/fc-pregmod
  • Alexei91/fc-pregmod
  • darkcy/fc-pregmod
  • MapleMAD/fc-pregmod
  • pillarofsalt/fc-pregmod
  • vultureangels/fc-pregmod
  • kernel/fc-pregmod
  • nooneman/fc-pregmod
  • deepmurk/fc-pregmod
  • uglybead/fc-pregmod
  • lemongrab/fc-pregmod
  • temperence-chan/fc-pregmod
  • hcommenter/fc-pregmod
  • SpedeMemerson/fc-pregmod
  • qwijqwsf/fc-pregmod
  • BuDClow/fc-pregmod
  • HiveBro/fc-pregmod
  • shoku/fc-pregmod
  • ezsh/fc-pregmod
  • Blank/fc-pregmod
  • randoralcissian/fc-pregmod
  • benito92/fc-pregmod
  • balakart/fc-pregmod
  • wedonotsaw/fc-pregmod
  • Cayleth/fc-pregmod
  • Khip/fc-pregmod
  • Zfair/fc-pregmod
  • promethium/fc-pregmod
  • scyne/fc-pregmod
  • ZZC/fc-pregmod
  • SilverJanine/fc-pregmod
  • joxosix654email-9.co/fc-pregmod
  • Littlefootlittleguy/fc-pregmod
  • FelipeBA/fc-pregmod
  • bigtiddygothbf/fc-pregmod
  • Qotsafan/fc-pregmod
  • Zachpocalypse/fc-pregmod
  • milkanon66/fc-pregmod
  • GreGGoZZ/fc-pregmod
  • drsnarf86/fc-pregmod
  • valen102938/fc-pregmod
  • pregspammer/fc-pregmod
  • ponderin94/fc-pregmod
  • nook/fc-pregmod
  • carnifex34/fc-pregmod-mod-carni
  • SyntheticHigh/fc-pregmod
  • bob112211/fc-pregmod
  • amomynous0/fc-pregmod
  • oxone/fc-pregmod
  • MaxEuwe/fc-pregmod
  • nekoanon/fc-pregmod
  • preglocke/fc-pregmod
  • valen10293847/fc-pregmod
  • 2hu4u/fc-pregmod
  • mayibrad/fc-pregmod
  • Screm/fc-pregmod
  • Ansopedi/fc-pregmod
  • mrchaosbones/fc-pregmod
  • putrid/fc-pregmod
  • Kinnerman/fc-pregmod
  • gungrave1155/fc-pregmod
  • prndev/fc-pregmod
  • weresmilodon/fc-pregmod
  • auxxigobin/fc-pregmod
  • alice-chan/fc-pregmod
  • wigglie/fc-pregmod
  • jrliltfgb/fc-pregmod
  • Lord.alek.shade/fc-pregmod
  • truetailthesquire/fc-pregmod
  • lowercasedonkey/fc-pregmod
  • alice-chan9/fc-pregmod
  • eroglyphics/fc-pregmod
  • taliyent/fc-pregmod
  • zenzombie90/fc-pregmod
  • kjarik/fc-pregmod
  • wriggler/fc-pregmod
  • midnightblue/fc-pregmod
  • faraen/fc-pregmod
  • sigurd.cole/fc-pregmod
  • FCbuganon/fc-pregmod
  • kidkinster/fc-pregmod
  • Kar_Dragon/fc-pregmod
  • Zhafier/fc-pregmod
  • crcaretti/fc-pregmod
  • anond/fc-pregmod
  • tempmania/fc-pregmod
  • Dhanze/fc-pregmod
  • EstaUnCachucha/fc-pregmod
  • oniAnon/fc-pregmod
  • plebian/fc-pregmod
  • maxd569/fc-pregmod
  • Levarn/fc-pregmod
  • pumpkinspice/fc-pregmod
  • GammaXai/fc-pregmod
  • DanBackslide/fc-pregmod
  • i107760/fc-pregmod
  • Absimiliard/fc-pregmod
  • AmbrosiaCheesecake/fc-pregmod
  • fuguer/fc-pregmod
  • Azurel/fc-pregmod
  • Fake_Dev/fc-pregmod
  • ddongsanda/fc-pregmod
  • Combine456/fc-pregmod
  • UnwrappedGodiva/fc-pregmod
  • toyRuberDucky/fc-pregmod
  • zmobie/fc-pregmod
  • chuongk/fc-pregmod
  • BigWalnuts/fc-pregmod
  • Birdstrike/fc-pregmod
  • r3d/fc-pregmod
  • mawspa/fc-pregmod
  • sushila/fc-pregmod
  • DeathShip/fc-pregmod
  • eggrollsandwich/fc-pregmod
  • krayken/fc-pregmod
  • Reman/fc-pregmod
  • dwiafgts/fc-pregmod
  • jort93/fc-pregmod
  • teruterubouzu/fc-pregmod
  • flut/fc-pregmod
  • john-normal/fc-pregmod
  • Jonathan2405/fc-pregmod
  • Tyrgalon/fc-pregmod
  • NovX/fc-pregmod
  • Star1/fc-pregmod
  • Transhumanist01/fc-pregmod
  • m1017242/fc-pregmod
  • Rizal98798/fc-pregmod
  • jamezu369/fc-pregmod
  • thisisawittyname/fc-pregmod
  • KnightBoulegard/fc-pregmod
  • jblack/fc-pregmod
  • Souldrainr/fc-pregmod
  • torbjornhub/fc-pregmod
  • turnop/fc-pregmod
  • breadedpigeon/fc-pregmod
  • fire.maker/fc-pregmod
  • Inahaze/fc-pregmod
  • Waerjak/fc-pregmod
  • Trashman1138/fc-pregmod
  • supanintendo/fc-pregmod
  • _no0neman/fc-pregmod
  • Weslo/fc-pregmod
  • qw89/fc-pregmod
  • EvilDruid/fc-pregmod
  • dt25/fc-pregmod
  • Raou/fc-pregmod
  • DDouFu/fc-pregmod
  • Mauno/fc-pregmod
  • PandemoniumPenguin/fc-pregmod
  • AngelPuppet/fc-pregmod
  • DasUser79/fc-pregmod
  • Keaeag3s/fc-pregmod
  • HazeHazeHaze/fc-pregmod
  • hpotato/fc-pregmod
  • owouchthatbloodyhurt/fc-pregmod
  • v7Silent/fc-pregmod
  • nickylass/fc-pregmod
  • ThePrimer/fc-pregmod
  • PineCone/fc-pregmod
  • bruhmomentum17/fc-pregmod
  • CheatDude/fc-pregmod
  • synnove/fc-pregmod
  • en_bees/fc-pregmod
  • seronis/fc-pregmod
  • Nepidinepnep/fc-pregmod
  • Titanninja/fc-pregmod
  • Elohiem/fc-pregmod
  • cocoajazz/fc-pregmod
  • tfwncagf/fc-pregmod
  • ChunkyMonke/fc-pregmod
  • Dracoman671/fc-pregmod
  • jgl/fc-pregmod
  • Inev/fc-pregmod
  • jbige/fc-pregmod
  • MonsterMate/fc-pregmod
  • Konstantin6961/fc-pregmod
  • darth_ashi/fc-pregmod
  • shinx/fc-pregmod
  • Anu/fc-pregmod
  • Greytide/fc-pregmod
  • Bonafidemetal/fc-pregmod
  • Peje/fc-pregmod
  • Hexfy98/fc-pregmod
  • TooSlow/fc-pregmod
  • SoGu/fc-pregmod
  • CloudyCoffee/fc-pregmod
  • Welptard/fc-pregmod
  • Ploc/fc-pregmod-ploc
  • rain-/fc-pregmod
  • Pecanus/fc-pregmod
  • Jhortrax/fc-pregmod
  • valleytwo/fc-pregmod
  • QCmd/fc-pregmod
  • kung-wada/fc-pregmod
  • LolGaye/fc-pregmod
  • Exspiravit1/fc-pregmod
  • jadeddog/fc-pregmod
  • buster-scruggs/fs-antebellum-revivalism
  • policia123/fc-pregmod
  • evrgentesee/fc-pregmod
  • rko127/fc-pregmod
  • ExcalGrip12/fc-pregmod
  • BlackAion/fc-pregmod
  • Boss2020/fc-pregmod
  • Lawled/fc-pregmod
  • shiro/fc-pregmod
  • Skavenkeri/fc-pregmod
  • PooPooDooDooHead/fc-pregmod
  • Dugee/fc-pregmod
  • Portal124/fc-pregmod-vore
  • Fekenol/fc-pregmod
  • elGuapo/fc-pregmod
  • KelioSteel/fc-pregmod
  • sldlddk/fc-pregmod
  • lumepanter/fc-pregmod
  • ryuhana/fc-pregmod
  • Nene1009yb/fc-pregmod
  • DontAskDontTell/fc-pregmod-extra-events
  • Dulgi/fc-pregmod
  • Jate/fc-pregmod
  • percy365/fc-pregmod
  • franklygeorge/fc-pregmod
  • Dragneel117/fc-pregmod
  • vl96/fc-pregmod
  • Gorlom/fc-economicmod
  • NotAlive/fc-pregmod
  • Heretek/fc-pregmod
  • joeshmo828282/fc-pregmod
  • deswes/fc-pregmod
  • Nanana21/fc-pregmod
  • Gbr6/fc-pregmod
  • RandomNecro/fc-pregmod
  • Trinidad/fc-pregmod
  • anonymousey/fc-pregmod
  • macaronideath/fc-pregmod
  • fcbleh/fc-pregmod
  • jk3000/fc-pregmod
  • Akane/fc-pregmod
  • TheBoi/fc-pregmod
  • Sheenariel/fc-pregmod
  • Metapod/multi-custom
  • Banyanael/fc-pregmod
  • frogge/fc-pregmod
  • idkkk12385/fc-pregmod
  • Mirarara/fc-pregmod
  • DeaDa/fc-pregmod-thedeal
  • CobraCommander/fc-pregmod
  • bicobus/fc-pregmod
  • CardcaptorRLH85/fc-pregmod
  • temp-ui-start/fc-pregmod
  • PresidentConvert/fc-pregmod
  • delizious/fc-pregmod
  • Ducati/fc-pregmod
  • DerangedLoner/fc-pregmod-development-fork
  • ProjectVictory/fc-pregmod
  • forecastle/fc-pregmod
  • Apathy/fc-pregmod
  • indf/fc-pregmod-dev
  • GavAndAlt/fc-pregmod
  • hagamablabla/fc-pregmod
  • Alaco/fc-pregmod
  • DCoded/fc-pregmod
  • LittlePlague/fc-pregmod
  • MissOnahole/fc-pregmod
  • ishy2317/fc-pregmod
  • nielkazama/fc-pregmod
  • Phobos/fc-pregmod
  • kraster/fc-pregmod
  • JasWS/fc-pregmod
  • FelixJS/fc-pregmod
  • NCherfaoui/fc-pregmod
  • MidnightMoose/fc-pregmod
  • jjjjjj/fc-pregmod
  • Cl0ver/fc-pregmod
  • Pythoniqus/fc-pregmod
  • JohnMolotov/fc-pregmod
  • anonymouspregmodder/fc-pregmod-anonymouspregmodder
  • Fanatey/fc-pregmod
  • Mizako/fc-pregmod
  • Nithhogg/fc-pregmod
  • Bluecoffee/fc-pregmod
380 results
Show changes
Commits on Source (94)
Showing
with 244 additions and 38 deletions
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
"esbenp.prettier-vscode", "esbenp.prettier-vscode",
"gruntfuggly.todo-tree", "gruntfuggly.todo-tree",
"wayou.vscode-todo-highlight", "wayou.vscode-todo-highlight",
"cyrusfirheir.twee3-language-tools" "cyrusfirheir.twee3-language-tools",
"gitlab.gitlab-workflow"
] ]
} }
\ No newline at end of file
...@@ -28,7 +28,7 @@ These tools are not required, but are suggested and will make working on FC easi ...@@ -28,7 +28,7 @@ These tools are not required, but are suggested and will make working on FC easi
4. Follow the install steps until you get to the `Welcome to FC development!...` menu and then select `Exit` 4. Follow the install steps until you get to the `Welcome to FC development!...` menu and then select `Exit`
5. Open the directory in your preferred editor/IDE 5. Open the directory in your preferred editor/IDE
**Make sure you have ESLint, TypeScript, and spell checking (preferably with cSpell compatiblity) support installed and enabled (if avaliable) in your preferred editor/IDE to catch formatting, type def, and spelling errors** **Make sure you have ESLint, TypeScript, and spell checking (preferably with cSpell compatibility) support installed and enabled (if available) in your preferred editor/IDE to catch formatting, type def, and spelling errors**
<details><summary>Recommended editor/IDE plugins/extensions</summary> <details><summary>Recommended editor/IDE plugins/extensions</summary>
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
"css": ["src/**/*.css"], "css": ["src/**/*.css"],
"twee": ["src/**/*.tw"], "twee": ["src/**/*.tw"],
"media": [ "media": [
"src/art/map",
"src/art/vector/layers/", "src/art/vector/layers/",
"src/art/vector_revamp/layers/" "src/art/vector_revamp/layers/"
] ]
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
"devTools/minify", "devTools/minify",
"devTools/tweeGo", "devTools/tweeGo",
"devTools/types/tippy", "devTools/types/tippy",
"js/001-lib/idb.js",
"js/003-data/arcologyNames.js", "js/003-data/arcologyNames.js",
"js/003-data/miscDataNames.js", "js/003-data/miscDataNames.js",
"js/003-data/poses.js", "js/003-data/poses.js",
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
"src/npc/databases/dSlavesDatabase.js", "src/npc/databases/dSlavesDatabase.js",
"src/npc/databases/ddSlavesDatabase.js", "src/npc/databases/ddSlavesDatabase.js",
"src/npc/databases/cheatmodeDatabase.js", "src/npc/databases/cheatmodeDatabase.js",
"submodules",
"*.min.js", "*.min.js",
"*.json", "*.json",
"*.svg", "*.svg",
...@@ -221,6 +223,7 @@ ...@@ -221,6 +223,7 @@
"fanbase", "fanbase",
"façade", "façade",
"fcfa", "fcfa",
"fchost",
"fcnn", "fcnn",
"fctv", "fctv",
"felidae", "felidae",
...@@ -337,6 +340,7 @@ ...@@ -337,6 +340,7 @@
"preggos", "preggos",
"pregmod", "pregmod",
"prereqs", "prereqs",
"prising",
"progeria", "progeria",
"pudge", "pudge",
"qipao", "qipao",
...@@ -421,4 +425,4 @@ ...@@ -421,4 +425,4 @@
"xochiquetzal", "xochiquetzal",
"école" "école"
] ]
} }
\ No newline at end of file
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
transition: opacity 300ms ease-in-out; transition: opacity 300ms ease-in-out;
} }
.spinner { .ai-spinner {
display: none; display: none;
position: absolute; position: absolute;
top: 50%; top: 50%;
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
object-fit: contain; object-fit: contain;
} }
.ai-art-container.refreshing .spinner { .ai-art-container.refreshing .ai-spinner {
display: block; display: block;
} }
...@@ -164,3 +164,44 @@ ...@@ -164,3 +164,44 @@
transform: translate(-50%, -50%) rotate(360deg); transform: translate(-50%, -50%) rotate(360deg);
} }
} }
.ai-queue-overlay {
position: fixed;
right: 0;
bottom: 0;
background-color: #1a1a1a;
border-left: #333 2px solid;
border-top: #333 2px solid;
border-top-left-radius: 1em;
padding: 0.5em;
}
.ai-queue-overlay.hidden {
display: none;
}
.ai-queue-overlay .spinner {
display: inline-block;
width: 2.3em;
}
.ai-queue-overlay .spinner::after {
font-family: 'sc-icons';
content: "\f110";
position: absolute;
top: 50%;
left: 0.9em;
font-size: 25px;
animation: spin 3s linear infinite;
}
.ai-queue-overlay button {
font-family: 'sc-icons';
background-color: var(--button-color);
border: solid 2px var(--button-border-color);
}
.ai-queue-overlay button:hover {
background-color: var(--button-hover-color);
}
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
/* generally between red and green, and a lot of other places */ /* generally between red and green, and a lot of other places */
.orange, .orange a, .stupid, .stupid a, .change.negative, .change.negative a, .defiant.careful, .defiant.careful a, .orange, .orange a, .stupid, .stupid a, .change.negative, .change.negative a, .defiant.careful, .defiant.careful a,
.ncs, .ncs a, .miscarriage, .miscarriage a, .hindrance.mid, .intro.question { .ncs, .ncs a, .miscarriage, .miscarriage a, .period, .period a, .hindrance.mid, .intro.question {
color: orange color: orange
} }
......
...@@ -122,6 +122,29 @@ div.options-group input.full-width { ...@@ -122,6 +122,29 @@ div.options-group input.full-width {
} }
} }
/* slider */
/* very static styling, won't work well on very small screens */
.slider-div {
display: flex;
gap: 1em;
}
.slider-div input[type="range"] {
width: 50%;
min-width: 12em;
}
.slider-div span {
width: 100%;
max-width: 8em;
align-self: center;
}
.slider-div span:first-child {
text-align: end;
}
/* other */ /* other */
.subHeading { .subHeading {
width: 85%; width: 85%;
......
...@@ -25,40 +25,42 @@ ...@@ -25,40 +25,42 @@
} }
.plus-button { button.plus-button {
background: rgba(0, 139, 0, 0.2); background: rgba(0, 139, 0, 0.2);
border-color: rgba(0, 139, 0, 0.3); border-color: rgba(0, 139, 0, 0.3);
} }
.minus-button { button.minus-button {
background: rgba(184, 0, 0, 0.2); background: rgba(184, 0, 0, 0.2);
border-color: rgba(184, 0, 0, 0.3); border-color: rgba(184, 0, 0, 0.3);
} }
.zero-button { button.zero-button {
background: rgba(0, 0, 255, 0.2); background: rgba(0, 0, 255, 0.2);
border-color: rgba(0, 0, 255, 0.3); border-color: rgba(0, 0, 255, 0.3);
} }
.set-button {
button.set-button {
background: rgba(255, 210, 0, 0.2); background: rgba(255, 210, 0, 0.2);
border-color: rgba(255, 210, 0, 0.3); border-color: rgba(255, 210, 0, 0.3);
} }
.plus-button:hover { button.plus-button:hover {
background: rgba(0, 139, 0, 0.4); background: rgba(0, 139, 0, 0.4);
border-color: rgba(0, 139, 0, 0.3); border-color: rgba(0, 139, 0, 0.3);
} }
.minus-button:hover { button.minus-button:hover {
background: rgba(184, 0, 0, 0.4); background: rgba(184, 0, 0, 0.4);
border-color: rgba(184, 0, 0, 0.3); border-color: rgba(184, 0, 0, 0.3);
} }
.zero-button:hover { button.zero-button:hover {
background: rgba(0, 0, 255, 0.4); background: rgba(0, 0, 255, 0.4);
border-color: rgba(0, 0, 255, 0.3); border-color: rgba(0, 0, 255, 0.3);
} }
.set-button:hover {
button.set-button:hover {
background: rgba(255, 210, 0, 0.4); background: rgba(255, 210, 0, 0.4);
border-color: rgba(255, 210, 0, 0.3); border-color: rgba(255, 210, 0, 0.3);
} }
...@@ -4,6 +4,7 @@ mcmonkeyprojects ...@@ -4,6 +4,7 @@ mcmonkeyprojects
orthodontal orthodontal
rgthree rgthree
SDXL SDXL
Svornost
swinir swinir
unapprovingly unapprovingly
uncircumcise uncircumcise
......
...@@ -170,6 +170,9 @@ declare namespace FC { ...@@ -170,6 +170,9 @@ declare namespace FC {
careerBonusNeeded?: HumanID[]; careerBonusNeeded?: HumanID[];
customLanguage?: string; customLanguage?: string;
/** track impreg actions made to slaves */
slaveIdsImpregnanted?: Set<number>
} }
export interface GameVariables extends DefaultGameStateVariables, ResetOnNGPVariables, export interface GameVariables extends DefaultGameStateVariables, ResetOnNGPVariables,
......
...@@ -92,8 +92,7 @@ App.PersonalAttention = {}; ...@@ -92,8 +92,7 @@ App.PersonalAttention = {};
/** /**
* The patching system that replaces the legacy BC. * The patching system that replaces the legacy BC.
* Its primary file and instructions are located at `/src/data/patches/patch.js`. * Its primary file and instructions are located at `/src/data/patches/patch.js`.
* @see App.Patch.Patches * See {@link App.Patch.Patches} and {@link App.Patch.applyAll}
* @see App.Patch.applyAll
*/ */
App.Patch = {}; App.Patch = {};
/** /**
...@@ -132,8 +131,7 @@ App.UI.View = {}; ...@@ -132,8 +131,7 @@ App.UI.View = {};
* While it is depreciated, it should not be removed or modifed as it is used as a patch in the new patching system. * While it is depreciated, it should not be removed or modifed as it is used as a patch in the new patching system.
* Its files are stored in `/src/data/backwardsCompatibility/`. * Its files are stored in `/src/data/backwardsCompatibility/`.
* @deprecated Replaced by `App.Patch.applyAll()`. * @deprecated Replaced by `App.Patch.applyAll()`.
* @see App.Patch * See {@link App.Patch} and {@link App.Patch.applyAll}
* @see App.Patch.applyAll
*/ */
App.Update = {}; App.Update = {};
App.Utils = {}; App.Utils = {};
...@@ -141,13 +139,13 @@ App.Utils.Math = {}; ...@@ -141,13 +139,13 @@ App.Utils.Math = {};
/** /**
* The validation system. This replaces the validation that was done in the legacy BC. * The validation system. This replaces the validation that was done in the legacy BC.
* Its primary file and instructions are located at `/src/data/verification/zVerify.js`. * Its primary file and instructions are located at `/src/data/verification/zVerify.js`.
* @see App.Verify.everything * See {@link App.Verify.everything}
*/ */
App.Verify = {}; App.Verify = {};
/** /**
* Storage for validation instructions. * Storage for validation instructions.
* These are functions that should be added to one or more instruction set(s) in `App.Verify.instructions`. * These are functions that should be added to one or more instruction set(s) in `App.Verify.instructions`.
* @see App.Verify.instructions * See {@link App.Verify.instructions}
*/ */
App.Verify.I = {}; App.Verify.I = {};
/** /**
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
App.Data.defaultGameStateVariables = { App.Data.defaultGameStateVariables = {
/** /**
* This is used to hold data during passage transitions. * This is used to hold data during passage transitions.
* The contents of this object are reset near the end of `App.EndWeek.nextWeek()` right before autosaving happens * The contents of this object are reset near the end of {@link App.EndWeek.nextWeek}() right before autosaving happens
* @see App.EndWeek.nextWeek
* @type {FC.TransitionObject} * @type {FC.TransitionObject}
*/ */
temp: {}, temp: {},
...@@ -15,8 +14,7 @@ App.Data.defaultGameStateVariables = { ...@@ -15,8 +14,7 @@ App.Data.defaultGameStateVariables = {
/** /**
* Stores the traveled passages since the "Main" passage. * Stores the traveled passages since the "Main" passage.
* Gets reset by the main passage. * Gets reset by the main passage.
* @see lastPassage * See {@link lastPassage} and {@link App.Utils.passageHistoryCleanup}
* @see App.Utils.passageHistoryCleanup
* @type {string[]} * @type {string[]}
*/ */
passageHistory: [], passageHistory: [],
...@@ -27,7 +25,7 @@ App.Data.defaultGameStateVariables = { ...@@ -27,7 +25,7 @@ App.Data.defaultGameStateVariables = {
commitHash: "", commitHash: "",
/** /**
* @type {number} used for patching * @type {number} used for patching
* @see App.Patch.applyAll * See {@link App.Patch.applyAll}
*/ */
releaseID: 0, releaseID: 0,
...@@ -39,20 +37,17 @@ App.Data.defaultGameStateVariables = { ...@@ -39,20 +37,17 @@ App.Data.defaultGameStateVariables = {
/** /**
* @readonly * @readonly
* Each slave and the player gets a genepool record when they are created * Each slave and the player gets a genepool record when they are created
* The records stored here are missing default values! Use the `getGenePoolRecord()` function to retreive them * The records stored here are missing default values! Use the {@link getGenePoolRecord}() function to retrieve them
* Do not access this directly. Use `addToGenePool()` to add records * Do not access this directly. Use {@link addToGenePool}() to add records
* @see getGenePoolRecord
* @see addToGenePool
* @type {Readonly<{[key: string]: Readonly<Partial<FC.GenePoolRecord>>}>} * @type {Readonly<{[key: string]: Readonly<Partial<FC.GenePoolRecord>>}>}
*/ */
genePool: {}, genePool: {},
/** /**
* @readonly * @readonly
* @type {Readonly<FC.GenePoolRecord>} used by `getGenePoolRecord()` to fill in missing defaults * @type {Readonly<FC.GenePoolRecord>} used by {@link getGenePoolRecord}() to fill in missing defaults
* @see getGenePoolRecord * Also see {@link addToGenePool}
* @see addToGenePool
*/ */
genePoolDefaults: undefined, // new App.Entity.GenePoolRecord(); App.Entity.GenePoolRecord doesn't exist yet... genePoolDefaults: undefined,
/** @type {Record<FC.HumanID, FC.MissingParentRecord>} */ /** @type {Record<FC.HumanID, FC.MissingParentRecord>} */
missingTable: {}, missingTable: {},
detached: { detached: {
...@@ -285,6 +280,7 @@ App.Data.defaultGameStateVariables = { ...@@ -285,6 +280,7 @@ App.Data.defaultGameStateVariables = {
aiApiUrl: "http://localhost:7860", aiApiUrl: "http://localhost:7860",
aiAutoGen: true, aiAutoGen: true,
aiAutoGenFrequency: 10, aiAutoGenFrequency: 10,
aiQueueOverlay: 1,
aiUseRAForEvents: false, aiUseRAForEvents: false,
aiCfgScale: 5, aiCfgScale: 5,
aiTimeoutPerStep: 5, aiTimeoutPerStep: 5,
...@@ -421,6 +417,7 @@ App.Data.defaultGameStateVariables = { ...@@ -421,6 +417,7 @@ App.Data.defaultGameStateVariables = {
useSlaveListInPageJSNavigation: 0, useSlaveListInPageJSNavigation: 0,
useSlaveSummaryOverviewTab: 0, useSlaveSummaryOverviewTab: 0,
useSlaveSummaryTabs: 0, useSlaveSummaryTabs: 0,
useSlaveArcologyTab: 1,
useTabs: 0, useTabs: 0,
verboseDescriptions: 0, verboseDescriptions: 0,
verticalizeArcologyLinks: 0, verticalizeArcologyLinks: 0,
...@@ -525,6 +522,11 @@ App.Data.defaultGameStateVariables = { ...@@ -525,6 +522,11 @@ App.Data.defaultGameStateVariables = {
warned: false, warned: false,
} }
}, },
// Scenarios
scenarios: {
contraceptivesBan: 0,
}
}; };
// Corp data // Corp data
...@@ -655,7 +657,9 @@ App.Data.resetOnNGPlus = { ...@@ -655,7 +657,9 @@ App.Data.resetOnNGPlus = {
sexualOpenness: 0, sexualOpenness: 0,
bestialityOpenness: 0, bestialityOpenness: 0,
gumjobFetishism: 0, gumjobFetishism: 0,
gumjobFetishismSMR: 0 gumjobFetishismSMR: 0,
contraceptivesBan: 0
}, },
FCTV: { FCTV: {
...@@ -735,6 +739,7 @@ App.Data.resetOnNGPlus = { ...@@ -735,6 +739,7 @@ App.Data.resetOnNGPlus = {
econRate: 0, econRate: 0,
/** @type {FC.ArcologyState[]} */ /** @type {FC.ArcologyState[]} */
arcologies: [], arcologies: [],
/* These variables exist, so skill changes during the week will only influence prizes in the next week */
HackingSkillMultiplier: 0, HackingSkillMultiplier: 0,
upgradeMultiplierArcology: 0, upgradeMultiplierArcology: 0,
upgradeMultiplierMedicine: 0, upgradeMultiplierMedicine: 0,
...@@ -1111,6 +1116,7 @@ App.Data.resetOnNGPlus = { ...@@ -1111,6 +1116,7 @@ App.Data.resetOnNGPlus = {
smartVibes: 0, smartVibes: 0,
smartVaginalAttachments: 0, smartVaginalAttachments: 0,
smartStrapon: 0, smartStrapon: 0,
chastity: 1,
}, },
}, },
dairyPiping: 0, dairyPiping: 0,
...@@ -1130,6 +1136,8 @@ App.Data.resetOnNGPlus = { ...@@ -1130,6 +1136,8 @@ App.Data.resetOnNGPlus = {
bodyswapAnnounced: 0, bodyswapAnnounced: 0,
surnamesForbidden: 0, surnamesForbidden: 0,
menstruation: 0, menstruation: 0,
menstruationKnown: 0,
pregnancyKnown: 0,
FCNNstation: 0, FCNNstation: 0,
swanSong: 0, swanSong: 0,
failedElite: 0, failedElite: 0,
......
...@@ -637,6 +637,15 @@ App.Data.Policies.Selection = { ...@@ -637,6 +637,15 @@ App.Data.Policies.Selection = {
} }
} }
], ],
"policies.contraceptivesBan": [ // will change in the future with authority/favor rework
{
title: "Contraceptives Ban",
text: `will ban contraceptives from being sold.`,
activatedText: `contraceptives are no longer commercially available.`,
activatedNote: `Will greatly increase the prices of abortions and chastity devices. Try not to have any accidents!`, // This will be changed later once this is available outside the scenario start
hide: {button: 1, ifActivated: 0}, // Only appears under a specific scenario start
}
],
}, },
EducationPolicies: { EducationPolicies: {
"TSS.subsidize": [ "TSS.subsidize": [
......
...@@ -31,6 +31,7 @@ App.Art.cacheArtData = function() { ...@@ -31,6 +31,7 @@ App.Art.cacheArtData = function() {
App.Data.Art.Vector = makeCache(document.querySelectorAll('[tags="Twine.image"][name^="Art_Vector"]:not([name^="Art_Vector_Revamp"])')); App.Data.Art.Vector = makeCache(document.querySelectorAll('[tags="Twine.image"][name^="Art_Vector"]:not([name^="Art_Vector_Revamp"])'));
App.Data.Art.VectorRevamp = makeCache(document.querySelectorAll('[tags="Twine.image"][name^="Art_Vector_Revamp"]')); App.Data.Art.VectorRevamp = makeCache(document.querySelectorAll('[tags="Twine.image"][name^="Art_Vector_Revamp"]'));
App.Data.Art.OtherSVG = makeCache(document.querySelectorAll('[tags="Twine.image"][name="world"]'));
}; };
App.Art.URLIDMatcher = /url\(#(.*)\)/g; App.Art.URLIDMatcher = /url\(#(.*)\)/g;
......
// The smaller, the more global
App.Data.World.TravelFrictionExponent = -0.6;
// The smaller, the more are large nationalities downscaled
App.Data.World.PopScaleFactor = 23;
/**
* @typedef {Record<number, number>} gridPoint
* Not intended for manual handling, use one of the functions below to get the data behind it.
*
* If gridPoint[0] >= 0: Point in the world data grids. (X, Y)
* Otherwise : Encodes a small territory
*/
/**
* @returns {Generator<gridPoint, void, *>}
*/
App.Data.World.gridPoints = function*() {
for (let x = 0; x < App.Data.World.GridDimensions.width; x++) {
for (let y = 0; y < App.Data.World.GridDimensions.height; y++) {
yield [x, y];
}
}
for (let i = 0; i < App.Data.World.SmallTerritories.length; i++) {
yield [-1, i];
}
};
/**
* Turn a grid cell into a global coordinate.
* @param {gridPoint} p
* @returns {[number, number]} Latitude, Longitude
*/
App.Data.World.gridPointToCoordinate = function(p) {
if (p[0] === -1) {
const st = App.Data.World.SmallTerritories[p[1]];
return [st[2], st[3]];
}
const width = App.Data.World.GridDimensions.width;
const height = App.Data.World.GridDimensions.height;
const lon = p[0] / App.Data.World.GridDimensions.width * 360 - 180;
const lat = p[1] / App.Data.World.GridDimensions.height * -180 + 90;
const lonCell = 360 / width;
const latCell = 180 / height;
return [lat - latCell / 2, lon + lonCell / 2];
};
/**
* Return the grid cell that encloses the given coordinates
* @param {number} lat
* @param {number} lon
* @returns {gridPoint}
*/
App.Data.World.coordinateToGridPoint = function(lat, lon) {
const width = App.Data.World.GridDimensions.width;
const height = App.Data.World.GridDimensions.height;
const lonCell = 360 / width;
const latCell = 180 / height;
const x = Math.floor((lon + 180) / lonCell);
const y = Math.floor((-lat + 90) / latCell);
return [x, y];
};
/**
* @param {gridPoint} p
* @returns {number}
*/
App.Data.World.populationAt = function(p) {
if (p[0] === -1) {
const st = App.Data.World.SmallTerritories[p[1]];
return st[1];
}
return App.Data.World.PopGrid[p[1]][p[0]];
};
/**
* @param {gridPoint} p
* @returns {number}
*/
App.Data.World.nationIdAt = function(p) {
if (p[0] === -1) {
const st = App.Data.World.SmallTerritories[p[1]];
return st[0];
}
return App.Data.World.NationGrid[p[1]][p[0]];
};
/**
* @param {gridPoint} p
* @returns {string}
*/
App.Data.World.nationAt = function(p) {
const nationId = App.Data.World.nationIdAt(p);
return App.Data.World.Nations[nationId] || "Stateless";
};
...@@ -23,7 +23,7 @@ App.Loader = (function() { ...@@ -23,7 +23,7 @@ App.Loader = (function() {
* To make sure the scripts are loaded series, keep a queue of scripts to be loaded and only load the next once the * To make sure the scripts are loaded series, keep a queue of scripts to be loaded and only load the next once the
* previous one is finished. * previous one is finished.
* *
* @see nextScript * see {@link nextScript}
* *
* @type {Array<()=>void>} * @type {Array<()=>void>}
*/ */
......
/* eslint no-unused-vars: [2, { "vars": "local" }] */ /* eslint no-unused-vars: [2, { "vars": "local" }] */
// cSpell:ignore yxxx // cSpell:ignore yxxx, ØSTER
/* This file contains only JS functions without dependencies on FC specific variables/conventions and do not rely on /* This file contains only JS functions without dependencies on FC specific variables/conventions and do not rely on
* custom functions outside this file * custom functions outside this file
......
This diff is collapsed.
...@@ -4,11 +4,11 @@ App.Version = { ...@@ -4,11 +4,11 @@ App.Version = {
commitHash: null, commitHash: null,
/** /**
* @type {number} used for patching via BC * @type {number} used for patching via BC
* @see App.Patch.applyAll * See {@link App.Patch.applyAll}
* *
* When you get to release 2000, use 2001 instead. * When you get to release 2000, use 2001 instead.
* The release numbers got messed up, this is corrected in `src/js/eventHandlers.js` and `/src/data/patches/patch.js`. * The release numbers got messed up, this is corrected in `src/js/eventHandlers.js` and `/src/data/patches/patch.js`.
* The two line above and this line should be safe to remove after release 2001. * The two line above and this line should be safe to remove after release 2001.
*/ */
release: 1279, release: 1280,
}; };