diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index e809499..cf25962 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -10,26 +10,26 @@ signal energyChanged(energy: float, dontChangeDirection: bool) const TITLE_FLAG = INF var fields = { "生存": TITLE_FLAG, - FieldStore.Entity.HEAL_ABILITY: 1, FieldStore.Entity.MAX_HEALTH: 100, + FieldStore.Entity.HEAL_ABILITY: 1, FieldStore.Entity.EXTRA_APPLE_MAX: 0, FieldStore.Entity.DROP_APPLE_RATE: 0, FieldStore.Entity.PENARATION_RESISTANCE: 0, "储能": TITLE_FLAG, - FieldStore.Entity.ENERGY_MULTIPILER: 1, - FieldStore.Entity.SAVE_ENERGY: 1, - FieldStore.Entity.ENERGY_REGENERATION: 1, FieldStore.Entity.MAX_ENERGY: 200, + FieldStore.Entity.SAVE_ENERGY: 1, + FieldStore.Entity.ENERGY_MULTIPILER: 1, + FieldStore.Entity.ENERGY_REGENERATION: 1, "子弹": TITLE_FLAG, - FieldStore.Entity.PENERATE: 0, FieldStore.Entity.OFFSET_SHOOT: 3, + FieldStore.Entity.PENERATE: 0, FieldStore.Entity.EXTRA_BULLET_COUNT: 0, FieldStore.Entity.BULLET_SPLIT: 0, FieldStore.Entity.BULLET_REFRACTION: 0, FieldStore.Entity.BULLET_TRACE: 0, "速度": TITLE_FLAG, - FieldStore.Entity.MOVEMENT_SPEED: 1, FieldStore.Entity.ATTACK_SPEED: 1, + FieldStore.Entity.MOVEMENT_SPEED: 1, "伤害": TITLE_FLAG, FieldStore.Entity.DAMAGE_MULTIPILER: 1, FieldStore.Entity.CRIT_RATE: 0.05, @@ -42,6 +42,7 @@ var fields = { FieldStore.Entity.FEED_COUNT_CAN_MADE: 1, "掉落物": TITLE_FLAG, FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS: 60, + FieldStore.Entity.GRAVITY: 10, } var attackCooldownMap = { 0: 100 diff --git a/scripts/Statemachine/ItemDropped.gd b/scripts/Statemachine/ItemDropped.gd index 4bbbce5..4f980d2 100644 --- a/scripts/Statemachine/ItemDropped.gd +++ b/scripts/Statemachine/ItemDropped.gd @@ -28,7 +28,7 @@ func _physics_process(_delta): linear_velocity = Vector2.ZERO else: 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) 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): diff --git a/scripts/Tools/FieldStore.gd b/scripts/Tools/FieldStore.gd index 351db76..501751b 100644 --- a/scripts/Tools/FieldStore.gd +++ b/scripts/Tools/FieldStore.gd @@ -32,7 +32,8 @@ enum Entity { DROPPED_ITEM_COLLECT_RADIUS, BULLET_SPLIT, BULLET_REFRACTION, - BULLET_TRACE + BULLET_TRACE, + GRAVITY } static var entityMap = { Entity.MAX_HEALTH: "生命上限", @@ -56,10 +57,11 @@ static var entityMap = { Entity.LUCK_VALUE: "幸运值", Entity.SAVE_ENERGY: "节能", Entity.ENERGY_REGENERATION: "能量再生效率", - Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离", + Entity.DROPPED_ITEM_COLLECT_RADIUS: "拾取距离", Entity.BULLET_SPLIT: "分裂", Entity.BULLET_REFRACTION: "折射", Entity.BULLET_TRACE: "追踪", + Entity.GRAVITY: "引力", } static var entityMapType = { Entity.MAX_HEALTH: DataType.VALUE, @@ -87,6 +89,7 @@ static var entityMapType = { Entity.BULLET_SPLIT: DataType.VALUE, Entity.BULLET_REFRACTION: DataType.VALUE, Entity.BULLET_TRACE: DataType.PERCENT, + Entity.GRAVITY: DataType.VALUE, } static var entityMaxValueMap = { Entity.CRIT_RATE: 0.8,