Exemple #1
0
        void SetModesListeners(MEventListener listener, string EventName, string ModeName)
        {
            MEvent e = MalbersTools.GetInstance <MEvent>(EventName);

            if (listener.Events.Find(item => item.Event == e) == null)
            {
                var item = new MEventItemListener()
                {
                    Event   = e,
                    useVoid = true, useInt = true, useBool = true,
                };

                ModeID att2 = MalbersTools.GetInstance <ModeID>(ModeName);

                UnityEditor.Events.UnityEventTools.AddObjectPersistentListener <ModeID>(item.ResponseBool, Mode_Pin, att2);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.ResponseBool, Mode_Pin_Input);
                UnityEditor.Events.UnityEventTools.AddObjectPersistentListener <ModeID>(item.ResponseInt, Mode_Pin, att2);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.ResponseInt, Mode_Pin_Ability);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.Response, Mode_Interrupt);

                listener.Events.Add(item);

                Debug.Log("<B>" + EventName + "</B> Added to the Event Listeners");
            }
        }
Exemple #2
0
        public virtual void Mode_ForceActivate(ModeID ModeID)
        {
            var mode = Mode_Get(ModeID);

            if (mode != null)
            {
                Mode_ForceActivate(ModeID.ID, mode.AbilityIndex);
            }
        }
Exemple #3
0
        void Reset()
        {
            ModeID modeID = MalbersTools.GetInstance<ModeID>("Attack1");
            animal = GetComponent<MAnimal>();

            if (modeID != null)
            {
                this.ModeID = modeID;
            }
        }
Exemple #4
0
        /// <summary>
        /// Serves as the default hash function.
        /// </summary>
        /// <returns>A hash code for the current object.</returns>
        public override int GetHashCode()
        {
            var hashcode = ID.GetHashCode();

            hashcode ^= IdentityGUID.GetHashCode();
            hashcode ^= CheckpointIP.GetHashCode();
            hashcode ^= Date.GetHashCode();
            hashcode ^= Status.GetHashCode();
            hashcode ^= ModeID.GetHashCode();
            hashcode ^= Mode.GetHashCode();
            return(hashcode);
        }
Exemple #5
0
        /// <summary>Pin a mode to Activate later</summary>
        public virtual void Mode_Pin(ModeID ModeID)
        {
            if (Pin_Mode != null && Pin_Mode.ID == ModeID)
            {
                return;                                             //the mode is already pinned
            }
            Pin_Mode = Mode_Get(ModeID);

            if (Pin_Mode == null)
            {
                Debug.LogWarning("There's no " + ModeID.name + "Mode");
            }
        }
Exemple #6
0
        /// <summary>Pin a mode to Activate later</summary>
        public virtual void Mode_Pin(ModeID ID)
        {
            if (Pin_Mode != null && Pin_Mode.ID == ID)
            {
                return;                                         //the mode is already pinned
            }
            var pin = Mode_Get(ID);

            Pin_Mode = null; //Important! Clean the Pin Mode

            if (pin != null && pin.Active)
            {
                Pin_Mode = pin;
            }
        }
Exemple #7
0
        /// <summary>
        /// Determines whether the specified object is equal to the current object.
        /// </summary>
        /// <param name="obj">The object to compare with the current object.</param>
        /// <returns>true if the specified object is equal to the current object; otherwise, false.</returns>
        public override bool Equals(object obj)
        {
            var result = false;

            if (obj is Activity item)
            {
                result  = ID == item.ID;
                result &= IdentityGUID.Equals(item.IdentityGUID);
                result &= CheckpointIP.Equals(item.CheckpointIP);
                result &= Date.Equals(item.Date);
                result &= Status.Equals(item.Status);
                result &= ModeID.Equals(item.ModeID);
                result &= Mode.Equals(item.Mode);
                return(result);
            }
            return(false);
        }
Exemple #8
0
        /// <summary>Pin a mode to Activate later</summary>
        public virtual void Mode_Pin(ModeID ID)
        {
            if (Pin_Mode != null && Pin_Mode.ID == ID)
            {
                return;                                         //the mode is already pinned
            }
            var pin = Mode_Get(ID);

            Pin_Mode = null; //Important! Clean the Pin Mode

            if (pin == null)
            {
                Debug.LogWarning("There's no " + ID.name + "Mode");
            }
            else if (pin.Active)
            {
                Pin_Mode = pin;
            }
        }
Exemple #9
0
        void CreateListeners()
        {
            MEventListener listener = GetComponent <MEventListener>();

            if (listener == null)
            {
                listener = gameObject.AddComponent <MEventListener>();
            }
            if (listener.Events == null)
            {
                listener.Events = new List <MEventItemListener>();
            }

            MEvent MovementMobile = MalbersTools.GetInstance <MEvent>("Set Movement Mobile");

            if (listener.Events.Find(item => item.Event == MovementMobile) == null)
            {
                var item = new MEventItemListener()
                {
                    Event      = MovementMobile,
                    useVoid    = true,
                    useVector2 = true,
                };

                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.ResponseVector2, SetInputAxis);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.Response, UseCameraBasedInput);

                listener.Events.Add(item);

                Debug.Log("<B>Set Movement Mobile</B> Added to the Event Listeners");
            }

            //********************************//

            SetModesListeners(listener, "Set Attack1", "Attack1");
            SetModesListeners(listener, "Set Attack2", "Attack2");
            SetModesListeners(listener, "Set Action", "Action");

            /************************/

            MEvent actionstatus = MalbersTools.GetInstance <MEvent>("Set Action Status");

            if (listener.Events.Find(item => item.Event == actionstatus) == null)
            {
                var item = new MEventItemListener()
                {
                    Event   = actionstatus,
                    useVoid = false,
                    useInt  = true, useFloat = true
                };

                ModeID ac = MalbersTools.GetInstance <ModeID>("Action");
                UnityEditor.Events.UnityEventTools.AddObjectPersistentListener(item.ResponseInt, Mode_Pin, ac);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.ResponseInt, Mode_Pin_Status);
                UnityEditor.Events.UnityEventTools.AddPersistentListener(item.ResponseFloat, Mode_Pin_Time);

                listener.Events.Add(item);

                Debug.Log("<B>Set Action Status</B> Added to the Event Listeners");
            }


            /************************/
            SetStateListeners(listener, "Set Jump", "Jump");
            SetStateListeners(listener, "Set Fly", "Fly");
            /************************/
        }
 public bool HasMode(ModeID ID)
 {
     return(HasMode(ID.ID));
 }
Exemple #11
0
 /// <summary>Enable a Mode by his ID</summary>
 public virtual void Mode_Enable(ModeID id)
 {
     Mode_Enable(id.ID);
 }
Exemple #12
0
        }                                                                              //Means the Mode is interrupted

        /// <summary>Disable a Mode by his ID</summary>
        public virtual void Mode_Disable(ModeID id)
        {
            Mode_Disable((int)id);
        }
Exemple #13
0
 public virtual void Mode_Activate_Endless(ModeID ModeID)
 {
     Mode_Activate_Endless(ModeID.ID);
 }
Exemple #14
0
 /// <summary>Enable a mode on the Animal</summary>
 /// <param name="ModeID">ID of the Mode</param>
 /// <param name="AbilityIndex">Ability Index. If this value is -1 then the Mode will activate a random Ability</param>
 public virtual void Mode_Activate(ModeID ModeID, int AbilityIndex)
 {
     Mode_Activate(ModeID.ID, AbilityIndex);
 }
Exemple #15
0
 /// <summary>Activate a Random Ability on the Animal using a Mode ID</summary>
 public virtual void Mode_Activate(ModeID ModeID)
 {
     Mode_Activate(ModeID.ID, -1);
 }
Exemple #16
0
 /// <summary> Returns a Mode by its ID</summary>
 public virtual Mode Mode_Get(ModeID ModeID)
 {
     return(Mode_Get(ModeID.ID));
 }
Exemple #17
0
 public bool HasMode(ModeID ID) => HasMode(ID.ID);
Exemple #18
0
 /// <summary> Returns a Mode by its ID</summary>
 public virtual Mode Mode_Get(ModeID ModeID) => Mode_Get(ModeID.ID);
Exemple #19
0
 /// <summary>Activate a Random Ability on the Animal using a Mode ID</summary>
 public virtual void Mode_Activate(ModeID ModeID) => Mode_Activate(ModeID.ID, -99);
Exemple #20
0
 public virtual bool Mode_ForceActivate(ModeID ModeID, int AbilityIndex) => Mode_ForceActivate(ModeID.ID, AbilityIndex);