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;
        }
    }
Пример #2
0
    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);
        }
    }