示例#1
0
        public void UpdateAttackTarget()
        {
            if (_attackTgt == null)
            {
                return;
            }

            // get ON emitters
            List <MiroV1BulletEmitterBase> _onEmitters = GetONEmitters();

            // remove emitters recorded in target blackdots
            foreach (MiroV1BulletEmitterBase em in _onEmitters)
            {
                // remove from black dot
                foreach (BlackDotSlot bds in _attackTgt._BlackDots)
                {
                    bds._blackDot.RemoveAttacker(em);
                }
            }

            foreach (BlackDotSlot bds in _attackTgt._BlackDots)
            {
                bds._blackDot.UpdateAttackersInfo();
            }

            // get target blackdots dictionary and sorted keys
            Dictionary <int, List <MiroV1BlackDotBase> > dicBkDots =
                new Dictionary <int, List <MiroV1BlackDotBase> >();
            List <int> keys = new List <int> ();

            _attackTgt.GetBKDictionary(_onEmitters, ref dicBkDots, ref keys);

            // aim each emitter to nearest black dot
            foreach (MiroV1BulletEmitterBase em in _onEmitters)
            {
                // add to black dot
                _attackTgt.ConfigTargetBlackDotTFFor(em, keys, dicBkDots);
            }
        }