forked from SoDOff-Project/sodoff-mmo

Added ambassador support (for Math Blaster). Tons of config options too. * Moved ambassador room controlling to seperate class. * More changes to appease the Pull Request.
27 lines
1.1 KiB
C#
27 lines
1.1 KiB
C#
using sodoffmmo.Attributes;
|
|
using sodoffmmo.Core;
|
|
using sodoffmmo.Data;
|
|
|
|
namespace sodoffmmo.CommandHandlers;
|
|
|
|
[ExtensionCommandHandler("SCE")]
|
|
class CounterEventHandler : CommandHandler {
|
|
public override Task Handle(Client client, NetworkObject receivedObject) { // {"a":13,"c":1,"p":{"c":"SCE","p":{"NAME":"COUNT"},"r":-1}}
|
|
if (client.Room is SpecialRoom room) {
|
|
string name = receivedObject.Get<NetworkObject>("p").Get<string>("NAME");
|
|
if (name == "COUNT" || name == "COUNT2" || name == "COUNT3") {
|
|
int index = name switch {
|
|
"COUNT" => 0,
|
|
"COUNT2" => 1,
|
|
"COUNT3" => 2
|
|
};
|
|
room.ambassadorGauges[index] = Math.Min(100, room.ambassadorGauges[index]+(1/Configuration.ServerConfiguration.AmbassadorGaugePlayers));
|
|
room.Send(Utils.VlNetworkPacket(room.GetRoomVars(), client.Room.Id));
|
|
} else {
|
|
Console.WriteLine($"Invalid attempt to increment room var {name} in {room.Name}.");
|
|
}
|
|
}
|
|
|
|
return Task.CompletedTask;
|
|
}
|
|
} |