Exemple #1
0
    public void PlayerUseCard(CardDataObj card)
    {
        Vector2 pos = RectTransformUtility.WorldToScreenPoint(Camera.main, card.transform.position);

        if (RectTransformUtility.RectangleContainsScreenPoint(UseCardRect, pos, Camera.main))
        {
            if (RoundSystem.Instance.UseCard(card, 1))
            {
                PlayerCards.Remove(card.gameObject);
            }
        }
        SortCard(1);
    }
Exemple #2
0
    //玩家使用卡牌
    public bool UseCard(CardDataObj card, int role)
    {
        if (role == 1 && state != RoundState.PlayerRurn)
        {
            return(false);
        }
        if (role == 2 && state != RoundState.NpcTurn)
        {
            return(false);
        }
        RoleProperty self  = null;
        RoleProperty enemy = null;

        if (state == RoundState.PlayerRurn)
        {
            self  = PlayerAtt.property;
            enemy = NPCAtt.property;
        }
        else if (state == RoundState.NpcTurn)
        {
            self  = NPCAtt.property;
            enemy = PlayerAtt.property;
        }
        Debug.Log(card.data.CardName);
        for (int i = 0; i < card.data.functions.Length; i++)
        {
            FunctionData data = card.data.functions[i];
            if (data.target == EnumProperty.TargetType.Self || data.target == EnumProperty.TargetType.All)
            {
                CaculateSystem.Instance.Caculate(data.type, data.func, ref self, data.Values);
            }
            if (data.target == EnumProperty.TargetType.Enemy || data.target == EnumProperty.TargetType.All)
            {
                CaculateSystem.Instance.Caculate(data.type, data.func, ref enemy, data.Values);
            }
        }

        EntityCenter.Instance.ReleaseCard(card.gameObject);
        UIRound round = (UIRound)UIPage.GetPageInstatnce <UIRound>();

        UIRoundData[3] = RemainRound;
        round.UpdateDataShow();
        return(true);
    }