public void AddNode(SpellNode node)
    {
        node.spellParent = this;
        nodes.Add(node);
        MagicCircle mc = (MagicCircle)node.GetComponent <MagicCircle>();

        if (mc != null)
        {
            if (baseNode == null)
            {
                baseNode = mc;
            }
            if (initialMagicCircle == null && mc.GetMcType() == MagicCircleType.Element)
            {
                initialMagicCircle = (ElementMagicCircle)mc;
            }

            if (previousMagicCircle != null && autoLinkTransition)
            {
                MagicCircleTransitionLinks link = (MagicCircleTransitionLinks)AddLink(LinkTypes.Transition);
                link.source      = previousMagicCircle;
                link.destination = mc;
                updateLinksList.Add(link);
            }
            previousMagicCircle = mc;
        }
    }
    public void OnElementalFluidStateChanged(int value)
    {
        ElementMagicCircle emc = (ElementMagicCircle)selectedSpellNode;

        if (emc != null)
        {
            emc.elementPhase = elementalData.GetFluidState();
        }
    }
    public void OnElementalAutoActivateChanged(bool value)
    {
        ElementMagicCircle emc = (ElementMagicCircle)selectedSpellNode;

        if (emc != null)
        {
            emc.autoActivate = elementalData.IsAutoActive();
        }
    }
    public void OnElementalChanged(int value)
    {
        ElementMagicCircle emc = (ElementMagicCircle)selectedSpellNode;

        if (emc != null)
        {
            emc.SetElement(elementalData.GetElement());
        }
    }
    public void OnElementalEmissionRateChanged(float value)
    {
        elementalData.OnEmissionRateChanged(value);
        ElementMagicCircle emc = (ElementMagicCircle)selectedSpellNode;

        if (emc != null)
        {
            emc.emissionRate.SetDefaultValue(elementalData.GetEmissionRate());
        }
    }
    public void OnElementalUILoad()
    {
        ElementMagicCircle emc = (ElementMagicCircle)selectedSpellNode;

        if (emc != null)
        {
            elementalData.SetEmissionRate(emc.emissionRate.Value());
            elementalData.SetElement(emc.GetElement());
            elementalData.autoActivate.isOn = emc.autoActivate;
            elementalData.SetFluidState(emc.elementPhase);
        }
    }
 public void AutoLinkDataToNode()
 {
     if (selectedUISN != null)
     {
         ElementMagicCircle emc = (ElementMagicCircle)selectedUISN.linkedSpellNode;
         if (emc != null)
         {
             currentSpell.initialMagicCircle = emc;
         }
         else
         {
             Debug.LogWarning("Can't auto link data to node. Element Node not selected");
         }
     }
     else
     {
         Debug.LogWarning("Can't auto link data to node. No node selected");
     }
 }
Exemplo n.º 8
0
    public void OnCreateMC()
    {
        if (spell == null)
        {
            CreateSpell();
        }
        if (rootMagicCircle == null || !rootMagicCircle.Contains((int)mcType))
        {
            if (mcType == MagicCircleType.None)
            {
                rootMagicCircle = null;
            }
            OnEmissionRateChanged(value1Slider.value);
            Transform pos = rootMagicCircle == null ? defaultMagicCircle.transform : rootMagicCircle.transform;
            // GameObject newObj = Instantiate( defaultMagicCircle, pos ) as GameObject;
            // newObj.name = mcType.ToString() + " Magic Circle";
            SpellNode newNode = spell.AddNode(mcType);
            newNode.name = mcType.ToString() + " Magic Circle";
            MagicCircle newMc;
            switch (mcType)
            {
            case MagicCircleType.Element:
                ElementMagicCircle tempMC = newNode as ElementMagicCircle;
                // tempMC.SetMcType( mcType );
                tempMC.SetElement((ElementType)subType);
                tempMC.emissionRate.SetDefaultValue(emissionRate);
                newMc = tempMC as MagicCircle;
                break;

            case MagicCircleType.Form:
                FormMagicCircle tempFormMC = newNode as FormMagicCircle;
                // tempMC.SetMcType( mcType );
                // tempMC.SetElement( (ElementType) subType );
                tempFormMC.SetForm((FormType)subType);
                tempFormMC.sizeMultiplier.SetDefaultValue(sizeMultiplier);
                newMc = tempFormMC as MagicCircle;
                break;

            case MagicCircleType.Movement:
                MovementMagicCircle tempMovementMC = newNode as MovementMagicCircle;
                // tempMC.SetMcType( mcType );
                // tempMC.SetElement( (ElementType) subType );
                tempMovementMC.SetMovement((MovementType)subType);
                tempMovementMC.force.SetDefaultValue(force);
                newMc = tempMovementMC as MagicCircle;
                break;

            default:
                newMc = newNode as MagicCircle;
                newMc.SetMcType(mcType);
                break;
            }
            if (rootMagicCircle == null)
            {
                rootMagicCircle = newMc;
            }
            else
            {
                // rootMagicCircle.AddMagicCircle( newMc );
            }
            selectedMagicCircle = newMc;
        }
    }