Example #1
0
 public void SetCardAvatar(CardAvatar cardAvatar)
 {
     if (this.cardAvatar == null)
     {
         this.cardAvatar = cardAvatar;
     }
 }
Example #2
0
    public override void Execute(Action action)
    {
        Card card;

        //THe case of a deal card being send before a creat rune, EX.(A card in the other persons hand)
        if (EntityManager.Singelton.GetEntity(cardGuid) != null)
        {
            CardAvatar ca = (EntityManager.Singelton.GetEntity(cardGuid) as Card).GetCardAvatar();
            Debug.Log(ca);
            EntityManager.Singelton.RemoveEntity(cardGuid);
            if (type == CardType.minion)
            {
                card = new MinionCard();
                MinionCard mc = card as MinionCard;
                CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id);

                mc.SetName(cd.cardName);
                mc.SetArt(cd.art);
                mc.SetBaseAttack(baseAttack);
                mc.SetBaseHealth(baseHealth);
                mc.SetMana(cost);
                mc.SetGuid(cardGuid);
                mc.SetDesc(cd.desc);
                mc.SetCardAvatar(ca);
                EntityManager.Singelton.AddEntity(cardGuid, mc);
                ca.Setup(card, cardGuid, controllerGuid);
            }
        }
        else
        {
            if (type == CardType.minion)
            {
                MinionCard mc = new MinionCard();
                CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id);
                mc.SetCardText(cd.cardText);
                mc.SetName(cd.cardName);
                mc.SetArt(cd.art);
                mc.SetBaseAttack(baseAttack);
                mc.SetBaseHealth(baseHealth);
                mc.SetMana(cost);
                mc.SetGuid(cardGuid);
                mc.SetDesc(cd.desc);
                EntityManager.Singelton.AddEntity(cardGuid, mc);
            }
            else if (type == CardType.spell)
            {
                SpellCard sc = new SpellCard();
                CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id);

                sc.SetName(cd.cardName);
                sc.SetArt(cd.art);
                sc.SetMana(cost);
                sc.SetDesc(cd.desc);
                sc.SetGuid(cardGuid);
                sc.SetCardType((int)type);
                EntityManager.Singelton.AddEntity(cardGuid, sc);
            }
        }
        action();
    }
Example #3
0
    public void RemoveCardFromHand(CardAvatar cardAvatar, string controllerGuid)
    {
        float yPos = 0;

        if (controllerGuid == homeGuid)
        {
            yPos = -2.0f;
        }
        else if (controllerGuid == awayGuid)
        {
            yPos = 4.0f;
        }

        if (playHands.ContainsKey(controllerGuid))
        {
            playHands[controllerGuid].Remove(cardAvatar);
            float width      = 1.3f;
            float halfWidth  = width + epsilon;
            float startPoint = playHands[controllerGuid].Count * halfWidth;

            for (int i = 0; i < playHands[controllerGuid].Count; i++)
            {
                playHands[controllerGuid][i].GetComponent <CardAvatar>().SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3));
            }
        }
    }
Example #4
0
    public void AddCardToHand(CardAvatar cardAvatar, string controllerGuid, Action action)//Will need optional paramater for origin
    {
        float yPos = 0;

        if (controllerGuid == homeGuid)
        {
            yPos = -2.0f;
            if (!gameStarted)
            {
                yPos = 0.0f;
            }
        }
        else if (controllerGuid == awayGuid)
        {
            yPos = 4.0f;
            if (!gameStarted)
            {
                yPos = 5.0f;
            }
        }
        if (playHands.ContainsKey(controllerGuid))
        {
            playHands[controllerGuid].Add(cardAvatar);

            float width      = 1.3f;
            float halfWidth  = width + epsilon;
            float startPoint = playHands[controllerGuid].Count * halfWidth;
            for (int i = 0; i < playHands[controllerGuid].Count; i++)
            {
                playHands[controllerGuid][i].GetComponent <CardAvatar>().SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3));//, action);
            }
        }
        action();
    }
Example #5
0
    public int GetPossibleCardIndex(CardAvatar placingCard)
    {
        if (playFields [homeGuid].Count == 0)
        {
            return(0);
        }

        List <CardAvatar> checkCards = playFields [homeGuid];

        for (int i = 0; i < checkCards.Count; i++)
        {
            if (checkCards [i].transform.position.x > placingCard.transform.position.x)
            {
                return(i);
            }
        }
        return(checkCards.Count);
    }
Example #6
0
    public void AddCardToPlayArea(CardAvatar cardAvatar, string controllerGuid, int index)
    {
        OriginOfCard oc   = OriginOfCard.HAND;
        float        yPos = 0;

        if (controllerGuid == homeGuid)
        {
            yPos = -0.0f;
        }
        else if (controllerGuid == awayGuid)
        {
            yPos = 2.0f;
        }

        if (playFields.ContainsKey(controllerGuid))
        {
            cardAvatar.cardAvatarState = CardAvatarState.inPlay;
            float width      = 1.3f;
            float halfWidth  = width + epsilon;
            float startPoint = playFields[controllerGuid].Count * halfWidth;

            switch (oc)
            {
            case OriginOfCard.HAND:
                RemoveCardFromHand(cardAvatar, controllerGuid);

                playFields[controllerGuid].Insert(index, cardAvatar);
                for (int i = 0; i < playFields[controllerGuid].Count; i++)
                {
                    playFields[controllerGuid][i].SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3));
                }

                break;

            case OriginOfCard.SUMMON:
                playFields[controllerGuid].Insert(index, cardAvatar);
                for (int i = 0; i < playFields[controllerGuid].Count; i++)
                {
                    playFields[controllerGuid][i].SetDestination(new Vector3(-startPoint + (halfWidth * i), yPos, -3));
                }
                break;
            }
        }
    }
    public override void Execute(Action action)
    {
        Card card;

        //Not sure but I think I might not need this anymore??
        if (EntityManager.Singelton.GetEntity(uid) != null)
        {
            CardAvatar ca = (EntityManager.Singelton.GetEntity(uid) as Card).GetCardAvatar();
            EntityManager.Singelton.RemoveEntity(uid);
            card = new MinionCard();
            MinionCard mc = card as MinionCard;
            CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id);

            mc.SetName(cd.cardName);
            mc.SetBaseAttack(base_attack);
            mc.SetBaseHealth(base_health);
            mc.SetMana(cost);
            mc.SetGuid(uid);
            mc.SetDesc(cd.desc);
            mc.SetCardAvatar(ca);
            EntityManager.Singelton.AddEntity(uid, mc);
            ca.Setup(card, uid, controller_uid);
        }
        else
        {
            MinionCard mc = new MinionCard();
            CardDataLoader.CardData cd = CardDataLoader.Singelton.GetCardData(id);
            mc.SetCardText(cd.cardText);
            mc.SetName(cd.cardName);
            mc.SetArt(cd.art);
            mc.SetBaseAttack(base_attack);
            mc.SetBaseHealth(base_health);
            mc.SetMana(cost);
            mc.SetGuid(uid);
            mc.SetDesc(cd.desc);
            EntityManager.Singelton.AddEntity(uid, mc);
        }


        action();
    }
 public void CardClickedOn(CardAvatar cardAvatar)
 {
 }
Example #9
0
    private void CheckForBoardClick()
    {
        if (!PlayArea.Singelton.GetGameStart())
        {
            return;
        }

        if (Input.GetMouseButtonDown(0))
        {
            if (controllerState == ControllerState.waiting)
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit rch;
                if (Physics.Raycast(ray, out rch, 1000000))
                {
                    GameObject go = rch.collider.gameObject;
                    if (go.tag == "Card")
                    {
                        CardAvatar ca = go.GetComponentInParent <CardAvatar>();
                        if (ca.cardAvatarState == CardAvatarState.inHand)
                        {
                            if (ca.GetControllerGuid() == guid)
                            {
                                ca.cardAvatarState = CardAvatarState.inTransit;
                                careAboutCard      = ca;
                                controllerState    = ControllerState.movingCard;
                            }
                        }
                        else if (ca.cardAvatarState == CardAvatarState.inPlay)
                        {
                            if (ca.GetControllerGuid() == guid)
                            {
                                targetOptions = OptionsManager.Singleton.options[ca.GetGuid()];
                                if (targetOptions != null)
                                {
                                    careAboutCard      = ca;
                                    controllerState    = ControllerState.targeting;
                                    ca.cardAvatarState = CardAvatarState.waitingForTarget;
                                }
                            }
                        }
                    }
                    else if (go.tag == "Hero")
                    {
                    }
                }
            }
            else if (controllerState == ControllerState.targeting)
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit rch;
                if (Physics.Raycast(ray, out rch, 1000000))
                {
                    GameObject go = rch.collider.gameObject;
                    if (go.tag == "Card")
                    {
                        CardAvatar ca = go.GetComponentInParent <CardAvatar>();

                        if (ca.cardAvatarState == CardAvatarState.inPlay && careAboutCard.cardAvatarState == CardAvatarState.inTransit)
                        {
                            string cardGuid = ca.GetGuid();
                            foreach (Option op in targetOptions)
                            {
                                if ((op as PlayCardOption).targetGuid == cardGuid)
                                {
                                    controllerState = ControllerState.waiting;
                                    careAboutCard.cardAvatarState = CardAvatarState.inPlay;
                                    targetOptions = null;
                                    careAboutCard = null;
                                    int index = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard);
                                    OptionsManager.Singleton.PickUpOption(op, index);



                                    return;
                                }
                            }
                        }
                        else
                        {
                            //this would be for spells or something similar I think
                        }
                    }
                    else if (go.tag == "Hero")
                    {
                    }
                }
            }
        }
        else if (Input.GetMouseButtonUp(0))
        {
            if (careAboutCard != null)
            {
                if (controllerState == ControllerState.movingCard)
                {
                    if (PlayArea.Singelton.InPlayArea(careAboutCard.transform.position))
                    {
                        if (OptionsManager.Singleton.options.ContainsKey(careAboutCard.GetGuid()))
                        {
                            var options = OptionsManager.Singleton.options[careAboutCard.GetGuid()];
                            foreach (Option op in options)
                            {
                                if (op.GetType() == typeof(PlayCardOption))
                                {
                                    if ((op as PlayCardOption).targetGuid == "0")
                                    {
                                        int placeIndex = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard);
                                        OptionsManager.Singleton.PickUpOption(op, placeIndex);
                                        careAboutCard.cardAvatarState = CardAvatarState.inPlay;
                                        controllerState = ControllerState.waiting;
                                        careAboutCard   = null;
                                        return;
                                    }
                                    else
                                    {
                                        CardLookingForTargets(options);
                                        careAboutCard.cardAvatarState = CardAvatarState.waitingForTarget;
                                        controllerState = ControllerState.targeting;
                                        return;
                                    }
                                }
                                else if (op.GetType() == typeof(PlaySpellOption))
                                {
                                    if ((op as PlaySpellOption).target == "-1")
                                    {
                                        OptionsManager.Singleton.PickUpOption(op);
                                        careAboutCard.cardAvatarState = CardAvatarState.inPlay;
                                        controllerState = ControllerState.waiting;
                                        careAboutCard   = null;
                                        return;
                                    }
                                    else
                                    {
                                        CardLookingForTargets(options);
                                        careAboutCard.cardAvatarState = CardAvatarState.waitingForTarget;
                                        controllerState = ControllerState.targeting;
                                        return;
                                    }
                                }
                            }
                        }
                        else
                        {
                            careAboutCard.cardAvatarState = CardAvatarState.inHand;
                            careAboutCard = null;
                        }
                    }
                    else
                    {
                        careAboutCard.cardAvatarState = CardAvatarState.inHand;
                        careAboutCard = null;
                    }
                }
                else if (controllerState == ControllerState.targeting)
                {
                    if (careAboutCard != null)
                    {
                        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                        RaycastHit rch;
                        if (Physics.Raycast(ray, out rch, 10000000))
                        {
                            string targetGuid = "";
                            if (rch.collider.gameObject.tag == "Card")
                            {
                                targetGuid = rch.collider.gameObject.GetComponentInParent <CardAvatar>().GetGuid();
                            }
                            else if (rch.collider.gameObject.tag == "Hero")
                            {
                                targetGuid = rch.collider.gameObject.GetComponentInParent <HeroAvatar>().careAboutGuid;
                            }

                            if (careAboutCard.cardAvatarState == CardAvatarState.inHand)
                            {
                                if (targetOptions != null)
                                {
                                    foreach (Option op in targetOptions)
                                    {
                                        if (op.GetType() == typeof(PlayCardOption))
                                        {
                                            if ((op as PlayCardOption).targetGuid == targetGuid)
                                            {
                                                int placeIndex = PlayArea.Singelton.GetPossibleCardIndex(careAboutCard);
                                                OptionsManager.Singleton.PickUpOption(op, placeIndex);
                                                careAboutCard   = null;
                                                targetOptions   = null;
                                                controllerState = ControllerState.waiting;
                                            }
                                        }
                                        else if (op.GetType() == typeof(PlaySpellOption))
                                        {
                                            if ((op as PlaySpellOption).target == targetGuid)
                                            {
                                                OptionsManager.Singleton.PickUpOption(op);
                                                careAboutCard   = null;
                                                targetOptions   = null;
                                                controllerState = ControllerState.waiting;
                                            }
                                        }
                                    }
                                }
                            }
                            else if (careAboutCard.cardAvatarState == CardAvatarState.waitingForTarget)
                            {
                                if (targetOptions != null)
                                {
                                    foreach (Option op in targetOptions)
                                    {
                                        if ((op as AttackOption).defenderGuid == targetGuid)
                                        {
                                            OptionsManager.Singleton.PickUpOption(op);
                                            careAboutCard   = null;
                                            targetOptions   = null;
                                            controllerState = ControllerState.waiting;
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            careAboutCard.cardAvatarState = CardAvatarState.inHand;
                            careAboutCard   = null;
                            targetOptions   = null;
                            controllerState = ControllerState.waiting;
                        }
                    }
                }
            }
        }
        else if (Input.GetMouseButtonDown(1))
        {
        }
        else if (Input.GetMouseButtonUp(1))
        {
        }
    }