OneNightDuel/FNAF_Server/CommandProcessor.cs

30 lines
1.4 KiB
C#
Raw Normal View History

using PacketLib;
namespace FNAF_Server;
public class CommandProcessor {
public static void Evaluate(PlayerCommand[] commands, int pid) {
ServerPlayer currentPlayer = Server.Players[pid];
foreach (var playerCommand in commands){
switch (playerCommand.ID){
case 0:
Console.WriteLine($"C: Player {pid} switched to camera {playerCommand.Args[0]}");
Server.SendUpdateToAll([GameEvent.SWITCH_CAM(pid, playerCommand.Args[0])]);
break;
case 1:
bool monitorState = !currentPlayer.state.monitorUp;
currentPlayer.state.monitorUp = monitorState;
Console.WriteLine($"C: Player {pid} toggled camera {(monitorState ? "on" : "off")}");
Server.SendUpdateToAll([GameEvent.TOGGLE_MONITOR(pid, monitorState)]);
break;
case 2:
bool doorState = !currentPlayer.state.doorStates[playerCommand.Args[0]];
currentPlayer.state.doorStates[playerCommand.Args[0]] = doorState;
Console.WriteLine($" Player {pid} {(doorState ? "closed" : "opened")} door {playerCommand.Args[0]}");
Server.SendUpdateToAll([GameEvent.TOGGLE_DOOR_OFFICE(pid,playerCommand.Args[0] ,doorState)]);
break;
}
}
}
}