VedalAI / neuro-amongus

Among Us Plugin for Neuro-sama
GNU General Public License v3.0
531 stars 50 forks source link

Obtain completion times for all tasks (and all steps of those tasks) #67

Closed Alexejhero closed 1 year ago

Alexejhero commented 1 year ago

For the purposes of faking tasks as impostor, we need to know a completion time for each step of each task. #8 added something similar (that was later removed) but the times don't seem to be accurate, plus it doesn't take into account all steps of the tasks. If someone could help us gather the information about how long each task should be faked for that would be much appreciated.

My suggestion is that we get a min and max completion time and at runtime we generate a random number from that range.

Gargafield commented 1 year ago

After doing some testing, and just running around doing the tasks, here are my findings for The Skeld:

The Skeld:
    Download Data: 11-12 sec
    Divert Power: 3-5 sec
    Upload Data: 10-11 sec
    Clean Vent: 5-6 sec
Admin:
    Swipe Keycard: 5-9 sec
Cafeteria:
    Empty Garbage: 5 sec
MedBay:
    Submit Scan: 10-12 sec
    Inspect Sample: 4-7 sec (Both Tasks) 
Electrical:
    Fix Wiring: 5-8 sec
    Calibrate Distributor: 7-10 sec
Engines: 
    Align Engine Output: 3-5 sec
O2:
    Empty Chute: 4-5 sec
    Clean 02 Filter: 8-10 sec
Reactor:
    Unlock Manifolds: 7-13 sec
    Start Reactor: 15-18 sec
Navigation:
    Chart Course: 3-6 sec
    Stabilize Steering: 3-4 sec
Shields:
    Prime Shield: 2-4 sec
Storage:
    Fuel Engines: 5-6 sec (Both Tasks)
Weapons:
    Clear Asteroids: 10-12 sec
simonkellly commented 1 year ago

After doing some testing, and just running around doing the tasks, here are my findings for The Skeld:

It's probably best to use a c#'s Stopwatch or something (like getting Time.time before and after solving the task or whatever) to then time how long it takes the implemented solver to do the task, rather than the human which may be faster / slower. That way it will be indistuinguishable from non impostor gameplay

Alexejhero commented 1 year ago

I agree, this is a better approach. If someone wants to open a PR to implement this feel free to do so, otherwise i will implement it at some point.

krogenth commented 1 year ago

There are a couple minor annoyances I can see with timing it mod side at the moment:

krogenth commented 1 year ago

@Alexejhero is this task being used for the actual collection of completion times now?

Alexejhero commented 1 year ago

yep. i want to collect that data myself though to ensure accuracy

and by collect it myself i mean killing the bot in freeplay on all maps and letting it fly from task to task tens of times

Alexejhero commented 1 year ago

i did this :)