(client) feat:添加游玩时UI相关贴图,添加3d模型场景按钮,添加多级调色进度条,添加SVG图片包,添加事件定义以及管理器,添加音频管理器,定义部分怪物,添加通信协议定义;fix:修复维度切换错误,修复LogUI显示不正确 (#55)

Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com>
Reviewed-on: #55
This commit is contained in:
2025-09-03 19:59:22 +08:00
parent 450b15e4df
commit 78849e0cc5
208 changed files with 16296 additions and 2228 deletions

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<EventDef>
<defName>MonsterAttack</defName>
<label>怪物袭击</label>
<description>生成一个怪物袭击事件</description>
<workClass>Event_EntityGenerater</workClass>
<value>
{
"EntityDefName":"chicken",
"EntityDefTypeName":"MonsterDef",
"LocationType":"OffMap"
}
</value>
</EventDef>
</Define>

View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
</Define>

View File

@ -94,4 +94,288 @@
<description>爪子</description>
<attributes>Claw</attributes>
</WeaponDef>
<!-- Bullet Definitions for Remote Monsters (assuming generic bullet texture) -->
<BulletDef>
<defName>MonsterA1Bullet</defName>
<attributes>
<health>1</health>
<moveSpeed>15</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>GenericBulletTexture</li>
</textures>
</idle_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>MonsterA2Bullet</defName>
<attributes>
<health>1</health>
<moveSpeed>18</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>GenericBulletTexture</li>
</textures>
</idle_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>MonsterD1Bullet</defName>
<attributes>
<health>1</health>
<moveSpeed>16</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>GenericBulletTexture</li>
</textures>
</idle_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>MonsterD2Bullet</defName>
<attributes>
<health>1</health>
<moveSpeed>19</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>GenericBulletTexture</li>
</textures>
</idle_down>
</drawingOrder>
</BulletDef>
<BulletDef>
<defName>BiologicalSnakeMonsterBullet</defName>
<attributes>
<health>1</health>
<moveSpeed>20</moveSpeed>
</attributes>
<drawingOrder>
<idle_down>
<textures>
<li>GenericBulletTexture</li>
</textures>
</idle_down>
</drawingOrder>
</BulletDef>
<!-- Weapon Definitions for all monsters -->
<!-- Mechanical Monsters -->
<WeaponDef>
<defName>Weapon_MonsterA1</defName>
<label>A怪物1的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>612</attack>
<attackSpeed>0.333</attackSpeed> <!-- 1 / 3s -->
<attackRange>10</attackRange> <!-- Assumed range -->
</attributes>
<bullet>MonsterA1Bullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterA2</defName>
<label>A怪物2的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>408</attack>
<attackSpeed>0.555</attackSpeed> <!-- 1 / 1.8s -->
<attackRange>12</attackRange>
</attributes>
<bullet>MonsterA2Bullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterB1</defName>
<label>B怪物1的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1148</attack>
<attackSpeed>0.2</attackSpeed> <!-- 1 / 5s -->
<attackRange>1.5</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterB2</defName>
<label>B怪物2的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1045</attack>
<attackSpeed>0.222</attackSpeed> <!-- 1 / 4.5s -->
<attackRange>1.5</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterC1</defName>
<label>C怪物1的近战武器</label>
<type>Melee</type>
<attributes>
<attack>728</attack>
<attackSpeed>0.5</attackSpeed> <!-- 1 / 2s -->
<attackRange>2</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterC2</defName>
<label>C怪物2的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1078</attack>
<attackSpeed>0.333</attackSpeed> <!-- 1 / 3s -->
<attackRange>2</attackRange>
</attributes>
</WeaponDef>
<!-- Hybrid Monsters -->
<WeaponDef>
<defName>Weapon_MonsterD1</defName>
<label>D怪物1的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>646</attack>
<attackSpeed>0.333</attackSpeed> <!-- 1 / 3s -->
<attackRange>11</attackRange>
</attributes>
<bullet>MonsterD1Bullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterD2</defName>
<label>D怪物2的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>412</attack>
<attackSpeed>0.555</attackSpeed> <!-- 1 / 1.8s -->
<attackRange>13</attackRange>
</attributes>
<bullet>MonsterD2Bullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterE1</defName>
<label>E怪物1的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1622</attack>
<attackSpeed>0.125</attackSpeed> <!-- 1 / 8s -->
<attackRange>1.5</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterE2</defName>
<label>E怪物2的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1875</attack>
<attackSpeed>0.125</attackSpeed> <!-- 1 / 8s -->
<attackRange>1.5</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterF1</defName>
<label>F怪物1的巨型近战武器</label>
<type>Melee</type>
<attributes>
<attack>2048</attack>
<attackSpeed>0.238</attackSpeed> <!-- 1 / 4.2s -->
<attackRange>2.5</attackRange> <!-- BOSS可能范围更大 -->
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MonsterF2</defName>
<label>F怪物2的巨型近战武器</label>
<type>Melee</type>
<attributes>
<attack>2254</attack>
<attackSpeed>0.222</attackSpeed> <!-- 1 / 4.5s -->
<attackRange>2.5</attackRange>
</attributes>
</WeaponDef>
<!-- Biological Monsters -->
<WeaponDef>
<defName>Weapon_MaskMonster</defName>
<label>面具怪物的近战武器</label>
<type>Melee</type>
<attributes>
<attack>389</attack> <!-- Base for M_MaskMonster1 -->
<attackSpeed>0.333</attackSpeed> <!-- 1 / 3s -->
<attackRange>1.2</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_MaskMonsterElite</defName>
<label>精英面具怪物的近战武器</label>
<type>Melee</type>
<attributes>
<attack>728</attack> <!-- Base for M_MaskMonster4 -->
<attackSpeed>0.385</attackSpeed> <!-- 1 / 2.6s -->
<attackRange>1.2</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_HologramMonster</defName>
<label>全息怪物的近战武器</label>
<type>Melee</type>
<attributes>
<attack>666</attack> <!-- Base for M_HologramMonster1 -->
<attackSpeed>0.166</attackSpeed> <!-- 1 / 6s -->
<attackRange>1.8</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_HologramMonsterElite</defName>
<label>精英全息怪物的近战武器</label>
<type>Melee</type>
<attributes>
<attack>1666</attack> <!-- Base for M_HologramMonster3 -->
<attackSpeed>0.166</attackSpeed> <!-- 1 / 6s -->
<attackRange>1.8</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_SnakeMonster</defName>
<label>蛇怪物的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>125</attack> <!-- Base for M_SnakeMonster1 -->
<attackSpeed>1</attackSpeed> <!-- 1 / 1s -->
<attackRange>8</attackRange>
</attributes>
<bullet>BiologicalSnakeMonsterBullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_SnakeMonsterElite</defName>
<label>精英蛇怪物的远程武器</label>
<type>Ranged</type>
<attributes>
<attack>246</attack> <!-- Base for M_SnakeMonster4 -->
<attackSpeed>1</attackSpeed> <!-- 1 / 1s -->
<attackRange>10</attackRange>
</attributes>
<bullet>BiologicalSnakeMonsterBullet</bullet>
</WeaponDef>
<WeaponDef>
<defName>Weapon_RatMonster</defName>
<label>鼠鼠的近战武器</label>
<type>Melee</type>
<attributes>
<attack>11</attack>
<attackSpeed>1</attackSpeed> <!-- 1 / 1s -->
<attackRange>0.8</attackRange>
</attributes>
</WeaponDef>
<WeaponDef>
<defName>Weapon_RatMonsterElite</defName>
<label>精英鼠鼠的近战武器</label>
<type>Melee</type>
<attributes>
<attack>22</attack>
<attackSpeed>0.5</attackSpeed> <!-- 1 / 2s -->
<attackRange>0.8</attackRange>
</attributes>
</WeaponDef>
</Define>

View File

@ -5,7 +5,7 @@
<defName>chicken</defName>
<label>不大聪明</label>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="EntityHealth(50)">
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
<Node className="JobGiver_RandomWander"/>
</Node>
@ -64,5 +64,828 @@
</idle_down>
</drawingOrder>
</MonsterDef>
<!-- Mechanical Monsters -->
<MonsterDef>
<defName>MonsterA1</defName>
<label>A怪物1 (普通)</label>
<description>机械类型怪物拥有远程攻击能力。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>4600</health>
<defense>100</defense>
<moveSpeed>2.5</moveSpeed>
</attributes>
<weapon>Weapon_MonsterA1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterA1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterA1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterA1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterA1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterA2</defName>
<label>A怪物2 (普通)</label>
<description>更快的机械远程怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>6000</health>
<defense>10</defense>
<moveSpeed>4</moveSpeed>
</attributes>
<weapon>Weapon_MonsterA2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterA2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterA2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterA2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterA2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterB1</defName>
<label>B怪物1 (普通)</label>
<description>防御较高的机械近战怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>5000</health>
<defense>400</defense>
<moveSpeed>1</moveSpeed>
</attributes>
<weapon>Weapon_MonsterB1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterB1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterB1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterB1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterB1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterB2</defName>
<label>B怪物2 (普通)</label>
<description>高血高防的机械近战怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>8000</health>
<defense>500</defense>
<moveSpeed>1.5</moveSpeed>
</attributes>
<weapon>Weapon_MonsterB2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterB2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterB2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterB2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterB2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterC1</defName>
<label>C怪物1 (精英)</label>
<description>血量和防御极高的精英机械近战怪物。击杀后掉落10能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>22000</health>
<defense>800</defense>
<moveSpeed>1</moveSpeed>
</attributes>
<weapon>Weapon_MonsterC1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterC1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterC1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterC1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterC1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>10</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterC2</defName>
<label>C怪物2 (精英)</label>
<description>血量极高的精英机械近战怪物攻击力强大。击杀后掉落10能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>22000</health>
<defense>450</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_MonsterC2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>MechanicalMonsterC2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>MechanicalMonsterC2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>MechanicalMonsterC2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>MechanicalMonsterC2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>10</tag_dropEnergyOnDefeat>
</MonsterDef>
<!-- Hybrid Monsters -->
<MonsterDef>
<defName>MonsterD1</defName>
<label>D怪物1 (普通)</label>
<description>混合类型怪物拥有远程攻击能力。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>6400</health>
<defense>50</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_MonsterD1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterD1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterD1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterD1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterD1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterD2</defName>
<label>D怪物2 (普通)</label>
<description>混合类型怪物高速远程攻击。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>7200</health>
<defense>0</defense>
<moveSpeed>3</moveSpeed>
</attributes>
<weapon>Weapon_MonsterD2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterD2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterD2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterD2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterD2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterE1</defName>
<label>E怪物1 (普通)</label>
<description>混合类型近战怪物高速。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>6550</health>
<defense>240</defense>
<moveSpeed>3</moveSpeed>
</attributes>
<weapon>Weapon_MonsterE1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterE1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterE1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterE1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterE1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterE2</defName>
<label>E怪物2 (普通)</label>
<description>更强大的混合类型近战怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>9120</health>
<defense>320</defense>
<moveSpeed>3</moveSpeed>
</attributes>
<weapon>Weapon_MonsterE2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterE2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterE2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterE2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterE2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterF1</defName>
<label>F怪物1 (关卡11BOSS)</label>
<description>关卡BOSS血量和防御极高近战爆发强。击杀后掉落50能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>42000</health>
<defense>770</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_MonsterF1</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterF1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterF1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterF1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterF1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>50</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MonsterF2</defName>
<label>F怪物2 (关卡11BOSS)</label>
<description>终极关卡BOSS超高血量和攻击力。击杀后掉落50能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>48000</health>
<defense>560</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_MonsterF2</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>HybridMonsterF2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>HybridMonsterF2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>HybridMonsterF2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>HybridMonsterF2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>50</tag_dropEnergyOnDefeat>
</MonsterDef>
<!-- Biological Monsters -->
<MonsterDef>
<defName>MaskMonster1</defName>
<label>面具1/2/3 (普通)</label>
<description>快速生物近战怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>4800</health>
<defense>66</defense>
<moveSpeed>8</moveSpeed>
</attributes>
<weapon>Weapon_MaskMonster</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalMaskMonster1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalMaskMonster1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalMaskMonster1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalMaskMonster1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>MaskMonster4</defName>
<label>面具4/5/6 (精英)</label>
<description>更强大的快速精英生物近战怪物。击杀后掉落10能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>9600</health>
<defense>132</defense>
<moveSpeed>8</moveSpeed>
</attributes>
<weapon>Weapon_MaskMonsterElite</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalMaskMonster4Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalMaskMonster4Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalMaskMonster4Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalMaskMonster4Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>10</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>HologramMonster1</defName>
<label>全息1/2 (普通)</label>
<description>特殊的生物近战怪物无移动速度。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>6666</health>
<defense>-66</defense>
<moveSpeed>0</moveSpeed>
</attributes>
<weapon>Weapon_HologramMonster</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalHologramMonster1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalHologramMonster1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalHologramMonster1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalHologramMonster1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>HologramMonster3</defName>
<label>全息3/4 (精英)</label>
<description>更强大的精英生物近战怪物无移动速度。击杀后掉落10能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>16666</health>
<defense>-166</defense>
<moveSpeed>0</moveSpeed>
</attributes>
<weapon>Weapon_HologramMonsterElite</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalHologramMonster3Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalHologramMonster3Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalHologramMonster3Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalHologramMonster3Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>10</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>SnakeMonster1</defName>
<label>蛇1/2/3 (普通)</label>
<description>生物远程怪物。击杀后掉落5能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>5630</health>
<defense>78</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_SnakeMonster</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalSnakeMonster1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalSnakeMonster1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalSnakeMonster1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalSnakeMonster1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>5</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>SnakeMonster4</defName>
<label>蛇4/5/6 (精英)</label>
<description>更强大的精英生物远程怪物。击杀后掉落10能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>11260</health>
<defense>156</defense>
<moveSpeed>2</moveSpeed>
</attributes>
<weapon>Weapon_SnakeMonsterElite</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalSnakeMonster4Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalSnakeMonster4Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalSnakeMonster4Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalSnakeMonster4Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>10</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>RatMonster1</defName>
<label>鼠鼠1 (普通)</label>
<description>弱小的生物近战怪物每11秒移动一次。击杀后掉落1能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>111</health>
<defense>1</defense>
<moveSpeed>11</moveSpeed>
</attributes>
<weapon>Weapon_RatMonster</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalRatMonster1Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalRatMonster1Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalRatMonster1Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalRatMonster1Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>1</tag_dropEnergyOnDefeat>
</MonsterDef>
<MonsterDef>
<defName>RatMonster2</defName>
<label>鼠鼠2 (精英)</label>
<description>更强大的精英生物近战怪物每22秒移动一次。击杀后掉落2能量。</description>
<behaviorTree>
<Node className="ThinkNode_Conditional" value="HasEnemyInSight()">
<Node className="JobGiver_AttackJob"/>
</Node>
<Node className="JobGiver_RandomWander"/>
</behaviorTree>
<affiliation>monster</affiliation>
<attributes>
<health>222</health>
<defense>2</defense>
<moveSpeed>22</moveSpeed>
</attributes>
<weapon>Weapon_RatMonsterElite</weapon>
<drawingOrder>
<idle_down name="Body">
<textures>
<li>BiologicalRatMonster2Texture</li>
</textures>
</idle_down>
<walk_down name="Body">
<textures>
<li>BiologicalRatMonster2Texture</li>
</textures>
</walk_down>
<meleeAttack_down name="Body">
<textures>
<li>BiologicalRatMonster2Texture</li>
</textures>
</meleeAttack_down>
<rangedAttack_down name="Body">
<textures>
<li>BiologicalRatMonster2Texture</li>
</textures>
</rangedAttack_down>
</drawingOrder>
<tag_dropEnergyOnDefeat>2</tag_dropEnergyOnDefeat>
</MonsterDef>
</Define>

View File

@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<Define>
<!-- ImageDefs for Mechanical Monsters -->
<ImageDef>
<defName>MechanicalMonsterA1Texture</defName>
<path>res:Texture/Monster/机械/A怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterA2Texture</defName>
<path>res:Texture/Monster/机械/A怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB1Texture</defName>
<path>res:Texture/Monster/机械/B怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterB2Texture</defName>
<path>res:Texture/Monster/机械/B怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC1Texture</defName>
<path>res:Texture/Monster/机械/C怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>MechanicalMonsterC2Texture</defName>
<path>res:Texture/Monster/机械/C怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<!-- ImageDefs for Hybrid Monsters -->
<ImageDef>
<defName>HybridMonsterD1Texture</defName>
<path>res:Texture/Monster/混合/D怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>HybridMonsterD2Texture</defName>
<path>res:Texture/Monster/混合/D怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE1Texture</defName>
<path>res:Texture/Monster/混合/E怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>HybridMonsterE2Texture</defName>
<path>res:Texture/Monster/混合/E怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF1Texture</defName>
<path>res:Texture/Monster/混合/F怪物1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>HybridMonsterF2Texture</defName>
<path>res:Texture/Monster/混合/F怪物2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<!-- ImageDefs for Biological Monsters -->
<ImageDef>
<defName>BiologicalMaskMonster1Texture</defName>
<path>res:Texture/Monster/生物/面具1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<!-- <ImageDef>
<defName>BiologicalMaskMonster4Texture</defName>
<path>res:Texture/Monster/生物/面具4</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef> -->
<ImageDef>
<defName>BiologicalHologramMonster1Texture</defName>
<path>res:Texture/Monster/生物/全息1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<!-- <ImageDef>
<defName>BiologicalHologramMonster3Texture</defName>
<path>res:Texture/Monster/生物/全息3</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef> -->
<ImageDef>
<defName>BiologicalSnakeMonster1Texture</defName>
<path>res:Texture/Monster/生物/蛇1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<!-- <ImageDef>
<defName>BiologicalSnakeMonster4Texture</defName>
<path>res:Texture/Monster/生物/蛇4</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef> -->
<!-- <ImageDef>
<defName>BiologicalRatMonster1Texture</defName>
<path>res:Texture/Monster/生物/鼠鼠1</path>
<wCount>1</wCount>
<hCount>1</hCount>
</ImageDef>
<ImageDef>
<defName>BiologicalRatMonster2Texture</defName>
<path>res:Texture/Monster/生物/鼠鼠2</path>
<wCount>1</wCount>
<hCount>1</hCount>
</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>
</ImageDef>
</Define>