[RAX=0x33307EE0 + RCX=0x0 * 0x8] == [0x33307EE0+0x0] = 0x33307EE0
compare whatever is at Address 0x33307EE0 with r9 register
[RAX=0x33307EE0 + RCX=0x377F1FD0 * 0x8] == [ 0x33307EE0 + 0x1bbf8fe80] = 0x1ef297d60
mov into rcx whatever is there at 0x1ef297d60
you really need to find some reading/viewing material on assembly
it is always better to read a book on ...
By finding the constructor for the structure type that you're looking at, making note of the VTable address, and adding the indicated offsets to obtain the concrete function pointers for the calls in question.
This depends on the implementation of the game in the browser.
The API is likely a RESTful API and the format for data exchange is likely JSON.
A modern full stack web development course will often cover both of these subjects.
In terms of reverse engineering the API itself, there's not a huge challenge. Restful APIs and JSON are chosen because they're easy ...
UnityPlayer.dll is the engine itself - it doesn't contain any user-made scripts. Assembly-CSharp.dll is the main user script dll, and if, as you say, it isn't being affected, you're either modifying an unused class, or they moved to il2cpp (in which case there will be a GameAssembly.dll next to the exe) and just forgot to remove the old files.
Maybe. If the Source File of the Classes are present you can reverse the Class names.
Unfortunatly there are no ways to retrieve Methods and Fields names. The only thing that you can do for that is renaming the fields and methods with unique names to make the code more readable.
As you said, the Lua engine is embedded directly into the game. It's inside plugins/GameManagerVC.dll (or GameManagerVC64.dll in case of 64-bit).
So, first step will be finding out, which version of Lua it is. So put this DLL into Ghidra or IDA Pro. The most easiest way of figuring out, what version of Lua it uses, is by searching for "Lua" string ...