private void BeginShieldDegradation() { oldLightSettings = currentLightSettings.Clone(); targetLightSettings = shieldEmptyLightSettings.Clone(); targetLightSettings.transitionDuration = maxShieldDuration; transitionTiming = 0f; }
public void ActivateShadow() { if (CanActivate()) { // enable the dark form ShadowForm.SetActive(true); // disable the collider on the player var spriteRenderer = player.GetComponent <SpriteRenderer>(); if (spriteRenderer != null) { spriteRenderer.enabled = false; } var playerCollider = player.GetComponent <PolygonCollider2D>(); if (playerCollider != null) { // playerCollider.enabled = false; } oldLightSettings = currentLightSettings.Clone(); targetLightSettings = shadowLightSettings.Clone(); transitionTiming = 0f; if (shieldActive) { DeactivateShield(); } shadowActive = true; player.gameObject.layer = 14; player.GetComponent <PlayerMovement>().moveSpeed = player.GetComponent <PlayerMovement>().darkMovespeed; } }
// Start is called before the first frame update void Start() { shieldCapacity = maxCapacity; oldLightSettings = defaultLightSettings.Clone(); currentLightSettings = defaultLightSettings.Clone(); targetLightSettings = defaultLightSettings.Clone(); shieldCollider.enabled = false; Physics2D.IgnoreLayerCollision(10, 12); Physics2D.IgnoreLayerCollision(11, 12); // debug only sprite = shieldCollider.GetComponent <SpriteRenderer>(); sprite.enabled = false; shieldTransform = shieldCollider.gameObject.transform; shieldMaxWidth = shieldTransform.localScale.x; shieldMinWidth = shieldMaxWidth * shieldMinWidthPercent; shieldMaxDist = shieldTransform.localPosition.y; shieldMinDist = shieldMaxDist * shieldMinDistPercent; player = GameObject.FindGameObjectWithTag("Player").GetComponent <Player>(); ShadowForm.SetActive(false); shadowCapacity = 1f; }
// after burning the shield out? private void ReturnToDefault() { oldLightSettings = currentLightSettings.Clone(); targetLightSettings = defaultLightSettings.Clone(); transitionTiming = 0f; shadowActive = false; shieldActive = false; }
public LightPair Clone() { var clone = new LightPair(); clone.cone = cone.Clone(); clone.point = point.Clone(); clone.transitionDuration = transitionDuration; return(clone); }
public void DeactivateShield() { //DeactivateShadow(); shieldActive = false; shieldCollider.enabled = false; sprite.enabled = false; oldLightSettings = currentLightSettings.Clone(); targetLightSettings = defaultLightSettings.Clone(); targetLightSettings.transitionDuration = (1 - shieldCapacity) / maxCapacity * (shieldRechargeTime + shieldRechargeInitialDelay); transitionTiming = 0f; if (shieldEmptyFX != null) { PlayFX(transform.position, LampFXType.LampFX_ShieldEmpty); } }
public void ActivateShield() { if (CanActivate()) { var sourcelightSettings = shieldLightSettings.Clone(); currentLightSettings.cone.innerMaxAngle = Mathf.Lerp(sourcelightSettings.cone.innerMaxAngle, shieldEmptyLightSettings.cone.innerMaxAngle, 1 - shieldCapacity); currentLightSettings.cone.outerMaxAngle = Mathf.Lerp(sourcelightSettings.cone.outerMaxAngle, shieldEmptyLightSettings.cone.outerMaxAngle, 1 - shieldCapacity); currentLightSettings.cone.innerMaxRadius = Mathf.Lerp(sourcelightSettings.cone.innerMaxRadius, shieldEmptyLightSettings.cone.innerMaxRadius, 1 - shieldCapacity); currentLightSettings.cone.outerMaxRadius = Mathf.Lerp(sourcelightSettings.cone.outerMaxRadius, shieldEmptyLightSettings.cone.outerMaxRadius, 1 - shieldCapacity); currentLightSettings.cone.maxIntensity = Mathf.Lerp(sourcelightSettings.cone.maxIntensity, shieldEmptyLightSettings.cone.maxIntensity, 1 - shieldCapacity); currentLightSettings.cone.color = Color.Lerp(sourcelightSettings.cone.color, shieldEmptyLightSettings.cone.color, 1 - shieldCapacity); currentLightSettings.point.innerMaxAngle = Mathf.Lerp(sourcelightSettings.point.innerMaxAngle, shieldEmptyLightSettings.point.innerMaxAngle, 1 - shieldCapacity); currentLightSettings.point.outerMaxAngle = Mathf.Lerp(sourcelightSettings.point.outerMaxAngle, shieldEmptyLightSettings.point.outerMaxAngle, 1 - shieldCapacity); currentLightSettings.point.innerMaxRadius = Mathf.Lerp(sourcelightSettings.point.innerMaxRadius, shieldEmptyLightSettings.point.innerMaxRadius, 1 - shieldCapacity); currentLightSettings.point.outerMaxRadius = Mathf.Lerp(sourcelightSettings.point.outerMaxRadius, shieldEmptyLightSettings.point.outerMaxRadius, 1 - shieldCapacity); currentLightSettings.point.maxIntensity = Mathf.Lerp(sourcelightSettings.point.maxIntensity, shieldEmptyLightSettings.point.maxIntensity, 1 - shieldCapacity); currentLightSettings.point.color = Color.Lerp(sourcelightSettings.point.color, shieldEmptyLightSettings.point.color, 1 - shieldCapacity); transitionTiming = 0f; shieldActive = true; shieldCollider.enabled = true; sprite.enabled = true; localMaxShieldDuration = maxShieldDuration * shieldCapacity / maxCapacity; oldLightSettings = currentLightSettings.Clone(); targetLightSettings = shieldEmptyLightSettings.Clone(); targetLightSettings.transitionDuration = localMaxShieldDuration; elapsedShieldDownTime = 0f; if (shieldTriggerFX != null) { PlayFX(transform.position, LampFXType.LampFX_Activate); } } }
public void DeactivateShadow() { if (shadowActive) { ShadowForm.SetActive(false); var playerCollider = player.GetComponent <PolygonCollider2D>(); if (playerCollider != null) { playerCollider.enabled = true; } var spriteRenderer = player.GetComponent <SpriteRenderer>(); if (spriteRenderer != null) { spriteRenderer.enabled = true; } oldLightSettings = shieldEmptyLightSettings.Clone(); targetLightSettings = defaultLightSettings.Clone(); ReturnToDefault(); elapsedShadowDownTime = 0f; player.gameObject.layer = 9; player.GetComponent <PlayerMovement>().moveSpeed = player.GetComponent <PlayerMovement>().lightMovespeed; } }