// METHODS TO SHOW GLOW HIGHLIGHTS public void HighlightPlayableCards(bool removeAllHighlights = false) { //Debug.Log("HighlightPlayable remove: "+ removeAllHighlights); foreach (CardLogic cl in hand.CardsInHand) { GameObject g = IDHolder.GetGameObjectWithID(cl.UniqueCardID); if (g != null) { g.GetComponent <OneCardManager>().CanBePlayedNow = (cl.CurrentManaCost <= ManaLeft) && !removeAllHighlights; } } foreach (CreatureLogic crl in table.CreaturesOnTable) { GameObject g = IDHolder.GetGameObjectWithID(crl.UniqueCreatureID); if (g != null) { g.GetComponent <OneCreatureManager>().CanAttackNow = (crl.AttacksLeftThisTurn > 0) && !removeAllHighlights; //Debug.Log("creature attack possible" + g.GetComponent<OneCreatureManager>().CanAttackNow); } } // highlight hero power PArea.HeroPower.Highlighted = (!usedHeroPowerThisTurn) && (ManaLeft > 2) && !removeAllHighlights; }
/// <summary> /// Función que permite jugar una carta al jugador. /// </summary> public override void EmpezarEjecucionComanda() { //Eliminar la carta de la mano del jugador y elimina el gameobject HandVisual PlayerHand = Controlador.Instance.AreaJugador(p).manoVisual; //TODO se podria hacer que el id de la carta pase a ser el id de la criatura GameObject card = IDHolder.GetGameObjectWithID(cl.ID); PlayerHand.EliminarCarta(card); IDHolder.EliminarElemento(card.GetComponent <IDHolder>()); GameObject.Destroy(card); //Permite la previsualizacion de cartas //HoverPreview.PrevisualizacionesPermitidas = true; OpcionesObjeto.PrevisualizacionesPermitidas = true; // Añade la carta en el tablero PlayerArea areaJugador = Controlador.Instance.AreaJugador(p); if (ente.GetType() == typeof(Magica)) { areaJugador.tableVisual.AñadirMagica(cl.AssetCarta, ente.ID, tablePos); } else { if (((Criatura)ente).PosicionCriatura.Equals(PosicionCriatura.ATAQUE)) { areaJugador.tableVisual.AñadirCriaturaAtaque(cl.AssetCarta, ente.ID, tablePos); } else { areaJugador.tableVisual.AñadirCriaturaDefensa(cl.AssetCarta, ente.ID, tablePos); } } }
/// <summary> /// Función que cambia la posición de la criatura (defensa o ataque) /// </summary> public override void EmpezarEjecucionComanda() { GameObject Attacker = IDHolder.GetGameObjectWithID(AttackerUniqueID); //Debug.Log(TargetUniqueID); Attacker.GetComponent <CreatureAttackVisual>().ChangePosition(pos); }
/// <summary> /// Función que básicamente voltea la carta mágica /// </summary> public override void EmpezarEjecucionComanda() { GameObject Attacker = IDHolder.GetGameObjectWithID(AttackerUniqueID); Attacker.GetComponent <MagicEffectVisual>().ColocarMagicaBocaArriba(); Comandas.Instance.CompletarEjecucionComanda(); }
public override void ExecuteCommand() { GameObject target = IDHolder.GetGameObjectWithID(TargetID); CardOnBoardController targetCard = CardOnBoardController.CardsPlayedThisGame[TargetID]; int currentTargetedCardHealth = targetCard.CardHealth; if (currentTargetedCardHealth > DamageDealt) { targetCard.CardHealth -= DamageDealt; targetCard.cardOwner.PlayerHealth -= DamageDealt; } else { int healthToSubtract = targetCard.CardHealth; targetCard.CardHealth -= healthToSubtract; targetCard.cardOwner.PlayerHealth -= healthToSubtract; } if (targetCard.CardHealth <= 0) { new DestroyObjectCommand(target).AddToQueue(); } if (GameManager.IsHeadlessMode == false) { if (GameManager.IsHeadlessMode == false) { target.GetComponent <CardOnBoardView>().healthText.text = targetCard.CardHealth.ToString(); targetCard.cardOwner.playerView.playerHealth.playerHealth.text = targetCard.cardOwner.PlayerHealth.ToString(); } } CommandExecutionComplete(); }
public override void StartCommandExecution() { Debug.Log("In deal damage command!"); GameObject target; foreach (DamageCommandInfo info in Targets) { target = IDHolder.GetGameObjectWithID(info.targetID); if (GlobalSettings.Instance.IsPlayer(info.targetID)) { // target is a hero target.GetComponent <PlayerPortraitVisual>().TakeDamage(info.amount, info.healthAfter); } else { // target is a creature target.GetComponent <OneCreatureManager>().TakeDamage(info.amount, info.healthAfter); } } Sequence s = DOTween.Sequence(); s.PrependInterval(1f); s.OnComplete(Command.CommandExecutionComplete); }
public override void StartCommandExecution() { GameObject Attacker = IDHolder.GetGameObjectWithID(AttackerUniqueID); //Debug.Log(TargetUniqueID); Attacker.GetComponent <CreatureAttackVisual>().AttackTarget(TargetUniqueID, DamageTakenByTarget, DamageTakenByAttacker, AttackerHealthAfter, TargetHealthAfter); }
// Destroy a creature public void RemoveCreatureWithID(int IDToRemove) { GameObject creatureToRemove = IDHolder.GetGameObjectWithID(IDToRemove); CreaturesOnTable.Remove(creatureToRemove); Destroy(creatureToRemove); CalculateCardPositions(); Command.CommandExecutionComplete(); }
public override void StartCommandExecution() { DebugManager.Instance.DebugMessage("Executing stat divide command.", DebugManager.MessageType.Commands); GameObject target = IDHolder.GetGameObjectWithID(targetID); target.GetComponent<OneCreatureManager>().ChangeStat("health", healthAfter); target.GetComponent<OneCreatureManager>().ChangeStat("attack", healthAfter); CommandExecutionComplete(); }
public override void StartCommandExecution() { HandVisual PlayerHand = _p.PArea.handVisual; GameObject card = IDHolder.GetGameObjectWithID(_cl.UniqueCardID); PlayerHand.RemoveCard(card); GameObject.Destroy(card); HoverPreview.PreviewsAllowed = true; _p.PArea.tableVisual.AddCreatureAtIndex(_cl.ca, _creatureId, _tablePos); }
public void RemoveCardOnBoardWithID(int IDToRemove) { GameObject cardToRemove = IDHolder.GetGameObjectWithID(IDToRemove); cardsInRow.Remove(cardToRemove); Destroy(cardToRemove); ShiftSlotsGameObjectAccordingToNumberOfCardsOnBoard(); PlaceCardsOnNewSlots(); Command.CommandExecutionComplete(); }
public override void StartCommandExecution() { Debug.Log("In change stats command!"); GameObject target = IDHolder.GetGameObjectWithID(targetID); // target is a creature target.GetComponent <OneCreatureManager>().ChangeStats(attackAmount, healthAmount, attackAfter, healthAfter); CommandExecutionComplete(); }
// METHODS TO SHOW GLOW HIGHLIGHTS public void HighlightPlayableCards(bool removeAllHighlights = false) { foreach (CardLogic cl in GlobalSettings.instance.players[owner].hand.cardsInHand) { GameObject g = IDHolder.GetGameObjectWithID(cl.uniqueCardID); if (g != null) { g.GetComponent <OneCreatureButtonManager>().canBePlayedNow = cl.canBePlayed && !removeAllHighlights; } } }
/// <summary> /// Función que añade el item al script progreso visual incoporado al gameobject de la carta. /// </summary> public override void EmpezarEjecucionComanda() { GameObject cartaG = IDHolder.GetGameObjectWithID(carta.ID); GameObject itemG = IDHolder.GetGameObjectWithID(item.ID); int tipoItem = item.GetType() == typeof(Piedra) ? 1 : 0; cartaG.GetComponent <ProgresoVisual> ().AñadirItem(tipoItem, item.Cantidad); IDHolder.EliminarElemento(itemG.GetComponent <IDHolder> ()); GameObject.Destroy(itemG); Comandas.Instance.CompletarEjecucionComanda(); }
public override void StartCommandExecution() { // remove and destroy the card in hand HandVisual PlayerHand = p.PArea.handVisual; GameObject card = IDHolder.GetGameObjectWithID(cl.UniqueCardID); PlayerHand.RemoveCard(card); GameObject.Destroy(card); // enable Hover Previews Back HoverPreview.PreviewsAllowed = true; // move this card to the spot p.PArea.tableVisual.AddCreatureAtIndex(cl.ca, creatureID, tablePos); }
public override void StartCommandExecution() { var playerHand = _player.PlayerArea.handVisual; var card = IDHolder.GetGameObjectWithID(_cardLogic.ID); playerHand.RemoveCard(card); GameObject.Destroy(card); playerHand.AdjustCardsInHand(); HoverPreview.PreviewsAllowed = true; _player.PlayerArea.tableVisual.AddCreatureAtIndex(_cardLogic.CardAsset, _creatureID, _tablePos); }
public override void StartCommandExecution() { //remove and destroy the card in hand HandVisual PlayerHand = p.PArea.handVisual; GameObject card = IDHolder.GetGameObjectWithID(cl.UniqueCardID); PlayerHand.RemoveCard(card); //GameObject.Destroy(card); // enable Hover Previews HoverPreview.PreviewsAllowed = true; p.PArea.tableVisual.AddCardAtIndex(cl.ca, card, cardID, tablePos); // In tableVisual script it calls "Command.ExecutionComplete" }
// ODTWARZANIE CZAROW // Przeciążona metoda, aby pokazać zaklęcie grane z ręki public void PlayASpellFromHand(int CardID) { // Zainicjowanie zmiennej card typu GameObject // Przypisanie do niej obiektu który pobraliśmy poprzez jego ID (GetGameObjectWithID(CardID)), metoda znajduje się w klasie IDHolder dlatego // musimy najpierw się do niej odwołać GameObject card = IDHolder.GetGameObjectWithID(CardID); PlayASpellFromHand(card); //Wykonujemy tą metodę /// Na przyszłość: Jeśli jeszcze nie zauważyliście to nie ma problemu w nadawaniu takich samych nazw metodom, pod warunkiem że mają inne argumenty /// Po co tak? Nazwa ta sama bo za to samo odpowiadają, z tą różnicą że metoda z argumentem CardID przekazuje dalej ID karty co jest potrzebne /// do części logicznej gry, a metoda która przekazuje GameObject nie może zostać przekazana dalej do logiki /// Dlatego wykonując tą funkcję wyświetlimy obiekt gry, którym jest karta, ale do logiki przekażemy tylko jej ID }
public override void StartCommandExecution() { // usuń i zniszcz kartę w ręce HandVisual PlayerHand = p.PArea.handVisual; GameObject card = IDHolder.GetGameObjectWithID(cl.UniqueCardID); PlayerHand.RemoveCard(card); GameObject.Destroy(card); // włącz HoverPreviewBack HoverPreview.PreviewsAllowed = true; // przenieś tą kartę do slotu p.PArea.tableVisual.AddCreatureAtIndex(cl.ca, creatureID, tablePos); }
public void HighlightMonstersWithAttacks(Player p) { DebugManager.Instance.DebugMessage("Highlighting attackerbles for player " + p.name, DebugManager.MessageType.Targeting); foreach (CreatureLogic cl in p.table.monstersOnTable) { GameObject g = IDHolder.GetGameObjectWithID(cl.ID); if (g != null) { g.GetComponent <OneCreatureManager>().CanAttackNow = cl.CanAttack; } } }
public override void StartActionExecution() { // remove and destroy the card in hand HandVis playerHand = p.pArea.handVisual; GameObject card = IDHolder.GetGameObjectWithID(cl.UniqueCardID); playerHand.RemoveCard(card); GameObject.Destroy(card); // enable hover previews back HoverOnCard.PreviewsAllowed = true; // Move this card to the spot p.pArea.tableVisual.AddCreatureAtIndex(cl.ct, creatureID, tablePos); }
public override void StartCommandExecution() { GameObject target = IDHolder.GetGameObjectWithID(targetID); if (targetID == GlobalSettings.Instance.LowPlayer.PlayerID || targetID == GlobalSettings.Instance.TopPlayer.PlayerID) { target.GetComponent <PlayerPortraitManager>().TakeDamage(amount, healthAfter); } else { target.GetComponent <OneCreatureManager>().TakeDamage(amount, healthAfter); } CommandExecutionComplete(); }
/// <summary> /// Función que permite hacer daño a un jugador o una criatura. /// </summary> public override void EmpezarEjecucionComanda() { GameObject target = IDHolder.GetGameObjectWithID(targetID); if (targetID == Controlador.Instance.Local.ID || targetID == Controlador.Instance.Enemigo.ID) { target.GetComponent <PlayerPortraitVisual>().HacerDaño(amount, health); } else { target.GetComponent <OneCreatureManager>().HacerDaño(amount, health); } comandas.CompletarEjecucionComanda(); }
public void HighlightCastableCards(Player p) { DebugManager.Instance.DebugMessage("Highlighting castables for player " + p.name, DebugManager.MessageType.Targeting); foreach (CardLogic cl in p.hand.cardsInHand) { GameObject g = IDHolder.GetGameObjectWithID(cl.ID); if (g != null) { bool canCast = (g.GetComponent <WhereIsTheCardOrCreature>().VisualState != VisualStates.Transition) && DoesThisCardHaveAnyValidTargets(cl); g.GetComponent <OneCardManager>().CanBePlayedNow = canCast; } } }
public override void ExecuteCommand() { GameObject target = IDHolder.GetGameObjectWithID(TargetID); CardOnBoardController targetCard = CardOnBoardController.CardsPlayedThisGame[TargetID]; targetCard.CardHealth += HealingDealt; targetCard.cardOwner.PlayerHealth += HealingDealt; if (GameManager.IsHeadlessMode == false) { target.GetComponent <CardOnBoardView>().healthText.text = targetCard.CardHealth.ToString(); targetCard.cardOwner.playerView.playerHealth.playerHealth.text = targetCard.cardOwner.PlayerHealth.ToString(); } CommandExecutionComplete(); }
/// <summary> /// Realiza el ataque visual a la criatura objetivo. /// </summary> /// <param name="targetUniqueID">Target unique I.</param> /// <param name="damageTaken">Damage taken.</param> /// <param name="targetHealthAfter">Target health after.</param> public void AttackTarget(int targetUniqueID, int damageTaken, int targetHealthAfter) { manager.PuedeAtacar = false; GameObject target = IDHolder.GetGameObjectWithID(targetUniqueID); w.TraerAlFrente(); /*VisualStates tempState = w.EstadoVisual; * w.EstadoVisual = VisualStates.Transicion;*/ transform.DOMove(target.transform.position, 0.5f).SetLoops(2, LoopType.Yoyo).SetEase(Ease.InCubic).OnComplete(() => { if (targetUniqueID == Controlador.Instance.Local.ID || targetUniqueID == Controlador.Instance.Enemigo.ID) { target.GetComponent <PlayerPortraitVisual>().HacerDaño(damageTaken, targetHealthAfter); if (target.GetComponent <AudioSource>() != null && target.GetComponent <AudioSource>().clip != null && ConfiguracionUsuario.Instance.Musica) { target.GetComponent <AudioSource>().Play(); } } else { if (target.tag.Contains("Criatura")) { target.GetComponent <OneCreatureManager>().HacerDaño(damageTaken, targetHealthAfter); } else { target.GetComponent <OneMagicaManager>().HacerDaño(); } if (target.GetComponents <AudioSource>()[1] != null && target.GetComponents <AudioSource>()[1].clip != null && ConfiguracionUsuario.Instance.Musica) { target.GetComponents <AudioSource>()[1].Play(); } } w.SetearOrdenCriatura(); /*w.EstadoVisual = tempState;*/ Sequence s = DOTween.Sequence(); s.AppendInterval(1f); s.OnComplete(Comandas.Instance.CompletarEjecucionComanda); }); }
public override void StartActionExecution() { Debug.Log("Deal damage command"); GameObject target = IDHolder.GetGameObjectWithID(targetID); // Is the target a player? if (targetID == GameManager.Instance.BottomPlayer.PlayerID || targetID == GameManager.Instance.TopPlayer.PlayerID) { Debug.Log("Add hitting player - DealDamageAction"); } // Target is a creature else { target.GetComponent <PlayedCreatureDisplay>().TakeDamage(amount, healthAfter); } ActionExecutionComplete(); }
public override void StartCommandExecution() { DebugManager.Instance.DebugMessage("Executing damage command.", DebugManager.MessageType.Commands); GameObject target = IDHolder.GetGameObjectWithID(targetID); if (targetID == GlobalSettings.Instance.BottomPlayer.PlayerID || targetID == GlobalSettings.Instance.TopPlayer.PlayerID) { // target is a hero target.GetComponent <AvatarVisual>().TakeDamage(amount, healthAfter); } else { // target is a creature target.GetComponent <OneCreatureManager>().TakeDamage(amount, healthAfter); } CommandExecutionComplete(); }
public override void StartCommandExecution() { Debug.Log("In deal damage command!"); GameObject target = IDHolder.GetGameObjectWithID(targetID); if (targetID == GlobalSettings.Instance.LowPlayer.PlayerID || targetID == GlobalSettings.Instance.TopPlayer.PlayerID) { // target is a hero target.GetComponent <PlayerPortraitVisual>().TakeDamage(amount, healthAfter); } else { // target is a creature target.GetComponent <CreatureManager>().TakeDamage(amount, healthAfter); } CommandExecutionComplete(); }
public void AttackTarget(int targetUniqueID, int damageTakenByTarget, int damageTakenByAttacker, int attackerHealthAfter, int targetHealthAfter) { Debug.Log(targetUniqueID); manager.CanAttackNow = false; GameObject target = IDHolder.GetGameObjectWithID(targetUniqueID); // bring this creature to front sorting-wise. w.BringToFront(); VisualStates tempState = w.VisualState; w.VisualState = VisualStates.Transition; transform.DOMove(target.transform.position, 0.5f).SetLoops(2, LoopType.Yoyo).SetEase(Ease.InCubic).OnComplete(() => { if (damageTakenByTarget > 0) { DamageEffect.CreateDamageEffect(target.transform.position, damageTakenByTarget); } if (damageTakenByAttacker > 0) { DamageEffect.CreateDamageEffect(transform.position, damageTakenByAttacker); } if (targetUniqueID == GlobalSettings.Instance.LowPlayer.PlayerID || targetUniqueID == GlobalSettings.Instance.TopPlayer.PlayerID) { // target is a player target.GetComponent <PlayerPortraitVisual>().HealthText.text = targetHealthAfter.ToString(); } else { target.GetComponent <CreatureManager>().HealthText.text = targetHealthAfter.ToString(); } w.SetTableSortingOrder(); w.VisualState = tempState; manager.HealthText.text = attackerHealthAfter.ToString(); Sequence s = DOTween.Sequence(); s.AppendInterval(1f); s.OnComplete(Command.CommandExecutionComplete); //Command.CommandExecutionComplete(); }); }