why does this custom shader not work?

i found this shader on a very old post and it was the thing i just needed, sadly i cant get it to work and i dont know why.

Shader "Global-Mapper" {
	Properties{
		_PeakColor("PeakColor", Color) = (0.8,0.9,0.9,1)
		_PeakLevel("PeakLevel", Float) = 300
		_Level3Color("Level3Color", Color) = (0.75,0.53,0,1)
		_Level3("Level3", Float) = 200
		_Level2Color("Level2Color", Color) = (0.69,0.63,0.31,1)
		_Level2("Level2", Float) = 100
		_Level1Color("Level1Color", Color) = (0.65,0.86,0.63,1)
		_WaterLevel("WaterLevel", Float) = 0
		_WaterColor("WaterColor", Color) = (0.37,0.78,0.92,1)
		_Slope("Slope Fader", Range(0,1)) = 0
	}
		SubShader{
		Tags{ "RenderType" = "Opaque" }
		Fog{ Mode Off }
		Tags{ "LightMode" = "Always" }
		CGPROGRAM
#pragma surface surf Lambert vertex:vert
	struct Input {
		float3 customColor;
		float3 worldPos;
	};
	void vert(inout appdata_full v, out Input o) {
		UNITY_INITIALIZE_OUTPUT(Input, o);
		o.customColor = abs(v.normal.y);

	}
	float _PeakLevel;
	float4 _PeakColor;
	float _Level3;
	float4 _Level3Color;
	float _Level2;
	float4 _Level2Color;
	float _Level1;
	float4 _Level1Color;
	float _Slope;
	float _WaterLevel;
	float4 _WaterColor;
	void surf(Input IN, inout SurfaceOutput o) {
		if (IN.worldPos.y >= _PeakLevel)
			o.Albedo = _PeakColor;
		if (IN.worldPos.y <= _PeakLevel)
			o.Albedo = lerp(_Level3Color, _PeakColor, (IN.worldPos.y - _Level3) / (_PeakLevel - _Level3));
		if (IN.worldPos.y <= _Level3)
			o.Albedo = lerp(_Level2Color, _Level3Color, (IN.worldPos.y - _Level2) / (_Level3 - _Level2));
		if (IN.worldPos.y <= _Level2)
			o.Albedo = lerp(_Level1Color, _Level2Color, (IN.worldPos.y - _WaterLevel) / (_Level2 - _WaterLevel));
		if (IN.worldPos.y <= _WaterLevel)
			o.Albedo = _WaterColor;
		o.Albedo *= saturate(IN.customColor + _Slope);
	}
	ENDCG
	}
		Fallback "Diffuse"
}

i hope that some1 can help me with this

thank you so much, it was indeed the lighting. i removed

Tags{ "LightMode" = "Always" }

and now its fixed and i can go on improving this shader.
ty so much