// ------------------------------------ // TRAINING QUEUE AND ACTIONS // ------------------------------------ public void train(StrategyObject t) { Debug.Log("Adding " + t + " to " + trainingQueue); if (trainingQueue.Count == 0) { startDevelopment(t); } trainingQueue.Add(t); t.StartDevelopment(); Gameplay.getPlayer(tag).consumeResources(t.cost); }
public void startDevelopment(StrategyObject u) { //TODO check if has enough supplies Gameplay.getPlayer(tag).consumeSupply(u.cost); if (u is Research) { player().research.StartDevelopment((Research)u); } trainingStart = Time.time; }
public void Update() { base.Update(); initDeploy(); //Restart deploy so it works on drag and drop from unity interface if (canvas != null) { canvas.enabled = selected && !isBuilding; } //Update training progress if (canvasProgress != null) { if (trainingQueue.Count > 0) { canvasProgress.enabled = true; StrategyObject u = trainingQueue[0]; float percent = (Time.time - trainingStart) * 100 / u.trainingTime; canvasProgress.fillAmount = percent / 100; if (percent >= 100) { finishTraining(); } } else { canvasProgress.enabled = false; } } if (moving) { Vector3 terrainBase = Utils.terrainHeight(transform.position); terrainBase.y += 0.5f; terrainBase.x = Mathf.Round(transform.position.x); terrainBase.z = Mathf.Round(transform.position.z); transform.position = terrainBase; if (canBuild) { colorModel(Color.green); } else { colorModel(Color.red); } } }
public void CancelTraining(int i) { StrategyObject u = trainingQueue[i]; trainingQueue.Remove(u); if (i == 0) { Gameplay.getPlayer(tag).addSupply(u.cost); trainingStart = Time.time; if (trainingQueue.Count > 0) { startDevelopment(trainingQueue[0]); } } u.CancelDevelopment(); Gameplay.getPlayer(tag).addResources(u.cost); RemoveCancelButton(i); }
public List <StrategyObject> GetOneStrategy() { var strategyStr = "00000:5,00001:5,00002:3,00010:3,00011:4,00012:6,00020:1,00021:6,00022:3,00100:0,00101:0,00102:2,00110:4,00111:5,00112:6,00120:0,00121:5,00122:5,00200:1,00201:6,00202:6,00210:2,00211:0,00212:3,00220:4,00221:1,00222:2,01000:3,01001:3,01002:5,01010:5,01011:4,01012:5,01020:4,01021:5,01022:1,01100:1,01101:4,01102:1,01110:4,01111:1,01112:6,01120:2,01121:6,01122:1,01200:0,01201:4,01202:5,01210:1,01211:5,01212:3,01220:0,01221:1,01222:1,02000:5,02001:2,02002:1,02010:3,02011:5,02012:0,02020:3,02021:3,02022:6,02100:0,02101:3,02102:0,02110:5,02111:5,02112:4,02120:4,02121:6,02122:6,02200:1,02201:6,02202:6,02210:4,02211:3,02212:5,02220:2,02221:4,02222:5,10000:0,10001:3,10002:5,10010:5,10011:6,10012:5,10020:1,10021:5,10022:2,10100:3,10101:2,10102:4,10110:2,10111:3,10112:2,10120:4,10121:3,10122:2,10200:5,10201:2,10202:0,10210:1,10211:1,10212:3,10220:1,10221:3,10222:3,11000:0,11001:3,11002:2,11010:3,11011:3,11012:6,11020:1,11021:6,11022:3,11100:2,11101:4,11102:5,11110:2,11111:6,11112:3,11120:5,11121:4,11122:2,11200:4,11201:4,11202:1,11210:0,11211:6,11212:4,11220:2,11221:5,11222:4,12000:5,12001:3,12002:2,12010:6,12011:3,12012:1,12020:1,12021:4,12022:3,12100:6,12101:3,12102:1,12110:6,12111:2,12112:4,12120:4,12121:3,12122:5,12200:0,12201:2,12202:3,12210:0,12211:6,12212:2,12220:1,12221:4,12222:5,20000:3,20001:0,20002:3,20010:5,20011:4,20012:6,20020:1,20021:1,20022:5,20100:6,20101:2,20102:5,20110:3,20111:1,20112:6,20120:1,20121:0,20122:1,20200:5,20201:0,20202:2,20210:2,20211:2,20212:5,20220:6,20221:6,20222:5,21000:2,21001:4,21002:4,21010:2,21011:2,21012:3,21020:2,21021:0,21022:4,21100:2,21101:2,21102:1,21110:4,21111:5,21112:3,21120:5,21121:3,21122:2,21200:0,21201:2,21202:1,21210:0,21211:0,21212:0,21220:0,21221:0,21222:2,22000:5,22001:2,22002:0,22010:4,22011:2,22012:2,22020:3,22021:4,22022:3,22100:6,22101:0,22102:6,22110:4,22111:6,22112:4,22120:1,22121:1,22122:1,22200:6,22201:6,22202:3,22210:6,22211:3,22212:4,22220:4,22221:0,22222:1,"; var strategyArr = strategyStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var s in strategyArr) { var value = s.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (value.Length == 2) { var strategy = new StrategyObject { position = value[0], strategy = value[1] }; Strategy.Add(strategy); } } return(Strategy); }
public void finishTraining() { StrategyObject u = trainingQueue[0]; //Cannot put this inside finishdevelopment because it requires a object, tag and position if (u is Playable) { Playable.create((Playable)u, deploy, tag); } if (u is Research) { player().research.FinishDevelopment((Research)u); } trainingQueue.RemoveAt(0); RemoveCancelButton(0); u.FinishDevelopment(); if (trainingQueue.Count > 0) { startDevelopment(trainingQueue[0]); } }
public static CancelTrainUnit AddCancelButton(StrategyObject unit, Building building, int count) { Debug.Log("Adding unit " + unit.name + " on building " + building.name + ":" + count); GameObject cancelButton = (GameObject)Instantiate(Resources.Load("Cancel")); Image image = cancelButton.GetComponent <Image>(); image.sprite = unit.sprite; //if(count > 0) image.transform.localScale = Vector3.one * 0.5f; cancelButton.transform.parent = building.canvas.transform; RectTransform buttonRect = (RectTransform)cancelButton.GetComponent <RectTransform>(); RectTransform canvasRect = (RectTransform)building.canvas.GetComponent <RectTransform>(); cancelButton.transform.position = building.canvas.transform.position; cancelButton.transform.rotation = building.canvas.transform.rotation; CancelTrainUnit script = cancelButton.GetComponent <CancelTrainUnit>(); script.unit = unit; script.building = building; return((CancelTrainUnit)cancelButton.GetComponent <CancelTrainUnit>()); }
public EditStrategyCommand(IDesign design, StrategyObject strategy) : base(design) { Strategy = strategy; }