public static StatusRequirement StatusRequirementSettings(StatusRequirement req) { req.statusNeeded = (StatusNeeded)EditorTab.EnumToolbar("Needed", (int)req.statusNeeded, typeof(StatusNeeded), 600); if(StatusNeeded.STATUS_VALUE.Equals(req.statusNeeded)) { req.statID = EditorGUILayout.Popup("Status value", req.statID, DataHolder.StatusValues().GetNameList(true), GUILayout.Width(mWidth)); EditorGUILayout.BeginHorizontal(); req.comparison = (ValueCheck)EditorTab.EnumToolbar("Comparison", (int)req.comparison, typeof(ValueCheck), 300); req.value = EditorGUILayout.IntField(req.value, GUILayout.Width(mWidth*0.5f)); req.setter = (ValueSetter)EditorTab.EnumToolbar("", (int)req.setter, typeof(ValueSetter)); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); } else if(StatusNeeded.ELEMENT.Equals(req.statusNeeded)) { req.statID = EditorGUILayout.Popup("Element", req.statID, DataHolder.Elements().GetNameList(true), GUILayout.Width(mWidth)); EditorGUILayout.BeginHorizontal(); req.comparison = (ValueCheck)EditorTab.EnumToolbar("Comparison", (int)req.comparison, typeof(ValueCheck), 300); req.value = EditorGUILayout.IntField(req.value, GUILayout.Width(mWidth*0.5f)); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); } else if(StatusNeeded.SKILL.Equals(req.statusNeeded)) { req.statID = EditorGUILayout.Popup("Skill", req.statID, DataHolder.Skills().GetNameList(true), GUILayout.Width(mWidth)); } else if(StatusNeeded.RACE.Equals(req.statusNeeded)) { req.statID = EditorGUILayout.Popup("Race", req.statID, DataHolder.Races().GetNameList(true), GUILayout.Width(mWidth)); } else if(StatusNeeded.SIZE.Equals(req.statusNeeded)) { req.statID = EditorGUILayout.Popup("Size", req.statID, DataHolder.Sizes().GetNameList(true), GUILayout.Width(mWidth)); } else if(StatusNeeded.LEVEL.Equals(req.statusNeeded)) { req.classLevel = EditorGUILayout.Toggle("Class level", req.classLevel, GUILayout.Width(mWidth)); req.value = EditorGUILayout.IntField("Level", req.value, GUILayout.Width(mWidth)); req.comparison = (ValueCheck)EditorTab.EnumToolbar("Comparison", (int)req.comparison, typeof(ValueCheck), 300); } EditorGUILayout.Separator(); return req; }
public static StatusRequirement[] Add(StatusRequirement n, StatusRequirement[] list) { ArrayList tmp = new ArrayList(); foreach(StatusRequirement str in list) tmp.Add(str); tmp.Add(n); return tmp.ToArray(typeof(StatusRequirement)) as StatusRequirement[]; }
private bool CheckRequirements(Combatant c, bool doCheck, StatusRequirement[] req, AIConditionNeeded needed) { bool check = false; if(doCheck) { check = true; bool any = false; for(int i=0; i<req.Length; i++) { if(req[i].CheckRequirement(c)) { any = true; } else if(AIConditionNeeded.ALL.Equals(needed)) { check = false; break; } } if(AIConditionNeeded.ONE.Equals(needed) && !any && req.Length > 0) { check = false; } } return check; }
public static StatusRequirement[] Remove(int index, StatusRequirement[] list) { ArrayList tmp = new ArrayList(); foreach(StatusRequirement str in list) tmp.Add(str); tmp.RemoveAt(index); return tmp.ToArray(typeof(StatusRequirement)) as StatusRequirement[]; }