mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-30 07:51:54 +08:00
refactor(MathTool): 重命名随机数生成方法并优化蘑菇矿挖爪属性
将 randomVector2In 重命名为 sampleInCircle,randomRingPoint 重命名为 sampleInRing,randChoiceWeightsFrom 重命名为 randomChoiceFromWeights,signBeforeStr 重命名为 toSigned 调整蘑菇矿挖爪的攻击力和掉落率,减少基础伤害至0.5,固定掉落率为0.1,优化物品掉落逻辑
This commit is contained in:
@@ -15,7 +15,7 @@ func _ready():
|
||||
func _physics_process(_delta):
|
||||
if is_instance_valid(UIState.player):
|
||||
position = UIState.player.position + constantOffset
|
||||
position += MathTool.randomVector2In(shakeIntensity)
|
||||
position += MathTool.sampleInCircle(shakeIntensity)
|
||||
offset += ((get_global_mouse_position() - UIState.player.position).clampf(-100, 100) - offset) * 0.15
|
||||
|
||||
static func shake(millseconds: float, intensity: float = 10, steper: Callable = func(currentValue, _totalValue, _restPercent): return currentValue):
|
||||
|
||||
@@ -2,16 +2,13 @@ class_name MathTool
|
||||
|
||||
static func rate(value: float) -> bool:
|
||||
return randf() < value
|
||||
static func randomVector2In(offset: float):
|
||||
return Vector2(
|
||||
randf_range(-offset, offset),
|
||||
randf_range(-offset, offset)
|
||||
)
|
||||
static func randomRingPoint(innerRadius: float, outerRadius: float):
|
||||
static func sampleInCircle(radius: float):
|
||||
return sampleInRing(0, radius)
|
||||
static func sampleInRing(innerRadius: float, outerRadius: float):
|
||||
return Vector2.from_angle(randf_range(0, 2 * PI)) * randf_range(innerRadius, outerRadius)
|
||||
static func randomChoiceFrom(array: Array):
|
||||
return array[randi() % array.size()]
|
||||
static func randChoiceWeightsFrom(indexes: Array, weights: Array[int]):
|
||||
static func randomChoiceFromWeights(indexes: Array, weights: Array[int]):
|
||||
var totals: Array = []
|
||||
var index = 0
|
||||
for i in indexes:
|
||||
@@ -19,7 +16,7 @@ static func randChoiceWeightsFrom(indexes: Array, weights: Array[int]):
|
||||
totals.append(i)
|
||||
index += 1
|
||||
return randomChoiceFrom(totals)
|
||||
static func signBeforeStr(value: float):
|
||||
static func toSigned(value: float):
|
||||
return ("+" if value > 0 else "-" if value < 0 else "") + str(abs(value))
|
||||
static func percent(value: float):
|
||||
return value / 100
|
||||
|
||||
Reference in New Issue
Block a user