diff --git a/Assets/UI/TextBox.png b/Assets/UI/TextBox.png new file mode 100644 index 0000000..2e9859c Binary files /dev/null and b/Assets/UI/TextBox.png differ diff --git a/Assets/UI/TextBox.png.import b/Assets/UI/TextBox.png.import new file mode 100644 index 0000000..6d23a88 --- /dev/null +++ b/Assets/UI/TextBox.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/TextBox.png-2ad7bec0b4178924442104273f95e7b4.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://Assets/UI/TextBox.png" +dest_files=[ "res://.import/TextBox.png-2ad7bec0b4178924442104273f95e7b4.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=false +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/Levels/ArenaManager.cs b/Levels/ArenaManager.cs index 3de1493..506015b 100644 --- a/Levels/ArenaManager.cs +++ b/Levels/ArenaManager.cs @@ -1,4 +1,6 @@ using System.Collections.Generic; +using System; +using System.IO; using CodeBlitz.Objects; using Godot; @@ -8,27 +10,24 @@ public class ArenaManager : Node2D { List YellowTeam = new List(); List RedTeam = new List(); + private List _troopNames = new List(); private PackedScene _archerScene; private PackedScene _basicScene; private PackedScene _tankScene; private PackedScene _wizardScene; private PackedScene _knightScene; + private List _inputList = new List(); private PackedScene _smokeScene; + private Random _random = new Random(); private string _attacker = "Yellow"; private string _defender = "Red"; private WorldManager _worldManager; private Highlight _worldHighlight; private PlayerHighlight _playerHighlight; - private Entity currentEntity; private Entity previousEntity; private int _troopsMoved = 0; - private int _troopIndex = 0; - private bool _canAttack = false; - private bool _canChoosetarget = false; - private bool _canChooseLoc = false; - private bool _canWalk = false; - private bool _unitSelected = false; - private string _state = string.Empty; + private int _troopsSpawned = 0; + private bool isSpawn = true; private string _currentTeamSpawning = "Yellow"; [Signal] public delegate void DisplayTroopList(string team); [Signal] public delegate void UpdateTroopList(string team); @@ -36,6 +35,7 @@ public class ArenaManager : Node2D [Signal] public delegate void DisplayTroopStats(int hp, int moves, string troop, string team); public override void _Ready() { + GD.Print("Bruh"); GetNode("AnimationPlayer").Play("Fade In"); _playerHighlight = GetNode("PlayerHighlight"); _worldHighlight = GetNode("WorldHighlight"); @@ -48,14 +48,73 @@ public override void _Ready() _knightScene = ResourceLoader.Load("res://Objects/Knight.tscn"); _smokeScene = ResourceLoader.Load("res://Objects/Smoke.tscn"); Connect(nameof(GameOver), this, nameof(_end_Game)); + + StreamReader sr = new StreamReader("Troop Names.txt"); + string line; + while ((line = sr.ReadLine()) != null) + _troopNames.Add(line); + sr.Close(); + } + public override void _Input(InputEvent @event) + { + //Spawn code + if(isSpawn && @event is InputEventMouse eventKey && eventKey.IsPressed()) + { + var position = _worldManager.WorldToMap(eventKey.Position); + if(!_worldManager.ExistsInArray(position, _worldManager.Obstacles) + && !_worldManager.ExistsInArray(position, _worldManager.Players)) + { + Entity entity; + Vector2 half = (_worldManager.CellSize / 2) / 2; + string name = _troopNames[_random.Next(0, _troopNames.Count - 1)]; + _troopNames.Remove(name); + if(_currentTeamSpawning == "Yellow") + { + entity = GetInstance(Troops.YellowTeam[_troopsSpawned]).Instance() as Entity; + entity.Name = Troops.YellowTeam[_troopsSpawned]; + YellowTeam.Add(entity); + } + else + { + entity = GetInstance(Troops.RedTeam[_troopsSpawned]).Instance() as Entity; + entity.Name = Troops.RedTeam[_troopsSpawned]; + RedTeam.Add(entity); + } + + entity.Name = name; + entity.GetNode