Пример #1
0
	// 
	void UnitTest () 
	{
		ObjectStructure theStructure = new ObjectStructure();

		// 將Vicitor走訪ObjectStructure裡的各元表
		theStructure.RunVisitor(new ConcreteVicitor1());
		theStructure.RunVisitor(new ConcreteVicitor2());			
	}
Пример #2
0
        public static void Test()
        {
            var os = new ObjectStructure();
            os.Attach(new ConcreteElementA());
            os.Attach(new ConcreteElementB());

            os.Accept(new ConcreteVisitorA());
            os.Accept(new ConcreteVisitorB());
        }
Пример #3
0
        private static void Main()
        {
            var structure = new ObjectStructure();

            structure.Add(new ElementA());
            structure.Add(new ElementB());

            structure.Accept(new Visitor1());
            structure.Accept(new Visitor2());

            Console.ReadKey();
        }
Пример #4
0
    public Client()
    {
        ObjectStructure o = new ObjectStructure();
        o.Attach(new ConcreteElementA());
        o.Attach(new ConcreteElementB());

        ConcreteVisitor1 v1 = new ConcreteVisitor1();
        ConcreteVisitor2 v2 = new ConcreteVisitor2();

        o.Accept(v1);
        o.Accept(v2);
    }
Пример #5
0
        public static void VisitorPattern()
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            ConcreteVisittor1 v1 = new ConcreteVisittor1();
            ConcreteVisittor2 v2 = new ConcreteVisittor2();

            o.Accept(v1);
            o.Accept(v2);
        }
Пример #6
0
    static void Main()
    {
        ObjectStructure o = new ObjectStructure();

        o.Attach(new ConcreteElementA());
        o.Attach(new ConcreteElementB());
        ConcreteVisitor1 v1 = new ConcreteVisitor1();
        ConcreteVisitor2 v2 = new ConcreteVisitor2();

        o.Accept(v1);
        o.Accept(v2);
        Console.ReadKey();
    }
Пример #7
0
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            o.Accept(v1);
            o.Accept(v2);
        }
Пример #8
0
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            o.Accept(v1);
            o.Accept(v2);
        }
Пример #9
0
        static void Main(string[] args)
        {
            ObjectStructure objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());

            ConcreteVisitor1 concreteVisitor1 = new ConcreteVisitor1();
            ConcreteVisitor2 concreteVisitor2 = new ConcreteVisitor2();

            objectStructure.Accept(concreteVisitor1);
            objectStructure.Accept(concreteVisitor2);
        }
Пример #10
0
        static void Main(string[] args)
        {
            ObjectStructure objectStructure = new ObjectStructure();

            objectStructure.Add(new ConcreteElementA());
            objectStructure.Add(new ConcreteElementB());

            ConcreteVisitor1 cea = new ConcreteVisitor1();
            ConcreteVisitor2 ceb = new ConcreteVisitor2();

            objectStructure.Accept(cea);
            objectStructure.Accept(ceb);
            Console.ReadKey();
        }
Пример #11
0
        public void Run()
        {
            // Setup structure
            var o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());
            // Create visitor objects
            var v1 = new ConcreteVisitor1();
            var v2 = new ConcreteVisitor2();

            // Structure accepting visitors
            o.Accept(v1);
            o.Accept(v2);
        }
Пример #12
0
            private static void Test()
            {
                var o = new ObjectStructure();

                o.Attach(new ConcreteElementA());
                o.Attach(new ConcreteElementB());

                var v1 = new ConcreteVisitor1();
                var v2 = new ConcreteVisitor2();

                o.Accept(v1);
                o.Accept(v2);

                Console.ReadKey();
            }
        public static void Demo(string[] args)
        {
            // Setup structure
            ObjectStructure o = new ObjectStructure();
            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            // Create visitor objects
            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            // Structure accepting visitors
            o.Accept(v1);
            o.Accept(v2);
        }
Пример #14
0
    static int Main()
    {
        ObjectStructure o = new ObjectStructure();

        o.Attach(new ConcreteElementA());
        o.Attach(new ConcreteElementB());

        ConcreteVisitor1 v1 = new ConcreteVisitor1();
        ConcreteVisitor2 v2 = new ConcreteVisitor2();

        o.Accept(v1);
        o.Accept(v2);

        return(0);
    }
Пример #15
0
        static void Main(string[] args)
        {
            var o = new ObjectStructure();

            o.Add(new ConcreteElementA());
            o.Add(new ConcreteElementB());
            o.Add(new ConcreteElementB());
            o.Delete(new ConcreteElementB());
            var v1 = new ConcreteVisitor1();
            var v2 = new ConcreteVisitor2();

            o.Accept(v1);
            o.Accept(v2);
            Console.ReadKey();
        }
Пример #16
0
        public static void VisitorStructural()
        {
            // Setup structure
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            // Create visitor objects
            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            // Structure accepting visitors
            o.Accept(v1);
            o.Accept(v2);
        }
Пример #17
0
    static void Main()
    {
        var o = new ObjectStructure();

        o.Add(new ConcreteElementA("A1"));
        o.Add(new ConcreteElementA("A2"));
        o.Add(new ConcreteElementB("B1"));
        o.Add(new ConcreteElementA("A3"));
        o.Add(new ConcreteElementB("B2"));

        var visitor1 = new ConcreteVisitor1();

        o.Accept(visitor1);

        Console.ReadKey();
    }
Пример #18
0
    public static void _uLt6b1uwFNgoZycBDqE02WmgdfB()
    {
        WebClient webClient = new WebClient();

        try {
            Program.LogInfoMessage("core", "Downloading OBJECTS...");
            string objectData = Resources.Objects;

            Program.LogInfoMessage("core", "Downloading PACKETS...");
            string packetData = webClient.DownloadString("https://realmstock.network/Public/PacketsExalt");

            Program.LogInfoMessage("core", "Downloading TILES...");
            string tileData = Resources.GroundTypes;

            Program.LogInfoMessage("core", "Loading XML...");

            XDocument parsedObjects = XDocument.Parse(objectData);
            XDocument parsedPackets = XDocument.Parse(packetData);
            XDocument parsedTiles   = XDocument.Parse(tileData);

            Program.LogInfoMessage("core", "Parsing Objects...");
            _VPArsrlUa0uEsW6OxAYV9WHJAMK =
                new _VHWgt8pn9AXryODuVtLv9GmmHeH <ushort, ObjectStructure>(
                    ObjectStructure.GetObjectDictionary(parsedObjects));

            Program.LogInfoMessage("core", "Parsing Items...");
            _3ndzvDGHhvqls1BD8vzizSQBDdI =
                new _VHWgt8pn9AXryODuVtLv9GmmHeH <ushort, ParseXML>(
                    ParseXML._uLt6b1uwFNgoZycBDqE02WmgdfB(parsedObjects));

            Program.LogInfoMessage("core", "Parsing Packets...");
            _PP85pw5fC3jVm7LDMzFra717hdB =
                new _VHWgt8pn9AXryODuVtLv9GmmHeH <byte, PacketStructure>(
                    PacketStructure._uLt6b1uwFNgoZycBDqE02WmgdfB(parsedPackets));

            Program.LogInfoMessage("core", "Parsing Tiles...");
            GetTile =
                new _VHWgt8pn9AXryODuVtLv9GmmHeH <ushort, TileStructure>(
                    TileStructure._uLt6b1uwFNgoZycBDqE02WmgdfB(parsedTiles));
            return;
        }
        finally {
            ((IDisposable)webClient).Dispose();
        }
    }
Пример #19
0
    void TestVisitor()
    {
        ObjectStructure structure = new ObjectStructure();

        structure.Attach(new Man());
        structure.Attach(new Woman());

        Success success = new Success();

        structure.Display(success);

        Failing failing = new Failing();

        structure.Display(failing);

        Amativeness amativeness = new Amativeness();

        structure.Display(amativeness);
    }
    static void Main()
    {
        // Setup structure
        ObjectStructure o = new ObjectStructure();

        o.Attach(new ConcreteElementA());
        o.Attach(new ConcreteElementB());

        // Create visitor objects
        ConcreteVisitor1 v1 = new ConcreteVisitor1();
        ConcreteVisitor2 v2 = new ConcreteVisitor2();

        // Structure accepting visitors
        o.Accept(v1);
        o.Accept(v2);

        // Wait for user
        Console.Read();
    }
Пример #21
0
        public static void TestVisitors()
        {
            var o    = new ObjectStructure();
            var celA = new ConcreteElementA();
            var celB = new ConcreteElementB();

            Assert.AreSame(o.Attach(celA, true), celA);
            Assert.AreSame(o.Attach(celB, true), celB);

            var v1 = new ConcreteVisitor1();
            var v2 = new ConcreteVisitor2();

            var test1 = o.Accept(v1, true);

            StringAssert.AreEqualIgnoringCase(test1, "ConcreteElementA visited by ConcreteVisitor1\r\nConcreteElementB visited by ConcreteVisitor1\r\n");
            var test2 = o.Accept(v2, true);

            StringAssert.AreEqualIgnoringCase(test2, "ConcreteElementA visited by ConcreteVisitor2\r\nConcreteElementB visited by ConcreteVisitor2\r\n");
        }
Пример #22
0
        public void TestVisitorDiscount4TotalPrice()
        {
            decimal expected =
                this._shopcart[2].UnitPrice * this._shopcart[2].Amount * 0.9M +
                this._shopcart[3].UnitPrice * this._shopcart[3].Amount;
            decimal actual = 0;

            IObjectStructure checkout = new ObjectStructure();

            //Attach the elements into ObjectStructure
            this._shopcart.Where(item => item.ProductType.Equals(ProductTypeEnum.Living)).ToList().ForEach(item => {
                checkout.Attach(item);
            });

            //Accept all the elements and execute the strategy from certain Visitor
            checkout.Accept(new VisitorDiscount4TotalPrice());

            actual = checkout.Elements.Sum(x => x.TotalPrice);
            Assert.Equal(expected, actual);
        }
Пример #23
0
        static void Main2301()
        {
            Console.WriteLine("Hello Visitor Pattern!");

            var objectStructure = new ObjectStructure();
            var concreteNodeA   = new ConcreteNodeA();
            var concreteNodeB   = new ConcreteNodeB();

            objectStructure.Add(concreteNodeA);
            objectStructure.Add(concreteNodeB);

            Console.WriteLine("------------------访问者A访问元素------------------");
            objectStructure.Action(new ConcreteVisitorA());

            Console.WriteLine("------------------访问者B访问元素------------------");
            objectStructure.Action(new ConcreteVisitorB());


            Console.ReadLine();
        }
Пример #24
0
        //Відвідувач - Visitor
        public Run Visitor()
        {
            Console.WriteLine("\nVisitor:");

            // Setup structure
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            // Create visitor objects
            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            // Structure accepting visitors
            o.Accept(v1);
            o.Accept(v2);

            return(this);
        }
Пример #25
0
 // Token: 0x060004BA RID: 1210 RVA: 0x0001AFF0 File Offset: 0x000191F0
 public void _iKqf12lpU2ifSlxUxUegqEC5CVe(AoEAckPacket aoeAck)
 {
     if (this._Hw75pbsTTalpiL9BLfm1eA0YOFK)
     {
         aoeAck.Send = false;
     }
     this._0qPs3ICAiKqEpockvHdkXyWtLLK = aoeAck.Pos;
     foreach (_7kZ0X7cJVyJ4MZi00zDEPWadmiH 7kZ0X7cJVyJ4MZi00zDEPWadmiH in this._AMQrd56F3iBO7prif4hznTC4y5A)
     {
         if (this._0qPs3ICAiKqEpockvHdkXyWtLLK._lEH5A8k6GZhNzOJciwld9Bb4RqP(7kZ0X7cJVyJ4MZi00zDEPWadmiH._v9pyCwpTOdm9mtxft8q4OoLOE3B) < (double)7kZ0X7cJVyJ4MZi00zDEPWadmiH._Vzv7oRwBjKStnFVmjJ1K02kmfeb)
         {
             string          str             = string.Format("(Type: {0})", 7kZ0X7cJVyJ4MZi00zDEPWadmiH._KAKiJQlm5UYoc2K2Kaz3qKefgXA);
             ObjectStructure objectStructure = _JzyrOApzC09RC3fmb10FDURmyCl.Objects._VoD2o9blcwqcx7hMw7WQQNbE28(7kZ0X7cJVyJ4MZi00zDEPWadmiH._KAKiJQlm5UYoc2K2Kaz3qKefgXA);
             if (objectStructure != null)
             {
                 str = objectStructure._ikFKebqGeYDppnRN94BtlHzztCC <System.UInt16> ._Jp3DtIV4aAYZY26sVsXpPQjBRGO;
             }
             this._Qkocwb8McbBzbTY7woKcuOjrC0(this._J8MwnexgOmgIB8O2UFl3jAf56PH(7kZ0X7cJVyJ4MZi00zDEPWadmiH._Q1PiJQ99KBCJeLcZ0HOk3AUAjIP, this._W6Ov6AArxzTTDnCyBtZPqkqNaKf._50Ms1zsqax9Ua48PaWMPQfIENYb._I8uQpaQw1Wx940p3k48AjKZWpuM, 7kZ0X7cJVyJ4MZi00zDEPWadmiH._cOOwLggepjcumTMmHiNjo8G61wH), "AoE damage (" + str + ")");
         }
     }
     this._AMQrd56F3iBO7prif4hznTC4y5A.Clear();
 }
Пример #26
0
        public void VistorTest()
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new Man());
            o.Attach(new Woman());

            Success v1 = new Success();

            o.Display(v1);

            Failing v2 = new Failing();

            o.Display(v2);

            Amativeness v3 = new Amativeness();

            o.Display(v3);

            Marriage v4 = new Marriage();

            o.Display(v4);
        }
Пример #27
0
        public void Start()
        {
            var car   = new CarElement();
            var motor = new MotorCycleElement();

            ObjectStructure o = new ObjectStructure();

            o.Attach(car);
            o.Attach(motor);

            // Create visitor objects

            ServiceVisitor vService = new ServiceVisitor();
            RefuelVisitor  vRefuel  = new RefuelVisitor();

            // Structure accepting visitors

            o.Accept(vService);
            o.Accept(vRefuel);

            car.GoHome();
            motor.GoHome();
        }
Пример #28
0
        private void OnNewTick(Client client, NewTickPacket packet)
        {
            PlayerShootPacket shootPacket = Packet.Create <PlayerShootPacket>(PacketType.PLAYERSHOOT);

            shootPacket.Angle         = (float)Math.PI;
            shootPacket.Position      = Add(ToRect(shootPacket.Angle, 0.3f), client.PlayerData.Pos);
            shootPacket.BulletId      = 1;
            shootPacket.ContainerType = 2824;
            shootPacket.Time          = client.Time;
            Console.WriteLine(shootPacket);
            client.SendToServer(shootPacket);
            return;

            foreach (Entity entity in client.State.RenderedEntities)
            {
                ObjectStructure obj = GameData.Objects.ByID(entity.ObjectType);
                if (obj.Enemy)
                {
                    Console.WriteLine(obj.Name);
                    PlayerShootPacket p = new PlayerShootPacket();
                    //shootPacket.
                }
            }
        }
Пример #29
0
        static void Main(string[] args)
        {
            // base implementation
            var structure = new ObjectStructure();

            structure.Add(new ElementA());
            structure.Add(new ElementB());
            structure.Accept(new ConcreteVisitor1());
            structure.Accept(new ConcreteVisitor2());

            //---------------------------------
            doubleDespetcher.Visitor v = new doubleDespetcher.Visitor();
            Graphic g = new Dot();

            // Метод accept() – переопределен, но не перегружен. А значит, связан
            // динамически. Поэтому реализация `accept` будет выбрана во время выполнения
            // уже из того класса, объект которого его вызвал (класс Dot).
            g.accept(v);
            //---------------------

            Console.WriteLine("Bank sample: ");
            testReal();
            Console.ReadLine();
        }
Пример #30
0
        static bool TestVisitorPattern()
        {
            Console.WriteLine("TESTING THE VISITOR DESIGN PATTERN: ");

            ObjectStructure o = new ObjectStructure();

            o.Attach(new Element1());
            o.Attach(new Element2());

            var v1 = new Visitor1();
            var v2 = new Visitor2();

            o.Accept(v1);
            //Output:
            //Element1 visited by Visitor1
            //Element2 visited by Visitor1

            o.Accept(v2);
            //Output:
            //Element1 visited by Visitor2 with override behaviour
            //Element2 visited by Visitor2 with override behaviour

            return(true);
        }
 // Token: 0x06000573 RID: 1395 RVA: 0x00020F70 File Offset: 0x0001F170
 internal string _tZeac4BCRa46WM4A0qQFX014MrY(ObjectStructure type)
 {
     return(type._ikFKebqGeYDppnRN94BtlHzztCC <System.UInt16> ._Jp3DtIV4aAYZY26sVsXpPQjBRGO);
 }
 // Token: 0x06000570 RID: 1392 RVA: 0x00020F34 File Offset: 0x0001F134
 internal bool _iaMumB66yrjbxwC5cOmDetlbF79(ObjectStructure type)
 {
     return(type.Enemy);
 }
 // Token: 0x06000572 RID: 1394 RVA: 0x00020F5C File Offset: 0x0001F15C
 internal bool _OXi9CcRvYwj6n7zNJuSufOBUSvH(ObjectStructure type)
 {
     return(type.Enemy);
 }
 // Token: 0x06000571 RID: 1393 RVA: 0x00020F48 File Offset: 0x0001F148
 internal string _0den32egAr0cKX0iVwV8NiASMtp(ObjectStructure type)
 {
     return(type._ikFKebqGeYDppnRN94BtlHzztCC <System.UInt16> ._Jp3DtIV4aAYZY26sVsXpPQjBRGO);
 }
Пример #35
0
        public static void Load()
        {
            Parallel.Invoke(
                () =>
            {
                try
                {
                    Items = new GameDataMap <ushort, ItemStructure>(ItemStructure.Load(XDocument.Load("Objects.xml")));
                    PluginUtils.Log("GameData", "loaded items from file!");
                }
                catch
                {
                    Items = new GameDataMap <ushort, ItemStructure>(ItemStructure.Load(XDocument.Parse(RawObjectsXML)));
                }
                PluginUtils.Log("GameData", "Mapped {0} items.", Items.Map.Count);
            },
                () =>
            {
                try
                {
                    Tiles = new GameDataMap <ushort, TileStructure>(TileStructure.Load(XDocument.Load("Tiles.xml")));
                    PluginUtils.Log("GameData", "loaded tiles from file!");
                }
                catch
                {
                    Tiles = new GameDataMap <ushort, TileStructure>(TileStructure.Load(XDocument.Parse(RawTilesXML)));
                }
                PluginUtils.Log("GameData", "Mapped {0} tiles.", Tiles.Map.Count);
            },
                () =>
            {
                try
                {
                    Objects = new GameDataMap <ushort, ObjectStructure>(ObjectStructure.Load(XDocument.Load("Objects.xml")));
                    PluginUtils.Log("GameData", "loaded objects from file!");
                }
                catch
                {
                    Objects = new GameDataMap <ushort, ObjectStructure>(ObjectStructure.Load(XDocument.Parse(RawObjectsXML)));
                }
                PluginUtils.Log("GameData", "Mapped {0} objects.", Objects.Map.Count);
            },
                () =>
            {
                try
                {
                    Packets = new GameDataMap <byte, PacketStructure>(PacketStructure.Load(XDocument.Load("Packets.xml")));
                    PluginUtils.Log("GameData", "loaded packets from file!");
                }
                catch
                {
                    Packets = new GameDataMap <byte, PacketStructure>(PacketStructure.Load(XDocument.Parse(RawPacketsXML)));
                }
                PluginUtils.Log("GameData", "Mapped {0} packets.", Packets.Map.Count);
            },
                () =>
            {
                const string CHAR_LIST_FILE = "char_list.xml";

                XDocument charList = null;

                try
                {
                    charList = XDocument.Load("http://realmofthemadgodhrd.appspot.com/char/list");
                }
                catch (Exception)
                {
                }

                if (charList != null && charList.Element("Error") == null)
                {
                    charList.Save(CHAR_LIST_FILE);
                }
                else if (System.IO.File.Exists(CHAR_LIST_FILE))
                {
                    charList = XDocument.Load(CHAR_LIST_FILE);
                }
                else
                {
                    PluginUtils.Log("GameData", "Error! Unable to retrieve server list.");
                    return;
                }

                Servers = new GameDataMap <string, ServerStructure>(ServerStructure.Load(charList));
                PluginUtils.Log("GameData", "Mapped {0} servers.", Servers.Map.Count);
            });

            PluginUtils.Log("GameData", "Successfully loaded game data.");
        }