mixedcards/Assets/Battle/PlayArea.cs
2020-10-09 01:43:37 -04:00

66 lines
1.9 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayArea
{
public delegate void PlayAreaChangedAction();
public event PlayAreaChangedAction OnPlayAreaChanged;
private List<BaseCard> heroPermanents;
private List<BaseCard> monsterPermanents;
private DefaultsManager mDefaultsManager;
public PlayArea() {
this.heroPermanents = new List<BaseCard>();
this.monsterPermanents = new List<BaseCard>();
mDefaultsManager = new DefaultsManager();
}
public List<BaseCard> GetHeroPermanents() {
return heroPermanents;
}
public void AddPlayedHeroPermanent(BaseCard permanent) {
this.heroPermanents.Add(permanent);
TriggerPlayAreaChanged();
}
public void RemoveHeroPermanent(BaseCard permanent) {
this.heroPermanents.Remove(permanent);
TriggerPlayAreaChanged();
}
public void AddPlayedMonsterPermanent(BaseCard permanent) {
this.monsterPermanents.Add(permanent);
TriggerPlayAreaChanged();
}
public void RemoveMonsterPermanent(BaseCard permanent) {
this.monsterPermanents.Remove(permanent);
TriggerPlayAreaChanged();
}
public DefaultHeroCard SetupDefault(DefaultEffect effect) {
DefaultHeroCard previousDefault = mDefaultsManager.Setup(effect);
if (previousDefault != null) {
RemoveHeroPermanent(previousDefault);
}
AddPlayedHeroPermanent(effect.Card);
TriggerPlayAreaChanged();
return previousDefault;
}
public IEnumerator UseHeroDefaults(
BattleHero[] heroes, ParticipantActivity activity,
DefaultsManager.UseDefaultAction useDefaultAction) {
yield return mDefaultsManager.UseHeroDefaults(heroes, activity, useDefaultAction);
}
private void TriggerPlayAreaChanged() {
if (OnPlayAreaChanged != null) OnPlayAreaChanged();
}
}