// While collider (presumably player) is within, handle the exchange of color. void OnTriggerStay2D(Collider2D c) { if (isReady) { if ((player != null) && (c.gameObject.Equals(player))) { if (!playerScript.isLit) { vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x)))); vortexScript.setColor(characterRGB); if (playerScript.r < characterRGB.r) { dR = characterRGB.r / 500f; } else { dR = -characterRGB.r / 800f; } if (playerScript.g < characterRGB.g) { dG = characterRGB.g / 500f; } else { dG = -characterRGB.g / 800f; } if (playerScript.b < characterRGB.b) { dB = characterRGB.b / 500f; } else { dB = -characterRGB.b / 800f; } shed(); // Shed character's color. // Give player new color + deltaColor. Color newColor = new Color(playerScript.r + dR, playerScript.g + dG, playerScript.b + dB); playerScript.setColor(newColor); vortexScript.isFading = true; // Color-absorption cone sprite helper bool. } else { if (!isDead) { isHealed = true; dialogue.state = dialogue.HEALED; vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x)))); vortexScript.setColor(characterRGB); if (lifeColor.r < characterRGB.r) { dR = (characterRGB.r - lifeColor.r) * 0.1f; } if (lifeColor.g < characterRGB.g) { dG = (characterRGB.g - lifeColor.g) * 0.1f; } if (lifeColor.b < characterRGB.b) { dB = (characterRGB.b - lifeColor.b) * 0.1f; } // Give player new color + deltaColor. Color newColor = new Color(lifeColor.r + dR, lifeColor.g + dG, lifeColor.b + dB); setColor(newColor); vortexScript.isFading = true; // Color-absorption cone sprite helper bool. } else { vortexScript.setAngle(new Vector3(0, 0, (Mathf.Atan2(player.transform.position.y - transform.position.y, player.transform.position.x - transform.position.x)))); vortexScript.setColor(Color.gray); if (lifeColor.r < Color.gray.r) { dR = (Color.gray.r - lifeColor.r) * 0.1f; } if (lifeColor.g < Color.gray.g) { dG = (Color.gray.g - lifeColor.g) * 0.1f; } if (lifeColor.b < Color.gray.b) { dB = (Color.gray.b - lifeColor.b) * 0.1f; } // Give player new color + deltaColor. Color newColor = new Color(lifeColor.r + dR, lifeColor.g + dG, lifeColor.b + dB); setColor(newColor); vortexScript.isFading = true; // Color-absorption cone sprite helper bool. } } } } }