Check win and loss states
This commit is contained in:
parent
adc84f9aba
commit
8c641f5524
8 changed files with 69 additions and 7 deletions
|
|
@ -217,6 +217,9 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
} else {
|
||||
this.heroDeck.MoveCardToDiscard(card);
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
CheckState();
|
||||
}
|
||||
|
||||
public IEnumerator UseMonsterCard(MonsterCard card) {
|
||||
|
|
@ -230,6 +233,7 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
}
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
CheckState();
|
||||
}
|
||||
|
||||
public void NotifyHeroTurnPassed() {
|
||||
|
|
@ -267,7 +271,22 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
// Cleanup expired triggers
|
||||
this.damageTriggers.RemoveAll(t => t.Expired);
|
||||
}
|
||||
|
||||
|
||||
private void CheckState() {
|
||||
foreach (BattleParticipant p in this.heroes) {
|
||||
p.CheckState();
|
||||
}
|
||||
foreach (BattleParticipant p in this.monsters) {
|
||||
p.CheckState();
|
||||
}
|
||||
if (System.Array.TrueForAll(this.heroes, h => !h.IsAlive())) {
|
||||
Debug.Log("You lost!");
|
||||
}
|
||||
if (System.Array.TrueForAll(this.monsters, m => !m.IsAlive())) {
|
||||
Debug.Log("You won!");
|
||||
}
|
||||
}
|
||||
|
||||
public EnergyPool HeroEnergy {get => this.heroEnergy;}
|
||||
public EnergyPool MonsterEnergy {get => this.monsterEnergy;}
|
||||
|
||||
|
|
@ -282,10 +301,12 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
}
|
||||
|
||||
public void IncreaseMaxHP(IncreaseMaxHPEffect effect) {
|
||||
if (effect.Target == null) return;
|
||||
effect.Target.IncreaseMaxHP(effect.Amount);
|
||||
}
|
||||
|
||||
public void AcquireHeroCards(AcquireCardsEffect effect) {
|
||||
if (effect.Participant == null) return;
|
||||
BattleHero hero = (BattleHero) effect.Participant;
|
||||
foreach (CardId cardId in effect.CardIds) {
|
||||
HeroCard acquiredCard = this.heroCardDatabase.CreateCard((int) cardId, hero);
|
||||
|
|
@ -307,6 +328,8 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
private List<DamageTrigger> damageTriggers = new List<DamageTrigger>();
|
||||
|
||||
public int DealDamage(DealDamageEffect effect) {
|
||||
if (effect.Target == null) return 0;
|
||||
|
||||
int damageDealt = effect.Target.DealDamage(effect.Amount);
|
||||
foreach (DamageTrigger dt in this.damageTriggers) {
|
||||
if (dt.IsTriggeredBy(effect)) {
|
||||
|
|
@ -321,11 +344,14 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
}
|
||||
|
||||
public int Heal(HealEffect effect) {
|
||||
if (effect.Target == null) return 0;
|
||||
|
||||
int healedAmount = effect.Target.Heal(effect.Amount);
|
||||
return healedAmount;
|
||||
}
|
||||
|
||||
public void AddBlock(BlockEffect effect) {
|
||||
if (effect.Target == null) return;
|
||||
effect.Target.AddBlock(effect.Amount);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue