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))); } } }
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)); }
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); }
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()); } }
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); }