semvec/pypi-packages huggingface dataset:
nonebot-plugin-poker 1.0.1
详见https://github.com/MoonofBridge24/nonebot_plugin_poker
Requires Python: <4.0,>=3.10

# 扑克对决

从[小游戏合集](https://github.com/KarisAya/nonebot_plugin_game_collection)中复刻出来的一个小游戏，借用了战斗逻辑，同时使用贴表情代替了按钮（仅保证[NC](https://github.com/NapNeko/NapCatQQ)用户能正常使用按钮）

# 安装

方法一：拉取仓库手动安装

```
git clone https://github.com/MoonofBridge24/nonebot_plugin_poker.git
```

方法二：使用pip或nb安装

```
nb plugins install nonebot_plugin_poker
```

或

```
pip install nonebot_plugin_poke
```

# 规则和玩法

发送 `扑克对决` 命令发起一场对决，发送 `接受` 可以接受群里等待开始的对决(自己接受挑战可以和bot对决)

由于该小游戏需要大量交互，一个群内仅允许同时存在一场对决

游戏开始后，由系统随机选定一名玩家为先手方，后手方获得额外 5 点防御(DEF)，双方初始生命值(HP)为20，初始技能点(SP)为10

牌堆为整副扑克(除去大小王)随机打乱，从先手方开始依次进攻，进攻方抽取三张手牌，从三张手牌中选择一张打出，未打出的牌自动舍弃，防守方无手牌，不能动作

> 如果选择打出点数为ACE(1)的手牌，则发动ACE技能，进行一次六面骰判定，判定结果视为ACE牌点数，将三张手牌都作为技能牌打出

进攻方出牌后，若防守方技能点大于0，则进行一次二十面骰判定，若技能点不小于判定点数，则将牌堆顶的一张牌作为技能牌打出

所有技能牌都会扣除相应点数的技能点

结算时，攻击优先扣除对方防御值，未造成伤害也会消耗吸血附魔，无论是否受到攻击，防守方防御值大于10时，使防御值强制变为10，大于0小于等于10时，自动降低2

如果防守方技能点不小于0，则下一轮攻守交换，如果技能点小于0，触发力竭，跳过行动回合并使技能点回复至5点

防御力可为负值，受到伤害时会额外增加，防御力不为0时会缓慢变为0

每张牌的效果如下

|            | ♠黑桃 | ♥红桃 | ♣梅花 | ♦方片 |
| ---------- | ------ | ------ | ------ | ------ |
| 普通手牌   | 防御   | 回血   | 技能   | 攻击   |
| 进攻技能牌 | 盾击   | 吸血   | 吟唱   | 燃血   |
| 防守技能牌 | 碎甲   | 再生   | 震慑   | 反击   |

<details>
<summary>详细解释</summary>

> 假设牌的点数为 `p`，则按照花色及牌的种类触发效果
>
> 防御：使自己的防御值(DEF)增加 `p`
>
> 回血：使自己的生命值(HP)回复 `p`
>
> 技能：使自己的技能点(SP)增加 `p`，进行一次二十面骰判定，若技能点不小于判定结果，则判定成功，将本回合其他两张手牌作为技能牌打出
>
> 攻击：本回合将对对方发动 `p`点攻击
>
> 盾击：黑桃牌作为进攻技能牌打出时，对对方发动 `p/2`点攻击，令自己防御值增加 `p/2`
>
> 吸血：回复 `p/2`点生命值，并获得吸血附魔(可叠加)，在下次发动攻击时，消耗所有附魔，若使对方生命值减少，则获得对方损失生命值一半的生命值
>
> 吟唱：使自己技能点增加 `p`，并额外打出一张随机技能牌(此牌花色一定不是梅花，点数为4到8之间)
>
> 燃血：使自己生命值降低 `p/2`点，对对方发动 `1.5*p`攻击
>
> 碎甲：使自己防御值提高 `p/2`，若该回合受到伤害，则令对方防御值减少 `p`
>
> 再生：使自己生命值回复 `p/2`，若该回合受到伤害，则额外回复 `p`
>
> 震慑：此技能不消耗技能点，使对方技能点减少 `p`
>
> 反击：对对方发动 `p/2`点攻击，若该回合受到伤害，反伤 `50%`，反伤无视防御

---

</details>

任意一方血量低于 ***0*** 时游戏结束，任意一方血量保持在 ***45*** 以上超过一个回合，且作为防守方结算时血量仍大于 ***45*** ，则该玩家肉身成圣

若牌库已空时胜负未分，则血量高者获胜

# 效果图

<div style="display: flex;">
  <img src="image/1.jpg" alt="示例图片1" width="300" style="margin-right: 10px;">
  <img src="image/2.jpg" alt="示例图片2" width="300" style="margin-right: 10px;">
  <img src="image/3.jpg" alt="示例图片3" width="300">
</div>

# 更新内容

```
v1.0.1 修复了再生和碎甲技能受击判断错误的问题
v1.0.0 lgr.ob无人维护，改为兼容Napcat。
       -“打断”技能改名为“震慑”，实际效果不变。
       -防御力可为负值，受到伤害时会额外增加，防御力不为0时会缓慢变为0

v0.1.10 修复了上个版本可能重复发送的问题
v0.1.9 规范了部分代码格式
v0.1.8 修复已知问题
v0.1.7 检测逻辑更严格，带at的消息仅允许被at的玩家触发，避免误触
v0.1.6 为on_notice添加规则，调用Rule判断是否符合条件
```
codelimit 0.21.0
Your Refactoring Alarm
Requires Python: <3.15,>=3.10

# Code Limit

<div align="center">

![Logo](https://raw.githubusercontent.com/getcodelimit/codelimit/main/docs/logo.png)

</div>

<div align="center">

  *Your Refactoring Alarm 🔔*

</div>

<div align="center">

[![main](https://github.com/getcodelimit/codelimit/actions/workflows/main.yml/badge.svg)](https://github.com/getcodelimit/codelimit/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/getcodelimit/codelimit/branch/main/graph/badge.svg?token=ZQBEAJVC2Y)](https://codecov.io/gh/getcodelimit/codelimit)
[![Checked with mypy](https://www.mypy-lang.org/static/mypy_badge.svg)](https://mypy-lang.org/)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Linting: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![codelimit](https://github.com/getcodelimit/codelimit/blob/_codelimit_reports/main/badge.svg?raw=true)](https://github.com/getcodelimit/codelimit/blob/_codelimit_reports/main/codelimit.md)

</div>

## Introduction

Code Limit is a tool for developers with one goal: _it tells the developer when
it’s time to refactor_.

Check out the [documentation](https://getcodelimit.github.io) and start
using Code Limit today to keep your code maintainable.

## Quickstart

Depending on your development workflow, Code Limit can run in many different
ways (e.g.: pre-commit hook, GitHub Action, standalone, etc.). See the
[Quickstart documentation](https://getcodelimit.github.io/quickstart/) for
examples.

## Standalone usage

Code Limit can run as a standalone program to check and inspect a codebase, see
the [Standalone Usage documentation](https://getcodelimit.github.io/getting-started/standalone-usage/) to
get started.

## Configuration

Code Limit aims to be zero-configuration. However, sometimes the exception
proves the rule. Check out the [Configuration
documentation](https://getcodelimit.github.io/configuration/) for all
configuration options.

## Development

See the [Development
documentation](https://getcodelimit.github.io/development) if you want to
extend or contribute to Code Limit.

## Feedback, suggestions and bug reports

If you have suggestions for how Code Limit could be improved, or want to report
a bug, [open an issue](https://github.com/getcodelimit/codelimit/issues)! All
and any contributions are appreciated.

To show your project uses Code Limit place this badge in the README markdown:

[![Checked with Code Limit](https://img.shields.io/badge/Code%20Limit-checked-green.svg)](https://github.com/getcodelimit/codelimit)

```
![Checked with Code Limit](https://img.shields.io/badge/Code%20Limit-checked-green.svg)](https://github.com/getcodelimit/codelimit)
```

## License

[GPL-3.0-or-later](LICENSE) © 2022 Rob van der Leek <robvanderleek@gmail.com>
(https://twitter.com/robvanderleek)