示例#1
0
        /// <summary>
        /// Start a fight or switch targets forcibly
        /// </summary>
        /// <param name="victim"></param>
        public void StartFighting(IMobile victim)
        {
            var wasFighting = IsFighting();

            if (victim == null)
            {
                victim = this;
            }

            if (victim != GetTarget())
            {
                PrimaryTarget = victim;
            }

            if (!EnemyGroup.Any(enemy => enemy.Item1 == PrimaryTarget))
            {
                EnemyGroup.Add(new Tuple <IMobile, int>(PrimaryTarget, 0));
            }

            if (!wasFighting)
            {
                Processor.StartSubscriptionLoop("Fighting", () => Round.ExecuteRound(this, victim), 50, false);
            }
        }