def draw_dialog(dialog_id): _dialog = get_dialog(dialog_id) _last_message = get_last_message(dialog_id) _x = numbers.clip(MAP_WINDOW_SIZE[0]/2-len(_last_message['text'])/2, 3, 100) _y = 10 _line_of_sight = drawing.diag_line(LIFE[_dialog['started_by']]['pos'], LIFE[_dialog['target']]['pos']) locks.unlock('camera_free') if len(_line_of_sight)<=1: _center_pos = LIFE[_dialog['started_by']]['pos'] else: _center_pos = list(_line_of_sight[len(_line_of_sight)/2]) _center_pos.append(2) if SETTINGS['controlling'] == _dialog['started_by']: _target = _dialog['target'] else: _target = _dialog['started_by'] _target_portrait = lfe.draw_life_icon(LIFE[_target]) _lines = [] gfx.camera_track(_center_pos) gfx.blit_string(_x-2, _y-2, ' '.join(LIFE[_target]['name']), 'overlay', fore_color=_target_portrait[1]) gfx.blit_string(_x-2, _y, _target_portrait[0], 'overlay', fore_color=_target_portrait[1])#, back_color=tcod.darkest_gray) _text = _last_message['text'] _y_mod = 0 while _text: _x = MAP_WINDOW_SIZE[0]/2-len(_text[:MAP_WINDOW_SIZE[0]-4])/2 gfx.blit_string(_x, _y+_y_mod, _text[:MAP_WINDOW_SIZE[0]-4], 'overlay') _text = _text[MAP_WINDOW_SIZE[0]-4:] _y_mod += 1 for choice in _dialog['choices']: _text = choice['text'][choice['text'].index('\"')+1:choice['text'].index('\"')-1] if not _text.startswith('>'): _text = '> '+_text _n_x = MAP_WINDOW_SIZE[0]/2-len(_text)/2 if _n_x < _x: _x = _n_x for choice in _dialog['choices']: _text = choice['text'][choice['text'].index('\"')+1:choice['text'].index('\"')-1] if _dialog['cursor_index'] == _dialog['choices'].index(choice): _text = '> '+_text _lines.append(_text) for line in _lines: gfx.blit_string(_x, _y+3, line, 'overlay')#, back_color=tcod.darkest_gray) _y += 2
def draw_event(): _event = None for event in EVENTS: if not event['delay']: _event = event break if not _event: return False locks.unlock('camera_free') gfx.camera_track(_event['pos']) if len(event['text'])>=MAP_WINDOW_SIZE[0]-1: _lines = list(_event['text'].partition(',')) if not len(_lines[1]): _lines = list(_event['text'].partition('.')) if len(_lines[1]): _lines.pop(1) else: lines = ['????'] else: _lines = [_event['text']] for line in _lines: if len(line)>=MAP_WINDOW_SIZE[0]-1: _lines = ['The most annoying error.'] break _i = 0 for line in _lines: _half = len(line)/2 _x = bad_numbers.clip((MAP_WINDOW_SIZE[0]/2)-_half, 0, MAP_WINDOW_SIZE[0]-len(line)-1) gfx.blit_string(_x, 10+_i, line, 'overlay') _i += 1 return True
def draw_dialog(dialog_id): _dialog = get_dialog(dialog_id) _last_message = get_last_message(dialog_id) _x = bad_numbers.clip( MAP_WINDOW_SIZE[0] / 2 - len(_last_message['text']) / 2, 3, 100) _y = 10 _line_of_sight = drawing.diag_line(LIFE[_dialog['started_by']]['pos'], LIFE[_dialog['target']]['pos']) locks.unlock('camera_free') if len(_line_of_sight) <= 1: _center_pos = LIFE[_dialog['started_by']]['pos'] else: _center_pos = list(_line_of_sight[len(_line_of_sight) / 2]) _center_pos.append(2) if SETTINGS['controlling'] == _dialog['started_by']: _target = _dialog['target'] else: _target = _dialog['started_by'] _target_portrait = lfe.draw_life_icon(LIFE[_target]) _lines = [] gfx.camera_track(_center_pos) gfx.blit_string(_x - 2, _y - 2, ' '.join(LIFE[_target]['name']), 'overlay', fore_color=_target_portrait[1]) gfx.blit_string( _x - 2, _y, _target_portrait[0], 'overlay', fore_color=_target_portrait[1]) #, back_color=tcod.darkest_gray) _text = _last_message['text'] _y_mod = 0 while _text: _x = MAP_WINDOW_SIZE[0] / 2 - len(_text[:MAP_WINDOW_SIZE[0] - 4]) / 2 gfx.blit_string(_x, _y + _y_mod, _text[:MAP_WINDOW_SIZE[0] - 4], 'overlay') _text = _text[MAP_WINDOW_SIZE[0] - 4:] _y_mod += 1 for choice in _dialog['choices']: _text = choice['text'][choice['text'].index('\"') + 1:choice['text'].index('\"') - 1] if not _text.startswith('>'): _text = '> ' + _text _n_x = MAP_WINDOW_SIZE[0] / 2 - len(_text) / 2 if _n_x < _x: _x = _n_x for choice in _dialog['choices']: _text = choice['text'][choice['text'].index('\"') + 1:choice['text'].index('\"') - 1] if _dialog['cursor_index'] == _dialog['choices'].index(choice): _text = '> ' + _text _lines.append(_text) for line in _lines: gfx.blit_string(_x, _y + 3, line, 'overlay') #, back_color=tcod.darkest_gray) _y += 2