Question by
AzureBoers · Apr 06, 2018 at 05:26 PM ·
propertiespublic variablestatic variables
How do I get these variables to work together!?
So this Script here
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerStats : MonoBehaviour {
public int currentLevel;
public int currentEXP;
public int[] tolevelUP;
public int[] hpLevels;
public int[] attackLevels;
public int[] defenceLevels;
public int currentHP;
public int currentAttack;
public int currentDefence;
public static string PlayerName { get; set; }
public static int PlayerLevel { get; set; }
public static BaseStatsClass PlayerClass { get; set; }
public static int Strength { get; set; }
public static int Wisdom { get; set; }
public static int Defence { get; set; }
public static int HitPoints { get; set; }
private PlayerHealthManager thePlayerhealth;
#region Singleton
public static PlayerStats instance;
void Awake()
{
DontDestroyOnLoad(this.gameObject);
if (instance != null)
{
Debug.LogWarning("Instacne of inventroy found bad!");
return;
}
instance = this;
}
#endregion
// Use this for initialization
void Start () {
Defence = currentDefence;
HitPoints = currentHP;
currentHP = hpLevels[1];
currentAttack = attackLevels[0];
currentDefence = defenceLevels[1];
thePlayerhealth = FindObjectOfType<PlayerHealthManager>();
}
// Update is called once per frame
void Update () {
if(currentEXP >= tolevelUP[currentLevel])
{
LevelUP();
}
}
public void AddExperience(int experienceToAdd)
{
currentEXP += experienceToAdd;
}
public void LevelUP()
{
currentLevel++;
currentHP = hpLevels[currentLevel];
thePlayerhealth.playerMaxHealth = currentHP;
thePlayerhealth.playerCurrentHealth += currentHP - hpLevels[currentLevel - 1];
// currentAttack = attackLevels[currentLevel];
currentDefence = defenceLevels[currentLevel];
}
public void Heal(int healthGain) { currentHP += healthGain; } }
I want to use the public static int Strength { get; set; } to work with currentAttack Var but I can't get them to work together! There is also this script here
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.SceneManagement;
public class CreatePlayer : MonoBehaviour {
private BasePlayerClass newPlayer;
private PlayerStats newPlayerStats;
public Text strengthText;
public Text wisdomText;
public Text DefenceText;
public Text HitPointText;
private string Playername;
private int pointsToSpend = 10;
public Text pointsText;
// Use this for initialization
void Start () {
newPlayer = new BasePlayerClass();
UpdateUI();
}
public void CreateNewPlayer()
{
newPlayer.PlayerLevel = 1;
newPlayer.PlayerName = Playername;
PlayerStats.PlayerLevel = newPlayer.PlayerLevel;
PlayerStats.PlayerName = newPlayer.PlayerName;
PlayerStats.PlayerClass = newPlayer.PlayerClass;
PlayerStats.Strength = newPlayer.Strength;
PlayerStats.Wisdom = newPlayer.Wisdom;
PlayerStats.Defence = newPlayer.Defence;
PlayerStats.HitPoints = newPlayer.HitPoints;
SaveCreatePlayerStats.SaveAllInfo();
SceneManager.LoadScene("Roomtest");
}
public void SetGunClass()
{
pointsToSpend = 10;
newPlayer.PlayerClass = new GunBaseClass();
newPlayer.Strength = newPlayer.PlayerClass.Strength;
newPlayer.Wisdom = newPlayer.PlayerClass.Wisdom;
newPlayer.Defence = newPlayer.PlayerClass.Defence;
newPlayer.HitPoints = newPlayer.PlayerClass.HitPoints;
UpdateUI();
}
public void SetWarriorClass()
{
pointsToSpend = 10;
newPlayer.PlayerClass = new WarriorBaseClass();
newPlayer.Strength = newPlayer.PlayerClass.Strength;
newPlayer.Wisdom = newPlayer.PlayerClass.Wisdom;
newPlayer.Defence = newPlayer.PlayerClass.Defence;
newPlayer.HitPoints = newPlayer.PlayerClass.HitPoints;
UpdateUI();
}
public void SetMageClass()
{
pointsToSpend = 10;
newPlayer.PlayerClass = new MageBaseClass();
newPlayer.Strength = newPlayer.PlayerClass.Strength;
newPlayer.Wisdom = newPlayer.PlayerClass.Wisdom;
newPlayer.Defence = newPlayer.PlayerClass.Defence;
newPlayer.HitPoints = newPlayer.PlayerClass.HitPoints;
UpdateUI();
}
void UpdateUI()
{
strengthText.text = newPlayer.Strength.ToString();
wisdomText.text = newPlayer.Wisdom.ToString();
DefenceText.text = newPlayer.Defence.ToString();
HitPointText.text = newPlayer.HitPoints.ToString();
pointsText.text = pointsToSpend.ToString();
}
public void SetStrength (int amount)
{
if(newPlayer.PlayerClass != null)
{
if(amount > 0 && pointsToSpend > 0)
{
newPlayer.Strength += amount;
pointsToSpend -= 1;
UpdateUI();
}else if (amount < 0 && newPlayer.Strength > newPlayer.PlayerClass.Strength)
{
newPlayer.Strength += amount;
pointsToSpend += 1;
UpdateUI();
}
}
}
public void SetWisdom(int amount)
{
if (newPlayer.PlayerClass != null)
{
if (amount > 0 && pointsToSpend > 0)
{
newPlayer.Wisdom += amount;
pointsToSpend -= 1;
UpdateUI();
}
else if (amount < 0 && newPlayer.Wisdom > newPlayer.PlayerClass.Wisdom)
{
newPlayer.Wisdom += amount;
pointsToSpend += 1;
UpdateUI();
}
}
}
public void SetDefence(int amount)
{
if (newPlayer.PlayerClass != null)
{
if (amount > 0 && pointsToSpend > 0)
{
newPlayer.Defence += amount;
pointsToSpend -= 1;
UpdateUI();
}
else if (amount < 0 && newPlayer.Defence > newPlayer.PlayerClass.Defence)
{
newPlayer.Defence += amount;
pointsToSpend += 1;
UpdateUI();
}
}
}
public void SetHitPoints(int amount)
{
if (newPlayer.PlayerClass != null)
{
if (amount > 0 && pointsToSpend > 0)
{
newPlayer.HitPoints += amount;
pointsToSpend -= 1;
UpdateUI();
}
else if (amount < 0 && newPlayer.HitPoints > newPlayer.PlayerClass.HitPoints)
{
newPlayer.HitPoints += amount;
pointsToSpend += 1;
UpdateUI();
}
}
}
}
That is working before this one in a different scene so when that one get's loaded I want what ever stats I create to work with my PlayerStats Script! Please Help!
Comment