Skip to content

Commit

Permalink
Added support for blade runner system
Browse files Browse the repository at this point in the history
  • Loading branch information
Haxxer committed Jul 2, 2023
1 parent 1349ee8 commit 0beabfa
Show file tree
Hide file tree
Showing 4 changed files with 116 additions and 0 deletions.
1 change: 1 addition & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
## Version 2.7.0

- Updated Polish, French, and Chinese (Simplified) localization (thank you Lioheart, rectulo, and TravelingK on Weblate!)
- Added support for the Blade Runner system (thank you Stefouch on github!)
- Added a "Restrict Access" setting and "View" permissions to vault access configuration - with these two configured, only characters with the permissions set up can view the contents of the vault
- Added services to the "Populate Items" tab in merchants, and buttons to clear them
- Added an export button to the settings UI to export and import the system specific settings
Expand Down
1 change: 1 addition & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ Item Piles is designed to work in all systems, but may require some setup for it
- [Savage Worlds Adventure Edition](https://foundryvtt.com/packages/swade)
- [Tormenta20](https://foundryvtt.com/packages/tormenta20)
- [Warhammer Fantasy Roleplay 4th Ed](https://foundryvtt.com/packages/wfrp4e)
- [Blade Runner](https://foundryvtt.com/packages/blade-runner)
- [Splittermond](https://foundryvtt.com/packages/splittermond)
- [Starfinder](https://foundryvtt.com/packages/sfrpg)
- [Star Wars: Saga Edition](https://github.com/kypvalanx/Foundry-VTT-StarWars-SagaEdition)
Expand Down
4 changes: 4 additions & 0 deletions src/systems.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import a5e from "./systems/a5e.js";
import darkHeresy2e from "./systems/dark-heresy.js";
import naheulbeuk from "./systems/naheulbeuk.js";
import icrpgme from "./systems/icrpgme.js";
import bladeRunner from "./systems/blade-runner.js";
// ↑ IMPORT SYSTEMS HERE ↑

/**
Expand Down Expand Up @@ -60,6 +61,9 @@ export const SYSTEMS = {
"d35e": {
"latest": d35e
},
"blade-runner": {
"latest": bladeRunner
},
"sfrpg": {
"latest": sfrpg
},
Expand Down
110 changes: 110 additions & 0 deletions src/systems/blade-runner.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
export default {

"VERSION": "1.0.0",

// The actor class type is the type of actor that will be used for the default item pile actor that is created on first item drop.
"ACTOR_CLASS_TYPE": "loot",

// The item quantity attribute is the path to the attribute on items that denote how many of that item that exists
"ITEM_QUANTITY_ATTRIBUTE": "system.qty",

// The item price attribute is the path to the attribute on each item that determine how much it costs
"ITEM_PRICE_ATTRIBUTE": "system.cost",

// Item filters actively remove items from the item pile inventory UI that users cannot loot, such as spells, feats, and classes
"ITEM_FILTERS": [
{
"path": "type",
"filters": "upgrade,specialty,injury"
}
],

"UNSTACKABLE_ITEM_TYPES": ["weapon", "armor"],

"PILE_DEFAULTS": {
merchantColumns: [{
label: "FLBR.ItemAvailability",
path: "system.availability",
formatting: "{#}",
mapping: {
5: 'FLBR.ITEM_AVAILABILITY.Incidental',
4: 'FLBR.ITEM_AVAILABILITY.Standard',
3: 'FLBR.ITEM_AVAILABILITY.Premium',
2: 'FLBR.ITEM_AVAILABILITY.Rare',
1: 'FLBR.ITEM_AVAILABILITY.Luxury',
}
}]
},

// This function is an optional system handler that specifically transforms an item when it is added to actors
"ITEM_TRANSFORMER": async (itemData) => {
if (itemData?.system?.mounted) itemData.system.mounted = false;
return itemData;
},

// Item similarities determines how item piles detect similarities and differences in the system
"ITEM_SIMILARITIES": ["name", "type"],

// Currencies in item piles is a versatile system that can accept actor attributes (a number field on the actor's sheet) or items (actual items in their inventory)
// In the case of attributes, the path is relative to the "actor.system"
// In the case of items, it is recommended you export the item with `.toObject()` and strip out any module data
"CURRENCIES": [
{
type: "attribute",
name: "FLBR.HEADER.ChinyenPoints",
img: "icons/commodities/currency/coins-plain-stack-silver.webp",
abbreviation: "{#}C¥",
data: {
path: "system.metaCurrencies.chinyen",
},
primary: true,
exchangeRate: 1
},
{
type: "attribute",
name: "FLBR.HEADER.PromotionPoints",
img: "icons/commodities/treasure/medal-ribbon-gold-blue.webp",
abbreviation: "{#}PP",
data: {
path: "system.metaCurrencies.promotion",
},
primary: false,
exchangeRate: 1
},
{
type: "attribute",
name: "FLBR.HEADER.HumanityPoints",
img: "icons/sundries/gaming/chess-knight-white.webp",
abbreviation: "{#}HP",
data: {
path: "system.metaCurrencies.humanity",
},
primary: false,
exchangeRate: 1
}
],

"VAULT_STYLES": [
{
path: "system.availability",
value: 1,
styling: {
"box-shadow": "inset 0px 0px 7px 0px rgba(255,119,0,1)"
}
},
{
path: "system.availability",
value: 2,
styling: {
"box-shadow": "inset 0px 0px 7px 0px rgba(255,0,247,1)"
}
},
{
path: "system.availability",
value: 3,
styling: {
"box-shadow": "inset 0px 0px 7px 0px rgba(0,136,255,1)"
}
}
]
}

0 comments on commit 0beabfa

Please sign in to comment.