private static void ReviveObject(GridPosition position, Color color, string teamName)
        {
            lock (GridChangeLock)
            {
                GameObject ent = GetObjectAt(position);
                ent.transform.position            = GridPositionToWorld(position);
                aliveGrid[position.X, position.Z] = true;
                if (colorGrid[position.X, position.Z].HasValue)
                {
                    float a = (color.a + colorGrid[position.X, position.Z].Value.a) / 2.0f;
                    float r = (color.r + colorGrid[position.X, position.Z].Value.r) / 2.0f;
                    float g = (color.g + colorGrid[position.X, position.Z].Value.g) / 2.0f;
                    float b = (color.b + colorGrid[position.X, position.Z].Value.b) / 2.0f;
                    colorGrid[position.X, position.Z] = new Color(r, g, b, a);
                }
                else
                {
                    colorGrid[position.X, position.Z] = color;
                }

                EntBehaviorManager manager = ent.GetComponent <EntBehaviorManager>();

                if (StaticController.GlobalEnableColorBlend && StaticController.GlobalColorBlendDistance > 1)
                {
                    manager.Reset(teamName, GetColorInRegion(position, StaticController.GlobalColorBlendDistance));
                }
                else
                {
                    manager.Reset(teamName, color);
                }
            }
        }
        private static void ReviveObject(GridPosition position, Color color, string teamName)
        {
            lock (GridChangeLock)
            {
                GameObject ent = GetObjectAt(position);
                ent.transform.position            = GridPositionToWorld(position);
                aliveGrid[position.X, position.Z] = true;
                colorGrid[position.X, position.Z] = color;

                EntBehaviorManager manager = ent.GetComponent <EntBehaviorManager>();

                if (StaticController.GlobalEnableColorBlend && StaticController.GlobalColorBlendDistance > 1)
                {
                    manager.Reset(teamName, GetColorInRegion(position, StaticController.GlobalColorBlendDistance));
                }
                else
                {
                    manager.Reset(teamName, color);
                }
            }
        }