public override object Read(ES2Reader reader) { TrainingModifier data = new TrainingModifier(); Read(reader, data); return(data); }
public override void Read(ES2Reader reader, object c) { TrainingModifier data = (TrainingModifier)c; // Add your reader.Read calls here to read the data into the object. // Read the version number. int fileVersion = reader.Read <int>(); // VERSION 0: if (fileVersion >= 0) { data.adoptionRate = reader.Read <float>(); data.beginMaxAngle = reader.Read <float>(); data.beginMaxDistance = reader.Read <float>(); data.beginMaxTime = reader.Read <float>(); data.beginMinAngle = reader.Read <float>(); data.beginMinDistance = reader.Read <float>(); data.beginMinTime = reader.Read <float>(); data.decayEffectOverDuration = reader.Read <bool>(); data.duration = reader.Read <int>(); data.endMaxAngle = reader.Read <float>(); data.endMaxDistance = reader.Read <float>(); data.endMaxTime = reader.Read <float>(); data.endMinAngle = reader.Read <float>(); data.endMinDistance = reader.Read <float>(); data.endMinTime = reader.Read <float>(); data.forward = reader.Read <bool>(); data.horizontal = reader.Read <bool>(); data.largeBrainPenalty = reader.Read <float>(); data.largeSpeciesPenalty = reader.Read <float>(); data.linksPerNode = reader.Read <float>(); data.liveForever = reader.Read <bool>(); data.minMultiplier = reader.Read <float>(); data.modifierType = reader.Read <TrainingModifier.TrainingModifierType>(); data.nodesPerLink = reader.Read <float>(); data.numRounds = reader.Read <int>(); data.removeLinkChance = reader.Read <float>(); data.removeNodeChance = reader.Read <float>(); data.speciesSimilarityThreshold = reader.Read <float>(); data.startGen = reader.Read <int>(); data.vertical = reader.Read <bool>(); if (fileVersion >= 1) { // new attributes } } }
public override void Write(object obj, ES2Writer writer) { TrainingModifier data = (TrainingModifier)obj; // Add your writer.Write calls here. writer.Write(0); // Version 1 is current version number // Make sure to edit Read() function to properly handle version control! // VERSION 0: writer.Write(data.adoptionRate); writer.Write(data.beginMaxAngle); writer.Write(data.beginMaxDistance); writer.Write(data.beginMaxTime); writer.Write(data.beginMinAngle); writer.Write(data.beginMinDistance); writer.Write(data.beginMinTime); writer.Write(data.decayEffectOverDuration); writer.Write(data.duration); writer.Write(data.endMaxAngle); writer.Write(data.endMaxDistance); writer.Write(data.endMaxTime); writer.Write(data.endMinAngle); writer.Write(data.endMinDistance); writer.Write(data.endMinTime); writer.Write(data.forward); writer.Write(data.horizontal); writer.Write(data.largeBrainPenalty); writer.Write(data.largeSpeciesPenalty); writer.Write(data.linksPerNode); writer.Write(data.liveForever); writer.Write(data.minMultiplier); writer.Write(data.modifierType); writer.Write(data.nodesPerLink); writer.Write(data.numRounds); writer.Write(data.removeLinkChance); writer.Write(data.removeNodeChance); writer.Write(data.speciesSimilarityThreshold); writer.Write(data.startGen); writer.Write(data.vertical); // VERSION 1: }
public void ClickAddCurrentModifier() { TrainingModifier newModifier = new TrainingModifier(); newModifier.modifierType = currentModifierType; newModifier.startGen = trainerModuleScript.gameController.masterTrainer.PlayingCurGeneration; if (trainerModuleScript.gameController.masterTrainer.loadedTrainingSave != null) { newModifier.startGen += trainerModuleScript.gameController.masterTrainer.loadedTrainingSave.endGeneration; } switch (currentModifierType) { case TrainingModifier.TrainingModifierType.LinkExplosion: TrainingModifierLinkExplosionUI linkExplosionSettings = currentModifierPrefabGO.GetComponent<TrainingModifierLinkExplosionUI>(); newModifier.linksPerNode = linkExplosionSettings.sliderLinksPerNode.value; newModifier.nodesPerLink = linkExplosionSettings.sliderNodesPerLink.value; break; case TrainingModifier.TrainingModifierType.MutationBlast: TrainingModifierMutationBlastUI mutationBlastSettings = currentModifierPrefabGO.GetComponent<TrainingModifierMutationBlastUI>(); newModifier.duration = (int)mutationBlastSettings.sliderDuration.value; newModifier.minMultiplier = mutationBlastSettings.sliderMinMultiplier.value; newModifier.liveForever = mutationBlastSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.BodyMutationBlast: TrainingModifierBodyMutationBlastUI bodyMutationBlastSettings = currentModifierPrefabGO.GetComponent<TrainingModifierBodyMutationBlastUI>(); newModifier.duration = (int)bodyMutationBlastSettings.sliderDuration.value; newModifier.minMultiplier = bodyMutationBlastSettings.sliderMinMultiplier.value; newModifier.liveForever = bodyMutationBlastSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.PruneBrain: TrainingModifierPruneBrainUI pruneBrainSettings = currentModifierPrefabGO.GetComponent<TrainingModifierPruneBrainUI>(); newModifier.duration = (int)pruneBrainSettings.sliderDuration.value; newModifier.largeBrainPenalty = pruneBrainSettings.sliderLargeBrainPenalty.value; newModifier.removeLinkChance = pruneBrainSettings.sliderRemoveLinkChance.value; newModifier.removeNodeChance = pruneBrainSettings.sliderRemoveNodeChance.value; newModifier.liveForever = pruneBrainSettings.toggleLiveForever.isOn; newModifier.decayEffectOverDuration = pruneBrainSettings.toggleDecayEffectOverDuration.isOn; break; case TrainingModifier.TrainingModifierType.TargetCone: TrainingModifierTargetConeUI targetConeSettings = currentModifierPrefabGO.GetComponent<TrainingModifierTargetConeUI>(); newModifier.duration = (int)targetConeSettings.sliderDuration.value; newModifier.numRounds = (int)targetConeSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetConeSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetConeSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetConeSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetConeSettings.sliderEndMaxDistance.value; newModifier.beginMinAngle = targetConeSettings.sliderBeginMinAngle.value; newModifier.beginMaxAngle = targetConeSettings.sliderBeginMaxAngle.value; newModifier.endMinAngle = targetConeSettings.sliderEndMinAngle.value; newModifier.endMaxAngle = targetConeSettings.sliderEndMaxAngle.value; newModifier.liveForever = targetConeSettings.toggleLiveForever.isOn; newModifier.horizontal = targetConeSettings.toggleHorizontal.isOn; newModifier.vertical = targetConeSettings.toggleVertical.isOn; break; case TrainingModifier.TrainingModifierType.TargetForward: TrainingModifierTargetForwardUI targetForwardSettings = currentModifierPrefabGO.GetComponent<TrainingModifierTargetForwardUI>(); newModifier.duration = (int)targetForwardSettings.sliderDuration.value; newModifier.numRounds = (int)targetForwardSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetForwardSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetForwardSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetForwardSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetForwardSettings.sliderEndMaxDistance.value; newModifier.liveForever = targetForwardSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.TargetOmni: TrainingModifierTargetOmniUI targetOmniSettings = currentModifierPrefabGO.GetComponent<TrainingModifierTargetOmniUI>(); newModifier.duration = (int)targetOmniSettings.sliderDuration.value; newModifier.numRounds = (int)targetOmniSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetOmniSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetOmniSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetOmniSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetOmniSettings.sliderEndMaxDistance.value; newModifier.liveForever = targetOmniSettings.toggleLiveForever.isOn; newModifier.forward = targetOmniSettings.toggleForward.isOn; newModifier.horizontal = targetOmniSettings.toggleHorizontal.isOn; newModifier.vertical = targetOmniSettings.toggleVertical.isOn; break; case TrainingModifier.TrainingModifierType.VariableTrialTimes: TrainingModifierVariableTrialTimesUI trialTimesSettings = currentModifierPrefabGO.GetComponent<TrainingModifierVariableTrialTimesUI>(); newModifier.duration = (int)trialTimesSettings.sliderDuration.value; newModifier.beginMinTime = trialTimesSettings.sliderBeginMinTime.value; newModifier.beginMaxTime = trialTimesSettings.sliderBeginMaxTime.value; newModifier.endMinTime = trialTimesSettings.sliderEndMinTime.value; newModifier.endMaxTime = trialTimesSettings.sliderEndMaxTime.value; newModifier.liveForever = trialTimesSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.WideSearch: TrainingModifierWideSearchUI wideSearchSettings = currentModifierPrefabGO.GetComponent<TrainingModifierWideSearchUI>(); newModifier.duration = (int)wideSearchSettings.sliderDuration.value; newModifier.speciesSimilarityThreshold = wideSearchSettings.sliderSimilarityThreshold.value; newModifier.adoptionRate = wideSearchSettings.sliderAdoptionRate.value; newModifier.largeSpeciesPenalty = wideSearchSettings.sliderLargeSpeciesPenalty.value; newModifier.liveForever = wideSearchSettings.toggleLiveForever.isOn; newModifier.decayEffectOverDuration = wideSearchSettings.toggleDecayEffectOverDuration.isOn; break; default: Debug.Log("Modifier type not found!!! SWITCH DEFAULT CASE"); break; } trainerModuleScript.gameController.masterTrainer.trainingModifierManager.activeTrainingModifierList.Add(newModifier); Debug.Log("new Modifier! " + newModifier.modifierType.ToString() + newModifier.startGen.ToString() + ", #: " + trainerModuleScript.gameController.masterTrainer.trainingModifierManager.activeTrainingModifierList.Count.ToString()); }
public void ClickAddCurrentModifier() { TrainingModifier newModifier = new TrainingModifier(); newModifier.modifierType = currentModifierType; newModifier.startGen = trainerModuleScript.gameController.masterTrainer.PlayingCurGeneration; if (trainerModuleScript.gameController.masterTrainer.loadedTrainingSave != null) { newModifier.startGen += trainerModuleScript.gameController.masterTrainer.loadedTrainingSave.endGeneration; } switch (currentModifierType) { case TrainingModifier.TrainingModifierType.LinkExplosion: TrainingModifierLinkExplosionUI linkExplosionSettings = currentModifierPrefabGO.GetComponent <TrainingModifierLinkExplosionUI>(); newModifier.linksPerNode = linkExplosionSettings.sliderLinksPerNode.value; newModifier.nodesPerLink = linkExplosionSettings.sliderNodesPerLink.value; break; case TrainingModifier.TrainingModifierType.MutationBlast: TrainingModifierMutationBlastUI mutationBlastSettings = currentModifierPrefabGO.GetComponent <TrainingModifierMutationBlastUI>(); newModifier.duration = (int)mutationBlastSettings.sliderDuration.value; newModifier.minMultiplier = mutationBlastSettings.sliderMinMultiplier.value; newModifier.liveForever = mutationBlastSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.BodyMutationBlast: TrainingModifierBodyMutationBlastUI bodyMutationBlastSettings = currentModifierPrefabGO.GetComponent <TrainingModifierBodyMutationBlastUI>(); newModifier.duration = (int)bodyMutationBlastSettings.sliderDuration.value; newModifier.minMultiplier = bodyMutationBlastSettings.sliderMinMultiplier.value; newModifier.liveForever = bodyMutationBlastSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.PruneBrain: TrainingModifierPruneBrainUI pruneBrainSettings = currentModifierPrefabGO.GetComponent <TrainingModifierPruneBrainUI>(); newModifier.duration = (int)pruneBrainSettings.sliderDuration.value; newModifier.largeBrainPenalty = pruneBrainSettings.sliderLargeBrainPenalty.value; newModifier.removeLinkChance = pruneBrainSettings.sliderRemoveLinkChance.value; newModifier.removeNodeChance = pruneBrainSettings.sliderRemoveNodeChance.value; newModifier.liveForever = pruneBrainSettings.toggleLiveForever.isOn; newModifier.decayEffectOverDuration = pruneBrainSettings.toggleDecayEffectOverDuration.isOn; break; case TrainingModifier.TrainingModifierType.TargetCone: TrainingModifierTargetConeUI targetConeSettings = currentModifierPrefabGO.GetComponent <TrainingModifierTargetConeUI>(); newModifier.duration = (int)targetConeSettings.sliderDuration.value; newModifier.numRounds = (int)targetConeSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetConeSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetConeSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetConeSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetConeSettings.sliderEndMaxDistance.value; newModifier.beginMinAngle = targetConeSettings.sliderBeginMinAngle.value; newModifier.beginMaxAngle = targetConeSettings.sliderBeginMaxAngle.value; newModifier.endMinAngle = targetConeSettings.sliderEndMinAngle.value; newModifier.endMaxAngle = targetConeSettings.sliderEndMaxAngle.value; newModifier.liveForever = targetConeSettings.toggleLiveForever.isOn; newModifier.horizontal = targetConeSettings.toggleHorizontal.isOn; newModifier.vertical = targetConeSettings.toggleVertical.isOn; break; case TrainingModifier.TrainingModifierType.TargetForward: TrainingModifierTargetForwardUI targetForwardSettings = currentModifierPrefabGO.GetComponent <TrainingModifierTargetForwardUI>(); newModifier.duration = (int)targetForwardSettings.sliderDuration.value; newModifier.numRounds = (int)targetForwardSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetForwardSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetForwardSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetForwardSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetForwardSettings.sliderEndMaxDistance.value; newModifier.liveForever = targetForwardSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.TargetOmni: TrainingModifierTargetOmniUI targetOmniSettings = currentModifierPrefabGO.GetComponent <TrainingModifierTargetOmniUI>(); newModifier.duration = (int)targetOmniSettings.sliderDuration.value; newModifier.numRounds = (int)targetOmniSettings.sliderNumRounds.value; newModifier.beginMinDistance = targetOmniSettings.sliderBeginMinDistance.value; newModifier.beginMaxDistance = targetOmniSettings.sliderBeginMaxDistance.value; newModifier.endMinDistance = targetOmniSettings.sliderEndMinDistance.value; newModifier.endMaxDistance = targetOmniSettings.sliderEndMaxDistance.value; newModifier.liveForever = targetOmniSettings.toggleLiveForever.isOn; newModifier.forward = targetOmniSettings.toggleForward.isOn; newModifier.horizontal = targetOmniSettings.toggleHorizontal.isOn; newModifier.vertical = targetOmniSettings.toggleVertical.isOn; break; case TrainingModifier.TrainingModifierType.VariableTrialTimes: TrainingModifierVariableTrialTimesUI trialTimesSettings = currentModifierPrefabGO.GetComponent <TrainingModifierVariableTrialTimesUI>(); newModifier.duration = (int)trialTimesSettings.sliderDuration.value; newModifier.beginMinTime = trialTimesSettings.sliderBeginMinTime.value; newModifier.beginMaxTime = trialTimesSettings.sliderBeginMaxTime.value; newModifier.endMinTime = trialTimesSettings.sliderEndMinTime.value; newModifier.endMaxTime = trialTimesSettings.sliderEndMaxTime.value; newModifier.liveForever = trialTimesSettings.toggleLiveForever.isOn; break; case TrainingModifier.TrainingModifierType.WideSearch: TrainingModifierWideSearchUI wideSearchSettings = currentModifierPrefabGO.GetComponent <TrainingModifierWideSearchUI>(); newModifier.duration = (int)wideSearchSettings.sliderDuration.value; newModifier.speciesSimilarityThreshold = wideSearchSettings.sliderSimilarityThreshold.value; newModifier.adoptionRate = wideSearchSettings.sliderAdoptionRate.value; newModifier.largeSpeciesPenalty = wideSearchSettings.sliderLargeSpeciesPenalty.value; newModifier.liveForever = wideSearchSettings.toggleLiveForever.isOn; newModifier.decayEffectOverDuration = wideSearchSettings.toggleDecayEffectOverDuration.isOn; break; default: Debug.Log("Modifier type not found!!! SWITCH DEFAULT CASE"); break; } trainerModuleScript.gameController.masterTrainer.trainingModifierManager.activeTrainingModifierList.Add(newModifier); Debug.Log("new Modifier! " + newModifier.modifierType.ToString() + newModifier.startGen.ToString() + ", #: " + trainerModuleScript.gameController.masterTrainer.trainingModifierManager.activeTrainingModifierList.Count.ToString()); }
public override object Read(ES2Reader reader) { TrainingModifier data = new TrainingModifier(); Read(reader, data); return data; }