Esempio n. 1
0
        /// <summary>
        /// Checks if the <see cref="MysteryGift"/> data is compatible with the <see cref="SaveFile"/>. Sets appropriate data to the save file in order to receive the gift.
        /// </summary>
        /// <param name="g">Gift data to potentially insert to the save file.</param>
        /// <param name="sav">Save file receiving the gift data.</param>
        /// <param name="message">Error message if incompatible.</param>
        /// <returns>True if compatible, false if incompatible.</returns>
        public static bool IsCardCompatible(this MysteryGift g, SaveFile sav, out string message)
        {
            if (g.Generation != sav.Generation)
            {
                message = MsgMysteryGiftSlotSpecialReject;
                return(false);
            }

            if (!sav.CanReceiveGift(g))
            {
                message = MsgMysteryGiftTypeDetails;
                return(false);
            }

            if (g is WC6 && g.CardID == 2048 && g.ItemID == 726) // Eon Ticket (OR/AS)
            {
                if (sav is not SAV6AO)
                {
                    message = MsgMysteryGiftSlotSpecialReject;
                    return(false);
                }
            }

            message = string.Empty;
            return(true);
        }