资源系统
在铁锈战争中,资源系统是游戏经济的核心。本章节将详细介绍如何创建和管理自定义资源,包括内置资源、全局资源和局部资源。
内置资源
铁锈战争提供了一些内置资源,可以直接在模组中使用:
常用内置资源
| 资源名称 | 说明 | 示例 |
|---|---|---|
| credits | 游戏中的主要货币,这个如果你的版本在1.14之前,建议写全 | price:1000 |
| energy | 能量资源,用于特殊能力,必须要有maxenergy | energy:100 |
| hp | 生命值 | hp:500 |
| shield | 护盾值 | shield:200 |
| ammo | 弹药 | ammo:10 |
标志资源
标志资源用于标记单位状态:
[core]
# 设置标志0和1
addResources:setFlag=1,3
# 检查标志
autoTrigger: if self.hasFlag(id:1)
# 取消标志
addResources:unsetFlag=1
全局资源
全局资源在整个游戏中共享,所有玩家单位都可以访问:
[global_resource_NAME] 全局资源定义
[global_resource_Gold]
displayName:金币
displayNameShort:¥
displayColor:#FFD700
iconImage:resources/gold_icon.png
全局资源属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| displayName | 资源显示名称 | displayName:金币 |
| displayNameShort | 资源短名称 | displayNameShort:¥ |
| displayColor | 显示颜色 | displayColor:#FFD700 |
| iconImage | 资源图标 | iconImage:resources/gold_icon.png |
| hidden | 是否隐藏 | hidden:true |
局部资源
局部资源仅在特定单位上存在:
[resource_NAME] 局部资源定义
[resource_MyResource]
displayName:自定义资源
displayNameShort:R
displayColor:#00FF00
资源生成
单位可以生成资源:
定时生成资源
[core]
generation_resources:credits:5,gold:1
generation_delay:40
generation_active:if not self.hp(lessThan=100)
资源生成属性说明
| 属性 | 说明 | 示例 |
|---|---|---|
| generation_resources | 生成的资源类型和数量 | generation_resources:credits:5,gold:1 |
| generation_delay | 生成间隔(帧) | generation_delay:40 |
| generation_active | 生成条件 | generation_active:if not self.hp(lessThan=100) |
资源使用
单位可以消耗资源来执行操作:
炮塔资源消耗
[turret_1]
resourceUsage:credits:5,energy:1
行为资源消耗
[action_special]
price:credits=100,gold=5
资源转换
可以创建资源转换系统:
资源转换行为
[action_convert]
text:转换资源
description:将金币转换为资金
price:gold=10
addResources:credits=100
buildSpeed:5s
资源检查
可以检查单位是否拥有足够资源:
条件检查
[hiddenAction_check]
autoTrigger:if self.hasResources(gold:5)
alsoTriggerAction:action_doSomething
逻辑检查
[action_special]
isVisible:if self.resource(type="gold", greaterThan=10)
完整资源系统示例
全局资源定义
[global_resource_Gold]
displayName:金币
displayNameShort:¥
displayColor:#FFD700
iconImage:resources/gold_icon.png
displayPos:1
[global_resource_Manpower]
displayName:人力
displayNameShort:♂
displayColor:#FF6347
iconImage:resources/manpower_icon.png
displayPos:2
资源生成单位
[core]
name:金矿
class:CustomUnitMetadata
price:800
maxHp:1000
mass:10000
techLevel:1
buildSpeed:0.002
radius:25
displayRadius:30
isBuilding:true
footprint:-1,-1,1,1
constructionFootprint:-2,-2,2,2
generation_resources:gold=2
generation_delay:60
[graphics]
image:buildings/gold_mine.png
image_wreak:buildings/gold_mine_wreak.png
image_shadow:AUTO
teamColorsUseHue:true
teamColoringMode:hueAdd
资源消耗单位
[core]
name:高级坦克
class:CustomUnitMetadata
price:credits=1500,gold=5
maxHp:2000
mass:20000
techLevel:2
buildSpeed:0.003
radius:25
displayRadius:30
fogOfWarSightRange:18
[graphics]
image:units/advanced_tank_base.png
image_wreak:units/advanced_tank_wreak.png
image_turret:units/advanced_tank_turret.png
image_shadow:AUTO
teamColorsUseHue:true
teamColoringMode:hueAdd
[movement]
movementType:LAND
moveSpeed:1.0
maxTurnSpeed:2
reverseSpeedPercentage:0.5
[attack]
canAttack:true
canAttackFlyingUnits:false
canAttackLandUnits:true
canAttackUnderwaterUnits:false
[turret_1]
x:0
y:0
projectile:advanced_bullet
turnSpeed:2
size:15
barrelX:0
barrelY:20
resourceUsage:gold=1
[projectile_1]
directDamage:100
life:60
speed:10
image:projectiles/advanced_bullet.png
drawType:1
color:#FF0000
资源转换建筑
[core]
name:资源交易所
class:CustomUnitMetadata
price:1200
maxHp:1200
mass:15000
techLevel:2
buildSpeed:0.004
radius:30
displayRadius:35
isBuilding:true
footprint:-1,-1,1,1
constructionFootprint:-2,-2,2,2
[graphics]
image:buildings/resource_exchange.png
image_wreak:buildings/resource_exchange_wreak.png
image_shadow:AUTO
teamColorsUseHue:true
teamColoringMode:hueAdd
[action_convert_gold_to_credits]
text:转换金币为资金
description:将10金币转换为1000资金
price:gold=10
addResources:credits=1000
buildSpeed:10s
displayType:action
[action_convert_credits_to_gold]
text:转换资金为金币
description:将1000资金转换为10金币
price:credits=1000
addResources:gold=10
buildSpeed:10s
displayType:action
注意事项
- 合理平衡资源生成和消耗
- 确保资源图标文件存在且路径正确
- 测试资源系统在多人游戏中的表现
- 避免资源数值过高导致游戏失衡
- 为资源系统提供清晰的UI显示