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); }