private static byte GetAdjustedFriendship(Event e, byte curFriendship, ItemType caughtBall, MapSection metLocation, ItemType item #if DEBUG , string nickname #endif ) { if (e == Event.Walking && PBEDataProvider.GlobalRandom.RandomBool()) { return(curFriendship); // 50% chance walking boosts } int friendshipLevel = 0; int friendship = curFriendship; if (friendship >= 100) { friendshipLevel++; } if (friendship >= 200) { friendshipLevel++; } int mod = GetEventBonuses(e)[friendshipLevel]; if (mod > 0) { if (caughtBall == ItemType.LuxuryBall) { mod++; } if (metLocation == Overworld.GetCurrentLocation()) { mod++; } if (item == ItemType.SootheBell) { mod = (int)(mod * 1.5f); } } friendship += mod; if (friendship < 0) { friendship = 0; } if (friendship > byte.MaxValue) { friendship = byte.MaxValue; } #if DEBUG Console.WriteLine("{0} friendship adjustment: {1}_{2}", nickname, e, mod); #endif return((byte)friendship); }