Ascension.cs 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System;
  4. using System.Linq;
  5. using UnityEngine;
  6. public partial class CardEffectCommons
  7. {
  8. #region Can Trigger [Ascension]
  9. public static bool CanTriggerAscension(Hashtable hashtable, CardSource card, ICardEffect activateClass)
  10. {
  11. return CanTriggerOnDeletion(hashtable, card, activateClass);
  12. }
  13. public static bool CanTriggerPermanentAscension(Hashtable hashtable, Func<Permanent, bool> permanentCondition, ICardEffect activateClass)
  14. {
  15. return CanTriggerOnPermanentDeleted(hashtable, permanentCondition, activateClass);
  16. }
  17. #endregion
  18. #region Can activate [Ascension]
  19. public static bool CanActivateAscension(CardSource card, ICardEffect activateClass)
  20. {
  21. return CanActivateOnDeletion(card, activateClass);
  22. }
  23. #endregion
  24. #region Effect process of [Ascension]
  25. public static IEnumerator AscensionProcess(Hashtable hashtable, ICardEffect activateClass, CardSource card)
  26. {
  27. if (card.Owner.CanAddSecurity(activateClass))
  28. {
  29. string selectPlayerMessage = "Will you place this card in security?";
  30. string notSelectPlayerMessage = "The opponent is choosing if they will use Ascension.";
  31. List<SelectionElement<bool>> command_SelectCommands = new List<SelectionElement<bool>>()
  32. {
  33. new SelectionElement<bool>(message: $"Yes", value: true, spriteIndex: 0),
  34. new SelectionElement<bool>(message: $"No", value: false, spriteIndex: 1),
  35. };
  36. GManager.instance.userSelectionManager.SetBoolSelection(selectionElements: command_SelectCommands, selectPlayer: card.Owner, selectPlayerMessage: selectPlayerMessage, notSelectPlayerMessage: notSelectPlayerMessage);
  37. yield return ContinuousController.instance.StartCoroutine(GManager.instance.userSelectionManager.WaitForEndSelect());
  38. if(GManager.instance.userSelectionManager.SelectedBoolValue)
  39. {
  40. yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddSecurityCard(card, true));
  41. }
  42. }
  43. }
  44. #endregion
  45. }