def light(x, y, brightness, r=1., g=1., b=1., light_map=None): if '--no-fx' in sys.argv: return if light_map: _active_light_maps = zones.get_active_light_maps() _light_map = _active_light_maps[light_map] else: _light_map = post_processing.get_light_map() _width, _height = zones.get_active_size() for _x, _y in shapes.circle(x, y, brightness): if _x < 0 or _x >= _width or _y < 0 or _y >= _height: continue _brightness = 1 - ((numbers.float_distance((x, y), (_x, _y)) - 1.0) / float(brightness)) _r = numbers.clip(2 * (_brightness * r), 1, 4) _g = numbers.clip(2 * (_brightness * g), 1, 4) _b = numbers.clip(2 * (_brightness * b), 1, 4) _min_r = min(_light_map[0][_y, _x], _r) _max_r = max(_light_map[0][_y, _x], _r) _min_g = min([_light_map[1][_y, _x], _g]) _max_g = max([_light_map[1][_y, _x], _g]) _min_b = min([_light_map[2][_y, _x], _b]) _max_b = max([_light_map[2][_y, _x], _b]) _light_map[0][_y, _x] = numbers.interp(_min_r, _max_r, .5) _light_map[1][_y, _x] = numbers.interp(_min_g, _max_g, .5) _light_map[2][_y, _x] = numbers.interp(_min_b, _max_b, .5)
def create(): display.create_surface('background') display.create_surface('text') display.blit_background('background') roll() NOISE = tcod.noise_new(2, h=tcod.NOISE_DEFAULT_HURST, random=tcod.random_new()) for y in range(0, constants.WINDOW_HEIGHT): for x in range(0, constants.WINDOW_WIDTH): _noise_values = [(ZOOM * x / (constants.WINDOW_WIDTH)), (ZOOM * y / (constants.WINDOW_HEIGHT))] _height = 1 - tcod.noise_get_turbulence(NOISE, _noise_values, tcod.NOISE_SIMPLEX) _dist_to_crosshair = 30 _crosshair_mod = abs((_dist_to_crosshair - 1)) if _height > .4: _height = (_height - .4) / .4 _r, _g, _b = numbers.clip(30 * _height, 20, 255), 50 * _height, numbers.clip( 30 * _height, 30, 255) else: _r, _g, _b = 20, 0, 30 _r += 30 # * _crosshair_mod if x < SIDEBAR_WIDTH: if y < 7: _r = numbers.interp(_r, .0, .4) _g = numbers.interp(_g, .0, .4) _b = numbers.interp(_b, .0, .4) elif y < 43: _r = numbers.interp(_r, .0, .6) _g = numbers.interp(_g, .0, .6) _b = numbers.interp(_b, .0, .6) elif y < constants.WINDOW_HEIGHT: _r = numbers.interp(_r, 1, .7) _g = numbers.interp(_g, 1, .7) _b = numbers.interp(_b, 1, .7) else: _r = (int(round(_r * 1.0))) _g = (int(round(_g * .2))) _b = (int(round(_b * .2))) if x > SIDEBAR_WIDTH + 3 and x < constants.WINDOW_WIDTH - 6: if y > 18 and y < 36: _r = numbers.interp(_r, 255, .1) _g = numbers.interp(_g, 255, .1) _b = numbers.interp(_b, 255, .1) if x > SIDEBAR_WIDTH + 3 and x < constants.WINDOW_WIDTH - 6: if y > 10 and y < 16: _r = numbers.interp(_r, .0, .4) _g = numbers.interp(_g, .0, .4) _b = numbers.interp(_b, .0, .4) display._set_char('background', x, y, ' ', (0, 0, 0), (_r, _g, _b))
def create(): display.create_surface('background') display.create_surface('text') display.blit_background('background') roll() NOISE = tcod.noise_new(2, h=tcod.NOISE_DEFAULT_HURST, random=tcod.random_new()) for y in range(0, constants.WINDOW_HEIGHT): for x in range(0, constants.WINDOW_WIDTH): _noise_values = [(ZOOM * x / (constants.WINDOW_WIDTH)), (ZOOM * y / (constants.WINDOW_HEIGHT))] _height = 1 - tcod.noise_get_turbulence(NOISE, _noise_values, tcod.NOISE_SIMPLEX) _dist_to_crosshair = 30 _crosshair_mod = abs((_dist_to_crosshair - 1)) if _height > .4: _height = (_height - .4) / .4 _r, _g, _b = numbers.clip(30 * _height, 20, 255), 50 * _height, numbers.clip(30 * _height, 30, 255) else: _r, _g, _b = 20, 0, 30 _r += 30# * _crosshair_mod if x < SIDEBAR_WIDTH: if y < 7: _r = numbers.interp(_r, .0, .4) _g = numbers.interp(_g, .0, .4) _b = numbers.interp(_b, .0, .4) elif y < 43: _r = numbers.interp(_r, .0, .6) _g = numbers.interp(_g, .0, .6) _b = numbers.interp(_b, .0, .6) elif y < constants.WINDOW_HEIGHT: _r = numbers.interp(_r, 1, .7) _g = numbers.interp(_g, 1, .7) _b = numbers.interp(_b, 1, .7) else: _r = (int(round(_r * 1.0))) _g = (int(round(_g * .2))) _b = (int(round(_b * .2))) if x > SIDEBAR_WIDTH + 3 and x < constants.WINDOW_WIDTH - 6: if y > 18 and y < 36: _r = numbers.interp(_r, 255, .1) _g = numbers.interp(_g, 255, .1) _b = numbers.interp(_b, 255, .1) if x > SIDEBAR_WIDTH + 3 and x < constants.WINDOW_WIDTH - 6: if y > 10 and y < 16: _r = numbers.interp(_r, .0, .4) _g = numbers.interp(_g, .0, .4) _b = numbers.interp(_b, .0, .4) display._set_char('background', x, y, ' ', (0, 0, 0), (_r, _g, _b))