Create BattleController#monsterDeck

This commit is contained in:
henriquenakashima 2020-09-20 13:34:42 -04:00
parent de072a80f7
commit 28db788635
3 changed files with 22 additions and 4 deletions

View file

@ -1,5 +1,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffectResolver, MonsterViewpoint
@ -7,6 +8,8 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
public HeroId[] heroIds;
public MonsterId[] monsterIds;
public CardId[] cardIds;
public MCardId[] mCardIds;
public int[] mCardOwnerIndexes;
public HeroInfoUI heroUIPrefab;
public GameObject uiCanvas;
@ -15,6 +18,7 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
private HeroCardDatabase heroCardDatabase;
private MonsterCardDatabase monsterCardDatabase;
private BattleDeck<HeroCard> heroDeck;
private BattleDeck<MonsterCard> monsterDeck;
private PlayArea playArea;
public BattleHero[] heroes;
@ -77,7 +81,19 @@ public class BattleController : MonoBehaviour, IBattleEffectApplier, IBattleEffe
for (int i = 0; i < this.cardIds.Length; i++) {
cardOwners[i] = FindHeroByClass(HeroCardDatabase.GetHeroIdOfCard(this.cardIds[i]));
}
this.heroDeck = new BattleDeck<HeroCard>(this.heroCardDatabase, this.cardIds, cardOwners);
this.heroDeck = new BattleDeck<HeroCard>(
this.heroCardDatabase, this.cardIds.Cast<int>().ToArray(), cardOwners);
BattleParticipant[] mCardOwners = new BattleParticipant[this.mCardIds.Length];
if (this.mCardIds.Length != this.mCardOwnerIndexes.Length) {
throw new System.ArgumentException(
"mCardIds and mCardOwnerIndexes need to have the same length");
}
for (int i = 0; i < this.mCardIds.Length; i++) {
mCardOwners[i] = this.monsters[this.mCardOwnerIndexes[i]];
}
this.monsterDeck = new BattleDeck<MonsterCard>(
this.monsterCardDatabase, this.mCardIds.Cast<int>().ToArray(), mCardOwners);
this.playArea = new PlayArea();

View file

@ -17,13 +17,13 @@ public class BattleDeck<BaseCardT> where BaseCardT : BaseCard
private List<BaseCardT> handPile;
private List<BaseCardT> discardPile;
public BattleDeck(CardDatabase<BaseCardT> cardDatabase, CardId[] cardIds, BattleParticipant[] cardOwners) {
public BattleDeck(CardDatabase<BaseCardT> cardDatabase, int[] cardIds, BattleParticipant[] cardOwners) {
this.drawPile = new List<BaseCardT>();
this.handPile = new List<BaseCardT>();
this.discardPile = new List<BaseCardT>();
for (int i = 0; i < cardIds.Length; i++) {
BaseCardT newCard = cardDatabase.CreateCard((int) cardIds[i], cardOwners[i]);
BaseCardT newCard = cardDatabase.CreateCard(cardIds[i], cardOwners[i]);
this.drawPile.Add(newCard);
}
this.drawPile.Shuffle();

View file

@ -305,7 +305,9 @@ MonoBehaviour:
m_EditorClassIdentifier:
heroIds: 010000000000000002000000
monsterIds: 000000000100000000000000
cardIds: 00000000000000000000000000000000000000000100000001000000010000000100000002000000
cardIds: 00000000000000000000000000000000010000000100000001000000030000000300000004000000
mCardIds: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
mCardOwnerIndexes: 00000000000000000000000000000000000000000200000002000000020000000200000002000000
heroUIPrefab: {fileID: 6641511084601005557, guid: ef1b469b45cedee418e4c4adf577cd00,
type: 3}
uiCanvas: {fileID: 35522588}