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
  • Bluecoffee/fc-pregmod
  • anonymouspregmodder/fc-pregmod-anonymouspregmodder
  • Fanatey/fc-pregmod
  • Mizako/fc-pregmod
  • Nithhogg/fc-pregmod
380 results
Show changes
Commits on Source (46312)
Showing with 9904 additions and 68 deletions
**/mousetrap.js
**/pako.js
**/sugarCubeConfig.js
**/format.js
**/displayVariables.js
**/dTree.min.js
**/optionsMacro.js
temp.**
**.temp
**/001-lib
/build/**/*
/devNotes/legacy files/**/*
bin/*
/FCHost/**/*
{
"root": true,
"env": {
"browser": true,
"es6": true,
"es2022": true,
"jquery": true
},
"extends": ["eslint:recommended"],
"plugins": [
"jsdoc",
"sonarjs"
],
"globals": {
"SugarCube": false,
"Config": false,
"State": false,
"Story": false,
"settings": false,
"setup": false,
"App": false,
"prehistory": true,
"predisplay": true,
"prerender": true,
"postrender": true,
"postdisplay": true
},
"parserOptions": {
"ecmaVersion": 2022,
"sourceType": "script",
"ecmaFeatures": {
"impliedStrict": true
}
},
"overrides": [
{
// overrides for helper scripts that are written
// using imports and/or exports
"files": ["gulpfile.js", "devTools/scripts/**/*.js"],
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 2022
}
}
],
"settings": {
"jsdoc": {
"mode": "typescript"
}
},
"rules": {
"no-prototype-builtins": "off",
"semi": ["warn", "always"],
"semi-spacing": "warn",
"semi-style": "warn",
"block-spacing": ["warn", "always"],
"curly": ["warn", "all"],
"eqeqeq": ["warn", "smart"],
"space-before-function-paren": ["warn", {
"anonymous": "never",
"named": "never",
"asyncArrow": "always"
}],
"template-curly-spacing": ["warn", "never"],
"no-trailing-spaces": "warn",
"no-mixed-spaces-and-tabs": ["warn", "smart-tabs"],
"no-unneeded-ternary": "warn",
"camelcase": "warn",
"padded-blocks": ["warn", "never"],
"comma-spacing": "warn",
"comma-style": "warn",
"object-curly-newline": ["warn",
{
"ObjectExpression":{
"minProperties": 4,
"consistent": true
},
"ImportDeclaration": {
"minProperties": 4,
"consistent": true
},
"ExportDeclaration": {
"minProperties": 4,
"consistent": true
},
"ObjectPattern": {
"minProperties": 8,
"consistent": true
}
}
],
"object-curly-spacing": "warn",
"no-var": "warn",
"spaced-comment": "warn",
"no-undef": "off",
"indent": ["error", "tab", { "SwitchCase": 1 }],
"no-unused-vars": ["error", {"args": "none"}],
"no-unused-expressions": "error",
"block-scoped-var": "error",
"dot-notation": "warn",
"eol-last": "warn",
"unicode-bom": [
"error",
"never"
],
"brace-style": [
"warn",
"1tbs",
{
"allowSingleLine": true
}
],
"no-sequences": "warn",
"no-unreachable-loop": "warn",
"generator-star-spacing": [
"warn",
{
"before": false,
"after": true,
"anonymous": "neither"
}
],
"one-var": ["warn", "never"],
"keyword-spacing": "warn",
"no-template-curly-in-string": "error",
"operator-linebreak": ["warn", "after", { "overrides": { "?": "before", ":": "before" }}],
"jsdoc/check-alignment": 1,
"jsdoc/check-examples": 0, // interferes with SugarCube examples
"jsdoc/check-indentation": 0,
"jsdoc/check-param-names": 1,
"jsdoc/check-property-names": 1,
"jsdoc/check-syntax": 1,
"jsdoc/check-tag-names": 1,
"jsdoc/check-types": 1,
"jsdoc/implements-on-classes": 1,
"jsdoc/match-description": 0, // rejects SugarCube syntax
"jsdoc/newline-after-description": 0,
"jsdoc/no-types": 0,
"jsdoc/no-undefined-types": 0,
"jsdoc/require-jsdoc": [
"warn",
{
"enableFixer": false,
"require": {
"ArrowFunctionExpression": false,
"ClassDeclaration": false,
"ClassExpression": false,
"FunctionDeclaration": true,
"FunctionExpression": true,
"MethodDefinition": false
},
"exemptEmptyFunctions": true,
"checkGetters": false,
"checkSetters": false
}
],
"jsdoc/require-param": ["warn"],
"jsdoc/require-param-description": 0,
"jsdoc/require-param-name": 1,
"jsdoc/require-param-type": 1,
"jsdoc/require-returns": ["off"],
"jsdoc/require-returns-check": 1,
"jsdoc/require-returns-description": 0,
"jsdoc/require-returns-type": 1,
"jsdoc/valid-types": 1,
"sonarjs/no-all-duplicated-branches": "error",
"sonarjs/no-element-overwrite": "error",
"sonarjs/no-extra-arguments": "error",
"sonarjs/no-identical-conditions": "error",
"sonarjs/no-identical-expressions": "error",
"sonarjs/no-one-iteration-loop": "error",
"sonarjs/no-use-of-empty-return-value": "error",
"sonarjs/no-collection-size-mischeck": "warn",
"sonarjs/no-same-line-conditional": "warn",
"sonarjs/no-unused-collection": "warn"
}
}
*.bat text eol=crlf
*.js text eol=lf
*.tw text eol=lf
*.sh text eol=lf
*.py text eol=lf
*.txt text eol=lf
......@@ -3,74 +3,18 @@ __pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# IPython Notebook
.ipynb_checkpoints
# pyenv
.python-version
# Vim stuff
[._]*.s[a-v][a-z]
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
Session.vim
Sessionx.vim
.netrwhist
*~
tags
[._]*.un~
# celery beat schedule file
celerybeat-schedule
......@@ -87,3 +31,61 @@ ENV/
# Rope project settings
.ropeproject
# Start.tw
src/002-config/start.tw
# eslint
node_modules
package-lock.json
yarn.lock
pnpm-lock.yaml
# Visual Studio Code
.vscode/settings.json
.vscode/tasks.json
# .vscode/bookmarks.json is created by the amazing https://marketplace.visualstudio.com/items?itemName=alefragnani.Bookmarks VSCode extension
.vscode/bookmarks.json
*.code-workspace
# WebStorm
.idea
# Gulp
build/
# backup
*.bak
*.gho
*.ori
*.orig
*.tmp
# misc
fc-pregmod
bin/*
*.outline
*.todo
/TODO.*
TODO.txt
temp.*
*.temp
src/002-config/fc-version.js.commitHash.js
devTools/scripts/.package.json.diff
/settings.json
.eslintcache
/sanityCheck.log
/.tsbuildinfo
# macOS devices
*.icloud
# legacy
devNotes/legacy files/*
/.vs
# mod development
/mods/dev/
# cSpell
.cspellcache
workflow:
rules:
# only run when on the main repo
- if: '$CI_PROJECT_ID == "3528"'
when: always
.official-releases:
rules:
- if: $CI_COMMIT_TAG =~ /\A\d+\.\d+\.\d+/
stages:
- build
- upload
- release
variables:
FC_PREGMOD_ARCHIVE: "FC_pregmod_${CI_COMMIT_TAG}.zip"
# precompiled / assets
# the URLs are the same as inside the game, change both if updating
WEBGL_NAME: "WebGL art assets"
WEBGL_URL: "https://mega.nz/folder/CgRiQaxS#Cjok57jXZwQt-jP7zkRh2Q"
RENDER_NAME: "Rendered imagepack (outdated)"
RENDER_URL: "https://mega.nz/file/upoAlBaZ#EbZ5wCixxZxBhMN_ireJTXt0SIPOywO2JW9XzTIPhe0"
build:
stage: build
image: ggcr.io/pregmodfan/fc-pregmod/build
cache:
paths:
- node_modules/
rules:
# official release
- if: $CI_COMMIT_TAG =~ /\A\d+\.\d+\.\d+/
# latest
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
before_script:
- npm update --no-audit --no-fund --omit=dev
script:
- npx gulp html --minify --release --ci
artifacts:
paths:
- bin/FC_pregmod.html
upload:
stage: upload
image: ggcr.io/pregmodfan/fc-pregmod:megacmd
extends: .official-releases
script:
- mega-login $MEGA_MAIL $MEGA_PWD
- zip bin/$FC_PREGMOD_ARCHIVE bin/FC_pregmod.html
- mega-put bin/$FC_PREGMOD_ARCHIVE /
- echo "MEGA_URL=$(mega-export -a /$FC_PREGMOD_ARCHIVE | grep -o https.*)" >> variables.env
artifacts:
# carry MEGA_URL over to the release job
reports:
dotenv: variables.env
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
extends: .official-releases
script:
# extract changes from changelog
# get line of version header + 1
- START=$(awk 'match($1,"##") && match($2,v){print NR+1; exit}' v="0.10.7.1-$CI_COMMIT_TAG" CHANGELOG.md)
# drop everything above the release including the release header
- tail -n +$START CHANGELOG.md > tmp
# get line of next version header - 1
- END=$(awk 'match($1,"##") && match($2,v){print NR-1; exit}' v="0.10.7.1" tmp)
# drop everything after current release
- DESCRIPTION=$(head -n $END tmp)
# create release
# assets are displayed in inverse order to how they are defined here
- |
release-cli create --name "$CI_COMMIT_TAG" --description "$DESCRIPTION" \
--tag-name "$CI_COMMIT_TAG" \
--assets-link "{\"name\":\"${RENDER_NAME}\",\"url\":\"${RENDER_URL}\"}" \
--assets-link "{\"name\":\"${WEBGL_NAME}\",\"url\":\"${WEBGL_URL}\"}" \
--assets-link "{\"name\":\"${FC_PREGMOD_ARCHIVE}\",\"url\":\"${MEGA_URL}\"}"
/label ~Bug
## Expected Behavior
<!--- If you're describing a bug, tell us what should happen -->
## Current Behavior
<!-- If describing a bug, tell us what happened instead of the expected behavior. Provide screenshots of the problem if possible. -->
## Steps to Reproduce
<!-- Provide an unambiguous sequence of steps to reproduce the bug. -->
1.
2.
3.
4.
## Additional information
<!-- Release ID and commit can be found on the starting splash screen or the options page. -->
* Release ID:
* Commit: (if available)
* Save file
/label ~Feature
### Is your proposal related to a problem?
<!--
Provide a clear and concise description of what the problem is.
For example, "I'm always frustrated when..."
-->
### Describe the solution you'd like
<!--
Provide a clear and concise description of what you want to happen.
-->
### Describe alternatives you've considered
<!--
Let us know about other solutions you've tried or researched.
-->
### Additional context
<!--
Is there anything else you can add about the proposal?
You might want to link to related issues here, if you haven't already.
-->
/label ~Question
<!-- Make sure to read the ingame encyclopedia before asking your question -->
<!-- If you have any questions about anything don't hesitate to ask in this merge request or by creating a new issue -->
#### Description and notes
<!-- Describe what you have done and why. -->
<details><summary>Merge Checklist</summary>
<!---
Check all that apply by replacing the space inside the square brackets with an x ([x] for example)
This is to help us streamline the merging process
It is not a list of requirements
-->
- [ ] I have read [CONTRIBUTING.md](https://gitgud.io/pregmodfan/fc-pregmod/-/blob/pregmod-master/CONTRIBUTING.md)
- and
- my code editor has
- [ ] ESLint support enabled
- [ ] TypeScript support enabled
- [ ] some form of spell checker
- We suggest using a spell checker compatible with cSpell if possible
- [ ] my changes compile successfully and seem to work properly
- [ ] I am using the simple compiler (`simple-compiler.[bat or sh]`)
- [ ] I am using the normal compiler (`compile.[bat or sh]`)
- [ ] this is my first merge request
- [ ] the changes in this merge request comply with the [coding style defined in CONTRIBUTING.md](https://gitgud.io/pregmodfan/fc-pregmod/-/blob/pregmod-master/CONTRIBUTING.md#code-style)
</details>
<details><summary>Changes made</summary>
- Some change
- Another change
</details>
#### Things left to do
<!-- A todo list of things that you think still need done before merging -->
- [ ] code review (this is done by one or more people other than you)
- [ ] final tests
- [ ] let Pregmodder know that this is ready for merging
[submodule "submodules/sugarcube-2"]
path = submodules/sugarcube-2
url = https://gitgud.io/Arkerthan/sugarcube-2.git
branch = fc
{
"eol": "\n",
"end_with_newline": true,
"indent_with_tabs": true,
"wrap_line_length": 0,
"space_around_combinator": true,
"brace_style": "collapse,preserve-inline"
}
\ No newline at end of file
// Minified files
**/dTree.min.js
**/js/displayVariables.js
{
"browser": true,
"devel": true,
"jquery": true,
"esversion": 8,
"eqeqeq": true,
"nocomma": true,
"undef": false,
"maxerr": 250,
"unused": true,
"globals": {
"SugarCube": false,
"Config": false,
"State": false,
"Story": false,
"settings": false,
"setup": false,
"prehistory": true,
"predisplay": true,
"prerender": true,
"postrender": true,
"postdisplay": true
},
"-W008": false,
"-W014": false
}
{
"recommendations": [
"streetsidesoftware.code-spell-checker",
"naumovs.color-highlight",
"usernamehw.errorlens",
"dbaeumer.vscode-eslint",
"waderyan.gitblame",
"donjayamanne.git-extension-pack",
"eamodio.gitlens",
"visualstudioexptteam.vscodeintellicode",
"davidanson.vscode-markdownlint",
"christian-kohler.path-intellisense",
"esbenp.prettier-vscode",
"gruntfuggly.todo-tree",
"wayou.vscode-todo-highlight",
"cyrusfirheir.twee3-language-tools"
]
}
\ No newline at end of file
{
// This is our suggested VSCode settings. To use them as is just copy this file and name the copy settings.json
"[javascript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint",
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnType": true
},
"[json]": {
"editor.defaultFormatter": "vscode.json-language-features",
"editor.formatOnPaste": true,
"editor.formatOnSave": true,
"editor.formatOnType": true
},
"cSpell.enabledFileTypes": {
"*": true
},
"editor.inlineSuggest.enabled": true,
"editor.rulers": [
{
"column": 80,
"color": "#1f8300"
},
{
"column": 120,
"color": "#ff7700"
}
],
"editor.semanticHighlighting.enabled": true,
"eslint.format.enable": true,
"eslint.probe": [
"javascript",
"javascriptreact",
"typescript",
"typescriptreact",
"html",
"vue",
"markdown",
"twee3-sugarcube-2"
],
"files.associations": {
"*.tw": "twee3-sugarcube-2"
},
"todo-tree.regex.regex": "(//|#|--|<!--|;|/\\*|^|^[ \\t]*(-|\\d+.))\\s*($TAGS)",
"twee3LanguageTools.storyformat.current": "sugarcube-2"
}
\ No newline at end of file
This diff is collapsed.
# Contributing to FC: Pregmod
First off, thanks for taking the time to contribute!
If there is anything you don't understand please ask us about it. The advanced tooling is not required for
fixing small typos or simple bugs, but it is suggested.
## Environment
### Requirements
To effectively work on the project the following tools are needed:
* [Git](https://git-scm.com)
* [Node.js](https://nodejs.org/en/) or another npm client
* a code editor/IDE
* [VSCode](https://code.visualstudio.com/) is a popular option and is what we recommend if you don't already have a preference
These tools are not required, but are suggested and will make working on FC easier.
### Setting everything up
1. Clone the project from GitGud.io ([Detailed Git setup and work cycle](devNotes/gitSetup.md))
2. Navigate to the `fc-pregmod` root directory.
* Windows: Run `Windows Powershell` or `Command Prompt` and execute `cd C:\path\to\project\fc-pregmod`
* Mac/Linux: Open a terminal and execute `cd /path/to/project/fc-pregmod/`
3. Run `setup.bat` (Windows) or `setup.sh` (Mac/Linux) in your terminal
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
**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**
<details><summary>Recommended editor/IDE plugins/extensions</summary>
The list below is for VSCode. If you are not using VSCode but want some of these extensions functionality, then do some research. Many of these extensions exist or have alternatives in most common editors/IDEs.
* [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
* Catches formatting problems and lets you know when your code doesn't conform to our standards
* TypeScript/TSC
* Built into VSCode. Catches discrepancies between your code and the existing TypeScript type defs
* [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)
* Catches most spelling issues
* [Error Lens](https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens)
* Highlights lines that ESLint, TSC, or Code Spell Checker have marked as having problems
* [Git Extension Pack](https://marketplace.visualstudio.com/items?itemName=donjayamanne.git-extension-pack)
* Adds a few tools that make working with git easier
* [IntelliCode](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)
* Will make your day easier by suggesting functions and properties for autocompletion
* Will also show you documentation for those suggested functions and properties
* [TODO Highlight](https://marketplace.visualstudio.com/items?itemName=wayou.vscode-todo-highlight)
* Makes TODO comments stand out better
* [Todo Tree](https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree)
* Adds a tab to the left sidebar that lists all TODO comments in the current project
</details>
If you are using VSCode we also suggest copying `.vscode/settings.template.jsonc` to `.vscode/settings.json` to use our recommended VSCode settings.
### Compiling
Use either the simple or advanced compiler. See the `Compile the game yourself` section in the [readme](README.md) for more information. We suggest using the advanced compiler when possible.
## Code style
The coding style is based on our [`.eslintrc.json`](/.eslintrc.json) file. If your editor/IDE has ESLint support it will let you know when your coding style doesn't conform to our standards.
* Most editors/IDEs don't have native ESLint support and will need you to install an ESLint plugin/extension.
### Documentation
It's a good idea to provide meaningful documentation for new functions and classes where possible.
We follow [JSDoc's](https://jsdoc.app) type dialect for the most part with some TypeScript definitions thrown in.
We provide a [TypeScript configuration](/tsconfig.json) (for TSC support).
More complex type definitions are usually stored in our [TypeScript type definition files](https://gitgud.io/pregmodfan/fc-pregmod/-/tree/pregmod-master/devTools/types?ref_type=heads).
Don't worry too much about specific type syntax if you can't make TS work or don't understand it,
someone else will probably fix it for you as long as you've made the intent clear in some combination of Comments, JSDoc, and/or TypeScript type def.
Here are some links that are may be helpful in regards to TypeScript, jsdoc, and documentation.
* Getting started with JSDoc: https://jsdoc.app/about-getting-started.html
* JSDoc's website: https://jsdoc.app/
* The `human.d.ts` file where the bulk of our commonly used type defs are stored: https://gitgud.io/pregmodfan/fc-pregmod/-/blob/pregmod-master/devTools/types/FC/human.d.ts
### Naming conventions
* JavaScript variable and function names should be `camelCase`.
```js
// good
let fooBar;
// bad
let foobar;
let Foobar;
let FooBar;
```
* JavaScript classes and namespaces should be `PascalCase`.
```js
// good
class Foo {}
App.Foo.bar();
// bad
class foo {}
class FOO {}
App.foo.bar();
```
* TypeScript type defs should be `PascalCase`.
```ts
// good
export type Foo = "bar" | "car";
export interface Foo {
bar: boolean,
}
// bad
export type foo = "bar" | "car";
export interface FOO {
bar: boolean,
}
```
* Enum members should be `ALLCAPS`.
```js
// good
enum Foo {
BAR = 'bar',
BAZ = 'baz',
}
// bad
enum Foo {
bar = 'bar',
Baz = 'baz',
}
```
This also applies to JavaScript objects that are used as enums.
```js
// good
/** @enum {string} */
const Foo = {
BAR: 'bar',
BAZ: 'baz',
}
// bad
/** @enum {string} */
const foo = {
BAR: 'bar',
BAZ: 'baz',
}
// worse
/** @enum {string} */
const foo = {
bar: 'bar',
Baz: 'baz',
}
```
* CSS classes are `kebob-case`.
```css
/* good */
.foo-bar {}
/* bad */
.fooBar {}
.FOO-BAR {}
```
### JavaScript Features
Use modern JavaScript features when possible. We are currently targeting ECMAScript 2022, and aren't trying to support Internet Explorer or anything stupid like that (it isn't 2010 anymore). For example, use [`let`/`const` rather than `var`](https://www.freecodecamp.org/news/var-let-and-const-whats-the-difference/), prefer [`Arrow function expressions`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions) to inline long-form functions, use [`nullish coalescing`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Nullish_coalescing) and [`optional chaining`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining), etc.
### Code quality
Contributions should generally not add any new ESLint, TSC, or spelling errors. You can check for errors by running `sanityCheck.bat` (Windows)/`sanityCheck.sh` (Mac/Linux) and/or by using a code editor that supports ESLint, TSC, and cSpell.
* With the default settings running `sanityCheck.bat` (Windows) or `sanityCheck.sh` (Mac/Linux) will (mostly) show you just the errors that were caused by your changes.
* If you are not using the advanced tooling then use `legacySanityCheck.bat` or `legacySanityCheck.sh` instead.
## Project Structure
### Source files
* `src/` is the main directory for source code. It also contains the embedded art files. Since it is inside an `eval()` statement debugging and minification is more complicated than for `js/`.
* `js/` is loaded before SugarCube and therefore outside SugarCube's eval which `src/` is contained in. This means accessing SugarCube features (like `SugarCube.Engine`) is more complicated however it other than `src/` it can be minified and is easier to debug. Currently, contains mainly static data, however new code not relying on SC2 should be sorted in here too.
* `css/` contains all CSS files. The internal structure is explained [here](css/css.md).
* `themes/` contains [custom themes](themes/themes.md) which are built separately.
### Developer Files
* `devNotes/` contains various wiki files and other potentially interesting files.
* Note that many of these files have outdated info. Your best bet is to double check the actual code before utilizing the info found in these files
* `devTools/` contains various scripts and executables needed for working with the project or compiling.
* TypeScript typing files are stored here as well in the `devTools/types/` directory.
* `submodules/` contains Git submodules
* currently only a custom version of SugarCube 2
### Art files
* `artTools/`contains files for creating and updating [vector art](artTools/README.md)
* `resources/` contains various [art related files](resources/ReadmeBeforeAddingArt.md)
### External Programs
* `docker/` contains Docker files from which the docker containers for GitLabs CI are created
* `FCHost/` contains the sources for [FCHost](FCHost/README.md)
* `saveTools/` contains tools for [editing save files](saveTools/README.md)
## Further Reading
### Notes and things that it is useful to know
* I highly recommend reading https://javascript.info/comments
* Whenever you add, remove or change the type of a property that is stored when saving the game you need to create a patch for your changes. Instructions for this can be found at the top of https://gitgud.io/pregmodfan/fc-pregmod/-/blob/pregmod-master/src/data/patches/patch.js
* If you have any suggestions, changes, or additions to this document that would have been helpful to you you please create a new issue or create a merge request with your changes.
### New to JavaScript and/or web development?
Here are some links to tutorials and reference material that should help you on your journey.
* https://www.w3schools.com/Js/
* https://www.geeksforgeeks.org/javascript/
* https://www.freecodecamp.org/news/learn-javascript-for-beginners/
* https://developer.mozilla.org/en-US/docs/Web#web_technology_references
### Wiki Files
* Event Writing Guides
* [Twine<sup>1</sup>](devNotes/sceneGuide.md)
* [JavaScript](devNotes/jsEventCreationGuide.md)
* [Exception handling](devNotes/exceptions.md)
* [Sanity check<sup>2</sup>](devNotes/sanityCheck.md)
* [Slave List](devNotes/slaveListing.md)
* [Pronouns](devNotes/Pronouns.md)
* External function documentation
* [Eyes](devNotes/eyeFunctions.md)
* [Limbs](devNotes/limbFunctions.md)
* [Some potentially useful JS functions](devNotes/usefulJSFunctionDocumentation.md)
* [Content embedding chart](devNotes/contentEmbeddingChart.png) (for more details refer to [this issue](https://gitgud.io/pregmodfan/fc-pregmod/-/merge_requests/7453#note_118616))
<sup>1. Twine is being phased out of the project and should not be used in new code, but the basic concepts found here still apply.</sup>
<sup>2. Only applies to the legacy sanity checks.</sup>
### Useful issues
* [Setting up VS Code](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2448)
* [Classes in Game State](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/696)
* [Self executing functions](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2325)
* [Sort a map](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/2642)
* [How to create a Merge Request (MR)](https://gitgud.io/pregmodfan/fc-pregmod/-/issues/3903)
@ECHO off
:: Free Cities FCHost Launcher - Windows
:: run dependencyCheck.bat
CALL .\devTools\scripts\dependencyCheck.bat
SET CODE=%ERRORLEVEL%
IF %CODE% EQU 69 (
:: if exit code is 69, then we don't have all the dependencies we need
ECHO.
ECHO Dependencies not met.
ECHO.
EXIT /b 0
) ELSE IF %CODE% EQU 0 (
:: if exit code is 0, run FCHostInstallAndRun.js
CALL node devTools\scripts\FCHostInstallAndRun.js
EXIT /b 0
) ELSE (
:: if exit code is not 0, print error message
ECHO.
ECHO dependencyCheck.bat exited with code: %CODE%
ECHO Dependency check failed unexpectedly.
ECHO.
EXIT /b 0
)
#!/bin/bash
# Free Cities FCHost Launcher - Unix
# run dependencyCheck.sh
./devTools/scripts/dependencyCheck.sh
exitCode=$?
# exit code is now stored in $exitCode
# if exit code is 69, then we don't have all the dependencies we need
if [[ $exitCode -eq 69 ]]; then
echo "Dependencies not met."
echo ""
exit 0
# if exit code is not 0, print error message
elif [[ $exitCode -ne 0 ]]; then
echo "dependencyCheck.sh exited with code: $exitCode"
echo "Dependency check failed unexpectedly."
echo ""
exit 0
# if exit code is 0, run FCHostInstallAndRun.js
else
node devTools/scripts/FCHostInstallAndRun.js
fi
CMakeCache.txt
CMakeFiles/
Debug/
Release/
fchost/Release_*
Release.file
x64
*.sln
*.vcxproj
*.vcxproj.filters
*.vcxproj.user
libcef_dll_wrapper/
libs/
.vs
cmake_install.cmake
*.VC.db
GPUCache
PreCompiledFCHost.zip
Makefile
.ninja_deps
.ninja_log
build.ninja