void Show_Add_Enemy_Menu(bool Edit_Enemy) { //we will now create the Close button. if (GUI.Button(new Rect(20, 10, 80, 20), "Close")) { //close this menu and open the main menu. b_Add_Enemy_Enabled = false; b_Enabled = true; //reset the enemy to be empty. Temp_Enemy = null; i_Enemy_Edit_Number = -1; f_scroll = 0; } //if there is no temp enemy it means we are not editing one so we set up a temp one to save later. if (Temp_Enemy == null) { Debug.Log("Made new temp enemy"); Temp_Enemy = new Enemy_Template("None", 0, 0, 0, 0, 0, 0, 0, 0, "None", new Sprite()); Temp_Enemy.Enemy_Sprite = Sprite.Create(new Texture2D(1, 1), new Rect(0, 0, 0, 0), new Vector2(1, 1)); } //now we gui all the boxes and set them up to perform their actions using the temp enemy for the data. //string stringToEdit = GUI.TextField(new Rect(10, 10, 200, 20), stringToEdit, 25); float y_offset = 100 + f_scroll; //first will be the sprite/tower/name. GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Name"); y_offset+= i_Size_Height_Amount / 2; GUI.Box(new Rect(Screen.width / 2 - ((i_Size_Enemy_Name) / 2), y_offset, i_Size_Enemy_Name, i_Size_Height_Amount / 2), Temp_Enemy.Enemy_Name); y_offset += i_Size_Height_Amount / 2; if(GUI.Button(new Rect(Screen.width / 2 - ((i_Size_Edit) / 2), y_offset, i_Size_Edit, i_Size_Height_Amount), Temp_Enemy.Enemy_Sprite.texture)) { //select tower/button pressed. //enable the b_Show_Enemy_Sprites bool b_Show_Enemy_Sprites = true; //disable this menu. b_Add_Enemy_Enabled = false; //move the enemy's sprite object to the center. Show_Enemy_Sprite_Table.transform.position = new Vector3(0, 0); } GUI.Box(new Rect(Screen.width / 2 - ((i_Size_Edit) / 2), y_offset, i_Size_Edit, i_Size_Height_Amount), "Edit"); y_offset += i_Size_Height_Amount / 2; y_offset += i_Size_Height_Amount; //1. Wave GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Wave"); y_offset += i_Size_Height_Amount / 2; string Temp_Value = Temp_Enemy.Enemy_Wave_Number.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_HP / 2), y_offset, i_Size_Enemy_Wave_Number, i_Size_Height_Amount / 2), Temp_Value, 4); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Wave_Number); y_offset += i_Size_Height_Amount; //2. HP GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "HP"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_HP.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_HP / 2), y_offset, i_Size_Enemy_HP, i_Size_Height_Amount/2), Temp_Value, 5); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_HP); y_offset += i_Size_Height_Amount; //3. Speed GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Speed"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Speed.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Speed / 2), y_offset, i_Size_Enemy_Speed, i_Size_Height_Amount / 2), Temp_Value, 2); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Speed); y_offset += i_Size_Height_Amount; //4. Power GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Power"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Power.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Power / 2), y_offset, i_Size_Enemy_Power, i_Size_Height_Amount / 2), Temp_Value, 2); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Power); y_offset += i_Size_Height_Amount; //5. Amount In Wave GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Amount In Wave"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Amount.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Amount / 2), y_offset, i_Size_Enemy_Amount, i_Size_Height_Amount / 2), Temp_Value, 3); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Amount); y_offset += i_Size_Height_Amount; //6. Start After GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width/2, i_Size_Height_Amount / 2), "Start How Many Seconds After Last Wave"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Start_After.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Start_After / 2), y_offset, i_Size_Enemy_Start_After, i_Size_Height_Amount / 2), Temp_Value, 3); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Start_After); y_offset += i_Size_Height_Amount; //7. Reward Single GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Reward For Each Kill"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Reward_Single.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Reward_Single / 2), y_offset, i_Size_Enemy_Reward_Single, i_Size_Height_Amount / 2), Temp_Value, 5); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Reward_Single); y_offset += i_Size_Height_Amount; //7. Reward Wave GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "Reward For After Wave Ends"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Reward_Wave.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Reward_Wave / 2), y_offset, i_Size_Enemy_Reward_Wave, i_Size_Height_Amount / 2), Temp_Value, 6); int.TryParse(Temp_Value, out Temp_Enemy.Enemy_Reward_Wave); y_offset += i_Size_Height_Amount; //8. The Mod GUI.Box(new Rect(Screen.width / 2 / 2, y_offset, Screen.width / 2, i_Size_Height_Amount / 2), "What Mod Is Used If Any"); y_offset += i_Size_Height_Amount / 2; Temp_Value = Temp_Enemy.Enemy_Mod.ToString(); Temp_Value = GUI.TextField(new Rect(Screen.width / 2 - (i_Size_Enemy_Mod / 2), y_offset, i_Size_Enemy_Mod, i_Size_Height_Amount / 2), Temp_Value, 6); Temp_Enemy.Enemy_Mod = Temp_Value; y_offset += i_Size_Height_Amount; //Wave,HP,Speed,Power,amount,Star after, mod, reward single, reward wave, //the save/add button. if (GUI.Button(new Rect(20, 80, 80, 20), "Save")) { //not equal to -1 so we are editing. if (i_Enemy_Edit_Number != -1) { //we get the enemy and set it. Stats.Enemy_List[i_Enemy_Edit_Number] = Temp_Enemy; } else { //add the new enemy. Stats.Enemy_List.Add(Temp_Enemy); } //close this menu and open the main menu. b_Add_Enemy_Enabled = false; b_Enabled = true; //reset the enemy to be empty. Temp_Enemy = null; i_Enemy_Edit_Number = -1; f_scroll = 0; //to orginize the waves. b_Sort_By_Wave = true; } }
void Show_Enemy_List_Menu() { if (b_Sort_By_Wave) { Sort_By_Wave(); } //we will now create the Close button. if (GUI.Button(new Rect(20, 10, 80, 20), "Close")) { f_scroll = 0; //need to find the script and tell it to button press. GameObject.Find("LE_SCRIPTS").GetComponent<Mouse_Interaction_Script>().Button_Handler.Menu_Enemy_Clicked(); } //we will now create the add button. if (GUI.Button(new Rect(20, 40, 80, 20), "Add Enemy")) { //this is where we will start the enemy add script,ect. b_Enabled = false; b_Add_Enemy_Enabled = true; // //Temp_Enemy = new Enemy_Template(Temp_Enemy,0,0,0,0,0,0,0,0,"Null",); } //now we will go through each of the enemies and list them out and display all their info along with an edit and remove button. for (int i = 0; i < Stats.Enemy_List.Count; i++) { x_start = 0; GUI.Box(new Rect(i_To_Center_X_Start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Edit, i_Size_Height_Amount), Stats.Enemy_List[i].Enemy_Sprite.texture); //Stats.Enemy_List[i] //first we need to make the edit button. if (GUI.Button(new Rect(i_To_Center_X_Start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Edit, i_Size_Height_Amount), "Edit")) { //this is where we will start the enemy add script,ect. //this is where we will start the enemy add script,ect. b_Enabled = false; b_Add_Enemy_Enabled = true; //need to have this enemy as the one. i_Enemy_Edit_Number = i; //we set the temp enemy to this one to edit. Temp_Enemy = (Enemy_Template)Stats.Enemy_List[i].Clone(); f_scroll = 0; } //This is to update the x spot with the new spot value. x_start += i_Size_Edit; //the label for the name. we have to add the edit's box size. GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Name, i_Size_Height_Amount / 2), "Name"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Name, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Name); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Name; //the Wave Number GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Wave_Number, i_Size_Height_Amount / 2), "Wave #"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Wave_Number, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Wave_Number.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Wave_Number; //the HP GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_HP, i_Size_Height_Amount / 2), "HP"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_HP, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_HP.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_HP; //the Speed GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Speed, i_Size_Height_Amount / 2), "Speed"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Speed, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Speed.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Speed; //the Power GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Power, i_Size_Height_Amount / 2), "Power"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Power, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Power.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Power; //the Amount GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Amount, i_Size_Height_Amount / 2), "Amount"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Amount, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Amount.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Amount; //the Start After GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Start_After, i_Size_Height_Amount / 2), "Star After"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Start_After, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Start_After.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Start_After; //the Reward Single GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Reward_Single, i_Size_Height_Amount / 2), "Kill Reward"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Reward_Single, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Reward_Single.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Reward_Single; //the Reward Wave GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Reward_Wave, i_Size_Height_Amount / 2), "Wave Reward"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Reward_Wave, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Reward_Wave.ToString()); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Reward_Wave; //the Mod GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Mod, i_Size_Height_Amount / 2), "MOD"); GUI.Box(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i_Size_Height_Amount / 2) + (i * (i_Size_Height_Amount + 5)), i_Size_Enemy_Mod, i_Size_Height_Amount / 2), Stats.Enemy_List[i].Enemy_Mod); //This is to update the x spot with the new spot value. x_start += i_Size_Enemy_Mod; //now we add the delete button. if (GUI.Button(new Rect(i_To_Center_X_Start + x_start, f_scroll + i_Size_Height_Amount + (i * (i_Size_Height_Amount + 5)), i_Size_Edit, i_Size_Height_Amount), "Delete")) { //this is the remove tower button. pretty simple. Stats.Enemy_List.RemoveAt(i); } } }