Example #1
0
        public void ReadEvent(string path)
        {
            XDocument  xDoc = XDocument.Load(path);
            GameScript game = new GameScript();

            foreach (XElement ev in xDoc.Root.Elements("outs"))
            {
                EventGame Event = new EventGame(TypeInEventX.None, TypeOutEventX.None);
                foreach (XElement file in ev.Element("files").Elements("file"))
                {
                    FileX f = null;
                    switch (file.Attribute("type").Value)
                    {
                    case "TXT": f = new FileTxtX();
                        break;

                    case "SCRIPT": f = new FileScriptX();
                        break;

                    case "EXPLOIT": f = new FileExploitX();
                        break;

                    case "DATA": f = new FileDataX();
                        break;

                    case "SSHKEY": f = new FileSSHKeyX();
                        break;

                    default: f = new FileX();
                        break;
                    }
                    f.id       = file.Attribute("id").Value;
                    f.Capacity = int.Parse(file.Attribute("capacity").Value);
                    f.Name     = file.Attribute("name").Value;
                    f.AddText(file.Value);
                    Ev_File.Add(f);
                }
                foreach (XElement enem in ev.Element("enemies").Elements("enemy"))
                {
                    EnemyComp x_enemy = new EnemyComp();
                    x_enemy.id   = enem.Attribute("id").Value;
                    x_enemy.Addr = enem.Attribute("address").Value;
                    RePoint r = new RePoint();
                    x_enemy.Position  = r.Point(float.Parse(enem.Element("position").Attribute("x").Value), float.Parse(enem.Element("position").Attribute("y").Value));
                    x_enemy.isScaning = bool.Parse(enem.Element("isscan").Value);
                    x_enemy.isVisible = bool.Parse(enem.Element("isvisible").Value);
                    x_enemy.Money     = int.Parse(enem.Element("money").Value);
                    foreach (XElement sx in enem.Element("services").Elements("service"))
                    {
                        ServiceX service = new ServiceX(int.Parse(sx.Element("timestart").Value), int.Parse(sx.Element("port").Value));
                        service.id   = sx.Attribute("id").Value;
                        service.Desc = sx.Element("name").Value;
                        switch (sx.Element("type").Value)
                        {
                        case "NONE": service.Type = TypeServiceX.NONE;
                            break;

                        case "FTP": service.Type = TypeServiceX.FTP;
                            break;

                        case "FIREWALL": service.Type = TypeServiceX.FIREWALL;
                            break;

                        case "ATM": service.Type = TypeServiceX.ATM;
                            break;

                        case "PROXY": service.Type = TypeServiceX.PROXY;
                            break;

                        case "SSH": service.Type = TypeServiceX.SSH;
                            break;

                        default: service.Type = TypeServiceX.NONE;
                            break;
                        }
                        service.Pass       = sx.Element("pass").Value;
                        service.isHackPass = bool.Parse(sx.Element("ishackpass").Value);
                        foreach (XElement fx in sx.Element("files").Elements("file"))
                        {
                            FileX file = null;
                            switch (fx.Attribute("type").Value)
                            {
                            case "TXT": file = new FileTxtX();
                                break;

                            case "SCRIPT": file = new FileScriptX();
                                break;

                            case "EXPLOIT": file = new FileExploitX();
                                break;

                            case "DATA": file = new FileDataX();
                                break;

                            case "SSHKEY": file = new FileSSHKeyX();
                                break;

                            default: file = new FileX();
                                break;
                            }
                            file.id       = fx.Attribute("id").Value;
                            file.Capacity = int.Parse(fx.Attribute("capacity").Value);
                            file.Name     = fx.Attribute("name").Value;
                            file.AddText(fx.Value);
                            service.AddFile(file);
                        }
                        x_enemy.AddService(service);
                    }
                    Ev_Enemy.Add(x_enemy);
                }
                foreach (XElement m in ev.Element("mails").Elements("mail"))
                {
                    MailX mail = new MailX(m.Attribute("name").Value);
                    mail.ids = m.Attribute("id").Value;
                    mail.AddText(m.Value);
                    Ev_Mail.Add(mail);
                }
                foreach (XElement w in ev.Element("wanteds").Elements("wanted"))
                {
                    Ev_Wanted.Add(new E_Wanted(w.Attribute("id").Value, int.Parse(w.Value)));
                }
                foreach (XElement even in xDoc.Root.Element("ev").Elements("event"))
                {
                    TypeInEventX t_in    = TypeInEventX.None;
                    object       obj_inn = null;
                    switch (even.Element("in").Attribute("type").Value)
                    {
                    case "E_Scan":
                    {
                        t_in    = TypeInEventX.E_Scan;
                        obj_inn = FindEnemyId(even.Element("in").Element("enemy").Value);
                        break;
                    }

                    case "E_Crack":
                    {
                        t_in    = TypeInEventX.E_Crack;
                        obj_inn = FindEnemyId(even.Element("in").Element("enemy").Value);
                        break;
                    }

                    case "Time":
                    {
                        t_in    = TypeInEventX.Time;
                        obj_inn = int.Parse(even.Element("in").Element("time").Value);
                        break;
                    }

                    case "File":
                    {
                        t_in    = TypeInEventX.File;
                        obj_inn = FindFileId(even.Element("in").Element("file").Value);
                        break;
                    }

                    case "Wanted":
                    {
                        t_in    = TypeInEventX.Wanted;
                        obj_inn = int.Parse(even.Element("in").Element("wanted").Value);
                        break;
                    }

                    case "Connected":
                    {
                        t_in    = TypeInEventX.Connected;
                        obj_inn = FindEnemyId(even.Element("in").Element("enemy").Value);
                        break;
                    }

                    case "Service_off":
                    {
                        t_in    = TypeInEventX.Service_off;
                        obj_inn = FindServiceId(even.Element("in").Element("service").Value);
                        break;
                    }

                    default: t_in = TypeInEventX.None;
                        break;
                    }
                    object        obj_out = null;
                    TypeOutEventX t_out   = TypeOutEventX.None;
                    obj_out = FindEventOut(even.Element("out").Attribute("id").Value, out t_out);
                    X_Event.Add(game.AddEvent(t_in, t_out, obj_inn, obj_out));
                }
            }
        }
Example #2
0
        public EventGame AddEvent(TypeInEventX tIn, TypeOutEventX tOut, object dIn, object dOut)
        {
            EventGame b = new EventGame(TypeInEventX.None, TypeOutEventX.None);

            switch (tIn)
            {
            case TypeInEventX.E_Crack:
            case TypeInEventX.E_Scan:
            case TypeInEventX.Connected:
            {
                switch (tOut)
                {
                case TypeOutEventX.WANTED:
                    b = new EventGameX <EnemyComp, SByte>
                            (tIn, tOut, dIn as EnemyComp, (SByte)(dOut as E_Wanted).Wanted);
                    break;

                case TypeOutEventX.ENEMY:
                    b = new EventGameX <EnemyComp, EnemyComp>
                            (tIn, tOut, dIn as EnemyComp, dOut as EnemyComp);
                    break;

                case TypeOutEventX.MAIL:
                    b = new EventGameX <EnemyComp, MailX>
                            (tIn, tOut, dIn as EnemyComp, dOut as MailX);
                    break;

                case TypeOutEventX.FILE:
                    b = new EventGameX <EnemyComp, FileX>
                            (tIn, tOut, dIn as EnemyComp, dOut as FileX);
                    break;
                }
                break;
            }

            case TypeInEventX.File:
            {
                switch (tOut)
                {
                case TypeOutEventX.WANTED:
                    b = new EventGameX <FileX, SByte>
                            (tIn, tOut, dIn as FileX, (SByte)(dOut as E_Wanted).Wanted);
                    break;

                case TypeOutEventX.ENEMY:
                    b = new EventGameX <FileX, EnemyComp>
                            (tIn, tOut, dIn as FileX, dOut as EnemyComp);
                    break;

                case TypeOutEventX.MAIL:
                    b = new EventGameX <FileX, MailX>
                            (tIn, tOut, dIn as FileX, dOut as MailX);
                    break;

                case TypeOutEventX.FILE:
                    b = new EventGameX <FileX, FileX>
                            (tIn, tOut, dIn as FileX, dOut as FileX);
                    break;
                }
                break;
            }

            case TypeInEventX.Wanted:
            case TypeInEventX.Time:
            {
                switch (tOut)
                {
                case TypeOutEventX.WANTED:
                    b = new EventGameX <int, SByte>
                            (tIn, tOut, int.Parse(dIn.ToString()), (SByte)(dOut as E_Wanted).Wanted);
                    break;

                case TypeOutEventX.ENEMY:
                    b = new EventGameX <int, EnemyComp>
                            (tIn, tOut, int.Parse(dIn.ToString()), dOut as EnemyComp);
                    break;

                case TypeOutEventX.MAIL:
                    b = new EventGameX <int, MailX>
                            (tIn, tOut, int.Parse(dIn.ToString()), dOut as MailX);
                    break;

                case TypeOutEventX.FILE:
                    b = new EventGameX <int, FileX>
                            (tIn, tOut, int.Parse(dIn.ToString()), dOut as FileX);
                    break;
                }
                break;
            }

            case TypeInEventX.Service_off:
            {
                switch (tOut)
                {
                case TypeOutEventX.WANTED:
                    b = new EventGameX <ServiceX, SByte>
                            (tIn, tOut, dIn as ServiceX, (SByte)(dOut as E_Wanted).Wanted);
                    break;

                case TypeOutEventX.ENEMY:
                    b = new EventGameX <ServiceX, EnemyComp>
                            (tIn, tOut, dIn as ServiceX, dOut as EnemyComp);
                    break;

                case TypeOutEventX.MAIL:
                    b = new EventGameX <ServiceX, MailX>
                            (tIn, tOut, dIn as ServiceX, dOut as MailX);
                    break;

                case TypeOutEventX.FILE:
                    b = new EventGameX <ServiceX, FileX>
                            (tIn, tOut, dIn as ServiceX, dOut as FileX);
                    break;
                }
                break;
            }
            }

            EventList.Add(b);
            return(b);
        }