This component also seems to work OK. Two FFs spawned upon clearing the fog of war, and taunting MainFF enemified everyone. I didn't get a rep hit, though. When you get into a fight with the FF in other areas, don't you get a rep hit?
Here's the code, will wiki:
BEGIN ~Flaming Fist Mercenary Reinforcements~
COPY ~bg1ub/ff/UBFLAM5.CRE~ ~override~
COPY_EXISTING FLAM5.CRE OVERRIDE // Flaming Fist Mercenary
PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN
WRITE_ASCII 0x280 FLAM5 #18
FOR (loc = 0x248; loc < 0x270; loc += 0x8) BEGIN
READ_ASCII loc script
PATCH_IF !("%script%" STRING_COMPARE_CASE "SEEENEMY") BEGIN
// Remove SeeEnemy script, otherwise they just attack each other :D
WRITE_ASCII loc "" #8
END
END
END
BUT_ONLY_IF_IT_CHANGES
<<<<<<<< .../bg1ub/eb_ar3800.baf
IF
Global("UB_FLAM5_REINFORCE","GLOBAL",0)
Exists("FLAM5")
!Dead("FLAM5")
THEN
RESPONSE #100
CreateCreature("UBFLAM5",[3753.2954],9) // Flaming Fist Mercenary
CreateCreature("UBFLAM5",[3869.2962],7) // Flaming Fist Mercenary
SetGlobal("UB_FLAM5_REINFORCE","GLOBAL",1)
END
>>>>>>>>
EXTEND_BOTTOM AR3800.BCS ~.../bg1ub/eb_ar3800.baf~
<<<<<<<< .../bg1ub/ubflam5.baf
IF
Global("UB_FLAM5_SHOUT","GLOBAL",1)
Allegiance(Myself,128)
THEN
RESPONSE #100
Enemy()
END
IF
Global("UB_FLAM5_SHOUT","GLOBAL",2)
Allegiance(Myself,128)
THEN
RESPONSE #100
EscapeArea()
END
IF
Allegiance("FLAM5",255)
Allegiance(Myself,128)
THEN
RESPONSE #100
SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1)
Enemy()
END
IF
AttackedBy([30],0)
Allegiance(Myself,128)
THEN
RESPONSE #100
SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1)
Enemy()
END
IF
!Exists("FLAM5")
!Dead("FLAM5")
Allegiance(Myself,128)
THEN
RESPONSE #100
SetGlobal("UB_FLAM5_SHOUT","GLOBAL",2)
EscapeArea()
END
IF
!Range("FLAM5",12)
!Dead("FLAM5")
Global("UB_FLAM5_SHOUT","GLOBAL",0)
Allegiance(Myself,128)
THEN
RESPONSE #100
MoveToObject("FLAM5")
END
>>>>>>>>
COMPILE ~.../bg1ub/ubflam5.baf~
COPY_EXISTING FLAM5.DLG OVERRIDE
DECOMPILE_DLG_TO_D
REPLACE_TEXTUALLY ~Enemy()~ ~SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1) Enemy()~
REPLACE_TEXTUALLY ~EscapeArea()~ ~SetGlobal("UB_FLAM5_SHOUT","GLOBAL",2) EscapeArea()~
COMPILE_D_TO_DLG
BUT_ONLY_IF_IT_CHANGES