1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-06-08 20:57:13 +08:00

feat: 添加团子猫饲料和能量系统改进

- 新增团子猫饲料资源及配置
- 扩展FieldStore枚举添加节能和能量再生效率
- 改进EntityBase能量存储和使用逻辑
- 添加WorldManager运行时间追踪功能
This commit is contained in:
2025-08-29 10:26:41 +08:00
parent 7c863402bb
commit 506f0b0924
6 changed files with 80 additions and 6 deletions
+20
View File
@@ -0,0 +1,20 @@
[gd_scene load_steps=3 format=3 uid="uid://b4fgrf0av1wxw"]
[ext_resource type="PackedScene" uid="uid://bykwevnv7keeh" path="res://components/Abstracts/FeedCardBase.tscn" id="1_niyn3"]
[ext_resource type="Texture2D" uid="uid://dye4dai4tem2" path="res://resources/feeds/dango cat.svg" id="2_lxrba"]
[node name="DangoCat" instance=ExtResource("1_niyn3")]
avatarTexture = ExtResource("2_lxrba")
displayName = "团子猫"
quality = 3
fields = Array[int]([17, 19, 10, 20])
fieldValues = Array[float]([20.0, 0.05, 0.12, 0.1])
costs = Array[int]([0, 1])
costCounts = Array[int]([600, 400])
[node name="avatar" parent="container/info" index="0"]
texture = ExtResource("2_lxrba")
[node name="name" parent="container/info" index="1"]
displayName = "团子猫"
quality = 3
+1
View File
@@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="61.49876" height="117.72954" viewBox="0,0,61.49876,117.72954"><g transform="translate(-209.25062,-121.13523)"><g data-paper-data="{&quot;isPaintingLayer&quot;:true}" fill-rule="nonzero" stroke="#000000" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" style="mix-blend-mode: normal"><path d="M212.45298,121.45117c4.27378,-1.68745 3.99111,1.73524 23.39137,52.09733c11.02954,29.4711 19.76067,53.61865 16.55011,54.62697c-4.68511,1.80854 -12.36182,-22.62622 -23.39136,-52.09733c-16.89172,-48.16374 -21.64214,-52.78237 -16.55012,-54.62697z" data-paper-data="{&quot;index&quot;:null}" fill="#d99e82" stroke-width="0"/><path d="M231.66366,188.60508c-9.14277,0 -16.55443,-7.24756 -16.55443,-16.18792c0,-0.78587 -6.31352,-9.26285 -5.83245,-12.90786c0.40452,-2.76293 9.55433,-0.3003 11.53093,-0.54877c4.86102,-1.00187 5.4542,-2.73129 10.85596,-2.73129c1.57876,0 3.53694,-7.03389 6.07355,-5.48884c4.69159,2.85764 10.48089,15.87384 10.48089,21.67674c0,8.94036 -7.41168,16.18792 -16.55443,16.18792z" data-paper-data="{&quot;index&quot;:null}" fill="#fcb1e3" stroke-width="0"/><path d="M254.49773,207.54343c-3.95019,2.74614 -8.14073,4.33933 -12.55592,4.76162c-4.55084,0.43525 -8.46053,0.76116 -12.24363,-2.3874c-7.45344,-6.20327 -8.34307,-19.21037 -2.19171,-24.55014c1.44594,-1.25547 3.26814,-2.45373 4.53075,-3.07615c1.76698,-0.87105 1.91986,-1.00055 5.71606,-1.94996c6.04389,-0.9383 9.92917,-0.90806 14.55274,2.94c7.45344,6.20327 8.43469,16.90662 2.19171,24.26203z" data-paper-data="{&quot;index&quot;:null}" fill="#ffd983" stroke-width="0"/><path d="M232.32721,232.90573c-2.56114,-5.68425 -1.68892,-8.14742 -0.86406,-12.66379c1.34684,-6.26958 3.91259,-8.71043 9.84623,-10.86565c2.22542,-0.80831 7.74255,-2.38249 10.8511,-2.73285c3.62404,-0.35301 6.7831,0.58103 9.40006,2.45432c2.34915,1.68157 3.03827,2.18205 6.332,6.90816c2.62231,4.47889 4.4898,11.43587 0.7492,16.90554c-3.6011,5.26566 -11.02377,5.95331 -18.58348,5.95331c-8.33056,0 -15.04386,-0.62903 -17.73105,-5.95905z" data-paper-data="{&quot;index&quot;:null}" fill="#a6d388" stroke-width="0"/><path d="M231.87007,170.77208c-1.41148,0 -2.55572,-1.14423 -2.55572,-2.55573c0,-1.41149 1.14423,-2.55572 2.55572,-2.55572c1.4115,0 2.55572,1.14422 2.55572,2.55572c0,1.4115 -1.14422,2.55573 -2.55572,2.55573z" data-paper-data="{&quot;index&quot;:null}" fill="#000000" stroke-width="1.5"/><path d="M243.83381,164.03088z" data-paper-data="{&quot;index&quot;:null}" fill="#000000" stroke-width="0"/><path d="M245.61169,164.9569c0,1.37058 -0.22211,1.74084 -1.59269,1.74084c-0.68528,0 -0.93531,-0.35186 -1.3844,-0.80094c-0.44908,-0.44908 -0.80093,-0.99542 -0.80093,-1.68071c0,-1.37058 -0.07421,-1.74085 1.29638,-1.74085c1.37058,0 2.48163,1.11107 2.48163,2.48165z" data-paper-data="{&quot;index&quot;:null}" fill="#000000" stroke-width="1.5"/></g></g></svg><!--rotationCenter:44:44-->

After

Width:  |  Height:  |  Size: 2.9 KiB

+37
View File
@@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dye4dai4tem2"
path="res://.godot/imported/dango cat.svg-5ead84624f78d05211c9ff1694e3b14e.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://resources/feeds/dango cat.svg"
dest_files=["res://.godot/imported/dango cat.svg-5ead84624f78d05211c9ff1694e3b14e.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false
+9 -4
View File
@@ -26,13 +26,17 @@ var fields = {
FieldStore.Entity.DROP_APPLE_RATE: 0,
FieldStore.Entity.PENARATION_RESISTANCE: 0,
FieldStore.Entity.LUCK_VALUE: 1,
# 倍率
# 治疗
FieldStore.Entity.HEAL_ABILITY: 1,
FieldStore.Entity.ENERGY_MULTIPILER: 1,
# 价格减免
FieldStore.Entity.PRICE_REDUCTION: 0,
# 饲料
FieldStore.Entity.FEED_COUNT_SHOW: 3,
FieldStore.Entity.FEED_COUNT_CAN_MADE: 1,
# 储能
FieldStore.Entity.ENERGY_MULTIPILER: 1,
FieldStore.Entity.SAVE_ENERGY: 1,
FieldStore.Entity.ENERGY_REGENERATION: 1,
}
var inventory = {
ItemStore.ItemType.BASEBALL: 100,
@@ -42,7 +46,7 @@ var inventory = {
var inventoryMax = {
ItemStore.ItemType.BASEBALL: INF, # 无限
ItemStore.ItemType.BASKETBALL: INF,
ItemStore.ItemType.APPLE: 10, # 最多10个苹果
ItemStore.ItemType.APPLE: 5, # 最多5个苹果
}
@export var cooldownUnit: float = 100 # 100毫秒每次攻击
@@ -121,7 +125,7 @@ func _physics_process(_delta: float) -> void:
if isPlayer() or is_instance_valid(currentFocusedBoss):
ai()
move_and_slide()
storeEnergy(0.01)
storeEnergy(0.01 * fields.get(FieldStore.Entity.ENERGY_REGENERATION))
# 通用方法
func applyLevel():
@@ -165,6 +169,7 @@ func storeEnergy(value: float):
energy += value * fields.get(FieldStore.Entity.ENERGY_MULTIPILER)
energyChanged.emit(energy)
func useEnergy(value: float):
value /= fields.get(FieldStore.Entity.SAVE_ENERGY)
var state = energy >= value
if state:
energy -= value
+7 -1
View File
@@ -26,6 +26,8 @@ enum Entity {
FEED_COUNT_CAN_MADE,
MAX_ENERGY,
LUCK_VALUE,
SAVE_ENERGY,
ENERGY_REGENERATION,
}
static var entityMap = {
Entity.MAX_HEALTH: "生命上限",
@@ -38,7 +40,7 @@ static var entityMap = {
Entity.OFFSET_SHOOT: "散射角",
Entity.HEAL_ABILITY: "治疗量",
Entity.EXTRA_APPLE_MAX: "苹果上限",
Entity.ENERGY_MULTIPILER: "倍率",
Entity.ENERGY_MULTIPILER: "能倍率",
Entity.PENARATION_RESISTANCE: "穿透抗性",
Entity.PRICE_REDUCTION: "饲料降价",
Entity.EXTRA_BULLET_COUNT: "额外子弹",
@@ -47,6 +49,8 @@ static var entityMap = {
Entity.FEED_COUNT_CAN_MADE: "可制作饲料",
Entity.MAX_ENERGY: "能量上限",
Entity.LUCK_VALUE: "幸运值",
Entity.SAVE_ENERGY: "节能",
Entity.ENERGY_REGENERATION: "能量再生效率",
}
static var entityMapType = {
Entity.MAX_HEALTH: DataType.VALUE,
@@ -68,6 +72,8 @@ static var entityMapType = {
Entity.FEED_COUNT_CAN_MADE: DataType.VALUE,
Entity.MAX_ENERGY: DataType.VALUE,
Entity.LUCK_VALUE: DataType.VALUE,
Entity.SAVE_ENERGY: DataType.PERCENT,
Entity.ENERGY_REGENERATION: DataType.PERCENT,
}
static var entityMaxValueMap = {
Entity.CRIT_RATE: 1,
+6 -1
View File
@@ -3,10 +3,15 @@ class_name WorldManager
static var rootNode: Node2D
static var tree: SceneTree
static var runningTime: float = 0
func _ready():
tree = get_tree()
rootNode = self
func _physics_process(_delta):
func _physics_process(delta):
runningTime += delta
if EntityBase.mobCount() == 0:
UIState.setPanel("MakeFeed")
static func getTime():
return runningTime