private void Button_Accept_Click(object sender, RoutedEventArgs e) { if (Hero_DoHaveMagic.IsChecked == true) { Новый_персонаж_с_магией = new Персонаж_с_магией(RecievedID, Имя, Пол, Возраст, аса, МножительСилыРун); } else { Новый_персонаж = new Персонаж(RecievedID, Имя, Пол, Возраст, аса, МножительСилыРун); } DialogResult = true; Close(); }
private void Button_Save_Click(object sender, RoutedEventArgs e) { //Сохранение информации о персонажах try { DataSet ds = new DataSet(); DataTable dt = new DataTable { TableName = "Персонажи" }; dt.Columns.Add("ID"); dt.Columns.Add("Имя"); dt.Columns.Add("Раса"); dt.Columns.Add("Возраст"); dt.Columns.Add("Пол"); dt.Columns.Add("Обладает_магией"); dt.Columns.Add("Ослаблен"); dt.Columns.Add("Болен"); dt.Columns.Add("Отравлен"); dt.Columns.Add("Парализован"); dt.Columns.Add("Мёртв"); dt.Columns.Add("Может_говорить"); dt.Columns.Add("Может_двигаться"); dt.Columns.Add("Максимальное_здоровье"); dt.Columns.Add("Очки_здоровья"); dt.Columns.Add("Очки_опыта"); dt.Columns.Add("Максимальная_мана"); dt.Columns.Add("Очки_маны"); ds.Tables.Add(dt); for (int i = 0; i < Персонажи.Count; i++) { if (Обладает_магией[i] == false) { Персонаж персонаж = Персонажи[i] as Персонаж; DataRow строка = ds.Tables["Персонажи"].NewRow(); строка["ID"] = персонаж.ID; строка["Имя"] = персонаж.Имя; строка["Раса"] = персонаж.аса; строка["Возраст"] = персонаж.Возраст; строка["Пол"] = персонаж.Пол; строка["Обладает_магией"] = "False"; строка["Ослаблен"] = персонаж.Состояние[0]; строка["Болен"] = персонаж.Состояние[1]; строка["Отравлен"] = персонаж.Состояние[2]; строка["Парализован"] = персонаж.Состояние[3]; строка["Мёртв"] = персонаж.Состояние[4]; строка["Может_говорить"] = персонаж.Может_говорить; строка["Может_двигаться"] = персонаж.Может_двигаться; строка["Максимальное_здоровье"] = персонаж.Максимальное_здоровье; строка["Очки_здоровья"] = персонаж.Очки_Здоровья; строка["Очки_опыта"] = персонаж.Очки_Опыта; ds.Tables["Персонажи"].Rows.Add(строка); } else { Персонаж_с_магией персонаж = Персонажи[i] as Персонаж_с_магией; DataRow строка = ds.Tables["Персонажи"].NewRow(); строка["ID"] = персонаж.ID; строка["Имя"] = персонаж.Имя; строка["Раса"] = персонаж.аса; строка["Возраст"] = персонаж.Возраст; строка["Пол"] = персонаж.Пол; строка["Обладает_магией"] = "True"; строка["Ослаблен"] = персонаж.Состояние[0]; строка["Болен"] = персонаж.Состояние[1]; строка["Отравлен"] = персонаж.Состояние[2]; строка["Парализован"] = персонаж.Состояние[3]; строка["Мёртв"] = персонаж.Состояние[4]; строка["Может_говорить"] = персонаж.Может_говорить; строка["Может_двигаться"] = персонаж.Может_двигаться; строка["Максимальное_здоровье"] = персонаж.Максимальное_здоровье; строка["Очки_здоровья"] = персонаж.Очки_Здоровья; строка["Очки_опыта"] = персонаж.Очки_Опыта; строка["Максимальная_мана"] = персонаж.Максимальная_мана; строка["Очки_маны"] = персонаж.Очки_Маны; ds.Tables["Персонажи"].Rows.Add(строка); } } //сохранение информации о тексте в консоли dt = new DataTable { TableName = "Консоль" }; dt.Columns.Add("Консоль_Текст"); ds.Tables.Add(dt); DataRow СтрокаКонсоли = ds.Tables["Консоль"].NewRow(); СтрокаКонсоли["Консоль_Текст"] = Console.Text; ds.Tables["Консоль"].Rows.Add(СтрокаКонсоли); //сохранение информации о предметах в инвентаре dt = new DataTable { TableName = "Инвентарь" }; dt.Columns.Add("Название"); dt.Columns.Add("Числовое_значение"); //кол-во предметов либо значение восстановления (HP/MP) ds.Tables.Add(dt); foreach (Предметы.Зелье Предмет in ПереченьПредметов) { DataRow Строка = ds.Tables["Инвентарь"].NewRow(); Строка["Название"] = Предмет.Название; if (Предмет is Предметы.Зелье_Лечения) { if (Предмет is Предметы.Малое_Зелье_Лечения) { Строка["Числовое_значение"] = (Предмет as Предметы.Малое_Зелье_Лечения).Количество_Восполняемого_Здоровья; } else if (Предмет is Предметы.Среднее_Зелье_Лечения) { Строка["Числовое_значение"] = (Предмет as Предметы.Среднее_Зелье_Лечения).Количество_Восполняемого_Здоровья; } else { Строка["Числовое_значение"] = (Предмет as Предметы.Большое_Зелье_Лечения).Количество_Восполняемого_Здоровья; } } else { if (Предмет is Предметы.Бутылек_Маны) { Строка["Числовое_значение"] = (Предмет as Предметы.Бутылек_Маны).Количество_Восполняемой_Маны; } else if (Предмет is Предметы.Фласка_маны) { Строка["Числовое_значение"] = (Предмет as Предметы.Фласка_маны).Количество_Восполняемой_Маны; } else { Строка["Числовое_значение"] = (Предмет as Предметы.Банка_маны).Количество_Восполняемой_Маны; } } ds.Tables["Инвентарь"].Rows.Add(Строка); } ds.WriteXml("SaveFile.svfl"); MessageBox.Show($"Игра сохранена", "Уведомление", MessageBoxButton.OK, MessageBoxImage.Asterisk); } catch (Exception ex) { StreamWriter streamWriter = new StreamWriter("ErrorLog.log"); streamWriter.Write(ex); MessageBox.Show($"Произошла ошибка при сохранении. В директории с игрой был создан лог файл для отладки", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); streamWriter.Close(); } }
public Огненный_Шар(Персонаж_с_магией Источник, Враги Цель, double Множитель_Стоимости) { Источник.ИзменениеСостоянияМаны("расходование", (uint)(Стоимость * Множитель_Стоимости)); Цель.ОтнятьЗдоровье(50); }
public Заморозка(Персонаж_с_магией Источник, Враги Цель, double Множитель_Стоимости) { Источник.ИзменениеСостоянияМаны("расходовние", (uint)(Стоимость * Множитель_Стоимости)); Цель.IsFrozen = true; }
public Воскрешение(Персонаж_с_магией Источник, Персонаж Цель, double Множитель_Стоимости) { Источник.ИзменениеСостоянияМаны("расходование", (uint)(Стоимость * Множитель_Стоимости)); Цель.ИзменениеСостоянияЗдоровья("лечение", 50); }