Esempio n. 1
0
        public SecureTradeContainer FindTradeContainer(Mobile m)
        {
            if (Trades == null)
            {
                return(null);
            }

            foreach (SecureTrade trade in Trades)
            {
                SecureTradeInfo from = trade.From;
                SecureTradeInfo to   = trade.To;

                if (from.Mobile == Mobile && to.Mobile == m)
                {
                    return(from.Container);
                }

                if (from.Mobile == m && to.Mobile == Mobile)
                {
                    return(to.Container);
                }
            }

            return(null);
        }
Esempio n. 2
0
        public override void OnAdded(IEntity parent)
        {
            base.OnAdded(parent);

            if (!AccountGold.Enabled)
            {
                return;
            }

            Mobile          owner     = null;
            SecureTradeInfo tradeInfo = null;

            var root = parent as Container;

            while (root?.Parent is Container container)
            {
                root = container;
            }

            parent = root ?? parent;

            if (parent is SecureTradeContainer trade && AccountGold.ConvertOnTrade)
            {
                if (trade.Trade.From.Container == trade)
                {
                    tradeInfo = trade.Trade.From;
                    owner     = tradeInfo.Mobile;
                }
                else if (trade.Trade.To.Container == trade)
                {
                    tradeInfo = trade.Trade.To;
                    owner     = tradeInfo.Mobile;
                }
            }
Esempio n. 3
0
        public SecureTradeContainer FindTradeContainer(Mobile m)
        {
            if (Trades == null)
            {
                return(null);
            }

            for (var index = 0; index < Trades.Count; index++)
            {
                SecureTrade     trade = Trades[index];
                SecureTradeInfo from  = trade.From;
                SecureTradeInfo to    = trade.To;

                if (from.Mobile == Mobile && to.Mobile == m)
                {
                    return(from.Container);
                }

                if (from.Mobile == m && to.Mobile == Mobile)
                {
                    return(to.Container);
                }
            }

            return(null);
        }
Esempio n. 4
0
        public SecureTradeContainer FindTradeContainer(Mobile m)
        {
            foreach (var trade in m_Trades)
            {
                SecureTradeInfo from = trade.From;
                SecureTradeInfo to   = trade.To;

                if (from.Mobile == m_Mobile && to.Mobile == m)
                {
                    return(from.Container);
                }
                else if (from.Mobile == m && to.Mobile == m_Mobile)
                {
                    return(to.Container);
                }
            }

            return(null);
        }
Esempio n. 5
0
        public SecureTradeContainer FindTradeContainer(Mobile m)
        {
            for (int i = 0; i < m_Trades.Count; ++i)
            {
                SecureTrade     trade = m_Trades[i];
                SecureTradeInfo from  = trade.From;
                SecureTradeInfo to    = trade.To;

                if (from.Mobile == m_Mobile && to.Mobile == m)
                {
                    return(from.Container);
                }
                else if (from.Mobile == m && to.Mobile == m_Mobile)
                {
                    return(to.Container);
                }
            }

            return(null);
        }
Esempio n. 6
0
        public override void OnAdded(object parent)
#endif
        {
            base.OnAdded(parent);

            if (!AccountGold.Enabled)
            {
                return;
            }

            Mobile          owner     = null;
            SecureTradeInfo tradeInfo = null;

            Container root = parent as Container;

            while (root != null && root.Parent is Container)
            {
                root = (Container)root.Parent;
            }

            parent = root ?? parent;

            if (parent is SecureTradeContainer && AccountGold.ConvertOnTrade)
            {
                var trade = (SecureTradeContainer)parent;

                if (trade.Trade.From.Container == trade)
                {
                    tradeInfo = trade.Trade.From;
                    owner     = tradeInfo.Mobile;
                }
                else if (trade.Trade.To.Container == trade)
                {
                    tradeInfo = trade.Trade.To;
                    owner     = tradeInfo.Mobile;
                }
            }
            else if (parent is BankBox && AccountGold.ConvertOnBank)
            {
                owner = ((BankBox)parent).Owner;
            }

            if (owner == null || owner.Account == null || !owner.Account.DepositGold(Amount))
            {
                return;
            }

            if (tradeInfo != null)
            {
                if (owner.NetState != null && !owner.NetState.NewSecureTrading)
                {
                    var total = Amount / Math.Max(1.0, Account.CurrencyThreshold);
                    var plat  = (int)Math.Truncate(total);
                    var gold  = (int)((total - plat) * Account.CurrencyThreshold);

                    tradeInfo.Plat += plat;
                    tradeInfo.Gold += gold;
                }

                if (tradeInfo.VirtualCheck != null)
                {
                    tradeInfo.VirtualCheck.UpdateTrade(tradeInfo.Mobile);
                }
            }

            owner.SendLocalizedMessage(1042763, Amount.ToString("#,0"));

            Delete();

            ((Container)parent).UpdateTotals();
        }
Esempio n. 7
0
        public override void OnAdded(object parent)
#endif
        {
            base.OnAdded(parent);

            if (!AccountGold.Enabled)
            {
                return;
            }

            Mobile          owner     = null;
            SecureTradeInfo tradeInfo = null;

            Container root = parent as Container;

            while (root != null && root.Parent is Container)
            {
                root = (Container)root.Parent;
            }

            parent = root ?? parent;

            if (parent is SecureTradeContainer && AccountGold.ConvertOnTrade)
            {
                SecureTradeContainer trade = (SecureTradeContainer)parent;

                if (trade.Trade.From.Container == trade)
                {
                    tradeInfo = trade.Trade.From;
                    owner     = tradeInfo.Mobile;
                }
                else if (trade.Trade.To.Container == trade)
                {
                    tradeInfo = trade.Trade.To;
                    owner     = tradeInfo.Mobile;
                }
            }
            else if (parent is BankBox && AccountGold.ConvertOnBank)
            {
                owner = ((BankBox)parent).Owner;
            }

            if (owner == null || owner.Account == null || !owner.Account.DepositGold(Worth))
            {
                return;
            }

            if (tradeInfo != null)
            {
                if (tradeInfo.VirtualCheck != null)
                {
                    tradeInfo.VirtualCheck.UpdateTrade(tradeInfo.Mobile);
                }
            }

            owner.SendLocalizedMessage(1042763, Worth.ToString("#,0"));

            Delete();

            ((Container)parent).UpdateTotals();
        }