init python early:

    class RougeTask(Task):
        id = None
        name = None
        kind = None
        unlocked = False
        info = None
        info2 = None
        ad = None
        _point = 1
        _consume = False
        

        @classmethod
        def executeTask(cls, player):
            cls.getResultLabel(player, perf)
            player.updateAfterTask(cls)

        def __init__(self):
            self.updated = False
            self.consumed = False
        
        
        def ap(self):
            return self._point

        # 能否出现在卡池
        @classmethod
        def checkAccessable(cls, player):
            return True

        # 能否被抽到
        def checkAvailable(self, player, day, time):
            if not self.isUnlocked(player):
                return False
            if not self.consumed(player):
                return False
            return True

        # 能否使用
        def checkUsable(self, player, day, time):
            if self.ap() > player.ap:
                return _('行动点不足！')
            return True


        def execute(self, player):
            if self._consume:
                self.consumed = True
            player.ap -= self.ap()
            Notice.add('消耗了%s点行动点数！'%self.ap())
            if self.updated:
                self.actionplus()
            else:
                self.action()

        @classmethod
        def action(cls, player):
            pass
        
        @classmethod
        def actionplus(cls, player):
            pass

    class RT_Work(RougeTask):
        id = 10000
        name = _('完成工作')
        kind = _('基础类-日程')
        info = _('基础消耗：30\n完成工作进度（0.8）。')
        info2 = _('基础消耗：25\n完成工作进度（0.9）。')
        unlocked = True
        ad = _('这不符合我们的风格！快去找一些更有趣的日程来做吧！')
        _point = 1
        _consume = False


        @classmethod
        def checkAccessable(cls, player):
            # 初始卡牌
            return False

        def checkAvailable(self, player, day, time):
            if time >= 2:
                return False
            return True

        @classmethod
        def action(cls, player):
            cons = r2(30 * cls.getConsScale(player))
            player.gain_mental(-cons, stat=cls.name)
            a = r2(0.8 * player.workSpeed * player.wor() * f())
            player.achievedGoal += a
            Notice.add(_('完成了%s点工作进度。') % a)
        
        @classmethod
        def actionplus(cls, player):
            cons = r2(25 * cls.getConsScale(player))
            player.gain_mental(-cons, stat=cls.name)
            a = r2(0.9 * player.workSpeed * player.wor() * f())
            player.achievedGoal += a
            Notice.add(_('完成了%s点工作进度。') % a)   
    

    class RT_Loafing(RougeTask):
        id = 10001
        name = _('偷懒')
        kind = _('基础类-日程')
        info = _('基础消耗：5\n获得25点{#tag}精力{#/tag}，完成工作进度（0.1）。')
        info2 = _('基础消耗：5\n获得30点{#tag}精力{#/tag}，完成工作进度（0.15）。')
        ad = _('你可以随时读书而不需要一边偷懒一边看，这不神奇吗？')
        unlocked = True
        _point = 1
        _consume = False


        @classmethod
        def checkAccessable(cls, player):
            # 初始卡牌
            return False

        def checkAvailable(self, player, day, time):
            if time >= 2:
                return False
            return True

        @classmethod
        def action(cls, player):
            cons = r2(5 * cls.getConsScale(player))
            player.gain_mental(-cons, stat=cls.name)
            player.shield += 25.0
            a = r2(0.1 * player.workSpeed * player.wor() * f())
            player.achievedGoal += a
            Notice.add(_('完成了%s点工作进度。') % a)
        
        @classmethod
        def actionplus(cls, player):
            cons = r2(5 * cls.getConsScale(player))
            player.gain_mental(-cons, stat=cls.name)
            player.shield += 30.0
            a = r2(0.15 * player.workSpeed * player.wor() * f())
            player.achievedGoal += a
            Notice.add(_('完成了%s点工作进度。') % a)
    

    class RT_ActionSurge(RougeTask):
        id = 10100
        name = _('动作如潮')
        kind = _('效率类-日程')
        info = _('获得1点行动点。')
        info2 = _('获得2点行动点。')
        ad = _('')
        _point = 0
        _consume = False

        def checkAvailable(self, player, day, time):
            if time >= 2:
                return False
            return True

        @classmethod
        def action(cls, player):
            player.ap += 1
            Notice.add(_('获得了1点行动点。'))
        
        @classmethod
        def actionplus(cls, player):
            player.ap += 2
            Notice.add(_('获得了2点行动点。'))

    class RT_BookWor(RougeTask):
        id = 10100
        name = _('《保持清醒的秘诀》')
        kind = _('效率类-书籍')
        info = _('获得1层{#tag}效率{#/tag}。')
        info2 = _('获得1层{#tag}效率{#/tag}。')
        ad = _('')
        _point = 1
        _consume = True


        def ap(self):
            if self.updated:
                return 0
            return 1

        @classmethod
        def checkAvailable(self, player, day, time):
            if time >= 2:
                return False
            return True

        @classmethod
        def action(cls, player):
            RT_Efficiency.add(player)
        
        @classmethod
        def actionplus(cls, player):
            cls.action(player):


    class RT_LongtermAnalysis(RougeTask):
        id = 10101
        name = _('《长线分析》')
        kind = _('分析类-书籍')
        info = _('获得1层{#tag}分析{#/tag}。')
        info2 = _('获得2层{#tag}分析{#/tag}。')
        ad = _('')
        _point = 1
        _consume = True


        @classmethod
        def action(cls, player):
            RT_Analysis.add(player)
        
        @classmethod
        def actionplus(cls, player):
            RT_Analysis.add(player, 2)
    
    class RT_ShorttermAnalysis(RougeTask):
        id = 10102
        name = _('快速解析')
        kind = _('分析类-日程')
        info = _('获得2层{#tag}分析{#/tag}，本阶段结束时移除2层{#tag}分析{#/tag}。')
        info2 = _('获得4层{#tag}分析{#/tag}，本阶段结束时移除4层{#tag}分析{#/tag}。')
        ad = _('')
        _point = 0

        @classmethod
        def action(cls, player):
            RT_Analysis.add(player)
        
        @classmethod
        def actionplus(cls, player):
            RT_Analysis.add(player, 2)
    

    class RT_limitingAnalysis(RougeTask):
        id = 10103
        name = _('《Analysis++》')
        kind = _('分析类-书籍')
        info = _('将{#tag}分析{#/tag}的层数提升50%。')
        info2 = _('将{#tag}分析{#/tag}的层数提升100%。')
        ad = _('')
        _point = 1
        _consume = True


        @classmethod
        def action(cls, player):
            RT_Analysis.add(player, int(T_Analysis.getstack(player)*0.5))
        
        @classmethod
        def actionplus(cls, player):
            RT_Analysis.add(player, T_Analysis.getstack(player))