public void ComputeDrawingParameters()
{
const int lowDangerHalfPeriod = 60;
const int highDangerHalfPeriod = 10;
const int highDangerQuietPeriod = 40;
const float noDangerGlowRadiusOffset = 2f;
const float lowDangerGlowRadiusOffset = 1f;
const float lowDangerGlowRadiusDynamic = 4f;
const float highDangerGlowRadiusOffset = 1f;
const float highDangerGlowRadiusDynamic = 6f;
switch (currentDangerRate)
{
case StoryDanger.None:
glowRadius = noDangerGlowRadiusOffset;
glowColor.r = 0;
glowColor.g = 220;
glowColor.b = 0;
break;
case StoryDanger.Low:
glowColor.r = 242;
glowColor.g = 185;
glowColor.b = 0;
if (lowDangerDrawingTick < lowDangerHalfPeriod)
{
glowRadius = lowDangerGlowRadiusOffset + lowDangerGlowRadiusDynamic * ((float)lowDangerDrawingTick / (float)lowDangerHalfPeriod);
}
else if (lowDangerDrawingTick < 2 * lowDangerHalfPeriod)
{
glowRadius = lowDangerGlowRadiusOffset + lowDangerGlowRadiusDynamic * (1f - ((float)(lowDangerDrawingTick - lowDangerHalfPeriod) / (float)lowDangerHalfPeriod));
}
else
{
lowDangerDrawingTick = 0;
}
lowDangerDrawingTick++;
break;
case StoryDanger.High:
glowColor.r = 220;
glowColor.g = 0;
glowColor.b = 0;
if (highDangerDrawingTick < highDangerHalfPeriod)
{
glowRadius = highDangerGlowRadiusOffset + highDangerGlowRadiusDynamic * ((float)highDangerDrawingTick / (float)highDangerHalfPeriod);
}
else if (highDangerDrawingTick < 2 * highDangerHalfPeriod)
{
glowRadius = highDangerGlowRadiusOffset + highDangerGlowRadiusDynamic * (1 - ((float)(highDangerDrawingTick - highDangerHalfPeriod) / (float)highDangerHalfPeriod));
}
else if (highDangerDrawingTick < highDangerQuietPeriod)
{
glowRadius = 0;
}
else
{
highDangerDrawingTick = 0;
}
highDangerDrawingTick++;
break;
}
}