mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-29 06:52:29 +08:00
fix: 添加引力属性并优化掉落物收集逻辑
This commit is contained in:
@@ -10,26 +10,26 @@ signal energyChanged(energy: float, dontChangeDirection: bool)
|
|||||||
const TITLE_FLAG = INF
|
const TITLE_FLAG = INF
|
||||||
var fields = {
|
var fields = {
|
||||||
"生存": TITLE_FLAG,
|
"生存": TITLE_FLAG,
|
||||||
FieldStore.Entity.HEAL_ABILITY: 1,
|
|
||||||
FieldStore.Entity.MAX_HEALTH: 100,
|
FieldStore.Entity.MAX_HEALTH: 100,
|
||||||
|
FieldStore.Entity.HEAL_ABILITY: 1,
|
||||||
FieldStore.Entity.EXTRA_APPLE_MAX: 0,
|
FieldStore.Entity.EXTRA_APPLE_MAX: 0,
|
||||||
FieldStore.Entity.DROP_APPLE_RATE: 0,
|
FieldStore.Entity.DROP_APPLE_RATE: 0,
|
||||||
FieldStore.Entity.PENARATION_RESISTANCE: 0,
|
FieldStore.Entity.PENARATION_RESISTANCE: 0,
|
||||||
"储能": TITLE_FLAG,
|
"储能": TITLE_FLAG,
|
||||||
FieldStore.Entity.ENERGY_MULTIPILER: 1,
|
|
||||||
FieldStore.Entity.SAVE_ENERGY: 1,
|
|
||||||
FieldStore.Entity.ENERGY_REGENERATION: 1,
|
|
||||||
FieldStore.Entity.MAX_ENERGY: 200,
|
FieldStore.Entity.MAX_ENERGY: 200,
|
||||||
|
FieldStore.Entity.SAVE_ENERGY: 1,
|
||||||
|
FieldStore.Entity.ENERGY_MULTIPILER: 1,
|
||||||
|
FieldStore.Entity.ENERGY_REGENERATION: 1,
|
||||||
"子弹": TITLE_FLAG,
|
"子弹": TITLE_FLAG,
|
||||||
FieldStore.Entity.PENERATE: 0,
|
|
||||||
FieldStore.Entity.OFFSET_SHOOT: 3,
|
FieldStore.Entity.OFFSET_SHOOT: 3,
|
||||||
|
FieldStore.Entity.PENERATE: 0,
|
||||||
FieldStore.Entity.EXTRA_BULLET_COUNT: 0,
|
FieldStore.Entity.EXTRA_BULLET_COUNT: 0,
|
||||||
FieldStore.Entity.BULLET_SPLIT: 0,
|
FieldStore.Entity.BULLET_SPLIT: 0,
|
||||||
FieldStore.Entity.BULLET_REFRACTION: 0,
|
FieldStore.Entity.BULLET_REFRACTION: 0,
|
||||||
FieldStore.Entity.BULLET_TRACE: 0,
|
FieldStore.Entity.BULLET_TRACE: 0,
|
||||||
"速度": TITLE_FLAG,
|
"速度": TITLE_FLAG,
|
||||||
FieldStore.Entity.MOVEMENT_SPEED: 1,
|
|
||||||
FieldStore.Entity.ATTACK_SPEED: 1,
|
FieldStore.Entity.ATTACK_SPEED: 1,
|
||||||
|
FieldStore.Entity.MOVEMENT_SPEED: 1,
|
||||||
"伤害": TITLE_FLAG,
|
"伤害": TITLE_FLAG,
|
||||||
FieldStore.Entity.DAMAGE_MULTIPILER: 1,
|
FieldStore.Entity.DAMAGE_MULTIPILER: 1,
|
||||||
FieldStore.Entity.CRIT_RATE: 0.05,
|
FieldStore.Entity.CRIT_RATE: 0.05,
|
||||||
@@ -42,6 +42,7 @@ var fields = {
|
|||||||
FieldStore.Entity.FEED_COUNT_CAN_MADE: 1,
|
FieldStore.Entity.FEED_COUNT_CAN_MADE: 1,
|
||||||
"掉落物": TITLE_FLAG,
|
"掉落物": TITLE_FLAG,
|
||||||
FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS: 60,
|
FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS: 60,
|
||||||
|
FieldStore.Entity.GRAVITY: 10,
|
||||||
}
|
}
|
||||||
var attackCooldownMap = {
|
var attackCooldownMap = {
|
||||||
0: 100
|
0: 100
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ func _physics_process(_delta):
|
|||||||
linear_velocity = Vector2.ZERO
|
linear_velocity = Vector2.ZERO
|
||||||
else:
|
else:
|
||||||
var direction = (targetPlayer.position - position).normalized()
|
var direction = (targetPlayer.position - position).normalized()
|
||||||
var speed = 10000.0 / ((targetPlayer.position - position).length() ** (1 / 3.0))
|
var speed = 1000.0 * targetPlayer.fields.get(FieldStore.Entity.GRAVITY) / ((targetPlayer.position - position).length() ** (1 / 3.0))
|
||||||
apply_central_force(direction * speed)
|
apply_central_force(direction * speed)
|
||||||
angular_velocity = linear_velocity.length() ** (1.0 / 2.25) # 角速度=线速度的2.25次根号
|
angular_velocity = linear_velocity.length() ** (1.0 / 2.25) # 角速度=线速度的2.25次根号
|
||||||
if position.distance_to(targetPlayer.position) < targetPlayer.fields.get(FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS):
|
if position.distance_to(targetPlayer.position) < targetPlayer.fields.get(FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS):
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ enum Entity {
|
|||||||
DROPPED_ITEM_COLLECT_RADIUS,
|
DROPPED_ITEM_COLLECT_RADIUS,
|
||||||
BULLET_SPLIT,
|
BULLET_SPLIT,
|
||||||
BULLET_REFRACTION,
|
BULLET_REFRACTION,
|
||||||
BULLET_TRACE
|
BULLET_TRACE,
|
||||||
|
GRAVITY
|
||||||
}
|
}
|
||||||
static var entityMap = {
|
static var entityMap = {
|
||||||
Entity.MAX_HEALTH: "生命上限",
|
Entity.MAX_HEALTH: "生命上限",
|
||||||
@@ -56,10 +57,11 @@ static var entityMap = {
|
|||||||
Entity.LUCK_VALUE: "幸运值",
|
Entity.LUCK_VALUE: "幸运值",
|
||||||
Entity.SAVE_ENERGY: "节能",
|
Entity.SAVE_ENERGY: "节能",
|
||||||
Entity.ENERGY_REGENERATION: "能量再生效率",
|
Entity.ENERGY_REGENERATION: "能量再生效率",
|
||||||
Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离",
|
Entity.DROPPED_ITEM_COLLECT_RADIUS: "拾取距离",
|
||||||
Entity.BULLET_SPLIT: "分裂",
|
Entity.BULLET_SPLIT: "分裂",
|
||||||
Entity.BULLET_REFRACTION: "折射",
|
Entity.BULLET_REFRACTION: "折射",
|
||||||
Entity.BULLET_TRACE: "追踪",
|
Entity.BULLET_TRACE: "追踪",
|
||||||
|
Entity.GRAVITY: "引力",
|
||||||
}
|
}
|
||||||
static var entityMapType = {
|
static var entityMapType = {
|
||||||
Entity.MAX_HEALTH: DataType.VALUE,
|
Entity.MAX_HEALTH: DataType.VALUE,
|
||||||
@@ -87,6 +89,7 @@ static var entityMapType = {
|
|||||||
Entity.BULLET_SPLIT: DataType.VALUE,
|
Entity.BULLET_SPLIT: DataType.VALUE,
|
||||||
Entity.BULLET_REFRACTION: DataType.VALUE,
|
Entity.BULLET_REFRACTION: DataType.VALUE,
|
||||||
Entity.BULLET_TRACE: DataType.PERCENT,
|
Entity.BULLET_TRACE: DataType.PERCENT,
|
||||||
|
Entity.GRAVITY: DataType.VALUE,
|
||||||
}
|
}
|
||||||
static var entityMaxValueMap = {
|
static var entityMaxValueMap = {
|
||||||
Entity.CRIT_RATE: 0.8,
|
Entity.CRIT_RATE: 0.8,
|
||||||
|
|||||||
Reference in New Issue
Block a user