Example #1
0
    static void Init()
    {
        SpawnEditor editorWindow = (SpawnEditor)EditorWindow.GetWindow((typeof(SpawnEditor)));

        editorWindow.Show();
        editorWindow.Focus();
    }
Example #2
0
        public Area(SpawnPoint Spawn, SpawnEditor Editor)
        {
            this.InitializeComponent();
            this._Spawn  = Spawn;
            this._Editor = Editor;
            int left = this._Editor.grpSpawnEdit.Left + this._Editor.grpSpawnEdit.Parent.Left + this._Editor.Left;
            int top  = this._Editor.grpSpawnEdit.Top + this._Editor.grpSpawnEdit.Parent.Top + this._Editor.btnUpdateSpawn.Top + this._Editor.Top;

            base.Left = left;
            base.Top  = top;
            NumericUpDown x      = this.spnX;
            Rectangle     bounds = this._Spawn.Bounds;

            x.Value = bounds.X;
            NumericUpDown y = this.spnY;

            bounds  = this._Spawn.Bounds;
            y.Value = bounds.Y;
            NumericUpDown width = this.spnWidth;

            bounds      = this._Spawn.Bounds;
            width.Value = bounds.Width;
            NumericUpDown height = this.spnHeight;

            bounds                = this._Spawn.Bounds;
            height.Value          = bounds.Height;
            this.spnCentreX.Value = this._Spawn.CentreX;
            this.spnCentreY.Value = this._Spawn.CentreY;
            this.spnCentreZ.Value = this._Spawn.CentreZ;
            this._IsConstructed   = true;
        }
Example #3
0
    // Add menu named "TowerEditor" to the Window menu
    //[MenuItem ("TDTK/SpawnEditor")]
    public static void Init()
    {
        // Get existing open window or if none, make a new one:
        window         = (SpawnEditor)EditorWindow.GetWindow(typeof(SpawnEditor));
        window.minSize = new Vector2(620, 620);

        spawnTypeLabel[0] = "Continuous";
        spawnTypeLabel[1] = "WaveCleared";
        spawnTypeLabel[2] = "RoundBased";
        spawnTypeLabel[3] = "SkippableContinuous";
        spawnTypeLabel[4] = "SkippableWaveCleared";

        GetSpawnManager();
    }
Example #4
0
    static void Init()
    {
        // Get existing open window or if none, make a new one:
        window = (SpawnEditor)EditorWindow.GetWindow(typeof (SpawnEditor));
        window.minSize=new Vector2(620, 620);

        spawnTypeLabel[0]="Continuous";
        spawnTypeLabel[1]="WaveCleared";
        spawnTypeLabel[2]="RoundBased";
        spawnTypeLabel[3]="SkippableContinuous";
        spawnTypeLabel[4]="SkippableWaveCleared";

        GetSpawnManager();
    }
Example #5
0
        public Area(SpawnPoint Spawn, SpawnEditor Editor)
        {
            this.InitializeComponent();
            this._Spawn  = Spawn;
            this._Editor = Editor;
            int num1 = this._Editor.grpSpawnEdit.Left + this._Editor.grpSpawnEdit.Parent.Left + this._Editor.Left;
            int num2 = this._Editor.grpSpawnEdit.Top + this._Editor.grpSpawnEdit.Parent.Top + this._Editor.btnUpdateSpawn.Top + this._Editor.Top;

            this.Left             = num1;
            this.Top              = num2;
            this.spnX.Value       = (Decimal)this._Spawn.Bounds.X;
            this.spnY.Value       = (Decimal)this._Spawn.Bounds.Y;
            this.spnWidth.Value   = (Decimal)this._Spawn.Bounds.Width;
            this.spnHeight.Value  = (Decimal)this._Spawn.Bounds.Height;
            this.spnCentreX.Value = (Decimal)this._Spawn.CentreX;
            this.spnCentreY.Value = (Decimal)this._Spawn.CentreY;
            this.spnCentreZ.Value = (Decimal)this._Spawn.CentreZ;
            this._IsConstructed   = true;
        }
Example #6
0
 public Configure(SpawnEditor editor)
 {
     this._Editor = editor;
     this.InitializeComponent();
     this._HKCUKey = Registry.CurrentUser.OpenSubKey(this.AppRegistryKey, true);
     if (this._HKCUKey == null || this._HKCUKey.ValueCount < 14)
     {
         return;
     }
     this.CfgRunUoPathValue             = (string)this._HKCUKey.GetValue(this.AppRunUoPathValue, (object)string.Empty);
     this.CfgUoClientPathValue          = (string)this._HKCUKey.GetValue(this.AppUoClientPathValue, (object)string.Empty);
     this.CfgUoClientWindowValue        = (string)this._HKCUKey.GetValue(this.AppUoClientWindowValue, (object)"Ultima Online Third Dawn");
     this.CfgZoomLevelValue             = short.Parse(this._HKCUKey.GetValue(this.AppZoomLevelValue, (object)"-4") as string);
     this.CfgRunUoCmdPrefix             = (string)this._HKCUKey.GetValue(this.AppRunUoCmdPrefixValue, (object)"[");
     this.CfgSpawnNameValue             = (string)this._HKCUKey.GetValue(this.AppSpawnNameValue, (object)"Spawner");
     this.CfgSpawnHomeRangeValue        = (int)this._HKCUKey.GetValue(this.AppSpawnHomeRangeValue, (object)5);
     this.CfgSpawnMaxCountValue         = (int)this._HKCUKey.GetValue(this.AppSpawnMaxCountValue, (object)1);
     this.CfgSpawnMinDelayValue         = (int)this._HKCUKey.GetValue(this.AppSpawnMinDelayValue, (object)5);
     this.CfgSpawnMaxDelayValue         = (int)this._HKCUKey.GetValue(this.AppSpawnMaxDelayValue, (object)10);
     this.CfgSpawnTeamValue             = (int)this._HKCUKey.GetValue(this.AppSpawnTeamValue, (object)0);
     this.CfgSpawnGroupValue            = bool.Parse(this._HKCUKey.GetValue(this.AppSpawnGroupValue, (object)bool.FalseString) as string);
     this.CfgSpawnRunningValue          = bool.Parse(this._HKCUKey.GetValue(this.AppSpawnRunningValue, (object)bool.TrueString) as string);
     this.CfgSpawnRelativeHomeValue     = bool.Parse(this._HKCUKey.GetValue(this.AppSpawnRelativeHomeValue, (object)bool.TrueString) as string);
     this.CfgStartingStaticsValue       = bool.Parse(this._HKCUKey.GetValue(this.AppStartingStaticsValue, (object)bool.FalseString) as string);
     this.CfgStartingDetailsValue       = bool.Parse(this._HKCUKey.GetValue(this.AppStartingDetailsValue, (object)bool.FalseString) as string);
     this.CfgStartingMapValue           = (WorldMap)Enum.Parse(typeof(WorldMap), this._HKCUKey.GetValue(this.AppStartingMapValue, (object)"Trammel") as string);
     this.CfgStartingOnTopValue         = bool.Parse(this._HKCUKey.GetValue(this.AppStartingOnTopValue, (object)bool.FalseString) as string);
     this.CfgStartingXValue             = (int)this._HKCUKey.GetValue(this.AppStartingXValue, (object)-1);
     this.CfgStartingYValue             = (int)this._HKCUKey.GetValue(this.AppStartingYValue, (object)-1);
     this.CfgStartingWidthValue         = (int)this._HKCUKey.GetValue(this.AppStartingWidthValue, (object)-1);
     this.CfgStartingHeightValue        = (int)this._HKCUKey.GetValue(this.AppStartingHeightValue, (object)-1);
     this.CfgTransferServerAddressValue = (string)this._HKCUKey.GetValue(this.AppTransferServerAddressValue, (object)"127.0.0.1");
     this.CfgTransferServerPortValue    = (int)this._HKCUKey.GetValue(this.AppTransferServerPortValue, (object)8030);
     if (!File.Exists(this.CfgRunUoPathValue) || this.CfgUoClientPathValue.Length <= 0)
     {
         return;
     }
     this._IsValidConfiguration = true;
 }
Example #7
0
    // Add menu named "TowerEditor" to the Window menu
    //[MenuItem ("TDTK/SpawnEditor")]
    public static void Init()
    {
        // Get existing open window or if none, make a new one:
        window         = (SpawnEditor)EditorWindow.GetWindow(typeof(SpawnEditor));
        window.minSize = new Vector2(670, 620);

        int enumLength = Enum.GetValues(typeof(_SpawnLimit)).Length;

        spawnLimitLabel    = new string[enumLength];
        spawnLimitLabel[0] = "Finite";
        spawnLimitLabel[1] = "Infinite";

        spawnLimitTooltip    = new string[enumLength];
        spawnLimitTooltip[0] = "Finite number of waves";
        spawnLimitTooltip[1] = "Infinite number of waves (for survival or endless mode)";

        enumLength        = Enum.GetValues(typeof(_SpawnMode)).Length;
        spawnTypeLabel    = new string[enumLength];
        spawnTypeLabel[0] = "Continuous";
        spawnTypeLabel[1] = "WaveCleared";
        spawnTypeLabel[2] = "RoundBased";
        spawnTypeLabel[3] = "SkippableContinuous";
        spawnTypeLabel[4] = "SkippableWaveCleared";

        spawnTypeTooltip    = new string[enumLength];
        spawnTypeTooltip[0] = "A new wave is spawn upon every wave duration countdown";
        spawnTypeTooltip[1] = "A new wave is spawned when the current wave is cleared";
        spawnTypeTooltip[2] = "Similar to Continuous but user can initiate the new next wave before the timer runs out";
        spawnTypeTooltip[3] = "Similar to WaveCleared but user can initiate the next wave before clearing current wave";
        spawnTypeTooltip[4] = "Each wave is treated like a round. a new wave can only take place when the previous wave is cleared. Each round require initiation from user";

        LoadCreep();
        GetSpawnManager();

        rscList = ResourceEditorWindow.Load();
    }
Example #8
0
 static void OpenSpawnEditor()
 {
     SpawnEditor.Init();
 }
Example #9
0
 public AboutForm(SpawnEditor editor)
 {
     this._Editor = editor;
     this.InitializeComponent();
 }
Example #10
0
 public EntryEdit(SpawnEditor editor)
 {
     this._Editor = editor;
     this.InitializeComponent();
 }
Example #11
0
 public ImportMSF(SpawnEditor editor)
 {
     this._Editor = editor;
 }
Example #12
0
        public void DoImportMap(string filename, out int processedmaps, out int processedspawners)
        {
            processedmaps     = 0;
            processedspawners = 0;
            int num1 = 0;
            int num2 = 0;

            if (filename == null || filename.Length <= 0)
            {
                return;
            }
            if (File.Exists(filename))
            {
                string fileName = Path.GetFileName(filename);
                int    num3     = 0;
                int    num4     = 0;
                int    num5     = 0;
                int    num6     = -1;
                try
                {
                    using (StreamReader streamReader = new StreamReader(filename))
                    {
                        string str;
                        while ((str = streamReader.ReadLine()) != null)
                        {
                            ++num5;
                            string[] strArray1 = str.Trim().Split(' ');
                            if (strArray1.Length == 2)
                            {
                                if (strArray1[0].ToLower() == "overridemap")
                                {
                                    try
                                    {
                                        num6 = int.Parse(strArray1[1]);
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                            if (strArray1.Length > 0 && strArray1[0] == "*")
                            {
                                bool     flag1     = false;
                                int      num7      = 0;
                                int      num8      = 0;
                                int      num9      = 0;
                                int      num10     = 0;
                                int      num11     = 0;
                                int      num12     = 0;
                                int      num13     = 0;
                                int      num14     = 0;
                                int      maxamount = 0;
                                string[] strArray2 = (string[])null;
                                if (strArray1.Length != 11 && strArray1.Length != 12)
                                {
                                    flag1 = true;
                                }
                                else
                                {
                                    strArray2 = strArray1[1].Split(':');
                                    if (strArray1.Length == 11)
                                    {
                                        try
                                        {
                                            num7      = int.Parse(strArray1[2]);
                                            num8      = int.Parse(strArray1[3]);
                                            num9      = int.Parse(strArray1[4]);
                                            num10     = int.Parse(strArray1[5]);
                                            num11     = int.Parse(strArray1[6]);
                                            num12     = int.Parse(strArray1[7]);
                                            num13     = int.Parse(strArray1[8]);
                                            num14     = int.Parse(strArray1[9]);
                                            maxamount = int.Parse(strArray1[10]);
                                        }
                                        catch
                                        {
                                            flag1 = true;
                                        }
                                    }
                                    else if (strArray1.Length == 12)
                                    {
                                        try
                                        {
                                            num7  = int.Parse(strArray1[2]);
                                            num8  = int.Parse(strArray1[3]);
                                            num9  = int.Parse(strArray1[4]);
                                            num10 = int.Parse(strArray1[5]);
                                            num11 = int.Parse(strArray1[6]);
                                            num12 = int.Parse(strArray1[7]);
                                            num13 = int.Parse(strArray1[8]);
                                            num14 = int.Parse(strArray1[9]);
                                            int.Parse(strArray1[10]);
                                            maxamount = int.Parse(strArray1[11]);
                                        }
                                        catch
                                        {
                                            flag1 = true;
                                        }
                                    }
                                }
                                if (!flag1 && strArray2 != null && strArray2.Length > 0)
                                {
                                    if (num6 >= 0)
                                    {
                                        num10 = num6;
                                    }
                                    WorldMap Map = WorldMap.Internal;
                                    switch (num10)
                                    {
                                    case 0:
                                        Map = WorldMap.Felucca;
                                        break;

                                    case 1:
                                        Map = WorldMap.Felucca;
                                        break;

                                    case 2:
                                        Map = WorldMap.Trammel;
                                        break;

                                    case 3:
                                        Map = WorldMap.Ilshenar;
                                        break;

                                    case 4:
                                        Map = WorldMap.Malas;
                                        break;

                                    case 5:
                                        try
                                        {
                                            Map = WorldMap.Tokuno;
                                            break;
                                        }
                                        catch
                                        {
                                            break;
                                        }
                                    }
                                    if (Map == WorldMap.Internal)
                                    {
                                        ++num4;
                                    }
                                    else
                                    {
                                        SpawnPoint Spawn1 = new SpawnPoint(Guid.NewGuid(), Map, (short)num7, (short)num8, (short)(num14 * 2), (short)(num14 * 2));
                                        Spawn1.SpawnName      = string.Format("{0}#{1}", (object)fileName, (object)num3);
                                        Spawn1.SpawnHomeRange = num13;
                                        Spawn1.CentreZ        = (short)num9;
                                        Spawn1.SpawnMinDelay  = (double)num11;
                                        Spawn1.SpawnMaxDelay  = (double)num12;
                                        Spawn1.SpawnMaxCount  = maxamount;
                                        Type runUoType1 = SpawnEditor.FindRunUOType("BaseVendor");
                                        bool flag2      = false;
                                        for (int index = 0; index < strArray2.Length; ++index)
                                        {
                                            Type runUoType2 = SpawnEditor.FindRunUOType(strArray2[index]);
                                            if (runUoType2 != null && runUoType1 != null && (runUoType2 == runUoType1 || runUoType2.IsSubclassOf(runUoType1)))
                                            {
                                                flag2 = true;
                                            }
                                            Spawn1.SpawnObjects.Add((object)new SpawnObject(strArray2[index], maxamount));
                                        }
                                        Spawn1.IsSelected = false;
                                        if (flag2)
                                        {
                                            Spawn1.SpawnSpawnRange = 0;
                                        }
                                        this._Editor.tvwSpawnPoints.Nodes.Add((TreeNode) new SpawnPointNode(Spawn1));
                                        ++num3;
                                        if (num10 == 0)
                                        {
                                            SpawnPoint Spawn2 = new SpawnPoint(Guid.NewGuid(), WorldMap.Trammel, (short)num7, (short)num8, (short)(num14 * 2), (short)(num14 * 2));
                                            Spawn2.SpawnName      = string.Format("{0}#{1}", (object)fileName, (object)num3);
                                            Spawn2.SpawnHomeRange = num13;
                                            Spawn2.CentreZ        = (short)num9;
                                            Spawn2.SpawnMinDelay  = (double)num11;
                                            Spawn2.SpawnMaxDelay  = (double)num12;
                                            Spawn2.SpawnMaxCount  = maxamount;
                                            for (int index = 0; index < strArray2.Length; ++index)
                                            {
                                                Spawn2.SpawnObjects.Add((object)new SpawnObject(strArray2[index], maxamount));
                                            }
                                            Spawn2.IsSelected = false;
                                            if (flag2)
                                            {
                                                Spawn2.SpawnSpawnRange = 0;
                                            }
                                            this._Editor.tvwSpawnPoints.Nodes.Add((TreeNode) new SpawnPointNode(Spawn2));
                                            ++num3;
                                        }
                                    }
                                }
                                else
                                {
                                    ++num4;
                                }
                            }
                        }
                        streamReader.Close();
                    }
                }
                catch
                {
                }
                processedmaps     = 1;
                processedspawners = num3;
            }
            else
            {
                if (!Directory.Exists(filename))
                {
                    return;
                }
                string[] strArray1 = (string[])null;
                try
                {
                    strArray1 = Directory.GetFiles(filename, "*.map");
                }
                catch
                {
                }
                if (strArray1 != null && strArray1.Length > 0)
                {
                    foreach (string filename1 in strArray1)
                    {
                        this.DoImportMap(filename1, out processedmaps, out processedspawners);
                        num1 += processedmaps;
                        num2 += processedspawners;
                    }
                }
                string[] strArray2 = (string[])null;
                try
                {
                    strArray2 = Directory.GetDirectories(filename);
                }
                catch
                {
                }
                if (strArray2 != null && strArray2.Length > 0)
                {
                    foreach (string filename1 in strArray2)
                    {
                        this.DoImportMap(filename1, out processedmaps, out processedspawners);
                        num1 += processedmaps;
                        num2 += processedspawners;
                    }
                }
                processedmaps     = num1;
                processedspawners = num2;
            }
        }
        public bool HasMatch(SpawnPoint spawn)
        {
            if (spawn == null || spawn.SpawnObjects == null)
            {
                return(false);
            }
            bool flag1 = true;

            if (this.cmbSpawnerMap.SelectedIndex == 0 && (WorldMap)this._Editor.cbxMap.SelectedIndex != spawn.Map)
            {
                flag1 = false;
            }
            if (flag1 && this.txtSpawnerName.Text != null && this.txtSpawnerName.Text.Length > 0)
            {
                bool flag2 = false;
                if (this.chkNameCase.Checked)
                {
                    if (spawn.SpawnName.IndexOf(this.txtSpawnerName.Text) >= 0)
                    {
                        flag2 = true;
                    }
                }
                else if (spawn.SpawnName.ToLower().IndexOf(this.txtSpawnerName.Text.ToLower()) >= 0)
                {
                    flag2 = true;
                }
                if (this.cmbNameHas.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.txtSpawnerEntry.Text != null && this.txtSpawnerEntry.Text.Length > 0)
            {
                bool flag2 = false;
                if (spawn.SpawnObjects != null)
                {
                    foreach (SpawnObject spawnObject in spawn.SpawnObjects)
                    {
                        if (this.chkEntryCase.Checked)
                        {
                            if (spawnObject.TypeName != null && spawnObject.TypeName.IndexOf(this.txtSpawnerEntry.Text) >= 0)
                            {
                                flag2 = true;
                                break;
                            }
                        }
                        else if (spawnObject.TypeName != null && spawnObject.TypeName.ToLower().IndexOf(this.txtSpawnerEntry.Text.ToLower()) >= 0)
                        {
                            flag2 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryHas.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.txtSpawnerEntry2.Text != null && this.txtSpawnerEntry2.Text.Length > 0)
            {
                bool flag2 = false;
                if (spawn.SpawnObjects != null)
                {
                    foreach (SpawnObject spawnObject in spawn.SpawnObjects)
                    {
                        if (this.chkEntryCase2.Checked)
                        {
                            if (spawnObject.TypeName != null && spawnObject.TypeName.IndexOf(this.txtSpawnerEntry2.Text) >= 0)
                            {
                                flag2 = true;
                                break;
                            }
                        }
                        else if (spawnObject.TypeName != null && spawnObject.TypeName.ToLower().IndexOf(this.txtSpawnerEntry2.Text.ToLower()) >= 0)
                        {
                            flag2 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryHas2.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.txtSpawnerEntryType.Text != null && this.txtSpawnerEntryType.Text.Length > 0)
            {
                bool flag2     = false;
                Type runUoType = SpawnEditor.FindRunUOType(this.txtSpawnerEntryType.Text.ToLower());
                if (spawn.SpawnObjects != null && runUoType != null)
                {
                    foreach (SpawnObject spawnObject in spawn.SpawnObjects)
                    {
                        Type type = (Type)null;
                        if (spawnObject.TypeName != null)
                        {
                            string[] strArray = spawnObject.TypeName.Split('/');
                            string   name     = (string)null;
                            if (strArray != null && strArray.Length > 0)
                            {
                                name = strArray[0];
                            }
                            type = SpawnEditor.FindRunUOType(name);
                        }
                        if (type != null && (type == runUoType || type.IsSubclassOf(runUoType)))
                        {
                            flag2 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryTypeHas.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.txtSpawnerEntryType2.Text != null && this.txtSpawnerEntryType2.Text.Length > 0)
            {
                bool flag2     = false;
                Type runUoType = SpawnEditor.FindRunUOType(this.txtSpawnerEntryType2.Text.ToLower());
                if (spawn.SpawnObjects != null && runUoType != null)
                {
                    foreach (SpawnObject spawnObject in spawn.SpawnObjects)
                    {
                        Type type = (Type)null;
                        if (spawnObject.TypeName != null)
                        {
                            string[] strArray = spawnObject.TypeName.Split('/');
                            string   name     = (string)null;
                            if (strArray != null && strArray.Length > 0)
                            {
                                name = strArray[0];
                            }
                            type = SpawnEditor.FindRunUOType(name);
                        }
                        if (type != null && (type == runUoType || type.IsSubclassOf(runUoType)))
                        {
                            flag2 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryTypeHas2.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.cmbInContainers.SelectedIndex > 0)
            {
                if (this.cmbInContainers.SelectedIndex == 1 && !spawn.SpawnInContainer)
                {
                    flag1 = false;
                }
                else if (this.cmbInContainers.SelectedIndex == 2 && spawn.SpawnInContainer)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.cmbSequential.SelectedIndex > 0)
            {
                if (this.cmbSequential.SelectedIndex == 1 && spawn.SpawnSequentialSpawn < 0)
                {
                    flag1 = false;
                }
                else if (this.cmbSequential.SelectedIndex == 2 && spawn.SpawnSequentialSpawn >= 0)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.cmbSmartSpawning.SelectedIndex > 0)
            {
                if (this.cmbSmartSpawning.SelectedIndex == 1 && !spawn.SpawnSmartSpawning)
                {
                    flag1 = false;
                }
                else if (this.cmbSmartSpawning.SelectedIndex == 2 && spawn.SpawnSmartSpawning)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.cmbProximity.SelectedIndex > 0)
            {
                if (this.cmbProximity.SelectedIndex == 1 && spawn.SpawnProximityRange < 0)
                {
                    flag1 = false;
                }
                else if (this.cmbProximity.SelectedIndex == 2 && spawn.SpawnProximityRange >= 0)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.cmbRunning.SelectedIndex > 0)
            {
                if (this.cmbRunning.SelectedIndex == 1 && !spawn.SpawnIsRunning)
                {
                    flag1 = false;
                }
                else if (this.cmbRunning.SelectedIndex == 2 && spawn.SpawnIsRunning)
                {
                    flag1 = false;
                }
            }
            if (flag1 && this.chkAvgSpawnTime.Checked)
            {
                double num = (spawn.SpawnMinDelay + spawn.SpawnMaxDelay) / 2.0;
                if (this.cmbAvgSpawnTime.SelectedIndex == 0 && num >= (double)this.numAvgSpawnTime.Value)
                {
                    flag1 = false;
                }
                else if (this.cmbAvgSpawnTime.SelectedIndex == 1 && num <= (double)this.numAvgSpawnTime.Value)
                {
                    flag1 = false;
                }
            }
            string status_str;

            if (flag1 && this.txtPropertyTest.Text != null && (this.txtPropertyTest.Text.Trim().Length > 0 && !PropertyTest.CheckPropertyString((object)spawn, this.txtPropertyTest.Text, out status_str)))
            {
                flag1 = false;
            }
            if (flag1 && this.txtNotes.Text != null && this.txtNotes.Text.Trim().Length > 0)
            {
                bool flag2 = false;
                if (spawn.SpawnNotes != null && spawn.SpawnNotes.Length > 0 && spawn.SpawnNotes.ToLower().IndexOf(this.txtNotes.Text.ToLower()) >= 0)
                {
                    flag2 = true;
                }
                if (this.cmbNotes.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag1 = false;
                    }
                }
                else if (flag2)
                {
                    flag1 = false;
                }
            }
            return(flag1);
        }
 public SpawnerFilters(SpawnEditor editor)
 {
     this.InitializeComponent();
     this._Editor = editor;
     this.InitializeSettings();
 }
        public bool HasMatch(SpawnPoint spawn)
        {
            string str;

            char[] chrArray;
            if (spawn == null || spawn.SpawnObjects == null)
            {
                return(false);
            }
            bool flag = true;

            if (this.cmbSpawnerMap.SelectedIndex == 0 && this._Editor.cbxMap.SelectedIndex != (int)spawn.Map)
            {
                flag = false;
            }
            if (flag && this.txtSpawnerName.Text != null && this.txtSpawnerName.Text.Length > 0)
            {
                bool flag1 = false;
                if (this.chkNameCase.Checked)
                {
                    if (spawn.SpawnName.IndexOf(this.txtSpawnerName.Text) >= 0)
                    {
                        flag1 = true;
                    }
                }
                else if (spawn.SpawnName.ToLower().IndexOf(this.txtSpawnerName.Text.ToLower()) >= 0)
                {
                    flag1 = true;
                }
                if (this.cmbNameHas.SelectedIndex == 0)
                {
                    if (!flag1)
                    {
                        flag = false;
                    }
                }
                else if (flag1)
                {
                    flag = false;
                }
            }
            if (flag && this.txtSpawnerEntry.Text != null && this.txtSpawnerEntry.Text.Length > 0)
            {
                bool flag2 = false;
                if (spawn.SpawnObjects != null)
                {
                    foreach (SpawnObject spawnObject in spawn.SpawnObjects)
                    {
                        if (!this.chkEntryCase.Checked)
                        {
                            if (spawnObject.TypeName == null || spawnObject.TypeName.ToLower().IndexOf(this.txtSpawnerEntry.Text.ToLower()) < 0)
                            {
                                continue;
                            }
                            flag2 = true;
                            break;
                        }
                        else
                        {
                            if (spawnObject.TypeName == null || spawnObject.TypeName.IndexOf(this.txtSpawnerEntry.Text) < 0)
                            {
                                continue;
                            }
                            flag2 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryHas.SelectedIndex == 0)
                {
                    if (!flag2)
                    {
                        flag = false;
                    }
                }
                else if (flag2)
                {
                    flag = false;
                }
            }
            if (flag && this.txtSpawnerEntry2.Text != null && this.txtSpawnerEntry2.Text.Length > 0)
            {
                bool flag3 = false;
                if (spawn.SpawnObjects != null)
                {
                    foreach (SpawnObject spawnObject1 in spawn.SpawnObjects)
                    {
                        if (!this.chkEntryCase2.Checked)
                        {
                            if (spawnObject1.TypeName == null || spawnObject1.TypeName.ToLower().IndexOf(this.txtSpawnerEntry2.Text.ToLower()) < 0)
                            {
                                continue;
                            }
                            flag3 = true;
                            break;
                        }
                        else
                        {
                            if (spawnObject1.TypeName == null || spawnObject1.TypeName.IndexOf(this.txtSpawnerEntry2.Text) < 0)
                            {
                                continue;
                            }
                            flag3 = true;
                            break;
                        }
                    }
                }
                if (this.cmbEntryHas2.SelectedIndex == 0)
                {
                    if (!flag3)
                    {
                        flag = false;
                    }
                }
                else if (flag3)
                {
                    flag = false;
                }
            }
            if (flag && this.txtSpawnerEntryType.Text != null && this.txtSpawnerEntryType.Text.Length > 0)
            {
                bool flag4 = false;
                Type type  = SpawnEditor.FindRunUOType(this.txtSpawnerEntryType.Text.ToLower());
                if (spawn.SpawnObjects != null && type != null)
                {
                    foreach (SpawnObject spawnObject2 in spawn.SpawnObjects)
                    {
                        Type type1 = null;
                        if (spawnObject2.TypeName != null)
                        {
                            string typeName = spawnObject2.TypeName;
                            chrArray = new char[] { '/' };
                            string[] strArrays = typeName.Split(chrArray);
                            string   str1      = null;
                            if (strArrays != null && (int)strArrays.Length > 0)
                            {
                                str1 = strArrays[0];
                            }
                            type1 = SpawnEditor.FindRunUOType(str1);
                        }
                        if (type1 == null || type1 != type && !type1.IsSubclassOf(type))
                        {
                            continue;
                        }
                        flag4 = true;
                        break;
                    }
                }
                if (this.cmbEntryTypeHas.SelectedIndex == 0)
                {
                    if (!flag4)
                    {
                        flag = false;
                    }
                }
                else if (flag4)
                {
                    flag = false;
                }
            }
            if (flag && this.txtSpawnerEntryType2.Text != null && this.txtSpawnerEntryType2.Text.Length > 0)
            {
                bool flag5 = false;
                Type type2 = SpawnEditor.FindRunUOType(this.txtSpawnerEntryType2.Text.ToLower());
                if (spawn.SpawnObjects != null && type2 != null)
                {
                    foreach (SpawnObject spawnObject3 in spawn.SpawnObjects)
                    {
                        Type type3 = null;
                        if (spawnObject3.TypeName != null)
                        {
                            string typeName1 = spawnObject3.TypeName;
                            chrArray = new char[] { '/' };
                            string[] strArrays1 = typeName1.Split(chrArray);
                            string   str2       = null;
                            if (strArrays1 != null && (int)strArrays1.Length > 0)
                            {
                                str2 = strArrays1[0];
                            }
                            type3 = SpawnEditor.FindRunUOType(str2);
                        }
                        if (type3 == null || type3 != type2 && !type3.IsSubclassOf(type2))
                        {
                            continue;
                        }
                        flag5 = true;
                        break;
                    }
                }
                if (this.cmbEntryTypeHas2.SelectedIndex == 0)
                {
                    if (!flag5)
                    {
                        flag = false;
                    }
                }
                else if (flag5)
                {
                    flag = false;
                }
            }
            if (flag && this.cmbInContainers.SelectedIndex > 0)
            {
                if (this.cmbInContainers.SelectedIndex == 1 && !spawn.SpawnInContainer)
                {
                    flag = false;
                }
                else if (this.cmbInContainers.SelectedIndex == 2 && spawn.SpawnInContainer)
                {
                    flag = false;
                }
            }
            if (flag && this.cmbSequential.SelectedIndex > 0)
            {
                if (this.cmbSequential.SelectedIndex == 1 && spawn.SpawnSequentialSpawn < 0)
                {
                    flag = false;
                }
                else if (this.cmbSequential.SelectedIndex == 2 && spawn.SpawnSequentialSpawn >= 0)
                {
                    flag = false;
                }
            }
            if (flag && this.cmbSmartSpawning.SelectedIndex > 0)
            {
                if (this.cmbSmartSpawning.SelectedIndex == 1 && !spawn.SpawnSmartSpawning)
                {
                    flag = false;
                }
                else if (this.cmbSmartSpawning.SelectedIndex == 2 && spawn.SpawnSmartSpawning)
                {
                    flag = false;
                }
            }
            if (flag && this.cmbProximity.SelectedIndex > 0)
            {
                if (this.cmbProximity.SelectedIndex == 1 && spawn.SpawnProximityRange < 0)
                {
                    flag = false;
                }
                else if (this.cmbProximity.SelectedIndex == 2 && spawn.SpawnProximityRange >= 0)
                {
                    flag = false;
                }
            }
            if (flag && this.cmbRunning.SelectedIndex > 0)
            {
                if (this.cmbRunning.SelectedIndex == 1 && !spawn.SpawnIsRunning)
                {
                    flag = false;
                }
                else if (this.cmbRunning.SelectedIndex == 2 && spawn.SpawnIsRunning)
                {
                    flag = false;
                }
            }
            if (flag && this.chkAvgSpawnTime.Checked)
            {
                double spawnMinDelay = (spawn.SpawnMinDelay + spawn.SpawnMaxDelay) / 2;
                if (this.cmbAvgSpawnTime.SelectedIndex == 0 && spawnMinDelay >= (double)((double)this.numAvgSpawnTime.Value))
                {
                    flag = false;
                }
                else if (this.cmbAvgSpawnTime.SelectedIndex == 1 && spawnMinDelay <= (double)((double)this.numAvgSpawnTime.Value))
                {
                    flag = false;
                }
            }
            if (flag && this.txtPropertyTest.Text != null && this.txtPropertyTest.Text.Trim().Length > 0 && !PropertyTest.CheckPropertyString(spawn, this.txtPropertyTest.Text, out str))
            {
                flag = false;
            }
            if (flag && this.txtNotes.Text != null && this.txtNotes.Text.Trim().Length > 0)
            {
                bool flag6 = false;
                if (spawn.SpawnNotes != null && spawn.SpawnNotes.Length > 0 && spawn.SpawnNotes.ToLower().IndexOf(this.txtNotes.Text.ToLower()) >= 0)
                {
                    flag6 = true;
                }
                if (this.cmbNotes.SelectedIndex == 0)
                {
                    if (!flag6)
                    {
                        flag = false;
                    }
                }
                else if (flag6)
                {
                    flag = false;
                }
            }
            return(flag);
        }
Example #16
0
        public void DoImportMap(string filename, out int processedmaps, out int processedspawners)
        {
            int i;

            string[] strArrays;
            processedmaps     = 0;
            processedspawners = 0;
            int num  = 0;
            int num1 = 0;

            if (filename == null || filename.Length <= 0)
            {
                return;
            }
            if (!File.Exists(filename))
            {
                if (Directory.Exists(filename))
                {
                    string[] files = null;
                    try
                    {
                        files = Directory.GetFiles(filename, "*.map");
                    }
                    catch
                    {
                    }
                    if (files != null && (int)files.Length > 0)
                    {
                        strArrays = files;
                        for (i = 0; i < (int)strArrays.Length; i++)
                        {
                            this.DoImportMap(strArrays[i], out processedmaps, out processedspawners);
                            num  = num + processedmaps;
                            num1 = num1 + processedspawners;
                        }
                    }
                    string[] directories = null;
                    try
                    {
                        directories = Directory.GetDirectories(filename);
                    }
                    catch
                    {
                    }
                    if (directories != null && (int)directories.Length > 0)
                    {
                        strArrays = directories;
                        for (i = 0; i < (int)strArrays.Length; i++)
                        {
                            this.DoImportMap(strArrays[i], out processedmaps, out processedspawners);
                            num  = num + processedmaps;
                            num1 = num1 + processedspawners;
                        }
                    }
                    processedmaps     = num;
                    processedspawners = num1;
                }
                return;
            }
            string fileName = Path.GetFileName(filename);
            int    num2     = 0;
            int    num3     = 0;
            int    num4     = 0;
            int    num5     = -1;

            try
            {
                using (StreamReader streamReader = new StreamReader(filename))
                {
                    while (true)
                    {
                        string str  = streamReader.ReadLine();
                        string str1 = str;
                        if (str == null)
                        {
                            break;
                        }
                        num4++;
                        string   str2       = str1.Trim();
                        char[]   chrArray   = new char[] { ' ' };
                        string[] strArrays1 = str2.Split(chrArray);
                        if ((int)strArrays1.Length == 2 && strArrays1[0].ToLower() == "overridemap")
                        {
                            try
                            {
                                num5 = int.Parse(strArrays1[1]);
                            }
                            catch
                            {
                            }
                        }
                        if ((int)strArrays1.Length > 0 && strArrays1[0] == "*")
                        {
                            bool     flag       = false;
                            int      num6       = 0;
                            int      num7       = 0;
                            int      num8       = 0;
                            int      num9       = 0;
                            int      num10      = 0;
                            int      num11      = 0;
                            int      num12      = 0;
                            int      num13      = 0;
                            int      num14      = 0;
                            string[] strArrays2 = null;
                            if ((int)strArrays1.Length == 11 || (int)strArrays1.Length == 12)
                            {
                                string str3 = strArrays1[1];
                                chrArray   = new char[] { ':' };
                                strArrays2 = str3.Split(chrArray);
                                if ((int)strArrays1.Length == 11)
                                {
                                    try
                                    {
                                        num6  = int.Parse(strArrays1[2]);
                                        num7  = int.Parse(strArrays1[3]);
                                        num8  = int.Parse(strArrays1[4]);
                                        num9  = int.Parse(strArrays1[5]);
                                        num10 = int.Parse(strArrays1[6]);
                                        num11 = int.Parse(strArrays1[7]);
                                        num12 = int.Parse(strArrays1[8]);
                                        num13 = int.Parse(strArrays1[9]);
                                        num14 = int.Parse(strArrays1[10]);
                                    }
                                    catch
                                    {
                                        flag = true;
                                    }
                                }
                                else if ((int)strArrays1.Length == 12)
                                {
                                    try
                                    {
                                        num6  = int.Parse(strArrays1[2]);
                                        num7  = int.Parse(strArrays1[3]);
                                        num8  = int.Parse(strArrays1[4]);
                                        num9  = int.Parse(strArrays1[5]);
                                        num10 = int.Parse(strArrays1[6]);
                                        num11 = int.Parse(strArrays1[7]);
                                        num12 = int.Parse(strArrays1[8]);
                                        num13 = int.Parse(strArrays1[9]);
                                        int.Parse(strArrays1[10]);
                                        num14 = int.Parse(strArrays1[11]);
                                    }
                                    catch
                                    {
                                        flag = true;
                                    }
                                }
                            }
                            else
                            {
                                flag = true;
                            }
                            if (flag || strArrays2 == null || (int)strArrays2.Length <= 0)
                            {
                                num3++;
                            }
                            else
                            {
                                if (num5 >= 0)
                                {
                                    num9 = num5;
                                }
                                WorldMap worldMap = WorldMap.Internal;
                                i = num9;
                                switch (i)
                                {
                                case 0:
                                {
                                    worldMap = WorldMap.Felucca;
                                    break;
                                }

                                case 1:
                                {
                                    worldMap = WorldMap.Felucca;
                                    break;
                                }

                                case 2:
                                {
                                    worldMap = WorldMap.Trammel;
                                    break;
                                }

                                case 3:
                                {
                                    worldMap = WorldMap.Ilshenar;
                                    break;
                                }

                                case 4:
                                {
                                    worldMap = WorldMap.Malas;
                                    break;
                                }

                                case 5:
                                {
                                    try
                                    {
                                        worldMap = WorldMap.Tokuno;
                                        break;
                                    }
                                    catch
                                    {
                                        break;
                                    }
                                    break;
                                }
                                }
                                if (worldMap != WorldMap.Internal)
                                {
                                    Guid       guid       = Guid.NewGuid();
                                    SpawnPoint spawnPoint = new SpawnPoint(guid, worldMap, (short)num6, (short)num7, (short)(num13 * 2), (short)(num13 * 2))
                                    {
                                        SpawnName      = string.Format("{0}#{1}", fileName, num2),
                                        SpawnHomeRange = num12,
                                        CentreZ        = (short)num8,
                                        SpawnMinDelay  = (double)num10,
                                        SpawnMaxDelay  = (double)num11,
                                        SpawnMaxCount  = num14
                                    };
                                    Type type  = SpawnEditor.FindRunUOType("BaseVendor");
                                    bool flag1 = false;
                                    for (int j = 0; j < (int)strArrays2.Length; j++)
                                    {
                                        Type type1 = SpawnEditor.FindRunUOType(strArrays2[j]);
                                        if (type1 != null && type != null && (type1 == type || type1.IsSubclassOf(type)))
                                        {
                                            flag1 = true;
                                        }
                                        spawnPoint.SpawnObjects.Add(new SpawnObject(strArrays2[j], num14));
                                    }
                                    spawnPoint.IsSelected = false;
                                    if (flag1)
                                    {
                                        spawnPoint.SpawnSpawnRange = 0;
                                    }
                                    SpawnPointNode spawnPointNode = new SpawnPointNode(spawnPoint);
                                    this._Editor.tvwSpawnPoints.Nodes.Add(spawnPointNode);
                                    num2++;
                                    if (num9 == 0)
                                    {
                                        worldMap   = WorldMap.Trammel;
                                        guid       = Guid.NewGuid();
                                        spawnPoint = new SpawnPoint(guid, worldMap, (short)num6, (short)num7, (short)(num13 * 2), (short)(num13 * 2))
                                        {
                                            SpawnName      = string.Format("{0}#{1}", fileName, num2),
                                            SpawnHomeRange = num12,
                                            CentreZ        = (short)num8,
                                            SpawnMinDelay  = (double)num10,
                                            SpawnMaxDelay  = (double)num11,
                                            SpawnMaxCount  = num14
                                        };
                                        for (int k = 0; k < (int)strArrays2.Length; k++)
                                        {
                                            spawnPoint.SpawnObjects.Add(new SpawnObject(strArrays2[k], num14));
                                        }
                                        spawnPoint.IsSelected = false;
                                        if (flag1)
                                        {
                                            spawnPoint.SpawnSpawnRange = 0;
                                        }
                                        spawnPointNode = new SpawnPointNode(spawnPoint);
                                        this._Editor.tvwSpawnPoints.Nodes.Add(spawnPointNode);
                                        num2++;
                                    }
                                }
                                else
                                {
                                    num3++;
                                }
                            }
                        }
                    }
                    streamReader.Close();
                }
            }
            catch
            {
            }
            processedmaps     = 1;
            processedspawners = num2;
        }