/// <summary>Добавляет эффект к предмету экипировки</summary> /// <param name="stat">Характеристика</param> /// <param name="value">Значение изменения</param> /// <param name="duration">Длительность эффекта (если бесконечно, то -1)</param> public bool AddEffect(DungeonStats stat, double value, int duration = -1) { for (int i = 0; i < m_effects.Count; i++) { if (m_effects[i].Stat == stat) // если эффект для этой характеристики уже есть { return(false); } } if (this is DungeonItemArtifact || this is DungeonItemPotion) { if (this is DungeonItemPotion && duration == -1) { return(false); } if (TotalEffectsNumber < 3 || (this is DungeonItemArtifact && (this as DungeonItemArtifact).IsSpecial)) { m_effects.Add(new DungeonEffect(stat, value, duration)); UpdateFullDescription(); if (!(this is DungeonItemArtifact && (this as DungeonItemArtifact).IsSpecial)) { SetShowingEffectColor(TotalEffectsNumber - 1, DungeonStatsInfo.GetColor(stat)); } return(true); } } else { m_effects.Add(new DungeonEffect(stat, value, duration)); UpdateFullDescription(); return(true); } return(false); }
/// <summary>Распределяет все очки скилла монстра</summary> /// <param name="world_key">Ключ генерации мира</param> public void DistributeAllSkillPoints(ref Random world_key) { while (SkillPoints > 0) { DungeonStats stat = (DungeonStats)(world_key.Next(0, 10)); while (stat == DungeonStats.Intelligence || stat == DungeonStats.Luck) // монстры не имеют этих характеристик { stat = (DungeonStats)(world_key.Next(0, 10)); } UpStatValue(stat); } }
/// <summary>Создаёт эффект</summary> /// <param name="stat">Характеристика, которую изменяет эффект</param> /// <param name="value">Значение, на которое эффект изменяет характеристику</param> /// <param name="duration">Длительность действия эффекта (в секундах) (равно -1 в случае бесконечной длительности)</param> public DungeonEffect(DungeonStats stat, double value = 0, int duration = -1) { m_stat = stat; m_value = value; m_duration = duration; m_creature = null; m_is_active = false; m_usage_time = m_duration * 1000; m_timer_usage_is_working = false; InitializeTimers(); }
/// <summary>Значение, на которое увеличивается характеристика при прокачке</summary> /// <param name="stat">Характеристика</param> /// <returns>Значение</returns> public static double Plus(DungeonStats stat) { if (stat == DungeonStats.MaxHealth) { return(25); } else if (stat == DungeonStats.MaxEnergy) { return(25); } else if (stat == DungeonStats.Intelligence) { return(25); } else if (stat == DungeonStats.Regeneration) { return(0.5); } else if (stat == DungeonStats.Restore) { return(0.5); } else if (stat == DungeonStats.Speed) { return(0.5); } else if (stat == DungeonStats.Power) { return(5); } else if (stat == DungeonStats.Mobility) { return(5); } else if (stat == DungeonStats.Luck) { return(5); } return(-1); }
/// <summary>Цвет, соответствующий характеристике</summary> /// <param name="stat">Характеристика</param> /// <returns>Цвет</returns> public static Color GetColor(DungeonStats stat) { if (stat == DungeonStats.MaxHealth) { return(Color.FromArgb(255, 0, 0)); // красный } else if (stat == DungeonStats.MaxEnergy) { return(Color.FromArgb(0, 0, 255)); // синий } else if (stat == DungeonStats.Intelligence) { return(Color.FromArgb(255, 165, 0)); // оранжевый } else if (stat == DungeonStats.Regeneration) { return(Color.FromArgb(255, 76, 91)); // светло-красный } else if (stat == DungeonStats.Restore) { return(Color.FromArgb(154, 206, 235)); // светло-синий } else if (stat == DungeonStats.Speed) { return(Color.FromArgb(0, 255, 0)); // зелёный } else if (stat == DungeonStats.Power) { return(Color.FromArgb(255, 255, 0)); // жёлтый } else if (stat == DungeonStats.Mobility) { return(Color.FromArgb(139, 0, 255)); // фиолетовый } else if (stat == DungeonStats.Luck) { return(Color.FromArgb(255, 192, 203)); // розовый } return(Color.FromArgb(50, 50, 50)); // серый }
/// <summary>Название характеристики</summary> /// <param name="stat">Характеристика</param> /// <returns>Текст</returns> public static string Name(DungeonStats stat) { if (stat == DungeonStats.MaxHealth) { return("Макс. здоровье"); } else if (stat == DungeonStats.MaxEnergy) { return("Макс. энергия"); } else if (stat == DungeonStats.Intelligence) { return("Интеллект"); } else if (stat == DungeonStats.Regeneration) { return("Регенерация"); } else if (stat == DungeonStats.Restore) { return("Восстановление"); } else if (stat == DungeonStats.Speed) { return("Скорость"); } else if (stat == DungeonStats.Power) { return("Сила"); } else if (stat == DungeonStats.Mobility) { return("Ловкость"); } else if (stat == DungeonStats.Luck) { return("Удача"); } return("error"); }