using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayArea { public delegate void PlayAreaChangedAction(); public event PlayAreaChangedAction OnPlayAreaChanged; private List heroPermanents; private List monsterPermanents; private DefaultsManager mDefaultsManager; public PlayArea() { this.heroPermanents = new List(); this.monsterPermanents = new List(); mDefaultsManager = new DefaultsManager(); } public List 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(); } }