- Home /
Question by
hellojbb1234 · Nov 08, 2016 at 07:36 AM ·
c#buttonautomaticugly
How can I make this code more automatic and less cumbersome?
I want this code to be able to check what level healthlevel is and then make it so that when you do call the HealthAdd(); you say whatever level you are plus 1 then cost is 5 more than what it was last time I just want it to be less cumbersome and ugly and more automatic and my brain is lost in the logic
using UnityEngine;
using System.Collections;
public class Buy : MonoBehaviour {
public float healthlevel;
public float Money;
// Use this for initialization
void Start () {
if (PlayerPrefs.HasKey("HealthLevel"))
{
healthlevel = PlayerPrefs.GetFloat("HealthLevel");
}
if (PlayerPrefs.HasKey("ActualMoney"))
{
Money = PlayerPrefs.GetFloat("ActualMoney");
}
}
// Update is called once per frame
void Update () {
}
public void HealthAdd()
{
if (healthlevel == 0)
{
if (Money >= 10)
{
Money -= 10;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
if (healthlevel == 1)
{
if (Money >= 15)
{
Money -= 15;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
if (healthlevel == 2)
{
if (Money >= 20)
{
Money -= 20;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
if (healthlevel == 3)
{
if (Money >= 25)
{
Money -= 25;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
if (healthlevel == 4)
{
if (Money >= 30)
{
Money -= 25;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
if (healthlevel == 5)
{
if (Money >= 30)
{
Money -= 30;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
PlayerPrefs.SetFloat("ActualMoney", Money);
PlayerPrefs.SetFloat("HealthLevel", healthlevel);
}
}
Comment
Best Answer
Answer by Imankit · Nov 08, 2016 at 09:36 AM
Do this
public void HealthAdd()
{
int cost = 10 + (healthlevel * 5);
if (Money >= cost){
Money -= cost;
healthlevel++;
}
else
{
Debug.Log("NOPEE");
}
}
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
create a dynamic menu 1 Answer
I need to move a sprite when an UI button is clicked 1 Answer