Let strangers pick up party money and split it equally
Money has no owner - unlike a dropped item it can be picked up by anyone standing on it. Deriving the drop's shares from the killer's party made a stranger's pick up pay nothing and leave the money on the ground, destroying zen that was previously taken and split by the picking party. The recorded shares now apply only when the party picking the money up is the one which earned it; otherwise there is no experience of theirs to follow and the money is split equally between the picking party, as it was before and as share-less money (e.g. from an item box) already is. Covered by DroppedMoneyTest.StrangerPartySplitsPickedUpMoneyEquallyAsync and EarningPartyReceivesMoneyByExperienceShareAsync. (cherry picked from commit ae7cad81da6893cfbd1c28bb29811b7f0a10d540)
This commit is contained in:
@@ -148,7 +148,12 @@ public sealed class DroppedMoney : AsyncDisposable, ILocateable
|
||||
return true;
|
||||
}
|
||||
|
||||
var shares = this._shares.Count > 0
|
||||
// Money has no owner - it can always be picked up, by strangers too. The recorded shares
|
||||
// only apply when the party which picks it up is the one which earned it; then the money
|
||||
// follows the experience. For anyone else there is no experience to follow, so it is split
|
||||
// equally between the picking party, just like money without any shares (e.g. an item box).
|
||||
var earnedByThisParty = this._shares.Any(share => party.IsEligibleForMoney(share.Player, player));
|
||||
var shares = earnedByThisParty
|
||||
? this._shares
|
||||
: MoneyDistribution.CreateEqualShares(this.Amount, party.PartyList.OfType<Player>().ToList());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user