2
2
using Archipelago . MultiClient . Net . Helpers ;
3
3
using Archipelago . MultiClient . Net . MessageLog . Parts ;
4
4
using Archipelago . MultiClient . Net . Models ;
5
- using System . Linq ;
6
5
7
6
namespace Archipelago . MultiClient . Net . MessageLog . Messages
8
7
{
@@ -15,6 +14,8 @@ namespace Archipelago.MultiClient.Net.MessageLog.Messages
15
14
/// </summary>
16
15
public class ItemSendLogMessage : LogMessage
17
16
{
17
+ PlayerInfo ActivePlayer { get ; }
18
+
18
19
/// <summary>
19
20
/// The player who received the item
20
21
/// </summary>
@@ -28,17 +29,17 @@ public class ItemSendLogMessage : LogMessage
28
29
/// <summary>
29
30
/// Checks if the Receiver is the current connected player
30
31
/// </summary>
31
- public bool IsReceiverTheActivePlayer { get ; }
32
+ public bool IsReceiverTheActivePlayer => Receiver == ActivePlayer ;
32
33
33
34
/// <summary>
34
35
/// True if the Sender is the current connected player
35
36
/// </summary>
36
- public bool IsSenderTheActivePlayer { get ; }
37
+ public bool IsSenderTheActivePlayer => Sender == ActivePlayer ;
37
38
38
39
/// <summary>
39
40
/// True if either the Receiver or Sender share any slot groups (e.g. itemlinks) with the current connected player
40
41
/// </summary>
41
- public bool IsRelatedToActivePlayer { get ; }
42
+ public bool IsRelatedToActivePlayer => ActivePlayer . IsRelatedTo ( Receiver ) || ActivePlayer . IsRelatedTo ( Sender ) ;
42
43
43
44
/// <summary>
44
45
/// The Item that was send
@@ -57,17 +58,11 @@ internal ItemSendLogMessage(MessagePart[] parts,
57
58
int receiver , int sender , NetworkItem item , int team ,
58
59
IItemInfoResolver itemInfoResolver ) : base ( parts )
59
60
{
61
+ ActivePlayer = players . ActivePlayer ?? new PlayerInfo ( ) ;
60
62
Receiver = players . GetPlayerInfo ( team , receiver ) ?? new PlayerInfo ( ) ;
61
63
Sender = players . GetPlayerInfo ( team , sender ) ?? new PlayerInfo ( ) ;
62
64
var itemPlayer = players . GetPlayerInfo ( team , item . Player ) ?? new PlayerInfo ( ) ;
63
65
64
- IsReceiverTheActivePlayer = Receiver == players . ActivePlayer ;
65
- IsSenderTheActivePlayer = Sender == players . ActivePlayer ;
66
-
67
- IsRelatedToActivePlayer = IsReceiverTheActivePlayer || IsSenderTheActivePlayer
68
- || ( Receiver ? . GetGroupMembers ( players ) ? . Contains ( players . ActivePlayer ) ?? false )
69
- || ( Sender ? . GetGroupMembers ( players ) ? . Contains ( players . ActivePlayer ) ?? false ) ;
70
-
71
66
Item = new ItemInfo ( item , Receiver . Game , Sender . Game , itemInfoResolver , itemPlayer ) ;
72
67
}
73
68
}
0 commit comments