protected void ReactionSkillGUI() { s.reactionSkill = EditorGUILayout.Toggle( "Reaction Skill", s.reactionSkill ); if (s.reactionSkill) { GUILayout.Label("Reaction Triggers"); EditorGUILayout.HelpBox( "e.g. \"applied loses health\"", MessageType.Info ); s.reactionStatChangesApplied = EditorGUIExt.StatChangeFoldout( "Stat Change (Applied)", s.reactionStatChangesApplied, ref showReactionStatChangesApplied ); EditorGUILayout.HelpBox( "e.g. \"applied is hit by geomancy\"", MessageType.Info ); s.reactionTypesApplied = EditorGUIExt.ArrayFoldout( "Reactable Type (Applied)", s.reactionTypesApplied, ref showReactionTypesApplied, false, -1, "attack" ); EditorGUILayout.HelpBox( "e.g. \"applier loses MP\"", MessageType.Info ); s.reactionStatChangesApplier = EditorGUIExt.StatChangeFoldout( "Stat Change (Applier)", s.reactionStatChangesApplier, ref showReactionStatChangesApplier ); EditorGUILayout.HelpBox( "e.g. \"applier receives vampirism bonus\"", MessageType.Info ); s.reactionTypesApplier = EditorGUIExt.ArrayFoldout( "Reactable Type (Applier)", s.reactionTypesApplier, ref showReactionTypesApplier, false, -1, "attack" ); //reaction region //reaction effects s.reactionTargetRegion = EditorGUIExt.RegionGUI( "Reaction Target", s.name + ".reaction", s.reactionTargetRegion, formulaOptions, lastFocusedControl, Screen.width - 32 ); s.reactionEffectRegion = EditorGUIExt.RegionGUI( "Reaction Effect", s.name + ".reaction", s.reactionEffectRegion, formulaOptions, lastFocusedControl, Screen.width - 32 ); s.reactionApplicationEffects = EditorGUIExt.StatEffectGroupGUI( "Per-Reaction Effect", s.reactionApplicationEffects, StatEffectContext.Action, "" + s.GetInstanceID(), formulaOptions, lastFocusedControl ); s.reactionEffects = EditorGUIExt.StatEffectGroupsGUI( "Per-Target Effect Group", s.reactionEffects, StatEffectContext.Action, "" + s.GetInstanceID(), formulaOptions, lastFocusedControl ); EditorGUILayout.Space(); } }