public void UpdatePushCharacterVsCharacter() { Rect rect1 = Fighter1.Pushbox.Rect; Rect rect2 = Fighter2.Pushbox.Rect; if (!rect1.Overlaps(rect2)) { return; } if (Fighter1.Position.x < Fighter2.Position.x) { Fighter1.ApplyPositionChange((rect1.xMax - rect2.xMin) * -1 / 2, Fighter1.Position.y); Fighter2.ApplyPositionChange((rect1.xMax - rect2.xMin) * 1 / 2, Fighter2.Position.y); } else if (Fighter1.Position.x > Fighter2.Position.x) { Fighter1.ApplyPositionChange((rect2.xMax - rect1.xMin) * 1 / 2, Fighter1.Position.y); Fighter2.ApplyPositionChange((rect2.xMax - rect1.xMin) * -1 / 2, Fighter1.Position.y); } }