muttley / foundryvtt-shadowdark Goto Github PK
View Code? Open in Web Editor NEWShadowdark game system for Foundry VTT
License: MIT License
Shadowdark game system for Foundry VTT
License: MIT License
Please leave a comment if:
A few things we want tested:
Please also comment with what you'll focus on!
A complete styling in dark mode!
I don't think this is a high priority before initial release, but we should itentify areas of the system that could benefit from triggering custom hooks that 3rd party modules could potentially hook into.
The underlying map is missing when importing the adventure.
This should be done our initial release so we're ready for when v11 is released.
There are software tools that use the plus in front of a section to expand collapse the section. Here, it adds a new talent. This happened to me several times by accident.
Suggestions:
Longbow costs 9gp, should be 8gp
Shortbow has Range set to "Close" (should be "Far"), 1d6 2H damage (should be 1d4), and is missing the actual 2H property
Multiple backpacks all cost 0 slots. My understanding is the first one's free, subsequent backpacks are 1 slot each. Perhaps the Free Carry rules haven't been implemented yet?
I think it makes more sense for "Flask" and "Bottle" to be two separate items, even though they are functionally identical. My character is carrying a flask or a bottle, not a "flask or bottle."
Spells with a duration of days or real time (Light) just have "--" in the Duration field. Is this intentional? I think the UX would be better if there was actually a "Days" option. And maybe "Special" instead of "--" for spells like Charm Person or Light that have unusual/variable durations.
The Alarm spell description includes an extra paragraph from Alter Self that should be removed. That same paragraph is missing from the description of Alter Self.
Dragging a spell to the inventory should create a spell scroll instead of adding the spell to the actor.
Why?
Some talents give advantage on rolls, such as:
How?
Introducing something like this in the DataModel could be read from the Dice mechanics and apply advantage automatically:
{
system: {
talents: {
advantage: ["hp", "spellcast"],
weaponMastery: ["whip"; "bastardSword", "longbow"],
meleeAttackBonus: 4,
meleeDamageBonus: 2,
rangedAttackBonus: 1,
rangedDamageBonus: 2,
spellcastingCheckBonus: 3
},
},
}
This should be implemented in conjunction with #34 .
Currently, Ability Score Improvements are supported using Talents. And the groundwork is there for building a more complete set of support for talents.
The following types of talents needs design for both data models as well as how to implement using talents.
The following talents needs to jacked up to the Dice Mechanics:
Nice to have:
When a spell is critically failing, it should automatically roll the appropriate Mishap table.
Why?
In-game light timer built for torch-tracking purpose.
Ideas
Why?
By having a Shadowdark mold, we can make our Player/NPC tokens feel unique for our system. Creating a mold that is compatible with the module Tokenizer would simplify the creation of said tokens.
Sources
Tokenizer modulle
For homebrew people may wish to add more types of character, need a way to define and store these. Maybe new Item types?
Items to consider:
These could tie into any future character creater we may add.
DiceNotation.js:14 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'dice')
at new DiceNotation (DiceNotation.js:14:9)
at Dice3D.showForRoll (Dice3D.js:613:24)
at RollSD._rollDiceSoNice (RollSD.mjs:639:5)
at RollSD.mjs:613:18
at new Promise (<anonymous>)
at RollSD._renderRoll (RollSD.mjs:597:10)
at async RollSD.RollD20Dialog (RollSD.mjs:396:10)
at async ItemSD.rollItem (ItemSD.mjs:65:3)
So I just pulled down the newest code, recompiled via gulp and put it into my systems directory.
When I launch the game world, the Light Tracker pop up is front and center. Everything looks OK.
When I click "Turn off the lights" it causes the bottom part of the UI to jump up to about half-way down the screen (just below the last button on the left button list), where it remains even after refreshing with F5. (It seems to be related to the content in the right sidebar - a lengthy chat log will push the lower elements back towards the bottom of the screen, but it will jump back up for tabs that have less content.)
The same issue occurs with a new world.
I took screenshot but I can't figure out how to upload them.
Why?
This would enable the development flow to be smoother, as we can have the tests run automatically with Quench as well as the system automatically reloading on code change, thus removing the need to refresh the browser / reload the application.
How?
This is implemented using Rollup for OSE, which is where I know the feature from. I have no knowledge of how to setup autoreload for Gulp, eventhough I've tried.
I have noticed that a few of the Rolls on the Talent Table have broken item links.
So far I have noted:
Fighter - Weapon Mastery Item
Priest - +1 to Spellcasting Checks
Thief - Backstab bonus die
Wizard - +1 to Spellcasting Checks. Also, the 12 result does not list +1 to spellcasting checks as an option.
There is no input field on the NPC Attack sheet that gives me the option to configure system.damage.numDice
.
Should calculate the appropriate target value. See castSpell()
.
After reviewing this #72, and instead of adding a new type of items, basic items with the linked spell in description and with the spell DC indicated for now. If we get requests for this later, we could implement it, but I think the current solution is good enough for initial release at least.
This would enable us to add distinct light types to tokens when a light source is enabled.
A few humble suggestions regarding the use of the combat tracker:
Thanks for all the work you-all are doing on this!
As soon as I add Stout to a character, I cannot increase the Max HP anymore. When I change HP, Max HP reverts to whatever it was before the increase to Max HP. Makes levelling up hard to do, unless I am missing something.
Create a thief, equip a weapon, set level to 2 or higher.
Click on weapon
In the roll dialog check Backstab box
Then click "normal" roll
System shows exactly two dice being rolled for damage. But it should be 1 + 1/2 level rounded down.
The bonus for the longbow is shown as +4 here, but it should be +5 for a 1st level elf fighter here(+3 dex, +1 elf ancestory, +1 weapon mastery) , and when I upped my level 3 it should be +6 but it doesnt change, it is still +4. The rolls work correctly, it is just the display on the character sheet that is off.
Why:
Translators of the system should not need to be in the know about git and code contributions, but rather just contribute with translating the system.
Suggested how:
Implementation of Crowdin into the project, allowing community contributions to the translations.
Needed steps:
Sources:
It is assumed that the character is using the armor they have bonus with, but this may not be the case.
This can most likely be fixed after first release.
Magic items may have Bonus properties:
If you import it and delete one of the items, both are deleted.
Exporting the Item data doesn't show two Effects for some reason:
"effects": [{
"label": "Hauler",
"icon": "icons/containers/bags/sack-leather-tan.webp",
"origin": "Compendium.shadowdark.talents.7JTDRLtHc6FOrIEc",
"changes": [{
"key": "system.bonuses.hauler",
"mode": 5,
"value": "true",
"priority": null
}],
"disabled": false,
"transfer": true,
"_id": "rqplFhIShnvmV0U4",
"duration": {
"startTime": null,
"seconds": null,
"combat": null,
"rounds": null,
"turns": null,
"startRound": null,
"startTurn": null
},
"tint": null,
"flags": {}
}],
Also, as this is a pre-canned effect, shouldn't it appear in the Talent Type(s) list?
Why?
Now you have to manually fill in the name of the weapon you want weapon mastery in. This needs to be the slugified version of an items system.baseWeapon
value for the talent to activate. E.g. the weapon "Bastard Sword" would have a slugified baseWeapon as bastard-sword
which the talent must match.
How?
If we introduce a select field in the talent active effects partial instead of using a field to just add text, this would simplify life for the user.
Write messages to chat when torches are lit, lights go out, etc.
Can we have Background and Deities also converted to an Item based system? This would allow for more control for GMs over the game world and the current Background field is too small to display all the information.
Example:
Acolyte. You're well trained in religious rites and doctrines. The second half gives more context and would be nice to be able to pop out on a click as an item.
Do we need it out of combat?
When a fighter has weapon mastery for a weapon, the system automatically increases the to hit bonus by exactly +1. But it should be increased by 1 + 1/2 level rounded down. In the roll dialog, it is shown correctly.
Why?
Talents like Weapon Mastery, and +1 to Armor of your choice implies that a choice of type has to be made.
How?
Initial idea is to have predefined types in the data-models, and/or config. These lists can then be used to generate selection dialogs which then defines a list of talent-activated equipments. These lists can then be parsed by the dice roller to determine talent bonuses.
To enable customization, we could implement a custom setting in the system settings, allowing the users to add a semi-colon separated list of custom weapon/armor types: whip;cast iron pan
for example. These could be combined with the data-model types before displaying. This would also be a handy way to expand a sub-type selection dialog for items that this may be relevant to.
Since only 1/2 of the classes in the game will have anything on this tab, can it be moved to near the end, after Inventory? Ideally it would be able to be toggled on/off for spellcasting classes, but that may be an improvement for the long run.
How?
Using active effects can help us create Talent items that apply their bonuses. Could then be reused for magic items and spell effects later.
What
From talents:
// NOTE: I'm updating this as I work through the following:
The following need to be added either to compendiums, or in the case of the rulebooks and pregen characters themselves, they should probably be bundled in an Aventure compendium.
Items types to add:
Actors to add:
Journals to add:
Scenes to add:
Random tables to add:
Why?
To help new users of the system to quickly get a hang of it.
What?
When editing or creating a new talent, you can click below Talent Type(s) and get a menu of effects, but after you make your selections the save button does not do anything and even if you manually close the dialog it does not update.
The Talents compendium lists Magic Missile Advantage as Magic Missle Advantage.
Finesse weapons (okay, currently there is only the dagger) should be shown with the higher of Str or Dex bonus. The roll dialog works fine.
Why?
The Talent Item has quite wonky reactive design as for now, and it most likely breaks due to localization.
How?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.