init python early:

    class RougePlayer(Player):
        def __init__(self):
            self.super().__init__(self)
            self.maxap = 1
            self.ap = 1 #  行动点 每个时间段恢复到最大行动点
            self.shield = 0  # 精力 一天结束时清零
        

        def gain_mental(self, rec, due='', extra=False, stat=None):
            if rec < 0:
                if -rec >= self.shield:
                    rec = r2(rec + self.shield)
                    self.shield = 0
                else:
                    self.shield = r2(rec + self.shield)
                    rec = 0

            self.mental += rec
            rec = r2(rec)
            self.mental = r2(self.mental)

            info = ''
            if due:
                info += '由于' + due + '，'
            if stat:
                due = stat
            
            if extra:
                info += '额外'
                
            if rec > 0:
                info += '{color=#7CFC00}恢复{/color}了%s点精神状态！' % rec
                Stat.stato_record(self, 'rec', rec)
                self.gain_stat('恢复的精神状态', due, rec)
            elif -0.01 < rec < 0.01:
                info += '精神状态没有变化。'
            else:
                info += '{color=#FF4500}消耗{/color}了%s点精神状态！' % -rec
                Stat.stato_record(self, 'con', -rec)
                self.gain_stat('消耗的精神状态', due, -rec)

            if BookUndeadEffect.has(self) and self.mental < 9.99:
                self.gain_mental(10-self.mental, due=BookUndeadEffect.name)

            
            Notice.add(info)