mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-01 00:41:54 +08:00
feat: 添加新武器彩虹旗和紫水晶簇,调整饲料属性和数值
refactor: 重构子弹生成逻辑,支持分裂和折射效果 fix: 修复掉落物拾取范围和碰撞检测问题 style: 优化UI显示,添加武器品质和类型标签 docs: 更新字段描述,调整部分饲料名称和分类 perf: 优化数学工具函数,添加随机数处理工具 test: 调整波次生成逻辑,添加新敌人类型 build: 添加新资源文件和相关导入配置
This commit is contained in:
@@ -7,4 +7,20 @@ static func fromHurtbox(node: Node) -> EntityBase:
|
||||
var entity = texture.get_parent()
|
||||
if entity is EntityBase:
|
||||
return entity as EntityBase
|
||||
return null
|
||||
return null
|
||||
static func findClosetEntity(to: Vector2, fromTree: SceneTree, player: bool = false, mob: bool = false, excludes: Array[EntityBase] = []) -> EntityBase:
|
||||
var result = null
|
||||
var lastDistance = INF
|
||||
var nodes = []
|
||||
if player:
|
||||
nodes += fromTree.get_nodes_in_group("players")
|
||||
if mob:
|
||||
nodes += fromTree.get_nodes_in_group("mobs")
|
||||
for entity in nodes:
|
||||
if entity is EntityBase and entity not in excludes:
|
||||
if to.distance_to(entity.position) < lastDistance:
|
||||
lastDistance = to.distance_to(entity.position)
|
||||
result = entity
|
||||
return result
|
||||
static func findClosetPlayer(to: Vector2, fromTree: SceneTree, excludes: Array[EntityBase] = []) -> EntityBase:
|
||||
return findClosetEntity(to, fromTree, true, false, excludes)
|
||||
|
||||
@@ -28,7 +28,9 @@ enum Entity {
|
||||
LUCK_VALUE,
|
||||
SAVE_ENERGY,
|
||||
ENERGY_REGENERATION,
|
||||
DROPPED_ITEM_COLLECT_RADIUS
|
||||
DROPPED_ITEM_COLLECT_RADIUS,
|
||||
BULLET_SPLIT,
|
||||
BULLET_REFRACTION
|
||||
}
|
||||
static var entityMap = {
|
||||
Entity.MAX_HEALTH: "生命上限",
|
||||
@@ -44,7 +46,7 @@ static var entityMap = {
|
||||
Entity.ENERGY_MULTIPILER: "储能倍率",
|
||||
Entity.PENARATION_RESISTANCE: "穿透抗性",
|
||||
Entity.PRICE_REDUCTION: "饲料降价",
|
||||
Entity.EXTRA_BULLET_COUNT: "额外子弹",
|
||||
Entity.EXTRA_BULLET_COUNT: "多重射击",
|
||||
Entity.DROP_APPLE_RATE: "苹果掉落率",
|
||||
Entity.FEED_COUNT_SHOW: "饲料列表",
|
||||
Entity.FEED_COUNT_CAN_MADE: "可制作饲料",
|
||||
@@ -53,6 +55,8 @@ static var entityMap = {
|
||||
Entity.SAVE_ENERGY: "节能",
|
||||
Entity.ENERGY_REGENERATION: "能量再生效率",
|
||||
Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离",
|
||||
Entity.BULLET_SPLIT: "分裂",
|
||||
Entity.BULLET_REFRACTION: "折射",
|
||||
}
|
||||
static var entityMapType = {
|
||||
Entity.MAX_HEALTH: DataType.VALUE,
|
||||
@@ -77,6 +81,8 @@ static var entityMapType = {
|
||||
Entity.SAVE_ENERGY: DataType.PERCENT,
|
||||
Entity.ENERGY_REGENERATION: DataType.PERCENT,
|
||||
Entity.DROPPED_ITEM_COLLECT_RADIUS: DataType.VALUE,
|
||||
Entity.BULLET_SPLIT: DataType.VALUE,
|
||||
Entity.BULLET_REFRACTION: DataType.VALUE,
|
||||
}
|
||||
static var entityMaxValueMap = {
|
||||
Entity.CRIT_RATE: 0.8,
|
||||
@@ -96,7 +102,7 @@ static var entityApplier = {
|
||||
return true
|
||||
,
|
||||
Entity.EXTRA_BULLET_COUNT: func(entity, value):
|
||||
entity.fields[Entity.OFFSET_SHOOT] += value * 5
|
||||
entity.fields[Entity.OFFSET_SHOOT] += value * 3
|
||||
return true
|
||||
,
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
class_name MathTool
|
||||
|
||||
static func rate(value: float):
|
||||
static func rate(value: float) -> bool:
|
||||
return randf() < value
|
||||
static func randv2_range(offset: float):
|
||||
return Vector2(
|
||||
@@ -13,3 +13,5 @@ static func signBeforeStr(value: float):
|
||||
return ("+" if value > 0 else "-" if value < 0 else "") + str(abs(value))
|
||||
static func percent(value: float):
|
||||
return value / 100
|
||||
static func shrimpRate(value: float):
|
||||
return floor(value) + int(rate(value - floor(value)))
|
||||
|
||||
@@ -7,3 +7,12 @@ static func smallText(text: String, center: bool = true):
|
||||
if center:
|
||||
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
return label
|
||||
static func graySmallText(text: String, center: bool = true):
|
||||
var label = Label.new()
|
||||
label.text = text
|
||||
label.label_settings = LabelSettings.new()
|
||||
label.label_settings.font_size = 12
|
||||
label.label_settings.font_color = Color(0.6, 0.6, 0.6, 1)
|
||||
if center:
|
||||
label.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
|
||||
return label
|
||||
Reference in New Issue
Block a user