BattleSprites now observes hero and monster positions
This commit is contained in:
parent
2e5a971581
commit
6aa13cdbb7
3 changed files with 30 additions and 15 deletions
|
|
@ -516,27 +516,13 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
|
|||
}
|
||||
}
|
||||
|
||||
MoveTeamToNewPositions(effect.Team, newPositions);
|
||||
this.state.MoveTeamToNewPositions(effect.Team, newPositions);
|
||||
}
|
||||
|
||||
private static int TrueMod(int a, int b) {
|
||||
return (a % b + b) % b;
|
||||
}
|
||||
|
||||
private void MoveTeamToNewPositions(TeamChoice team, int[] newPositions) {
|
||||
this.state.MoveTeamToNewPositions(team, newPositions);
|
||||
|
||||
if (team == TeamChoice.Heroes) {
|
||||
for (int i = 0; i < this.state.Heroes.Length; i++) {
|
||||
this.battleSprites.PositionHero(this.state.Heroes[i], i);
|
||||
}
|
||||
} else {
|
||||
for (int i = 0; i < this.state.Monsters.Length; i++) {
|
||||
this.battleSprites.PositionMonster(this.state.Monsters[i], i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void SetupDefault(DefaultEffect effect) {
|
||||
DefaultHeroCard previousDefault = this.state.PlayArea.SetupDefault(effect);
|
||||
if (previousDefault != null) {
|
||||
|
|
|
|||
|
|
@ -11,12 +11,14 @@ public class BattleSprites: MonoBehaviour
|
|||
public RuntimeAnimatorController mRuntimeAnimatorController;
|
||||
public BattlePlayerControls mBattlePlayerControls;
|
||||
|
||||
private BattleState mState;
|
||||
private Dictionary<BattleHero, GameObject> mHeroSprites;
|
||||
private Dictionary<BattleHero, HeroInfoUI> mHeroUIs;
|
||||
private Dictionary<BattleMonster, GameObject> mMonsterSprites;
|
||||
private Dictionary<BattleMonster, HeroInfoUI> mMonsterUIs;
|
||||
|
||||
public void Init(BattleHero[] heroes, BattleMonster[] monsters, BattleState battleState) {
|
||||
mState = battleState;
|
||||
mHeroSprites = new Dictionary<BattleHero, GameObject>();
|
||||
mHeroUIs = new Dictionary<BattleHero, HeroInfoUI>();
|
||||
mMonsterSprites = new Dictionary<BattleMonster, GameObject>();
|
||||
|
|
@ -56,6 +58,8 @@ public class BattleSprites: MonoBehaviour
|
|||
mMonsterUIs[monster] = monsterUI;
|
||||
}
|
||||
|
||||
mState.OnHeroPositionsSet += this.RepositionHeroes;
|
||||
mState.OnMonsterPositionsSet += this.RepositionMonsters;
|
||||
}
|
||||
|
||||
private void PositionSprite(TeamChoice team, GameObject sprite, int i) {
|
||||
|
|
@ -75,4 +79,16 @@ public class BattleSprites: MonoBehaviour
|
|||
public void PositionMonster(BattleMonster monster, int i) {
|
||||
PositionSprite(TeamChoice.Monsters, mMonsterSprites[monster], i);
|
||||
}
|
||||
|
||||
private void RepositionHeroes() {
|
||||
for (int i = 0; i < mState.Heroes.Length; i++) {
|
||||
PositionHero(mState.Heroes[i], i);
|
||||
}
|
||||
}
|
||||
|
||||
private void RepositionMonsters() {
|
||||
for (int i = 0; i < mState.Monsters.Length; i++) {
|
||||
PositionMonster(mState.Monsters[i], i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,6 +5,9 @@ using UnityEngine;
|
|||
|
||||
public class BattleState: MonsterViewpoint
|
||||
{
|
||||
public delegate void Procedure();
|
||||
public event Procedure OnHeroPositionsSet;
|
||||
public event Procedure OnMonsterPositionsSet;
|
||||
|
||||
private BattleHero[] heroes;
|
||||
|
||||
|
|
@ -88,6 +91,7 @@ public class BattleState: MonsterViewpoint
|
|||
newHeroes[newPositions[i]] = hero;
|
||||
}
|
||||
this.heroes = newHeroes;
|
||||
TriggerOnHeroPositionsSet();
|
||||
} else {
|
||||
BattleMonster[] newMonsters = new BattleMonster[n];
|
||||
for (int i = 0; i < n; i++) {
|
||||
|
|
@ -95,9 +99,18 @@ public class BattleState: MonsterViewpoint
|
|||
newMonsters[newPositions[i]] = monster;
|
||||
}
|
||||
this.monsters = newMonsters;
|
||||
TriggerOnMonsterPositionsSet();
|
||||
}
|
||||
}
|
||||
|
||||
private void TriggerOnHeroPositionsSet() {
|
||||
if (OnHeroPositionsSet != null) OnHeroPositionsSet();
|
||||
}
|
||||
|
||||
private void TriggerOnMonsterPositionsSet() {
|
||||
if (OnMonsterPositionsSet != null) OnMonsterPositionsSet();
|
||||
}
|
||||
|
||||
public BattleHero[] Heroes {get => this.heroes;}
|
||||
public BattleMonster[] Monsters {get => this.monsters;}
|
||||
public BattleClock Clock {get => this.clock;}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue