示例#1
0
        public void AddMissile(IMonster target, string arrow)
        {
            BasicMissileControler controler = new TraceMissileControler(this, target as LiveMonster);
            Missile mi = new Missile(arrow, Position.X, Position.Y, controler);

            BattleManager.Instance.MissileQueue.Add(mi);
        }
示例#2
0
        private void CheckFight(LiveMonster nearestEnemy)
        {
            if (monster.RealRange <= GameConstants.MaxMeleeAtkRange)
            {
                monster.HitTarget(nearestEnemy, true); //近战
                BattleManager.Instance.EffectQueue.Add(new ActiveEffect(EffectBook.GetEffect(monster.Arrow), nearestEnemy, false));
            }
            else
            {
                BasicMissileControler controler = new TraceMissileControler(monster, nearestEnemy);
                Missile mi = new Missile(monster.Arrow, monster.Position.X, monster.Position.Y, controler);
                BattleManager.Instance.MissileQueue.Add(mi);
            }

            if (monster.RealSpd != 0) //会返回一些ats
            {
                monster.AddActionRate((float)(monster.RealSpd) * GameConstants.SpdToRate / 100);
            }
            monster.MovRound = 0;
        }