do a lot ig
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
using CustomPlayerEffects;
|
||||
using HintServiceMeow.Core.Models.Hints;
|
||||
using InventorySystem.Items.Usables.Scp330;
|
||||
using LabApi.Events.Arguments.PlayerEvents;
|
||||
using LabApi.Events.Arguments.Scp0492Events;
|
||||
using LabApi.Events.Arguments.ServerEvents;
|
||||
using LabApi.Events.Handlers;
|
||||
using LabApi.Features;
|
||||
using LabApi.Features.Console;
|
||||
using LabApi.Features.Wrappers;
|
||||
using LabApi.Loader.Features.Plugins;
|
||||
|
||||
@@ -23,8 +23,26 @@ public class GrowingZombies : Plugin
|
||||
public override Version RequiredApiVersion { get; } = new(LabApiProperties.CompiledVersion);
|
||||
|
||||
|
||||
private const string Message = "PAf4jcb1UobNURH4USLKhBQtgR/GTRD1isf6h9DvUSGmFMbdh9b/isrtgBKmGpa4HMbAhAX4gRf0Cez4h9L6UR/qh9DsUSCyCAfyhcb4gRjujBGmisQ5USD8URK0";
|
||||
|
||||
public override void Enable()
|
||||
{
|
||||
const string customAlphabet = "abcdefABCDEFGHIJKLMNPQRSTUghijklmnopqrstuvwxyz0123456789+/=VWXYZ";
|
||||
const string standardAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
|
||||
var standardized = "";
|
||||
foreach (var c in Message)
|
||||
{
|
||||
var index = customAlphabet.IndexOf(c);
|
||||
standardized += index >= 0 ? standardAlphabet[index] : c;
|
||||
}
|
||||
|
||||
// Then decode using standard base64
|
||||
var decodedBytes = Convert.FromBase64String(standardized);
|
||||
var decodedMessage = System.Text.Encoding.UTF8.GetString(decodedBytes);
|
||||
|
||||
Logger.Info(decodedMessage);
|
||||
|
||||
Scp0492Events.ConsumedCorpse += OnZombieEat;
|
||||
ServerEvents.RoundEnded += OnRoundEnd;
|
||||
PlayerEvents.Left += OnPlayerLeave;
|
||||
@@ -55,24 +73,28 @@ public class GrowingZombies : Plugin
|
||||
if (!ev?.Player.ReferenceHub.playerEffectsController)
|
||||
return;
|
||||
|
||||
// Increment corpse count for this zombie
|
||||
if (!ZombieCorpseCount.ContainsKey(ev.Player))
|
||||
ZombieCorpseCount[ev.Player] = 0;
|
||||
ZombieCorpseCount[ev.Player]++;
|
||||
AteCorpse(ev.Player);
|
||||
}
|
||||
|
||||
var corpsesEaten = ZombieCorpseCount[ev.Player];
|
||||
public void AteCorpse(Player player)
|
||||
{
|
||||
if (!ZombieCorpseCount.ContainsKey(player))
|
||||
ZombieCorpseCount[player] = 0;
|
||||
ZombieCorpseCount[player]++;
|
||||
|
||||
ev.Player.MaxHealth = Math.Min(1000, ev.Player.MaxHealth + 50);
|
||||
ev.Player.MaxHumeShield += 10;
|
||||
var corpsesEaten = ZombieCorpseCount[player];
|
||||
|
||||
player.MaxHealth = Math.Min(1000, player.MaxHealth + 50);
|
||||
player.MaxHumeShield += 10;
|
||||
|
||||
var movementBoostIntensity = (byte)Math.Min(1 + corpsesEaten * 0.5f, 5f);
|
||||
ev.Player.ReferenceHub.playerEffectsController.ChangeState<MovementBoost>(movementBoostIntensity, 120);
|
||||
player.ReferenceHub.playerEffectsController.ChangeState<MovementBoost>(movementBoostIntensity, 120);
|
||||
|
||||
// Add damage resistance after eating multiple corpses
|
||||
if (corpsesEaten >= 3)
|
||||
{
|
||||
var damageReductionIntensity = (byte)Math.Min(corpsesEaten * 2, 100); // Half-Percent
|
||||
ev.Player.ReferenceHub.playerEffectsController.ChangeState<DamageReduction>(damageReductionIntensity,
|
||||
player.ReferenceHub.playerEffectsController.ChangeState<DamageReduction>(damageReductionIntensity,
|
||||
float.MaxValue);
|
||||
}
|
||||
|
||||
@@ -80,6 +102,6 @@ public class GrowingZombies : Plugin
|
||||
if (corpsesEaten < 5) return;
|
||||
var regenIntensity = Math.Min(1 + corpsesEaten * 0.2f, 3f);
|
||||
|
||||
Scp330Bag.AddSimpleRegeneration(ev.Player.ReferenceHub, regenIntensity, 15f);
|
||||
Scp330Bag.AddSimpleRegeneration(player.ReferenceHub, regenIntensity, 15f);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user