Implement IronskinDraught

This commit is contained in:
henriquenakashima 2020-09-24 00:43:31 -04:00
parent b5c900aa24
commit 626f465ca0
9 changed files with 79 additions and 2 deletions

View file

@ -46,11 +46,11 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
HCardId.CrashingPunch, HCardId.CrashingPunch,
HCardId.Cover, HCardId.Cover,
HCardId.Cover, HCardId.Cover,
HCardId.Cover,
HCardId.Thunderstorm, HCardId.Thunderstorm,
HCardId.Scarring, HCardId.Scarring,
HCardId.Scarring, HCardId.Scarring,
HCardId.Meditate, HCardId.Meditate,
HCardId.IronskinDraught,
}; };
MonsterId[] monsterIds = new MonsterId[3] { MonsterId[] monsterIds = new MonsterId[3] {

View file

@ -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));
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 9e499b0e7a7b8664e997c58b42008245
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -12,8 +12,10 @@ public class WhirlwindMCard : MonsterCard
public override IEnumerator Use(IBattleEffectApplier effectApplier, MonsterViewpoint monsterViewpoint) { public override IEnumerator Use(IBattleEffectApplier effectApplier, MonsterViewpoint monsterViewpoint) {
RotateEffect rotateEffect = new RotateEffect(TeamChoice.Heroes, +1); RotateEffect rotateEffect = new RotateEffect(TeamChoice.Heroes, +1);
effectApplier.Apply(rotateEffect); effectApplier.Apply(rotateEffect);
yield return new WaitForSeconds(1f);
MassDamageEffect damageEffect = new MassDamageEffect(TeamChoice.Heroes, 3); MassDamageEffect damageEffect = new MassDamageEffect(TeamChoice.Heroes, 3);
effectApplier.Apply(damageEffect); effectApplier.Apply(damageEffect);
yield break;
} }
} }

View file

@ -30,6 +30,7 @@ public class HeroCardDatabase : CardDatabase<HeroCard>
{HCardId.Scarring, HeroId.Brute}, {HCardId.Scarring, HeroId.Brute},
{HCardId.Thunderstorm, HeroId.Shaman}, {HCardId.Thunderstorm, HeroId.Shaman},
{HCardId.Meditate, HeroId.Shaman}, {HCardId.Meditate, HeroId.Shaman},
{HCardId.IronskinDraught, HeroId.Alchemist},
}; };
public override HeroCard CreateCard(int id, BattleParticipant owner) { public override HeroCard CreateCard(int id, BattleParticipant owner) {
@ -48,6 +49,8 @@ public class HeroCardDatabase : CardDatabase<HeroCard>
return new ThunderstormHCard(owner); return new ThunderstormHCard(owner);
case HCardId.Meditate: case HCardId.Meditate:
return new MeditateHCard(owner); return new MeditateHCard(owner);
case HCardId.IronskinDraught:
return new IronskinDraughtHCard(owner);
default: default:
throw new System.ArgumentException("HCardId unknown", "id"); throw new System.ArgumentException("HCardId unknown", "id");
} }

View file

@ -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;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3183378edadfc1642861386c91083b32
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 98c44fa59c2b9084694443a866df9a94
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: