/// <summary> /// timer aktualizujacy obecna ilosc jednostek /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerUpdater_Tick(object sender, EventArgs e) { labelElvishArcherQuantity.Text = ElvishArcher.ElvishList.Count.ToString(); labelElvishWarriorQuantity.Text = ElvishWarrior.ElvishList.Count.ToString(); labelElvishMasterQuantity.Text = ElvishMaster.ElvishList.Count.ToString(); labelElvishArcherTrainingCostTime.Text = (ElvishArcher.TrainingTime() / 1000).ToString(); labelElvishWarriorTrainingCostTime.Text = (ElvishWarrior.TrainingTime() / 1000).ToString(); labelElvishMasterTrainingCostTime.Text = (ElvishMaster.TrainingTime() / 1000).ToString(); }
/// <summary> /// timer odmierzajacy czas szkolenia jednostki elficki wojownik /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void timerElvishWarriorTraining_Tick(object sender, EventArgs e) { // zatrzymuje timer timerElvishWarriorTraining.Stop(); // zatrzymanie timera od progressBaru timerElvishWarriorProgressBar.Stop(); // stworzenie jednostki ElvishWarrior newWarrior = new ElvishWarrior(); // zresetowanie progressBaru progressBarElvishWarriorTraining.Value = 0; // odblokowuje klawisz szkolenia kolejnego elfickiego wojownika buttonElvishWarriorTrain.Enabled = true; }
private void FormTraining_Load(object sender, EventArgs e) { // ustawia obraz elfickiego łucznika, obraz znajduje sie w resources projektu pictureBoxElvishArcher.Image = Properties.Resources.elvishArcher2; // ustawia obraz elfickiego wojownika, obraz znajduje sie w resources projektu pictureBoxElvishWarrior.Image = Properties.Resources.elvishWarrior; // ustawia obraz elfickiego mistrza, obraz znajduje sie w resources projektu pictureBoxElvishMaster.Image = Properties.Resources.elvishMaster2; labelElvishArcherQuantity.Text = ElvishArcher.ElvishList.Count.ToString(); labelElvishWarriorQuantity.Text = ElvishWarrior.ElvishList.Count.ToString(); labelElvishMasterQuantity.Text = ElvishMaster.ElvishList.Count.ToString(); // Tworzenie obiektu klasy ElvishArcher i wyswietlnie w poszczegolnych labelach kosztow treningow jednostki elfi lucznik int[] cost = ElvishArcher.TrainingCost(); labelElvishArcherTrainingCostFood.Text = cost[0].ToString(); labelElvishArcherTrainingCostWood.Text = cost[1].ToString(); labelElvishArcherTrainingCostStone.Text = cost[2].ToString(); labelElvishArcherTrainingCostIron.Text = cost[3].ToString(); labelElvishArcherTrainingCostCrystals.Text = cost[4].ToString(); labelElvishArcherTrainingCostPopulation.Text = cost[5].ToString(); // tworzenie obiektu klasy ElvishWarrior i wyswietlenie jego kosztow szkolenia cost = ElvishWarrior.TrainingCost(); labelElvishWarriorTrainingCostFood.Text = cost[0].ToString(); labelElvishWarriorTrainingCostWood.Text = cost[1].ToString(); labelElvishWarriorTrainingCostStone.Text = cost[2].ToString(); labelElvishWarriorTrainingCostIron.Text = cost[3].ToString(); labelElvishWarriorTrainingCostCrystals.Text = cost[4].ToString(); labelElvishWarriorTrainingCostPopulation.Text = cost[5].ToString(); // Wyswietlnie w poszczegolnych labelach kosztow treningow jednostki elfi mistrz cost = ElvishMaster.TrainingCost(); labelElvishMasterTrainingCostFood.Text = cost[0].ToString(); labelElvishMasterTrainingCostWood.Text = cost[1].ToString(); labelElvishMasterTrainingCostStone.Text = cost[2].ToString(); labelElvishMasterTrainingCostIron.Text = cost[3].ToString(); labelElvishMasterTrainingCostCrystals.Text = cost[4].ToString(); labelElvishMasterTrainingCostPopulation.Text = cost[5].ToString(); // wyswietli czas szkolenia poszczegolnyc jednostek labelElvishArcherTrainingCostTime.Text = (ElvishArcher.TrainingTime() / 1000).ToString(); labelElvishWarriorTrainingCostTime.Text = (ElvishWarrior.TrainingTime() / 1000).ToString(); labelElvishMasterTrainingCostTime.Text = (ElvishMaster.TrainingTime() / 1000).ToString(); // timer aktualizuje wyswietlana liczbe jednostek timerUpdater.Interval = 100; timerUpdater.Start(); }
/// <summary> /// Funkcja wywolywana podczas klikniecia na przyskich w zamiarze szkolenia elfickiego wojownika /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonElvishWarriorTrain_Click(object sender, EventArgs e) { // sprawdzenie czy uzytkownik posiada wystarczajaca ilosc zasobow if (IfEnoughtResources(labelElvishWarriorTrainingCostFood, labelElvishWarriorTrainingCostWood, labelElvishWarriorTrainingCostStone, labelElvishWarriorTrainingCostIron, labelElvishWarriorTrainingCostCrystals, labelElvishWarriorTrainingCostPopulation) == true) { // ustawienie timera timerElvishWarriorTraining.Interval = ElvishWarrior.TrainingTime(); // ustawienie timera odpowiedzialnego za progressbar timerElvishWarriorProgressBar.Interval = timerElvishWarriorTraining.Interval / 110 + 1; // wystartowanie timera odpowiedzialnego za progressbar timerElvishWarriorProgressBar.Start(); // wystartowanie timera timerElvishWarriorTraining.Start(); // zablokowanie klawisza buttonElvishWarriorTrain.Enabled = false; } else { MessageBox.Show("Brak wystarczajacych ilosci zasobow"); } }
/// <summary> /// Funkcja wczytująca wcześniej zapisany stan /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonLoad_Click(object sender, EventArgs e) { // próba otworzenia pliku try { xDoc.Load(path); } catch { MessageBox.Show("Otworzenie pliku z zapisami nie powiodło sie", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Error); } // szukanie zapisu o podanej nazwie foreach (XmlNode node in xDoc.SelectNodes("saves/save")) { // jezeli znalazlo podaną nazwę zapisu w bazie xml to wczytuje z niej zawarte dane if (node.SelectSingleNode("saveName").InnerText == textBoxSaveName.Text) { // wczytanie zasobów Resources.ResourcesFood = Int32.Parse(node.SelectSingleNode("resources/food").InnerXml); Resources.ResourcesWood = Int32.Parse(node.SelectSingleNode("resources/wood").InnerXml); Resources.ResoucresStone = Int32.Parse(node.SelectSingleNode("resources/stone").InnerXml); Resources.ResoucresIron = Int32.Parse(node.SelectSingleNode("resources/iron").InnerXml); Resources.ResoucresCrystals = Int32.Parse(node.SelectSingleNode("resources/crystals").InnerXml); Resources.Population = Int32.Parse(node.SelectSingleNode("resources/population").InnerXml); // wczytanie poziomow budynkow ElvishBuildings.LevelOfHuntingBuilding = Int32.Parse(node.SelectSingleNode("elvishBuildings/huntingBuild").InnerXml); ElvishBuildings.LevelOfWoodshet = Int32.Parse(node.SelectSingleNode("elvishBuildings/woodshet").InnerXml); ElvishBuildings.LevelOfQuarry = Int32.Parse(node.SelectSingleNode("elvishBuildings/quarry").InnerXml); ElvishBuildings.LevelOfIronWorks = Int32.Parse(node.SelectSingleNode("elvishBuildings/ironWorks").InnerXml); ElvishBuildings.LevelOfCrystalMine = Int32.Parse(node.SelectSingleNode("elvishBuildings/crystalMine").InnerXml); ElvishBuildings.LevelOfHouses = Int32.Parse(node.SelectSingleNode("elvishBuildings/houses").InnerXml); ElvishBuildings.LevelOfTemple = Int32.Parse(node.SelectSingleNode("elvishBuildings/temple").InnerXml); ElvishBuildings.LevelOfElvishBuilding = Int32.Parse(node.SelectSingleNode("elvishBuildings/elvishBuilding").InnerXml); ElvishBuildings.LevelOfMartialArtsSchool = Int32.Parse(node.SelectSingleNode("elvishBuildings/martialArtsSchool").InnerXml); ElvishBuildings.LevelOfInfrastructure = Int32.Parse(node.SelectSingleNode("elvishBuildings/infrastructure").InnerXml); // stworzenie takiej samej liczby jednostek elfow for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("elvishUnits/elvishArcher").InnerXml); i++) { ElvishArcher loadArcher = new ElvishArcher(); } for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("elvishUnits/elvishWarrior").InnerXml); i++) { ElvishWarrior loadWarrior = new ElvishWarrior(); } for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("elvishUnits/elvishMaster").InnerXml); i++) { ElvishMaster loadMaster = new ElvishMaster(); } // stworzenie takiej samej liczby jednostek orków for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("orcishUnits/orcishCrossbowman").InnerXml); i++) { OrcishCrossbowman loadOrcishCrossbowman = new OrcishCrossbowman(); } for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("orcishUnits/orcishWarrior").InnerXml); i++) { OrcishWarrior loadWarrior = new OrcishWarrior(); } for (int i = 1; i <= Int32.Parse(node.SelectSingleNode("orcishUnits/orcishCommander").InnerXml); i++) { OrcishCommander loadCommander = new OrcishCommander(); } // wczytanie licznika potyczek OrcsAttack.battleCounter = Int32.Parse(node.SelectSingleNode("battleCounter").InnerXml); // zamkniecie okienka this.Close(); // wyswietlenie wiadomosci MessageBox.Show("Wczytano!", "Informacja", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }