Пример #1
0
        // Token: 0x060010BE RID: 4286
        private void UpdateRelicViewHUDState(CollectibleEntityView view)
        {
            // MOD: remove artifact views that are moved off the map
            if (view.Entity.GetComponent(10).Position2D.X > Fixed64.FromInt(100000))
            {
                this.DespawnAndRemoveRelicView(view.Entity, view);
                return;
            }
            // MOD

            SimStateFrame currentSimFrame = ShipbreakersMain.CurrentSimFrame;

            if (currentSimFrame == null)
            {
                return;
            }
            RelicState relicState = currentSimFrame.FindObject <RelicState>(view.Entity);

            if (relicState == null)
            {
                return;
            }
            CollectibleState collectibleState = currentSimFrame.FindObject <CollectibleState>(view.Entity);

            if (collectibleState == null)
            {
                return;
            }
            DetectionState visibility = relicState.Visibility;

            if (ReplayPanelController.RevealAll || SimController.sSpectatorModeEnabled)
            {
                visibility = DetectionState.Sensed;
            }
            bool flag = relicState.HasTimer && relicState.TimerDirection == TimerDirection.Countup && !relicState.TimerCompleted;

            if (collectibleState.AvailableForCollection)
            {
                this.UpdateRelicDefaultIconSprite(view, visibility, flag);
            }
            else
            {
                this.UpdateRelicAttachedIconSprite(view, DetectionState.Sensed, false);
            }
            this.UpdateRelicIconTrackOnScreenEdge(view, !flag);
            bool flag2 = view.ShouldShowIcon();

            view.ShowIcon(flag2);
            if (!flag2 && this.mShowingTooltipForEntity != Entity.None && this.mShowingTooltipForEntity == view.Entity)
            {
                this.mShowingTooltipForEntity = Entity.None;
                UISystem.HideTooltip();
            }
        }
Пример #2
0
        public void OnPickup(Player player)
        {
            if (_collectibleState != CollectibleState.Available)
            {
                return;
            }

            player.EquipGun(Preset.Gun.Name);

            _collectibleState = CollectibleState.Unavailable;
            _pickupHitbox.setEnabled(false);
            _collisionHitbox.setEnabled(false);
            destroy();
        }
Пример #3
0
    private void CollectibleObtained(GameObject playerObject)
    {
        this.state = CollectibleState.Collected;

        float pitchShift = Random.Range(-0.5f, 0.5f);

        this.audio.pitch += pitchShift;
        this.audio.Play();

        PlayerManager player = playerObject.GetComponent <PlayerManager>();

        if (player != null)
        {
            player.CollectibleObtained();
        }
    }
Пример #4
0
        private void SetupPickupHitbox()
        {
            setTag(Tags.Collectible);

            if (_collectibleState == CollectibleState.Unavailable)
            {
                return;
            }

            _collectibleState       = CollectibleState.Available;
            _pickupHitbox           = addComponent(new BoxCollider());
            _pickupHitbox.isTrigger = true;
            Flags.setFlagExclusive(ref _pickupHitbox.physicsLayer, Layers.Interactables);

            var interactable = addComponent(new InteractableComponent
            {
                OnInteract = player => OnPickup(player)
            });
        }
Пример #5
0
        public void FallIntoPit(Entity pitEntity)
        {
            Velocity          = Vector2.Zero;
            _acceleration     = Vector2.Zero;
            _collectibleState = CollectibleState.Unavailable;

            UpdateHighlightRendering();

            _mover.setEnabled(false);
            _collisionHitbox.setEnabled(false);

            if (_pickupHitbox != null)
            {
                _pickupHitbox.setEnabled(false);
                _pickupHitbox.collidesWithLayers = 0;
                _pickupHitbox.physicsLayer       = 0;
            }

            var easeType              = EaseType.CubicOut;
            var durationSeconds       = 1.25f;
            var targetScale           = 0.2f;
            var targetRotationDegrees = 180;
            var targetColor           = new Color(0, 0, 0, 0.25f);
            var destination           = pitEntity.localPosition;

            _hoverTween?.stop(true);

            this.tweenPositionTo(destination, durationSeconds)
            .setEaseType(easeType)
            .setCompletionHandler(_ => this.setEnabled(false))
            .start();
            this.tweenRotationDegreesTo(targetRotationDegrees, durationSeconds)
            .setEaseType(easeType)
            .start();
            this.tweenScaleTo(targetScale, durationSeconds)
            .setEaseType(easeType)
            .start();
            _sprite.tweenColorTo(targetColor, durationSeconds)
            .setEaseType(easeType)
            .start();
        }