예제 #1
0
        public static void OnLoad()
        {
            Persistence.Deserialize(
                FilePath,
                reader =>
            {
                int version = reader.ReadInt();

                if (version < 2)
                {
                    reader.ReadBool();
                }

                PointsType loaded = PointsType.None;

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    try
                    {
                        PointsType type = (PointsType)reader.ReadInt();
                        loaded          = type;
                        PointsSystem s  = GetSystemInstance(type);

                        s.Deserialize(reader);
                    }
                    catch
                    {
                        throw new Exception(string.Format("Points System Failed Load: {0} Last Loaded...", loaded.ToString()));
                    }
                }
            });
        }
예제 #2
0
        public LoyaltyRatingGump(PlayerMobile pm)
            : base(120, 120)
        {
            AddImage(0, 0, 8000);
            AddImage(20, 37, 8001);
            AddImage(20, 107, 8002);
            AddImage(20, 177, 8001);
            AddImage(20, 247, 8002);
            AddImage(20, 317, 8001);
            AddImage(20, 387, 8003);

            AddHtmlLocalized(0, 8, 345, 20, 1152187, false, false); // <center>Loyalty Ratings</center>

            int y = 40;

            for (var index = 0; index < PointsSystem.Systems.Count; index++)
            {
                PointsSystem sys = PointsSystem.Systems[index];

                if (sys.ShowOnLoyaltyGump)
                {
                    if (sys.Name.Number > 0)
                    {
                        AddHtmlLocalized(50, y, 150, 20, sys.Name.Number, false, false);
                    }
                    else if (sys.Name.String != null)
                    {
                        AddHtml(50, y, 150, 20, sys.Name.String, false, false);
                    }

                    TextDefinition title = sys.GetTitle(pm);

                    if (title != null)
                    {
                        if (title.Number > 0)
                        {
                            AddHtmlLocalized(68, y + 20, 100, 20, title.Number, false, false);
                        }
                        else if (title.String != null)
                        {
                            AddHtml(68, y + 20, 100, 20, title.String, false, false);
                        }
                    }

                    AddHtmlLocalized(175, y + 20, 100, 20, 1095171, ((int)sys.GetPoints(pm)).ToString(), 0, false, false);  // (~1_AMT~ points)

                    y += 45;
                }
            }

            AddHtmlLocalized(50, 285, 150, 20, 1115129, pm.Fame.ToString(), 0, false, false);  // Fame: ~1_AMT~
            AddHtmlLocalized(50, 305, 150, 20, 1115130, pm.Karma.ToString(), 0, false, false); // Karma: ~1_AMT~}

            if (CityLoyaltySystem.Enabled && CityLoyaltySystem.Cities != null)
            {
                AddHtmlLocalized(60, 395, 150, 20, 1152190, false, false);  // City Loyalty
                AddButton(40, 400, 2103, 2104, 1, GumpButtonType.Reply, 0);
            }
        }
예제 #3
0
        private static void AddSystem(PointsSystem system)
        {
            if (Systems.FirstOrDefault(s => s.Loyalty == system.Loyalty) != null)
            {
                return;
            }

            Systems.Add(system);
        }
예제 #4
0
        public static void OnLoad()
        {
            Persistence.Deserialize(
                FilePath,
                reader =>
            {
                int version = reader.ReadInt();

                if (version < 2)
                {
                    reader.ReadBool();
                }

                List <PointsType> loaded = new List <PointsType>();

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    try
                    {
                        PointsType type = (PointsType)reader.ReadInt();
                        PointsSystem s  = GetSystemInstance(type);

                        s.Deserialize(reader);

                        if (!loaded.Contains(type))
                        {
                            loaded.Add(type);
                        }
                    }
                    catch (Exception e)
                    {
                        foreach (var success in loaded)
                        {
                            Console.WriteLine("[Points System] Successfully Loaded: {0}", success.ToString());
                        }

                        loaded.Clear();

                        throw new Exception(String.Format("[Points System]: {0}", e));
                    }
                }

                loaded.Clear();
            });
        }
예제 #5
0
        public static void OnLoad()
        {
            Persistence.Deserialize(
                FilePath,
                reader =>
            {
                int version = reader.ReadInt();

                int count = reader.ReadInt();
                for (int i = 0; i < count; i++)
                {
                    PointsType type = (PointsType)reader.ReadInt();
                    PointsSystem s  = GetSystemInstance(type);
                    s.Deserialize(reader);
                }
            });
        }
예제 #6
0
        private static void AddSystem(PointsSystem system)
        {
            PointsSystem first = null;

            for (var index = 0; index < Systems.Count; index++)
            {
                var s = Systems[index];

                if (s.Loyalty == system.Loyalty)
                {
                    first = s;
                    break;
                }
            }

            if (first != null)
            {
                return;
            }

            Systems.Add(system);
        }