Card爆改!
This commit is contained in:
@@ -44,7 +44,7 @@ namespace Continentis.MainGame.Combat
|
||||
|
||||
foreach (var data in playerHeroDataList)
|
||||
{
|
||||
PlayerHero hero = PlayerHero.GenerateCharacter(data);
|
||||
PlayerHero hero = new PlayerHero(data, Fraction.Player);
|
||||
CombatCharacterViewBase view = hero.GenerateCharacterView(new Vector3(-4.5f, 0, 0));
|
||||
|
||||
playerHeroes.Add(hero);
|
||||
@@ -54,7 +54,7 @@ namespace Continentis.MainGame.Combat
|
||||
|
||||
foreach (var data in enemyDataList)
|
||||
{
|
||||
CombatNPC enemy = CombatNPC.GenerateCharacter(data, Fraction.Enemy);
|
||||
CombatNPC enemy = new CombatNPC(data, Fraction.Enemy);
|
||||
CombatCharacterViewBase view = enemy.GenerateCharacterView(new Vector3(4.5f, 0, 0));
|
||||
view.mainView.transform.localEulerAngles = new Vector3(0, 180, 0);
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace Continentis.MainGame.Combat
|
||||
return;
|
||||
}
|
||||
|
||||
CombatNPC npc = CombatNPC.GenerateCharacter(data, fraction);
|
||||
CombatNPC npc = new CombatNPC(data, fraction);
|
||||
npc.InitializeCards();
|
||||
|
||||
Vector3 eulerAngles = fraction == Fraction.Enemy ? new Vector3(0, 180, 0) : Vector3.zero;
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace Continentis.MainGame.Combat
|
||||
|
||||
foreach (CardInstance card in characterController.characters.SelectMany(character => character.deckSubmodule.GetAllCards()))
|
||||
{
|
||||
card.cardLogic.eventSubmodule.onCombatStart.Invoke();
|
||||
card.eventSubmodule.onCombatStart.Invoke();
|
||||
}
|
||||
|
||||
NextRound();
|
||||
@@ -104,7 +104,7 @@ namespace Continentis.MainGame.Combat
|
||||
if (character is CombatNPC npc)
|
||||
{
|
||||
npc.IntentionBrain();
|
||||
npc.deckSubmodule.PoolPile.ForEach(card => card.cardLogic.weightSubmodule.RefreshCurrentWeight());
|
||||
npc.deckSubmodule.PoolPile.ForEach(card => card.weightSubmodule.RefreshCurrentWeight());
|
||||
|
||||
npc.intentionSubmodule.getIntendedCards.Invoke();
|
||||
foreach (IntendedCard intendedCard in npc.intentionSubmodule.intendedCards)
|
||||
@@ -112,9 +112,9 @@ namespace Continentis.MainGame.Combat
|
||||
intendedCard.cardInstance.GenerateIntentionCardView();
|
||||
if (intendedCard.targets.Count > 0)
|
||||
{
|
||||
var cardLogic = intendedCard.cardInstance.cardLogic;
|
||||
cardLogic.eventSubmodule.onTargeting(intendedCard.targets[0]);
|
||||
cardLogic.contentSubmodule.dirtyMark = true;
|
||||
CardInstance card = intendedCard.cardInstance;
|
||||
card.eventSubmodule.onTargeting(intendedCard.targets[0]);
|
||||
card.contentSubmodule.dirtyMark = true;
|
||||
//TODO: 现在仅对第一个目标显示指向,后续可以对多目标进行优化
|
||||
}
|
||||
}
|
||||
@@ -190,7 +190,7 @@ namespace Continentis.MainGame.Combat
|
||||
foreach (IntendedCard intendedCard in currentCharacter.intentionSubmodule.intendedCards)
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(0.25f, () => intendedCard.cardInstance.DestroyIntentionCardView()));
|
||||
intendedCard.cardInstance.cardLogic.Play(intendedCard.targets, currentCharacter, false);
|
||||
intendedCard.cardInstance.Play(intendedCard.targets, currentCharacter, false);
|
||||
}
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(0f, EndAction));
|
||||
}
|
||||
@@ -208,7 +208,7 @@ namespace Continentis.MainGame.Combat
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(currentCharacter.eventSubmodule.onActionEnd.Invoke));
|
||||
foreach (var card in currentCharacter.deckSubmodule.GetAllCards())
|
||||
{
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(card.cardLogic.eventSubmodule.onActionEnd.Invoke));
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(card.eventSubmodule.onActionEnd.Invoke));
|
||||
}
|
||||
|
||||
CommandQueueManager.Instance.AddCommand(new Cmd_Function(() =>
|
||||
@@ -220,8 +220,8 @@ namespace Continentis.MainGame.Combat
|
||||
Debug.Log(currentCharacter.data.className + " 结束行动,整理手牌。");
|
||||
|
||||
List<CardInstance> handPile = new List<CardInstance>(playerHero.deckSubmodule.HandPile);
|
||||
List<CardInstance> cardToRetain = handPile.Where(card => card.cardLogic.HasKeyword("Retain")).ToList(); //含有“保留”关键词的卡牌
|
||||
List<CardInstance> cardToExhaust = handPile.Where(card => card.cardLogic.HasKeyword("Ethereal")).ToList(); //含有“虚无”关键词的卡牌
|
||||
List<CardInstance> cardToRetain = handPile.Where(card => card.HasKeyword("Retain")).ToList(); //含有“保留”关键词的卡牌
|
||||
List<CardInstance> cardToExhaust = handPile.Where(card => card.HasKeyword("Ethereal")).ToList(); //含有“虚无”关键词的卡牌
|
||||
List<CardInstance> cardsToDiscard = handPile.Except(cardToRetain).Except(cardToExhaust).ToList(); //其他卡牌,默认丢弃
|
||||
CommandQueueManager.Instance.AddCommand(playerHero.deckSubmodule.ExhaustCards(cardToExhaust));
|
||||
CommandQueueManager.Instance.AddCommand(playerHero.deckSubmodule.DiscardCards(cardsToDiscard, false));
|
||||
|
||||
Reference in New Issue
Block a user