66 lines
1.9 KiB
C#
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();
|
|
}
|
|
}
|