Skip to content

Commit

Permalink
[#60] Re-organize Gameplay Tags into Consistent Namespace w/. Descs.
Browse files Browse the repository at this point in the history
This organizes all the OpenPF2-related tags under "PF2" tag categories
so that they don't clash with anything in a game that's using OpenPF2.
This change also adds descriptions to all tag categories.
  • Loading branch information
GuyPaddock committed Jul 19, 2024
1 parent 8dd6c6e commit f2c0ab9
Show file tree
Hide file tree
Showing 69 changed files with 3,016 additions and 1,409 deletions.
721 changes: 721 additions & 0 deletions Config/DefaultGameplayTags.ini

Large diffs are not rendered by default.

53 changes: 53 additions & 0 deletions Source/OpenPF2GameFramework/Private/GameplayTags/Common.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// OpenPF2 Game Framework for Unreal Engine, Copyright 2024, Guy Elsmore-Paddock. All Rights Reserved.
//
// Content from Pathfinder 2nd Edition is licensed under the Open Game License (OGL) v1.0a, subject to the following:
// - Open Game License v 1.0a, Copyright 2000, Wizards of the Coast, Inc.
// - System Reference Document, Copyright 2000, Wizards of the Coast, Inc.
// - Pathfinder Core Rulebook (Second Edition), Copyright 2019, Paizo Inc.
//
// Except for material designated as Product Identity, the game mechanics and logic in this file are Open Game Content,
// as defined in the Open Game License version 1.0a, Section 1(d) (see accompanying LICENSE.TXT). No portion of this
// file other than the material designated as Open Game Content may be reproduced in any form without written
// permission.

#include "GameplayTags/Common.h"

// =====================================================================================================================
// Top-level tag category definitions.
// =====================================================================================================================
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagRoot,
"PF2",
"Gameplay tags provided by the OpenPF2 Game Framework."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagEncounters,
"PF2.Encounter",
"Tags used by abilities during encounters."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagGameplayAbilities,
"PF2.GameplayAbility",
"Tags that apply to Gameplay Abilities in OpenPF2."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagGameplayEffects,
"PF2.GameplayEffect",
"Tags that apply to Gameplay Effects in OpenPF2."
)

// Source: Pathfinder 2E Core Rulebook, Appendix, page 635.
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagProficiencies,
"PF2.Proficiency",
"Measures of a character’s aptitude at specific tasks or qualities."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryRoot,
"TriggerTagCategory.PF2",
"Tags that trigger Gameplay Abilities in OpenPF2."
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,14 @@
// Default Currency - "Coins"
// =====================================================================================================================
// Source: Pathfinder 2E Core Rulebook, Chapter 6, page 271.
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencies,
"PF2.Currency",
"Types of money used to pay for goods in lieu of bartering."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyCoins,
"Currency.Coins",
"PF2.Currency.Coins",
"The most common currency in OpenPF2."
)
28 changes: 20 additions & 8 deletions Source/OpenPF2GameFramework/Private/GameplayTags/CurrencyUnits.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,37 @@
// =====================================================================================================================
// Source: Pathfinder 2E Core Rulebook, Chapter 6, page 271.
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoinsCopperPiece,
"CurrencyUnit.Coins.CopperPiece",
Pf2TagCurrencyUnits,
"PF2.CurrencyUnit",
"Standard units of payment for goods."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoins,
"PF2.CurrencyUnit.Coin",
"Standard coin increments when paying for goods."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoinCopperPiece,
"PF2.CurrencyUnit.Coin.CopperPiece",
"A unit of currency worth 1/10 of a silver piece."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoinsSilverPiece,
"CurrencyUnit.Coins.SilverPiece",
Pf2TagCurrencyUnitCoinSilverPiece,
"PF2.CurrencyUnit.Coin.SilverPiece",
"The standard unit of currency for commoners and beginning adventurers. Each is a standard weight of silver and is typically accepted by any merchant or kingdom no matter where it was minted."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoinsGoldPiece,
"CurrencyUnit.Coins.GoldPiece",
Pf2TagCurrencyUnitCoinGoldPiece,
"PF2.CurrencyUnit.Coin.GoldPiece",
"A unit of currency often used for purchasing magic items and other expensive items. 1 gold piece is worth 10 silver pieces and 100 copper pieces."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagCurrencyUnitCoinsPlatinumPiece,
"CurrencyUnit.Coins.PlatinumPiece",
Pf2TagCurrencyUnitCoinPlatinumPiece,
"PF2.CurrencyUnit.Coin.PlatinumPiece",
"A unit of current used by nobles to demonstrate their wealth, for the purchase of very expensive items, or simply as a way to easily transport large sums of currency. A platinum piece is worth 10 gold pieces, 100 silver pieces, and 1,000 copper pieces."
)
52 changes: 29 additions & 23 deletions Source/OpenPF2GameFramework/Private/GameplayTags/DamageTypes.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,137 +13,143 @@
#include "GameplayTags/DamageTypes.h"

// =====================================================================================================================
// Damage types
// Damage types - Different ways that damage can be applied to targets.
// =====================================================================================================================
// Source: Pathfinder 2E Core Rulebook, Chapter 9, page 452, "Damage Types".
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypes,
"PF2.DamageType",
"Different ways that damage can be applied to targets."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePhysical,
"DamageType.Physical",
"PF2.DamageType.Physical",
"Damage dealt by weapons, many physical hazards, and a handful of spells is collectively called physical damage. The main types of physical damage are bludgeoning, piercing, and slashing."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePhysicalBludgeoning,
"DamageType.Physical.Bludgeoning",
"PF2.DamageType.Physical.Bludgeoning",
"Bludgeoning (B) damage comes from weapons and hazards that deal blunt-force trauma, like a hit from a club or being dashed against rocks."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePhysicalPiercing,
"DamageType.Physical.Piercing",
"PF2.DamageType.Physical.Piercing",
"Piercing (P) damage is dealt from stabs and punctures, whether from a dragon's fangs or the thrust of a spear."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePhysicalSlashing,
"DamageType.Physical.Slashing",
"PF2.DamageType.Physical.Slashing",
"Slashing (S) damage is delivered by a cut, be it the swing of the sword or the blow from a scythe blades trap."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergy,
"DamageType.Energy",
"PF2.DamageType.Energy",
"Many spells and other magical effects deal energy damage. Energy damage is also dealt from effects in the world, such as the biting cold of a blizzard to a raging forest fire. The main types of energy damage are acid, cold, electricity, fire, and sonic."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyAcid,
"DamageType.Energy.Acid",
"PF2.DamageType.Energy.Acid",
"Acid damage can be delivered by gases, liquids, and certain solids that dissolve flesh, and sometimes harder materials."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyCold,
"DamageType.Energy.Cold",
"PF2.DamageType.Energy.Cold",
"Cold damage freezes material by way of contact with chilling gases and ice. Electricity damage comes from the discharge of powerful lightning and sparks."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyElectricity,
"DamageType.Energy.Electricity",
"PF2.DamageType.Energy.Electricity",
"Electricity comes from the discharge of powerful lightning and sparks."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyFire,
"DamageType.Energy.Fire",
"PF2.DamageType.Energy.Fire",
"Fire damage burns through heat and combustion."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergySonic,
"DamageType.Energy.Sonic",
"PF2.DamageType.Energy.Sonic",
"Sonic damage assaults matter with high-frequency vibration and sound waves."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyPositive,
"DamageType.Energy.Positive",
"PF2.DamageType.Energy.Positive",
"Positive damage harms only undead creatures, withering undead bodies and disrupting incorporeal undead."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyNegative,
"DamageType.Energy.Negative",
"PF2.DamageType.Energy.Negative",
"Negative damage saps life, damaging only living creatures."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeEnergyForce,
"DamageType.Energy.Force",
"PF2.DamageType.Energy.Force",
"Powerful and pure magical energy can manifest itself as force damage. Few things can resist this type of damage—not even incorporeal creatures such as ghosts and wraiths."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeAlignment,
"DamageType.Alignment",
"PF2.DamageType.Alignment",
"Weapons and effects keyed to a particular alignment can deal chaotic, evil, good, or lawful damage. These damage types apply only to creatures that have the opposing alignment trait."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeAlignmentChaotic,
"DamageType.Alignment.Chaotic",
"PF2.DamageType.Alignment.Chaotic",
"Chaotic damage harms only lawful creatures."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeAlignmentEvil,
"DamageType.Alignment.Evil",
"PF2.DamageType.Alignment.Evil",
"Evil damage harms only good creatures."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeAlignmentGood,
"DamageType.Alignment.Good",
"PF2.DamageType.Alignment.Good",
"Good damage harms only evil creatures."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeAlignmentLawful,
"DamageType.Alignment.Lawful",
"PF2.DamageType.Alignment.Lawful",
"Lawful damage harms only chaotic creatures."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeMental,
"DamageType.Mental",
"PF2.DamageType.Mental",
"Sometimes an effect can target the mind with enough psychic force to actually deal damage to the creature. When it does, it deals mental damage. Mindless creatures and those with only programmed or rudimentary intelligence are often immune to mental damage and effects."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePoison,
"DamageType.Poison",
"PF2.DamageType.Poison",
"Venoms, toxins and the like can deal poison damage, which affects creatures by way of contact, ingestion, inhalation, or injury. In addition to coming from monster attacks, alchemical items, and spells, poison damage is often caused by ongoing afflictions, which follow special rules."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypeBleed,
"DamageType.Bleed",
"PF2.DamageType.Bleed",
"This is persistent damage that represents loss of blood. As such, it has no effect on nonliving creatures or living creatures that don't need blood to live."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagDamageTypePrecision,
"DamageType.Precision",
"PF2.DamageType.Precision",
"When a character hits with an ability that grants precision damage, the character increase the attack's listed damage, using the same damage type, rather than tracking a separate pool of damage."
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,38 @@

#include "GameplayTags/Encounters/AbilityTriggers.h"

// The UE editor requires these tags to be under a root tag of `TriggerTagCategory` in order for them to be selectable
// in the UI.

// =====================================================================================================================
// Tags that trigger Encounter-related Gameplay Abilities.
// =====================================================================================================================
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryEncountersEnterEncounter,
"TriggerTagCategory.Encounters.EnterEncounter",
Pf2TagTriggerTagCategoryEncounters,
"TriggerTagCategory.PF2.Encounter",
"Tags that trigger Encounter-related Gameplay Abilities."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryEncounterEnterEncounter,
"TriggerTagCategory.PF2.Encounter.EnterEncounter",
"Tag to trigger Gameplay Abilities appropriate for when a character enters an encounter."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryEncountersStartTurn,
"TriggerTagCategory.Encounters.StartTurn",
Pf2TagTriggerTagCategoryEncounterStartTurn,
"TriggerTagCategory.PF2.Encounter.StartTurn",
"Tag to trigger Gameplay Abilities appropriate for the start of a character's turn during an encounter."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryEncountersEndTurn,
"TriggerTagCategory.Encounters.EndTurn",
Pf2TagTriggerTagCategoryEncounterEndTurn,
"TriggerTagCategory.PF2.Encounter.EndTurn",
"Tag to trigger Gameplay Abilities appropriate for the end of a character's turn during an encounter."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagTriggerTagCategoryEncountersLeaveEncounter,
"TriggerTagCategory.Encounters.LeaveEncounter",
Pf2TagTriggerTagCategoryEncounterLeaveEncounter,
"TriggerTagCategory.PF2.Encounter.LeaveEncounter",
"Tag to trigger Gameplay Abilities appropriate for when a character leaves an encounter."
)
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,25 @@
// Tags that apply to characters during encounters.
// =====================================================================================================================
UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagEncounterCharacterTurnActive,
"Encounter.Character.TurnActive",
Pf2TagEncounterCharacterStates,
"PF2.Encounter.CharacterState",
"Tags that convey the state of a character during encounters."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagEncounterCharacterStateTurnActive,
"PF2.Encounter.CharacterState.TurnActive",
"Tag applied to a character whose turn is active."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagEncounterCharacterPointsRefreshFrozen,
"Encounter.Character.PointsRefreshFrozen",
Pf2TagEncounterCharacterStatePointsRefreshFrozen,
"PF2.Encounter.CharacterState.PointsRefreshFrozen",
"Tag applied to a character who cannot presently accrue action points."
)

UE_DEFINE_GAMEPLAY_TAG_COMMENT(
Pf2TagEncounterCharacterCooldownNextTurn,
"Encounter.Character.Cooldown.NextTurn",
Pf2TagEncounterCharacterStateCooldownNextTurn,
"PF2.Encounter.CharacterState.Cooldown.NextTurn",
"Tag applied to a character who is currently on a cooldown waiting for their next turn to start."
)
Loading

0 comments on commit f2c0ab9

Please sign in to comment.