コード例 #1
0
    // コンストラクタ
    public CardModel(int card_id, GameSide side, CardPlace place)
    {
        // 整数4桁の0埋め
        string str_id = card_id.ToString("D4");
        // カード情報を読み込む。
        CardEntity entity = Resources.Load <CardEntity>("CardEntityList/" + str_id);

        id           = entity.id;
        name         = entity.name;
        attackPoints = new int[(int)Direction.NUM];
        attackPoints[(int)Direction.UP]    = entity.attackPointUp;
        attackPoints[(int)Direction.DOWN]  = entity.attackPointDown;
        attackPoints[(int)Direction.LEFT]  = entity.attackPointLeft;
        attackPoints[(int)Direction.RIGHT] = entity.attackPointRight;
        hp     = entity.hp;
        cost   = entity.cost;
        text   = entity.text;
        illust = entity.illust;

        skillList = new List <Skill>();
        foreach (SkillEntity s in entity.skillEntityList)
        {
            skillList.Add(new Skill(s));
        }

        gameSide = side;

        canMoveToField = false;
        waitAmount     = 0.0f;
    }
コード例 #2
0
 public CardActionData(CardActionData act)
 {
     type        = act.type;
     card        = act.card;
     cardDisplay = act.cardDisplay;
     place       = act.place;
 }
コード例 #3
0
    // public Bar bar;


    public CardActionData(CardDisplay _card = null, ICard cardData = null, ActionType _type = null, CardPlace _place = null)
    {
        type        = _type;
        card        = cardData;
        cardDisplay = _card;
        place       = _place;
    }
コード例 #4
0
 public CardSelectionData(CardSelectionData sel)
 {
     type        = sel.type;
     card        = sel.card;
     cardDisplay = sel.cardDisplay;
     place       = sel.place;
     selected    = sel.selected;
 }
コード例 #5
0
 public Action(List <Card> cards, CardPlace actionFrom, CardPlace actionTo, ColumnBase columnFrom, ColumnBase columnTo)
 {
     Cards      = cards;
     ActionFrom = actionFrom;
     ActionTo   = actionTo;
     ColumnFrom = columnFrom;
     ColumnTo   = columnTo;
 }
コード例 #6
0
    // public Bar bar;

    public CardSelectionData(CardDisplay _card = null, ICard cardData = null, SelectionType _type = null, bool _selected = false, CardPlace _place = null)
    {
        type        = _type;
        card        = cardData;
        cardDisplay = _card;
        place       = _place;
        selected    = _selected;
    }
コード例 #7
0
        public static void SendCreateCard(long index, long cardId, long serverId, CardPlace place, long boardIndex)
        {
            Console.WriteLine("Sending CreateCard to: " + index);
            ByteBuffer buffer = new ByteBuffer();

            buffer.WriteLong((long)ServerPackets.CREATE_CARD);

            buffer.WriteLong(cardId);
            buffer.WriteLong(serverId);
            buffer.WriteLong((long)place);
            buffer.WriteLong(boardIndex);

            NetworkSocket.SendDataTo(index, buffer.ToArray());
        }
コード例 #8
0
    public void GoToDiscarded(AfterDiscardCallback afterDiscard = null)
    {
        var position = new Vector3(
            Game.Instance.InGameOptions.DiscardedTransform.position.x,
            Game.Instance.InGameOptions.DiscardedTransform.position.y,
            Game.Instance.InGameOptions.DiscardedTransform.position.z
            );

        if (_moveTweenId.HasValue)
        {
            LeanTween.cancel(_moveTweenId.Value);
            _moveTweenId = null;
        }
        if (_rotateTweenId.HasValue)
        {
            LeanTween.cancel(_rotateTweenId.Value);
            _rotateTweenId = null;
        }

        _moveTweenId = LeanTween.move(gameObject, position, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).id;
        LeanTween.descr(_moveTweenId.Value).setOnComplete(() =>
        {
            LeanTween.cancel(_moveTweenId.Value);
            _moveTweenId = null;
            AfterDiscard?.Invoke();
        });

        _rotateTweenId = LeanTween.rotate(gameObject, Game.Instance.InGameOptions.DiscardedTransform.eulerAngles, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).id;
        LeanTween.descr(_rotateTweenId.Value).setOnComplete(() => {
            LeanTween.cancel(_rotateTweenId.Value);
            _rotateTweenId = null;
        });

        if (Game.Instance.CardManager.IsAtLeastOneCardDiscarded)
        {
            List <int> cards = Game.Instance.CardManager.GetCardsCurrentlyDiscarded();
            foreach (int cardIndex in cards)
            {
                var card = Game.Instance.CardManager.CardPool[cardIndex];
                card.GoToDiscardedDeck();
            }
        }

        Game.Instance.CardManager.IsAtLeastOneCardDiscarded = true;

        CardPlace    = CardPlace.IsJustDiscarded;
        AfterDiscard = afterDiscard;
    }
コード例 #9
0
    public void GoInHand(Vector3 position, Vector3 rotation, bool instant = false, AfterTakeCardCallback afterTakeCard = null)
    {
        AfterTakeCard = afterTakeCard;
        if (instant)
        {
            transform.position    = position;
            transform.eulerAngles = rotation;

            AfterTakeCard?.Invoke();

            if (_collider != null)
            {
                _collider.enabled = true;
            }
        }
        else
        {
            if (_moveTweenId.HasValue)
            {
                LeanTween.cancel(_moveTweenId.Value);
                _moveTweenId = null;
            }
            if (_rotateTweenId.HasValue)
            {
                LeanTween.cancel(_rotateTweenId.Value);
                _rotateTweenId = null;
            }

            _moveTweenId = LeanTween.move(gameObject, position, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).setEase(_animationType).id;
            LeanTween.descr(_moveTweenId.Value).setOnComplete(() =>
            {
                LeanTween.cancel(_moveTweenId.Value);
                _moveTweenId = null;
                AfterTakeCard?.Invoke();
            });

            _rotateTweenId = LeanTween.rotate(gameObject, rotation, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).setEase(_animationType).id;
            LeanTween.descr(_rotateTweenId.Value).setOnComplete(() => {
                LeanTween.cancel(_rotateTweenId.Value);
                _rotateTweenId = null;
            });
        }

        CardPlace = CardPlace.InPlayerHand;
    }
コード例 #10
0
        private void AddIntoNewPlace(int iGridCol, int iGridRow)
        {
            int       iCurrCol;
            CardImage card          = _cardsMove[0];
            CardPlace prevCardPlace = card.Place;

            switch (iGridRow)
            {
            //if there is result columns
            case GameWindowConstants.iRowResColsGrid:
                iCurrCol = grid.GetResColIndex(iGridCol);
                // replace moved card
                _game.ReplaceCard(card, _game.Columns.ColResult[iCurrCol]);
                break;

            case GameWindowConstants.iRowGameColsGrid:
                iCurrCol = grid.GetGameColIndex(iGridCol);
                // replace cards
                for (int index = _cardsMove.Count - 1; index >= 0; index--)
                {
                    _game.ReplaceCard(_cardsMove[index], _game.Columns.ColGame[iCurrCol]);
                }
                if (prevCardPlace != CardPlace.ResultColumn)
                {
                    _game.AutocollectCards();
                }
                break;

            case GameWindowConstants.iRowAdditionalColsGrid:
                // replace card
                _game.ReplaceCard(card,
                                  iGridCol == _gameWindowData.iGridColKing
                            ? _game.Columns.ColAdditional[Constants.iColKing]
                            : _game.Columns.ColAdditional[Constants.iColJoker]);

                _game.AutocollectCards();
                break;

            default:
                throw new Exception("Invalid column index.");
            }

            _game.CheckOnWin();
        }
コード例 #11
0
    public void GoToBackDeck(bool instant = false)
    {
        var position = new Vector3(
            Game.Instance.InGameOptions.BackDeckTransform.position.x,
            Game.Instance.InGameOptions.BackDeckTransform.position.y + (Game.Instance.InGameOptions.DeckYAddition * Game.Instance.CardManager.CardsInBackDeck),
            Game.Instance.InGameOptions.BackDeckTransform.position.z
            );

        if (instant)
        {
            transform.position    = position;
            transform.eulerAngles = Game.Instance.InGameOptions.BackDeckTransform.eulerAngles;
        }
        else
        {
        }

        CardPlace = CardPlace.InBackDeck;
        Game.Instance.CardManager.CardsInBackDeck++;
    }
コード例 #12
0
    IEnumerator GoDiscardedDeck()
    {
        yield return(new WaitForSeconds(Game.Instance.InGameOptions.ByGameSpeed(_goToDiscardedDeckWaitTime)));

        var position = new Vector3(
            Game.Instance.InGameOptions.DiscardedDeckTransform.position.x,
            Game.Instance.InGameOptions.DiscardedDeckTransform.position.y + (Game.Instance.InGameOptions.DeckYAddition * Game.Instance.CardManager.CardsInDescardedDeck),
            Game.Instance.InGameOptions.DiscardedDeckTransform.position.z
            );

        if (_moveTweenId.HasValue)
        {
            LeanTween.cancel(_moveTweenId.Value);
            _moveTweenId = null;
        }
        if (_rotateTweenId.HasValue)
        {
            LeanTween.cancel(_rotateTweenId.Value);
            _rotateTweenId = null;
        }

        _moveTweenId = LeanTween.move(gameObject, position, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).id;
        LeanTween.descr(_moveTweenId.Value).setOnComplete(() =>
        {
            LeanTween.cancel(_moveTweenId.Value);
            _moveTweenId = null;
        });

        _rotateTweenId = LeanTween.rotate(gameObject, Game.Instance.InGameOptions.DiscardedDeckTransform.eulerAngles, Game.Instance.InGameOptions.ByGameSpeed(_animationTime)).setEase(_animationType).id;
        LeanTween.descr(_rotateTweenId.Value).setOnComplete(() => {
            LeanTween.cancel(_rotateTweenId.Value);
            _rotateTweenId = null;
        });

        Game.Instance.CardManager.CardsInDescardedDeck++;
        CardPlace = CardPlace.InDiscardedDeck;
    }
コード例 #13
0
 public void Clear()
 {
     Card        = null;
     CardStorage = null;
     Department  = null;
 }
コード例 #14
0
 public void SetDataForCard(CardActionData cardData)
 {
     CardStorage = cardData.place;
     Card        = cardData.card;
 }
コード例 #15
0
    // カードを生成する。
    public void CreateCard(int cardId, Transform transform, GameSide side, CardPlace place)
    {
        CardController card = Instantiate(cardPrefub, transform, false);

        card.Init(cardId, side, place);
    }
コード例 #16
0
 public void SetDataForCard(CardActionData cardData)
 {
     Storage = cardData.place;
     Card    = cardData.card;
     Action  = cardData.type;
 }
コード例 #17
0
 public void Clear()
 {
     Storage = null;
     Card    = null;
     Action  = null;
 }
コード例 #18
0
 public void ChangePlace(CardPlace place)
 {
     Console.WriteLine(">> Changing card SID " + ServerId + " from: " + Place + " to: " + place);
     Place = place;
 }
コード例 #19
0
 public void AddCardToPlace(ICard card, CardPlace place)
 {
     place.AddCard(card);
 }
コード例 #20
0
 // 初期化する。
 public void Init(int cardId, GameSide side, CardPlace place)
 {
     model = new CardModel(cardId, side, place);
 }