public void UpdateAbility(AbilityMessage msg)
    {
        string stat      = msg.abilityState;
        int    abilityID = Convert.ToInt32(msg.abilityID);

        if (SceneManager.GetActiveScene().name == "PackingScene")
        {
            if (stat == "new")
            {
                pckingManager.SpawnAbility((AbilityID)abilityID);
            }
        }
        else if (SceneManager.GetActiveScene().name == "World1")
        {
            if (stat == "active")
            {
                Debug.Log("ACTIVATE: " + msg.ToString());
                manager.GetAndActivateAbilityByID((AbilityID)(Convert.ToInt32(msg.abilityID)));
            }
            if (stat == "inactive")
            {
                Debug.Log("DEACTIVATE: " + msg.ToString());
                manager.GetAndDeActivateAbilityByID((AbilityID)(Convert.ToInt32(msg.abilityID)));
            }
        }
    }
Beispiel #2
0
 public void PickUp(Player player)
 {
     ability.PlayerCharacter = player.Character;
     AbilityMessage message = new AbilityMessage(5f);
     this.messageDispatcher.DispatchMessage(new Telegram(entityManager.GetEntityFromID(Entities.HUD, 1), message));
     messageDispatcher.DispatchMessage(new Telegram(player.Character, ability));
 }
Beispiel #3
0
    public void SendAbilityMessage(string abilityState, string abilityID)
    {
        AbilityMessage msg = new AbilityMessage(PushingCode, DateTime.Now.Ticks.ToString(), abilityState, abilityID, this.PlayerID);

        Debug.Log(msg.ToString());
        string jsonifiedMessage = JsonUtility.ToJson(msg);

        this.dbReference.Child("Messages").Child(PushingCode).SetRawJsonValueAsync(jsonifiedMessage);
    }
Beispiel #4
0
    void HandleMessageValueChange(object sender, ValueChangedEventArgs args)
    {
        if (args.DatabaseError != null)
        {
            Debug.LogError(args.DatabaseError.Message);
            return;
        }
        else
        {
            DataSnapshot   snapshot = args.Snapshot;
            AbilityMessage msg      = new AbilityMessage();

            foreach (var child in snapshot.Children)
            {
                switch (child.Key)
                {
                case "messageID":
                    msg.messageID = child.Value.ToString();
                    break;

                case "sentBy":
                    msg.sentBy = child.Value.ToString();
                    break;

                case "messageDateTime":
                    msg.messageDateTime = child.Value.ToString();
                    break;

                case "abilityState":
                    msg.abilityState = child.Value.ToString();
                    break;

                case "abilityID":
                    msg.abilityID = child.Value.ToString();
                    break;
                }
            }

            abilityManager.UpdateAbility(msg);
            Debug.Log(msg.ToString());
        }
    }
Beispiel #5
0
        public bool TryCastAbility(
            int abilityIndex,
            out Ability ability,
            AbilityMessage message = null,
            IAbilityActionMessage triggeringMessage     = null,
            Action <Ability> onCastingCallback          = null,
            Action <Ability, bool> onTerminatedCallback = null)
        {
            AbilityHolder abilityHolder = null;

            ability = null;

            if (!TryCreateAbility(abilityIndex, out abilityHolder))
            {
                return(false);
            }

            ability = abilityHolder.Ability;
            ability.ResetResetable();

            ability.OnAbilityTerminated += onAbilityTerminated;

            onCastingCallback?.Invoke(ability);

            ability.Cast(this, message, triggeringMessage);

            void onAbilityTerminated(Ability terminatedAbility, bool didExecutionCompleted)
            {
                terminatedAbility.OnAbilityTerminated -= onAbilityTerminated;

                onTerminatedCallback?.Invoke(terminatedAbility, didExecutionCompleted);
                AbilityTerminated(abilityHolder, didExecutionCompleted);
            }

            OnAbilityCasted?.Invoke(ability);

            return(true);
        }