forked from Mirrors/openclonk
club: introduced some sensible limits to the speed calculation
This means that ice, melted down to 10%, does not become a 9mm bullet anymore. It also means that all objects are at least visibly moved - e.g. when deflecting arrows.shapetextures
parent
df5a9ebb26
commit
26250d1a30
|
@ -212,9 +212,11 @@ func DoStrike(clonk, angle)
|
|||
var precision = BoundBy(Distance(obj->GetX(), obj->GetY(), GetX() + x, GetY() + y), 1, 15);
|
||||
|
||||
// mass/size factor
|
||||
var fac1 = 10000/Max(2, obj->GetMass());
|
||||
var fac1 = 10000 / Max(5, obj->GetMass());
|
||||
var fac2 = BoundBy(10-Abs(obj->GetDefCoreVal("Width", "DefCore")-obj->GetDefCoreVal("Height", "DefCore")), 1, 10);
|
||||
var speed = (3000 * fac1 * fac2) / 2 / 1000 / precision;
|
||||
speed = BoundBy(speed, 500, 1500);
|
||||
|
||||
obj->SetXDir((obj->GetXDir(100) + Sin(angle, speed)) / 2, div);
|
||||
obj->SetYDir((obj->GetYDir(100) - Cos(angle, speed)) / 2, div);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue