Ejemplo n.º 1
0
def refresh_damage(current_data):
    #毒圈伤害
    for uid in current_data['player_location'].keys():
        if not in_circle(current_data['player_location'][uid],
                         current_data['safe_circle']):
            current_data['player_blood'][uid] -= current_data['safe_circle'][2]

    # 敌人伤害
    for uid in current_data['player_location'].keys():
        for eid in current_data['player_location'].keys():
            if uid == eid:
                continue
            if cor2dis(current_data['player_location'][uid],
                       current_data['player_location']
                       [eid]) < current_data['player_atk_range'][eid]:
                current_data['player_blood'][uid] -= current_data[
                    'player_damage'][eid]

    # 生死状态
    delhelp = []
    for uid in current_data['player_location'].keys():
        if current_data['player_blood'][uid] <= 0:
            current_data['the_dead'].append(uid)
            delhelp.append(uid)
    for uid in delhelp:
        current_data['player_location'].pop(uid)
        current_data['player_blood_limit'].pop(uid)
        current_data['player_blood'].pop(uid)
        current_data['player_damage'].pop(uid)
        current_data['player_atk_range'].pop(uid)
        current_data['player_vision_range'].pop(uid)
        current_data['player_visible'].pop(uid)
        current_data['player_enemy_location'].pop(uid)
        current_data['player_small_location'].pop(uid)
Ejemplo n.º 2
0
def small_item_show(current_data):
    for uid in current_data['player_location'].keys():
        tmp = []
        for loc in current_data['small_item_location']:
            if cor2dis(current_data['player_location'][uid],
                       loc[1]) < current_data['player_vision_range'][uid]:
                tmp.append(loc)
        current_data['player_small_location'][uid] = tmp
Ejemplo n.º 3
0
def refresh_item_locations(current_data):
    for uid in current_data['player_location'].keys():
        # 小物品更新
        delhelper = []
        for s_item in current_data['small_item_location']:
            if cor2dis(s_item[1], current_data['player_location'][uid]) < 3:
                if s_item[0] == 1:
                    current_data['player_damage'][uid] += 5
                elif s_item[0] == 2:
                    current_data['player_blood'][uid] = add_health(
                        10, current_data['player_blood'][uid],
                        current_data['player_blood_limit'][uid])
                elif s_item[0] == 3:
                    current_data['player_vision_range'][uid] += 5
                else:
                    current_data['player_atk_range'][uid] += 5
                delhelper.append(s_item)

        for s_item in delhelper:
            current_data['small_item_location'].remove(s_item)

        # 大物品更新
        delhelper = []
        for b_item in current_data['big_item_location']:
            if cor2dis(b_item[1], current_data['player_location'][uid]) < 3:
                if b_item[0] == 1:
                    current_data['player_damage'][uid] += 15
                elif b_item[0] == 2:
                    current_data['player_blood'][uid] = add_health(
                        50, current_data['player_blood'][uid],
                        current_data['player_blood_limit'][uid])
                elif b_item[0] == 3:
                    current_data['player_blood_limit'][uid] += 20
                elif b_item[0] == 4:
                    current_data['player_vision_range'][uid] += 15
                elif b_item[0] == 5:
                    current_data['player_atk_range'][uid] += 15
                else:
                    current_data['player_visible'][uid] = 0
                delhelper.append(b_item)

        for b_item in delhelper:
            current_data['big_item_location'].remove(b_item)
Ejemplo n.º 4
0
def enemy_show(current_data):
    for uid in current_data['player_location'].keys():
        tmp = []
        for eid in current_data['player_location'].keys():
            if uid == eid:
                continue
            if cor2dis(current_data['player_location'][uid],
                       current_data['player_location'][eid]) < current_data['player_vision_range'][uid] and \
                    current_data['player_visible'][eid] == 1:
                tmp.append(current_data['player_location'][eid])
        current_data['player_enemy_location'][uid] = tmp
Ejemplo n.º 5
0
def in_circle(pos, safe_circle):
    dis = cor2dis(pos, safe_circle[0])
    return dis < safe_circle[1]