From 626f465ca09f74337665caf7361e341a053340dd Mon Sep 17 00:00:00 2001 From: henriquenakashima Date: Thu, 24 Sep 2020 00:43:31 -0400 Subject: [PATCH] Implement IronskinDraught --- Assets/Battle/BattleController.cs | 2 +- .../CardsHeroes/IronskinDraughtHCard.cs | 19 +++++++++++++++++++ .../CardsHeroes/IronskinDraughtHCard.cs.meta | 11 +++++++++++ Assets/Battle/CardsMonsters/WhirlwindMCard.cs | 4 +++- Assets/Battle/HeroCardDatabase.cs | 3 +++ .../Battle/Targeting/AnyHeroTargetPolicy.cs | 10 ++++++++++ .../Targeting/AnyHeroTargetPolicy.cs.meta | 11 +++++++++++ .../Targeting/AnyMonsterTargetPolicy.cs | 10 ++++++++++ .../Targeting/AnyMonsterTargetPolicy.cs.meta | 11 +++++++++++ 9 files changed, 79 insertions(+), 2 deletions(-) create mode 100644 Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs create mode 100644 Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs.meta create mode 100644 Assets/Battle/Targeting/AnyHeroTargetPolicy.cs create mode 100644 Assets/Battle/Targeting/AnyHeroTargetPolicy.cs.meta create mode 100644 Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs create mode 100644 Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs.meta diff --git a/Assets/Battle/BattleController.cs b/Assets/Battle/BattleController.cs index e0a6a74..6fb924f 100644 --- a/Assets/Battle/BattleController.cs +++ b/Assets/Battle/BattleController.cs @@ -46,11 +46,11 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe HCardId.CrashingPunch, HCardId.Cover, HCardId.Cover, - HCardId.Cover, HCardId.Thunderstorm, HCardId.Scarring, HCardId.Scarring, HCardId.Meditate, + HCardId.IronskinDraught, }; MonsterId[] monsterIds = new MonsterId[3] { diff --git a/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs b/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs new file mode 100644 index 0000000..5a44507 --- /dev/null +++ b/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs @@ -0,0 +1,19 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class IronskinDraughtHCard : HeroCard +{ + public IronskinDraughtHCard(BattleParticipant owner) + : base(owner, HCardId.Cover, "Ironskin Draught", 3, CardType.Skill, + "Block 6 damage on target ally.") { + + } + + public override IEnumerator Use(IBattleEffectApplier effectApplier, BattlePlayerControls playerControls) { + SingleTargeting singleTargeting = new SingleTargeting(new AnyHeroTargetPolicy()); + yield return playerControls.StartCoroutine(playerControls.ChooseTarget(singleTargeting)); + BattleParticipant target = singleTargeting.GetTarget(); + effectApplier.Apply(new BlockEffect(target, 6)); + } +} diff --git a/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs.meta b/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs.meta new file mode 100644 index 0000000..500d69a --- /dev/null +++ b/Assets/Battle/CardsHeroes/IronskinDraughtHCard.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 9e499b0e7a7b8664e997c58b42008245 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Battle/CardsMonsters/WhirlwindMCard.cs b/Assets/Battle/CardsMonsters/WhirlwindMCard.cs index b44aaf7..ded9657 100644 --- a/Assets/Battle/CardsMonsters/WhirlwindMCard.cs +++ b/Assets/Battle/CardsMonsters/WhirlwindMCard.cs @@ -12,8 +12,10 @@ public class WhirlwindMCard : MonsterCard public override IEnumerator Use(IBattleEffectApplier effectApplier, MonsterViewpoint monsterViewpoint) { RotateEffect rotateEffect = new RotateEffect(TeamChoice.Heroes, +1); effectApplier.Apply(rotateEffect); + + yield return new WaitForSeconds(1f); + MassDamageEffect damageEffect = new MassDamageEffect(TeamChoice.Heroes, 3); effectApplier.Apply(damageEffect); - yield break; } } diff --git a/Assets/Battle/HeroCardDatabase.cs b/Assets/Battle/HeroCardDatabase.cs index 286f682..bc17796 100644 --- a/Assets/Battle/HeroCardDatabase.cs +++ b/Assets/Battle/HeroCardDatabase.cs @@ -30,6 +30,7 @@ public class HeroCardDatabase : CardDatabase {HCardId.Scarring, HeroId.Brute}, {HCardId.Thunderstorm, HeroId.Shaman}, {HCardId.Meditate, HeroId.Shaman}, + {HCardId.IronskinDraught, HeroId.Alchemist}, }; public override HeroCard CreateCard(int id, BattleParticipant owner) { @@ -48,6 +49,8 @@ public class HeroCardDatabase : CardDatabase return new ThunderstormHCard(owner); case HCardId.Meditate: return new MeditateHCard(owner); + case HCardId.IronskinDraught: + return new IronskinDraughtHCard(owner); default: throw new System.ArgumentException("HCardId unknown", "id"); } diff --git a/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs b/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs new file mode 100644 index 0000000..8115a7d --- /dev/null +++ b/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AnyHeroTargetPolicy: TargetingPolicy +{ + public override bool CanTarget(BattleParticipant participant) { + return participant.Team == TeamChoice.Heroes; + } +} diff --git a/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs.meta b/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs.meta new file mode 100644 index 0000000..0071c36 --- /dev/null +++ b/Assets/Battle/Targeting/AnyHeroTargetPolicy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 3183378edadfc1642861386c91083b32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs b/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs new file mode 100644 index 0000000..af97a94 --- /dev/null +++ b/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs @@ -0,0 +1,10 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class AnyMonsterTargetPolicy: TargetingPolicy +{ + public override bool CanTarget(BattleParticipant participant) { + return participant.Team == TeamChoice.Monsters; + } +} diff --git a/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs.meta b/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs.meta new file mode 100644 index 0000000..e9da515 --- /dev/null +++ b/Assets/Battle/Targeting/AnyMonsterTargetPolicy.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 98c44fa59c2b9084694443a866df9a94 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: