void DrawDataEffects(EffectRegister effectsByRole, EffectTriggerType trigger) { var effcond = effectsByRole.First(eff => eff.Key.tType == trigger).Key; for (var i = 0; i < effectsByRole[effcond].Effects.Count; i++) { Bh(); var cached = effectsByRole[effcond].Effects[i]; effectsByRole[effcond].Effects[i] = (BaseEffectData)EditorGUILayout.ObjectField(effectsByRole[effcond].Effects[i], typeof(BaseEffectData), true); if (cached != effectsByRole[effcond].Effects[i]) { SaveChanges(); } if (GUILayout.Button("-", WidthXS)) { var effect = effectsByRole[effcond].Effects[i]; effectsByRole[effcond].Effects.Remove(effect); SaveChanges(); } Eh(); } }
void DrawLabelAndAddTrigger(EffectRegister effectsByRole, EffectTriggerType trigger) { var effcond = effectsByRole.First(eff => eff.Key.tType == trigger).Key; Bh(); GUILayout.Label(trigger.ToString()); if (GUILayout.Button("+", WidthXS)) { effectsByRole[effcond].Effects.Add(null); SaveChanges(); } Eh(); }