# 参与到FreeKill的开发

___

如果您正在阅读这篇文档的话，那么首先要感谢您愿意为FreeKill出一份力！

FreeKill使用Lua编写游戏逻辑，QML+JS编写UI界面和UI逻辑，Qt C++提供一些底层设施的支持。

由于FreeKill的目标在于构建一个适合DIY的框架，因此在Git仓库里面的内容会比较少，只包含标准包和标准卡牌！（以及军争卡牌）如若您想为FreeKill编写拓展包，请查看[DIY文档](./doc/diy/index.md)。

如果您想要为FreeKill编写三国杀官方武将，那么请前往以下几个仓库：

* 神话再临： gitee.com/notify-ctrl/shzl
* 一将成名： gitee.com/notify-ctrl/yj

以及更多...

因为官方武将是其他想要涉足FK DIY的作者们经常参考的内容，因此其代码最好也让我来审查一下。具体的协作流程与下文相同，不进行赘述。

___

## 快速上手

为了更好的阅读代码，请先阅读README文件，以及doc/下面的相关文档。至于阅读代码本身，可以考虑从main.cpp入手，或者从lua/freekill.lua入手，或者从lua/server/room.lua入手，这些文件都是某种意义上程序的入口点。

如果您对UI的实现和修改有兴趣的话，那么可以查看qml/main.qml，那里定义了整个UI逻辑、窗口绘制等。

如果您已经准备好了提交一些修改，那么：

1. Fork本仓库，然后在fork的仓库里面进行自己的修改、提交。
2. 从fork的仓库向本仓库发起pull request。

___

## 代码规范

在为Fk核心仓库（以及官方武将仓库）做贡献时，请遵循一下几点：

1. 不要使用Tab键作为缩进。在FreeKill的代码中，所有代码文件的缩进应该都是两个空格。
2. 不要定义全局变量，除非非这么做不可。
3. 在提交时应有清晰的commit信息。
