Im making a combat menu like this:
← Skills: skill name →
← Magics: magic name →
← Items : item name →
skill name’s variable is called skillbagCursor
magic name’s variable is called magicbagCursor
item name’s variable is called itembagCursor
pressing left or right arrow should change the value in the targetted horizontal row.
that works, but when i go left or right i get an error, i used a Debug.Log(Master.itembag.Count); to see the size of the list and it always say 2 or more, it never says 1 or 0 though I add 3 total items at 3 seperate times(should say 1, then 2, then 3)… im stumped. Would anyone like to help me figure this out?
import System.Collections.Generic;
var firstPlay : boolean = true;
var itembagCursor : int = 0;
static var itembagCursorMax : int = 0;
var skillbagCursor : int = 0;
static var skillbagCursorMax : int = 0;
var magicbagCursor : int = 0;
static var magicbagCursorMax : int = 0;
static var selectedSkill : String;
static var selectedMagic : String;
static var selectedItem : String;
static var activeCursor : String = "skillbag";
function Start(){
if(firstPlay){
Master.itembag.Add("Empty"); //add item to inventory
Master.skillbag.Add("Rush Cut");
Master.magicbag.Add("Fire");
firstPlay = false;//save this value on saving!!!***~~~
}
}
function Update(){
itembagCursor = Mathf.Clamp(itembagCursor, 0, itembagCursorMax);
itembagCursorMax = Master.itembag.Count;
skillbagCursorMax = Master.skillbag.Count;
magicbagCursorMax = Master.magicbag.Count;
selectedItem = Master.itembag[itembagCursor];
selectedMagic = Master.magicbag[magicbagCursor];
selectedSkill = Master.skillbag[skillbagCursor];
Interface.messageWindow = selectedItem;
/* SET THE ACTIVE CURSOR */
if(Input.GetKeyDown(KeyCode.UpArrow) == true)
{
switch(activeCursor)
{
case "skillbag":
activeCursor = "itembag";
break;
case "magicbag":
activeCursor = "skillbag";
break;
case "itembag":
activeCursor = "magicbag";
break;
}
}
else if(Input.GetKeyDown(KeyCode.DownArrow) == true)
{
switch(activeCursor)
{
case "skillbag":
activeCursor = "magicbag";
break;
case "magicbag":
activeCursor = "itembag";
break;
case "itembag":
activeCursor = "skillbag";
break;
}
}
/* ENABLE ACTIVE CURSOR TO NAVIGATE ITEMS <- & -> */
if(Input.GetKeyDown(KeyCode.LeftArrow) == true)
{
switch(itembagCursor)
{
case itembagCursor > 0:
itembagCursor = itembagCursor - 1;
break;
case itembagCursor == 0:
itembagCursor = itembagCursorMax;
break;
}
}
if(Input.GetKeyDown(KeyCode.RightArrow) == true)
{
switch(itembagCursor < itembagCursorMax)
{
case true:
itembagCursor = itembagCursor + 1;
break;
case false:
itembagCursor = 0;
break;
}
}
if(Input.GetKeyDown(KeyCode.LeftArrow) == true)
{
switch(magicbagCursor)
{
case magicbagCursor > 0:
magicbagCursor = magicbagCursor - 1;
break;
case itembagCursor == 0:
magicbagCursor = magicbagCursorMax;
break;
}
}
if(Input.GetKeyDown(KeyCode.RightArrow) == true)
{
switch(magicbagCursor)
{
case magicbagCursor < magicbagCursorMax:
magicbagCursor = magicbagCursor + 1;
break;
case magicbagCursor == magicbagCursorMax:
magicbagCursor = 0;
break;
}
}
if(Input.GetKeyDown(KeyCode.LeftArrow) == true)
{
switch(skillbagCursor)
{
case skillbagCursor > 0:
skillbagCursor = skillbagCursor - 1;
break;
case itembagCursor == 0:
skillbagCursor = skillbagCursorMax;
break;
}
}
if(Input.GetKeyDown(KeyCode.RightArrow) == true)
{
switch(skillbagCursor)
{
case skillbagCursor < skillbagCursorMax:
skillbagCursor = skillbagCursor + 1;
break;
case skillbagCursor == skillbagCursorMax:
skillbagCursor = 0;
break;
}
}
//USE THE ITEMS WHEN ENTER PRESSED IN COMBAT MENU//
if(Input.GetKeyDown(KeyCode.Return) && activeCursor == "itembag" && selectedItem == "Potion" && Master.potion > 0){
Statistics.playerCurHp = Statistics.playerCurHp + 100;
Interface.messageWindow = "You used a 'Potion'.";
Master.potion = Master.potion - 1;
}
if(Master.potion == 0 && Master.itembag.Count > 1){
Master.itembag.Remove("Potion");
}
if(Master.potion == 0 && Master.itembag.Count == 1){
Master.itembag.Add("Empty");
Master.itembag.Remove("Potion");
}
if(Input.GetKeyDown(KeyCode.Return) && activeCursor == "itembag" && selectedItem == "Ether" && Master.ether > 0){
Statistics.playerCurMp = Statistics.playerCurMp + 50;
Interface.messageWindow = "You used an 'Ether'.";
Master.ether = Master.ether - 1;
}
if(Master.ether == 0 && Master.itembag.Count > 1){
Master.itembag.Remove("Ether");
}
if(Master.ether == 0 && Master.itembag.Count == 1){
Master.itembag.Add("Empty");
Master.itembag.Remove("Ether");
}
}