Skip to content

Commit

Permalink
Merge pull request #2 from StarWarsFoundryVTT/dev
Browse files Browse the repository at this point in the history
First master release version based on latest changes by Esrin, Jaxxa and CStadther.
  • Loading branch information
Esrin authored Jun 2, 2020
2 parents a2b6546 + 0c278e4 commit d3eab0c
Show file tree
Hide file tree
Showing 66 changed files with 12,424 additions and 1,405 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.idea
.idea
node_modules
42 changes: 21 additions & 21 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
MIT License

Copyright (c) 2020 Foundry Network

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
MIT License
Copyright (c) 2020 Foundry Network
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
78 changes: 72 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This is an implementation of the [Fantasy Flight Games Star Wars](https://www.fa

# Requirements

This Requires the "Special Dice Roller" Module to Roll the dice and calculate the results.
This Requires the "Special Dice Roller" Module to Roll the dice and calculate the results.
This is most easily available from the in-game Module browser. After installing it you will need to activate it on your world.
[foundry-vtt-community](https://foundry-vtt-community.github.io/wiki/Community-Modules/#special-dice-roller) or [GitHub](https://github.com/BernhardPosselt/foundryvtt-special-dice-roller)

Expand All @@ -16,12 +16,78 @@ This is most easily available from the in-game Module browser. After installing
2. Go to the "Game Systems" Tab
3. Click the "Install System" button
4. Copy the Following link into the "Manifest URL" section:
https://raw.githubusercontent.com/jaxxa/StarWarsFFG/master/system.json
https://raw.githubusercontent.com/Esrin/StarWarsFFG/esrin-dev/system.json
5. Click Install, after a few seconds the system should be installed.

# Future Plans
# To-do

My future plans for this system are available on [Trello](https://trello.com/b/4dI4wtGP/fvtt-starwars-ffg)
Here you can see what I intend to work on next.
NEEDED FOR RELEASE V1:

Any feedback would be appreciated.
- Group Management sheet for GM use (currently in progress).
- Create equipable item functionality and rework inventory to suit. Continue to improve inventory display in the process.
- Add Forcepower item type (based on talent).
- Add Maximum Altitude and Crew Capacity to vehicle sheet.
- Redo the dice selection popup to be more functional and provide upgrade ability and upgrade difficulty buttons.
- Rebuild dice functionality to use Foundry Dice instead of chat content, remove requirement for Special-Dice-Roller.
- Look into drag-and-drop item behaviours for things like transferring items between characters, or into a vehicle cargo hold.

NICE TO HAVE:

- Create JS data models for species, careers and specialisations and use those in prepareData to define career skills and starting characteristics.
- Attempt to fix display of wound and strain bars so that they suit FFG system.
- Genesys cross-compatibility (dice, sheets)
- Rework Special Qualities and Critical Injuries to be item type, add view to item sheets and character sheets.
- Character creator

# Changelog

- 02/06/2020 - Esrin - Temporary display fixes to Minion and Vehicle sheets awaiting CStadther's eventual restyle.
- 02/06/2020 - Esrin - Minor bugfix to character sheet, soak value set to disabled for auto-calculation, encumbrance max and current values swapped to correct fields and current set to disabled for auto-calculation.
- 02/06/2020 - CStadther - Major sheet restyling
- 02/06/2020 - Jaxxa - Added Icons in the Dice roller, visually indicating the dice types.
- 31/05/2020 - Esrin - Work in progress on the group management GM tool. Destiny Pool now working (will reset on page refresh). Player Character list under construction.
- 31/05/2020 - Esrin - Bugfix to localisation hook for Gear Quantity on Character Sheet (thanks Alex | HDScurox for the bug report).
- 31/05/2020 - CStadther - Added SASS configuration using Gulp.
- 31/05/2020 - CStadther - Minor bugfix on .item click listener to prevent console errors when .item class components with no related item sheet are clicked, such as tabs.
- 31/05/2020 - CStadther - Added localization for character sheet.
- 29/05/2020 - Esrin - Minor bugfix to vehicle sheet, various fields will now accept string values to allow for from-to values as requested by Alex | HDScurox.
- 28/05/2020 - Esrin - Brought the Minion sheet inventory in line with the latest Character sheet changes. Added talents to Minion sheet. Fixed a minor bug with group skill calculations (thanks Alex | HDScurox for the bug report).
- 25/05/2020 - Esrin - Character sheet tweaks. Continued improvements to the inventory display in advance of equipable item support.
- 22/05/2020 - Esrin - Minor bug fixes and tweaks, compatibility check with FVTT 0.6.0 stable release.
- 18/05/2020 - alfarobl - Tweak to dice display orders to match the chat order, kindly provided by alfarobl.
- 18/05/2020 - Esrin - A very hacky method has been introduced to allow the built in FoundryVTT combat tracker to roll initiative using FFG dice results. The resulting number is made up of successes and advantages. For example 1 success and 2 advantage would result in 1.02 for the initiative tracker. Warning, there might be bugs with this solution! Initiative can be switched between Vigilance and Cool via the System Settings section of the world configuration.
- 13/05/2020 - Esrin - Continued sheet design tweaks.
- 12/05/2020 - Esrin - Reworked actorsheet entities back down to a single entity with dynamic options based on actor.type. Now much easier to maintain in single place.
- 12/05/2020 - Esrin - First pass at improvements to inventory display to show more info on hover of certain areas (hover name for description, hover special for full text, etc). Still much more styling and layout work needed for sheets in general.
- 11/05/2020 - Esrin - First pass on some quality of life improvements to the inventory display (work in progress). Minor bugfixes.
- 11/05/2020 - Esrin - Fixed bug on vehicle sheet that was preventing data entry to some fields.
- 11/05/2020 - Esrin - Reworked the modifier tabs to be more foolproof and user friendly. Only Soak modifiers are calculated automatically at present. Automatic calculation of other stat / characteristic / skill modifiers is not a priority right now so putting on the backburner.
- 11/05/2020 - Esrin - Improved vehicle sheet design to have Defence in fore, aft, port, starboard cross pattern.
- 11/05/2020 - Esrin - Added Range, Skill, Firing Arc and Activation dropdowns to item and talent sheets where appropriate.
- 11/05/2020 - Esrin - Added skills filter to character and minion sheets, allowing filtering by General, Combat and Knowledge.
- 11/05/2020 - Esrin - Added career skills checkbox to character sheet.
- 11/05/2020 - Esrin - Fixed Handling on vehicle sheet. Now displays a + for positive values.
- 09/05/2020 - Esrin - Rollable table for Critical Injuries
- 09/05/2020 - Esrin - Cleaned up items to just use one JS class and get dynamic template by type.
- 09/05/2020 - Esrin - Built item sheet for ship weapons and ship attachments
- 09/05/2020 - Esrin - Built character sheet for vehicles
- 09/05/2020 - Esrin - Added data structure for ship weapons and ship attachments
- 09/05/2020 - Esrin - Added data structure for vehicles (using Jaxxa's work as a template)
- 09/05/2020 - Esrin - Added currency to characters
- 09/05/2020 - Esrin - Derived encumbrance from item values.
- 09/05/2020 - Esrin - Derived soak value from brawn, equipped armour, and modifiers on weapons, gear and talents as a test case for automation.
- 08/05/2020 - Esrin - Extended Actor class to allow for calculated Minion stat values (wounds from unit wounds _ quantity, and skills from group skills _ quantity-1)
- 08/05/2020 - Esrin - Added data structure for minions
- 08/05/2020 - Esrin - Built character sheet for minions
- 08/05/2020 - Esrin - Updated main character sheet to correctly display all three main item types, and talents.
- 08/05/2020 - Esrin - Added data structure for talents
- 08/05/2020 - Esrin - Updated main character sheet to show XP on all pages, and obligation types on Biography page.
- 08/05/2020 - Esrin - Built very basic item sheets for the three main item types.
- 08/05/2020 - Esrin - Added data structures for the three main item types, gear, weapons, armour.
- 07/05/2020 - Esrin - Minor tweaks to the character sheet styling. Begun restructuring the underlying data structure in template.json to introduce best practices, avoid unnecessary duplication and prepare for the addition of new actor and item types.
- 07/05/2020 - Esrin - First pass at character sheet styling. Next step, talents, items and derived modifiers.
- 06/05/2020 - Esrin - Added "Rolling <skillname>" into the chat message for FFG dice rolls to show which skill the person was rolling on.
- 06/05/2020 - Esrin - Added abbreviations (abrev) to characteristics, refactored skill display on ffg-actor-sheet.html to allow for linked characteristic abbreviations in display.
- 06/05/2020 - Esrin - Updated to TabsV2 class in actor-sheet-ffg.js to avoid deprecation of Tabs class in future FoundryVTT versions.
- 06/05/2020 - Esrin - Renamed remaining core files from Simple World Building to swffg naming scheme for consistency.
- 06/05/2020 - Esrin - Removed old SimpleWorldBuilding dependencies and fixed breakages where necessary.
Binary file added fonts/Roboto-Regular.ttf
Binary file not shown.
Binary file added fonts/Signika-Regular.ttf
Binary file not shown.
Binary file added fonts/StarJedi-Regular.ttf
Binary file not shown.
50 changes: 50 additions & 0 deletions gulpfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
const gulp = require('gulp');
const prefix = require('gulp-autoprefixer');
const sourcemaps = require('gulp-sourcemaps');
const sass = require('gulp-sass');

/* ----------------------------------------- */
/* Compile Sass
/* ----------------------------------------- */

// Small error handler helper function.
function handleError(err) {
console.log(err.toString());
this.emit('end');
}

const SYSTEM_SCSS = ["scss/**/*.scss"];
function compileScss() {
// Configure options for sass output. For example, 'expanded' or 'nested'
let options = {
outputStyle: 'expanded'
};
return gulp.src(SYSTEM_SCSS)
.pipe(
sass(options)
.on('error', handleError)
)
.pipe(prefix({
cascade: false
}))
.pipe(gulp.dest("./styles"))
}
const css = gulp.series(compileScss);

/* ----------------------------------------- */
/* Watch Updates
/* ----------------------------------------- */

function watchUpdates() {
gulp.watch(SYSTEM_SCSS, css);
}

/* ----------------------------------------- */
/* Export Tasks
/* ----------------------------------------- */

exports.default = gulp.series(
compileScss,
watchUpdates
);
exports.css = css;
Binary file added images/shipdefence.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
77 changes: 77 additions & 0 deletions lang/en.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
{
"SWFFG.Name": "Name",
"SWFFG.Species": "Species",
"SWFFG.Career": "Career",
"SWFFG.Specializations": "Specializations",
"SWFFG.Wounds": "Wounds",
"SWFFG.Strain": "Strain",
"SWFFG.Soak": "Soak",
"SWFFG.Threshold": "Threshold",
"SWFFG.Current": "Current",
"SWFFG.Defense": "Defense",
"SWFFG.DefenseRanged": "Ranged",
"SWFFG.DefenseMelee": "Melee",
"SWFFG.ForcePool": "Force Pool",
"SWFFG.ForcePoolCommitted": "Committed",
"SWFFG.ForcePoolAvailable": "Available",
"SWFFG.Encumbrance": "Encumbrance",
"SWFFG.TabCharacteristics": "Characteristics",
"SWFFG.TabGear": "Gear & Equipment",
"SWFFG.TabTalents": "Talents",
"SWFFG.TabBiography": "Biography",
"SWFFG.CharacteristicBrawn": "Brawn",
"SWFFG.CharacteristicAgility": "Agility",
"SWFFG.CharacteristicIntellect": "Intellect",
"SWFFG.CharacteristicCunning": "Cunning",
"SWFFG.CharacteristicWillpower": "Willpower",
"SWFFG.CharacteristicPresence": "Presence",
"SWFFG.SkillsGeneral": "General Skills",
"SWFFG.SkillsCombat": "Combat Skills",
"SWFFG.SkillsKnowledge": "Knowledge Skills",
"SWFFG.SkillsName": "Name",
"SWFFG.SkillsCS": "CS",
"SWFFG.SkillsCareerSkill": "Career Skill",
"SWFFG.SkillsRank": "Rank",
"SWFFG.SkillsRoll": "Roll",
"SWFFG.ItemsWeapons": "Weapons",
"SWFFG.ItemsArmor": "Armor",
"SWFFG.ItemsGear": "Gear",
"SWFFG.ItemsName": "Name",
"SWFFG.ItemsSkill": "Skill",
"SWFFG.ItemsDamage": "Damage",
"SWFFG.ItemsRange": "Range",
"SWFFG.ItemsCrit": "Crit",
"SWFFG.ItemsSpecial": "Special",
"SWFFG.ItemsEncum": "Encum",
"SWFFG.ItemsDefense": "Defense",
"SWFFG.ItemsSoak": "Soak",
"SWFFG.ItemsHP": "HP",
"SWFFG.ItemsPrice": "Price",
"SWFFG.ItemsRarity": "Rarity",
"SWFFG.ItemsQuantity": "Quantity",
"SWFFG.ItemsQty": "Qty",
"SWFFG.Talents": "Talents",
"SWFFG.TalentsName": "Name",
"SWFFG.TalentsActivation": "Activation",
"SWFFG.TalentsRank": "Rank",
"SWFFG.DescriptionXP": "XP",
"SWFFG.DescriptionXPAvailable": "Available",
"SWFFG.DescriptionXPTotal": "Total",
"SWFFG.DescriptionCredits": "Credits",
"SWFFG.DescriptionObligation": "Obligation",
"SWFFG.DescriptionDuty": "Duty",
"SWFFG.DescriptionMorality": "Morality",
"SWFFG.DescriptionConflict": "Conflict",
"SWFFG.ItemWeaponDamage": "Dmg",
"SWFFG.ItemWeaponCritical": "Crit",
"SWFFG.ItemWeaponEncumbrance": "Encum",
"SWFFG.ItemWeaponHardPoints": "HP",
"SWFFG.ItemWeaponRarity": "Rarity",
"SWFFG.ItemWeaponSkill": "Skill",
"SWFFG.ItemWeaponRange": "Range",
"SWFFG.ItemWeaponPrice": "Price",
"SWFFG.ItemWeaponQuantity": "Qty",
"SWFFG.ItemWeaponSpecial": "Special",
"SWFFG.ItemArmorDefense": "Def",
"SWFFG.ItemTalentRanked": "Ranked?"
}
Loading

0 comments on commit d3eab0c

Please sign in to comment.