//get possible results from events calling addValueToValue and add them to the preview public void computeEventResultsPreview(mEvent _mEvent) { int eventCnt = _mEvent.GetPersistentEventCount(); addValueToValue avtv; Object o; //check for each persistent call, if it is a 'addValueToValue' script for (int i = 0; i < eventCnt; i++) { //get the type of the persistent object, if it is correct cast it to 'addValueToValue' o = _mEvent.GetPersistentTarget(i); if (o.GetType() == typeof(addValueToValue)) { avtv = (addValueToValue)o; } else { avtv = null; } if (avtv != null) { //the object was a 'addValueToValue' script, therefore generate the previews previewModifiers.Clear(); if (avtv.valuesToChange.Length > 0) { float rValue = 0f; float diff = 0f; foreach (addValueToValue.resultModifierForAddingValueToValue valueAddValue in avtv.valuesToChange) { //get the change in the value rValue = valueManager.instance.getFirstFittingValue(valueAddValue.rArgument).value; diff = rValue * valueAddValue.multiplier; //generate a preview instance the change resultModifierPreview preview = new resultModifierPreview(); preview.resultModification = new resultModifier(); preview.modificationIsRandomIndependant = true; preview.resultModification.modifier = valueAddValue.lArgument; // get the affected value preview.resultModification.valueAdd = diff; previewModifiers.Add(preview); //Debug.Log ("added event preview for " + preview.resultModification.modifier.ToString () + ", change is " + diff.ToString ()); } } //Tell the valueManager to tell the ValueScripts to show these previews. valueManager.instance.setPreviews(ref previewModifiers); } } }
//add element preview of a group of value modifications void addPreviewValueChanges(modifierGroup modsGroup, bool randomIndependent = true) { if (modsGroup.valueChanges == null) { Debug.LogError("Can not show preview, modifier group is null."); return; } foreach (resultModifier rm in modsGroup.valueChanges) { resultModifierPreview rmp = new resultModifierPreview(); rmp.resultModification = new resultModifier(); rmp.modificationIsRandomIndependant = randomIndependent; rmp.resultModification.modifier = rm.modifier; rmp.resultModification.valueAdd = rm.valueAdd; previewModifiers.Add(rmp); } }
//add element preview of a group of value modifications void addPreviewValueChanges(modifierGroup modsGroup, bool randomIndependent = true) { if (modsGroup.valueChanges == null) { Debug.LogError("Can not show preview, modifier group is null."); return; } foreach (resultModifier rm in modsGroup.valueChanges) { resultModifierPreview rmp = new resultModifierPreview(); rmp.resultModification = new resultModifier(); switch (rm.modificationType) { case E_ModificationType.add: rmp.resultModification.valueAdd = rm.valueAdd; rmp.modificationIsRandomIndependant = randomIndependent; break; case E_ModificationType.set: ValueScript vs = valueManager.instance.getFirstFittingValue(rm.modifier); rmp.resultModification.valueAdd = rm.valueSet - vs.value; rmp.modificationIsRandomIndependant = randomIndependent; break; case E_ModificationType.addRandInt: case E_ModificationType.setRandInt: case E_ModificationType.addRandom: case E_ModificationType.setRandom: default: rmp.resultModification.valueAdd = 0f; rmp.modificationIsRandomIndependant = false; break; } rmp.resultModification.modifier = rm.modifier; previewModifiers.Add(rmp); } }