Esempio n. 1
0
    // 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;
    }
Esempio n. 2
0
    /// <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);
            }
        }
    }
Esempio n. 3
0
    /// <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);
    }
Esempio n. 4
0
    /// <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();
    }
Esempio n. 5
0
    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();
    }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
    public override void StartCommandExecution()
    {
        GameObject Attacker = IDHolder.GetGameObjectWithID(AttackerUniqueID);

        //Debug.Log(TargetUniqueID);
        Attacker.GetComponent <CreatureAttackVisual>().AttackTarget(TargetUniqueID, DamageTakenByTarget, DamageTakenByAttacker, AttackerHealthAfter, TargetHealthAfter);
    }
Esempio n. 8
0
    // Destroy a creature
    public void RemoveCreatureWithID(int IDToRemove)
    {
        GameObject creatureToRemove = IDHolder.GetGameObjectWithID(IDToRemove);

        CreaturesOnTable.Remove(creatureToRemove);
        Destroy(creatureToRemove);
        CalculateCardPositions();
        Command.CommandExecutionComplete();
    }
Esempio n. 9
0
    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);
    }
Esempio n. 11
0
    public void RemoveCardOnBoardWithID(int IDToRemove)
    {
        GameObject cardToRemove = IDHolder.GetGameObjectWithID(IDToRemove);

        cardsInRow.Remove(cardToRemove);
        Destroy(cardToRemove);

        ShiftSlotsGameObjectAccordingToNumberOfCardsOnBoard();
        PlaceCardsOnNewSlots();
        Command.CommandExecutionComplete();
    }
Esempio n. 12
0
    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;
         }
     }
 }
Esempio n. 14
0
    /// <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);
 }
Esempio n. 16
0
    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"
    }
Esempio n. 18
0
    // 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
    }
Esempio n. 19
0
    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);
    }
Esempio n. 20
0
    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;
            }
        }
    }
Esempio n. 21
0
    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);
    }
Esempio n. 22
0
    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();
    }
Esempio n. 23
0
    /// <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();
    }
Esempio n. 24
0
    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;
            }
        }
    }
Esempio n. 25
0
    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();
    }
Esempio n. 26
0
    /// <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);
        });
    }
Esempio n. 27
0
    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();
    }
Esempio n. 29
0
    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();
    }
Esempio n. 30
0
    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();
        });
    }