(client) feat:健康给予,路径优化,结算界面,商店界面 (#60)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/60
This commit is contained in:
2025-10-10 14:08:23 +08:00
parent 9a797479ff
commit 16b49f3d3a
1900 changed files with 114053 additions and 34157 deletions

View File

@@ -21,4 +21,9 @@
<li>player</li>
</hostileFactions>
</AffiliationDef>
<AffiliationDef>
<defName>nanorobot</defName>
<label>玩家阵营_纳米机器人</label>
<defaultRelation>Neutral</defaultRelation>
</AffiliationDef>
</Define>

View File

@@ -0,0 +1,259 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<!-- 机械A1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechA1</defName>
<attack>60</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>15</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 机械A2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechA2</defName>
<attack>40</attack>
<attackSpeed>0.55</attackSpeed>
<attackRange>15</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 机械B1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechB1</defName>
<attack>110</attack>
<attackSpeed>0.2</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 机械B2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechB2</defName>
<attack>100</attack>
<attackSpeed>0.22</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 机械C1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechC1</defName>
<attack>70</attack>
<attackSpeed>0.5</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 机械C2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_MechC2</defName>
<attack>110</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合D1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridD1</defName>
<attack>65</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合D2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridD2</defName>
<attack>40</attack>
<attackSpeed>0.55</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合E1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridE1</defName>
<attack>160</attack>
<attackSpeed>0.125</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合E2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridE2</defName>
<attack>180</attack>
<attackSpeed>0.125</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合F1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridF1</defName>
<attack>200</attack>
<attackSpeed>0.24</attackSpeed>
<attackRange>4</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 混合F2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_HybridF2</defName>
<attack>220</attack>
<attackSpeed>0.22</attackSpeed>
<attackRange>4</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 面具1/2/3武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Mask1</defName>
<attack>40</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Mask2</defName>
<attack>40</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Mask3</defName>
<attack>40</attack>
<attackSpeed>0.33</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 面具4/5/6武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Mask4</defName>
<attack>70</attack>
<attackSpeed>0.38</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Mask5</defName>
<attack>70</attack>
<attackSpeed>0.38</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Mask6</defName>
<attack>70</attack>
<attackSpeed>0.38</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 全息1/2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Hologram1</defName>
<attack>60</attack>
<attackSpeed>0.17</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Hologram2</defName>
<attack>60</attack>
<attackSpeed>0.17</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 全息3/4/5武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Hologram3</defName>
<attack>160</attack>
<attackSpeed>0.17</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Hologram4</defName>
<attack>160</attack>
<attackSpeed>0.17</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Hologram5</defName>
<attack>160</attack>
<attackSpeed>0.17</attackSpeed>
<attackRange>3</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 蛇1/2/3武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Snake1</defName>
<attack>10</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Snake2</defName>
<attack>10</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Snake3</defName>
<attack>10</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 蛇4/5/6武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Snake4</defName>
<attack>20</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Snake5</defName>
<attack>20</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<AttributesDef>
<defName>WeaponAttributes_Snake6</defName>
<attack>20</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>10</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 鼠鼠1武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Rat1</defName>
<attack>1</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>1</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
<!-- 鼠鼠2武器属性 -->
<AttributesDef>
<defName>WeaponAttributes_Rat2</defName>
<attack>2</attack>
<attackSpeed>1.0</attackSpeed>
<attackRange>1</attackRange>
<attackTargetCount>1</attackTargetCount>
</AttributesDef>
</Define>

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<!-- 机械A1子弹 -->
<BulletDef>
<defName>Bullet_MechanicalA1</defName>
<label>机械A1型子弹</label>
<description>机械A1怪物发射的能量弹。</description>
<attributes>
<moveSpeed>5</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletA1Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletA1Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<!-- 机械A2子弹 -->
<BulletDef>
<defName>Bullet_MechanicalA2</defName>
<label>机械A2型子弹</label>
<description>机械A2怪物发射的高速能量弹。</description>
<attributes>
<moveSpeed>6</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletA2Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletA2Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<!-- 混合D1子弹 -->
<BulletDef>
<defName>Bullet_HybridD1</defName>
<label>混合D1型弹丸</label>
<description>混合D1型生物发射的能量弹。</description>
<attributes>
<moveSpeed>8</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletD1Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletD1Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<!-- 混合D2子弹 -->
<BulletDef>
<defName>Bullet_HybridD2</defName>
<label>混合D2型弹丸</label>
<description>混合D2型生物发射的快速能量弹。</description>
<attributes>
<moveSpeed>8</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletD2Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletD2Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<!-- 生物蛇1/2/3型子弹 (毒液) -->
<BulletDef>
<defName>Bullet_BiologicalSnake1</defName>
<label>剧毒蛇液</label>
<description>剧毒之蛇喷吐的腐蚀性毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletVioletSnake1Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletVioletSnake1Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>Bullet_BiologicalSnake2</defName>
<label>剧毒蛇液</label>
<description>剧毒之蛇喷吐的腐蚀性毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletBlueSnake2Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletBlueSnake2Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>Bullet_BiologicalSnake3</defName>
<label>剧毒蛇液</label>
<description>剧毒之蛇喷吐的腐蚀性毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletGreenSnake3Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletGreenSnake3Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<!-- 生物蛇4/5/6型子弹 (强效毒液) -->
<BulletDef>
<defName>Bullet_BiologicalSnake4</defName>
<label>深渊剧毒</label>
<description>深渊毒蛇喷吐的致命毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletVioletSnake4Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletVioletSnake4Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>Bullet_BiologicalSnake5</defName>
<label>深渊剧毒</label>
<description>深渊毒蛇喷吐的致命毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletBlueSnake5Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletBlueSnake5Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>Bullet_BiologicalSnake6</defName>
<label>深渊剧毒</label>
<description>深渊毒蛇喷吐的致命毒液。</description>
<attributes>
<moveSpeed>4</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>BulletCyanSnake6Texture</li>
</textures>
</idle_down>
<walk_down>
<textures>
<li>BulletCyanSnake6Texture</li>
</textures>
</walk_down>
</drawingOrder>
</BulletDef>
</Define>

View File

@@ -0,0 +1,74 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<!-- ImageDefs for Bullet -->
<ImageDef>
<defName>BulletA1Texture</defName>
<path>res:Resources\MonsterAttackAnimation\A1弹幕.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletA2Texture</defName>
<path>res:Resources\MonsterAttackAnimation\A2弹幕.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletD1Texture</defName>
<path>res:Resources\MonsterAttackAnimation\D1弹幕.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletD2Texture</defName>
<path>res:Resources\MonsterAttackAnimation\D2弹幕.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletVioletSnake1Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇紫.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletBlueSnake2Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇蓝.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletGreenSnake3Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇绿.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletVioletSnake4Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇紫.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletBlueSnake5Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇蓝.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BulletCyanSnake6Texture</defName>
<path>res:Resources\MonsterAttackAnimation\蛇青.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
</Define>

View File

@@ -1,9 +1,125 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<ImageDef>
<defName>Character_Cell_Walk</defName>
<path>res:Resources\Character\PlayerWalk.png</path>
<wCount>4</wCount>
<hCount>4</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>Character_Cell_Idle</defName>
<path>res:Resources\Character\PlayerIdle.png</path>
<wCount>2</wCount>
<hCount>4</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<CharacterDef>
<defName>cell</defName>
<label>希尔</label>
<description>一个高性能机娘角色</description>
<attributes>
<health>480</health>
<defense>15</defense>
</attributes>
<affiliation>player</affiliation>
<defaultWeapon>InitialWeapon</defaultWeapon>
<insideDimensionDef>PlayerInsideDimension</insideDimensionDef>
<drawingOrder>
<idle_up>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Idle_2</li>
<li>Character_Cell_Idle_3</li>
</textures>
</idle_up>
<idle_down>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Idle_0</li>
<li>Character_Cell_Idle_1</li>
</textures>
</idle_down>
<idle_left>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Idle_6</li>
<li>Character_Cell_Idle_7</li>
</textures>
</idle_left>
<idle_right>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Idle_4</li>
<li>Character_Cell_Idle_5</li>
</textures>
</idle_right>
<walk_up>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Walk_4</li>
<li>Character_Cell_Walk_5</li>
<li>Character_Cell_Walk_6</li>
<li>Character_Cell_Walk_7</li>
</textures>
</walk_up>
<walk_down>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Walk_0</li>
<li>Character_Cell_Walk_1</li>
<li>Character_Cell_Walk_2</li>
<li>Character_Cell_Walk_3</li>
</textures>
</walk_down>
<walk_left>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Walk_12</li>
<li>Character_Cell_Walk_13</li>
<li>Character_Cell_Walk_14</li>
<li>Character_Cell_Walk_15</li>
</textures>
</walk_left>
<walk_right>
<FPS>4.0</FPS>
<textures>
<li>Character_Cell_Walk_8</li>
<li>Character_Cell_Walk_9</li>
<li>Character_Cell_Walk_10</li>
<li>Character_Cell_Walk_11</li>
</textures>
</walk_right>
<meleeAttack_down>
<textures>
<li>Character_Cell_Idle_0</li>
</textures>
</meleeAttack_down>
<rangedAttack_down>
<textures>
<li>Character_Cell_Idle_0</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasWeapon()">
<Node className="ThinkNode_Sequence">
<Node className="JobNode_MoveToAttackRange"/>
<Node className="JobNode_AttackTarget"/>
</Node>
</Node>
<Node className="ThinkNode_Sequence">
<Node className="JobNode_Wander"/>
<Node className="JobNode_Idle"/>
</Node>
</behaviorTree>
</CharacterDef>
<!-- 女仆行走贴图 -->
<ImageDef>
<defName>Character_Maid_Walk</defName>
<path>Resources\Character\女仆行走.png</path>
<path>res:Resources\Character\女仆行走.png</path>
<wCount>12</wCount>
<hCount>8</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
@@ -16,20 +132,22 @@
<!-- 角色基础属性 -->
<attributes>
<health>100</health>
<moveSpeed>2</moveSpeed>
<health>360</health>
<defense>10</defense>
<!-- 更多 attributesDef 中的属性... -->
</attributes>
<!-- 角色所属阵营 -->
<affiliation>player</affiliation> <!-- 引用 AffiliationDef 的 defName -->
<defaultWeapon>TestGun</defaultWeapon>
<insideDimensionDef>PlayerInsideDimension</insideDimensionDef> <!-- 角色初始所在的 DimensionDef -->
<!-- 角色不同状态和朝向的绘制指令 -->
<drawingOrder>
<!-- Idle states -->
<idle_up>
<textures>
<li>Character_Maid_Walk_37</li>
<li>Character_Maid_Walk_37</li>
</textures>
</idle_up>
<idle_down>
@@ -85,50 +203,16 @@
<li>Character_Maid_Walk_25</li>
</textures>
</walk_right>
<!-- Melee Attack states -->
<meleeAttack_up>
<textures>
<li>testPawn_2</li>
</textures>
</meleeAttack_up>
<meleeAttack_down>
<textures>
<li>testPawn_6</li>
<li>Character_Maid_Walk_25</li>
</textures>
</meleeAttack_down>
<meleeAttack_left>
<textures>
<li>testPawn_10</li>
</textures>
</meleeAttack_left>
<meleeAttack_right>
<textures>
<li>testPawn_14</li>
</textures>
</meleeAttack_right>
<!-- Ranged Attack states -->
<rangedAttack_up>
<textures>
<li>testPawn_3</li>
</textures>
</rangedAttack_up>
<rangedAttack_down>
<textures>
<li>testPawn_7</li>
<li>Character_Maid_Walk_25</li>
</textures>
</rangedAttack_down>
<rangedAttack_left>
<textures>
<li>testPawn_11</li>
</textures>
</rangedAttack_left>
<rangedAttack_right>
<textures>
<li>testPawn_15</li>
</textures>
</rangedAttack_right>
</drawingOrder>
<behaviorTree>
@@ -143,153 +227,6 @@
<Node className="JobNode_Idle"/>
</Node>
</behaviorTree>
</CharacterDef>
<ImageDef>
<defName>PlayerIdle</defName>
<path>Resources\Character\PlayerIdle.png</path>
<wCount>2</wCount>
<hCount>4</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>PlayerWalk</defName>
<path>Resources\Character\PlayerWalk.png</path>
<wCount>4</wCount>
<hCount>4</hCount>
<pixelsPerUnit>32</pixelsPerUnit>
</ImageDef>
<CharacterDef>
<defName>testPawn</defName>
<label>测试小人</label>
<description>用于测试功能的角色</description>
<attributes>
<health>100</health>
<moveSpeed>2</moveSpeed>
</attributes>
<affiliation>player</affiliation>
<drawingOrder>
<!-- Idle states -->
<idle_up>
<FPS>2.0</FPS>
<textures>
<li>PlayerIdle_2</li>
<li>PlayerIdle_3</li>
</textures>
</idle_up>
<idle_down>
<FPS>2.0</FPS>
<textures>
<li>PlayerIdle_0</li>
<li>PlayerIdle_1</li>
</textures>
</idle_down>
<idle_left>
<FPS>2.0</FPS>
<textures>
<li>PlayerIdle_6</li>
<li>PlayerIdle_7</li>
</textures>
</idle_left>
<idle_right>
<FPS>2.0</FPS>
<textures>
<li>PlayerIdle_4</li>
<li>PlayerIdle_5</li>
</textures>
</idle_right>
<!-- Walk states -->
<walk_down>
<FPS>4.0</FPS>
<textures>
<li>PlayerWalk_0</li>
<li>PlayerWalk_1</li>
<li>PlayerWalk_2</li>
<li>PlayerWalk_3</li>
</textures>
</walk_down>
<walk_up>
<FPS>4.0</FPS>
<textures>
<li>PlayerWalk_4</li>
<li>PlayerWalk_5</li>
<li>PlayerWalk_6</li>
<li>PlayerWalk_7</li>
</textures>
</walk_up>
<walk_right>
<FPS>4.0</FPS>
<textures>
<li>PlayerWalk_8</li>
<li>PlayerWalk_9</li>
<li>PlayerWalk_10</li>
<li>PlayerWalk_11</li>
</textures>
</walk_right>
<walk_left>
<FPS>4.0</FPS>
<textures>
<li>PlayerWalk_12</li>
<li>PlayerWalk_13</li>
<li>PlayerWalk_14</li>
<li>PlayerWalk_15</li>
</textures>
</walk_left>
<!-- Melee Attack states -->
<meleeAttack_up>
<textures>
<li>testPawn_2</li>
</textures>
</meleeAttack_up>
<meleeAttack_down>
<textures>
<li>testPawn_6</li>
</textures>
</meleeAttack_down>
<meleeAttack_left>
<textures>
<li>testPawn_10</li>
</textures>
</meleeAttack_left>
<meleeAttack_right>
<textures>
<li>testPawn_14</li>
</textures>
</meleeAttack_right>
<!-- Ranged Attack states -->
<rangedAttack_up>
<textures>
<li>testPawn_3</li>
</textures>
</rangedAttack_up>
<rangedAttack_down>
<textures>
<li>testPawn_7</li>
</textures>
</rangedAttack_down>
<rangedAttack_left>
<textures>
<li>testPawn_11</li>
</textures>
</rangedAttack_left>
<rangedAttack_right>
<textures>
<li>testPawn_15</li>
</textures>
</rangedAttack_right>
</drawingOrder>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="EntityHealth(50)">
<Node className="JobGiver_AttackJob"/>
<Node className="JobGiver_RandomWander"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
</CharacterDef>
</Define>
</Define>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,797 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<!-- ImageDefs for Mechanical Monsters_L -->
<ImageDef>
<defName>MechanicalMonsterA1Texture_L</defName>
<path>res:Resources\Monster\A怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterA1Texture_R</defName>
<path>res:Resources\Monster\A怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterA2Texture_L</defName>
<path>res:Resources\Monster\A怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterA2Texture_R</defName>
<path>res:Resources\Monster\A怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB1Texture_L</defName>
<path>res:Resources\Monster\B怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB1Texture_R</defName>
<path>res:Resources\Monster\B怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationB1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\B1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationB1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\B1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB2Texture_L</defName>
<path>res:Resources\Monster\B怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB2Texture_R</defName>
<path>res:Resources\Monster\B怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationB2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\B2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationB2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\B2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC1Texture_L</defName>
<path>res:Resources\Monster\C怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC1Texture_R</defName>
<path>res:Resources\Monster\C怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationC1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\C1.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationC1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\C1.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC2Texture_L</defName>
<path>res:Resources\Monster\C怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC2Texture_R</defName>
<path>res:Resources\Monster\C怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationC2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\C2.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationC2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\C2.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<!-- ImageDefs for Hybrid Monsters_L -->
<ImageDef>
<defName>HybridMonsterD1Texture_L</defName>
<path>res:Resources\Monster\D怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterD1Texture_R</defName>
<path>res:Resources\Monster\D怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationD1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\D1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationD1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\D1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>HybridMonsterD2Texture_L</defName>
<path>res:Resources\Monster\D怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterD2Texture_R</defName>
<path>res:Resources\Monster\D怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationD2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\D2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationD2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\D2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE1Texture_L</defName>
<path>res:Resources\Monster\E怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE1Texture_R</defName>
<path>res:Resources\Monster\E怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationE1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\E1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationE1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\E1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE2Texture_L</defName>
<path>res:Resources\Monster\E怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE2Texture_R</defName>
<path>res:Resources\Monster\E怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationE2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\E2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationE2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\E2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>100</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF1Texture_L</defName>
<path>res:Resources\Monster\F怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF1Texture_R</defName>
<path>res:Resources\Monster\F怪物1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationF1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\F1.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationF1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\F1.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF2Texture_L</defName>
<path>res:Resources\Monster\F怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF2Texture_R</defName>
<path>res:Resources\Monster\F怪物2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationF2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\F2.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationF2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\F2.png</path>
<wCount>2</wCount>
<hCount>2</hCount>
<pixelsPerUnit>75</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<!-- ImageDefs for Biological Monsters_L -->
<ImageDef>
<defName>BiologicalMaskMonster1Texture_L</defName>
<path>res:Resources\Monster\面具1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster1Texture_R</defName>
<path>res:Resources\Monster\面具1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具1.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具1.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster2Texture_L</defName>
<path>res:Resources\Monster\面具2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster2Texture_R</defName>
<path>res:Resources\Monster\面具2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具2.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具2.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster3Texture_L</defName>
<path>res:Resources\Monster\面具3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster3Texture_R</defName>
<path>res:Resources\Monster\面具3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask3Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具3.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask3Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具3.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster4Texture_L</defName>
<path>res:Resources\Monster\面具4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster4Texture_R</defName>
<path>res:Resources\Monster\面具4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask4Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具4.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask4Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具4.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster5Texture_L</defName>
<path>res:Resources\Monster\面具5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster5Texture_R</defName>
<path>res:Resources\Monster\面具5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask5Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具5.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask5Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具5.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster6Texture_L</defName>
<path>res:Resources\Monster\面具6.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalMaskMonster6Texture_R</defName>
<path>res:Resources\Monster\面具6.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask6Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\面具6.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationMask6Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\面具6.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster1Texture_L</defName>
<path>res:Resources\Monster\全息1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster1Texture_R</defName>
<path>res:Resources\Monster\全息1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram1Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\全息1.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram1Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\全息1.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster2Texture_L</defName>
<path>res:Resources\Monster\全息2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster2Texture_R</defName>
<path>res:Resources\Monster\全息2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram2Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\全息2.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram2Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\全息2.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster3Texture_L</defName>
<path>res:Resources\Monster\全息3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster3Texture_R</defName>
<path>res:Resources\Monster\全息3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram3Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\全息3.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram3Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\全息3.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster4Texture_L</defName>
<path>res:Resources\Monster\全息4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster4Texture_R</defName>
<path>res:Resources\Monster\全息4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram4Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\全息4.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram4Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\全息4.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster5Texture_L</defName>
<path>res:Resources\Monster\全息5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalHologramMonster5Texture_R</defName>
<path>res:Resources\Monster\全息5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram5Texture_L</defName>
<path>res:Resources\MonsterAttackAnimation\全息5.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>MonsterAttackAnimationHologram5Texture_R</defName>
<path>res:Resources\MonsterAttackAnimation\全息5.png</path>
<wCount>3</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster1Texture_L</defName>
<path>res:Resources\Monster\蛇1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster1Texture_R</defName>
<path>res:Resources\Monster\蛇1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster2Texture_L</defName>
<path>res:Resources\Monster\蛇2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster2Texture_R</defName>
<path>res:Resources\Monster\蛇2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster3Texture_L</defName>
<path>res:Resources\Monster\蛇3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster3Texture_R</defName>
<path>res:Resources\Monster\蛇3.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster4Texture_L</defName>
<path>res:Resources\Monster\蛇4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster4Texture_R</defName>
<path>res:Resources\Monster\蛇4.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster5Texture_L</defName>
<path>res:Resources\Monster\蛇5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster5Texture_R</defName>
<path>res:Resources\Monster\蛇5.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster6Texture_L</defName>
<path>res:Resources\Monster\蛇6.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalSnakeMonster6Texture_R</defName>
<path>res:Resources\Monster\蛇6.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalRatMonster1Texture_L</defName>
<path>res:Resources\Monster\鼠鼠1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalRatMonster1Texture_R</defName>
<path>res:Resources\Monster\鼠鼠1.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>25</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<ImageDef>
<defName>BiologicalRatMonster2Texture_L</defName>
<path>res:Resources\Monster\鼠鼠2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
</ImageDef>
<ImageDef>
<defName>BiologicalRatMonster2Texture_R</defName>
<path>res:Resources\Monster\鼠鼠2.png</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>50</pixelsPerUnit>
<flipX>true</flipX>
</ImageDef>
<!-- Generic Bullet Texture (if not specific per monster) -->
<ImageDef>
<defName>GenericBulletTexture</defName>
<path>res:Texture/Bullet/GenericBullet</path>
<wCount>1</wCount>
<hCount>1</hCount>
<pixelsPerUnit>1500</pixelsPerUnit>
</ImageDef>
</Define>

View File

@@ -0,0 +1,87 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<BehaviorTreeDef>
<defName>Nanorobots</defName>
<label>纳米机器人行为</label>
<description>纳米机器人在战斗中的行为树。</description>
<Node className="ThinkNode_Sequence">
<Node className="JobNode_Wander"/>
<Node className="JobNode_Idle" value="120"/>
<Node className="JobNode_Nanorobots"/>
</Node>
</BehaviorTreeDef>
<EventDef>
<defName>PutNanorobots</defName>
<label>放置纳米机器人</label>
<description>在目标位置放置纳米机器人。</description>
<workClass>Event_EntityGenerater</workClass>
<parameter>{
"DefinitionsToChooseFrom": [
{"DefName": "Nanorobots", "DefTypeName": "MonsterDef"},
],
"Count": 1,
"LocationType": "AtCallerPosition"
}</parameter>
</EventDef>
<HediffDef>
<defName>SelfReplication</defName>
<label>自我复制</label>
<description>纳米机器人在战斗中自我复制。</description>
<time>-1</time>
<comps>
<li>
<compClass>HediffComp_ExecuteEvent</compClass>
<properties>{
"eventName":"PutNanorobots",
"cooldownSeconds":10
}
</properties>
</li>
</comps>
</HediffDef>
<MonsterDef>
<defName>Nanorobots</defName>
<label>纳米机器人</label>
<description>在体内进行修复和攻击的微型机器人。</description>
<behaviorTree>Nanorobots</behaviorTree>
<affiliation>nanorobot</affiliation>
<defaultHediff>
<li>SelfReplication</li>
</defaultHediff>
<attributes>
<health>30</health>
<defense>0</defense>
<moveSpeed>10</moveSpeed>
<attack>0</attack>
<attackSpeed>0</attackSpeed>
<attackRange>0</attackRange>
</attributes>
<drawingOrder>
<idle_left>
<textures>
<li>C0Texture</li>
</textures>
</idle_left>
<walk_left>
<textures>
<li>C0Texture</li>
</textures>
</walk_left>
<rangedAttack_left>
<textures>
<li>C0Texture</li>
</textures>
</rangedAttack_left>
<meleeAttack_down>
<textures>
<li>C0Texture</li>
</textures>
</meleeAttack_down>
</drawingOrder>
</MonsterDef>
</Define>

File diff suppressed because it is too large Load Diff