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
  • Elvenoob/degrees-of-lewdity
  • FreeER/degrees-of-lewdity
  • CrimsonTide/degrees-of-lewdity
  • scyne/degrees-of-lewdity
  • asbjorn/degrees-of-lewdity
  • liah55/degrees-of-lewdity
  • CanolaCulture/degrees-of-lewdity
  • Spectacular/degrees-of-lewdity
  • vultureangels/degrees-of-lewdity
  • stepidbesterd/degrees-of-lewdity
  • larsrand/degrees-of-lewdity
  • Music5264/degrees-of-lewdity
  • gayskele/degrees-of-lewdity
  • Pregmodder/degrees-of-lewdity
  • GoodMan_624/degrees-of-lewdity
  • AshNoBad/degrees-of-lewdity
  • poonta/degrees-of-lewdity
  • ezsh/degrees-of-lewdity
  • Obelus/degrees-of-lewdity
  • garbageman/degrees-of-lewdity
  • Noot/degrees-of-lewdity
  • Vrelnir/degrees-of-lewdity
  • aimozg/degrees-of-lewdity
  • Blank_/degrees-of-lewdity
  • klorpa/degrees-of-lewdity
  • bcy603/degrees-of-lewdity
  • Uncanine/degrees-of-lewdity
  • lewdmodder/degrees-of-lewdity
  • setsuna/degrees-of-lewdity
  • electronemissary/degrees-of-lewdity
  • 00c356/degrees-of-lewdity
  • pettan/degrees-of-lewdity
  • soup/degrees-of-lewdity
  • nickylass/degrees-of-lewdity
  • BelshazzarII/degrees-of-lewdity
  • Mauno/degrees-of-lewdity
  • Stuffedgame/degrees-of-lewdity
  • TaiwanSmurf/degrees-of-lewdity
  • Icemourne/degrees-of-lewdity
  • Hitcihker42/degrees-of-lewdity
  • LuckyLucky/degrees-of-lewdity
  • CasaBlanc/degrees-of-lewdity
  • YetAnotherDeviant/degrees-of-lewdity
  • number361/degrees-of-lewdity
  • shikiyoku/degrees-of-lewdity
  • siowyisheng/degrees-of-lewdity
  • unlined4928/degrees-of-lewdity
  • mihairu/degrees-of-lewdity
  • araven/degrees-of-lewdity
  • Hexogen/degrees-of-lewdity
  • Klain/degrees-of-lewdity
  • Chingonerio/degrees-of-lewdity
  • lewddude/degrees-of-lewdity
  • Dinesty30/degrees-of-lewdity
  • zerou/degrees-of-lewdity
  • SumGai/degrees-of-lewdity
  • QuadChroma/degrees-of-lewdity
  • hwp/degrees-of-lewdity
  • DitFranXX/degrees-of-lewdity
  • ndarkflame/degrees-of-lewdity
  • fuguer/degrees-of-lewdity
  • bean/degrees-of-lewdity
  • xomikob988/degrees-of-lewdity
  • purity/degrees-of-lewdity
  • voa/degrees-of-lewdity
  • FeralMoon/degrees-of-lewdity
  • mw.wabbit/degrees-of-lewdity
  • sassyenzie1/degrees-of-lewdity
  • katiek/degrees-of-lewdity
  • Dolmodder328/degrees-of-lewdity
  • 2ndSnake/degrees-of-lewdity
  • AbelofAurelia/degrees-of-lewdity
  • Sommar/degrees-of-lewdity
  • bsin/degrees-of-lewdity
  • Braymann/degrees-of-lewdity
  • YUNKING/degrees-of-lewdity
  • loofaaa/degrees-of-lewdity
  • RedStar/degrees-of-lewdity
  • JohnFilitov/degrees-of-lewdity
  • Raahs/degrees-of-lewdity
  • that_coding_dumbass/degrees-of-lewdity
  • PubNut/degrees-of-lewdity
  • CLUBDOGMApa/degrees-of-lewdity
  • Xhianil/degrees-of-lewdity
  • ANotNiceMouse/degrees-of-lewdity
  • tremainekason/degrees-of-lewdity
  • coldblood512/degrees-of-lewdity
  • b.smith/degrees-of-lewdity
  • erutheae/degrees-of-lewdity
  • vv3r3vv0lf/degrees-of-lewdity
  • LordCydano/degrees-of-lewdity
  • noteleven/degrees-of-lewdity
  • theabyssatmidnight/degrees-of-lewdity
  • Redalastor13/degrees-of-lewdity
  • noeinan/degrees-of-lewdity
  • PhaseDave/degrees-of-lewdity
  • BigBlackAwoo/degrees-of-lewdity
  • oyea/degrees-of-lewdity
  • hedpets/degrees-of-lewdity
  • C0D3/degrees-of-lewdity
  • small-keyman/degrees-of-lewdity
  • GayRaccoon/degrees-of-lewdity
  • DAPdev6/degrees-of-lewdity
  • ScribblingScribe/degrees-of-lewdity
  • Ybyx/degrees-of-lewdity
  • Area/degrees-of-lewdcraft
  • im_definitely_not_a_/degrees-of-lewdity
  • jgl/degrees-of-lewdity
  • Dualium/degrees-of-lewdity
  • b12481632/degrees-of-lewdity
  • kink-kat/degrees-of-lewdity
  • Devalk/degrees-of-lewdity
  • Cord/degrees-of-lewdity
  • Beat120/degrees-of-lewdity
  • ano/degrees-of-lewdity
  • djnjsed/degrees-of-lewdity
  • TalliasVijaandUraniu/degrees-of-lewdity
  • StinkyLizard/degrees-of-lewdity
  • Kamikaza404/degrees-of-lewdity
  • ammm/more-shortcuts
  • rustynails/degrees-of-lewdity-kylar-expansion-mod
  • lifeAnime/degrees-of-lewdity
  • KrystalwithaK/degrees-of-lewdity
  • AzureSheep/degrees-of-lewdity
  • khovel/degrees-of-lewdity
  • luna/degrees-of-lewdity
  • dust36/degrees-of-lewdity
  • shun/degrees-of-lewdity
  • TonyFox/degrees-of-lewdity
  • Eilitai/dol-solar
  • dolcontributor/degrees-of-lewdity
  • stalesandwich/degrees-of-lewdity
  • HZero/degrees-of-lewdity
  • KiraaCorsac/degrees-of-lewdity
  • Ruheon/degrees-of-lewdity
  • PixelArtFirend/degrees-of-lewdity-test-mod
  • Trinidad/grados-de-lascivia
  • QuiltedQuail/degrees-of-lewdity
  • evrgentesee/degrees-of-lewdity
  • ALambert/degrees-of-lewdity-the-cat-mod
  • Green745/degrees-of-lewdity
  • saltyycoffee/dol-saltyys-mod
  • xao321/degrees-of-lewdity
  • Vogel100/degrees-of-lewdity
  • FadedLines/degrees-of-lewdity
  • deformedgodcomplex/degrees-of-lewdity
  • tracktack00/dol
  • VortluexIridum/DOL
  • ChickChuck2/degrees-of-lewdity-pt-br
  • pumpinglemma/degrees-of-lewdity
  • Host/degrees-of-lewdity
  • ChexAndBalances/degrees-of-lewdity
  • Fost3r/degrees-of-lewdity
  • Tarkin/degrees-of-lewdity
  • Juno/dol-saltyys-mod
  • TonyBologna/degrees-of-lewdity-foster
  • Stadler76/degrees-of-lewdity
  • Akoz/degrees-of-lewdity
  • treeib7/degrees-of-lewdity
  • dechet/degrees-of-lewdity
  • TheDivineHeir/degrees-of-lewdity
  • Enty/degrees-of-lewdity
  • 24khp/degrees-of-lewdity
  • slenderostrich/degrees-of-lewdity
  • Kirsty/degrees-of-lewdity
  • Anony5261/degrees-of-lewdity
  • veritas1A4/degrees-of-lewdity-plus
  • HeepSelk/degrees-of-lewdity
  • ThomazLIRA27/degrees-of-lewdity
  • striderxfossility/degrees-of-lewdity
  • piotrejo/degrees-of-lewdity
  • Idekk/degrees-of-lewdity
  • branthepeach/degrees-of-lewdity
  • thermal/degrees-of-lewdity
  • cutiland/degrees-of-lewdity
  • anony5264/degrees-of-lewdity
  • Warui430/degrees-of-lewdity-testing
  • Skullky/degrees-of-lewdity
  • netolilium/degrees-of-lewdity
  • TheLoneWolf3626/degrees-of-lewdity
  • majou/degrees-of-lewdity
  • joemamba/degrees-of-lewdity
  • Airbourne/degrees-of-lewd-remerged
  • FritzTheGlitch/degrees-of-lewdity
  • Orangeblur/degrees-of-lewdity
  • Bandrose1/degrees-of-lewdity
  • DoLSteph/degrees-of-lewdity
  • Newtnewt/degrees-of-lewdity
  • KinkyOne/degrees-of-lewdity
  • edward6/degrees-of-lewdity
  • Mira1/degrees-of-lewdity
  • TFS/degrees-of-lewdity
  • oxone/degrees-of-lewdity
  • golsil/degrees-of-lewdity
  • zR3V3NANTz/degrees-of-lewdity-dragon-mod
  • PepKitty/degrees-of-lewdity
  • preeded/degrees-of-lewdity
  • Beepbeep1/degrees-of-lewdity
  • LilTransDino/degrees-of-lewdity-project-1
  • warawanaineko/degrees-of-lewdity
  • salagadoola/degrees-of-lewdity
  • RatRat/transmod-plus
  • kodicraft/degrees-of-lewdity
  • wowdoge/dol-saltyys-mod
  • handleing1/degrees-of-lewdity
  • mrcomfy/degrees-of-lewdity-mall-proposal
  • CK_Rainbow/degrees-of-lewdity
  • KnotLikeThis/degrees-of-lewdity
  • popa/degrees-of-lewdity
  • Ryumi/degrees-of-lewdity
  • GayKitten/degrees-of-lewdity
  • EndlessGame/degrees-of-lewdity
  • bijikejepit/degrees-of-lewdity-modified
  • lafrlo/degrees-of-lewdity
  • auxhonater/degrees-of-lewdity
  • ParticleG/degrees-of-lewdity
  • astrox1/degrees-of-lewdity
  • AnonymousPancakes/degrees-of-lewdity-contribution-fork
  • y4vr/degrees-of-lewdity-ravishment
  • apflu/degrees-of-lewdity-dollification-mod
  • nemuzawa200101/degrees-of-lewdity
  • MagicalAstrogy/degrees-of-lewdity
  • Khaos423/degrees-of-lewdity
  • stranger/degrees-of-lewdity
  • eesoymilk/degrees-of-lewdity
  • Frostberg/degrees-of-lewdity-plus
  • ToumanLin/degrees-of-lewdity-toumanlin
  • Murkey/degrees-of-lewdity
  • MasterCast04/degrees-of-lewdity-chimera-tail-mod
  • Tanny78/tannymod
  • Gwen1/degrees-of-lewdity-scent
  • Ducati/degrees-of-lewdity-plus
  • lune/degrees-of-lewdity
  • snowywar/degrees-of-lewdity
  • TsundereBandit/degrees-of-lewdity-plus
  • Siede/degrees-of-lewdity
  • fire2244/degrees-of-lewdity
  • decarabia/degrees-of-lewdity
  • JinoWills/degrees-of-lewdity
  • creeping1023/degrees-of-lewdity
  • ShinH/degrees-of-lewdity
  • WHALER/degrees-of-lewdity
  • WHALERSWHALER/degrees-of-lewdity-whalers-mod
  • googlyman/degrees-of-lewdity
  • Dakser/degrees-of-lewdity-plus
  • mikatakamo/dolp-randomfix-randomcontribution
  • handle5/degrees-of-lewdity
  • SpaciousStarship/degrees-of-lewdity-plus-starship-fork
  • GeneralFire/degrees-of-lewdity
  • BrokenSoul/degrees-of-lewdity
  • Twig/degrees-of-lewdity
  • noneedforthis/slight-combat-rework
  • AiHoshino/degrees-of-lewdity-vn-mod
  • baileys/degrees-of-lewdity
  • Ddkdkk/degrees-of-lewdity-plus
  • miyakoAki4828/degrees-of-lewdity
  • ojicon/degrees-of-lewdity-indonesian-translation
  • PuppeterMaster25/degrees-of-lewdity
  • Chieferton/degrees-of-lewdity-plus
  • UnbarredStream/degrees-of-lewdity-dragon-mod
  • LupusXLass1404/degrees-of-lewdity
  • MisoSquared/degrees-of-lewdity
  • IndexIsDumb/degrees-of-lewdity
  • nekoboinick/degrees-of-lewdity
  • Testry/degrees-of-lewdity
  • Cuhloe69/degrees-of-lewdity-plus
  • omvjro/degrees-of-lewdity
  • Testry/degrees-of-lewdity-plus
  • Avos/degrees-of-lewdity
  • Averall/degrees-of-lewdity-plus
  • Sh1na/degrees-of-lewdity-plus
  • fizzyboi/degrees-of-lewdity
  • Sh1na/degrees-of-lewdity
  • Prnjujujaj/degrees-of-lewdity-plus
  • Nikonov/degrees-of-lewdity-plus
  • AnonymousPossum/degrees-of-lewdity-ap-temple
  • Sabot/degrees-of-lewdity-mecha-mod
  • Shadi1089/degrees-of-lewdity-plus
  • sbdto/degrees-of-lewdity
  • theothersteve7/degrees-of-lewdity
  • melllow/degrees-of-lewdity-mellows-files
  • WinterPeach/degrees-of-lewdity-bunny-plus
  • boolin/degrees-of-lewdity-dragon-mod
  • Izeija/degrees-of-lewdity-plus-Herm-NPCs
  • test126/degrees-of-lewdity-plus
  • WolfSeige/degrees-of-lewdity
  • Frostberg/transmod-plus
  • erdd/test-degrees-of-lewdity
  • ekdms4467/degrees-of-lewdity-plus
  • MrAdvisor/degrees-of-lewdity-mellows-files
  • bugmenot97/degrees-of-lewdity-plus-ryona-edition
  • numbersir/degrees-of-lewdity
  • Paragon/degrees-of-lewdity
  • eude/degrees-of-lewdity
  • liggems/degrees-of-lewdity
  • hoihoi/degrees-of-lewdity
  • WreckieRed/degrees-of-lewdity-plus-wreckie-red
  • BlueMuffin/degrees-of-lewdity
  • edwardspec/degrees-of-lewdity
  • Neng222/degrees-of-lewdity
  • SeiraHawawa/degrees-of-lewdity
  • trashee/degrees-of-lewdity
  • Dukesnwowisb/degrees-of-lewdity-plus
  • sugarcoma/degrees-of-lewdity
  • squ1dteeth/degrees-of-lewdity
  • shojoprotagonist/degrees-of-lewdity
  • Annon173/degrees-of-lewdity-annon173
  • Brrr/degrees-of-lewdity
  • goose/dol-goosemod
  • mizzzz/degrees-of-lewdity-mizz
  • Uchiki/degrees-of-lewdity
  • Leet0/degrees-of-lewdity
  • Someone1/degrees-of-lewdity
  • Ntimpaa88/wholesome-and-whoresome-addons
  • antnoodle/degrees-of-lewdity-plus
  • Isari/degrees-of-lewdity-plus
  • variegations/degrees-of-lewdity
  • nsqueet/degrees-of-lewdity
  • DevilD0L/degrees-of-lewdity
  • HypeS84/graus-de-lascivia
  • Dwarfblood/degrees-of-lewdity-plus
  • LurkerNo255/degrees-of-lewdity-nobody-safe
  • Sl/degrees-of-lewdity-mikili
  • arugula/transmod-fork
  • handlebeater/degrees-of-lewdity-plus
  • pizzaghg/degrees-of-lewdity-plus
  • RepoRogue6960/degrees-of-lewdity
  • CharaEmbry/degrees-of-lewdity-plus
  • nanabanashi/degrees-of-lewdity-plus
  • kagurazakanyaa/degrees-of-lewdity-plus
  • Songdog/degrees-of-lewdity
  • Nicole09/degrees-of-lewdity-plus
332 results
Show changes
Commits on Source (5290)
# Support CSS for browsers' versions released since 2015. It should cover old mobile devices with outdated WebView
# To see supported browsers run `npx browserslist`
defaults and supports es6-module
not Safari >= 0
not ios_saf >= 0
# EditorConfig is awesome: https://EditorConfig.org
# top-most EditorConfig file
root = true
[*]
indent_style = tab
indent_size = 4
insert_final_newline = true
end_of_line = lf
module.exports = {
root: true,
// Keep variables sorted within groups (separated by "// ..." comment lines)
globals: {
// SugarCube APIs
Browser: "readonly",
Config: "readonly",
DebugView: "readonly",
Dialog: "readonly",
Engine: "readonly",
Fullscreen: "readonly",
L10n: "readonly",
l10nStrings: "readonly",
LoadScreen: "readonly",
Macro: "readonly",
Save: "readonly",
Scripting: "readonly",
Setting: "readonly",
setup: "readonly",
State: "readonly",
Story: "readonly",
SugarCube: "readonly",
Template: "readonly",
UI: "readonly",
UIBar: "readonly",
PRNGWrapper: "readonly",
idb: "readonly",
wikifier: "readonly",
// SugarCube functions
clone: "readonly",
either: "readonly",
forget: "readonly",
hasVisited: "readonly",
importScripts: "readonly",
importStyles: "readonly",
lastVisited: "readonly",
memorize: "readonly",
passage: "readonly",
previous: "readonly",
random: "readonly",
randomFloat: "readonly",
recall: "readonly",
setPageElement: "readonly",
tags: "readonly",
temporary: "readonly",
time: "readonly",
turns: "readonly",
variables: "readonly",
visited: "readonly",
visitedTags: "readonly",
throwError: "writeable",
// DoL shortcuts
C: "readonly",
DeserializeGame: "readonly",
globals: "readonly",
T: "readonly",
V: "readonly",
statChange: "readonly",
// DoL main namespaces
DOL: "readonly",
defineGlobalNamespaces: "readonly",
Errors: "readonly",
Versions: "readonly",
Perflog: "readonly",
Stack: "readonly",
Wikifier: "readonly",
// DoL other namespaces/objects
Constants: "readonly",
ConstantsLoader: "readonly",
Cooker: "readonly",
currentlyLoadingMap: "readonly",
ColourUtils: "readonly",
DateTime: "readonly",
DolSettingsExport: "readonly",
Dynamic: "readonly",
EventSystem: "readonly",
JsonCompressor: "readonly",
JsonDecompressor: "readonly",
IronMan: "readonly",
Links: "readonly",
playerDoll: "readonly",
statDisplay: "readonly",
Renderer: "readonly",
SexTypes: "readonly",
StartConfig: "readonly",
Time: "readonly",
TimeConstants: "readonly",
Utils: "readonly",
ZIndices: "readonly",
Packer: "readonly",
Weather: "readonly",
BaseCanvas: "readonly",
Orbital: "readonly",
Fadable: "readonly",
Skin: "readonly",
Sunscreen: "readonly",
// DoL SC2 functions
compressionVerifier: "readonly",
DefineMacro: "readonly",
DefineMacroS: "readonly",
DoLCompressorDictionaries: "readonly",
DoLSave: "readonly",
// DoL functions
tendingDay: "readonly",
ampm: "readonly",
assignDefaults: "readonly",
calculatePenisBulge: "readonly",
canBeMPregnant: "readonly",
closeOverlay: "readonly",
clothesDataTrimmer: "readonly",
clothesIndex: "readonly",
clothingData: "readonly",
combatListColor: "readonly",
currentSkillValue: "readonly",
eCheckbox: "readonly",
earnHourlyFeats: "readonly",
eInput: "readonly",
elechild: "readonly",
elechildren: "readonly",
element: "readonly",
endPlayerPregnancy: "readonly",
ensure: "readonly",
ensureIsArray: "readonly",
eSelect: "readonly",
getTimeString: "readonly",
generateBabyName: "readonly",
getBirdBurnTime: "readonly",
getCustomClothesColourCanvasFilter: "readonly",
getCustomColourRGB: "readonly",
getCustomColourStyle: "readonly",
getKylarLibraryState: "readonly",
getPregnancyObject: "readonly",
getRandomIntInclusive: "readonly",
getRobinLocation: "readonly",
getSexesFromRandomGroup: "readonly",
getSydneyLoveNorm: "readonly",
getTrueWarmth: "readonly",
getVisibleClothesList: "readonly",
hairLengthStringToNumber: "readonly",
inDOM: "readonly",
integrityKeyword: "readonly",
ironmanAutoSave: "readonly",
isBloodmoon: "readonly",
isKylarInPlayRole: "readonly",
isKylarRehearsing: "readonly",
isPlayerNonparasitePregnancyEnding: "readonly",
knowsAboutAnyPregnancy: "readonly",
listUniqueCarriedSextoys: "readonly",
loadCustomColourPreset: "readonly",
maleChance: "readonly",
masturbationActions: "readonly",
masturbationAudience: "readonly",
masturbationEffects: "readonly",
masturbationSlimeControl: "readonly",
maxParasites: "readonly",
npcCompressor: "readonly",
npcDecompressor: "readonly",
npcEquipSet: "readonly",
npcMakeNaked: "readonly",
npcPregnancyCycle: "readonly",
npcPregObject: "readonly",
numberOfEarSlime: "readonly",
ordinalSuffixOf: "readonly",
overlayShowHide: "readonly",
painToTearsLvl: "readonly",
parasiteProgressDay: "readonly",
parasiteProgressTime: "readonly",
parentFunction: "readonly",
parseCSSFilter: "readonly",
pickRandomItemInArray: "readonly",
playerAwareTheyArePregnant: "readonly",
playerBellySize: "readonly",
playerBellyVisible: "readonly",
playerChastity: "readonly",
playerEndWaterProgress: "readonly",
playerHasButtPlug: "readonly",
playerHasStrapon: "readonly",
playerHeatMinArousal: "readonly",
playerIsPregnant: "readonly",
playerNormalPregnancyTotal: "readonly",
playerPregnancyProgress: "readonly",
playerRutMinArousal: "readonly",
pregnancyGenerator: "readonly",
pregnancyProgress: "readonly",
pregPrep: "readonly",
randomPregnancyProgress: "readonly",
registerGeneratedPattern: "readonly",
registerImagePattern: "readonly",
returnTimeFormat: "readonly",
rgbToHsv: "readonly",
rollKylarLibraryStalkFlag: "readonly",
selfOr: "readonly",
setKnowsAboutPregnancy: "readonly",
setLowerVisibility: "readonly",
settingsConvert: "readonly",
settingsObjects: "readonly",
shopClothCustomColorWheel: "readonly",
sliderPerc: "readonly",
statusCheck: "readonly",
tanned: "readonly",
updateCustomColour: "readonly",
updateExportDay: "readonly",
updateMannequin: "readonly",
updateSavesCount: "readonly",
validateValue: "readonly",
waterproofCheck: "readonly",
initializeTooltips: "readonly",
// DoL math functions
round: "readonly",
normalise: "readonly",
categorise: "readonly",
randomExp: "readonly",
expCurve: "readonly",
between: "readonly",
nCr: "readonly",
formatDecimals: "readonly",
inverseLerp: "readonly",
lerp: "readonly",
interpolate: "readonly",
interpolateObject: "readonly",
boundedRandom: "readonly",
calculateBinomial: "readonly",
weightedRandom: "readonly",
// DoL object functions
formatList: "readonly",
stringFrom: "readonly",
toTitleCase: "readonly",
resolveValue: "readonly",
// DoL classes
ObservableValue: "readonly",
CanvasModel: "readonly",
PRNG: "readonly",
// Third-party
define: "readonly",
iro: "readonly",
LZString: "readonly",
md5: "readonly",
tinycolor: "readonly",
Mousetrap: "readonly",
// Unknown (Can't find declaration either in SugarCube docs nor in codebase)
config: "readonly",
saveAs: "readonly",
schemaVersion: "readonly",
session: "readonly",
Util: "readonly",
version: "readonly",
getClothingCost: "readonly",
isLoveInterest: "readonly",
nullable: "readonly",
combat: "readonly",
wearingCondom: "readonly",
npcHasStrapon: "readonly",
},
ignorePatterns: [
"**/*.*",
"!**/*.js",
"!**/*.cjs",
// Format config file
"!.eslintrc.cjs",
"node_modules",
"devTools",
"dist",
"game/03-JavaScript/external",
"game/03-JavaScript/00-libs/renderer.js",
],
parserOptions: {
// Support back to ES2020 to cover old mobile devices with outdated WebView versions that fail on 2020 and up functions
sourceType: "module",
},
env: {
browser: true,
es2021: true,
jquery: true,
},
plugins: ["es-x"],
extends: ["eslint:recommended", "plugin:jsdoc/recommended", "prettier-standard/prettier-file", "plugin:es-x/restrict-to-es2021"],
settings: {
jsdoc: {
mode: "jsdoc",
},
},
// Keep rules grouped by plugin and sorted alphabetically
rules: {
"object-shorthand": ["error", "always"],
// SugarCube extends native objects and we follow it
"no-extend-native": "off",
/* hasOwn */
// No need for this, since we're overriding hasOwn for older browers (01-compatibility.js)
// Warn for the hasOwnProperty instead
"es-x/no-object-hasown": "off",
"prefer-object-has-own": "warn",
/* eslint-plugin-jsdoc */
// Descriptions should be sentence-like not comment-like
"jsdoc/require-description-complete-sentence": "off",
"jsdoc/require-hyphen-before-param-description": ["error", "never", { tags: { property: "never" } }],
// Adding JSDoc is preferable but not required
"jsdoc/require-jsdoc": "off",
"jsdoc/require-param-description": "off",
"jsdoc/require-property-description": "off",
"jsdoc/require-returns-description": "off",
"jsdoc/require-returns": "off",
"jsdoc/no-undefined-types": [
1,
{
definedTypes: [
"EventNpc",
"ClothesItem",
"Penetrator",
"TentacleState",
"CompositeLayerParams",
"CompositeLayerSpec",
"CanvasModelOptions",
"CanvasModelLayer",
"AnimatingCanvas",
"Options",
"Npc",
"NpcOptions",
],
},
],
/* eslint-plugin-prettier */
"prettier/prettier": "warn",
},
};
# Ensure that the android contents are checked out as lf
devTools/androidsdk/image text eol=lf
devTools/androidsdk/image text eol=lf
# enforce proper line endings on commit
*.sh text eol=lf
*.js text eol=lf
*.cjs text eol=lf
*.ts text eol=lf
*.css text eol=lf
*.twee text eol=lf
*.py text eol=lf
*.txt text eol=lf
*.bat text eol=lf
# IDE, temp, generated, and other local-only files
.*
*~
*.iml
node_modules/
tweego*
# A gitignore file specifies intentionally untracked files that Git
# should ignore. Files already tracked by Git are not affected!!
## The `git add` command can be used to add ignored files with the
## -f (force) option.
## Consult `git help gitignore` and `git help add` for more info.
# Keys to sign the generated .apks. You don't want them leaked.
/keys/*
# Generated apks themselves.
/dist/*
# Compiled game htmls.
Degrees of Lewdity*.html
# Archives
*.7z
*.zip
Zimg/
gitw
*.rar
*.tar
*.gz
*.xz
# Node directories and dependencies
node_modules/
# Operating System files
Desktop.ini
Thumbs.db
# Hidden, temporary, and logging files
.*
*~
*.tmp
*.log
# Miscellaneous formats
*.iml
# Ignoring working folder for Quin2k
mod/
*.code-workspace
release/
# Error logs
yarn-error.log
# Keys
/keys/*
!/keys/README.md
# Save files
*.save
# Dist
/dist/*
# We use a placeholder to ensure the host system creates the folder
# (may run into permissions issues if you allow docker to create it)
!/dist/.placeholder
/debug.log
# Gitlab configuration
!.gitlab
\ No newline at end of file
## Expected behaviour
`What you believe the game should do`
## Actual behaviour
`What the game actually did`
`Optionally post errors and other resources here to supplement the issue`
## To reproduce the issue
`Clear steps to reproduce the issue with`
`Optionally an exported save file`
## Version
`Replace with the current version`
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install lint-staged
package.json
package-lock.json
devTools
{
"printWidth": 160,
"useTabs": true,
"semi": true,
"endOfLine": "lf",
"arrowParens": "avoid",
"trailingComma": "es5",
"proseWrap": "preserve"
}
{
"recommendations": [
"cyrusfirheir.twee3-language-tools",
"dbaeumer.vscode-eslint",
"eamodio.gitlens",
"editorconfig.editorconfig",
"stylelint.vscode-stylelint",
"streetsidesoftware.code-spell-checker"
]
}
This diff is collapsed.
File suppressed by a .gitattributes entry or the file's encoding is unsupported.
//Variables that are missing, not expected or invalid will be ignored
//"starting" values will only import when on the start screen
DolSettingsExport = {
"starting":{
"player":{
"gender":"m",
"gender_body":"f",
"ballsExist":true,
"freckles":false
},
"skinColor":{
"natural":"light",
"range":0
},
"bodysize":2,
"penissize":0,
"breastsize":0,
"bottomsize":0,
"breastsensitivity":3,
"genitalsensitivity":3,
"eyeselect":"purple",
"hairselect":"red",
"hairlength":200,
"awareselect":"innocent",
"background":"waif",
"gamemode":"normal"
},
"general":{
"malechance":50,
"dgchance":0,
"cbchance":0,
"malevictimchance":50,
"homochance":4,
"breast_mod":0,
"penis_mod":0,
"whitechance":90,
"blackchance":10,
"alluremod":1,
"clothesPrice": 1,
"clothesPriceUnderwear": 1,
"clothesPriceSchool": 1,
"clothesPriceLewd": 1,
"rentmod": 1,
"beastmalechance":50,
"monsterchance":20,
"monsterhallucinations":true,
"blackwolfmonster": 0,
"bestialitydisable":false,
"swarmdisable":false,
"slimedisable":false,
"voredisable":false,
"tentacledisable":false,
"analdisable":false,
"transformdisable":false,
"hirsutedisable":true,
"breastfeedingdisable":false,
"analpregdisable":false,
"watersportsdisable":false,
"spiderdisable":false,
"bodywritingdisable":false,
"breastsizemin":0,
"breastsizemax":12,
"bottomsizemax":8,
"penissizemax":4,
"penissizemin":-2,
"images":1,
"sidebarAnimations": true,
"combatAnimations": true,
"bodywritingImages": true,
"silhouettedisable":false,
"numberify_enabled":1,
"timestyle":"military",
"tipdisable":false,
"debugdisable":true,
"cheatdisabletoggle":true,
"showCaptionText":true,
"confirmSave":false,
"confirmLoad":false,
"confirmDelete":false,
"imgLighten":"",
"sidebarStats":"Disabled",
"sidebarTime":"Disabled",
"combatControls":"radio",
"reducedLineHeight":false,
"neverNudeMenus":false,
"skipStatisticsConfirmation":false,
"map":{
"movement":true,
"top":false,
"markers":false
},
"skinColor":{
"tanImgEnabled": true,
"tanningEnabled": true,
},
"shopDefaults": {
"alwaysBackToShopButton":false,
"color":"black",
"secColor":"black",
"colourItems":"random",
"compactMode":false,
"disableReturn":false,
"highContrast":false,
"mannequinGender":"same",
"mannequinGenderFromClothes":false,
"noHelp":false,
"noTraits":false,
},
},
"npc":{
"Avery":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Bailey":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Briar":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Charlie":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Darryl":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Doren":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Eden":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Gwylan":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Harper":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Jordan":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Kylar":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Landry":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Leighton":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Mason":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Morgan":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":5},
"River":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Robin":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Sam":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Sirris":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Whitney":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Winter":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Black Wolf":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Niki":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Quinn":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Remy":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Alex":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Great Hawk":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Wren":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
"Sydney":{"pronoun":"none","gender":"none", "penissize":0, "breastsize":0},
}
}
{
"starting": {
"player": {
"gender": "m",
"gender_body": "f",
"ballsExist": true,
"freckles": false,
"skin": {
"color": "light"
}
},
"bodysize": 2,
"penissize": 0,
"breastsize": 0,
"bottomsize": 0,
"breastsensitivity": 3,
"genitalsensitivity": 3,
"eyeselect": "purple",
"hairselect": "red",
"hairlength": 200,
"awareselect": "innocent",
"background": "waif",
"gamemode": "normal"
},
"general": {
"malechance": 50,
"maleChanceSplit": false,
"maleChanceMale": 50,
"maleChanceFemale": 50,
"dgchance": 0,
"cbchance": 0,
"malevictimchance": 50,
"npcVirginityChance": 50,
"npcVirginityChanceAdult": 10,
"breast_mod": 0,
"penis_mod": 0,
"blackchance": 10,
"alluremod": 1,
"clothesPrice": 1,
"clothesPriceUnderwear": 1,
"clothesPriceSchool": 1,
"clothesPriceLewd": 1,
"rentmod": 1,
"beastmalechance": 50,
"beastMaleChanceSplit": false,
"beastMaleChanceMale": 50,
"beastMaleChanceFemale": 50,
"monsterchance": 20,
"monsterhallucinations": true,
"blackwolfmonster": 0,
"greathawkmonster": 0,
"bestialitydisable": false,
"swarmdisable": false,
"slimedisable": false,
"voredisable": false,
"tentacledisable": false,
"plantdisable": false,
"analdisable": false,
"analdoubledisable": false,
"vaginaldoubledisable": false,
"transformdisable": false,
"hirsutedisable": true,
"pbdisable": true,
"breastfeedingdisable": false,
"parasitepregdisable": false,
"watersportsdisable": false,
"spiderdisable": false,
"bodywritingLvl": 3,
"toydildodisable": false,
"toywhipdisable": false,
"breastsizemin": 0,
"breastsizemax": 12,
"bottomsizemin": 0,
"bottomsizemax": 8,
"penissizemax": 4,
"penissizemin": -2,
"statdisable": false,
"cheatdisabletoggle": true,
"confirmSave": false,
"confirmLoad": false,
"confirmDelete": false,
"reducedLineHeight": false,
"multipleWardrobes": "isolated",
"outfitEditorPerPage": 10,
"options": {
"debugdisable": true,
"neverNudeMenus": false,
"showCaptionText": true,
"clothingCaption": true,
"sidebarStats": "disabled",
"sidebarTime": "disabled",
"combatControls": "radio",
"mapMovement": true,
"mapTop": false,
"mapMarkers": false,
"images": 1,
"combatImages": 1,
"bodywritingImages": true,
"silhouetteEnabled": true,
"tanImgEnabled": true,
"sidebarAnimations": true,
"blinkingEnabled": true,
"combatAnimations": true,
"halfClosedEnabled": false,
"characterLightEnabled": true,
"lightSpotlight": 0.2,
"lightGradient": 0.1,
"lightGlow": 0.1,
"lightFlat": 0,
"lightCombat": 0.2,
"lightTFColor": 0.2,
"maxStates": 1,
"newWardrobeStyle": true,
"useNarrowMarket": false,
"skipStatisticsConfirmation": false,
"numberify_enabled": 1,
"timestyle": "military",
"tipdisable": false,
"pepperSprayDisplay": "sprays",
"condomsDisplay": "standard",
"traitOverlayFormat": "table",
"font": "",
"passageFontSize": 0,
"sidebarFontSize": 0,
"overlayFontSize": 0,
"passageLineHeight": 0,
"sidebarLineHeight": 0,
"overlayLineHeight": 0
},
"shopDefaults": {
"alwaysBackToShopButton": false,
"color": "black",
"secColor": "black",
"colourItems": "random",
"compactMode": false,
"disableReturn": false,
"highContrast": false,
"mannequinGender": "same",
"mannequinGenderFromClothes": false,
"noHelp": false,
"noTraits": false
}
},
"npc": {
"Avery": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Bailey": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Briar": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Charlie": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Darryl": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Doren": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Eden": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Gwylan": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Harper": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Jordan": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Kylar": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Landry": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Leighton": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Mason": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Morgan": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 5 },
"River": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Robin": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Sam": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Sirris": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Whitney": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Winter": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Black Wolf": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Niki": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Quinn": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Remy": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Alex": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Great Hawk": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Wren": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Sydney": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 },
"Ivory Wraith": { "pronoun": "none", "gender": "none", "penissize": 0, "breastsize": 0 }
}
}
......@@ -5,7 +5,7 @@ By exercising the Licensed Rights (defined below), You accept and agree to be bo
Section 1 – Definitions.
Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
......@@ -30,7 +30,7 @@ Section 2 – Scope.
Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
Downstream recipients.
Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapters License You apply.
Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter's License You apply.
No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
......@@ -59,7 +59,7 @@ Your exercise of the Licensed Rights is expressly made subject to the following
ShareAlike.
In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
The Adapters License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-NC-SA Compatible License.
The Adapter's License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-NC-SA Compatible License.
You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
......
# Degrees of Lewdity
## How to build
## Lexicon of Lewdity
### Optional Prerequisites
Looking to contribute to Degrees of Lewdity? Read the [Lexicon of Lewdity](https://gitgud.io/Vrelnir/degrees-of-lewdity/-/wikis/home).
1. Install [Tweego](http://www.motoslave.net/tweego/) and remember the path where it was installed.
2. Add path to `tweego.exe` (e.g. `C:\Program Files\Twine\tweego-2.1.0-windows-x64`) to Windows `Path` environment variable.
_Failure to do so can lead to your work being denied._
## How to build
### Changing the build version and type
1. Open `01-config\sugarcubeConfig.js`.
2. Edit the `window.StartConfig` object to the relevant config type.
* Normal Build - `enableImages` needs to be `true` and `enableLinkNumberify` needs to be `true`.
* Text Only Build - `enableImages` needs to be `false` and `enableLinkNumberify` needs to be `true`.
* Android Build - `enableImages` needs to be `true` and `enableLinkNumberify` needs to be `false`.
- Normal Build - `enableImages` needs to be `true` and `enableLinkNumberify` needs to be `true`.
- Text Only Build - `enableImages` needs to be `false` and `enableLinkNumberify` needs to be `true`.
- Android Build - `enableImages` needs to be `true` and `enableLinkNumberify` needs to be `false`.
3. `version` is optional between release versions but will be displayed on screen in several places and stored in the saves made.
4. `debug` is optional and will only effect new games.
### Compiling the html
1. Run `compile.bat` or `compile-watch.bat`.
2. Open `Degrees of Lewdity VERSION.html`.
1. On Windows: Run `compile.bat` or `compile-watch.bat`.
2. On Linux: Run `compile.sh`
3. Open `Degrees of Lewdity VERSION.html`.
### Build Android version (.apk)
?
See [README in devTools/apkbuilder](devTools/apkbuilder/README-windows.txt)
## Development
### Prerequisites
- Read [Coder's-Guide](https://gitgud.io/Vrelnir/degrees-of-lewdity/-/wikis/Programming/Coder's-Guide)
- [Node.js 16 or later](https://nodejs.org/en/).
### Optional Prerequisites
1. Install [Tweego](http://www.motoslave.net/tweego/) and remember the path where it was installed.
2. Add path to `tweego.exe` (e.g. `C:\Program Files\Twine\tweego-2.1.0-windows-x64`) to Windows `Path` environment variable.
### Initial setup
1. Install project dependencies:
```bash
npm i
```
2. If you use Visual Studio Code:
1. Install [Twee 3 Language Tools extension](https://marketplace.visualstudio.com/items?itemName=cyrusfirheir.twee3-language-tools)
2. Install [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint).
3. Install [Stylelint extension](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint)
4. Install and configure [Code Spell Checker extension](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker):
1. Use "English - United Kingdom" and "English - United States" dictionaries
2. Enable spellchecking for`twee3-sugarcube-2`, `markdown`, `javascript` and other programming languages
5. Optionally enable fixing js/css on save. In `settings.json` set:
```json
// This disables built-in formatting
"[javascript]": {
"editor.formatOnSave": false
},
"[css]": {
"editor.formatOnSave": false
},
// This enables running ESLint, Prettier, Stylelint formatting on file save
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},
```
### Linting
#### JavaScript
JavaScript code linting is handled by [`ESLint`](https://eslint.org/).
ESLint is [configured](./.eslintrc.cjs) to follow some of best practices ([ESLint Recommended Rules](https://eslint.org/docs/latest/rules/), [JavaScript Standard Style](https://standardjs.com/rules.html)) with formatting handled by Prettier (`eslint --fix` formats code with Prettier). You don't need to use `Prettier` VS Code extension to format `.js` files.
To run ESLint for single file:
```bash
npx eslint "game/03-JavaScript/02-Helpers/Utils.js"
```
or for all files inside `game` directory:
```bash
npx eslint "game/**"
```
##### Resolving issues
Some issues are fixable and can be auto-fixed when you save a file (provided ESLint extension is configured to run fix on save) or by running `eslint --fix file_relative_path`
If you find a rule that doesn't make sense for the project you can disable it inside `rules` section inside `.eslintrc.cjs`:
```json
rules: {
...
// SugarCube extends native objects and we follow it
"no-extend-native": "off",
...
}
```
Please discuss the reasons with the team before disabling the rule. Add a comment explaining why the rule was disabled
If ESLint reports a lot of issues for particular file and you cannot fix them all at once feel free to [disable particular rule](https://eslint.org/docs/latest/user-guide/configuring/rules#disabling-rules) for the file (there is quick actions menu when code with error is hovered):
```js
/* eslint-disable camelcase -- TODO: Fix variables' names */
...
let demo_rainbow_colors = [
...
```
Add a TODO comment explaining that this will be fixed someday
##### Global variables
ESLint may report a issue like `'myVariable' is not defined`. It means ESLint cannot figure out where the variable is defined. If you really meant to make variable global add the new variable to `.eslintrc.cjs` `globals` section inside corresponding group:
```json
myVariable: "readonly"
```
If the variable is suppose to be writable set `myVariable: "writable"` instead.
### CSS
CSS linting is handled by [`Stylelint`](https://stylelint.io/).
Stylelint is [configured](./stylelint.config.cjs) to follow [common conventions](https://github.com/stylelint/stylelint-config-standard) along with [rules for properties order](https://github.com/cahamilton/stylelint-config-property-sort-order-smacss) and formatting handled by Prettier (`stylelint --fix` formats code with Prettier). You don't need to use `Prettier` VS Code extension to format `.css` files.
To run Stylelint for the file:
```bash
npx stylelint "game/02-CSS/pillsInventory.css"
```
or for all CSS file inside `game` directory:
```bash
npx stylelint "game/**/*.css"
```
#### Resolving issues
Some issues are fixable and can be auto-fixed when you save a file (provided Stylelint extension is configured to run fix on save) or by running `stylelint --fix file_relative_path`.
Sometimes all issues cannot be fixed within single "fix" run (e.g. properties order). Simply run fix command several time until all auto-fixable issues are resolved.
If you find a rule that doesn't make sense for the project you can disable it inside `rules` section inside `stylelint.config.cjs`:
```js
rules: {
// Class and ID patterns disabled for now due to the large amounts of classes and IDs that break this rule
"selector-class-pattern": null,
"selector-id-pattern": null,
...
}
```
Please discuss the reasons with the team before disabling the rule. Add a comment explaining why the rule was disabled
### Formatting
Formatting CSS and other non-JavaScript file is handled by `Prettier`. Formatting rules are set in `.prettierrc.json`
### Pre-commit hook
On pre-commit [`lint-staged`](https://github.com/okonet/lint-staged) using [`husky`](https://typicode.github.io/husky) lints/formats `.js`, `.css` with ESLint, Stylelint and formats other supported files with Prettier.
Pre-commit hook is the last quality gate to avoid "bad" code getting into the repository. It's better to make sure you aren't committing files with issues beforehand - you can run command `npm run lint-staged` when you've staged the files to check if there are issues.
If for some reason you really want to commit the code that fails linting add `--no-verify` parameter to `commit` call
```bash
commit --no-verify
```
@echo off
:: Set working directory
pushd %~dp0
@set TWEEGO_PATH="%~dp0devTools\tweego\StoryFormats"
:: Run the appropriate compiler for the user's CPU architecture.
if %PROCESSOR_ARCHITECTURE% == AMD64 (
CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
) else (
CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
)
......@@ -6,7 +6,7 @@ pushd %~dp0
:: Run the appropriate compiler for the user's CPU architecture.
if %PROCESSOR_ARCHITECTURE% == AMD64 (
CALL "%~dp0devTools\tweego\tweego_win64.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
CALL "%~dp0devTools\tweego\tweego_win64.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
) else (
CALL "%~dp0devTools\tweego\tweego_win86.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
CALL "%~dp0devTools\tweego\tweego_win86.exe" -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
)
\ No newline at end of file
......@@ -48,6 +48,14 @@ function compile() {
TWEEGO_EXE="./devTools/tweego/tweego_linux86"
fi
;;
arm64)
echoMessage "arm64 arch"
if [ "$(uname -s)" = "Darwin" ]; then
TWEEGO_EXE="./devTools/tweego/tweego_m1" #for mac m1 and m2
#else
#not linux arm
fi
;;
*)
echoError "No system tweego binary found, and no precompiled binary for your platform available."
echoError "Please compile tweego and put the executable in PATH."
......@@ -56,12 +64,16 @@ function compile() {
esac
fi
$TWEEGO_EXE "$@" -o "$TARGET" --head "devTools/head.html" game/ || build_failed="true"
$TWEEGO_EXE "$@" -o "$TARGET" --head "devTools/head.html" --module "modules" game/ || build_failed="true"
if [ "$build_failed" = "true" ]; then
echoError "Build failed."
exit 1
else
if [ "$TARGET" != "Degrees of Lewdity.html" ]; then
# android builder expects to find a file by this name. this is a symbolic link, not a full copy
ln -fs "$TARGET" "Degrees of Lewdity.html";
fi
echo "Done: \"$TARGET\""
exit 0
fi
......
......@@ -6,7 +6,7 @@ pushd %~dp0
:: Run the appropriate compiler for the user's CPU architecture.
if %PROCESSOR_ARCHITECTURE% == AMD64 (
CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
CALL "%~dp0devTools\tweego\tweego_win64.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
) else (
CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game"
CALL "%~dp0devTools\tweego\tweego_win86.exe" -w -o "%~dp0Degrees of Lewdity VERSION.html" --head "%~dp0devTools\head.html" "%~dp0game" --module "%~dp0modules"
)
aliases:
decoration:
img: &img
border: 1px
borderStyle: dashed dashed dashed
unused: &unused
border: 0px
sugarcube-2:
macros:
abominationold: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<initWraith "abomination">>
abominationold2: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<initWraith "abomination">>
actionsanuspenisfuck: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsanuspenisfucknew>>
actionsanustopenis: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsanustopenis>>
actionsvaginapenisfuck: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsvaginapenisfuck>>
actionsvaginatopenis: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsvaginatopenisnew>>
actionsvaginatovagina: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsvaginatovaginanew>>
actionsvaginatovaginafuck: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<actionsvaginatovaginafucknew>>
adultshopicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "adult">>
animals: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- '?animals'
bathicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<bathroomicon "bath">>
bathrobeicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<bathroomicon "robe">>
beericon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "beer">>
binicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<icon "bin.png">>
bloodmirroricon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<mirroricon "blood">>
bodyparts: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- '?bodypart'
breastenlargeicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "breast enlarge">>
breastreduceicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "breast reduce">>
cellicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "cell">>
checkTimeSystem: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- Time cannot desync anymore
chickenicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<animalicon "chicken">>
clearyardicon:
deprecated: true
deprecatedSuggestions:
- <<farmicon "clear yard">>
closedstoreicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "closed">>
clothingShop: # Deprecated 0.4.5+
deprecated: true
clothingShopColorSet: # Deprecated 0.4.5+
deprecated: true
clothingshopicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "clothing">>
coffeeicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "coffee">>
computericon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<techicon "computer">>
condommachineicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<condomicon "machine">>
contactsicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<cosmeticsicon "contacts">>
cottageicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<farmicon "cottage">>
cowicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<animalicon "cow">>
danubehouseicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<dooricon "danube">>
dilapidatedshopicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "dilapidated">>
dogicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<animalicon "dog">>
domushouseicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<dooricon "domus">>
dorenflaticon: # Deprecated 0.5.1.3+
deprecated: true
deprecatedSuggestions:
- <<flatsicon>>
dyeicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<cosmeticsicon "dyes">>
eaticon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "eat">>
faceimg: # Deprecated 0.5.2+
deprecated: true
feetgrab: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<feetgrabnew>>
flatdooricon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<dooricon>>
flatdooropenicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<dooricon "open">>
flowericon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<gardenicon "flower">>
forestroaddeepicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<forestroadicon "deep">>
forestroadtownicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<forestroadicon "town">>
forestshopicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "forest">>
garden: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- '?garden'
generatec1: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey1>>
generatec2: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey2>>
generatec3: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey3>>
generatec4: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey4>>
generatec5: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey5>>
generatec6: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<generatey6>>
gift_recipients_check:
deprecated: true
deprecatedSuggestions:
- canGiftFood()
hairchairicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<hairdressericon "chair">>
hairgelicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<hairdressericon "gel">>
headdeskicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "headdesk">>
hitchhikeicon: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<skinicon "hitchhike">>
homemirroricon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<mirroricon "home">>
horseicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<animalicon "horse">>
hotchocicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "cocoa">>
hotchocstandicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<robinicon "cocoa">>
humiliation10: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<stress 40 1>><<trauma 1>>
infirmaryicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "infirmary">>
lemonadeicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "lemonade">>
lemonadestandicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<robinicon "lemonade">>
libraryicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "library">>
lockpickicon: # Deprecated 0.5.2.8+
deprecated: true
deprecatedSuggestions:
- <<lockicon "pick">>
lowerbodyparts: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- '?lowerbodypart'
masturbationactionsOld: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<masturbationactions>>
masturbationeffectsOld: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<masturbationeffects>>
meadowicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<farmicon "meadow">>
milkshakeicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "milkshake">>
mirrorDebug: # Deprecated 0.5.2+
deprecated: true
mirrormodel: # Deprecated 0.5.2+
deprecated: true
newversionnotification: # Deprecated 0.4.5+
deprecated: true
description: Has been non-functioning for a good while now
olivenewicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<oliveicon>>
oralswallow: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<oralswallownew>>
orphanagedoorsicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<dooricon "orphanage">>
parasitecreamicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "parasite">>
partyicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- - <<socialiseicon "party">>
paternity_test: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "paternity">>
penisenlargeicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "penis enlarge">>
penisreduceicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<procedureicon "penis reduce">>
pigicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<animalicon "pig">>
plaqueicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "plaque">>
poollockericon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<lockericon>>
pregnancyWatersBrokenPassout: # Deprecrated 0.4.6+
deprecated: true
deprecatedSuggestions:
- <<pregnancyPassout>>
printAnd: # Deprecrated 0.4.5.3+
deprecated: true
deprecatedSuggestions:
- and
description: |-
Prints `and` for use where `and` cannot be used without escaping
printTo: # Deprecrated 0.4.5.3+
deprecated: true
deprecatedSuggestions:
- to
description: |-
Prints `to` for use where `to` cannot be used without escaping
prisoncanteenicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "canteen">>
prisondooricon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "door">>
prisonlaundryicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "laundry">>
prisonlifticon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "lift">>
prisonmedicalicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "medical">>
prisonrunicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<prisonicon "run">>
putinlockericon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<lockericon "put in">>
registericon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "register">>
scarletnewicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<scarleticon>>
schoolbuildingicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "building">>
schoolcourtyardicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "courtyard">>
searchicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<icon "search.png">>
secretpathicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<forestroadicon "secret">>
setSkinColorBase: # Deprecated 0.5.2+
deprecated: true
shaveicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<bathroomicon "shave">>
shopbuy: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<shopbuyv2>>
shopClothingFilterLoadTraits: # Deprecated 0.4.5+
deprecated: true
shopClothingFilterSettings: # Deprecated 0.4.5+
deprecated: true
shopClothingFilterToggle: # Deprecated 0.4.5+
deprecated: true
shopCustomColors: # Deprecated 0.4.5+
deprecated: true
shopCustomColorsBars: # Deprecated 0.4.5+
deprecated: true
shopCustomColorsDisplay: # Deprecated 0.4.5+
deprecated: true
shopCustomColorsPresets: # Deprecated 0.4.5+
deprecated: true
shopCustomColorsPresetsLoad: # Deprecated 0.4.5+
deprecated: true
shopCustomColorsSet: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- '<<setShopCustomColors>>'
shopCustomColorsToggle: # Deprecated 0.4.5+
deprecated: true
shopDefaultOptions: # Deprecated 0.4.3+
deprecated: true
shopDefaultOptionsToggle: # Deprecated 0.4.3+
deprecated: true
shoppingcentreicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon>>
shopTraitDescription: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- 'setup.shopDetails[_trait].desc'
sizeLimitsSettingsOld: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<sizeLimitsSettings>>
skinColorInit: # Deprecated 0.5.2+
deprecated: true
skinColorInitOldSave: # Deprecated 0.5.2+
deprecated: true
stairschristmasicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<main_hall_icon>>
stairsdownicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<stairsicon "down">>
stairshalloweenicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<main_hall_icon>>
stairsupicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<stairsicon "up">>
statbaricons: # Deprecated Old
deprecated: true
description: "![img](%workspaceDir%/img/ui/point.png)"
stripicon: # Deprecated 0.4.5+
deprecated: true
deprecatedSuggestions:
- <<skinicon "strip">>
stumpicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<schoolicon "stump">>
sweetsicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<foodicon "halloween">>
- <<foodicon "sweets">>
swimbackicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<swimicon "back">>
tailoricon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "tailor">>
tanned: # Deprecated 0.5.2+
deprecated: true
tattooicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "tattoo">>
tending_day: # Deprecated 0.5.3+
deprecated: true
deprecatedSuggestions:
- window.tendingDay
toileticon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<bathroomicon "toilet">>
toyshopicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<shopicon "toy">>
updateClothes-obsolete: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<updateClothes>>
updateClothingColours-obsolete: # Deprecated Old
deprecated: true
deprecatedSuggestions:
- <<updateClothes>>
venteyesicon: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<venticon "eyes">>
volleyballicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- - <<socialiseicon "volleyball">>
wolfpup: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<wolfcaveicon "pup">>
wolfsleep: # Deprecated 0.4.2+
deprecated: true
deprecatedSuggestions:
- <<wolfcaveicon "sleep">>
wrenchicon: # Deprecated 0.4.3+
deprecated: true
deprecatedSuggestions:
- <<icon "wrench.png">>