Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- using System;
- public class CharacterGenerator : MonoBehaviour {
- private PlayerCharacter _toon;
- private const int STARTING_POINT = 150;
- private const int MIN_ATTRIBUTE_POINT = 10;
- private const int STARTING_ATTRIBUTE = 50;
- private int pointsleft;
- private const int OFFSET = 10;
- private const int LINE_HEIGHT = 25;
- private const int LINE_TEXT_WIDTH = 125;
- private const int LINE_NUMBER_WIDTH = 30;
- private const int ATTRIBUTE_LABEL_WIDTH = OFFSET + LINE_TEXT_WIDTH + LINE_NUMBER_WIDTH;
- public GameObject playerPrefab;
- // Use this for initialization
- void Start () {
- GameObject pc = Instantiate(playerPrefab, Vector3.zero, Quaternion.identity) as GameObject;
- pc.name = "pc";
- //_toon = new PlayerCharacter();
- //_toon.Awake();
- _toon = pc.GetComponent<PlayerCharacter>();
- pointsleft = STARTING_POINT;
- for (int i = 0; i < Enum.GetValues(typeof(AttributeName)).Length; i++)
- {
- _toon.GetPrimaryAttribute(i).BaseValue = STARTING_ATTRIBUTE;
- pointsleft -= (STARTING_ATTRIBUTE - MIN_ATTRIBUTE_POINT);
- }
- _toon.StatUpdate();
- }
- // Update is called once per frame
- void Update () {
- }
- void OnGUI()
- {
- DisplayName();
- DisplayAttributes();
- DisplayVitals();
- DisplaySkills();
- DisplayPointsLeft();
- if (_toon.Name != "" && pointsleft < 1)
- DisplayCreateButton();
- else
- DisplayCreateLabel();
- }
- private void DisplayName()
- {
- GUI.Box(new Rect(OFFSET, OFFSET, 50, LINE_HEIGHT), "Name : ");
- _toon.Name = GUI.TextField(new Rect(65, OFFSET, LINE_TEXT_WIDTH-LINE_NUMBER_WIDTH, LINE_HEIGHT), _toon.Name);
- }
- private void DisplayAttributes()
- {
- for (int i = 0; i < Enum.GetValues(typeof(AttributeName)).Length; i++)
- {
- GUI.Label(new Rect(OFFSET, i * LINE_HEIGHT + LINE_HEIGHT+ OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), ((AttributeName)i).ToString());
- GUI.Label(new Rect(LINE_TEXT_WIDTH, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_NUMBER_WIDTH, LINE_HEIGHT), (_toon.GetPrimaryAttribute(i).BuffedValue).ToString());
- if (GUI.Button(new Rect(ATTRIBUTE_LABEL_WIDTH, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_HEIGHT, LINE_HEIGHT), "-"))
- {
- if (_toon.GetPrimaryAttribute(i).BaseValue > MIN_ATTRIBUTE_POINT)
- {
- _toon.GetPrimaryAttribute(i).BaseValue--;
- pointsleft++;
- _toon.StatUpdate();
- }
- }
- if (GUI.Button(new Rect(ATTRIBUTE_LABEL_WIDTH + LINE_HEIGHT, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_HEIGHT, LINE_HEIGHT), "+"))
- {
- if (pointsleft > 0)
- {
- _toon.GetPrimaryAttribute(i).BaseValue++;
- pointsleft--;
- _toon.StatUpdate();
- }
- }
- }
- }
- private void DisplayVitals()
- {
- for (int i = 0; i < Enum.GetValues(typeof(VitalName)).Length; i++)
- {
- GUI.Label(new Rect(ATTRIBUTE_LABEL_WIDTH, i * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length + 1) * LINE_HEIGHT + OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), ((VitalName)i).ToString());
- GUI.Label(new Rect(ATTRIBUTE_LABEL_WIDTH + LINE_TEXT_WIDTH, i * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length + 1) * LINE_HEIGHT + OFFSET, LINE_NUMBER_WIDTH, LINE_HEIGHT), (_toon.GetVital(i).BuffedValue).ToString());
- }
- }
- private void DisplaySkills()
- {
- for (int i = 0; i < Enum.GetValues(typeof(SkillName)).Length; i++)
- {
- GUI.Label(new Rect(OFFSET, i * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length +1)* LINE_HEIGHT+OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), ((SkillName)i).ToString());
- GUI.Label(new Rect(LINE_TEXT_WIDTH, i * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length + 1) * LINE_HEIGHT + OFFSET, LINE_NUMBER_WIDTH, LINE_HEIGHT), (_toon.GetSkill(i).BuffedValue).ToString());
- }
- }
- private void DisplayPointsLeft()
- {
- GUI.Box(new Rect(ATTRIBUTE_LABEL_WIDTH, OFFSET, LINE_TEXT_WIDTH+LINE_NUMBER_WIDTH, LINE_HEIGHT), "Points Left : " + pointsleft.ToString());
- }
- private void DisplayCreateButton()
- {
- if (GUI.Button(new Rect(OFFSET, Enum.GetValues(typeof(SkillName)).Length * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length + 1) * LINE_HEIGHT + OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), "Create"))
- {
- GameSettings gsScript = GameObject.Find("GameSettingObject").GetComponent<GameSettings>();
- UpdateCurVitalValue();
- gsScript.SaveCharacterData();
- Application.LoadLevel("Level 1");
- }
- }
- private void DisplayCreateLabel()
- {
- GUI.Label(new Rect(OFFSET, Enum.GetValues(typeof(SkillName)).Length * LINE_HEIGHT + (Enum.GetValues(typeof(AttributeName)).Length + 1) * LINE_HEIGHT + OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), "Creating...","Button");
- }
- private void UpdateCurVitalValue()
- {
- for (int i = 0; i < Enum.GetValues(typeof(VitalName)).Length; i++)
- {
- _toon.GetVital(i).CurValue = _toon.GetVital(i).BuffedValue;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement