import random
import bpy

#░█████╗░██╗░░░░░████████╗  ░░░░░░░  ██████╗░  ████████╗░█████╗░  ██████╗░██╗░░░██╗███╗░░██╗
#██╔══██╗██║░░░░░╚══██╔══╝  ░░██╗░░  ██╔══██╗  ╚══██╔══╝██╔══██╗  ██╔══██╗██║░░░██║████╗░██║
#███████║██║░░░░░░░░██║░░░  ██████╗  ██████╔╝  ░░░██║░░░██║░░██║  ██████╔╝██║░░░██║██╔██╗██║
#██╔══██║██║░░░░░░░░██║░░░  ╚═██╔═╝  ██╔═══╝░  ░░░██║░░░██║░░██║  ██╔══██╗██║░░░██║██║╚████║
#██║░░██║███████╗░░░██║░░░  ░░╚═╝░░  ██║░░░░░  ░░░██║░░░╚█████╔╝  ██║░░██║╚██████╔╝██║░╚███║
#╚═╝░░╚═╝╚══════╝░░░╚═╝░░░  ░░░░░░░  ╚═╝░░░░░  ░░░╚═╝░░░░╚════╝░  ╚═╝░░╚═╝░╚═════╝░╚═╝░░╚══╝

#░██████╗░█████╗░██████╗░██╗██████╗░████████╗
#██╔════╝██╔══██╗██╔══██╗██║██╔══██╗╚══██╔══╝
#╚█████╗░██║░░╚═╝██████╔╝██║██████╔╝░░░██║░░░
#░╚═══██╗██║░░██╗██╔══██╗██║██╔═══╝░░░░██║░░░
#██████╔╝╚█████╔╝██║░░██║██║██║░░░░░░░░██║░░░
#╚═════╝░░╚════╝░╚═╝░░╚═╝╚═╝╚═╝░░░░░░░░╚═╝░░░

skinColourRanges = [
    {"min": {"r": 0.8, "g": 0.81725633, "b": 1, "a": 1}, "max": {"r": 0.8307908, "g": 0.8, "b": 1, "a": 1}},
    {"min": {"r": 1, "g": 0.7411765, "b": 0.9969143, "a": 1}, "max": {"r": 1, "g": 0.7411765, "b": 0.9290943, "a": 1}},
    {"min": {"r": 0.8, "g": 0.87806493, "b": 1, "a": 1}, "max": {"r": 0.8, "g": 0.8408454, "b": 1, "a": 1}},
    {"min": {"r": 1, "g": 0.80334073, "b": 0.7607843, "a": 1}, "max": {"r": 1, "g": 0.7607843, "b": 0.7607843, "a": 1}},
]

eyeColourRanges = [
    {"min": {"r": 0.48235294, "g": 0.85882354, "b": 0.8307632, "a": 1}, "max": {"r": 0.48235294, "g": 0.72335815, "b": 0.85882354, "a": 1}},
    {"min": {"r": 0.56977385, "g": 0.8509804, "b": 0.44313723, "a": 1}, "max": {"r": 0.6431501, "g": 0.8490566, "b": 0.34042364, "a": 1}},
    {"min": {"r": 0.4245283, "g": 0.36967742, "b": 0.35444108, "a": 1}, "max": {"r": 0.5283019, "g": 0.41842294, "b": 0.41117838, "a": 1}},
    {"min": {"r": 0.6153358, "g": 0.5254902, "b": 0.7176471, "a": 1}, "max": {"r": 0.45616764, "g": 0.46082655, "b": 0.6320754, "a": 1}},
    {"min": {"r": 0.83721256, "g": 0.8392157, "b": 0.43137252, "a": 1}, "max": {"r": 0.8392157, "g": 0.7169183, "b": 0.43137252, "a": 1}},
]

def random_colour_from_range(range_list, roll_max):
    index = random.randint(1, roll_max) - 1
    choice = range_list[index]
    r = random.uniform(choice["min"]["r"], choice["max"]["r"])
    g = random.uniform(choice["min"]["g"], choice["max"]["g"])
    b = random.uniform(choice["min"]["b"], choice["max"]["b"])
    return (r, g, b, 1)


skinBsdf = bpy.data.materials["Skin"].node_tree.nodes.get("Principled BSDF")
skinBsdf.inputs["Base Color"].default_value = random_colour_from_range(skinColourRanges, 4)
    
eyeBsdf = bpy.data.materials["Eyes"].node_tree.nodes.get("Principled BSDF")
eyeBsdf.inputs["Base Color"].default_value = random_colour_from_range(eyeColourRanges, 5)
