Example #1
0
    public void GiveCard(IGamePlayable _character)
    {
        CE_Card _card = PickRandomCard();

        _character.HandCards.AddCard(_card);
        _character.NoteSystem.MatchCard(_card.ID);
    }
Example #2
0
    CE_Card PickRandomCard()
    {
        if (!gameCardsDB.IsValid)
        {
            return(null);
        }
        int     _randomIndex = UnityEngine.Random.Range(0, availableCards.Count);
        CE_Card _card        = availableCards[_randomIndex];

        availableCards.Remove(_card);
        return(_card);
    }
Example #3
0
    public CE_Card PickRandomCard(CardType _type)
    {
        List <CE_Card> _cards = availableCards.Where(c => c.Type == _type).ToList();

        if (_cards == null)
        {
            return(null);
        }
        int     _randomIndex = UnityEngine.Random.Range(0, _cards.Count);
        CE_Card _card        = _cards[_randomIndex];

        availableCards.Remove(_card);
        return(_card);
    }
Example #4
0
    public CE_Card GetSuggestCard(CE_Suggest _suggest)
    {
        CE_Card _character = handCards.Where(c => c.ID == _suggest.Character.ID).FirstOrDefault();
        CE_Card _weapon    = handCards.Where(c => c.ID == _suggest.Weapon.ID).FirstOrDefault();
        CE_Card _room      = handCards.Where(c => c.ID == _suggest.Room.ID).FirstOrDefault();

        if (_character != null)
        {
            return(_character);
        }
        if (_weapon != null)
        {
            return(_weapon);
        }
        if (_room != null)
        {
            return(_room);
        }
        return(null);
    }
Example #5
0
    IEnumerator IASuggest()
    {
        if (!isInRoom)
        {
            yield break;
        }
        CE_Card    _pickCharacterCard = CE_GameManager.Instance.GameDeck.GetCard(NoteSystem.PickRandomNotes(CardType.Character).ID);
        CE_Card    _pickWeaponCard    = CE_GameManager.Instance.GameDeck.GetCard(NoteSystem.PickRandomNotes(CardType.Weapon).ID);
        CE_Card    _pickRoomCard      = CE_GameManager.Instance.GameDeck.GetCard(nextRoomInvestigate.ID);
        CE_Suggest _suggest           = new CE_Suggest(_pickCharacterCard, _pickRoomCard, _pickWeaponCard);

        OnStartSuggest?.Invoke(_suggest, this);
        int _askIndex = CE_GameManager.Instance.CurrentCharacterTurnIndex;

        Debug.Log($"{characterRef.ColorName} is suggesting {_suggest.Room.Name} with {_suggest.Weapon.Name} at {_suggest.Character.Name}");
        while (isInRoom && currentAIPhase == AIPhase.Suggest)
        {
            _askIndex++;
            _askIndex = _askIndex > CE_GameManager.Instance.AllCharacterInGame.Count - 1 ? 0 : _askIndex;
            IGamePlayable _askTo  = CE_GameManager.Instance.AllCharacterInGame[_askIndex];
            CE_Card       _result = _askTo.HandCards.GetSuggestCard(_suggest);
            OnSuggestProgress?.Invoke(_suggest, this, _askTo, _result);
            Debug.Log($"{_askTo.CharacterRef.ColorName} {(_result == null ? "can't" : "can")} answer.");
            if (_result != null)
            {
                NoteSystem.MatchCard(_result.ID);
                currentAIPhase = AIPhase.Idle;
            }
            if (CE_GameManager.Instance.CurrentCharacterTurnIndex == _askIndex)
            {
                CE_GameManager.Instance.EndGame();
                currentAIPhase = AIPhase.Idle;
            }
            Debug.Log($"{_askTo.CharacterRef.ColorName} {(_result == null ? "can't" : "can")} answer.");
            yield return(new WaitForSeconds(1));
        }

        nextRoomInvestigate = null;
        currentAIPhase      = AIPhase.Idle;
        yield return(new WaitForSeconds(5));
    }
Example #6
0
 public void AddCard(CE_Card _card) => handCards.Add(_card);
Example #7
0
 public CE_MysteryCards(CE_Card _first, CE_Card _second, CE_Card _third)
 {
     firstCard  = _first;
     secondCard = _second;
     thirdCard  = _third;
 }
 public void GiveWeapon(CE_Card _weapon) => Weapon = _weapon;
 public void GiveCharacter(CE_Card _character) => Character = _character;
 public void GiveRoom(CE_Card _room) => Room = _room;
 public CE_Suggest(CE_Card _room, CE_Card _character, CE_Card _weapon)
 {
     Room      = _room;
     Character = _character;
     Weapon    = _weapon;
 }