protected override bool Freeze(float endTime, bool inIce)
        {
            bool frozen = this.frozen;

            if (!base.Freeze(endTime, inIce))
            {
                return(false);
            }

            if (!frozen)
            {
                if (animatorLink != null)
                {
                    animatorLink.enabled = false;
                }

                animator.enabled     = false;
                locomotionWasEnabled = false;

                if (locomotion.enabled)
                {
                    locomotionWasEnabled = true;
                    locomotion.enabled   = false;
                }

                frozenCreatures.Add(this);
            }

            if (ecoTarget != null)
            {
                ecoTarget.enabled = !inIce;
            }

            float lifeTime = (endTime == float.PositiveInfinity) ? -1f : (endTime - Time.time);

            if (iceOverlay != null)
            {
                iceOverlay.RemoveOverlay();
            }

            iceOverlay = modelRoot.AddComponent <VFXOverlayMaterial>();

            iceOverlay.ApplyAndForgetOverlay(iceMaterial, "VFXOverlay: Frozen", Color.clear, lifeTime, null, CameraEvent.AfterForwardAlpha);

            return(true);
        }
Exemplo n.º 2
0
        private void PlayScanFX()
        {
            PDAScanner.ScanTarget scanTarget = PDAScanner.scanTarget;

            if (scanTarget.isValid)
            {
                if (scanFX != null)
                {
                    if (scanFX.gameObject != scanTarget.gameObject)
                    {
                        StopScanFX();
                        scanFX = scanTarget.gameObject.AddComponent <VFXOverlayMaterial>();
                        bool flag = scanTarget.gameObject.GetComponent <Creature>() != null;
                        if (flag)
                        {
                            scanFX.ApplyOverlay(scanMaterialOrganicFX, "VFXOverlay: Scanning", false, null);
                        }
                        else
                        {
                            scanFX.ApplyOverlay(scanMaterialCircuitFX, "VFXOverlay: Scanning", false, null);
                        }
                    }
                }
                else
                {
                    scanFX = scanTarget.gameObject.AddComponent <VFXOverlayMaterial>();
                    bool flag2 = scanTarget.gameObject.GetComponent <Creature>() != null;
                    if (flag2)
                    {
                        scanFX.ApplyOverlay(scanMaterialOrganicFX, "VFXOverlay: Scanning", false, null);
                    }
                    else
                    {
                        scanFX.ApplyOverlay(scanMaterialCircuitFX, "VFXOverlay: Scanning", false, null);
                    }
                }
            }
        }