示例#1
0
class Theresas(Character):
    name: str = "德丽莎"
    attack: LowerBoundedInteger = LowerBoundedInteger(19)
    defence: LowerBoundedInteger = LowerBoundedInteger(12)
    speed: int = 22
    extra_attack_turn: int = 3

    def 血犹大第一可爱(self):
        skill_name = "血犹大第一可爱"
        if roll(30):
            self.log_skill(skill_name)
            defence_decreased = 5
            log(f"【{self.enemy.name}】的防御力降低 {defence_decreased} 点")
            self.enemy.defence = max(0, self.enemy.defence - defence_decreased)

    def 在线踢人(self):
        skill_name = "在线踢人"
        self.log_skill(skill_name)
        for i in range(5):
            damageBase = LowerBoundedInteger(16)
            damage = Damage(self.get_damage_value(damageBase), False, True)
            self.cause_damage(damage)

    def move(self, turn):
        Character.move(self, turn)
        if self.skills_enabled:
            self.血犹大第一可爱()

    def extra_attack(self):
        self.在线踢人()
示例#2
0
class Seele(Character):
    name: str = "希儿"
    attack: LowerBoundedInteger = LowerBoundedInteger(23)
    defence: LowerBoundedInteger = LowerBoundedInteger(13)
    speed: int = 26
    extra_attack_turn: int = 0

    is_white :bool = True
    def 我换我自己(self):
        skill_name = "我换我自己"
        self.log_skill(skill_name)
        self.is_white = not self.is_white
        log(f"【{self.name}】的当前状态为{'纯白' if self.is_white else '漆黑'}")
        self.拜托了另一个我()

    def 拜托了另一个我(self):
        skill_name = "拜托了另一个我"

        self.log_skill(skill_name)
        if self.is_white:
            self.restore_health(randint(1, 15))
            self.attack -= 10
            self.defence += 5
        else:
            self.attack += 10
            self.defence -= 5

    def move(self, turn):

        self.我换我自己()
        Character.move(self, turn)
示例#3
0
 def 变成星星吧(self):
     skill_name = "变成星星吧"
     self.log_skill(skill_name)
     if roll(50):
         damageBase = LowerBoundedInteger(233)
     else:
         damageBase = LowerBoundedInteger(50)
     damage = Damage(self.get_damage_value(damageBase), False, True)
     self.cause_damage(damage)
示例#4
0
class Olenyevas(Character):
    name: str = "阿琳姐妹"
    attack: LowerBoundedInteger = LowerBoundedInteger(18)
    defence: LowerBoundedInteger = LowerBoundedInteger(10)
    speed: int = 10
    is_multiple: bool = True
    extra_attack_turn: int = 0

    use_extra_attack: bool = False

    class 超级头槌(Buff):
        name = "超级头槌"
        def on_turn_start(self):
            self.target.use_extra_attack = True
            self.lasting -= 1

        def on_turn_end(self):
            if self.lasting == 0:
                self.target.use_extra_attack = False
                log(f"【{self.target.name}】的【{self.name}】消失了")

    九十六度生命之水used: bool = False

    def 九十六度生命之水(self):
        skill_name = "九十六度生命之水"
        if not self.九十六度生命之水used:
            self.九十六度生命之水used = True
            self.log_skill(skill_name)
            self.health = 20
            log(f"【{self.name}】的当前生命值为 {self.health}")
            self.status.append(self.超级头槌(self))

    def 变成星星吧(self):
        skill_name = "变成星星吧"
        self.log_skill(skill_name)
        if roll(50):
            damageBase = LowerBoundedInteger(233)
        else:
            damageBase = LowerBoundedInteger(50)
        damage = Damage(self.get_damage_value(damageBase), False, True)
        self.cause_damage(damage)

    def extra_attack_available(self, turn):
        return self.skills_enabled and self.use_extra_attack

    def extra_attack(self):
        self.变成星星吧()

    def is_dead(self):
        if self.skills_enabled:
            if not self.九十六度生命之水used:
                if Character.is_dead(self):
                    self.九十六度生命之水()
                return False
        return Character.is_dead(self)
示例#5
0
class Rita(Character):
    name: str = "丽塔"
    attack: LowerBoundedInteger = LowerBoundedInteger(26)
    defence: LowerBoundedInteger = LowerBoundedInteger(11)
    speed: int = 17
    extra_attack_turn: int = 4

    class 魅惑(Buff):
        name = "魅惑"

        def on_turn_start(self):
            self.target.skills_enabled = False
            self.lasting -= 1

        def on_turn_end(self):
            if self.lasting == 0:
                self.target.skills_enabled = True
                log(f"【{self.target.name}】的【{self.name}】消失了")

    # trick 丽塔的减伤效果是加给自己的
    魅惑成功: bool = False

    def 女仆的温柔清理(self, damage):
        skill_name = "女仆的温柔清理"
        if roll(35):
            self.log_skill(skill_name)
            damage.value -= 3
            self.enemy.attack -= 4

    # 丽塔的技能真难写
    def 完美心意(self):
        skill_name = "完美心意"
        self.log_skill(skill_name)
        self.enemy.restore_health(4)
        self.enemy.status.append(self.魅惑(self.enemy, 2))
        self.魅惑成功 = True

    def normal_attack(self):
        damage = self.get_normal_damage()
        if self.skills_enabled:
            self.女仆的温柔清理(damage)
        return self.cause_damage(damage)

    # trick 丽塔的减伤效果是加给自己的
    def receive_damage(self, damage: Damage):
        value = damage.value
        if self.魅惑成功:
            damage.value = damage.value.add_percent(-60)
        Character.receive_damage(self, damage)

    def extra_attack(self):
        self.完美心意()
示例#6
0
 def 雷电家的龙女仆(self):
     skill_name = "雷电家的龙女仆"
     self.log_skill(skill_name)
     for i in range(5):
         damageBase = LowerBoundedInteger(3)
         damage = Damage(damageBase, True, True)
         self.cause_damage(damage)
示例#7
0
 def 吃我一矛(self):
     skill_name = "吃我一矛"
     self.log_skill(skill_name)
     damageBase = LowerBoundedInteger(self.attack + 2 * self.enemy.defence)
     damage = Damage(self.get_damage_value(damageBase), False, True)
     self.cause_damage(damage)
     self.音量太强()
示例#8
0
 def 在线踢人(self):
     skill_name = "在线踢人"
     self.log_skill(skill_name)
     for i in range(5):
         damageBase = LowerBoundedInteger(16)
         damage = Damage(self.get_damage_value(damageBase), False, True)
         self.cause_damage(damage)
示例#9
0
class Mei(Character):
    name: str = "芽衣"
    attack: LowerBoundedInteger = LowerBoundedInteger(22)
    defence: LowerBoundedInteger = LowerBoundedInteger(12)
    speed: int = 30
    extra_attack_turn: int = 2

    class 麻痹(Buff):
        name = "麻痹"

        def on_add(self):
            super().on_add()

        def on_turn_start(self):
            self.target.movable = False
            self.lasting -= 1

        def on_turn_end(self):
            if self.lasting == 0:
                self.target.movable = True
                log(f"【{self.target.name}】的【{self.name}】消失了")

    def 崩坏世界的歌姬(self):
        skill_name = "崩坏世界的歌姬"
        if roll(30):
            self.log_skill(skill_name)
            log(f"【{self.name}】对【{self.enemy.name}】造成【麻痹】")
            self.enemy.status.append(self.麻痹(self.enemy))

    def 雷电家的龙女仆(self):
        skill_name = "雷电家的龙女仆"
        self.log_skill(skill_name)
        for i in range(5):
            damageBase = LowerBoundedInteger(3)
            damage = Damage(damageBase, True, True)
            self.cause_damage(damage)

    def move(self, turn):
        Character.move(self, turn)
        if self.skills_enabled:
            self.崩坏世界的歌姬()

    def extra_attack(self):
        self.雷电家的龙女仆()
示例#10
0
class Kiana(Character):
    name: str = "琪亚娜"
    attack: LowerBoundedInteger = LowerBoundedInteger(24)
    defence: LowerBoundedInteger = LowerBoundedInteger(11)
    speed: int = 23
    extra_attack_turn: int = 2

    class 眩晕(Buff):
        name = "眩晕"

        def on_add(self):
            super().on_add()

        def on_turn_start(self):
            self.target.movable = False
            self.lasting -= 1

        def on_turn_end(self):
            if self.lasting == 0:
                self.target.movable = True
                log(f"【{self.target.name}】的【{self.name}】消失了")

    def 吃我一矛(self):
        skill_name = "吃我一矛"
        self.log_skill(skill_name)
        damageBase = LowerBoundedInteger(self.attack + 2 * self.enemy.defence)
        damage = Damage(self.get_damage_value(damageBase), False, True)
        self.cause_damage(damage)
        self.音量太强()

    def 音量太强(self):
        skill_name = "音量太强"
        if roll(35):
            self.log_skill(skill_name)
            log(f"【{self.name}】眩晕了!!!")
            self.status.append(self.眩晕(self))

    def extra_attack(self):
        self.吃我一矛()
示例#11
0
 def get_normal_damage_value(self,
                             is_elemental: bool = False
                             ) -> LowerBoundedInteger:
     return LowerBoundedInteger(
         self.get_damage_value(self.attack, is_elemental))
示例#12
0
 def get_damage_value(self,
                      value: LowerBoundedInteger,
                      is_elemental: bool = False) -> LowerBoundedInteger:
     return LowerBoundedInteger(value if is_elemental else value -
                                self.enemy.defence)