Exemple #1
0
    //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);
            }
        }
    }
Exemple #2
0
    //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);
        }
    }
Exemple #3
0
    //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);
        }
    }