internal static void PlayCardCallback(object[] data)
    {
        string who = (string)data[0];
        PlayerObjectBehaviour forPlayer = LocalPlayer;

        if (who.Equals(EnemyPlayer.PlayerName))
        {
            forPlayer = EnemyPlayer;
        }
        int guid = (int)data[1];
        int mana = (int)data[2];
        CardObjectBehaviour cob = CardObjectBehaviour.GetCOB(guid);

        forPlayer.Hob.RemoveCard(cob.gameObject);
        forPlayer.UpdateMana(mana);
        cob.gameObject.GetComponent <DragHandCard>().CanDrag = false;

        cob.AddDoTweens(() =>
        {
            // Move card to neutral position and play effects
            Vector3 spellEffectPos = NeutralBattlePoint.transform.position;
            cob.AddEffectParticle();
            cob.SetTweening(true);
            Sequence s = DOTween.Sequence();
            s.Insert(0f, cob.gameObject.transform.DOMove(new Vector3(spellEffectPos.x, spellEffectPos.y, -3f), GameConfig.F("SPELL_CARD_FLY_TIME")));
            s.Insert(0f, cob.gameObject.transform.DOScale(GameConfig.F("SPELL_CARD_SCALE"), GameConfig.F("SPELL_CARD_FLY_TIME")));
            s.AppendInterval(GameConfig.F("SPELL_CARD_FLY_TIME") + GameConfig.F("SPELL_CARD_DISPLAY_TIME"));
            s.OnComplete(() =>
            {
                cob.SetTweening(false);
            });
        });
    }
    internal static void PlayCardSlotCallback(object[] data)
    {
        PlayerObjectBehaviour p   = ForPlayer((string)data[0]);
        CardObjectBehaviour   cob = CardObjectBehaviour.GetCOB((int)data[1]);
        int slot  = (int)data[2];
        int power = (int)data[3];

        p.CSob[slot].AddCard(cob.gameObject);
        p.UpdateCardSlotPower(slot, power);
    }
    private void Awake()
    {
        uiState = UIState.ACTION;

        LocalPlayer         = PlayerA.GetComponent <PlayerObjectBehaviour>();
        EnemyPlayer         = PlayerB.GetComponent <PlayerObjectBehaviour>();
        NeutralBattlePoint  = NeutralBattlePointGO;
        AttackerBattlePoint = AttackerBattlePointtGO;
        DefenderBattlePoint = DefenderBattlePointGO;
    }
    private static PlayerObjectBehaviour ForPlayer(string name)
    {
        PlayerObjectBehaviour ret = LocalPlayer;

        if (name.Equals(EnemyPlayer.PlayerName))
        {
            ret = EnemyPlayer;
        }
        return(ret);
    }
 private void Awake()
 {
     Pob             = PlayerObject.GetComponent <PlayerObjectBehaviour>();
     TheImage.sprite = ImageAsset;
     if (Pob.IsTop)
     {
         TheImage.GetComponent <RectTransform>().Rotate(new Vector3(-180f, 180f, 0f));
     }
     cardObjs = new List <GameObject>();
 }
    internal static void SelectDoneCallback(object[] data)
    {
        PlayerObjectBehaviour p = ForPlayer((string)data[0]);

        if (SelectTargetObject != null)
        {
            Destroy(SelectTargetObject);
            SelectTargetObject = null;
        }
        SetUIState(UIState.ACTION);
    }
    internal static void UpdatePlayerMana(object[] data)
    {
        string who  = (string)data[0];
        int    mana = (int)data[1];
        PlayerObjectBehaviour forPlayer = LocalPlayer;

        if (who.Equals(EnemyPlayer.PlayerName))
        {
            forPlayer = EnemyPlayer;
        }
        forPlayer.UpdateMana(mana);
    }
    internal static void PlayCardFailCallback(object[] data)
    {
        string who  = (string)data[0];
        int    guid = (int)data[1];
        PlayerObjectBehaviour forPlayer = LocalPlayer;

        if (who.Equals(EnemyPlayer.PlayerName))
        {
            forPlayer = EnemyPlayer;
        }
        forPlayer.Hob.PlayCardFail(CardObjectBehaviour.GetCOB(guid).gameObject);
    }
Exemple #9
0
 public DrawCardView(PlayerObjectBehaviour pob, List <Card> cards, int deckN)
 {
     for (int i = 0; i < cards.Count; i++)
     {
         GameObject co = CardObjectBehaviour.Create(cards.ElementAt(i), pob);
         pob.Hob.AddCard(co);
         if (!BoardBehaviour.LocalPlayerName.Equals(pob.PlayerName))
         {
             co.GetComponent <DragHandCard>().CanDrag = false;
         }
     }
     pob.Dob.UpdateDeckNumber(deckN);
 }
    internal static void SelectTargetCallback(object[] data)
    {
        // Requesting a card selection
        PlayerObjectBehaviour p = ForPlayer((string)data[0]);

        if (SelectTargetObject != null)
        {
            Destroy(SelectTargetObject);
            SelectTargetObject = null;
        }
        SelectTargetObject = Instantiate(Resources.Load("prefabs/Target")) as GameObject;
        SelectTargetCard    sel = SelectTargetObject.GetComponent <SelectTargetCard>();
        CardObjectBehaviour cob = CardObjectBehaviour.GetCOB((int)data[1]);

        sel.From = cob.gameObject;
        SetUIState(UIState.TARGETING);
    }
    internal static void DiscardCardCallback(object[] data)
    {
        PlayerObjectBehaviour p   = ForPlayer((string)data[0]);
        CardObjectBehaviour   cob = CardObjectBehaviour.GetCOB((int)data[1]);

        cob.AddDoTweens(() =>
        {
            cob.OriginPos = p.Grave.transform.position;
            cob.SetTweening(true);
            Sequence s = DOTween.Sequence();
            s.Insert(0f, cob.gameObject.transform.DOMove(cob.OriginPos, GameConfig.F("BATTLE_CARD_DEATH_FLY_TIME")));
            s.Insert(0f, cob.gameObject.transform.DOScale(1.0f, GameConfig.F("BATTLE_CARD_DEATH_FLY_TIME")));
            cob.State = CardState.GRAVE;
            s.OnComplete(() =>
            {
                cob.SetTweening(false);
            });
        });
    }
    public static GameObject Create(Card cardData, PlayerObjectBehaviour player)
    {
        GameObject          co  = Instantiate(Resources.Load("prefabs/CardObject")) as GameObject;
        CardObjectBehaviour cob = co.GetComponent <CardObjectBehaviour>();

        // card visual
        cob.CardImage.sprite     = Resources.Load <Sprite>("sprites/card_images/" + cardData.id);
        cob.CardName.text        = cardData.name;
        cob.CardClass.sprite     = Resources.Load <Sprite>("sprites/card_ui/frame_" + cardData.color);
        cob.CardType.sprite      = Resources.Load <Sprite>("sprites/card_ui/type_" + cardData.ctype);
        cob.CardPower.text       = cardData.power.ToString();
        cob.CardDescription.text = cardData.desc.Replace("|n", "\n");
        cob.CardCostNumber.text  = cardData.cost.ToString();
        cob.CardCostImage.sprite = Resources.Load <Sprite>("sprites/card_ui/mana_" + cardData.color);
        Sprite powerFrame = Resources.Load <Sprite>("sprites/card_ui/power_" + cardData.color);

        cob.CardTypeFrame.sprite  = powerFrame;
        cob.CardPowerFrame.sprite = powerFrame;

        // layout
        cob.Order       = zOffset;
        cob.isExpanding = false;
        cob.State       = CardState.DEFAULT;

        if (!cardData.ctype.Equals(CardTypes.CREATURE))
        {
            cob.CardPowerFrame.enabled = false;
            cob.CardPower.enabled      = false;
        }

        cob.Owner = player;
        cob.buffs = new List <GameObject>();
        zOffset  += -0.01f;
        cob.guid  = cardData.guid;

        AddCard(cob);

        return(co);
    }
    internal static void UpdateSlotPowerCallback(object[] data)
    {
        PlayerObjectBehaviour p = ForPlayer((string)data[0]);

        p.UpdateCardSlotPower((int)data[1], (int)data[2]);
    }
 private void Awake()
 {
     Pob = PlayerObject.GetComponent <PlayerObjectBehaviour>();
 }