Skip to content

Commit

Permalink
Fix virus updated
Browse files Browse the repository at this point in the history
  • Loading branch information
rube200 committed Mar 8, 2024
1 parent 12d263d commit aa9c01a
Showing 1 changed file with 22 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,6 @@ internal class PlayerStatsEventsListener : UnturnedPlayerEventsListener
{
public PlayerStatsEventsListener(IServiceProvider serviceProvider) : base(serviceProvider)
{
SubscribePlayer(
static player => ref player.life.onLifeUpdated,
player => isDead => OnLifeUpdated(player, isDead)
);
SubscribePlayer(
static player => ref player.life.onOxygenUpdated,
player => oxygen => OnOxygenUpdated(player, oxygen)
Expand All @@ -26,33 +22,38 @@ public PlayerStatsEventsListener(IServiceProvider serviceProvider) : base(servic
static player => ref player.life.onTemperatureUpdated,
player => temperature => OnTemperatureUpdated(player, temperature)
);
SubscribePlayer(
static player => ref player.life.onVisionUpdated,
player => viewing => OnVisionUpdated(player, viewing)
);
SubscribePlayer(
static player => ref player.life.onVirusUpdated,
player => virus => OnVirusUpdated(player, virus)
);
SubscribePlayer(
static player => ref player.life.onVisionUpdated,
player => viewing => OnVisionUpdated(player, viewing)
);
}

public override void Subscribe()
{
Player.onPlayerStatIncremented += OnPlayerStatIncremented;
PlayerLife.onPlayerLifeUpdated += OnPlayerLifeUpdated;
PlayerLife.OnTellBleeding_Global += OnTellBleeding_Global;
PlayerLife.OnTellBroken_Global += OnTellBroken_Global;
PlayerLife.OnTellFood_Global += OnTellFood_Global;
PlayerLife.OnTellHealth_Global += OnTellHealth_Global;
PlayerLife.OnTellVirus_Global += OnTellVirus_Global;
PlayerLife.OnTellWater_Global += OnTellWater_Global;

}

public override void Unsubscribe()
{
Player.onPlayerStatIncremented -= OnPlayerStatIncremented;
PlayerLife.onPlayerLifeUpdated -= OnPlayerLifeUpdated;
PlayerLife.OnTellBleeding_Global -= OnTellBleeding_Global;
PlayerLife.OnTellBroken_Global -= OnTellBroken_Global;
PlayerLife.OnTellFood_Global -= OnTellFood_Global;
PlayerLife.OnTellHealth_Global -= OnTellHealth_Global;
PlayerLife.OnTellVirus_Global -= OnTellVirus_Global;
PlayerLife.OnTellWater_Global -= OnTellWater_Global;
}

Expand Down Expand Up @@ -104,10 +105,10 @@ private void OnPlayerStatIncremented(Player nativePlayer, EPlayerStat stat)
Emit(@event);
}

private void OnLifeUpdated(Player nativePlayer, bool isDead)
private void OnPlayerLifeUpdated(Player nativePlayer)
{
var player = GetUnturnedPlayer(nativePlayer)!;
var @event = new UnturnedPlayerLifeUpdatedEvent(player, isDead);
var @event = new UnturnedPlayerLifeUpdatedEvent(player, !player.IsAlive);

Emit(@event);
}
Expand Down Expand Up @@ -144,15 +145,23 @@ private void OnVisionUpdated(Player nativePlayer, bool viewing)
Emit(@event);
}

//AskRadiate currently only emits OnVirusUpdated
private void OnVirusUpdated(Player nativePlayer, byte virus)
{
// PlayerLife.OnTellVirus_Global does not emit properly
// For more information: https://github.com/openmod/openmod/issues/747

var player = GetUnturnedPlayer(nativePlayer)!;
var @event = new UnturnedPlayerVirusUpdatedEvent(player, virus);

Emit(@event);
}

//OnVirusUpdated is now client side for askDisinfect, askInfect
//so we need to use the global one
private void OnTellVirus_Global(PlayerLife life)
{
var player = GetUnturnedPlayer(life.player)!;
var @event = new UnturnedPlayerVirusUpdatedEvent(player, life.virus);

Emit(@event);
}
}
}

0 comments on commit aa9c01a

Please sign in to comment.