Advertisement
gotoheavenbro

CharacterGenerator

Sep 29th, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.43 KB | None | 0 0
  1. using UnityEngine;
  2. using System.Collections;
  3. using System;
  4. public class CharacterGenerator : MonoBehaviour {
  5.     private PlayerCharacter _toon;
  6.     private const int STARTING_POINT = 150;
  7.     private const int MIN_ATTRIBUTE_POINT = 10;
  8.     private const int STARTING_ATTRIBUTE = 50;
  9.     private int pointsleft;
  10.  
  11.     private const int OFFSET = 10;
  12.     private const int LINE_HEIGHT = 25;
  13.     private const int LINE_TEXT_WIDTH = 125;
  14.     private const int LINE_NUMBER_WIDTH = 30;
  15.     private const int ATTRIBUTE_LABEL_WIDTH = OFFSET + LINE_TEXT_WIDTH + LINE_NUMBER_WIDTH;
  16.  
  17.     public GameObject playerPrefab;
  18.     // Use this for initialization
  19.     void Start () {
  20.         GameObject pc = Instantiate(playerPrefab, Vector3.zero, Quaternion.identity) as GameObject;
  21.         pc.name = "pc";
  22.         //_toon = new PlayerCharacter();
  23.         //_toon.Awake();
  24.         _toon = pc.GetComponent<PlayerCharacter>();
  25.         pointsleft = STARTING_POINT;
  26.         for (int i = 0; i < Enum.GetValues(typeof(AttributeName)).Length; i++)
  27.         {
  28.             _toon.GetPrimaryAttribute(i).BaseValue = STARTING_ATTRIBUTE;
  29.             pointsleft -= (STARTING_ATTRIBUTE - MIN_ATTRIBUTE_POINT);
  30.         }
  31.         _toon.StatUpdate();
  32.        
  33.     }
  34.    
  35.     // Update is called once per frame
  36.     void Update () {
  37.        
  38.     }
  39.     void OnGUI()
  40.     {
  41.         DisplayName();
  42.         DisplayAttributes();
  43.         DisplayVitals();
  44.         DisplaySkills();
  45.         DisplayPointsLeft();
  46.         if (_toon.Name != "" && pointsleft < 1)
  47.             DisplayCreateButton();
  48.         else
  49.             DisplayCreateLabel();
  50.        
  51.     }
  52.     private void DisplayName()
  53.     {
  54.         GUI.Box(new Rect(OFFSET, OFFSET, 50, LINE_HEIGHT), "Name : ");
  55.         _toon.Name = GUI.TextField(new Rect(65, OFFSET, LINE_TEXT_WIDTH-LINE_NUMBER_WIDTH, LINE_HEIGHT), _toon.Name);
  56.     }
  57.     private void DisplayAttributes()
  58.     {
  59.         for (int i = 0; i < Enum.GetValues(typeof(AttributeName)).Length; i++)
  60.         {
  61.             GUI.Label(new Rect(OFFSET, i * LINE_HEIGHT + LINE_HEIGHT+ OFFSET, LINE_TEXT_WIDTH, LINE_HEIGHT), ((AttributeName)i).ToString());
  62.             GUI.Label(new Rect(LINE_TEXT_WIDTH, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_NUMBER_WIDTH, LINE_HEIGHT), (_toon.GetPrimaryAttribute(i).BuffedValue).ToString());
  63.             if (GUI.Button(new Rect(ATTRIBUTE_LABEL_WIDTH, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_HEIGHT, LINE_HEIGHT), "-"))
  64.             {
  65.                 if (_toon.GetPrimaryAttribute(i).BaseValue > MIN_ATTRIBUTE_POINT)
  66.                 {
  67.                     _toon.GetPrimaryAttribute(i).BaseValue--;
  68.                     pointsleft++;
  69.                     _toon.StatUpdate();
  70.                 }
  71.             }
  72.             if (GUI.Button(new Rect(ATTRIBUTE_LABEL_WIDTH + LINE_HEIGHT, i * LINE_HEIGHT + LINE_HEIGHT + OFFSET, LINE_HEIGHT, LINE_HEIGHT), "+"))
  73.             {
  74.                 if (pointsleft > 0)
  75.                 {
  76.                     _toon.GetPrimaryAttribute(i).BaseValue++;
  77.                     pointsleft--;
  78.                     _toon.StatUpdate();
  79.                 }
  80.             }
  81.         }
  82.     }
  83.     private void DisplayVitals()
  84.     {
  85.         for (int i = 0; i < Enum.GetValues(typeof(VitalName)).Length; i++)
  86.         {
  87.             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());
  88.             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());
  89.         }
  90.     }
  91.     private void DisplaySkills()
  92.     {
  93.         for (int i = 0; i < Enum.GetValues(typeof(SkillName)).Length; i++)
  94.         {
  95.             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());
  96.             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());
  97.         }
  98.     }
  99.     private void DisplayPointsLeft()
  100.     {
  101.         GUI.Box(new Rect(ATTRIBUTE_LABEL_WIDTH, OFFSET, LINE_TEXT_WIDTH+LINE_NUMBER_WIDTH, LINE_HEIGHT), "Points Left : " + pointsleft.ToString());
  102.     }
  103.     private void DisplayCreateButton()
  104.     {
  105.         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"))
  106.         {
  107.             GameSettings gsScript = GameObject.Find("GameSettingObject").GetComponent<GameSettings>();
  108.             UpdateCurVitalValue();
  109.             gsScript.SaveCharacterData();
  110.             Application.LoadLevel("Level 1");
  111.         }
  112.     }
  113.     private void DisplayCreateLabel()
  114.     {
  115.         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");
  116.     }
  117.     private void UpdateCurVitalValue()
  118.     {
  119.         for (int i = 0; i < Enum.GetValues(typeof(VitalName)).Length; i++)
  120.         {
  121.             _toon.GetVital(i).CurValue = _toon.GetVital(i).BuffedValue;
  122.            
  123.         }
  124.        
  125.     }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement