@@ -581,6 +581,13 @@ exports.make = function(_runtimeData, _intents, _register, _globals) {
581
581
return C . ERR_INVALID_TARGET ;
582
582
}
583
583
584
+ if ( target . structureType == 'terminal' ) {
585
+ var effect = _ . find ( target . effects , { power : C . PWR_DISRUPT_TERMINAL } ) ;
586
+ if ( effect && effect . ticksRemaining > 0 ) {
587
+ return C . ERR_INVALID_TARGET ;
588
+ }
589
+ }
590
+
584
591
if ( target . my === false && _ . any ( target . pos . lookFor ( 'structure' ) , i => i . structureType == C . STRUCTURE_RAMPART && ! i . my && ! i . isPublic ) ) {
585
592
return C . ERR_NOT_OWNER ;
586
593
}
@@ -726,6 +733,12 @@ exports.make = function(_runtimeData, _intents, _register, _globals) {
726
733
register . assertTargetObject ( target ) ;
727
734
return C . ERR_INVALID_TARGET ;
728
735
}
736
+
737
+ var effect = _ . find ( target . effects , { power : C . PWR_FORTIFY } ) ;
738
+ if ( effect && effect . ticksRemaining > 0 ) {
739
+ return C . ERR_INVALID_TARGET ;
740
+ }
741
+
729
742
if ( ! target . pos . isNearTo ( this . pos ) ) {
730
743
return C . ERR_NOT_IN_RANGE ;
731
744
}
@@ -758,6 +771,10 @@ exports.make = function(_runtimeData, _intents, _register, _globals) {
758
771
return C . ERR_NOT_IN_RANGE ;
759
772
}
760
773
774
+ var effect = _ . find ( target . effects , { power : C . PWR_FORTIFY } ) ;
775
+ if ( effect && effect . ticksRemaining > 0 ) {
776
+ return C . ERR_INVALID_TARGET ;
777
+ }
761
778
762
779
intents . set ( this . id , 'rangedAttack' , { id : target . id } ) ;
763
780
return C . OK ;
@@ -1142,6 +1159,11 @@ exports.make = function(_runtimeData, _intents, _register, _globals) {
1142
1159
return C . ERR_NO_BODYPART ;
1143
1160
}
1144
1161
1162
+ var effect = _ . find ( target . effects , { power : C . PWR_FORTIFY } ) ;
1163
+ if ( effect && effect . ticksRemaining > 0 ) {
1164
+ return C . ERR_INVALID_TARGET ;
1165
+ }
1166
+
1145
1167
intents . set ( this . id , 'dismantle' , { id : target . id } ) ;
1146
1168
return C . OK ;
1147
1169
} ) ;
0 commit comments