Ejemplo n.º 1
0
 /// <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);
 }
Ejemplo n.º 2
0
 /// <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);
     }
 }
Ejemplo n.º 3
0
        /// <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();
        }
Ejemplo n.º 4
0
 /// <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);
 }
Ejemplo n.º 5
0
 /// <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));        // серый
 }
Ejemplo n.º 6
0
 /// <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");
 }