Rozsvěcení a zhasínání světel, sprity pro místnosti, indikátory rozsvícených světel, po konci hry je hráč vrácen do hlavního menu

This commit is contained in:
Perry 2026-03-16 20:43:53 +01:00
parent 25a62af483
commit 55fd052072
27 changed files with 338 additions and 113 deletions

View file

@ -95,7 +95,7 @@ public class EventProcessor {
case 10:
Console.WriteLine($"E: Spot:{e.Args[0]} turned {(e.Args[1] == 1 ? "on" : " off")}");
ClientEnemyManager.Get(e.Args[0]).Sprite.SetTexture(e.Args[1] == 1 ? 0 : 2);
ClientEnemyManager.Get(e.Args[0]).Sprite.SetTexture(e.Args[1] == 1 ? 0 : 1);
break;
case 11:
@ -110,7 +110,7 @@ public class EventProcessor {
break;
case 13:
Console.WriteLine($"E: power tick {e.Args[0]}: {e.Args[1]}");
// Console.WriteLine($"E: power tick {e.Args[0]}: {e.Args[1]}");
if (e.Args[0] == Client.Player.state.pid){
Client.Player.state.power = e.Args[1];
}
@ -120,7 +120,7 @@ public class EventProcessor {
break;
case 14:
case 14: // powerout
Console.WriteLine($"E: Player {e.Args[0]} powered out");
ClientMapManager.GetAllConnectors().Where(c =>
(c.Type == ConnectorType.DOOR_REMOTE || c.Type == ConnectorType.DOOR_OFFICE) &&
@ -130,6 +130,9 @@ public class EventProcessor {
if(c.Type == ConnectorType.DOOR_REMOTE)
UIManager.ChangeRemoteDoorState(c.Id, false);
});
foreach (var tile in ClientMapManager.GetAllTiles()){
tile.Lit = false;
}
if (e.Args[0] == Client.Player.state.pid){
UIManager.ChangeDoorState(Direction.EAST, false);
@ -147,6 +150,16 @@ public class EventProcessor {
break;
case 15: // light
bool lightState = e.Args[2] == 1;
Console.WriteLine($"E: Player {e.Args[0]} {(lightState ? "lit": "unlit")} tile {e.Args[1]}");
if (e.Args[0] == Client.Player.state.pid){
if (ClientMapManager.Get(e.Args[1]).Lit != lightState) Console.WriteLine("!!! DESYNC: LIGHT STATE");
break;
}
ClientMapManager.Get(e.Args[1]).Lit = lightState;
break;
}
}