diff --git a/CHANGELOG.md b/CHANGELOG.md index e5edbd0a..26cac14f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,16 +1,38 @@ +# v11.11.0 + +#### Enhancements +- [#388] Hit locations order on creature/npc sheets +- [#402] Add carry capacity to all gear tabs +- [#403] Add CSS styling for Journal entries +- [#405] Dynamically link original ticket URL when generating Release Notes document +- [#408] Add min-width to Actor sheets to avoid the layout breaking when shrunk too small + +#### Bugs +- [#397] Dice So Nice only show for the player who rolls +- [#404] Bogus permission error when closing Item from locked compendium +- [#411] When scrapping junk, unable to locate Scrapper perk by name for people using Babele to translate compendium items. + +#### Chores +- [#399] Merge French translation updates from Crowdin +- [#406] Merge French and Polish translation updates from Crowdin + +*Many thanks to **extazz17** for contributed fixes in this build* + +--- + # v11.10.1 -## Bugs +#### Bugs - [#389] Dice So Nice stopped showing for most rolls -## Chores +#### Chores - [#387] Merge French translation updates from Crowdin --- # v11.10.0 -## Enhancement +#### Enhancement - [#334] Add a setting to consumables to specify the amount of rad damage CD that are rolled when consuming it - [#348] Improve the way Power Armor is handled on the sheets @@ -36,7 +58,7 @@ - [#376] Equipping an item in your inventory should also unstash it - [#377] Provide a built in Macro to open the Scavenging Help web tool -## Bugs +#### Bugs - [#356] Laser Gun Damage Value Incorrect - [#365] Typo in description of all Grognak the Barbarian magazines - [#368] 10mm Auto Pistol price and weight wrong @@ -47,7 +69,7 @@ - [#372] Available ammo for a weapon missing from favourite and main weapons list - [#384] Available shots calculation not updated immediately a new ammo item is added to the character -## Chore +#### Chore - [#357] Ensure there are no compatibility issues with Foundry V12 - [#358] globalThis.mergeObject must now be accessed via foundry.utils.mergeObject *(Foundry v12 compatibility)* - [#359] globalThis.duplicate must now be accessed via foundry.utils.duplicate *(Foundry v12 compatibility)* @@ -66,10 +88,10 @@ # v11.9.4 -## Enhancent +#### Enhancent - [#352] Add the ability to easily adjust an NPC's calculated Carry Weight on the NPC sheet -## Bugs +#### Bugs - [#347] Availability Roll trigger not available on Robot character sheet - [#350] Don't show the Luck points field on Creatures as they don't have them - [#351] NPC has no default max HP set @@ -78,29 +100,29 @@ # v11.9.3 -## Enhancements +#### Enhancements - [#343] Add additional logging around compendium filtering to help with debugging issues -## Chores +#### Chores - [#342] Merge French translation updates from Crowdin --- # v11.9.2 -## Bugs +#### Bugs - [#339] Source filtering not working correctly # v11.9.1 -## Bugs +#### Bugs - [#336] Sleep processing fails due to error in player online checks --- # v11.9.0 -## Enhancements +#### Enhancements - [#182] Allow weapons to be configured to use custom skills * A new "Custom" weapon type has been added which when selected allows you to specify which skill to use, and optionally override the attribute to be used with that skill. In order to become available for selection custom skills must exist in a compendium. @@ -129,11 +151,11 @@ * The example Fallout custom data module has been updated with an example of how to add new sources to your own content modules: https://github.com/Muttley/foundryvtt-fallout-custom-module/releases/tag/v1.1.0 -## Bugs +#### Bugs - [#267] Actors should not take radiation damage from consumables if they are immune, and if not immune the amount of rads taken should be adjusted by an actor's base resistance. - [#320] Food item deleted or quantity reduced even though unable to eat as full -## Chores +#### Chores - [#310] Merge French translation updates from Crowdin - [#313] Remove unused armorType field from apparel item schema - [#314] Rename appareltype field in apparel item schema to apparelType for field name consistency purposes @@ -143,24 +165,24 @@ # v11.8.1 -## Bugs +#### Bugs - [#307] Update release to latest compedium data --- # v11.8.0 -## Enhancements +#### Enhancements - [#283] Display Fire Rate outside of Weapon Item - [#290] Default new character SPECIAL to 5 as those are the defaults for character creation - [#300] Automatically detect that a weapon is owned by a Creature and not an NPC to simplify configuration - [#303] Improve error feedback when trying to use a misconfigured weapon -## Bugs +#### Bugs - [#291] Remove bogus "Boxing Times (Copy)" from compendiums - [#302] Creature Attribute and Creature Skill weapon settings can appear configured when they're not -## Chores +#### Chores - [#289] Merge Polish translation updates from Crowdin - [#292] Merge French translation updates from Crowdin - [#299] Merge German translation updates from Crowdin @@ -171,7 +193,7 @@ # v11.7.0 -## Enhancements +#### Enhancements - [#269] Add ability to map your own images onto core compendium items An example custom module which is pre-configured with various empty compendiums and set up for item image mapping can be downloaded from here: @@ -184,7 +206,7 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.6.1 -## Enhancements +#### Enhancements - [#280] Cache available Ammo items in compendiums at startup to improve performance on slow systems with large amounts of compendium items * This will mean that if you add a new ammo item type it won't be available on Weapon item sheets until the system is reloaded. @@ -192,20 +214,20 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.6.0 -## Enhancements +#### Enhancements - [#244] Add support for Minion NPC type - [#254] Creature & NPC Poison DR can have locational values * The system will attempt to migrate existing Poison DR values, but as it was a free text field and there is no way of knowing the format people have used, it is advisable to check all NPC/Creature NPCs to ensure the Poison DR values are correct. - [#255] Add shortcuts to fill whole DR column at once for Creatures / NPCs who have the same DR for all locations - [#273] Add Salvage TN field to Creature sheets and rename Gear tab to Salvage -## Bugfixes +#### Bugfixes - [#258] Typo on weapons mod tab - [#260] Custom skill name localization failing and only displaying "FALLOUTUTILS" instead of name - [#266] Attacking with Fire Rate does not work properly with ammunition charges - [#270] Well Rested bonus causes issues with setting current health value -## Chores +#### Chores - [#259] Merged French translation updates from Crowdin - [#262] Merged French and Polish translation updates from Crowdin @@ -213,7 +235,7 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.5.0 -## Enhancements +#### Enhancements - [#222] Add Butchery section to Creature sheet - [#227] Added 10mm Auto Pistol, Buzz-Saw, Flamer, Laser Emitter and Pincer robot arm attachment weapons - [#229] Add ammo items for thrown and explosive weapons @@ -228,7 +250,7 @@ This can be used to help bootstrap your own custom data for Fallout. - [#248] Add ability to specify quantity roll formula on Ammo items - [#249] Add ability to roll new Ammo quantities directly from the Ammo item sheet -## Bugfixes +#### Bugfixes - [#225] Weapon Qualities and Damage Effects not showing number in chat - [#226] Bows using STR attribute when they should use AGI - [#231] Default item sheet width needs to be wider as Quantity label wrapping @@ -236,30 +258,30 @@ This can be used to help bootstrap your own custom data for Fallout. - [#237] Magazines chat message not displaying the Publication and still displaying which Issue - [#247] No icon to consume consumables -## Chores +#### Chores - Merged various i18n changes from Crowdin --- # v11.4.3 -## Enhancements +#### Enhancements - [#220] Default Character, Robot and Settlement actor types to have linked actor data by default -## Bugfixes +#### Bugfixes - [#221] Sort owned items on Creature/NPC sheets -## Chores +#### Chores - [#218] Merged i18n changes from Crowdin --- # v11.4.2 -## Enhancements +#### Enhancements - [#213] Add ability to toggle Radiation and Poison immunity on character and NPC sheets by clicking the Radiation or Poison icon in the resistance section character sheets. -## Bugfixes +#### Bugfixes - [#212] Missing material consumables: Asbestos, Bloatfly Gland, Blood Sac, Bloodleaf, Glowing Fungus, Hubflower, Radscorpion Stinger, Stingwing Barb - [#216] Don't show "undefined" if an out of date Weapon Quality or Damage Effect still exists in Weapon item @@ -267,10 +289,10 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.4.1 -## Enhancements +#### Enhancements - [#197] Added new Bows weapon category -## Bugfixes +#### Bugfixes - [#196] Added missing Placed, Recoil and Surge weapon qualities - [#198] Apparel Missing Info - [#199] Soups, Stews and Noodle Cup missing thirst reduction value @@ -283,7 +305,7 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.4.0 -## Enhancements +#### Enhancements - [#141] Add ability to specify Normal, Mighty/Notable, Legendary/Major categories on Creature and NPC sheets * The migration script will attempt to work out which category an NPC should be by correlating its level and XP reward. If that's not possible a warning message will prompt you so you can manually check individual NPC sheets and set the correct category. @@ -340,13 +362,13 @@ This can be used to help bootstrap your own custom data for Fallout. - [#191] Give ability to disable automatic XP calculation for people who wish to homebrew the level break points -## Bugfixes +#### Bugfixes - [#144] Add conversion Lbs/Kgs for Materials - [#147] Skill names not localized in skill roll chat messages - [#165] Show correct weight system on encumbrance bar when system is set to Kg - [#173] Inline rolls almost unreadable on item chat cards and sheet descriptions -## Chores +#### Chores - [#174] Tidy up Weapon Quality and Damage Effect data in schema - [#175] Retire the hovers.json facility as we are allowed to have this information in the i18n files for use in tooltips * If you are able, please help out with translating these new tooltips (and other strings) via the [Crowdin Project](https://crowdin.com/project/foundryvtt-fallout). @@ -358,7 +380,7 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.3.6 -## Bugfixes +#### Bugfixes - [#137] Ammo counting code can incorrectly match non-ammo items - [#138] Character sheet rendered before all data ready @@ -366,30 +388,30 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.3.5 -## Bugfixes +#### Bugfixes - [#128] Modifying Creature actors fails -## Chores +#### Chores - [#127] Merge localization updates from Crowdin --- # v11.3.4 -## Bugfixes +#### Bugfixes - [#125] Updating NPC name doesn't get reflected immediately in a related settlement sheet --- # v11.3.3 -## Enhancements +#### Enhancements - [#120] Group settlement stockpile items by type -## Bugfixes +#### Bugfixes - [#121] Settler data getting corrupted after adding six or more -## Chores +#### Chores - [#118] Merged more language updates from Crowdin *The French translation is now 100% complete. Many thanks to Starbuck for their work on this.* @@ -398,21 +420,21 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.3.2 -## Chores +#### Chores - [#113] Merged language updates from Crowdin --- # v11.3.1 -## Bugfix +#### Bugfix - [#110] Migrations not running correctly --- # v11.3.0 -## Enhancements +#### Enhancements - [#13] Add new Settlement Actor and corresponding sheet - [#37] The following character sheet fields are now auto-calculated and have new variables that can be used to adjust them with Active Effects if needed: @@ -459,7 +481,7 @@ This can be used to help bootstrap your own custom data for Fallout. - [#94] Add new item type for settlement Objects and Structures - [#99] Lock and add tooltips to sheet fields that are being overridden by active effects -## Bugfixes +#### Bugfixes - [#34] Weapon Qualities and Damage Effects should be displayed in (localised) alphabetical order on Weapon item sheet - [#51] Item quantity boxes polluting actor data when altered - [#60] Use localized skill names to sort and display alphabetically on Character sheet @@ -471,7 +493,7 @@ This can be used to help bootstrap your own custom data for Fallout. - [#74] Chems are able to heal HP as well, so the field should be available on the item sheet for them - [#93] Custom skill names not displayed correctly due to i18n translation missing -## Chores +#### Chores - [#33] Merged Polish language updates from Crowdin - [#35] Remove usage of deprecated `ActiveEffect._getSourceName()` - [#36] Remove usage of deprecated `ActiveEffect#label` @@ -485,33 +507,33 @@ This can be used to help bootstrap your own custom data for Fallout. # v11.2.6 -## Bugfixes +#### Bugfixes - [#27] Text for some item sheets seems to be broken - [#28] Editing/Deleting items broken due to missing data tag - [#29] Encumbrance not being calculated correctly -## Chores +#### Chores - Merged Polish translation updates from Crowdin --- # v11.2.5 -## Chores +#### Chores - Translation updates are now all handled via Crowdin to simplify the process of contributing translations. See here for more details: https://github.com/Muttley/foundryvtt-fallout/wiki/Other-ways-to-contribute#translation --- # v11.2.4 -## Bugfixes +#### Bugfixes - [#19] Actor skills being overwritten when an Actor is duplicated --- # v11.2.3 -## Bugfixes +#### Bugfixes - [#17] Item preview/expansion on Actor sheets doesn't display anything --- diff --git a/i18n/fr.yaml b/i18n/fr.yaml index ccd980bd..6b0d3e7d 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -48,7 +48,7 @@ FALLOUT.APPAREL.armor: Armure FALLOUT.APPAREL.clothing: Vêtement FALLOUT.APPAREL.headgear: Couvre-chefs FALLOUT.APPAREL.outfit: Tenue -FALLOUT.APPAREL.plating: Couvre-Chef +FALLOUT.APPAREL.plating: Blindage FALLOUT.APPAREL.powerArmor: Armure Assistée FALLOUT.AvailabilityRoll.result.body: La rareté maximale disponible est de {rarity} FALLOUT.AvailabilityRoll.result.title: Lancer de disponibilité @@ -134,7 +134,7 @@ FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.body: "{actorName} a ré FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.title: Résistance aux radiations FALLOUT.CHAT_MESSAGE.radiation_from_consumable.body: "{actorName} subit des dégâts de radiation de {radsTaken} en consommant {itemName}" FALLOUT.CHAT_MESSAGE.radiation_from_consumable.title: Dégât de radiation -FALLOUT.CHAT_MESSAGE.SalvageJunk.Scrapper: Scrapper +FALLOUT.CHAT_MESSAGE.SalvageJunk.Scrapper: Recycleur FALLOUT.CHEM: Drogues FALLOUT.ChemDuration.brief: Brève FALLOUT.ChemDuration.instant: Instantanée @@ -257,14 +257,14 @@ FALLOUT.SKILL.Speech: Discours FALLOUT.SKILL.Survival: Survie FALLOUT.SKILL.Throwing: Projectiles FALLOUT.SKILL.Unarmed: Mains nues -FALLOUT.SOURCE_TITLE.aat_fully_operational: "Astoundingly Awesome Tales #2: Fully Operational" -FALLOUT.SOURCE_TITLE.aat_hunted: "Astoundingly Awesome Tales #4: Hunted!" -FALLOUT.SOURCE_TITLE.aat_orange_sky: "Astoundingly Awesome Tales #1: Orange Colored Sky" -FALLOUT.SOURCE_TITLE.aat_skull_canyon: "Astoundingly Awesome Tales #3: Showdown in Skull Canyon" +FALLOUT.SOURCE_TITLE.aat_fully_operational: "Astoundingly Awesome Tales #2 : Totalement Opérationnel" +FALLOUT.SOURCE_TITLE.aat_hunted: "Astoundingly Awesome Tales #4 : Traqué !" +FALLOUT.SOURCE_TITLE.aat_orange_sky: "Astoundingly Awesome Tales #1 : Un ciel couleur d'orange" +FALLOUT.SOURCE_TITLE.aat_skull_canyon: "Astoundingly Awesome Tales #3 : Confrontation à Skull Canyon" FALLOUT.SOURCE_TITLE.core_rulebook: Livre de base FALLOUT.SOURCE_TITLE.enclave_remnants: "Pack PNJ #2 : Vestiges de l'Enclave" -FALLOUT.SOURCE_TITLE.gm_toolkit: "Gamemaster's Toolkit" -FALLOUT.SOURCE_TITLE.map_pack_vault: "Map Pack #1: Vault" +FALLOUT.SOURCE_TITLE.gm_toolkit: "Kit du meneur de jeu" +FALLOUT.SOURCE_TITLE.map_pack_vault: "Pack de Carte #1 : Abri" FALLOUT.SOURCE_TITLE.rust_devils: "Pack PNJ #1 : Les Rust Devils" FALLOUT.SOURCE_TITLE.settlers_guide: Settler's Guide Book FALLOUT.SOURCE_TITLE.wanderers_guide: Wanderer's Guide Book diff --git a/i18n/pl.yaml b/i18n/pl.yaml index e666bf22..e345a6ab 100644 --- a/i18n/pl.yaml +++ b/i18n/pl.yaml @@ -14,7 +14,7 @@ FALLOUT.AbilityPer: Percepcja FALLOUT.AbilityStr: Siła FALLOUT.actor.inventory.materials.common: Pospolity FALLOUT.actor.inventory.materials.junk: Złom -FALLOUT.actor.inventory.materials.junkSalvageControl: Salvage Junk +FALLOUT.actor.inventory.materials.junkSalvageControl: Odzyskaj śmieci FALLOUT.actor.inventory.materials.label: Materiały FALLOUT.actor.inventory.materials.rare: Bardzo rzadki FALLOUT.actor.inventory.materials.uncommon: Rzadki @@ -26,9 +26,9 @@ FALLOUT.Add: Dodaj FALLOUT.APP.ChemDoseManager.ResetAllButton: Resetuj wszystko FALLOUT.APP.ChemDoseManager.ResetAllHeader: Zresetuj wszystkie dawki środków chemicznych FALLOUT.APP.ChemDoseManager.title: Dawki środków chemicznych -FALLOUT.APP.ItemTypeMenu.title: Select Item Type -FALLOUT.APP.Loading.body: Searching the Wastelands... -FALLOUT.APP.Loading.title: Loading +FALLOUT.APP.ItemTypeMenu.title: Wybierz typ przedmiotu +FALLOUT.APP.Loading.body: Przeszukiwanie pustkowi... +FALLOUT.APP.Loading.title: Wczytywanie FALLOUT.APP.ModuleArtConfig.items: Przedmioty FALLOUT.APP.ModuleArtConfig.title: Ustaw obrazy FALLOUT.APP.PartySleep.chat_message: Drużyna śpi przez {duration}. @@ -37,22 +37,22 @@ FALLOUT.APP.PartySleep.hour: 1 godzina FALLOUT.APP.PartySleep.hours: "{length} godzin" FALLOUT.APP.PartySleep.safe_location: Bezpieczna lokacja? FALLOUT.APP.PartySleep.title: Drużyna Śpi -FALLOUT.APP.SalvageJunk.AdvanceGameTime: Advance Game Time -FALLOUT.APP.SalvageJunk.error.noJunkToSalvage: You don't have any junk to salvage -FALLOUT.APP.SalvageJunk.gameTimeAdvanced: Game time advanced by {time} -FALLOUT.APP.SalvageJunk.selectedAmount: Salvaging {amount} Junk -FALLOUT.APP.SalvageJunk.start: Start Salvaging -FALLOUT.APP.SalvageJunk.time: This will take {time} -FALLOUT.APP.SalvageJunk.title: Salvage Junk +FALLOUT.APP.SalvageJunk.AdvanceGameTime: Przyspiesz Czas Gry +FALLOUT.APP.SalvageJunk.error.noJunkToSalvage: Nie masz żadnych śmieci do odzyskania +FALLOUT.APP.SalvageJunk.gameTimeAdvanced: Czas gry przyśpieszony o {time} +FALLOUT.APP.SalvageJunk.selectedAmount: Odzyskano {amount} Śmieci +FALLOUT.APP.SalvageJunk.start: Rozpocznij odzyskiwanie +FALLOUT.APP.SalvageJunk.time: Zajmie Ci to {time} +FALLOUT.APP.SalvageJunk.title: Odzyskaj śmieci FALLOUT.APPAREL.armor: Pancerz FALLOUT.APPAREL.clothing: Odzież FALLOUT.APPAREL.headgear: Nakrycie głowy FALLOUT.APPAREL.outfit: Strój FALLOUT.APPAREL.plating: Poszycie FALLOUT.APPAREL.powerArmor: Pancerz wspomagany -FALLOUT.AvailabilityRoll.result.body: The maximum rarity available is {rarity} -FALLOUT.AvailabilityRoll.result.title: Availability Roll -FALLOUT.AvailabilityRoll.tooltip: Roll for Availability +FALLOUT.AvailabilityRoll.result.body: Maksymalna dostępna rzadkość to {rarity} +FALLOUT.AvailabilityRoll.result.title: Rzut na dostępność +FALLOUT.AvailabilityRoll.tooltip: Rzut w celu ustalenia dostępności FALLOUT.BEVERAGE: Napoje FALLOUT.BODYLOCATION_ABBR.character.armL: LR FALLOUT.BODYLOCATION_ABBR.character.armR: PR @@ -130,11 +130,11 @@ FALLOUT.CHAT_MESSAGE.consumed.chem.title: Zużyte środki chemiczne FALLOUT.CHAT_MESSAGE.consumed.food.title: Zjedzone jedzenie FALLOUT.CHAT_MESSAGE.consumed.food.warn_full: Jesteś już pełen i nie możesz zjeść więcej FALLOUT.CHAT_MESSAGE.consumed.other.title: Zużyte inne -FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.body: "{actorName} resisted the {baseRadDamage} radiation damage from consuming {itemName}" -FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.title: Radiation Resisted -FALLOUT.CHAT_MESSAGE.radiation_from_consumable.body: "{actorName} takes {radsTaken} radiation damage from consuming {itemName}" +FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.body: "{actorName} oparł się {baseRadDamage} obrażeniom od promieniowania po spożyciu {itemName}" +FALLOUT.CHAT_MESSAGE.radiation_from_consumable_resisted.title: Radiacja odparta +FALLOUT.CHAT_MESSAGE.radiation_from_consumable.body: "{actorName} otrzymuje {radsTaken} obrażeń od radiacji po spożyciu {itemName}" FALLOUT.CHAT_MESSAGE.radiation_from_consumable.title: Obrażenia Radiacyjne -FALLOUT.CHAT_MESSAGE.SalvageJunk.Scrapper: Scrapper +FALLOUT.CHAT_MESSAGE.SalvageJunk.Scrapper: Złomiarz FALLOUT.CHEM: Chemikalia FALLOUT.ChemDuration.brief: Krótkotrwały FALLOUT.ChemDuration.instant: Natychmiastowy @@ -157,31 +157,31 @@ FALLOUT.EffectDelete: Usuń Efekt FALLOUT.EffectEdit: Edytuj Efekt FALLOUT.EffectToggle: Zaznacz Efekt FALLOUT.equipped: Wyposażone -FALLOUT.ERRORS.ThisWeaponIsBroken: This weapon is broken and can no longer be used. -FALLOUT.ERRORS.UnableToDetermineWeaponAttribute: Unable to determine the attribute to use for this weapon. -FALLOUT.ERRORS.UnableToDetermineWeaponSkill: Unable to determine the skill to use for this weapon. -FALLOUT.ERRORS.WeaponHasMissingCreatureConfiguration: This weapon does not have a Creature Attribute and/or Creature Skill specified. +FALLOUT.ERRORS.ThisWeaponIsBroken: Ta broń jest uszkodzona i nie może być już używana. +FALLOUT.ERRORS.UnableToDetermineWeaponAttribute: Nie można określić atrybutu używanego dla tej broni. +FALLOUT.ERRORS.UnableToDetermineWeaponSkill: Nie można określić atrybutu używanego dla tej broni. +FALLOUT.ERRORS.WeaponHasMissingCreatureConfiguration: Ta broń nie posiada Atrybutu Stworzenia i/lub Umiejętności Stworzenia. FALLOUT.FOOD: Jedzenie -FALLOUT.Form.SelectCompendiumItem.Error.MaxChoicesReached: You can only select a maximum of {maxChoices} of this Item type. -FALLOUT.Form.SelectCompendiumItem.Error.NoItemsFound: Unable to find items of the correct type in the available compendiums. -FALLOUT.Form.SelectCompendiumItem.prompt: Select Item... -FALLOUT.Form.SelectCompendiumItem.title: Choose Items -FALLOUT.Form.SelectCompendiumItem.tooltip: Add From Compendiums -FALLOUT.Form.SelectItem.title: Choose {type} -FALLOUT.Form.SourceFilters.AllUsed: All sources are currently allowed -FALLOUT.Form.SourceFilters.hint: If populated, only sources included in this list will be used by any part of the system which automatically pulls items from Compendiums. -FALLOUT.Form.SourceFilters.prompt: Select Source... -FALLOUT.Form.SourceFilters.TheseUsed: Only the following sources will be allowed -FALLOUT.Form.SourceFilters.title: Source Filters +FALLOUT.Form.SelectCompendiumItem.Error.MaxChoicesReached: Możesz wybrać maksymalnie {maxChoices} przedmiotów tego typu. +FALLOUT.Form.SelectCompendiumItem.Error.NoItemsFound: Nie można znaleźć przedmiotów odpowiedniego typu w dostępnych kompendiach. +FALLOUT.Form.SelectCompendiumItem.prompt: Wybierz Przedmiot... +FALLOUT.Form.SelectCompendiumItem.title: Wybierz Przedmioty +FALLOUT.Form.SelectCompendiumItem.tooltip: Dodaj z Kompendiów +FALLOUT.Form.SelectItem.title: Wybierz {type} +FALLOUT.Form.SourceFilters.AllUsed: Wszystkie źródła są obecnie dozwolone +FALLOUT.Form.SourceFilters.hint: Jeśli lista jest wypełniona, tylko źródła z tej listy będą używane przez jakąkolwiek część systemu, która automatycznie pobiera przedmioty z kompendiów. +FALLOUT.Form.SourceFilters.prompt: Wybierz Źródło... +FALLOUT.Form.SourceFilters.TheseUsed: Dozwolone będą tylko następujące źródła +FALLOUT.Form.SourceFilters.title: Filtry źródeł FALLOUT.HEALTH.current: Obecne zdrowie FALLOUT.HEALTH.health: Zdrowie FALLOUT.HEALTH.max: Maksymalne Zdrowie -FALLOUT.Item.PowerArmor.Attach: Attach -FALLOUT.Item.PowerArmor.Attached: Attached -FALLOUT.Item.PowerArmor.AttachedToFrame: Attached to Frame -FALLOUT.Item.PowerArmor.Frame: Frame -FALLOUT.Item.PowerArmor.IsFrame: Is Frame -FALLOUT.Item.PowerArmor.Pieces: Power Armor Pieces +FALLOUT.Item.PowerArmor.Attach: Dołącz +FALLOUT.Item.PowerArmor.Attached: Dołączone +FALLOUT.Item.PowerArmor.AttachedToFrame: Dołączone do Ramy +FALLOUT.Item.PowerArmor.Frame: Rama +FALLOUT.Item.PowerArmor.IsFrame: Jest Ramą +FALLOUT.Item.PowerArmor.Pieces: Elementy Pancerza Wspomaganego FALLOUT.LEVEL.CurrentXP: Obecne PD FALLOUT.LEVEL.Level: Poziom FALLOUT.LEVEL.NextXP: PD na następny poziom @@ -263,7 +263,7 @@ FALLOUT.SOURCE_TITLE.aat_orange_sky: "Astoundingly Awesome Tales #1: Orange Colo FALLOUT.SOURCE_TITLE.aat_skull_canyon: "Astoundingly Awesome Tales #3: Showdown in Skull Canyon" FALLOUT.SOURCE_TITLE.core_rulebook: Podręcznik Główny FALLOUT.SOURCE_TITLE.enclave_remnants: "Pakiet BN #2: Pozostałości Enklawy" -FALLOUT.SOURCE_TITLE.gm_toolkit: "Gamemaster's Toolkit" +FALLOUT.SOURCE_TITLE.gm_toolkit: "Zestaw Narzędzi Mistrza Gry" FALLOUT.SOURCE_TITLE.map_pack_vault: "Map Pack #1: Vault" FALLOUT.SOURCE_TITLE.rust_devils: "Pakiet BN #1: Rdzawe Diabły" FALLOUT.SOURCE_TITLE.settlers_guide: Przewodnik Osadnika @@ -289,7 +289,7 @@ FALLOUT.TEMPLATES.Attack: Atak FALLOUT.TEMPLATES.ATTACKS: Ataki FALLOUT.TEMPLATES.Attribute: Cecha FALLOUT.TEMPLATES.Attributes: Cechy -FALLOUT.TEMPLATES.Base_Damage: Base Damage +FALLOUT.TEMPLATES.Base_Damage: Obrażenia Podstawowe FALLOUT.TEMPLATES.Butchery: Mięso FALLOUT.TEMPLATES.ButcheryTooltip: PT testu rzeźnictwa FALLOUT.TEMPLATES.Compl: Komp. @@ -334,8 +334,8 @@ FALLOUT.TEMPLATES.Creature_Attribute: Cechy Stwora FALLOUT.TEMPLATES.Creature_Skill: Umiejętności Stworzenia FALLOUT.TEMPLATES.current: obecny FALLOUT.TEMPLATES.CurrentLeader: Aktualny Lider -FALLOUT.TEMPLATES.CustomAttribute: Custom Attribute -FALLOUT.TEMPLATES.CustomSkill: Custom Skill +FALLOUT.TEMPLATES.CustomAttribute: Atrybut niestandardowy +FALLOUT.TEMPLATES.CustomSkill: Umiejętność niestandardowy FALLOUT.TEMPLATES.Damage_Effects: Efekty obrażeń FALLOUT.TEMPLATES.DAMAGE_EFFECTS: Efekty Obrażeń FALLOUT.TEMPLATES.DAMAGE_TYPE: Typy Obrażeń @@ -354,7 +354,7 @@ FALLOUT.TEMPLATES.Effects: Efekty FALLOUT.TEMPLATES.Encumbrance_Level: Poziom Przeciążenia FALLOUT.TEMPLATES.ENG: ENERGETYCZNE FALLOUT.TEMPLATES.FAVORITE_WEAPONS: Ulubiona Broń -FALLOUT.TEMPLATES.Fire_Rate: Fire Rate +FALLOUT.TEMPLATES.Fire_Rate: Szybkostrzelność FALLOUT.TEMPLATES.FIRE_RATE: Szybkostrzelność FALLOUT.TEMPLATES.Gear: Sprzęt FALLOUT.TEMPLATES.GENERAL: Ogólny @@ -367,7 +367,7 @@ FALLOUT.TEMPLATES.Injuries: Urazy FALLOUT.TEMPLATES.INJURIES: RANY FALLOUT.TEMPLATES.Injury_Left_Click: Rana (kliknij lewym) FALLOUT.TEMPLATES.Irradiated: Skażony -FALLOUT.TEMPLATES.IrradiatedDamageDice: Irradiated Damage Dice +FALLOUT.TEMPLATES.IrradiatedDamageDice: Kości obrażeń od radiacji FALLOUT.TEMPLATES.Issue: Problem FALLOUT.TEMPLATES.kgs: Kg FALLOUT.TEMPLATES.lbs: Lb @@ -375,13 +375,13 @@ FALLOUT.TEMPLATES.Learned: Nauczony FALLOUT.TEMPLATES.LOCATIONS_INJURIES: Lokalizacje i rany FALLOUT.TEMPLATES.Locations: Lokalizacja FALLOUT.TEMPLATES.Luck: Szczęście -FALLOUT.TEMPLATES.MaterialsRecoverd: Materials Recovered +FALLOUT.TEMPLATES.MaterialsRecoverd: Odzyskane materiały FALLOUT.TEMPLATES.MaterialsRequired: Wymagane materiały FALLOUT.TEMPLATES.MAX_PARTY_AP: Maksymalne PA Drużyny FALLOUT.TEMPLATES.max: maks FALLOUT.TEMPLATES.MAX: MAKS -FALLOUT.TEMPLATES.Melee_Bonus: Melee Bonus -FALLOUT.TEMPLATES.Melee_Damage: Melee Damage +FALLOUT.TEMPLATES.Melee_Bonus: Bonus do walki wręcz +FALLOUT.TEMPLATES.Melee_Damage: Obrażenia Wręcz FALLOUT.TEMPLATES.Mod_Type: Typ Modyfikacji FALLOUT.TEMPLATES.MODULES: Modyfikacje FALLOUT.TEMPLATES.Name_Prefix: Element nazwy @@ -401,7 +401,7 @@ FALLOUT.TEMPLATES.Qualities: Jakość FALLOUT.TEMPLATES.RAD: RADIACYJNE FALLOUT.TEMPLATES.Radiation_Healed: Wyleczone napromieniowanie FALLOUT.TEMPLATES.RADIATION: RADIACJA -FALLOUT.TEMPLATES.Range: Range +FALLOUT.TEMPLATES.Range: Zasięg FALLOUT.TEMPLATES.RANGE: Zasięg FALLOUT.TEMPLATES.Rank: Rangi FALLOUT.TEMPLATES.Ranks_current_maximum: Rangi [obecne/maksymalne] @@ -427,7 +427,7 @@ FALLOUT.TEMPLATES.Successes: Sukcesy FALLOUT.TEMPLATES.Tag: Specjalizacja FALLOUT.TEMPLATES.Tear: Zużycie i ścieranie FALLOUT.TEMPLATES.Thirst_Reduction: Redukcja pragnienia -FALLOUT.TEMPLATES.TimeTaken: Time Taken +FALLOUT.TEMPLATES.TimeTaken: Czas wykonania FALLOUT.TEMPLATES.TN: CEL FALLOUT.TEMPLATES.TRAIT: ATUT FALLOUT.TEMPLATES.Treated_injury_Right_Click: Wylecz Ranę (Kliknij Prawym) @@ -448,12 +448,12 @@ FALLOUT.TEMPLATES.Weapon: Broń FALLOUT.TEMPLATES.WeaponName: Nazwa Broni FALLOUT.TEMPLATES.Weapons: Bronie FALLOUT.TEMPLATES.WellRested: Dobrze Wypoczęty -FALLOUT.TIME.DAYS_PLURAL: "{days} Days" -FALLOUT.TIME.DAYS_SINGULAR: "{days} Day" -FALLOUT.TIME.HOURS_PLURAL: "{hours} Hours" -FALLOUT.TIME.HOURS_SINGULAR: "{hours} Hour" -FALLOUT.TIME.MINUTES_PLURAL: "{mins} Minutes" -FALLOUT.TIME.MINUTES_SINGULAR: "{mins} Minute" +FALLOUT.TIME.DAYS_PLURAL: "{days} Dni" +FALLOUT.TIME.DAYS_SINGULAR: "{days} Dzień" +FALLOUT.TIME.HOURS_PLURAL: "{hours} Godziny" +FALLOUT.TIME.HOURS_SINGULAR: "{hours} Godzina" +FALLOUT.TIME.MINUTES_PLURAL: "{mins} Minut" +FALLOUT.TIME.MINUTES_SINGULAR: "{mins} Minuta" FALLOUT.TOOLTIPS.DamageEffect.arc: Każdy efekt automatycznie uderza w jeden dodatkowy cel w bliskim zasięgu głównego celu. Każdy dodatkowy cel traci o połowę więcej uszkodzeń (zaokrąglonych w górę). W przeciwieństwie do Rozrzutu nie kosztuje to dodatkowej amunicji. FALLOUT.TOOLTIPS.DamageEffect.breaking: Za każdy uzyskany na kościach Efekt zmniejsz na stałe o –1 liczbę @fos[DC], jaką zapewnia celowi osłona. Jeśli wróg jej nie posiada, zmniejsz o 1 Odporność trafionej lokalizacji zgodnie z rodzajem zadanych obrażeń – fizyczne obrażenia zmniejszają Odporność fizyczną i tak dalej. FALLOUT.TOOLTIPS.DamageEffect.burst: Atak uderza o jeden dodatkowy cel w bliskim dystansie podstawowego celu dla każdego z wprowadzonych efektów. Każdy dodatkowy cel zużywa 1 dodatkową jednostkę amunicji z broni. @@ -493,7 +493,7 @@ FALLOUT.UI.Add: Dodaj FALLOUT.UI.Addictions: Uzależnienia FALLOUT.UI.APPAREL_MODS: Modyfikacje Odzieży FALLOUT.UI.AreYouSure: Jesteś pewien? -FALLOUT.UI.BaseDamage: Base Damage +FALLOUT.UI.BaseDamage: Obrażenia Podstawowe FALLOUT.UI.BOOKS_AND_MAGZS: Książki i Czasopisma FALLOUT.UI.Cancel: Anuluj FALLOUT.UI.CAPS: Kapsle @@ -568,7 +568,7 @@ FALLOUT.WEAPONS.weaponQuality.unstable_radiation: Niestabilne promieniowanie FALLOUT.WEAPONS.weaponType.bigGuns: Broń ciężka FALLOUT.WEAPONS.weaponType.bows: Łuki FALLOUT.WEAPONS.weaponType.creatureAttack: Atak Stwora -FALLOUT.WEAPONS.weaponType.custom: Custom +FALLOUT.WEAPONS.weaponType.custom: Niestandardowy FALLOUT.WEAPONS.weaponType.energyWeapons: Broń Energetyczna FALLOUT.WEAPONS.weaponType.explosives: Materiały wybuchowe FALLOUT.WEAPONS.weaponType.meleeWeapons: Broń Biała diff --git a/scss/fallout.scss b/scss/fallout.scss index 8a803185..974412a1 100644 --- a/scss/fallout.scss +++ b/scss/fallout.scss @@ -12,6 +12,7 @@ @import "global/grid"; @import "global/flex"; @import "global/buttons"; +@import "global/journal"; @import "components/aptracker"; /* Styles limited to fallout sheets */ @@ -26,3 +27,7 @@ min-height: 560px; min-width: 580px; } + +.fallout.sheet.actor { + min-width: 760px +} diff --git a/scss/global/_journal.scss b/scss/global/_journal.scss new file mode 100644 index 00000000..4d3c6e9a --- /dev/null +++ b/scss/global/_journal.scss @@ -0,0 +1,239 @@ +.system-fallout .sheet.journal-entry .journal-entry-content { + background: url(../assets/ui/journal/journal-bg.webp); +}; + +.system-fallout .journal-sheet .journal-header input[type="text"] { + background: none; + border: none; + border-radius: 0; +} + +.system-fallout .journal-sheet .journal-header .title { + font-family: $font-kaushan; + font-weight: bold; + color: black; + font-size: 2.2em; + font-style: bold; + text-transform: uppercase; +} + +.system-fallout .sheet.journal-entry .journal-entry-page +{ + + a.content-link, + a.content-link i { + background-color: $f-vault-blue; + color: $c-font-prim; + } + + aside { + border: none; + background-color: rgb(246, 227, 205); + padding: 8px; + margin: 16px; + margin-bottom: 26px; + box-shadow: -8px 10px rgb(219, 140, 61); + + .aside-title { + display: contents; + background: none; + font-weight: 700; + text-transform: none; + font-size: 2.6em; + + color: rgb(219, 140, 61); + font-family: $font-blockquote-header; + } + } + + blockquote { + border: none; + background-color: rgb(182, 219, 198); + padding: 8px; + margin: 16px; + + p { + font-size: 1.15em; + font-style: italic; + } + } + + footer { + background-color: rgb(28, 63, 125); + border-radius: 16px; + outline-style: dashed; + outline-width: 2px; + outline-offset: -8px; + padding: 20px; + color: white; + margin: 16px; + + h1 { + background: none; + color: rgb(252, 229, 61); + font-family: $font-oswald; + font-weight: 700; + font-size: 2.2em; + } + } + + h1, h2, h3, h4, h5 { + font-family: $font-oswald; + font-weight: bold; + text-transform: uppercase; + color: black; + border: none; + margin: 0 0 0.5rem; + padding: 0; + } + + h1, h2 { + font-family: $font-kaushan; + font-size: 1.8em; + color: white; + border: none; + + max-width: max-content; + min-width: 66%; + + padding-left: 4px; + padding-right: 50px; + } + + h1 { + background: url(../assets/ui/journal/h1-background.svg) no-repeat; + background-size: cover; + } + + h2 { + background: url(../assets/ui/journal/h2-background.svg) no-repeat; + background-size: cover; + } + + h3 { + font-size: 1.6em; + border-bottom: 1px solid #000000; + border-top: 1px solid #000000; + padding: 4px 0px 4px 4px; + margin-top: 1.5rem; + } + + h4 { + font-size: 1.4em; + } + + h5 { + font-size: 1.2em; + } + + img { + border: none; + } + + ul { + list-style-type: square; + margin: 0.5em 0.5em 1.5em; + + li::marker { + color: #ca9e0f; + font-size: 1.4em; + } + } + + ol { + list-style-type: decimal; + margin: 0.5em 0.5em 1.5em; + + li::marker { + font-size: unset; + color: black; + font-weight: bold; + } + + ul li::marker { + color: #ca9e0f; + font-size: 1.4em; + } + + } + + p { + font-style: normal; + font-size: 1.1em; + } + + table { + border: none; + margin-bottom: 1em; + margin-top: 1em; + + caption { + text-align: left; + font-weight: bold; + font-size: 1.2em; + margin-bottom: 0.5em; + } + + tbody { + tr:nth-child(even) { + background-color: rgb(241, 204, 165); + } + + tr:nth-child(odd) { + background-color: rgb(246, 227, 205) + } + + tr:first-child { + background: black; + text-transform: uppercase; + color:white; + font-weight: bold; + } + } + + td { + padding-left: 6px; + padding-right: 6px; + } + } + + .fo-energy, + .fo-physical, + .fo-pip-boy, + .fo-poison, + .fo-radiation { + background: none; + color: black; + font-size: 1.4em; + } + + .fo-pip-boy { + background-color: $c-font-prim; + color: $f-vault-blue; + } + + section { + .reveal { + float: right; + } + + .secret { + background: rgba(125, 28, 28, 0.2); + border: 3px solid; + padding: 4px; + border-color: rgb(125, 28, 28); + border-radius: 8px; + padding: 8px; + margin: 16px; + + p { + font-size: 1.2em; + } + } + + .revealed { + border-color: rgb(28, 125, 34); + background: rgba(28, 125, 34, 0.2); + } + } +} diff --git a/scss/global/_window.scss b/scss/global/_window.scss index f9e11ced..30d01f67 100644 --- a/scss/global/_window.scss +++ b/scss/global/_window.scss @@ -342,3 +342,19 @@ cursor: pointer; } } + +.encumbrance { + background-color: rgb(79, 105, 144); + color: rgb(238, 231, 135); + + margin: 0; + + padding: unset; + padding-left: 24px; + padding-right: 24px; + + position: absolute; + bottom: 0; + + width: 100%; +} diff --git a/scss/utils/_colors.scss b/scss/utils/_colors.scss index 1842c788..a6b2ee4f 100644 --- a/scss/utils/_colors.scss +++ b/scss/utils/_colors.scss @@ -63,3 +63,6 @@ $f-screen: $f-vault-blue; $f-screen-line: #000000; $f-plaque: $c-pipboy-screen; $f-plaque-text: $c-font-prim; + +$c-journal-title: #fff; +$c-journal-title-bg: #dd8d2f; diff --git a/scss/utils/_typography.scss b/scss/utils/_typography.scss index 57d8a6b7..85959959 100644 --- a/scss/utils/_typography.scss +++ b/scss/utils/_typography.scss @@ -1,14 +1,19 @@ @import url("https://fonts.googleapis.com/css2?family=Oswald&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Lobster&display=swap"); @import url('https://fonts.googleapis.com/css2?family=Encode+Sans:wght@200;400;600&display=swap'); - +@import url('https://fonts.googleapis.com/css2?family=Kaushan+Script&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400..700&display=swap'); $font-primary: "Roboto", sans-serif; $font-secondary: "Roboto", sans-serif; $font-small:'Encode Sans', sans-serif; +$font-journal-header: "Kaushan Script", cursive; +$font-blockquote-header: "Dancing Script", cursive; $font-oswald: "Oswald", sans-serif; $font-lobster: "Lobster", cursive; +$font-kaushan: "Kaushan Script", cursive; +$font-dancing-script: "Dancing Script", cursive; $fallout-font-family: "fallout" !default; $fallout-font-path: "../assets/fonts" !default; diff --git a/system/assets/ui/journal/h1-background.svg b/system/assets/ui/journal/h1-background.svg new file mode 100644 index 00000000..0d2402cf --- /dev/null +++ b/system/assets/ui/journal/h1-background.svg @@ -0,0 +1,5 @@ + + + diff --git a/system/assets/ui/journal/h2-background.svg b/system/assets/ui/journal/h2-background.svg new file mode 100644 index 00000000..cacc8ed4 --- /dev/null +++ b/system/assets/ui/journal/h2-background.svg @@ -0,0 +1,5 @@ + + + diff --git a/system/assets/ui/journal/journal-bg.webp b/system/assets/ui/journal/journal-bg.webp new file mode 100644 index 00000000..459f1948 Binary files /dev/null and b/system/assets/ui/journal/journal-bg.webp differ diff --git a/system/src/documents/FalloutActor.mjs b/system/src/documents/FalloutActor.mjs index b9f1f5e2..e6c24692 100644 --- a/system/src/documents/FalloutActor.mjs +++ b/system/src/documents/FalloutActor.mjs @@ -101,9 +101,11 @@ export default class FalloutActor extends Actor { perkLevel(perkName) { if (!["character", "robot"].includes(this.type)) return 0; - const perk = this.items.find(i => i.type === "perk" - && i.name.toLowerCase() === perkName.toLowerCase() - ); + const perk = this.items.find(i => { + const hasBabeleTranslation = i.flags?.babele?.hasTranslation === true; + const nameToCompare = hasBabeleTranslation ? i.flags.babele.originalName : i.name; + return i.type === "perk" && nameToCompare.toLowerCase() === perkName.toLowerCase(); + }); return perk?.system?.rank?.value ?? 0; } diff --git a/system/src/enrichers.mjs b/system/src/enrichers.mjs index c3701f14..4e3dc668 100644 --- a/system/src/enrichers.mjs +++ b/system/src/enrichers.mjs @@ -40,12 +40,13 @@ export default function registerTextEditorEnrichers() { const outerSpan = document.createElement("span"); if (match[1]) { outerSpan.innerHTML = `${match[1]} `; - outerSpan.appendChild(i); } - else { + else if (match[0].charAt(0) === " ") { outerSpan.innerHTML = " "; - outerSpan.appendChild(i); } + + outerSpan.appendChild(i); + return outerSpan; }, }, diff --git a/system/src/roller/Roller2D20.mjs b/system/src/roller/Roller2D20.mjs index 24b04071..31d6e115 100644 --- a/system/src/roller/Roller2D20.mjs +++ b/system/src/roller/Roller2D20.mjs @@ -30,10 +30,11 @@ export class Roller2D20 { await roll.evaluate(); - try { - game.dice3d.showForRoll(roll); - } - catch(err) {} + this.showDiceSoNice(roll); + // try { + // game.dice3d.showForRoll(roll, game.user, true); + // } + // catch(err) {} let hitLocation = undefined; let hitLocationResult = undefined; @@ -41,10 +42,11 @@ export class Roller2D20 { if (rollLocation) { let hitLocationRoll = await new Roll("1dh").evaluate(); // try initiating Dice So Nice Roll - try { - game.dice3d.showForRoll(hitLocationRoll); - } - catch(err) {} + this.showDiceSoNice(hitLocationRoll); + // try { + // game.dice3d.showForRoll(hitLocationRoll, game.user, true); + // } + // catch(err) {} hitLocation = hitLocationRoll.terms[0].getResultLabel( hitLocationRoll.terms[0].results[0] @@ -160,10 +162,11 @@ export class Roller2D20 { await _roll.evaluate(); - try { - game.dice3d.showForRoll(_roll); - } - catch(err) {} + this.showDiceSoNice(_roll); + // try { + // game.dice3d.showForRoll(_roll, game.user, true); + // } + // catch(err) {} await Roller2D20.parseD20Roll({ rollname: `${rollname} re-roll`, @@ -193,15 +196,15 @@ export class Roller2D20 { let complicationsNum = Roller2D20.getNumOfComplications(dicesRolled); let rollData = { - rollname, - successes: successesNum, + actor: actor, complications: complicationsNum, - results: dicesRolled, - successTreshold, hitLocation: hitLocation, hitLocationResult: hitLocationResult, item: item, - actor: actor, + results: dicesRolled, + rollname, + successes: successesNum, + successTreshold, }; const html = await renderTemplate("systems/fallout/templates/chat/roll2d20.hbs", rollData); @@ -265,10 +268,11 @@ export class Roller2D20 { await roll.evaluate(); - try { - game.dice3d.showForRoll(roll); - } - catch(err) {} + this.showDiceSoNice(roll); + // try { + // game.dice3d.showForRoll(roll, game.user, true); + // } + // catch(err) {} return Roller2D20.parseD6Roll({ rollname: rollname, @@ -348,10 +352,11 @@ export class Roller2D20 { await _roll.evaluate(); - try { - game.dice3d.showForRoll(_roll); - } - catch(err) {} + this.showDiceSoNice(_roll); + // try { + // game.dice3d.showForRoll(_roll, game.user, true); + // } + // catch(err) {} return Roller2D20.parseD6Roll({ actor: actor, @@ -369,10 +374,11 @@ export class Roller2D20 { await _roll.evaluate(); - try { - game.dice3d.showForRoll(roll); - } - catch(err) {} + this.showDiceSoNice(_roll); + // try { + // game.dice3d.showForRoll(roll, game.user, true); + // } + // catch(err) {} let newRollName = `${falloutRoll.rollname} [+ ${dicenum} DC]`; let oldDiceRolled = falloutRoll.dicesRolled; @@ -452,15 +458,20 @@ export class Roller2D20 { weapon, }; - let chatData = { + const { whisper, blind } = this.getRollModeSettings(); + + const chatData = { + blind, content: html, flags, roll, rollMode: game.settings.get("core", "rollMode"), user: game.user.id, + whisper, }; - ChatMessage.applyRollMode(chatData, game.settings.get("core", "rollMode")); + + // ChatMessage.applyRollMode(chatData, game.settings.get("core", "rollMode")); // if (["gmroll", "blindroll"].includes(chatData.rollMode)) { // chatData.whisper = ChatMessage.getWhisperRecipients("GM"); @@ -470,4 +481,54 @@ export class Roller2D20 { // } await ChatMessage.create(chatData); } + + /** + * Add support for the Dice So Nice module + * @param {Object} roll + * @param {String} rollMode + */ + static async showDiceSoNice(roll) { + if (game.modules.get("dice-so-nice") + && game.modules.get("dice-so-nice").active + ) { + const { whisper, blind } = Roller2D20.getRollModeSettings(); + + await game.dice3d.showForRoll(roll, game.user, true, whisper, blind); + } + } + + static getRollModeSettings() { + const rollMode = game.settings.get("core", "rollMode"); + + let blind = false; + let whisper = null; + + switch (rollMode) { + case "blindroll": { + blind = true; + } + case "gmroll": { + const gmList = game.users.filter(user => user.isGM); + const gmIDList = []; + gmList.forEach(gm => gmIDList.push(gm.id)); + whisper = gmIDList; + break; + } + case "roll": { + const userList = game.users.filter(user => user.active); + const userIDList = []; + userList.forEach(user => userIDList.push(user.id)); + whisper = userIDList; + break; + } + case "selfroll": { + whisper = [game.user.id]; + break; + } + default: { + break; + } + } + return { whisper, blind }; + } } diff --git a/system/src/sheets/FalloutItemSheet.mjs b/system/src/sheets/FalloutItemSheet.mjs index 4b536ac3..20142f73 100644 --- a/system/src/sheets/FalloutItemSheet.mjs +++ b/system/src/sheets/FalloutItemSheet.mjs @@ -309,6 +309,8 @@ export default class FalloutItemSheet extends ItemSheet { } _onSubmit(event) { + if (!this.item.editable) return; + if (this.item.type === "weapon") { const updateData = this._getSubmitData(); diff --git a/system/src/sheets/FalloutNpcSheet.mjs b/system/src/sheets/FalloutNpcSheet.mjs index 3c272ac8..2381e4e0 100644 --- a/system/src/sheets/FalloutNpcSheet.mjs +++ b/system/src/sheets/FalloutNpcSheet.mjs @@ -41,6 +41,23 @@ export default class FalloutNpcSheet extends FalloutBaseActorSheet { async getData(options) { const context = await super.getData(options); + const bodyPartData = this.actor.system.body_parts; + + context.bodyParts = []; + for (const part in CONFIG.FALLOUT.BODY_VALUES) { + const name = game.i18n.localize( + `FALLOUT.BodyTypes.${this.actor.system.bodyType}.${part}` + ); + context.bodyParts.push({ + name: name, + roll: CONFIG.FALLOUT.BODY_VALUES[part], + basePath: `system.body_parts.${part}`, + resistanceValues: bodyPartData[part].resistance, + injuryOpenCount: bodyPartData[part].injuryOpenCount ?? 0, + injuryTreatedCount: bodyPartData[part].injuryTreatedCount ?? 0, + }); + } + if (this.actor.isCreature) { await this._prepareButcheryMaterials(context); } diff --git a/system/system.json b/system/system.json index 7fa2f16f..57db8c8b 100644 --- a/system/system.json +++ b/system/system.json @@ -2,7 +2,7 @@ "id": "fallout", "title": "Fallout: The Roleplaying Game", "description": "An unofficial system for playing the Fallout RPG from Modiphius Entertainment Ltd.", - "version": "11.10.1", + "version": "11.11.0", "compatibility": { "minimum": "11", "verified": "12" diff --git a/system/templates/actor/npc/partials/body.hbs b/system/templates/actor/npc/partials/body.hbs index aeea39a9..774cae33 100644 --- a/system/templates/actor/npc/partials/body.hbs +++ b/system/templates/actor/npc/partials/body.hbs @@ -60,51 +60,51 @@ - {{#each system.body_parts as |part key|}} + {{#each bodyParts}}