VortexCanAttackPlayers.cs 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System;
  4. using System.Linq;
  5. using UnityEngine;
  6. public partial class CardEffectFactory
  7. {
  8. #region Static effect that oneself can't attack
  9. public static VortexCanAttackPlayersClass VortexCanAttackPlayersSelfStaticEffect(
  10. bool isInheritedEffect,
  11. CardSource card,
  12. Func<bool> condition,
  13. string effectName)
  14. {
  15. bool CanUseCondition()
  16. {
  17. if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
  18. {
  19. if (condition == null || condition())
  20. {
  21. return true;
  22. }
  23. }
  24. return false;
  25. }
  26. bool AttackerCondition(Permanent attacker)
  27. {
  28. if (CardEffectCommons.IsPermanentExistsOnBattleArea(attacker))
  29. {
  30. if (attacker == card.PermanentOfThisCard())
  31. {
  32. return true;
  33. }
  34. }
  35. return false;
  36. }
  37. return VortexCanAttackPlayersStaticEffect(
  38. attackerCondition: AttackerCondition,
  39. isInheritedEffect: isInheritedEffect,
  40. card: card,
  41. condition: CanUseCondition,
  42. effectName: effectName);
  43. }
  44. #endregion
  45. #region Static effect that can't attack
  46. public static VortexCanAttackPlayersClass VortexCanAttackPlayersStaticEffect(
  47. Func<Permanent, bool> attackerCondition,
  48. bool isInheritedEffect,
  49. CardSource card,
  50. Func<bool> condition,
  51. string effectName)
  52. {
  53. VortexCanAttackPlayersClass vortexCanAttackPlayersClass = new VortexCanAttackPlayersClass();
  54. vortexCanAttackPlayersClass.SetUpICardEffect(effectName, CanUseCondition, card);
  55. vortexCanAttackPlayersClass.SetUpVortexCanAttackPlayersClass(attackerCondition: AttackerCondition);
  56. if (isInheritedEffect)
  57. {
  58. vortexCanAttackPlayersClass.SetIsInheritedEffect(true);
  59. }
  60. bool CanUseCondition(Hashtable hashtable)
  61. {
  62. return condition == null || condition();
  63. }
  64. bool AttackerCondition(Permanent attacker)
  65. {
  66. if (CardEffectCommons.IsPermanentExistsOnBattleArea(attacker))
  67. {
  68. if (!attacker.TopCard.CanNotBeAffected(vortexCanAttackPlayersClass))
  69. {
  70. if (attackerCondition == null || attackerCondition(attacker))
  71. {
  72. return true;
  73. }
  74. }
  75. }
  76. return false;
  77. }
  78. return vortexCanAttackPlayersClass;
  79. }
  80. #endregion
  81. }