Merge pull request #27 from zhu-rengong/enable_control_husk

allow client to force control husk and add a hook
This commit is contained in:
Evil Factory
2021-11-18 17:32:21 -03:00
committed by GitHub
2 changed files with 9 additions and 1 deletions
@@ -235,13 +235,14 @@ namespace Barotrauma
if (Prefab is AfflictionPrefabHusk huskPrefab) if (Prefab is AfflictionPrefabHusk huskPrefab)
{ {
if (huskPrefab.ControlHusk) if (huskPrefab.ControlHusk || GameMain.Lua.game.enableControlHusk)
{ {
#if SERVER #if SERVER
var client = GameMain.Server?.ConnectedClients.FirstOrDefault(c => c.CharacterInfo.Character == character); var client = GameMain.Server?.ConnectedClients.FirstOrDefault(c => c.CharacterInfo.Character == character);
if (client != null) if (client != null)
{ {
GameMain.Server.SetClientCharacter(client, husk); GameMain.Server.SetClientCharacter(client, husk);
GameMain.Lua.hook.Call("husk.clientControlHusk", new object[] { client, husk });
} }
#else #else
if (!character.IsRemotelyControlled && character == Character.Controlled) if (!character.IsRemotelyControlled && character == Character.Controlled)
@@ -112,6 +112,7 @@ namespace Barotrauma
public bool overrideSignalRadio = false; public bool overrideSignalRadio = false;
public bool disableSpamFilter = false; public bool disableSpamFilter = false;
public bool disableDisconnectCharacter = false; public bool disableDisconnectCharacter = false;
public bool enableControlHusk = false;
public bool RoundStarted public bool RoundStarted
{ {
@@ -188,6 +189,12 @@ namespace Barotrauma
disableDisconnectCharacter = o; disableDisconnectCharacter = o;
} }
public void EnableControlHusk(bool o)
{
enableControlHusk = o;
}
public static void Explode(Vector2 pos, float range = 100, float force = 30, float damage = 30, float structureDamage = 30, float itemDamage = 30, float empStrength = 0, float ballastFloraStrength = 0) public static void Explode(Vector2 pos, float range = 100, float force = 30, float damage = 30, float structureDamage = 30, float itemDamage = 30, float empStrength = 0, float ballastFloraStrength = 0)
{ {
new Explosion(range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength).Explode(pos, null); new Explosion(range, force, damage, structureDamage, itemDamage, empStrength, ballastFloraStrength).Explode(pos, null);