示例#1
0
    public void initializeBattle(int id)
    {
        _characterStats     = GameObject.Find("Game manager").GetComponent <Character_stats>();
        _characterManager   = GameObject.Find("Character").GetComponent <Character_manager>();
        _notification       = GameObject.Find("Notification").GetComponent <Ingame_notification_script>();
        _enemyManagerScript = GameObject.Find("Game manager").GetComponent <Enemy_manager_script>();
        _itemScript         = GameObject.Find("Game manager").GetComponent <Item_script>();
        _spellScript        = GameObject.Find("Game manager").GetComponent <Spell_script>();
        isPaused            = false;

        _spellScript.actualizeSpells();
        _spellScript.setupAttributes();

        _healthBar        = GameObject.Find("Health_bar").GetComponent <Bar_script>();
        _resourceBar      = GameObject.Find("Resource_bar").GetComponent <Bar_script>();
        _spellbarAnimator = GameObject.Find("Spellbar").GetComponent <Animator>();

        GameObject.Find("Item_preview").GetComponent <Animator>().Play("Item_preview_slide_out_anim");
        GameObject.Find("Inventory slots").GetComponent <Animator>().Play("Inventory_slide_out_anim");
        GameObject.Find("Conversation").GetComponent <Conversation_script>().closeConversation();

        _spellScript.target = null;

        StopAllCoroutines();
        isOngoing = true;

        if (gameObject.GetComponent <Game_manager>().current_screen.name == "Combat_screen_UI")
        {
            if (_characterStats.Player_health > _characterStats.Player_max_health || _characterStats.Player_health < 0)
            {
                _characterStats.Player_health = _characterStats.Player_max_health;
                _healthBar.updateHealth();
            }

            if (_characterStats.Player_resource > _characterStats.Player_max_resource || _characterStats.Player_resource < 0)
            {
                _characterStats.Player_resource = _characterStats.Player_max_resource;
                _resourceBar.updateResource();
            }
        }

        battle_id = id;

        _characterStats.Player_health   = _characterStats.Player_max_health;
        _characterStats.Player_resource = _characterStats.Player_max_resource;

        _healthBar.updateHealth();
        _resourceBar.updateResource();
        GameObject.Find("Spell_preview").GetComponent <Visibility_script>().setInvisible();

        remaining_time.GetComponent <Text_animation>().startAnim((round_time).ToString(), 0.05f);

        opponent_ids = battles[id].opponent_ids;

        opponents[0].GetComponent <Enemy_script>().enemyInitialize(battles[id].opponent_ids[0]);
        opponents[1].GetComponent <Enemy_script>().enemyInitialize(battles[id].opponent_ids[1]);

        generateSequence();


        _notification.message("¤" + battles[id].battle_name, 3);

        battle_background.GetComponent <SpriteRenderer>().sprite = battles[id].background;


        round_counter = 0;
        timer         = 0;
        changeRound();
    }
    public void enemyInitialize(int input_id)
    {
        var enemy = GameObject.Find("Game manager").GetComponent <Enemy_manager_script>().enemies[input_id];

        _characterManager = gameObject.GetComponent <Character_manager>();
        _characterStats   = GameObject.Find("Game manager").GetComponent <Character_stats>();

        enemy_name = enemy.enemy_name;

        enemy_damage     = UnityEngine.Random.Range(_characterStats.getPercentOfHealth(5), _characterStats.getPercentOfHealth(25));
        enemy_max_health = UnityEngine.Random.Range(_characterStats.getPercentOfHealth(40), _characterStats.getPercentOfHealth(110));
        enemy_health     = enemy_max_health;
        id = input_id;

        opponentUpdateHealthBar();

        if (enemy.isHuman)
        {
            appearance_non_human.SetActive(false);
            appearance_human.SetActive(true);

            if (enemy.isRandomAppearance)
            {
                int hair_length = 8, eyes_length = 4, nose_length = 2, mouth_length = 3, body_length = 3;

                int random_sex = UnityEngine.Random.Range(0, 2);
                if (random_sex == 0)
                {
                    _characterManager.sex = false;
                }
                else
                {
                    _characterManager.sex = true;
                }
                _characterManager.hair_id  = UnityEngine.Random.Range(0, hair_length + 1);
                _characterManager.eyes_id  = UnityEngine.Random.Range(0, eyes_length + 1);
                _characterManager.nose_id  = UnityEngine.Random.Range(0, nose_length + 1);
                _characterManager.mouth_id = UnityEngine.Random.Range(0, mouth_length + 1);
                _characterManager.body_id  = UnityEngine.Random.Range(0, body_length + 1);

                _characterManager.hair_color_r = (byte)UnityEngine.Random.Range(0, 256);
                _characterManager.hair_color_g = (byte)UnityEngine.Random.Range(0, 256);
                _characterManager.hair_color_b = (byte)UnityEngine.Random.Range(0, 256);
            }
            else
            {
                _characterManager.sex      = enemy.sex;
                _characterManager.hair_id  = enemy.appearance[0];
                _characterManager.eyes_id  = enemy.appearance[1];
                _characterManager.nose_id  = enemy.appearance[2];
                _characterManager.mouth_id = enemy.appearance[3];
                _characterManager.body_id  = enemy.appearance[4];

                _characterManager.hair_color_r = enemy.hair_color[0];
                _characterManager.hair_color_g = enemy.hair_color[1];
                _characterManager.hair_color_b = enemy.hair_color[2];
            }

            _characterManager.equipment_head_id     = enemy.equipment[0];
            _characterManager.equipment_body_id     = enemy.equipment[1];
            _characterManager.equipment_legs_id     = enemy.equipment[2];
            _characterManager.equipment_left_id     = enemy.equipment[3];
            _characterManager.equipment_shoulder_id = enemy.equipment[4];
            _characterManager.equipment_gadget_id   = enemy.equipment[5];
            _characterManager.equipment_feet_id     = enemy.equipment[6];
            _characterManager.equipment_right_id    = enemy.equipment[7];
        }
        else
        {
            appearance_human.SetActive(false);
            appearance_non_human.SetActive(true);
            appearanceSprite.sprite = Resources.Load <Sprite>(enemy.non_human_appearance);
        }
        gameObject.GetComponent <Visibility_script>().setVisible();
    }