可建造的代码

This commit is contained in:
allureluoli 2023-05-10 22:51:14 +08:00
parent 945293cab7
commit 100f0d2e4d
9 changed files with 619 additions and 318 deletions

8
.idea/RW-API-Code.iml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,90 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<Languages>
<language minSize="55" name="Python" />
</Languages>
</inspection_tool>
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ourVersions">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="3.11" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="53">
<item index="0" class="java.lang.String" itemvalue="httpx" />
<item index="1" class="java.lang.String" itemvalue="bs4" />
<item index="2" class="java.lang.String" itemvalue="tzlocal" />
<item index="3" class="java.lang.String" itemvalue="nonebot2" />
<item index="4" class="java.lang.String" itemvalue="arrow" />
<item index="5" class="java.lang.String" itemvalue="PyYAML" />
<item index="6" class="java.lang.String" itemvalue="python-dateutil" />
<item index="7" class="java.lang.String" itemvalue="python-dotenv" />
<item index="8" class="java.lang.String" itemvalue="MarkupSafe" />
<item index="9" class="java.lang.String" itemvalue="python-slugify" />
<item index="10" class="java.lang.String" itemvalue="PyInquirer" />
<item index="11" class="java.lang.String" itemvalue="rfc3986" />
<item index="12" class="java.lang.String" itemvalue="pygtrie" />
<item index="13" class="java.lang.String" itemvalue="cookiecutter" />
<item index="14" class="java.lang.String" itemvalue="Pygments" />
<item index="15" class="java.lang.String" itemvalue="starlette" />
<item index="16" class="java.lang.String" itemvalue="certifi" />
<item index="17" class="java.lang.String" itemvalue="soupsieve" />
<item index="18" class="java.lang.String" itemvalue="nonebot-adapter-cqhttp" />
<item index="19" class="java.lang.String" itemvalue="uvicorn" />
<item index="20" class="java.lang.String" itemvalue="beautifulsoup4" />
<item index="21" class="java.lang.String" itemvalue="pydantic" />
<item index="22" class="java.lang.String" itemvalue="caio" />
<item index="23" class="java.lang.String" itemvalue="typing-extensions" />
<item index="24" class="java.lang.String" itemvalue="loguru" />
<item index="25" class="java.lang.String" itemvalue="click" />
<item index="26" class="java.lang.String" itemvalue="APScheduler" />
<item index="27" class="java.lang.String" itemvalue="nonebot-plugin-apscheduler" />
<item index="28" class="java.lang.String" itemvalue="attrs" />
<item index="29" class="java.lang.String" itemvalue="regex" />
<item index="30" class="java.lang.String" itemvalue="watchgod" />
<item index="31" class="java.lang.String" itemvalue="nb-cli" />
<item index="32" class="java.lang.String" itemvalue="PyMySQL" />
<item index="33" class="java.lang.String" itemvalue="httpcore" />
<item index="34" class="java.lang.String" itemvalue="idna" />
<item index="35" class="java.lang.String" itemvalue="async-timeout" />
<item index="36" class="java.lang.String" itemvalue="requests" />
<item index="37" class="java.lang.String" itemvalue="Jinja2" />
<item index="38" class="java.lang.String" itemvalue="sniffio" />
<item index="39" class="java.lang.String" itemvalue="win32-setctime" />
<item index="40" class="java.lang.String" itemvalue="tomlkit" />
<item index="41" class="java.lang.String" itemvalue="aiomysql" />
<item index="42" class="java.lang.String" itemvalue="prompt-toolkit" />
<item index="43" class="java.lang.String" itemvalue="urllib3" />
<item index="44" class="java.lang.String" itemvalue="websockets" />
<item index="45" class="java.lang.String" itemvalue="six" />
<item index="46" class="java.lang.String" itemvalue="fastapi" />
<item index="47" class="java.lang.String" itemvalue="aiofile" />
<item index="48" class="java.lang.String" itemvalue="colorama" />
<item index="49" class="java.lang.String" itemvalue="aiohttp" />
<item index="50" class="java.lang.String" itemvalue="multidict" />
<item index="51" class="java.lang.String" itemvalue="yarl" />
<item index="52" class="java.lang.String" itemvalue="pytz" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N806" />
<option value="N802" />
<option value="N803" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/RW-API-Code.iml" filepath="$PROJECT_DIR$/.idea/RW-API-Code.iml" />
</modules>
</component>
</project>

View File

@ -4,11 +4,9 @@
<option name="autoReloadType" value="SELECTIVE" /> <option name="autoReloadType" value="SELECTIVE" />
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="095f8482-7199-413b-83e3-876b2fdc1c5d" name="更改" comment=""> <list default="true" id="095f8482-7199-413b-83e3-876b2fdc1c5d" name="更改" comment="更改">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/package-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/package-lock.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/rustedwarfareapicode/.vitepress/config.ts" beforeDir="false" afterPath="$PROJECT_DIR$/rustedwarfareapicode/.vitepress/config.ts" afterDir="false" /> <change beforePath="$PROJECT_DIR$/package.json" beforeDir="false" afterPath="$PROJECT_DIR$/package.json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/rustedwarfareapicode/api-dev.md" beforeDir="false" afterPath="$PROJECT_DIR$/rustedwarfareapicode/api-dev.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/rustedwarfareapicode/src/Unit/loginboolean.md" beforeDir="false" afterPath="$PROJECT_DIR$/rustedwarfareapicode/src/Unit/loginboolean.md" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -109,6 +107,7 @@
<workItem from="1681573027219" duration="321000" /> <workItem from="1681573027219" duration="321000" />
<workItem from="1681573363358" duration="2587000" /> <workItem from="1681573363358" duration="2587000" />
<workItem from="1683643655264" duration="99000" /> <workItem from="1683643655264" duration="99000" />
<workItem from="1683705886349" duration="11000" />
</task> </task>
<servers /> <servers />
</component> </component>

541
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@
}, },
"version": "0.0.2-DEV1.0", "version": "0.0.2-DEV1.0",
"dependencies": { "dependencies": {
"-": "^0.0.1",
"firebase": "^9.19.1" "firebase": "^9.19.1"
} }
} }

View File

@ -1 +1,272 @@
xx ---
outline: deep
---
# **[canBuild]建造组**
### [canBuild_NAME]
#### [canBuild_NAME]-代码简介
代码: [canBuild_NAME] 中文释义:可建造_名字 类型:字符型
canBuild_NAME = 组名 如果不填写此组名 将默认拥有一个命名为空格的组名。
::: tip
建议将NAME命名为此组的描述或可建造单位的昵称。<br>
以便于阅读代码。
:::
::: code-group
```bash [allureluoli]
[canBuild_造小坦]
[canBuild_SmallTank]
[canBuild_建造科技]
```
:::
::: danger
[canBuild_NAME] 中的NAME命名禁止重复否则会引发报错。<br>
其中下划线作为分隔符也是重要的,如果没有将引发报错。
:::
#### [canBuild_NAME]-演示例子
```ini
[canBuild_SmallTank] #英文命名
[canBuild_小坦克] #中文命名
[canBuild_%TK] #符号命名
[canBuild_P P] #字母与空格的组合也会被视为单独的组名
[canBuild_/(ㄒoㄒ)/~~] #多种字符
[canBuild_🆒] #甚至是emoji
[canBuild_ ] #仅用一个空格作为组名 但是多个空格会被视为和一个空格相同
```
### name
#### name-代码简介
代码:name 中文释义:名字 类型:字符型
::: danger
如果没有name而填入其他代码将引发报错且name:不能不填<br>
需要为空可以填写 name:NONE
:::
#### name-用法
name应填写单位[core]内中 name属性的名称,
它决定了需要建造哪个单位。
::: tip
注意!
如果你填了两个相同的name建造栏会自动合并建造栏中不会出现两个相同的单位。<br>
其中根据代码自上而下的先后顺序判断优先级。
:::
#### name-示例
```ini
[canBuild_SmallTank]
name: SmallTank
[canBuild_小坦克]
name: 小坦克
```
### pos
#### pos-代码简介
代码:pos 英文全称:position 中文释义:名次 类型:浮点数
#### pos-用法
pos:属性数值表示排序的序号,其中越小的越靠前。
::: info
如果没有填写pos将默认为1并按照代码顺序依次递增。<br>
其中数值可以为小数,可以为负,也可以为整数。
:::
::: warning
小数点后位数过长将会影响判断,建议用整数。
:::
#### pos-演示例子
```ini
[canBuild_SmallTank]
pos:0.1
[canBuild_小坦克]
pos:-2
```
### tech
#### tech-代码简介
代码:tech 英文全称:technology 中文释义:科技 类型:整数
#### tech-用法
填写数字设置单位的科技等级共有3个级别1级GUI显示为绿色2、3级显示为黄色。
::: info
与[core]中的科技等级不同的是超过3或者为负也不会报错。<br>
而且会受到原单位科技等级的影响,优先级低于原单位设置的科技等级。
:::
#### tech-演示例子
```ini
[canBuild_SmallTank]
tech: -1
[canBuild_小坦克]
tech: 2
```
### forceNano
#### forceNano-代码简介
代码:forceNano 中文释义: 建造方式 类型: 布尔值
#### forceNano-用法
当属性设置为true时则将目标当作是建筑物建造。 (即使是一个单位)
::: tip
默认为 false。<br>
对于没有建筑能力的单位将会在地图上凭空生成一个虚影而不会继续建造。
:::
#### forceNano-演示例子
```ini
[canBuild_SmallTank]
forceNano: true
```
### isVisible
#### isVisible-代码简介
代码:isVisible 中文释义: 可见条件 类型: 逻辑布尔值
#### isVisible-用法
当属性设置为true时则使单位建造可见。
::: tip
其中可以将属性设置为条件判断语句。<br>
如果满足条件,则从界面中显示此单位。<br>
默认为true。
:::
#### isVisible-演示例子
```ini
[canBuild_SmallTank]
isVisible: if self.hp() > 50
```
### isLocked
#### isLocked-代码简介
代码:isLocked 中文释义: 锁定 类型: 逻辑布尔值
#### isLocked-用法
当属性设置为true时则使单位锁定。
::: tip
其中可以将属性设置为条件判断语句。<br>
如果满足条件,则使单位锁定。<br>
默认为false。
:::
#### isLocked-演示例子
```ini
[canBuild_SmallTank]
isLocked: if self.hp() < 50
```
### isLockedMessage
#### isLockedMessage-代码简介
代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串
#### isLockedMessage-用法
填写被锁定时显示的文本。
::: tip
可以用来告知玩家被锁定原因。<br>
能够通过转义字符 <font color=red>\n</font> 实现文本换行。
:::
#### isLockedMessage-演示例子
```ini
[canBuild_SmallTank]
isLockedMessage: 因为你太菜这个单位不给你用嗷。\n 想用的话就努力变强吧!
```
### isLockedMessage_{LANG} <br>
#### isLockedMessage-{LANG}代码简介
代码:isLockedMessage 中文释义: 锁定消息 类型: 字符串
是isLockedMessage的多语言版本用于设置在不同语言下显示的锁定内容用法一致。
::: tip
将{LANG}替换为语言文字的缩写即可,例如:<br>
zh 代表简体中文es代表英文。
:::
```ini
[canBuild_SmallTank]
isLockedMessage_es: You are BAKA! \n if think use it ,go get stronger.
```
### isLockedAlt
#### isLockedAlt-代码简介
代码:isLockedAlt 中文释义: 另外的锁定 类型: 逻辑布尔值
#### isLockedAlt-用法
和isLocked完全一样只是为了多一个锁定的条件。
#### isLockedAlt-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt: if self.energy(greaterThan=90)
```
### isLockedAltMessage
#### isLockedAltMessage-代码简介
代码:isLockedAltMessage 中文释义: 另外的锁定消息 类型: 字符串
#### isLockedAltMessage-用法
和isLockedMessage的完全一样只是为了表达另一个的原因。
用来描述isLockedAlt。
#### isLockedAltMessage-演示例子
```ini
[canBuild_SmallTank]
isLockedAltMessage: 还有因为这个单位丑拒。
```
### isLockedAlt2
#### isLockedAlt2-代码简介
代码:isLockedAlt2 中文释义: 另外的锁定2 类型: 逻辑布尔值
#### isLockedAlt2-用法
和isLocked完全一样评价就是梅开二度。
#### isLockedAlt2-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt2: if self.energy() < 100
```
### isLockedAlt2Message
#### isLockedAlt2Message-代码简介
代码:isLockedAlt2Message 中文释义: 另外的锁定消息2 类型: 字符串
#### isLockedAlt2Message-用法
和isLockedMessage的完全一样。
用来描述isLockedAlt2。
#### isLockedAlt2Message-演示例子
```ini
[canBuild_SmallTank]
isLockedAlt2Message: 第三个原因是我觉得你应该把雪糕分我一半吃。
```
### addResources
#### addResources-代码简介
代码:addResources 中文释义: 增加资源 类型: 资源
#### addResources-用法
填写所需的资源名和数量,在放置建筑物或生产单位时,将这些资源添加到自身中。
::: tip
使用逗号分隔,可以添加多种资源。
:::
#### addResources-演示例子
```ini
[canBuild_SmallTank]
addResources: ammo=5, setFlag=1
```
### price
#### price-代码简介
代码:price 中文释义: 价格 类型: 资源
#### price-用法
填写所需的资源名和数量,会覆盖默认需要的资源和价格。
::: tip
用处如建造一个建筑时候附送一个单位。此代码可用设定为两者价钱之和,矿场600,送矿车1400,而建造时花2000,送1400,卖600,可避免玩家刷钱。抄自HX代码表
:::
#### price-演示例子
```ini
[canBuild_SmallTank]
price: 5000,ammo=5
```
### isGuiBlinking
#### isGuiBlinking-代码简介
代码:isGuiBlinking 中文释义: 界面闪烁 类型: 逻辑布尔值
#### isGuiBlinking-用法
为true时在UI中拥有闪烁效果。
::: tip
可以添加条件判断语句。<br>
满足某些条件时闪烁此UI用来提示某些单位可以建造了。
:::
#### isGuiBlinking-演示例子
```ini
[canBuild_SmallTank]
isGuiBlinking:true
```

View File

@ -44,7 +44,6 @@ displayDescription: -单位的描述
#### name-演示例子 #### name-演示例子
```ini ```ini
演示例子
[core] [core]
name: Ling name: Ling
displayText: English Title Text displayText: English Title Text