Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ You can still use old plugins without any changes/recompilation/updates.
- [ ] Assembly Resolve fixes (don't spam with not found library or make a option to disable it, load all libraries at rocketmod start instead of searching for them only on OnAssemblyResolve)
- [ ] Commands fixes:
- [ ] Fix /vanish.
- [ ] Fix /god.
- [x] Fix /god. (oxygen isn't fixed)
- [ ] Fix /p (not readable at all).
- [ ] Perfomance.
- [x] New Features:
Expand Down
49 changes: 36 additions & 13 deletions Rocket.Unturned/Player/UnturnedPlayerFeatures.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ internal Color? Color
set { color = value; }
}


private bool vanishMode = false;
public bool VanishMode
{
Expand All @@ -43,19 +42,32 @@ public bool GodMode
{
set
{
Player.Bleeding = false;
Player.Broken = false;
Player.Infection = 0;
Player.Hunger = 0;
Player.Thirst = 0;
Player.Heal(100);
Player.Stamina = 100;
if (value)
{
Player.Events.OnUpdateHealth += e_OnPlayerUpdateHealth;
Player.Events.OnUpdateBleeding += e_OnPlayerUpdateBleeding;
Player.Events.OnUpdateBroken += e_OnPlayerUpdateBroken;
Player.Events.OnUpdateWater += e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood += e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus += e_OnPlayerUpdateVirus;
Player.Events.OnUpdateStamina += e_OnPlayerUpdateStamina;
}
else
{
Player.Events.OnUpdateHealth -= e_OnPlayerUpdateHealth;
Player.Events.OnUpdateBleeding -= e_OnPlayerUpdateBleeding;
Player.Events.OnUpdateBroken -= e_OnPlayerUpdateBroken;
Player.Events.OnUpdateWater -= e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood -= e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus -= e_OnPlayerUpdateVirus;
Player.Events.OnUpdateStamina -= e_OnPlayerUpdateStamina;
}
godMode = value;
}
Expand Down Expand Up @@ -85,7 +97,7 @@ private void FixedUpdate()
private void Check()
{
initialCheck = true;

if (U.Settings.Instance.CharacterNameValidation)
{
string username = Player.CharacterName;
Expand All @@ -107,13 +119,15 @@ private static string reverse(string s)

protected override void Load()
{

if (godMode)
{
Player.Events.OnUpdateHealth += e_OnPlayerUpdateHealth;
Player.Events.OnUpdateBleeding += e_OnPlayerUpdateBleeding;
Player.Events.OnUpdateBroken += e_OnPlayerUpdateBroken;
Player.Events.OnUpdateWater += e_OnPlayerUpdateWater;
Player.Events.OnUpdateFood += e_OnPlayerUpdateFood;
Player.Events.OnUpdateVirus += e_OnPlayerUpdateVirus;
Player.Events.OnUpdateStamina += e_OnPlayerUpdateStamina;
Player.Heal(100);
Player.Infection = 0;
Player.Hunger = 0;
Expand All @@ -125,27 +139,36 @@ protected override void Load()

private void e_OnPlayerUpdateVirus(UnturnedPlayer player, byte virus)
{
if (virus < 95) Player.Infection = 0;
if (virus < 100) Player.Infection = 0;
}

private void e_OnPlayerUpdateFood(UnturnedPlayer player, byte food)
{
if (food < 95) Player.Hunger = 0;
if (food < 100) Player.Hunger = 0;
}

private void e_OnPlayerUpdateWater(UnturnedPlayer player, byte water)
{
if (water < 95) Player.Thirst = 0;
if (water < 100) Player.Thirst = 0;
}

private void e_OnPlayerUpdateBroken(UnturnedPlayer player, bool broken)
{
if (broken) Player.Broken = false;
}

private void e_OnPlayerUpdateBleeding(UnturnedPlayer player, bool bleeding)
{
if (bleeding) Player.Bleeding = false;
}

private void e_OnPlayerUpdateHealth(UnturnedPlayer player, byte health)
{
if (health < 95)
{
Player.Heal(100);
Player.Bleeding = false;
Player.Broken = false;
}
if (health < 100) Player.Heal(100);
}
private void e_OnPlayerUpdateStamina(UnturnedPlayer player, byte stamina)
{
if (stamina < 100) Player.Stamina = 100;
}
}
}
}