Esempio n. 1
0
 protected override void TargetedSkillGUI()
 {
     if ((patk.mergeTurnToFaceTarget = MergeChoiceGUI("Face Target", patk.mergeTurnToFaceTarget)) != MergeMode.UseOriginal)
     {
         atk.turnToFaceTarget = EditorGUILayout.Toggle("Face Target", atk.turnToFaceTarget);
     }
     if ((patk.mergeDelay = MergeChoiceGUI("Scheduled Delay", patk.mergeDelay)) != MergeMode.UseOriginal)
     {
         atk.delay = EditorGUIExt.FormulaField("Scheduled Delay", atk.delay, atk.GetInstanceID() + "." + atk.name + ".delay", formulaOptions, lastFocusedControl);
     }
     if ((patk.mergeDelayedApplicationUsesOriginalPosition = MergeChoiceGUI("Trigger from Original Position", patk.mergeDelayedApplicationUsesOriginalPosition)) != MergeMode.UseOriginal)
     {
         atk.delayedApplicationUsesOriginalPosition = EditorGUILayout.Toggle("Trigger from Original Position", atk.delayedApplicationUsesOriginalPosition);
     }
     if ((patk.mergeMultiTargetMode = MergeChoiceGUI("Multi-Target Mode", patk.mergeMultiTargetMode)) != MergeMode.UseOriginal)
     {
         atk.multiTargetMode = (MultiTargetMode)EditorGUILayout.EnumPopup("Multi-Target Mode", atk.multiTargetMode);
     }
     if ((patk.mergeMaxWaypointDistanceF = MergeChoiceGUI("Max Waypoint Distance", patk.mergeMaxWaypointDistanceF)) != MergeMode.UseOriginal)
     {
         atk.maxWaypointDistanceF = EditorGUIExt.FormulaField("Max Waypoint Distance", atk.maxWaypointDistanceF, atk.GetInstanceID() + "." + atk.name + ".targeting.maxWaypointDistance", formulaOptions, lastFocusedControl);
     }
     if ((patk.mergeWaypointsAreIncremental = MergeChoiceGUI("Instantly Apply Waypoints", patk.mergeWaypointsAreIncremental)) != MergeMode.UseOriginal)
     {
         atk.waypointsAreIncremental = EditorGUILayout.Toggle("Instantly Apply Waypoints", atk.waypointsAreIncremental);
     }
     if ((patk.mergeCanCancelWaypoints = MergeChoiceGUI("Cancellable Waypoints", patk.mergeCanCancelWaypoints)) != MergeMode.UseOriginal)
     {
         atk.canCancelWaypoints = EditorGUILayout.Toggle("Cancellable Waypoints", atk.canCancelWaypoints);
     }
     if ((patk.mergeTargetSettings = MergeChoiceGUI("Target Settings", patk.mergeTargetSettings)) != MergeMode.UseOriginal)
     {
         if (atk.targetSettings == null)
         {
             atk.targetSettings = new TargetSettings[] { new TargetSettings() };
         }
         EditorGUILayout.BeginVertical();
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.Space();
         int arraySize = EditorGUILayout.IntField(atk.targetSettings.Length, GUILayout.Width(32));
         GUILayout.Label(" " + "Target" + (atk.targetSettings.Length == 1 ? "" : "s"));
         GUILayout.FlexibleSpace();
         EditorGUILayout.EndHorizontal();
         var oldSettings = atk.targetSettings;
         if (arraySize != atk.targetSettings.Length)
         {
             TargetSettings[] newSettings = atk.targetSettings;
             Array.Resize(ref newSettings, arraySize);
             atk.targetSettings = newSettings;
         }
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.Space();
         EditorGUILayout.BeginVertical();
         for (int i = 0; i < atk.targetSettings.Length; i++)
         {
             TargetSettings ts = i < oldSettings.Length ? oldSettings[i] : atk.targetSettings[i];
             if (ts == null)
             {
                 atk.targetSettings[i] = new TargetSettings();
                 ts = atk.targetSettings[i];
             }
             atk.targetSettings[i] = EditorGUIExt.TargetSettingsGUI("Target " + i, atk.targetSettings[i], atk, formulaOptions, lastFocusedControl, i);
         }
         EditorGUILayout.EndVertical();
         EditorGUILayout.EndHorizontal();
         EditorGUILayout.EndVertical();
     }
 }
Esempio n. 2
0
 protected virtual void TargetedSkillGUI()
 {
     if (!(target is MoveSkillDef))
     {
         atk.turnToFaceTarget = EditorGUILayout.Toggle("Face Target", atk.turnToFaceTarget);
     }
     atk.delay = EditorGUIExt.FormulaField("Scheduled Delay", atk.delay, atk.GetInstanceID() + "." + atk.name + ".delay", formulaOptions, lastFocusedControl);
     if (Formula.NotNullFormula(atk.delay) &&
         !(atk.delay.formulaType == FormulaType.Constant &&
           atk.delay.constantValue == 0))
     {
         atk.delayedApplicationUsesOriginalPosition = EditorGUILayout.Toggle("Trigger from Original Position", atk.delayedApplicationUsesOriginalPosition);
     }
     if (atk.targetSettings == null)
     {
         atk.targetSettings = new TargetSettings[] { new TargetSettings() };
     }
     if ((atk.multiTargetMode = (MultiTargetMode)EditorGUILayout.EnumPopup("Multi-Target Mode", atk.multiTargetMode)) != MultiTargetMode.Single)
     {
         if (atk.multiTargetMode == MultiTargetMode.Chain)
         {
             atk.maxWaypointDistanceF = EditorGUIExt.FormulaField("Max Waypoint Distance", atk.maxWaypointDistanceF, atk.GetInstanceID() + "." + atk.name + ".targeting.maxWaypointDistance", formulaOptions, lastFocusedControl);
         }
         atk.waypointsAreIncremental = EditorGUILayout.Toggle("Instantly Apply Waypoints", atk.waypointsAreIncremental);
         atk.canCancelWaypoints      = EditorGUILayout.Toggle("Cancellable Waypoints", atk.canCancelWaypoints);
         EditorGUILayout.BeginVertical();
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.Space();
         int arraySize = EditorGUILayout.IntField(atk.targetSettings.Length, GUILayout.Width(32));
         GUILayout.Label(" " + "Target" + (atk.targetSettings.Length == 1 ? "" : "s"));
         GUILayout.FlexibleSpace();
         EditorGUILayout.EndHorizontal();
         var oldSettings = atk.targetSettings;
         if (arraySize != atk.targetSettings.Length)
         {
             TargetSettings[] newSettings = atk.targetSettings;
             Array.Resize(ref newSettings, arraySize);
             atk.targetSettings = newSettings;
         }
         EditorGUILayout.BeginHorizontal();
         EditorGUILayout.Space();
         EditorGUILayout.BeginVertical();
         for (int i = 0; i < atk.targetSettings.Length; i++)
         {
             TargetSettings ts = i < oldSettings.Length ? oldSettings[i] : atk.targetSettings[i];
             if (ts == null)
             {
                 atk.targetSettings[i] = new TargetSettings();
                 ts = atk.targetSettings[i];
             }
             atk.targetSettings[i] = EditorGUIExt.TargetSettingsGUI("Target " + i, atk.targetSettings[i], atk, formulaOptions, lastFocusedControl, i);
         }
         EditorGUILayout.EndVertical();
         EditorGUILayout.EndHorizontal();
         EditorGUILayout.EndVertical();
     }
     else
     {
         atk.targetSettings[0] = EditorGUIExt.TargetSettingsGUI("Target", atk.targetSettings[0], atk, formulaOptions, lastFocusedControl, -1);
     }
 }