Esempio n. 1
0
        /// <summary>
        /// Called when the core has finished running and is released
        /// </summary>
        /// <param name="rCore"></param>
        private void OnCoreReleased(ILifeCore rCore, object rUserData = null)
        {
            if (mSelectorCore != null)
            {
                mSelectorCore.Owner           = null;
                mSelectorCore.InputSource     = null;
                mSelectorCore.OnSelectedEvent = null;
                mSelectorCore.OnReleasedEvent = null;
                mSelectorCore = null;
            }

            // If our state isn't set to succes (meaning we have something)
            // we are going to flag this node as a failure
            if (State != EnumSpellActionState.SUCCEEDED)
            {
                State = EnumSpellActionState.FAILED;
            }

            base.Deactivate();
        }
Esempio n. 2
0
        /// <summary>
        /// Called when the action is first activated
        /// <param name="rPreviousSpellActionState">State of the action prior to this one activating</param>
        public override void Activate(int rPreviousSpellActionState = -1, object rData = null)
        {
            // Ensure we don't parent to the target
            ParentToTarget = false;

            // Grab an instance from the pool
            base.Activate(rPreviousSpellActionState, rData);

            // Set the material
            if (mInstances != null && mInstances.Count > 0)
            {
                mSelectorCore = mInstances[0].GetComponent <SelectTargetCore>();
                if (mSelectorCore != null)
                {
                    mSelectorCore.Age               = 0f;
                    mSelectorCore.MaxAge            = 0f;
                    mSelectorCore.Prefab            = _Prefab;
                    mSelectorCore.Owner             = _Spell.Owner;
                    mSelectorCore.InputSource       = _Spell.SpellInventory._InputSource;
                    mSelectorCore.MinDistance       = MinDistance;
                    mSelectorCore.MaxDistance       = MaxDistance;
                    mSelectorCore.UseMouse          = UseMouse;
                    mSelectorCore.ContinuousSelect  = ContinuousSelect;
                    mSelectorCore.CollisionLayers   = CollisionLayers;
                    mSelectorCore.Tags              = Tags;
                    mSelectorCore.ActionAlias       = ActionAlias;
                    mSelectorCore.CancelActionAlias = CancelActionAlias;
                    mSelectorCore.RequiresRigidbody = RequiresRigidbody;
                    mSelectorCore.RequiresActorCore = RequiresActorCore;
                    mSelectorCore.RequiresCombatant = RequiresCombatant;
                    mSelectorCore.OnSelectedEvent   = OnSelected;
                    mSelectorCore.OnCancelledEvent  = OnCancelled;
                    mSelectorCore.OnReleasedEvent   = OnCoreReleased;
                    mSelectorCore.Play();
                }
            }
            else
            {
                Deactivate();
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Called when the object is selected in the editor
 /// </summary>
 private void OnEnable()
 {
     // Grab the serialized objects
     mTarget   = (SelectTargetCore)target;
     mTargetSO = new SerializedObject(target);
 }