OptionResolutionClass.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System.Linq;
  5. using Photon;
  6. using System;
  7. public class OptionResolutionClass : ICardEffect, IOptionResolutionEffect
  8. {
  9. public void SetUpOptionResolutionClass(Func<CardSource, IEnumerator> resolutionCoroutine, Func<CardSource, bool> resolutionCondition = null)
  10. {
  11. ResolutionCoroutine = resolutionCoroutine;
  12. ResolutionCondition = resolutionCondition;
  13. }
  14. Func<CardSource, bool> ResolutionCondition { get; set; }
  15. Func<CardSource, IEnumerator> ResolutionCoroutine { get; set; }
  16. public bool CanResolve(CardSource optionCard)
  17. {
  18. return ResolutionCondition == null || ResolutionCondition(optionCard);
  19. }
  20. public IEnumerator Resolve(CardSource optionCard)
  21. {
  22. if (CanResolve(optionCard))
  23. {
  24. if (ResolutionCoroutine != null)
  25. {
  26. yield return ContinuousController.instance.StartCoroutine(ResolutionCoroutine(optionCard));
  27. }
  28. }
  29. }
  30. }