commit 2ca34bac9db2ee366ab73ff8f8592a43d9944ce0 Author: cecilkorik Date: Tue Nov 9 20:11:49 2021 -0500 base version diff --git a/assets/data/aspects/aspects.json b/assets/data/aspects/aspects.json new file mode 100644 index 0000000..7ebb365 --- /dev/null +++ b/assets/data/aspects/aspects.json @@ -0,0 +1,12 @@ +[ +{ + "modId": "maethalion_boost", + "id": "maethalion_boost_train|NAME|SNARK|111", + "parameters": [ + {}, + { "replace": "SNARK" }, + { "replace": "111", "isNumber": true } + ], + "stats": { "SNARK": 111 } +} +] \ No newline at end of file diff --git a/assets/data/aspects/sites.json b/assets/data/aspects/sites.json new file mode 100644 index 0000000..723799e --- /dev/null +++ b/assets/data/aspects/sites.json @@ -0,0 +1,11 @@ +[ +{ + "modId": "maethalion_boost", + "id": "town", + "effects": [ + "craftAtTown", + "maethalion_boost_trainDefense", + "maethalion_boost_trainDamage" + ] +} +] \ No newline at end of file diff --git a/assets/data/effects/maethalion_boost_job_train.json b/assets/data/effects/maethalion_boost_job_train.json new file mode 100644 index 0000000..6bc4656 --- /dev/null +++ b/assets/data/effects/maethalion_boost_job_train.json @@ -0,0 +1,154 @@ +{ +"id": "maethalion_boost_job_train|NAME|STAT|AMOUNT", +"info": { + "dataVersion": 1, + "sourceFile": "maethalion_boost_job_train", + "modId": "maethalion_boost", + "author": "maethalion", + "STUB": "A repeatable job that allows training of stats on all heroes" +}, +"type": "OVERLAND_ABILITY", +"verb": "JOB", +"ability": { + "icon": "heal", + "category": "crafting", + "priority": "0", + "labor": { + "days": "10", + "allParticipantsMustBePresent": true, + "speedFactor": "1", + "helperContributionSpeed": -0.2 + }, + "jobNotificationInfo": { "soundId": "UI/timeCues/jobComplete" }, + "musicOverride": "" +}, +"targets": [ + { + "template": "SELF_SITE_THIS_JOB_NOT_ACTIVE", + "aspects": [ "THIS_JOB_NOT_ACTIVE", "SELF" ] + }, + { + "template": "JOB_PARTICIPANT", + "promptText": "", + "slots": { "preFill": "noJobOrParty" } + }, + { + "role": "hero", + "template": "PICK_BY_SCORE", + "scoreFunction": null, + "fromRoles": [ "participant" ], + "notAlreadyMatchedAs": [] + }, + { + "role": "hero2", + "template": "PICK_BY_SCORE", + "choose": "BY_SCORE_OPTIONAL", + "scoreFunction": null, + "fromRoles": [ "participant" ], + "notAlreadyMatchedAs": [ "hero" ] + }, + { + "role": "hero3", + "template": "PICK_BY_SCORE", + "choose": "BY_SCORE_OPTIONAL", + "scoreFunction": null, + "fromRoles": [ "participant" ], + "notAlreadyMatchedAs": [ "hero", "hero2" ] + }, + { + "role": "hero4", + "template": "PICK_BY_SCORE", + "choose": "BY_SCORE_OPTIONAL", + "scoreFunction": null, + "fromRoles": [ "participant" ], + "notAlreadyMatchedAs": [ "hero", "hero2", "hero3" ] + }, + { + "role": "hero5", + "template": "PICK_BY_SCORE", + "choose": "BY_SCORE_OPTIONAL", + "scoreFunction": null, + "fromRoles": [ "participant" ], + "notAlreadyMatchedAs": [ "hero", "hero2", "hero3", "hero4" ] + } +], +"outcomes": [ + { + "class": "Description", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "full", + "showNameTags": false, + "actorSlots": [ + { + "role": "hero", + "equipment": {}, + "anchor": { "x": 0.137, "y": 0.522 }, + "size": 0.8467453, + "nameTag": "none" + }, + { + "role": "hero2", + "facing": "left", + "equipment": {}, + "anchor": { "x": 0.848, "y": 0.509 }, + "size": 0.8467453, + "nameTag": "none" + }, + { + "role": "hero3", + "equipment": {}, + "anchor": { "x": 0.27984622, "y": 0.5 }, + "size": 0.7733, + "nameTag": "none", + "color": { "r": "0.91907513", "g": "0.91907513", "b": "0.91907513", "a": "1" } + }, + { + "role": "hero4", + "facing": "left", + "equipment": {}, + "anchor": { "x": 0.703, "y": 0.468 }, + "size": 0.8469, + "nameTag": "none", + "color": { "r": "0.91907513", "g": "0.91907513", "b": "0.91907513", "a": "1" } + }, + { + "role": "hero5", + "equipment": {}, + "anchor": { "x": 0.479, "y": 0.428 }, + "size": 0.6885, + "nameTag": "none", + "color": { "r": "0.86994219", "g": "0.86994219", "b": "0.86994219", "a": "1" } + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_job_train", + "textKey": "~01~~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ] + }, + { + "class": "DoAll", + "target": "participant", + "outcomes": [ + { + "class": "Aspects", + "addAspects": [ + { "id": "maethalion_boost_train|NAME|STAT|AMOUNT", "value": "1" } + ] + } + ] + }, + { + "class": "Aspects", + "removeAspects": [ "_THIS_" ] + } +] +} \ No newline at end of file diff --git a/assets/data/effects/maethalion_boost_trainDamage.json b/assets/data/effects/maethalion_boost_trainDamage.json new file mode 100644 index 0000000..a8cdb48 --- /dev/null +++ b/assets/data/effects/maethalion_boost_trainDamage.json @@ -0,0 +1,265 @@ +{ +"id": "maethalion_boost_trainDamage", +"info": { + "dataVersion": 1, + "sourceFile": "maethalion_boost_trainDamage", + "modId": "maethalion_boost", + "author": "maethalion" +}, +"type": "OVERLAND_ABILITY", +"verb": "MANEUVER", +"ability": { "icon": "battledance", "category": "crafting", "priority": "0" }, +"targets": [ + { + "template": "SELF_SITE", + "aspects": [ "SELF", "workingStation", "NO_JOBS_ACTIVE" ], + "aspectValues": [ + { "id": "infestedTile*", "forbidden": true } + ], + "forbidJobIds": [ "maethalion_boost_job_train*" ] + }, + { "role": "target", "template": "OVERLAND_TILE", "range": "0" }, + { + "template": "CHOICE", + "promptScript": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "full", + "bg": "comicBG_classAbility_hunter.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_courage.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.238, "y": 0.393 }, + "size": 0.3, + "nameTag": "none", + "foot": { "rotate": 0 } + }, + { + "assetSpec": "figure:human/items/item_axe_lumber.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.119, "y": 0.234 }, + "size": 0.3499, + "nameTag": "none", + "foot": { "rotate": -30 } + }, + { + "assetSpec": "scenery:drauven_basketSpears.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.374, "y": 0.274 }, + "size": 0.4297, + "nameTag": "none" + }, + { + "assetSpec": "item:item_sword_old.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.066, "y": 0.284 }, + "size": 0.3499, + "drawDepth": 6, + "nameTag": "none", + "foot": { "rotate": -144.455 } + }, + { + "assetSpec": "figure:human/items/item_staff_crook.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.077, "y": 0.299 }, + "size": 0.2251, + "drawDepth": 7, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~01~prompt~panel_001~1_narration", + "style": "narration", + "padXFraction": 0.461, + "padYFraction": 0.332, + "widthFraction": 0.5 + }, + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~01~prompt~panel_001~2_darken", + "style": "darken", + "padXFraction": 0.25, + "padYFraction": 0.04, + "shrinkToFitText": true + } + ] + } + } + ], + "options": [ + { + "id": "one", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_abstractAngry.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~02~choice_one~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "two", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_class_mystic.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~03~choice_two~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "three", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_abstractHappy.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~04~choice_three~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "cancel", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bgAuto": "atSite", + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDamage", + "textKey": "~05~choice_cancel~panel_001~1_darken", + "style": "darken", + "padXFraction": 0.25, + "padYFraction": 0.45, + "widthFraction": 0.5 + } + ] + } + } + ], + "uiCancel": true + } + ] + } +], +"outcomes": [ + { + "class": "IfPlayerChose", + "ifPlayerChose": "one", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|stat.PHYSICAL_DAMAGE_BONUS|PHYSICAL_DAMAGE_BONUS|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + }, + { + "class": "IfPlayerChose", + "ifPlayerChose": "two", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|stat.SPELL_DAMAGE|SPELL_DAMAGE|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + }, + { + "class": "IfPlayerChose", + "ifPlayerChose": "three", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|stat.POTENCY|POTENCY|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + } +] +} \ No newline at end of file diff --git a/assets/data/effects/maethalion_boost_trainDefense.json b/assets/data/effects/maethalion_boost_trainDefense.json new file mode 100644 index 0000000..4ec6aa0 --- /dev/null +++ b/assets/data/effects/maethalion_boost_trainDefense.json @@ -0,0 +1,244 @@ +{ +"id": "maethalion_boost_trainDefense", +"info": { + "dataVersion": 1, + "sourceFile": "maethalion_boost_trainDefense", + "modId": "maethalion_boost", + "author": "maethalion" +}, +"type": "OVERLAND_ABILITY", +"verb": "MANEUVER", +"ability": { "icon": "endurance", "category": "crafting", "priority": "0" }, +"targets": [ + { + "template": "SELF_SITE", + "aspects": [ "SELF", "workingStation", "NO_JOBS_ACTIVE" ], + "aspectValues": [ + { "id": "infestedTile*", "forbidden": true } + ], + "forbidJobIds": [ "maethalion_boost_job_train*" ] + }, + { "role": "target", "template": "OVERLAND_TILE", "range": "0" }, + { + "template": "CHOICE", + "promptScript": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "full", + "bg": "comicBG_classAbility_warrior.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_endurance.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.239, "y": 0.402 }, + "size": 0.3, + "nameTag": "none" + }, + { + "assetSpec": "scenery:mannequins.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.17, "y": 0.403 }, + "size": 0.5, + "nameTag": "none" + }, + { + "assetSpec": "scenery:anvil.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.405, "y": 0.138 }, + "size": 0.5, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~01~prompt~panel_001~1_narration", + "style": "narration", + "padXFraction": 0.461, + "padYFraction": 0.332, + "widthFraction": 0.5 + }, + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~01~prompt~panel_001~2_darken", + "style": "darken", + "padXFraction": 0.25, + "padYFraction": 0.04, + "shrinkToFitText": true + } + ] + } + } + ], + "options": [ + { + "id": "one", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_caveBlue.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~02~choice_one~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "two", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_class_mystic.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~03~choice_two~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "three", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bg": "comicBG_abstractDkGreen.jpg", + "actorSlots": [ + { + "assetSpec": "asset:ui/misc/battleModifier_fortitude.png", + "role": null, + "focus": "foot", + "anchor": { "x": 0.5, "y": 0.45 }, + "size": 0.2, + "nameTag": "none" + } + ], + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~04~choice_three~panel_001~1_narration", + "style": "narration" + } + ] + } + } + ], + "ifTargetIsPresent": "self" + }, + { + "id": "cancel", + "script": [ + { + "class": "comicNode_Panel", + "panel": { + "size": "fourth", + "bgAuto": "atSite", + "textSlots": [ + { + "textSourceFile": "maethalion_boost_trainDefense", + "textKey": "~05~choice_cancel~panel_001~1_darken", + "style": "darken", + "padXFraction": 0.25, + "padYFraction": 0.45, + "widthFraction": 0.5 + } + ] + } + } + ], + "uiCancel": true + } + ] + } +], +"outcomes": [ + { + "class": "IfPlayerChose", + "ifPlayerChose": "one", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|ARMOR|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + }, + { + "class": "IfPlayerChose", + "ifPlayerChose": "two", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|WARDING|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + }, + { + "class": "IfPlayerChose", + "ifPlayerChose": "three", + "then": { + "class": "DoAll", + "outcomes": [ + { + "class": "NewJob", + "effectId": "maethalion_boost_job_train|HEALTH|0.1", + "post": "self", + "injectedRoles": [ "self", "target" ], + "promptSlotsImmediately": true + } + ] + } + } +] +} \ No newline at end of file diff --git a/assets/text/aspects/aspects.properties b/assets/text/aspects/aspects.properties new file mode 100644 index 0000000..84f6981 --- /dev/null +++ b/assets/text/aspects/aspects.properties @@ -0,0 +1,4 @@ +#suppress inspection "UnusedProperty" for whole file + +maethalion_boost_train.blurb=$param0 +$param2 +maethalion_boost_train.name=Training diff --git a/assets/text/effects/maethalion_boost_job_train.properties b/assets/text/effects/maethalion_boost_job_train.properties new file mode 100644 index 0000000..3ee4f0b --- /dev/null +++ b/assets/text/effects/maethalion_boost_job_train.properties @@ -0,0 +1,5 @@ +#suppress inspection "UnusedProperty" for whole file +.blurb=, />, />, , and / and >/>/Add Heroes to train> in $param0 +.longName=Training Heroes in $param0 +.name=Training +~01~~panel_001~1_narration=, />, />, , and / and > have/ has> finished their training... diff --git a/assets/text/effects/maethalion_boost_trainDamage.properties b/assets/text/effects/maethalion_boost_trainDamage.properties new file mode 100644 index 0000000..2224e85 --- /dev/null +++ b/assets/text/effects/maethalion_boost_trainDamage.properties @@ -0,0 +1,10 @@ +#suppress inspection "UnusedProperty" for whole file +.blurb=Create a job which trains the Heroes in one of the following areas:\n - [b][red]Bonus Damage[][] + 0.1\n - [b][purple]Spell Damage[][] + 0.1\n - [b][gold]Potency[][] + 0.1 +.longName=Train up your Hero's Damage +.name=Train Damage +~01~prompt~panel_001~1_narration=Create a Training Job at this Location\n\n - Train [b][red]Bonus Damage[][] + 0.1\n - Train [b][purple]Spell Damage[][] + 0.1\n - Train [b][gold]Potency[][] + 0.1\n\n(Usually takes 10 about days for a single Hero) +~01~prompt~panel_001~2_darken=[header][gold]Train up your Hero's Damage![][] +~02~choice_one~panel_001~1_narration=Train [b][red]Bonus Dmg[][] + 0.1 +~03~choice_two~panel_001~1_narration=Train [b][purple]Spell Dmg[] []+ 0.1 +~04~choice_three~panel_001~1_narration=Train [b][gold]Potency[][] + 0.1 +~05~choice_cancel~panel_001~1_darken=(Not Now) diff --git a/assets/text/effects/maethalion_boost_trainDefense.properties b/assets/text/effects/maethalion_boost_trainDefense.properties new file mode 100644 index 0000000..435faef --- /dev/null +++ b/assets/text/effects/maethalion_boost_trainDefense.properties @@ -0,0 +1,10 @@ +#suppress inspection "UnusedProperty" for whole file +.blurb=Create a job which trains the Heroes in one of the following areas:\n - [b][blue]Armor[][] + 0.1\n - [b][purple]Warding[][] + 0.1\n - [b][green]Health[][] + 0.1 +.longName=Train up your Hero's Defenses +.name=Train Defense +~01~prompt~panel_001~1_narration=Create a Training Job at this Location\n\n - Train [b][blue]Armor[][] + 0.1\n - Train [b][purple]Warding[][] + 0.1\n - Train [b][green]Health[][] + 0.1\n\n(Usually takes 10 about days for a single Hero) +~01~prompt~panel_001~2_darken=[header][gold]Train up your Hero's Defenses![][] +~02~choice_one~panel_001~1_narration=Train [b][blue]Armor[][] + 0.1 +~03~choice_two~panel_001~1_narration=Train [b][purple]Warding[] []+ 0.1 +~04~choice_three~panel_001~1_narration=Train [b][green]Health[][] + 0.1 +~05~choice_cancel~panel_001~1_darken=(Not Now) diff --git a/mod.json b/mod.json new file mode 100644 index 0000000..df9da33 --- /dev/null +++ b/mod.json @@ -0,0 +1,10 @@ +{ +"loadOrder": 200000, +"author": "Maethalion", +"name": "Hero Training", +"blurb": "Allows training of heroes on the overland map.", +"visibility": "Public", +"tags": [ "Hero", "Balance Changes" ], +"url": "https://gitlab.com/sfurlani/wildermyth-mods", +"alwaysOn": true +} \ No newline at end of file diff --git a/preview.png b/preview.png new file mode 100644 index 0000000..5109c8e Binary files /dev/null and b/preview.png differ