/
TBAR.Networking.cs
72 lines (57 loc) · 2.26 KB
/
TBAR.Networking.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
using Microsoft.Xna.Framework;
using System.IO;
using TBAR.Enums;
using TBAR.Input;
using TBAR.Players;
using TBAR.Stands;
using TBAR.TimeStop;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace TBAR
{
public partial class TBAR : Mod
{
bool IsServer => Main.netMode == NetmodeID.Server;
public override void HandlePacket(BinaryReader reader, int whoAmI)
{
PacketType type = (PacketType)reader.ReadByte();
switch (type)
{
case PacketType.SyncStand:
byte playerNumber = reader.ReadByte();
string name = reader.ReadString();
TBARPlayer plr = TBARPlayer.Get(Main.player[playerNumber]);
plr.PlayerStand = StandLoader.Instance.Get(name);
if(IsServer)
plr.PlayerStand = StandLoader.Instance.Get(name);
break;
case PacketType.UsedCombo:
this.Logger.Debug("Combo packet received");
playerNumber = reader.ReadByte();
string comboName = reader.ReadString();
this.Logger.Debug($"Combo Name {comboName}");
plr = TBARPlayer.Get(Main.player[playerNumber]);
plr.PlayerStand.ForceCombo(comboName, plr.player);
if (IsServer)
StandCombo.SendPacket(plr.player, comboName, playerNumber);
break;
case PacketType.StandChanged:
playerNumber = reader.ReadByte();
name = reader.ReadString();
plr = TBARPlayer.Get(Main.player[playerNumber]);
plr.PlayerStand = StandLoader.Instance.Get(name);
if (IsServer)
{
plr.PlayerStand = StandLoader.Instance.Get(name);
plr.SendStandChangedPacket(playerNumber);
}
break;
case PacketType.RemoveTimeStopInstance:
var timeStopIndex = reader.ReadInt32();
TimeStopManager.RemoveEffectAt(timeStopIndex);
break;
}
}
}
}