Esempio n. 1
0
 def attack(self, target, ability='力量', n=0, arms=None):
     if arms is None and arms != "空手":
         return arms.use()
     else:
         num = self.get(ability=ability) + n
         # 最多8个骰子
         if num >= 8:
             num = 8
         res1 = {'ability': ability, 'result': self.dice(n=num)}
         print("[进攻]", res1)
         if target.counter(ability=ability) is None:
             print(self.name, "的攻击对目标没有任何效果。")
             return
         res2 = target.counter(ability=ability)
         print("[防守]", res2)
         diff = sum(res1.get('result')) - sum(res2.get('result'))
         if ability == '力量' or ability == '速度':
             type = '肉体'
         else:
             type = '精神'
         if diff >= 0:
             print(self.name, "攻击成功,造成", diff, "点伤害。")
             if diff >= 2:
                 print(self.name, "的攻击让", target.name, "失去平衡。")
                 print("你可以选择放弃伤害值,转为偷窃目标一件道具")
                 print("(注意:若目标无可被偷窃的道具,则无效。)")
                 if user_input() == "y":
                     l = target.get_items_list(type="偷窃")
                     if l:
                         print(l)
                         index = int(user_input())
                         item = l[index]
                         target.lost_obj(item)
                         self.gain_obj(item)
                         return
             target.hurt(type=type, value=diff)
         elif diff < 0:
             print(target.name, "反击成功,造成", abs(diff), "点伤害。")
             if diff <= -2:
                 print(target.name, "的反击让", self.name, "失去平衡。")
                 print("你可以选择放弃伤害值,转为偷窃目标一件道具")
                 print("(注意:若目标无可被偷窃的道具,则无效。)")
                 if user_input() == "y":
                     l = self.get_items_list(type="偷窃")
                     if l:
                         print(l)
                         index = int(user_input())
                         item = l[index]
                         self.lost_obj(item)
                         target.gain_obj(item)
                         return
             self.hurt(type=type, value=abs(diff))
         return
Esempio n. 2
0
 def hurt(self, type, n=1, value=None):
     if value is None:
         res = self.dice(n=n)
     else:
         res = [value]
     if type == '精神' and '颅骨' in self.buff:
         print("你手上的颅骨闪烁着诡异的光芒,那些精神上的冲击似乎化作了实体伤害打在你的身上。")
         if bool(user_input()):
             type = '肉体'
     # 铠甲判断
     if type == '肉体' and '铠甲' in self.buff:
         res.append(-1)
     print('受到', res, '=', sum(res), '点的', type, '伤害')
     while True:
         if sum(res) <= 0:
             break
         print("(身体伤害分配到【力量】与【速度】上|精神伤害分配到【意志】与【知识】上)")
         num1 = int(input("扣除第一属性: "))
         if abs(num1) == sum(res):
             self.injured(type=type, num1=sum(res), num2=0)
             break
         elif abs(num1) == 0:
             self.injured(type=type, num1=0, num2=sum(res))
             break
         num2 = int(input("扣除第二属性: "))
         if abs(num1) + abs(num2) == sum(res):
             self.injured(type=type, num1=num1, num2=num2)
             break
         else:
             print('输入值错误')
Esempio n. 3
0
 def dice(self, min=0, max=2, n=1):
     res = [random.randint(min, max) for i in range(n)]
     # 幸运石判断
     if "幸运石" in self.buff:
         choose = bool(user_input())
         if choose:
             self.buff.remove("幸运石")
             index = json.load(user_input())
             for i in index:
                 res[i] = random.randint(0, 2)
     # 幸运兔脚判断
     if "幸运兔脚" in self.buff:
         choose = bool(user_input())
         if choose:
             index = int(user_input())
             res[index] = random.randint(0, 2)
     print("[骰点结果为]", res)
     return res
Esempio n. 4
0
 def before_move(self):
     super(Mummy, self).before_move()
     enemy = [
         role for role in self.room.get_creatures()
         if role.camp != self.camp
     ]
     if len(enemy) > 0:
         print("敌人列表:", enemy)
         index = user_input()
         self.attack(target=enemy[index])
Esempio n. 5
0
 def attack(self, target):
     super(Mummy, self).attack(target=target)
     res1 = {'ability': '力量', 'result': self.dice(n=self.get(ability="力量"))}
     res2 = target.counter(ability="力量")
     print("[防守]", res2)
     diff = sum(res1.get('result')) - sum(res2.get('result'))
     type = '肉体'
     if diff >= 0:
         print(self.name, "攻击成功,造成", diff, "点伤害。")
         if diff >= 2:
             print(self.name, "的攻击让", target.name, "失去平衡。")
             print("你可以选择放弃伤害值,转为偷窃目标一件道具")
             print("(注意:若目标无可被偷窃的道具,则无效。)")
             if user_input() == "y":
                 l = target.get_items_list(type="偷窃")
                 if l:
                     print(l)
                     index = int(user_input())
                     item = l[index]
                     target.lost_obj(item)
                     self.gain_obj(item)
                     return
         target.hurt(type=type, value=diff)
     elif diff < 0:
         print(target.name, "反击成功,造成", abs(diff), "点伤害。")
         if diff <= -2:
             print(target.name, "的反击让", self.name, "失去平衡。")
             print("你可以选择放弃伤害值,转为偷窃目标一件道具")
             print("(注意:若目标无可被偷窃的道具,则无效。)")
             if user_input() == "y":
                 l = self.get_items_list(type="偷窃")
                 if l:
                     print(l)
                     index = int(user_input())
                     item = l[index]
                     self.lost_obj(item)
                     target.gain_obj(item)
                     return
         self.hurt(type=type)
     return
Esempio n. 6
0
 def login(self):
     if self.authenticated:
         with open(
                 r'C:\Users\zleirdahl\Documents\GitHub\StockModeler\robinhood_auth.json',
                 'r') as f:
             return json.loads(f.read())
     return self.post(
         oauth(),
         payload=self.payload,
         extra_headers={
             'X-ROBINHOOD-CHALLENGE-RESPONSE-ID':
             self.post(
                 challenge(
                     self.post(oauth(),
                               payload=self.payload)['challenge']['id']),
                 {'response': user_input()})['id']
         })
Esempio n. 7
0
 def ability_challenge(self, ability, n=0, type='房间'):
     if type == '事件' and '蜡烛' in self.buff:
         n += 1
     if "水滴" in self.room.get_sign(self):
         print("停不下来的滴答声让你无法集中精神,骰子-1")
         n -= 1
     if "祝福" in self.room.get_sign(self):
         print("神圣的气息让你大有增益,骰子+1")
         n += 1
     if '天使的羽毛(生效中)' in self.buff:
         self.buff.remove('天使的羽毛(生效中)')
         res = [int(user_input())]
         return res
     num = self.get(ability=ability) + n
     # 最多8个骰子
     if num >= 8:
         num = 8
     res = self.dice(n=num)
     if '肾上腺素(生效中)' in self.buff:
         self.buff.remove('肾上腺素(生效中)')
         res.append(4)
     print(self.name, "[", ability, "]挑战结果为:", res)
     return res
Esempio n. 8
0
            time.sleep(off_delay)

def exit_action():
    if len(time_arr) > 0:
        save_data()
        save_plot(fig_now)

# Controller Constants
DELAY = 1

# Arduino Serial Port Information
SERIAL_ADR = search_ard_serial_port()
SERIAL_PORT = 9600
SERIAL_DELAY = 1

distance_d = util.user_input("distance in cm", (1,400))
distance_d = distance_d / 100 * 2

# List storing values
tt_arr = []
time_arr = []
temp_arr = []
pres_arr = []

derived_kb_arr = []
kb_err_abs_arr = []

kb_avg_arr = []

t0 = time.perf_counter()
Esempio n. 9
0
        print(e)
    else:
        pass
    pass


def std_error(err_arr):
    n = len(err_arr)
    ste = np.sqrt(np.sum([e**2 for e in err_arr]) / (n - 1))
    return ste


# Boltzmann constant (10^-23)
K_B = 1.38064852

data_id = util.user_input("data number", val_float=False)
DATA_NAME = DATA_NAME = "data/{}".format(data_id)
csv_loc = DATA_NAME + ".csv"

# List storing values
tt_arr = []
time_arr = []
temp_arr = []

derived_kb_arr = []
kb_err_abs_arr = []
pres_arr = []

kb_avg_arr = []

distance_d = 0
Esempio n. 10
0
K_B = 1.38064852


def save_plot(fig):
    eps_loc = "data/plt3_" + str(int(time.time())) + '.eps'
    fig_now.savefig(eps_loc, format='eps')
    print("\nPlot saved to {}.\n".format(eps_loc))


def std_error(err_arr):
    n = len(err_arr)
    ste = np.sqrt(np.sum([e**2 for e in err_arr]) / (n - 1))
    return ste


data_id = util.user_input("data numbers (separated by comma)", val_float=False)
data_id = data_id.split(",")

data_ids = [d.strip() for d in data_id]

# Desired Offset (ms)
OFFSET = util.user_input("offset in ms", [-1, 1])

# List storing values
d_arr = []
kb_arr = []

kb_offset_arr = []
kb_err_arr = []

for di in data_ids:
Esempio n. 11
0
import time

# Boltzmann constant (10^-23)
K_B = 1.38064852

def save_plot(fig):
    eps_loc = "data/plt5_" + str(int(time.time())) + '.eps'
    fig_now.savefig(eps_loc, format='eps')
    print("\nPlot saved to {}.\n".format(eps_loc))

def std_error(err_arr):
    n = len(err_arr)
    ste = np.sqrt(np.sum([e ** 2 for e in err_arr])/(n-1))
    return ste

data_id = util.user_input("data numbers (separated by comma)", val_float=False)
data_id = data_id.split(",")

data_ids = [d.strip() for d in data_id]

# List storing values
d_arr = []
kb_arr = []
kb_vdw_arr = []
kb_rk_arr = []

kb_offset_arr = []

kb_err_arr = []

for di in data_ids: