Пример #1
0
        public void Tick(World world)
        {
            if (self.Destroyed)
            {
                world.AddFrameEndTask(w => w.Remove(this));
            }

            if (world.LocalPlayer == null || !self.IsInWorld || self.Destroyed)
            {
                return;
            }

            // Can be granted at runtime via a crate, so can't cache
            var cloak = self.TraitOrDefault <Cloak>();

            if (firstTick)
            {
                huf       = self.TraitOrDefault <HiddenUnderFog>();
                spy       = self.TraitOrDefault <Spy>();
                firstTick = false;
            }

            var hasGps    = (watcher != null && (watcher.Granted || watcher.GrantedAllies));
            var hasDot    = (huf != null && !huf.IsVisible(self, self.World.RenderPlayer));
            var dotHidden = (cloak != null && cloak.Cloaked) || (spy != null && spy.Disguised);

            show = hasGps && hasDot && !dotHidden;
        }
Пример #2
0
        public void Tick(World world)
        {
            if (self.Destroyed)
                world.AddFrameEndTask(w => w.Remove(this));

            if (world.LocalPlayer == null || !self.IsInWorld || self.Destroyed)
                return;

            // Can be granted at runtime via a crate, so can't cache
            var cloak = self.TraitOrDefault<Cloak>();

            if (firstTick)
            {
                huf = self.TraitOrDefault<HiddenUnderFog>();
                spy = self.TraitOrDefault<Spy>();
                firstTick = false;
            }

            var hasGps = (watcher != null && (watcher.Granted || watcher.GrantedAllies));
            var hasDot = (huf != null && !huf.IsVisible(self, self.World.RenderPlayer));
            var dotHidden = (cloak != null && cloak.Cloaked) || (spy != null && spy.Disguised);

            show = hasGps && hasDot && !dotHidden;
        }