Пример #1
0
    public void Input_StartGame()
    {
        if (player1Dropdown.value == player2Dropdown.value || player1Dropdown.value == 0 || player2Dropdown.value == 0)
        {
            return;
        }

        CharacterScriptableObject player1Data = currentCharacters[player1Dropdown.value - 1];
        CharacterScriptableObject player2Data = currentCharacters[player2Dropdown.value - 1];

        player1.alignment = HealthEntity.Alignment.Good;
        foreach (var cardSO in player1Data.startingCards)
        {
            Card newCard = new Card(cardSO);
            player1.cards.Add(newCard);
        }
        player1.name      = player1Data.name;
        player1.maxHealth = player1Data.health;
        player1.maxMana   = player1Data.mana;

        player2.alignment = HealthEntity.Alignment.Good;
        foreach (var cardSO in player2Data.startingCards)
        {
            Card newCard = new Card(cardSO);
            player2.cards.Add(newCard);
        }
        player2.name      = player2Data.name;
        player2.maxHealth = player2Data.health;
        player2.maxMana   = player2Data.mana;

        StartGame();
    }
Пример #2
0
    private void SetCharacterSettings(CharacterScriptableObject characterObject, Image characterImage, bool talking, Image nameBoxImage, Text nameText)
    {
        if (characterImage != null)
        {
            SetSprite(characterObject.Sprite, characterImage);
        }

        if (talking)
        {
            if (nameBoxImage != null)
            {
                nameBoxImage.gameObject.SetActive(true);
            }

            if (nameBoxImage != null)
            {
                nameText.font = characterObject.Font;
                nameText.text = characterObject.Name;
            }

            if (characterImage != null)
            {
                TintSprite(characterImage, _tintColorWhenTalking);
            }

            if (characterObject.Font != null)
            {
                _dialogText.font = characterObject.Font;
            }

            if (characterObject.VoiceAudio != null)
            {
                if (_voiceAudioSource.clip != characterObject.VoiceAudio)
                {
                    PlayAudioClip(_voiceAudioSource, characterObject.VoiceAudio);
                }
                _minPlayTimer.Duration = _voiceAudioSource.clip.length;
            }
            else
            {
                _minPlayTimer.Duration = MIN_BOX_TIME;
            }

            _minPlayTimer.Reset();
        }
        else
        {
            if (nameBoxImage != null)
            {
                nameBoxImage.gameObject.SetActive(false);
            }

            if (characterImage != null)
            {
                TintSprite(characterImage, _tintColorWhenNotTalking);
            }
        }
    }
Пример #3
0
 // Start is called before the first frame update
 void Start()
 {
     playerManager      = GameObject.FindObjectOfType <PlayerManager>();
     index              = id - 1;
     playerObject.index = id;
     currentCharacter   = characterList[index];
     playerManager.charactersList[index] = this;
     UpdateUI();
 }
Пример #4
0
 public void NextCharacter()
 {
     index++;
     if (index > 3)
     {
         index = 0;
     }
     currentCharacter = characterList[index];
     UpdateUI();
 }
Пример #5
0
    public void PreviousCharacter()
    {
        index--;
        if (index < 0)
        {
            index = 3;
        }

        currentCharacter = characterList[index];
        UpdateUI();
    }
Пример #6
0
    private void Start()
    {
        actorData = this.gameObject.GetComponent <Actor>().ActorData;

        if (actorData != null)
        {
            Debug.Log("Data on Feedback found on " + this.gameObject.name);
        }
        else
        {
            Debug.LogError("Data on Feedback NOT found on " + this.gameObject.name);
        }
    }
Пример #7
0
    private void Start()
    {
        characterData = GameManager.Instance.startingCharacter;

        allAreas = new List <WorkArea>();

        leftHand.ClearItem();
        rightHand.ClearItem();
        leftHand.FinishWork();
        rightHand.FinishWork();

        OnWorkAreaChanged += delegate { _TryWork(); };
    }
Пример #8
0
    public void SetCharacter(CharacterScriptableObject charObject)
    {
        character       = charObject;
        nameHeader.text = charObject.name;
        portrait.sprite = charObject.portrait;

        for (int i = 0; i < charObject.attacks.Length; i++)
        {
            AttackScript attackLabel = Instantiate <AttackScript>(attackPrefab);
            attackLabel.transform.parent        = transform;
            attackLabel.transform.localPosition = attackPosition + Vector3.down * attackSpacing * i;
            attackLabel.transform.localRotation = Quaternion.identity;

            attackLabel.SetAttack(i, charObject.attacks[i]);
        }
    }
Пример #9
0
    // Start is called before the first frame update
    void Start()
    {
        AllCharactersDictionary = new Dictionary <string, CharacterScriptableObject>();
        AllFriendshipLevels     = new Dictionary <string, int>();
        GameObject[] allCharacters = GameObject.FindGameObjectsWithTag("Character");
        for (int i = 0; i < allCharacters.Length; i++)
        {
            CharacterScriptableObject character = allCharacters[0].GetComponent <CharacterSO_AttachmentScript>().AssignedCharacterValues;
            string characterName = character.CharacterName.ToLower();

            AllFriendshipLevels.Add(characterName, 0);
            AllCharactersDictionary.Add(characterName, character);

#if DEBUG_FriendshipManager
            Debug.Log("FriendshipManager::Start() Name of character: " + characterName + " is character number " + i + " in the scene");
#endif
        }
    }
Пример #10
0
    private void Awake()
    {
        actorData = this.gameObject.GetComponent <Actor>().ActorData;

        if (actorData != null)
        {
            //Debug.Log("Data on Feedback found on " + this.gameObject.name);
        }
        else
        {
            Debug.LogError("Data on Feedback NOT found on " + this.gameObject.name);
        }

        animator = this.gameObject.GetComponentInChildren <Animator>();

        if (attackAnimation == null)
        {
            Debug.LogError("Attack Animation not setup in " + this.gameObject.name);
        }
    }
Пример #11
0
    IEnumerator StackCards()
    {
        int cardCount = characters.Count;

        for (int i = 0; i < cardCount; i++)
        {
            yield return(new WaitForSeconds(cardStackInterval));

            GameObject card = Instantiate <GameObject>(cardPrefab, dealerPlaceholder.position + cardSpacing * dealerCards.Count, dealerPlaceholder.rotation);
            card.transform.parent = transform;
            dealerCards.Push(card);

            CharacterScriptableObject character = characters[rnd.Next(characters.Count)];
            card.GetComponent <CharacterCardScript>().SetCharacter(character);
            characters.Remove(character);
        }
        yield return(new WaitForSeconds(postInterval));

        StartCoroutine(DealCards());
    }
Пример #12
0
    public void Initialize_Players()                                                              //inicializar tags e outras coisas necessarias dos players da cena
    {
        for (int i = 0; i < playersNumber; i++)                                                   //para cada player
        {
            Transform[] allChildren = players[i].transform.GetComponentsInChildren <Transform>(); //pegar todos os objetos do jogador i e inicializar tag e layer
            foreach (Transform child in allChildren)                                              //para cada objeto filho (/child) do jogador (incluindo o objeto pai))
            {
                child.gameObject.tag   = "Player" + (i + 1);                                      //setar tag
                child.gameObject.layer = LayerMask.NameToLayer("Player" + (i + 1));               //setar layer
            }

            CharacterScriptableObject playerSO = players[i].transform.GetComponent <PlayerController>().characterSO;    //pegar scriptable object do jogador
            GameObject playerWeapon            = players[i].transform.Find(playerSO.weaponPath).GetChild(0).gameObject; //pegar arma do jogador
            allChildren = playerWeapon.transform.GetComponentsInChildren <Transform>();                                 //pegar todos os objetos da arma do jogador i e inicializar tag e layer
            foreach (Transform child in allChildren)                                                                    //para cada objeto filho (/child) da arma do jogador (incluindo o objeto pai))
            {
                child.gameObject.tag   = "Damage" + (i + 1);                                                            //setar tag
                child.gameObject.layer = LayerMask.NameToLayer("Damage" + (i + 1));                                     //setar layer
            }
        }
    }