diff --git a/Assets/Battle/BattleController.cs b/Assets/Battle/BattleController.cs index 4ba2e7d..44957b0 100644 --- a/Assets/Battle/BattleController.cs +++ b/Assets/Battle/BattleController.cs @@ -212,4 +212,12 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe this.GetHeroDeck().ShuffleDrawPile(); } } + + public void DealDamage(BattleParticipant target, int amount) { + target.DealDamage(amount); + } + + public void AddBlock(BattleParticipant target, int amount) { + target.AddBlock(amount); + } } diff --git a/Assets/Battle/Cards/CardCover.cs b/Assets/Battle/Cards/CardCover.cs index bbee993..c123f6d 100644 --- a/Assets/Battle/Cards/CardCover.cs +++ b/Assets/Battle/Cards/CardCover.cs @@ -14,6 +14,6 @@ public class CardCover : BaseCard SingleTargeting singleTargeting = new SingleTargeting(new OtherHeroTargetPolicy(this.owner)); yield return playerControls.StartCoroutine(playerControls.ChooseTarget(singleTargeting)); BattleParticipant target = singleTargeting.GetTarget(); - target.AddBlock(3); + effectApplier.Apply(new BlockEffect(target, 3)); } } diff --git a/Assets/Battle/Cards/CardCrashingPunch.cs b/Assets/Battle/Cards/CardCrashingPunch.cs index 43a0e47..f8d8ecc 100644 --- a/Assets/Battle/Cards/CardCrashingPunch.cs +++ b/Assets/Battle/Cards/CardCrashingPunch.cs @@ -13,6 +13,6 @@ public class CardCrashingPunch : BaseCard SingleTargeting singleTargeting = new SingleTargeting(new AnyTargetPolicy()); yield return playerControls.StartCoroutine(playerControls.ChooseTarget(singleTargeting)); BattleParticipant target = singleTargeting.GetTarget(); - target.DealDamage(3); + effectApplier.Apply(new DealDamageEffect(target, 3)); } } diff --git a/Assets/Battle/Cards/CardLightningStrike.cs b/Assets/Battle/Cards/CardLightningStrike.cs index 3f3914c..4e3dec1 100644 --- a/Assets/Battle/Cards/CardLightningStrike.cs +++ b/Assets/Battle/Cards/CardLightningStrike.cs @@ -13,6 +13,6 @@ public class CardLightningStrike : BaseCard SingleTargeting singleTargeting = new SingleTargeting(new AnyTargetPolicy()); yield return playerControls.StartCoroutine(playerControls.ChooseTarget(singleTargeting)); BattleParticipant target = singleTargeting.GetTarget(); - target.DealDamage(3); + effectApplier.Apply(new DealDamageEffect(target, 3)); } } diff --git a/Assets/Battle/Effects/BlockEffect.cs b/Assets/Battle/Effects/BlockEffect.cs new file mode 100644 index 0000000..0ced0ee --- /dev/null +++ b/Assets/Battle/Effects/BlockEffect.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class BlockEffect : IBattleEffect +{ + private BattleParticipant target; + private int amount; + + public BlockEffect(BattleParticipant target, int amount) { + this.target = target; + this.amount = amount; + } + + public void Apply(IBattleEffectResolver resolver) { + resolver.AddBlock(this.target, this.amount); + } +} diff --git a/Assets/Battle/Effects/BlockEffect.cs.meta b/Assets/Battle/Effects/BlockEffect.cs.meta new file mode 100644 index 0000000..0610e68 --- /dev/null +++ b/Assets/Battle/Effects/BlockEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 12a289ee3f02ea141bf1897114ad3a6c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Battle/Effects/DealDamageEffect.cs b/Assets/Battle/Effects/DealDamageEffect.cs new file mode 100644 index 0000000..05fdba6 --- /dev/null +++ b/Assets/Battle/Effects/DealDamageEffect.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DealDamageEffect : IBattleEffect +{ + private BattleParticipant target; + private int amount; + + public DealDamageEffect(BattleParticipant target, int amount) { + this.target = target; + this.amount = amount; + } + + public void Apply(IBattleEffectResolver resolver) { + resolver.DealDamage(this.target, this.amount); + } +} diff --git a/Assets/Battle/Effects/DealDamageEffect.cs.meta b/Assets/Battle/Effects/DealDamageEffect.cs.meta new file mode 100644 index 0000000..107de40 --- /dev/null +++ b/Assets/Battle/Effects/DealDamageEffect.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2ca9576d2f24db743ab8e8048fbce7c1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Battle/IBattleEffectResolver.cs b/Assets/Battle/IBattleEffectResolver.cs index e8ec46e..7d9ba1f 100644 --- a/Assets/Battle/IBattleEffectResolver.cs +++ b/Assets/Battle/IBattleEffectResolver.cs @@ -3,6 +3,8 @@ using System.Collections.Generic; using UnityEngine; public interface IBattleEffectResolver { + void DealDamage(BattleParticipant target, int amount); + void AddBlock(BattleParticipant target, int amount); void IncreaseHeroMaxEnergy(int delta); void AcquireHeroCards(CardId[] cardIds, BattleZone zone, BattleHero owner); }