File tree Expand file tree Collapse file tree 2 files changed +18
-7
lines changed
Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Original file line number Diff line number Diff line change @@ -259,7 +259,7 @@ function resolveAffinity(context) {
259259
260260 if ( context . actor . type === 'npc' ) {
261261 // Pressure System Support
262- if ( game . settings . get ( SYSTEM , SETTINGS . pressureSystem ) ) {
262+ if ( game . settings . get ( SYSTEM , SETTINGS . pressureSystem ) && context . actor . resolveEffect ( 'pressure' ) ) {
263263 let pressurePointTriggered = false ;
264264
265265 // Check if the damage type hit a vulnerable affinity
Original file line number Diff line number Diff line change @@ -85,16 +85,20 @@ async function onCombatEvent(event) {
8585 switch ( event . type ) {
8686 case FU . combatEvent . endOfRound :
8787 for ( const actor of event . actors . filter ( ( a ) => a . type === 'npc' ) ) {
88- const se = actor . resolveEffect ( 'stagger' ) ;
89- if ( se ) {
90- // Delete the stagger effect
91- se . delete ( ) ;
92- // Reset pressure
88+ const stagger = actor . resolveEffect ( 'stagger' ) ;
89+ if ( stagger ) {
90+ stagger . delete ( ) ;
9391 const pressure = actor . resolveProgress ( 'pressure' ) ;
9492 await actor . updateProgress ( 'pressure' , - pressure . current ) ;
9593 }
9694 }
9795 break ;
96+
97+ case FU . combatEvent . endOfCombat :
98+ for ( const actor of event . actors . filter ( ( a ) => a . type === 'npc' ) ) {
99+ await removePressureEffect ( actor ) ;
100+ }
101+ break ;
98102 }
99103}
100104
@@ -104,8 +108,15 @@ async function applyPressureEffect(actor) {
104108 case 'champion' :
105109 case 'elite' :
106110 {
111+ // If they somehow already have the pressure effect
112+ const pressure = actor . resolveEffect ( 'pressure' ) ;
113+ if ( pressure ) {
114+ await pressure . delete ( ) ;
115+ }
116+ // Toggle it on
117+ const segments = rank . value === 'champion' ? 2 + rank . replacedSoldiers * 2 : 4 ;
107118 const pressureData = await Effects . getEffectData ( 'pressure' ) ;
108- pressureData . system . rules . progress . max = rank . value === 'champion' ? 2 + rank . replacedSoldiers * 2 : 4 ;
119+ pressureData . system . rules . progress . max = segments ;
109120 if ( pressureData ) {
110121 await Effects . toggleStatusEffect ( actor , 'pressure' , InlineSourceInfo . scene ) ;
111122 }
You can’t perform that action at this time.
0 commit comments