예제 #1
0
    public void SetupPipManagers(CharacterData runner, float setupTimeInSeconds, int currentSecurityLevel)
    {
        PipManager[] pipManagers = FindObjectsOfType <PipManager>();
        float        maxX        = GameObject.Find(healthTextFieldName).transform.position.x;
        float        maxWidth    = maxX - pipManagers[0].transform.position.x;

        foreach (PipManager pipManager in pipManagers)
        {
            if (pipManager.name == healthPipManagerName)
            {
                healthPipManager = pipManager;
            }
            else if (pipManager.name == energyPipManagerName)
            {
                energyPipManager = pipManager;
            }
            else if (pipManager.name == securityPipManagerName)
            {
                securityPipManager = pipManager;
            }
        }

        healthPipManager.Setup(this, runner.GetMaximumHealth(), runner.GetCurrentHealth());
        energyPipManager.Setup(this, runner.GetMaximumEnergy(), runner.GetCurrentEnergy());
        securityPipManager.Setup(this, 100, currentSecurityLevel);
    }
    public void SpendEnergy(int amount)
    {
        if (currentEnergy - amount < 0)
        {
            currentEnergy = 0;
        }
        else
        {
            currentEnergy -= amount;
        }

        SetEnergyText();
        energyPipManager = configData.GetPlayerEnergyPipManager();
        energyPipManager.ChangeValue(currentEnergy);
    }
    public void GainEnergy(int amountToGain)
    {
        if (currentEnergy + amountToGain > maximumEnergy)
        {
            currentEnergy = maximumEnergy;
        }
        else
        {
            currentEnergy += amountToGain;
        }

        SetEnergyText();
        energyPipManager = configData.GetPlayerEnergyPipManager();
        energyPipManager.ChangeValue(currentEnergy);
    }
    public void GainHealth(int amountToGain)
    {
        if (currentHealth + amountToGain > maximumHealth)
        {
            currentHealth = maximumHealth;
        }
        else
        {
            currentHealth += amountToGain;
        }

        SetHealthText();
        healthPipManager = configData.GetPlayerHealthPipManager();
        healthPipManager.ChangeValue(currentHealth);
    }
    public void SetupPipManagers(CharacterData character)
    {
        PipManager[] pipManagers = FindObjectsOfType <PipManager>();

        float maxX     = GameObject.Find(healthTextFieldName).transform.position.x;
        float maxWidth = maxX - pipManagers[0].transform.position.x;

        foreach (PipManager pipManager in pipManagers)
        {
            if (pipManager.name == healthPipManagerName)
            {
                healthPipManager = pipManager;
            }
            else if (pipManager.name == energyPipManagerName)
            {
                energyPipManager = pipManager;
            }
        }

        healthPipManager.Setup(this, character.GetMaximumHealth(), character.GetCurrentHealth());
        energyPipManager.Setup(this, character.GetMaximumEnergy(), character.GetCurrentEnergy());
    }
    public void TakeDamage(int amountToTake)
    {
        if (takeExtraDamageMultiplier != 0)
        {
            amountToTake = (int)(amountToTake * takeExtraDamageMultiplier);
            takeExtraDamageMultiplier = 0;
        }

        if (currentHealth - amountToTake > 0)
        {
            currentHealth -= amountToTake;
        }
        else
        {
            // Game over state here
            currentHealth = 0;
        }

        SetHealthText();
        healthPipManager = configData.GetPlayerHealthPipManager();
        healthPipManager.ChangeValue(currentHealth);
    }