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); }
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); } } } }