private void updateQuests() { DataTable dataTable; dataTable = m_adaptor.getCurrentQuests(1); foreach (DataRow row in dataTable.Rows) { String questName = ""; questName = row[0].ToString(); ListViewItem newItem = new ListViewItem(questName); String completed = row[1].ToString(); if (completed == "True") { completed = "Completée"; } else { completed = "En cours"; } newItem.SubItems.Add(completed); ListViewItem test = lsvQuest.FindItemWithText(questName); if (test == null) { lsvQuest.Items.Add(newItem); Console.WriteLine(questName); } else { if (test.SubItems[1].Text != completed) { test.SubItems[1].Text = completed; } } } }
//Rafraichie le GUI de facon intelligente en rafraichissant seulement les parties changées public void refreshGUI(String p_actionString, int p_changed) { if (p_actionString != "Finis") { valueChanged changed = (valueChanged)p_changed; DataTable dataTable; lsvLog.Items.Add(p_actionString); lsvLog.TopIndex = lsvLog.Items.Count - 1; switch (changed) { //Si les quetes du personnage ont changé case valueChanged.quest: dataTable = m_adaptor.getCurrentQuests(1); foreach (DataRow row in dataTable.Rows) { String questName = ""; questName = row[0].ToString(); ListViewItem newItem = new ListViewItem(questName); String completed = row[1].ToString(); if (completed == "True") { completed = "Completée"; } else { completed = "En cours"; } newItem.SubItems.Add(completed); ListViewItem test = lsvQuest.FindItemWithText(questName); if (test == null) { lsvQuest.Items.Add(newItem); Console.WriteLine(questName); } else { if (test.SubItems[1].Text != completed) { test.SubItems[1].Text = completed; } } } break; case valueChanged.inventaire: break; //Si les stats du personnages on changés case valueChanged.stats: dataTable = m_adaptor.getCurrentStats(1); int columnHP = dataTable.Columns.IndexOf("CharHP"); int columnMaxHP = dataTable.Columns.IndexOf("CharMaxHP"); int columnStrenght = dataTable.Columns.IndexOf("CharStr"); int columnDex = dataTable.Columns.IndexOf("CharDex"); int columnCon = dataTable.Columns.IndexOf("CharCon"); double currentHP; double maxHP; double strenght; double dex; double con; Double.TryParse(dataTable.Rows[0][columnHP].ToString(), out currentHP); Double.TryParse(dataTable.Rows[0][columnMaxHP].ToString(), out maxHP); Double.TryParse(dataTable.Rows[0][columnStrenght].ToString(), out strenght); Double.TryParse(dataTable.Rows[0][columnDex].ToString(), out dex); Double.TryParse(dataTable.Rows[0][columnCon].ToString(), out con); int hpPercent = (int)((currentHP / maxHP) * 100); lblStr.Text = strenght.ToString(); lblDex.Text = dex.ToString(); lblConst.Text = con.ToString(); pgrbHealt.Value = hpPercent; pgrbHealt.Refresh(); break; case valueChanged.statsMonstre: int monsterCurrentHP = 0; int monsterMaxHP = 0; object[] monsterHPValues = m_adaptor.getCurrentMonsterHP(1, monsterCurrentHP, monsterMaxHP); monsterCurrentHP = Convert.ToInt32(monsterHPValues[0]); monsterMaxHP = Convert.ToInt32(monsterHPValues[1]); //rafrachie la barre de progression if (monsterMaxHP > 0) { int MonsterHpPercent = (int)(((double)monsterCurrentHP / (double)monsterMaxHP) * 100.0); pgrbMonsterHP.Value = MonsterHpPercent; } else { pgrbMonsterHP.Value = 0; } Console.WriteLine(monsterCurrentHP); Console.WriteLine(monsterMaxHP); break; default: break; } } else { this.m_simulation.Abort(); lsvLog.Items.Add("Vous avez terminé le jeu! Merci d'avoir jouer"); } }