Material with different color areas, changed at runtime

See image - wanting to create a multi-color material. (Just the colors, ignore the family pictures - these are memories from the film Inside Out btw)

I’m pretty new to these concepts. I want to be able to specify which colors (could be more than 2) are used, and the surface area each color is applied. This must be done at RUNTIME in response to game events, such as changing the color around a collision hit point, OR just programmatically changing the colors and/or areas.