/// <summary> /// Gets the combat by token. If no prefab matched comboCombat can be found, return default combat. /// For example : there are two combo combat defined in prefab: tap + tap + tap + slice (1110) , slice + tap + tap + slice (1001) /// then parameter token = 111 = returned 1110 /// parameter token = 1001 = return 1001 /// parameter token = 101 = return default combat of gesture type = tap , because no prefab combat can be found /// </summary> /// <param name="playerComboToken">the player combo token</param> /// <param name="gestureType">gesture type</param> /// <param name="tokenMatched">output, indicate if the token matched to a prefab combat</param> /// <param name="IsLastCombat">output, indicated if the matched combat is the last combat in combo</param> /// <returns></returns> private PredatorCombatData GetComboCombatByToken(string playerComboToken, UserInputType gestureType, out bool tokenMatched, out bool IsLastCombat) { PredatorComboCombat comboCombat = null; IsLastCombat = false; //Search matched prefab combo combat, by playerCombatToken foreach (string prefabComboTokenKey in ComboCombatTokenDict.Keys) { if (prefabComboTokenKey.StartsWith(playerComboToken) && prefabComboTokenKey.Length >= playerComboToken.Length) { comboCombat = ComboCombatTokenDict [prefabComboTokenKey]; IsLastCombat = prefabComboTokenKey.Length == playerComboToken.Length; break; } } //If no matched combo combat is found, return the default combat if (comboCombat == null) { tokenMatched = false; return(GetDefaultCombat(gestureType)); } else { tokenMatched = true; try{ return(comboCombat.combat [playerComboToken.Length - 1]); } catch (Exception exc) { Debug.LogError(exc); return(null); } } }
public static PredatorComboCombat[] EditComboCombatData(Predator3rdPersonalUnit Unit, PredatorComboCombat[] ComboCombatArray) { if (GUILayout.Button("Add ComboCombat")) { PredatorComboCombat ComboCombat = new PredatorComboCombat(); ComboCombatArray = Util.AddToArray <PredatorComboCombat> (ComboCombat, ComboCombatArray); } for (int i = 0; i < ComboCombatArray.Length; i++) { PredatorComboCombat ComboCombat = ComboCombatArray [i]; if (DynamicEditingComboCombatSwitch.ContainsKey(ComboCombat) == false) { DynamicEditingComboCombatSwitch [ComboCombat] = false; } if (DynamicEditingComboCombatSwitch [ComboCombat] = EditorGUILayout.BeginToggleGroup(new GUIContent("------- Edit combo combat:" + ComboCombat.comboName, ""), DynamicEditingComboCombatSwitch [ComboCombat])) { ComboCombat.comboName = EditorGUILayout.TextField("Combo combat name:", ComboCombat.comboName); ComboCombat.combat = EditCombatDataArray(Unit, ComboCombat.combat); if (GUILayout.Button("Delete combo combat:" + ComboCombat.comboName)) { ComboCombatArray = Util.CloneExcept <PredatorComboCombat> (ComboCombatArray, ComboCombat); } } EditorGUILayout.EndToggleGroup(); EditorGUILayout.Space(); } return(ComboCombatArray); }
public static PredatorComboCombat[] EditComboCombatData(Predator3rdPersonalUnit Unit, PredatorComboCombat[] ComboCombatArray) { if (GUILayout.Button ("Add ComboCombat")) { PredatorComboCombat ComboCombat = new PredatorComboCombat (); ComboCombatArray = Util.AddToArray<PredatorComboCombat> (ComboCombat, ComboCombatArray); } for (int i=0; i<ComboCombatArray.Length; i++) { PredatorComboCombat ComboCombat = ComboCombatArray [i]; if (DynamicEditingComboCombatSwitch.ContainsKey (ComboCombat) == false) { DynamicEditingComboCombatSwitch [ComboCombat] = false; } if (DynamicEditingComboCombatSwitch [ComboCombat] = EditorGUILayout.BeginToggleGroup (new GUIContent ("------- Edit combo combat:" + ComboCombat.comboName, ""), DynamicEditingComboCombatSwitch [ComboCombat])) { ComboCombat.comboName = EditorGUILayout.TextField ("Combo combat name:", ComboCombat.comboName); ComboCombat.combat = EditCombatDataArray (Unit, ComboCombat.combat); if (GUILayout.Button ("Delete combo combat:" + ComboCombat.comboName)) { ComboCombatArray = Util.CloneExcept<PredatorComboCombat> (ComboCombatArray, ComboCombat); } } EditorGUILayout.EndToggleGroup (); EditorGUILayout.Space (); } return ComboCombatArray; }