public override void OnInspectorGUI() { base.OnInspectorGUI(); if (GUILayout.Button("Save")) { EditorMethods.WriteToEnum(filePath, fileName, npcStatsGenerator.stats); } int max = npcStatsGenerator.GetStatPoints(); int i = 0; foreach (string stat in npcStatsGenerator.stats) { if (npcStatsGenerator.statMinConstraints.ElementAtOrDefault(i).Name != null) { StatConstraint scMin = npcStatsGenerator.statMinConstraints[i]; scMin.Value = EditorGUILayout.IntField(stat + " Min", scMin.Value); npcStatsGenerator.statMinConstraints[i] = scMin; } else { StatConstraint statConstraint = new StatConstraint(stat + "Min", 0); npcStatsGenerator.statMinConstraints.Add(statConstraint); } if (npcStatsGenerator.statMaxConstraints.ElementAtOrDefault(i).Name != null) { StatConstraint scMax = npcStatsGenerator.statMaxConstraints[i]; scMax.Value = EditorGUILayout.IntField(stat + " Max", scMax.Value); npcStatsGenerator.statMaxConstraints[i] = scMax; } else { StatConstraint statConstraint = new StatConstraint(stat + "Max", max); npcStatsGenerator.statMaxConstraints.Add(statConstraint); } ++i; } }
private bool CalConstraint(StatConstraint statConstraint) { int status; int constraint = statConstraint.statConstraint; Debug.Log(statConstraint.constraintName); if (statConstraint.constraintName <= StatConstraint.ConstraintName.Endurance) { Debug.Log("stat constraint case"); status = Player.Inst.GetStatus((Status.StatName)statConstraint.constraintName); } else if (statConstraint.constraintName >= StatConstraint.ConstraintName.Human && statConstraint.constraintName < StatConstraint.ConstraintName.NightVision) { Debug.Log("race affinity case"); status = Player.Inst.GetRaceAffinity((Race)(statConstraint.constraintName - 4)); Debug.Log((Race)(statConstraint.constraintName - 4) + "affinity : " + status); } else { switch (statConstraint.constraintName) { case StatConstraint.ConstraintName.NightVision: status = Player.Inst.NightVision ? 1 : 0; break; case StatConstraint.ConstraintName.Magic: status = Player.Inst.Magic? 1 : 0; break; case StatConstraint.ConstraintName.DarkMagic: status = Player.Inst.DarkMagic ? 1 : 0; break; default: Debug.LogError("wrong constraint name : " + statConstraint.constraintName); return(false); } } switch (statConstraint.moreOrLess) { case StatConstraint.MoreOrLess.More: if (status > constraint) { return(true); } else { return(false); } case StatConstraint.MoreOrLess.MoreEqual: if (status >= constraint) { return(true); } else { return(false); } case StatConstraint.MoreOrLess.Equal: if (status == constraint) { return(true); } else { return(false); } case StatConstraint.MoreOrLess.LessEqual: if (status <= constraint) { return(true); } else { return(false); } case StatConstraint.MoreOrLess.Less: if (status < constraint) { return(true); } else { return(false); } default: return(true); } }