Exemplo n.º 1
0
        /// <summary>Событие таймера размышления</summary>
        private void m_thinking_timer_Tick(object sender, EventArgs e)
        {
            if (DungeonLevel != DungeonLevel.Form.Hero.DungeonLevel)
            {
                return;
            }

            Point total_connection_point_where_is_monster;

            if (m_is_attached_to_room)
            {
                total_connection_point_where_is_monster = m_connection_point_attached;
            }
            else
            {
                total_connection_point_where_is_monster = DungeonLevel.GetConnectionPointLocationFromGlobalLocation(Location.Point);
            }

            m_target_location = DungeonLevel.GetGlobalLocationRandomCellInConnectionPointNotWall(total_connection_point_where_is_monster);

            m_action_status = DungeoMonsterActionStatus.MovingToCell;

            m_thinking_timer.Stop();
            m_thinking_timer_is_working = false;

            Random random = new Random();

            m_moving_timer.Interval = 100 * random.Next(10, 51);
            m_moving_timer.Start();
            m_moving_timer_is_working = true;
        }
Exemplo n.º 2
0
 /// <summary>Монстр переходит в состояние размышления</summary>
 public void StartThinking()
 {
     if (m_action_status != DungeoMonsterActionStatus.Thinking)
     {
         m_action_status = DungeoMonsterActionStatus.Thinking;
         m_thinking_timer.Start();
         m_thinking_timer_is_working = true;
     }
 }
Exemplo n.º 3
0
 /// <summary>Монстр переходит в нулевое состояние</summary>
 public void StopThinking()
 {
     if (m_action_status != DungeoMonsterActionStatus.AFK)
     {
         m_action_status = DungeoMonsterActionStatus.AFK;
         m_thinking_timer.Stop();
         m_thinking_timer_is_working = false;
         m_moving_timer.Stop();
         m_moving_timer_is_working = false;
     }
 }
Exemplo n.º 4
0
        /// <summary>Создаёт монстра</summary>
        /// <param name="texture">Текстура монстра</param>
        /// <param name="name">Имя монстра</param>
        /// <param name="is_boss">Является ли монстр боссом</param>
        /// <param name="max_health">Здоровье монстра</param>
        /// <param name="regeneration">Регенерация (восстановление здоровья) монстра</param>
        /// <param name="max_energy">Энергия монстра</param>
        /// <param name="restore">Восстановление (возобновление энергии) монстра</param>
        /// <param name="power">Сила монстра</param>
        /// <param name="mobility">Ловкость монстра</param>
        /// <param name="speed">Скорость монстра</param>
        public DungeonMonster(Bitmap texture, string name = "Монстр", bool is_boss = false, double max_health = 50, double regeneration = 0, double max_energy = 25, double restore = 0.5, double power = 5, double mobility = 0, double speed = 1)
            : base(texture, name, max_health, regeneration, max_energy, restore, power, mobility, speed, 0, 0)
        {
            m_is_boss             = is_boss;
            m_is_attached_to_room = false;

            m_action_status = DungeoMonsterActionStatus.AFK;

            m_thinking_timer_is_working = false;
            m_moving_timer_is_working   = false;
            InitializeTimers();
        }
Exemplo n.º 5
0
 /// <summary>Монстр переходит в состояние сражения с героем</summary>
 public void StartFighting()
 {
     m_action_status = DungeoMonsterActionStatus.Fighting;
 }