Exemplo n.º 1
0
        public static void Postfix(MissionNode[] ____allMissionNodes)
        {
            foreach (MissionObjectiveTypeSO objectiveType in ____allMissionNodes.SelectMany(n => n.missionData.missionObjectives).Select(o => o.type).Distinct())
            {
                MissionObjectiveTypeSO objectiveTypeRef = objectiveType;

                switch (objectiveType.name)
                {
                case "MissMissionObjectiveType":
                    kObjectiveNameAccessor(ref objectiveTypeRef) = "OBJECTIVE_MISS";
                    break;

                case "ComboMissionObjectiveType":
                    kObjectiveNameAccessor(ref objectiveTypeRef) = "OBJECTIVE_COMBO";
                    break;

                case "HandsMovementMissionObjectiveType":
                    kObjectiveNameAccessor(ref objectiveTypeRef) = "OBJECTIVE_HANDS_MOVEMENT";
                    break;

                case "FullComboMissionObjectiveType":
                    kObjectiveNameAccessor(ref objectiveTypeRef) = "OBJECTIVE_FULL_COMBO";
                    break;
                }
            }
        }
        public MissionObjective GetAsMissionObjective()
        {
            MissionObjective       objective = new MissionObjective();
            MissionObjectiveTypeSO missionObjectiveTypeSO = ScriptableObject.CreateInstance <MissionObjectiveTypeSO>();

            missionObjectiveTypeSO.SetPrivateField("_objectiveName", GetObjectiveName(type));
            missionObjectiveTypeSO.SetPrivateField("_noConditionValue", GetNoCondition(type));
            missionObjectiveTypeSO.SetPrivateField("_objectiveValueFormater", GetObjectiveValueFormater(type));
            objective.SetPrivateField("_type", missionObjectiveTypeSO);
            objective.SetPrivateField("_referenceValueComparisonType", isMax ? ReferenceValueComparisonType.Max : ReferenceValueComparisonType.Min);
            objective.SetPrivateField("_referenceValue", count);
            return(objective);
        }