Power - spotřebovává se když jsou zavřené dveře. Hráči mohou zavírat pouze dveře na svojí polovině mapy. Oprava bugu v MovementOpportunity, který způsoboval zpožďování intervalu.
This commit is contained in:
parent
7656707177
commit
25a62af483
22 changed files with 240 additions and 59 deletions
|
|
@ -21,9 +21,17 @@ public class CommandProcessor {
|
|||
Server.SendUpdateToAll([GameEvent.TOGGLE_MONITOR(pid, monitorState)]);
|
||||
break;
|
||||
case 2:
|
||||
bool doorState = playerCommand.Args[1] == 1; // TODO: block office doors
|
||||
bool doorState = playerCommand.Args[1] == 1;
|
||||
currentPlayer.state.doorStates[playerCommand.Args[0]] = doorState;
|
||||
MapManager.Get(currentPlayer.state.officeTileId).GetConnector(currentPlayer.state.neighbouringTiles[playerCommand.Args[0]]).Blocked = doorState;
|
||||
TileConnector? officeDoor = MapManager.Get(currentPlayer.state.officeTileId).GetConnector(currentPlayer.state.neighbouringTiles[playerCommand.Args[0]]);
|
||||
officeDoor.Blocked = doorState;
|
||||
|
||||
if (doorState){
|
||||
GameLogic.PowerConsumers[officeDoor] = (GameLogic.OfficeDoorUsage, pid);
|
||||
}
|
||||
else{
|
||||
GameLogic.PowerConsumers.Remove(officeDoor);
|
||||
}
|
||||
|
||||
Console.WriteLine($"C: Player {pid} {(doorState ? "closed" : "opened")} door {playerCommand.Args[0]}");
|
||||
Server.SendUpdateToAll([GameEvent.TOGGLE_DOOR_OFFICE(pid,playerCommand.Args[0] ,doorState)]);
|
||||
|
|
@ -31,7 +39,15 @@ public class CommandProcessor {
|
|||
case 3:
|
||||
TileConnector? door = MapManager.Get(playerCommand.Args[0]).GetConnector(playerCommand.Args[1]);
|
||||
if(door == null) return;
|
||||
|
||||
door.Blocked = playerCommand.Args[2] == 1;
|
||||
if (door.Blocked){
|
||||
GameLogic.PowerConsumers[door] = (GameLogic.RemoteDoorUsage, pid);
|
||||
}
|
||||
else{
|
||||
GameLogic.PowerConsumers.Remove(door);
|
||||
}
|
||||
|
||||
Console.WriteLine($"C: Player {pid} {(door.Blocked ? "closed" : "opened")} door {(playerCommand.Args[0], playerCommand.Args[1])}");
|
||||
Server.SendUpdateToAll([GameEvent.TOGGLE_DOOR_REMOTE(pid, (playerCommand.Args[0], playerCommand.Args[1]), door.Blocked)]);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue