示例#1
0
        protected override void OnMouseClick(MouseEventArgs e)
        {
            FindForm().Enabled = false;

            if (indexedValue.AvailableAt.GetValueOrDefault(0) <= theWorld.Turns && indexedValue.Type == IndexedValue.ValueType.Policy)
            {
                ValueExplorer infos = new ValueExplorer(theWorld, indexedValue);

                if (infos.ShowDialog() == DialogResult.OK)
                {
                    int amount = infos.Valeur;
                    int mCost = 0, gCost = 0;

                    if (amount == 0)
                    {
                        if (MessageBox.Show($"Vous êtes sur le point de désactiver la politique {indexedValue.Name}, continuer ?",
                                            "Désactivation", MessageBoxButtons.YesNo) == DialogResult.No)
                        {
                            return;
                        }

                        theWorld.DeactivatePolicy(indexedValue, out mCost, out gCost);
                    }
                    else
                    {
                        indexedValue.PreviewPolicyChange(ref amount, out mCost, out gCost);

                        if (MessageBox.Show($"Cette politique va désormais coûter {-mCost} de monnaie et {-gCost} de gloire par tour.",
                                            "Modifications",
                                            MessageBoxButtons.OKCancel) == DialogResult.Cancel)
                        {
                            return;
                        }

                        if (gCost < 0)
                        {
                            if (theWorld.CostGlory(gCost))
                            {
                                indexedValue.ChangeTo(amount, out mCost, out gCost);
                            }
                        }

                        indexedValue.ChangeTo(amount, out mCost, out gCost);
                    }

                    this.Refresh();
                }
            }
            else
            {
                MessageBox.Show("Description complète : " +
                                indexedValue.CompletePresentation().Substring(indexedValue.CompletePresentation().IndexOf("\n")),
                                indexedValue.Name, MessageBoxButtons.OK
                                );
            }

            FindForm().Enabled = true;
        }
示例#2
0
        public static void ApplyPolicyChanges(string arg)
        {
            if (!arg.Contains(" "))
            {
                Console.WriteLine("erreur texte application politique : " + arg);
                return;
            }
            string pol    = arg.Split(' ')[0];
            int    amount = -1;

            int.TryParse(arg.Split(' ')[1], out amount);
            if (amount < 0)
            {
                Console.WriteLine("erreur nombre application politique : " + arg);
                return;
            }
            int          mCost = 0, gCost = 0;
            IndexedValue val = null;

            val = theWorld.FindPolicyOrDefault(pol);
            if (val == null)
            {
                Console.WriteLine("erreur nom application politique : " + arg);
                return;
            }
            if (amount == 0)
            {
                theWorld.DeactivatePolicy(val, out mCost, out gCost);
                return;
            }
            val.PreviewPolicyChange(ref amount, out mCost, out gCost);
            Console.WriteLine("Estimation : " + mCost + " pieces (par tour) et " + gCost + " gloire.");
            if (!ConfirmDialog())
            {
                mCost = 0;
                gCost = 0;
                return;
            }
            if (gCost < 0)
            {
                if (theWorld.CostGlory(gCost))
                {
                    Console.WriteLine("Changement effectue pour " + gCost + " gloire.");
                    val.ChangeTo(amount, out mCost, out gCost);
                    return;
                }
                else
                {
                    Console.WriteLine("Gloire insuffisante : " + theWorld.Glory);
                    return;
                }
            }
            Console.WriteLine("Changement effectue.");
            val.ChangeTo(amount, out mCost, out gCost);
        }