예제 #1
0
 private void Awake()
 {
     if (instance != null)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
     }
 }
예제 #2
0
    private void Start()
    {
        healthBar.SetActive(true);

        //Initialize variables
        meshRender       = GetComponent <MeshRenderer>();
        combatStatistics = CombatStatistics.instance;
        equipmentHolder  = EquipmentHolder.instance;
        dataRetainer     = DataRetainer.instance;

        if (gameObject.tag == "Player")
        {
            playerLevel = dataRetainer.GetPlayerLevel(playerIndex);
        }

        maxHealth    = baseStatus.health + (int)(((playerLevel / 10.0) + baseStatus.health / 8.0) * playerLevel);
        health       = maxHealth;
        defense      = baseStatus.defense + (int)((baseStatus.defense / 4.0) * playerLevel);
        speed        = baseStatus.speed + (int)((baseStatus.speed / 4.0) * playerLevel);
        strength     = baseStatus.strength + (int)((baseStatus.strength / 4.0) * playerLevel);
        dexterity    = baseStatus.dexterity + (int)((baseStatus.dexterity / 4.0) * playerLevel);
        intelligence = baseStatus.intelligence + (int)((baseStatus.intelligence / 4.0) * playerLevel);
        maxMP        = 2 * intelligence;
        currentMp    = maxMP;

        //Calculate all status variables
        if (gameObject.tag == "Player")
        {
            //If it is a player we add the base status + the equipment status
            health    = dataRetainer.GetPlayerHealth(playerIndex);
            currentMp = dataRetainer.GetPlayerMP(playerIndex);

            maxHealth    += equipmentHolder.playersHealth[playerIndex];
            speed        += equipmentHolder.playersSpeed[playerIndex];
            defense      += equipmentHolder.playersDefense[playerIndex];
            strength     += equipmentHolder.playersStrength[playerIndex];
            dexterity    += equipmentHolder.playersDexterity[playerIndex];
            intelligence += equipmentHolder.playersIntelligence[playerIndex];

            xpNeeded  = baseStatus.xp + (4 * (playerLevel ^ 3)) / 7;
            currentXP = dataRetainer.GetPlayerXP(playerIndex);
        }

        //Set the UI
        damageText.text          = "";
        healthBarFill.fillAmount = (float)health / maxHealth;
        healthText.text          = "" + health + "/" + maxHealth;
        mpBar.fillAmount         = (float)currentMp / maxMP;
        mpText.text = "" + currentMp + "/" + maxMP;

        enemyCombatAI = EnemyCombatAI.instance;
    }
예제 #3
0
    public void CombatFinished()
    {
        //DESACTIVAMOS TODA LA UI DEL COMBATE
        CombatUIManager.OnOffUI(false);
        CombatUIManager.enabled = false;

        //DESACTIVAMOS LA POSICION INICIAL DEL ENEMIGO Y DESTRUIMOS EL GAMEOBJECT DEL ENEMIGO
        EnemyCombatAI enemyIA = enemy.GetComponent <EnemyCombatAI>();

        enemyIA.IsInitialPositionOff = false;
        Destroy(enemy);

        //DESACTIVAMOS EL COMBATTRIGGERCONTROLLER Y ACTIVAMOS EL ACTIONTRIGGER Y EL PLAYERCONTROLLER
        player.transform.GetChild(3).gameObject.SetActive(false);
        player.transform.GetChild(2).gameObject.SetActive(true);
        player.GetComponent <PlayerController>().enabled = true;
        PlayerCombatController.enabled = false;

        //SITUAMOS AL PLAYER ANIMACION IDLE
        player.GetComponent <Animator>().SetBool("isAttack", false);

        //PERMITIMOS EL MOVIMIENTO NORMAL DEL PLAYER
        player.GetComponent <PlayerController>().IsAttacking = false;

        ////REINICIAMOS EL PUNTO MEDIO DE LOS JUGADORES
        fightersInPosition = 0;
        canPlaceFighters   = false;

        //TRASLADAMOS A LOS LUCHADORES y A LA CAMARA AL MAPA
        player.transform.position = playerInitialPosition;
        cam.transform.position    = cameraInitialPosition;

        ////ACTIVAMOS EL ZOOM OUT DE LA CAMARA Y QUE LA CAMARA SIGA AL PLAYER
        CameraCenterController.PlayerXPosition = player.transform.position.x;
        CameraCenterController.FollowPlayer    = true;
        CameraCenterController.ActivateZoom    = false;

        //ACTIVAMOS EL RELOJ DEL JUEGO
        clock.enabled = true;

        //DESACTIVAMOS EL ESCENARIO DE LUCHA
        fightCanvas.SetActive(false);
    }
예제 #4
0
    private void Start()
    {
        // Initialize variables
        dataRetainer     = DataRetainer.instance;
        combatManager    = CombatScript.instance;
        combatStatistics = CombatStatistics.instance;
        enemyAI          = GetComponent <EnemyCombatAI>();

        characters   = FindObjectsOfType <Status>();
        turnWaitTime = new int[characters.Length];

        // Assign the default value to all locations in turnLayout
        for (int index = 0; index < turnLayout.Length; index++)
        {
            turnLayout[index] = -1;
        }

        DefaultInit();                              //Initialize the default turn layout
        StartCoroutine(ChangeTurnsWaitTime(0.5f));  //Start changing turns with delay
    }
예제 #5
0
    public void CombatSetUpFinal()
    {
        //ACTIVAMOS EL COMBATTRIGGERCONTROLLER Y DESACTIVAMOS EL ACTIONTRIGGER Y EL PLAYERCONTROLLER
        player.transform.GetChild(3).gameObject.SetActive(true);
        player.transform.GetChild(2).gameObject.SetActive(false);
        player.GetComponent <PlayerController>().enabled = false;

        PlayerCombatController.Enemy   = enemy;
        PlayerCombatController.enabled = true;

        //ACTIVAMOS LA IA Y ASIGNAMOS EL PLAYER A LA IA
        EnemyCombatAI enemyIA = enemy.GetComponent <EnemyCombatAI>();

        enemyIA.enabled = true;
        enemyIA.Player  = player;
        enemyIA.IsInitialPositionOff = true;

        //ACTIVAMOS TODA LA UI DEL COMBATE
        CombatUIManager.Enemy   = enemy;
        CombatUIManager.Player  = player;
        CombatUIManager.enabled = true;
    }