Skip to content

Commit 2bbc9a0

Browse files
committed
Reworked the InfectPlayer method to work with Spawn035 API
1 parent 2c15f54 commit 2bbc9a0

File tree

2 files changed

+32
-24
lines changed

2 files changed

+32
-24
lines changed

scp035/API/Scp035Data.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ public static ReferenceHub GetScp035()
77
return EventHandlers.scpPlayer;
88
}
99

10-
public static void Make035(ReferenceHub player)
10+
public static void Spawn035(ReferenceHub player)
1111
{
12-
EventHandlers.InfectPlayer(player);
12+
EventHandlers.Spawn035(player, null, false);
1313
}
1414
}
1515
}

scp035/Logic.cs

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -59,36 +59,44 @@ private static void KillScp035(bool setRank = true)
5959
RefreshItems();
6060
}
6161

62-
public static void InfectPlayer(ReferenceHub player, Pickup pItem = null)
62+
public static void Spawn035(ReferenceHub p035, ReferenceHub player = null, bool full = true)
6363
{
64-
scpPlayer = null;
65-
List<ReferenceHub> pList = Player.GetHubs().Where(x => x.characterClassManager.CurClass == RoleType.Spectator && !x.serverRoles.OverwatchEnabled && x.characterClassManager.UserId != null && x.characterClassManager.UserId != string.Empty).ToList();
66-
if (pList.Count > 0)
64+
Log.Info(p035.nicknameSync.Network_myNickSync);
65+
Log.Info(p035.characterClassManager.UserId);
66+
Log.Info(p035.characterClassManager.CurClass.ToString());
67+
if (full)
6768
{
68-
if (pItem != null)
69+
if (player != null)
6970
{
70-
pItem.Delete();
71-
}
72-
73-
ReferenceHub p035 = pList[rand.Next(pList.Count)];
74-
Log.Info(p035.nicknameSync.Network_myNickSync);
75-
Log.Info(p035.characterClassManager.UserId);
76-
Log.Info(p035.characterClassManager.CurClass.ToString());
77-
Vector3 pos = player.transform.position;
78-
p035.ChangeRole(player.characterClassManager.CurClass);
79-
Timing.CallDelayed(0.2f, () => p035.plyMovementSync.OverridePosition(pos, 0));
71+
Vector3 pos = player.transform.position;
72+
p035.ChangeRole(player.characterClassManager.CurClass);
73+
Timing.CallDelayed(0.2f, () => p035.plyMovementSync.OverridePosition(pos, 0));
8074

81-
foreach (Inventory.SyncItemInfo item in player.inventory.items) p035.inventory.AddNewItem(item.id);
75+
foreach (Inventory.SyncItemInfo item in player.inventory.items) p035.inventory.AddNewItem(item.id);
76+
}
8277
p035.playerStats.health = Configs.health;
8378
p035.ammoBox.Networkamount = "250:250:250";
79+
}
80+
81+
hasTag = !string.IsNullOrEmpty(p035.serverRoles.NetworkMyText);
82+
isHidden = !string.IsNullOrEmpty(p035.serverRoles.HiddenBadge);
83+
if (isHidden) p035.RefreshTag();
84+
p035.SetRank("SCP-035", "red");
85+
86+
p035.Broadcast($"<size=60>You are <color=\"red\"><b>SCP-035</b></color></size>{(full ? "\nYou have infected a body and have gained control over it, use it to help the other SCPs!" : string.Empty)}", 10);
87+
88+
scpPlayer = p035;
89+
}
90+
91+
public static void InfectPlayer(ReferenceHub player, Pickup pItem)
92+
{
93+
List<ReferenceHub> pList = Player.GetHubs().Where(x => x.characterClassManager.CurClass == RoleType.Spectator && !x.serverRoles.OverwatchEnabled && x.characterClassManager.UserId != null && x.characterClassManager.UserId != string.Empty).ToList();
94+
if (pList.Count > 0 && scpPlayer == null)
95+
{
96+
pItem.Delete();
8497

85-
hasTag = !string.IsNullOrEmpty(p035.serverRoles.NetworkMyText);
86-
isHidden = !string.IsNullOrEmpty(p035.serverRoles.HiddenBadge);
87-
if (isHidden) p035.RefreshTag();
88-
p035.SetRank("SCP-035", "red");
98+
Spawn035(pList[rand.Next(pList.Count)], player);
8999

90-
p035.Broadcast("<size=60>You are <color=\"red\"><b>SCP-035</b></color></size>\nYou have infected a body and have gained control over it, use it to help the other SCPs!", 10);
91-
scpPlayer = p035;
92100
isRotating = false;
93101

94102
player.ChangeRole(RoleType.Spectator);

0 commit comments

Comments
 (0)