Example #1
0
    void EventHandler()
    {
        if (Input.GetButton("Fire1"))
        {
            if (previewedObject != null)
            {
                if (previewedObject.CanInstantiate())
                {
                    generatedTrap.Add(previewedObject);
                    previewedObject.instantiateTrap();
                    previewedObject = null;
                }
            }
        }

        if (Input.GetKeyDown(KeyCode.P))
        {
            EnableTrap(generatedTrap);
        }
        else if (Input.GetKeyDown(KeyCode.B))
        {
            ResetPreview();
            indexCurrentSelection += 1;
            currentPlugIndex       = 0;
            indexCurrentSelection  = indexCurrentSelection % availablePrefabs.Length;
            currentSelection       = availablePrefabs[indexCurrentSelection];
        }
        else if (Input.GetKeyDown(KeyCode.R))
        {
            ResetPreview();
            currentPlugIndex += 1;
            currentPlugIndex  = currentPlugIndex % GetNbPlugs(currentSelection);
        }
    }
Example #2
0
 void ResetPreview()
 {
     if (previewedObject != null)
     {
         Object.Destroy(previewedObject.gameObject);
         previewedObject = null;
     }
 }
Example #3
0
    void SetObjectKinematic(TrapElement obj, bool isKinematic)
    {
        foreach (Rigidbody r in obj.GetComponentsInChildren <Rigidbody>())
        {
            r.isKinematic = isKinematic;
        }
        BoxCollider box = obj.gameObject.AddComponent <BoxCollider>();

        box.isTrigger = isKinematic;
    }
        private void ChooseBtn_Click(object sender, EventArgs e)
        {
            TrapSelectForm trapSelectForm = new TrapSelectForm();

            if (trapSelectForm.ShowDialog() == DialogResult.OK)
            {
                this.fTrapElement.Trap = trapSelectForm.Trap.Copy();
                this.update_view();
            }
        }
        private void EditBtn_Click(object sender, EventArgs e)
        {
            TrapBuilderForm trapBuilderForm = new TrapBuilderForm(this.fTrapElement.Trap);

            if (trapBuilderForm.ShowDialog() == DialogResult.OK)
            {
                this.fTrapElement.Trap = trapBuilderForm.Trap;
                this.update_view();
            }
        }
Example #6
0
    // Start is called before the first frame update
    void Start()
    {
        if (availablePrefabs.Length <= 0)
        {
            Debug.Log("Error: no prefabs available");
            return;
        }

        currentSelection = availablePrefabs[indexCurrentSelection];
        previewedObject  = null;
        TrapElement firstElement = Instantiate(currentSelection, new Vector3(0, 0, 0), Quaternion.identity);

        SetObjectKinematic(firstElement, true);
        generatedTrap.Add(firstElement);
    }
Example #7
0
    int GetNbPlugs(TrapElement trap)
    {
        int res = 0;

        for (int i = 0; i < trap.transform.childCount; i++)
        {
            Transform child = trap.transform.GetChild(i);
            if (child.tag == "Plug")
            {
                res += 1;
            }
        }

        return(res);
    }
Example #8
0
        private static TrapElement get_trap(Map map, MapArea ma, AutoBuildData data)
        {
            Trap trap = DelveBuilder.select_trap(data);

            if (trap == null)
            {
                return(null);
            }
            TrapElement trapElement = new TrapElement()
            {
                Trap      = trap,
                MapID     = map.ID,
                MapAreaID = ma.ID
            };

            return(trapElement);
        }
Example #9
0
        static TrapElement get_trap(Map map, MapArea ma, AutoBuildData data)
        {
            Trap t = select_trap(data);

            if (t != null)
            {
                TrapElement te = new TrapElement();

                te.Trap      = t;
                te.MapID     = map.ID;
                te.MapAreaID = ma.ID;

                return(te);
            }

            return(null);
        }
Example #10
0
        void update_list()
        {
            ItemList.Items.Clear();

            switch (fType)
            {
            case OverviewType.Encounters:
            {
                foreach (PlotPoint pp in fPoints)
                {
                    if (pp.Element == null)
                    {
                        continue;
                    }

                    if (pp.Element is Encounter)
                    {
                        Encounter enc = pp.Element as Encounter;

                        string creatures = "";
                        foreach (EncounterSlot slot in enc.AllSlots)
                        {
                            if (creatures != "")
                            {
                                creatures += ", ";
                            }

                            creatures += slot.Card.Title;
                            if (slot.CombatData.Count != 1)
                            {
                                creatures += " (x" + slot.CombatData.Count + ")";
                            }
                        }

                        foreach (Trap trap in enc.Traps)
                        {
                            if (creatures != "")
                            {
                                creatures += ", ";
                            }

                            creatures += trap.Name;
                        }

                        ListViewItem lvi = ItemList.Items.Add(pp.Name);
                        lvi.SubItems.Add(enc.GetXP() + " XP; " + creatures);
                        lvi.Tag = new Pair <PlotPoint, Encounter>(pp, enc);
                    }
                }
            }
            break;

            case OverviewType.Traps:
            {
                foreach (PlotPoint pp in fPoints)
                {
                    if (pp.Element == null)
                    {
                        continue;
                    }

                    if (pp.Element is TrapElement)
                    {
                        TrapElement te = pp.Element as TrapElement;

                        ListViewItem lvi = ItemList.Items.Add(pp.Name);
                        lvi.SubItems.Add(Experience.GetCreatureXP(te.Trap.Level) + " XP; " + te.Trap.Name);
                        lvi.Tag = new Pair <PlotPoint, Trap>(pp, te.Trap);
                    }

                    if (pp.Element is Encounter)
                    {
                        Encounter enc = pp.Element as Encounter;

                        foreach (Trap trap in enc.Traps)
                        {
                            ListViewItem lvi = ItemList.Items.Add(pp.Name);
                            lvi.SubItems.Add(Experience.GetCreatureXP(trap.Level) + " XP; " + trap.Name);
                            lvi.Tag = new Pair <PlotPoint, Trap>(pp, trap);
                        }
                    }
                }
            }
            break;

            case OverviewType.SkillChallenges:
            {
                foreach (PlotPoint pp in fPoints)
                {
                    if (pp.Element == null)
                    {
                        continue;
                    }

                    if (pp.Element is SkillChallenge)
                    {
                        SkillChallenge sc = pp.Element as SkillChallenge;

                        ListViewItem lvi = ItemList.Items.Add(pp.Name);
                        lvi.SubItems.Add(sc.GetXP() + " XP");
                        lvi.Tag = new Pair <PlotPoint, SkillChallenge>(pp, sc);
                    }

                    if (pp.Element is Encounter)
                    {
                        Encounter enc = pp.Element as Encounter;

                        foreach (SkillChallenge sc in enc.SkillChallenges)
                        {
                            ListViewItem lvi = ItemList.Items.Add(pp.Name);
                            lvi.SubItems.Add(sc.GetXP() + " XP");
                            lvi.Tag = new Pair <PlotPoint, SkillChallenge>(pp, sc);
                        }
                    }
                }
            }
            break;

            case OverviewType.Treasure:
            {
                foreach (PlotPoint pp in fPoints)
                {
                    foreach (Parcel parcel in pp.Parcels)
                    {
                        string name = (parcel.Name != "") ? parcel.Name : "(undefined parcel)";

                        ListViewItem lvi = ItemList.Items.Add(pp.Name);
                        lvi.SubItems.Add(name + ": " + parcel.Details);
                        lvi.Tag = new Pair <PlotPoint, Parcel>(pp, parcel);
                    }
                }
            }
            break;
            }

            if (ItemList.Items.Count == 0)
            {
                ListViewItem lvi = ItemList.Items.Add("(no items)");
                lvi.ForeColor = SystemColors.GrayText;
            }

            ItemList.Sort();
        }
Example #11
0
        private void ItemList_DoubleClick(object sender, EventArgs e)
        {
            switch (fType)
            {
            case OverviewType.Encounters:
            {
                if (SelectedEncounter != null)
                {
                    int level = Workspace.GetPartyLevel(SelectedEncounter.First);

                    EncounterBuilderForm dlg = new EncounterBuilderForm(SelectedEncounter.Second, level, false);
                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        SelectedEncounter.First.Element = dlg.Encounter;
                        Session.Modified = true;

                        update_list();
                    }

                    return;
                }
            }
            break;

            case OverviewType.Traps:
            {
                if (SelectedTrap != null)
                {
                    if (SelectedTrap.First.Element is TrapElement)
                    {
                        TrapElement te = SelectedTrap.First.Element as TrapElement;

                        TrapBuilderForm dlg = new TrapBuilderForm(SelectedTrap.Second);
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            te.Trap          = dlg.Trap;
                            Session.Modified = true;

                            update_list();
                        }

                        return;
                    }

                    if (SelectedTrap.First.Element is Encounter)
                    {
                        Encounter enc   = SelectedTrap.First.Element as Encounter;
                        int       index = enc.Traps.IndexOf(SelectedTrap.Second);

                        TrapBuilderForm dlg = new TrapBuilderForm(SelectedTrap.Second);
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            enc.Traps[index] = dlg.Trap;
                            Session.Modified = true;

                            update_list();
                        }

                        return;
                    }
                }
            }
            break;

            case OverviewType.SkillChallenges:
            {
                if (SelectedChallenge != null)
                {
                    if (SelectedChallenge.First.Element is SkillChallenge)
                    {
                        SkillChallenge sc = SelectedChallenge.First.Element as SkillChallenge;

                        SkillChallengeBuilderForm dlg = new SkillChallengeBuilderForm(SelectedChallenge.Second);
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            sc.Name       = dlg.SkillChallenge.Name;
                            sc.Level      = dlg.SkillChallenge.Level;
                            sc.Complexity = dlg.SkillChallenge.Complexity;
                            sc.Success    = dlg.SkillChallenge.Success;
                            sc.Failure    = dlg.SkillChallenge.Failure;

                            sc.Skills.Clear();
                            foreach (SkillChallengeData scd in dlg.SkillChallenge.Skills)
                            {
                                sc.Skills.Add(scd.Copy());
                            }

                            Session.Modified = true;

                            update_list();
                        }

                        return;
                    }

                    if (SelectedChallenge.First.Element is Encounter)
                    {
                        Encounter enc   = SelectedChallenge.First.Element as Encounter;
                        int       index = enc.SkillChallenges.IndexOf(SelectedChallenge.Second);

                        SkillChallengeBuilderForm dlg = new SkillChallengeBuilderForm(SelectedChallenge.Second);
                        if (dlg.ShowDialog() == DialogResult.OK)
                        {
                            enc.SkillChallenges[index] = dlg.SkillChallenge;
                            Session.Modified           = true;

                            update_list();
                        }

                        return;
                    }
                }
            }
            break;

            case OverviewType.Treasure:
            {
                if (SelectedParcel != null)
                {
                    int index = SelectedParcel.First.Parcels.IndexOf(SelectedParcel.Second);

                    ParcelForm dlg = new ParcelForm(SelectedParcel.Second);
                    if (dlg.ShowDialog() == DialogResult.OK)
                    {
                        SelectedParcel.First.Parcels[index] = dlg.Parcel;
                        Session.Modified = true;

                        update_list();
                    }

                    return;
                }
            }
            break;
            }
        }
Example #12
0
    public bool LoadBin(byte[] binContent)
    {
        m_mapElements.Clear();
        m_vecAllElements.Clear();
        int nCol, nRow;
        int readPos = 0;

        readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nCol);
        readPos += GameAssist.ReadInt32Variant(binContent, readPos, out nRow);
        List <string> vecLine     = new List <string>(nCol);
        List <int>    vecHeadType = new List <int>(nCol);
        string        tmpStr;
        int           tmpInt;

        for (int i = 0; i < nCol; i++)
        {
            readPos += GameAssist.ReadString(binContent, readPos, out tmpStr);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out tmpInt);
            vecLine.Add(tmpStr);
            vecHeadType.Add(tmpInt);
        }
        if (vecLine.Count != 7)
        {
            Ex.Logger.Log("Trap.csv中列数量与生成的代码不匹配!");
            return(false);
        }
        if (vecLine[0] != "TrapID")
        {
            Ex.Logger.Log("Trap.csv中字段[TrapID]位置不对应"); return(false);
        }
        if (vecLine[1] != "AblityID")
        {
            Ex.Logger.Log("Trap.csv中字段[AblityID]位置不对应"); return(false);
        }
        if (vecLine[2] != "TriggerType")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerType]位置不对应"); return(false);
        }
        if (vecLine[3] != "TriggerParameter1")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerParameter1]位置不对应"); return(false);
        }
        if (vecLine[4] != "TriggerParameter2")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerParameter2]位置不对应"); return(false);
        }
        if (vecLine[5] != "Times")
        {
            Ex.Logger.Log("Trap.csv中字段[Times]位置不对应"); return(false);
        }
        if (vecLine[6] != "BuffID")
        {
            Ex.Logger.Log("Trap.csv中字段[BuffID]位置不对应"); return(false);
        }

        for (int i = 0; i < nRow; i++)
        {
            TrapElement member = new TrapElement();
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.TrapID);
            readPos += GameAssist.ReadString(binContent, readPos, out member.AblityID);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.TriggerType);
            readPos += GameAssist.ReadString(binContent, readPos, out member.TriggerParameter1);
            readPos += GameAssist.ReadString(binContent, readPos, out member.TriggerParameter2);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.Times);
            readPos += GameAssist.ReadInt32Variant(binContent, readPos, out member.BuffID);

            member.IsValidate = true;
            m_vecAllElements.Add(member);
            m_mapElements[member.TrapID] = member;
        }
        return(true);
    }
Example #13
0
 private TrapTable()
 {
     m_mapElements    = new Dictionary <int, TrapElement>();
     m_emptyItem      = new TrapElement();
     m_vecAllElements = new List <TrapElement>();
 }
Example #14
0
    public bool LoadCsv(string strContent)
    {
        if (strContent.Length == 0)
        {
            return(false);
        }
        m_mapElements.Clear();
        m_vecAllElements.Clear();
        int           contentOffset = 0;
        List <string> vecLine;

        vecLine = GameAssist.readCsvLine(strContent, ref contentOffset);
        if (vecLine.Count != 7)
        {
            Ex.Logger.Log("Trap.csv中列数量与生成的代码不匹配!");
            return(false);
        }
        if (vecLine[0] != "TrapID")
        {
            Ex.Logger.Log("Trap.csv中字段[TrapID]位置不对应"); return(false);
        }
        if (vecLine[1] != "AblityID")
        {
            Ex.Logger.Log("Trap.csv中字段[AblityID]位置不对应"); return(false);
        }
        if (vecLine[2] != "TriggerType")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerType]位置不对应"); return(false);
        }
        if (vecLine[3] != "TriggerParameter1")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerParameter1]位置不对应"); return(false);
        }
        if (vecLine[4] != "TriggerParameter2")
        {
            Ex.Logger.Log("Trap.csv中字段[TriggerParameter2]位置不对应"); return(false);
        }
        if (vecLine[5] != "Times")
        {
            Ex.Logger.Log("Trap.csv中字段[Times]位置不对应"); return(false);
        }
        if (vecLine[6] != "BuffID")
        {
            Ex.Logger.Log("Trap.csv中字段[BuffID]位置不对应"); return(false);
        }

        while (true)
        {
            vecLine = GameAssist.readCsvLine(strContent, ref contentOffset);
            if ((int)vecLine.Count == 0)
            {
                break;
            }
            if ((int)vecLine.Count != (int)7)
            {
                return(false);
            }
            TrapElement member = new TrapElement();
            member.TrapID            = Convert.ToInt32(vecLine[0]);
            member.AblityID          = vecLine[1];
            member.TriggerType       = Convert.ToInt32(vecLine[2]);
            member.TriggerParameter1 = vecLine[3];
            member.TriggerParameter2 = vecLine[4];
            member.Times             = Convert.ToInt32(vecLine[5]);
            member.BuffID            = Convert.ToInt32(vecLine[6]);

            member.IsValidate = true;
            m_vecAllElements.Add(member);
            m_mapElements[member.TrapID] = member;
        }
        return(true);
    }
Example #15
0
        void element_select(object sender, WebBrowserNavigatingEventArgs e)
        {
            int level = get_party_level();

            if (e.Url.LocalPath == "encounter")
            {
                // Add an encounter
                Encounter enc = new Encounter();
                enc.SetStandardEncounterNotes();
                fPoint.Element = enc;

                update_element();
            }

            if (e.Url.LocalPath == "pasteencounter")
            {
                // Add an encounter
                Encounter enc = Clipboard.GetData(typeof(Encounter).ToString()) as Encounter;
                fPoint.Element = enc;

                update_element();
            }

            if (e.Url.LocalPath == "challenge")
            {
                // Add a skill challenge
                SkillChallenge sc = new SkillChallenge();
                sc.Name        = "Unnamed Skill Challenge";
                sc.Level       = level;
                fPoint.Element = sc;

                update_element();
            }

            if (e.Url.LocalPath == "pastechallenge")
            {
                // Add a skill challenge
                SkillChallenge sc = Clipboard.GetData(typeof(SkillChallenge).ToString()) as SkillChallenge;
                sc.Level       = level;
                fPoint.Element = sc;

                update_element();
            }

            if (e.Url.LocalPath == "trap")
            {
                // Add a trap
                TrapElement te = new TrapElement();
                te.Trap.Name   = "Unnamed Trap";
                te.Trap.Level  = level;
                fPoint.Element = te;

                update_element();
            }

            if (e.Url.LocalPath == "pastetrap")
            {
                // Add a trap
                TrapElement te = Clipboard.GetData(typeof(TrapElement).ToString()) as TrapElement;
                te.Trap.Level  = level;
                fPoint.Element = te;

                update_element();
            }

            if (e.Url.LocalPath == "quest")
            {
                // Add a quest
                Quest q = new Quest();
                q.Level        = level;
                fPoint.Element = q;

                update_element();
            }

            if (e.Url.LocalPath == "pastequest")
            {
                // Add a quest
                Quest q = Clipboard.GetData(typeof(Quest).ToString()) as Quest;
                q.Level        = level;
                fPoint.Element = q;

                update_element();
            }

            if (e.Url.LocalPath == "map")
            {
                // Add a map
                MapElement me = new MapElement();
                fPoint.Element = me;

                update_element();
            }

            if (e.Url.LocalPath == "pastemap")
            {
                // Add a map
                MapElement me = Clipboard.GetData(typeof(MapElement).ToString()) as MapElement;
                fPoint.Element = me;

                update_element();
            }
        }
Example #16
0
        private void update_list()
        {
            this.ItemList.Items.Clear();
            switch (this.fType)
            {
            case OverviewType.Encounters:
            {
                List <PlotPoint> .Enumerator enumerator = this.fPoints.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        PlotPoint current = enumerator.Current;
                        if (current.Element == null || !(current.Element is Encounter))
                        {
                            continue;
                        }
                        Encounter element = current.Element as Encounter;
                        string    str     = "";
                        List <EncounterSlot> .Enumerator enumerator1 = element.AllSlots.GetEnumerator();
                        try
                        {
                            while (enumerator1.MoveNext())
                            {
                                EncounterSlot encounterSlot = enumerator1.Current;
                                if (str != "")
                                {
                                    str = string.Concat(str, ", ");
                                }
                                str = string.Concat(str, encounterSlot.Card.Title);
                                if (encounterSlot.CombatData.Count == 1)
                                {
                                    continue;
                                }
                                object   obj   = str;
                                object[] count = new object[] { obj, " (x", encounterSlot.CombatData.Count, ")" };
                                str = string.Concat(count);
                            }
                        }
                        finally
                        {
                            ((IDisposable)enumerator1).Dispose();
                        }
                        List <Trap> .Enumerator enumerator2 = element.Traps.GetEnumerator();
                        try
                        {
                            while (enumerator2.MoveNext())
                            {
                                Trap trap = enumerator2.Current;
                                if (str != "")
                                {
                                    str = string.Concat(str, ", ");
                                }
                                str = string.Concat(str, trap.Name);
                            }
                        }
                        finally
                        {
                            ((IDisposable)enumerator2).Dispose();
                        }
                        ListViewItem pair = this.ItemList.Items.Add(current.Name);
                        pair.SubItems.Add(string.Concat(element.GetXP(), " XP; ", str));
                        pair.Tag = new Pair <PlotPoint, Encounter>(current, element);
                    }
                    break;
                }
                finally
                {
                    ((IDisposable)enumerator).Dispose();
                }
            }

            case OverviewType.Traps:
            {
                List <PlotPoint> .Enumerator enumerator3 = this.fPoints.GetEnumerator();
                try
                {
                    while (enumerator3.MoveNext())
                    {
                        PlotPoint plotPoint = enumerator3.Current;
                        if (plotPoint.Element == null)
                        {
                            continue;
                        }
                        if (plotPoint.Element is TrapElement)
                        {
                            TrapElement  trapElement  = plotPoint.Element as TrapElement;
                            ListViewItem listViewItem = this.ItemList.Items.Add(plotPoint.Name);
                            listViewItem.SubItems.Add(string.Concat(Experience.GetCreatureXP(trapElement.Trap.Level), " XP; ", trapElement.Trap.Name));
                            listViewItem.Tag = new Pair <PlotPoint, Trap>(plotPoint, trapElement.Trap);
                        }
                        if (!(plotPoint.Element is Encounter))
                        {
                            continue;
                        }
                        List <Trap> .Enumerator enumerator4 = (plotPoint.Element as Encounter).Traps.GetEnumerator();
                        try
                        {
                            while (enumerator4.MoveNext())
                            {
                                Trap         current1 = enumerator4.Current;
                                ListViewItem pair1    = this.ItemList.Items.Add(plotPoint.Name);
                                pair1.SubItems.Add(string.Concat(Experience.GetCreatureXP(current1.Level), " XP; ", current1.Name));
                                pair1.Tag = new Pair <PlotPoint, Trap>(plotPoint, current1);
                            }
                        }
                        finally
                        {
                            ((IDisposable)enumerator4).Dispose();
                        }
                    }
                    break;
                }
                finally
                {
                    ((IDisposable)enumerator3).Dispose();
                }
            }

            case OverviewType.SkillChallenges:
            {
                List <PlotPoint> .Enumerator enumerator5 = this.fPoints.GetEnumerator();
                try
                {
                    while (enumerator5.MoveNext())
                    {
                        PlotPoint plotPoint1 = enumerator5.Current;
                        if (plotPoint1.Element == null)
                        {
                            continue;
                        }
                        if (plotPoint1.Element is SkillChallenge)
                        {
                            SkillChallenge skillChallenge = plotPoint1.Element as SkillChallenge;
                            ListViewItem   listViewItem1  = this.ItemList.Items.Add(plotPoint1.Name);
                            listViewItem1.SubItems.Add(string.Concat(skillChallenge.GetXP(), " XP"));
                            listViewItem1.Tag = new Pair <PlotPoint, SkillChallenge>(plotPoint1, skillChallenge);
                        }
                        if (!(plotPoint1.Element is Encounter))
                        {
                            continue;
                        }
                        List <SkillChallenge> .Enumerator enumerator6 = (plotPoint1.Element as Encounter).SkillChallenges.GetEnumerator();
                        try
                        {
                            while (enumerator6.MoveNext())
                            {
                                SkillChallenge skillChallenge1 = enumerator6.Current;
                                ListViewItem   pair2           = this.ItemList.Items.Add(plotPoint1.Name);
                                pair2.SubItems.Add(string.Concat(skillChallenge1.GetXP(), " XP"));
                                pair2.Tag = new Pair <PlotPoint, SkillChallenge>(plotPoint1, skillChallenge1);
                            }
                        }
                        finally
                        {
                            ((IDisposable)enumerator6).Dispose();
                        }
                    }
                    break;
                }
                finally
                {
                    ((IDisposable)enumerator5).Dispose();
                }
            }

            case OverviewType.Treasure:
            {
                List <PlotPoint> .Enumerator enumerator7 = this.fPoints.GetEnumerator();
                try
                {
                    while (enumerator7.MoveNext())
                    {
                        PlotPoint current2 = enumerator7.Current;
                        List <Parcel> .Enumerator enumerator8 = current2.Parcels.GetEnumerator();
                        try
                        {
                            while (enumerator8.MoveNext())
                            {
                                Parcel       parcel        = enumerator8.Current;
                                string       str1          = (parcel.Name != "" ? parcel.Name : "(undefined parcel)");
                                ListViewItem listViewItem2 = this.ItemList.Items.Add(current2.Name);
                                listViewItem2.SubItems.Add(string.Concat(str1, ": ", parcel.Details));
                                listViewItem2.Tag = new Pair <PlotPoint, Parcel>(current2, parcel);
                            }
                        }
                        finally
                        {
                            ((IDisposable)enumerator8).Dispose();
                        }
                    }
                    break;
                }
                finally
                {
                    ((IDisposable)enumerator7).Dispose();
                }
            }
            }
            if (this.ItemList.Items.Count == 0)
            {
                ListViewItem grayText = this.ItemList.Items.Add("(no items)");
                grayText.ForeColor = SystemColors.GrayText;
            }
            this.ItemList.Sort();
        }
Example #17
0
    bool PreviewEdition()
    {
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            int layerPlug = LayerMask.NameToLayer("Plug");
            if (hit.collider.gameObject.layer == layerPlug)
            {
                if (previewedObject != null)
                {
                    return(true);
                }

                Transform attachedElement    = hit.collider.gameObject.transform.parent;
                Transform plugPrefab         = currentSelection.transform.GetChild(currentPlugIndex);
                Transform plugged            = hit.collider.transform;
                Vector3   newElementPosition = plugged.position - plugPrefab.position;
                Vector3   normalPlug         = plugPrefab.forward;
                Vector3   normalPlugged      = plugged.forward;

                Vector3 axisRotation = Vector3.Cross(normalPlug, normalPlugged);
                if (Vector3.Cross(normalPlug, normalPlugged) == Vector3.zero)//if the forward vectors are in the same direction, any orthogonal axis is valid
                {
                    /*if(normalPlug != Vector3.up && normalPlug != -Vector3.up)
                     *  axisRotation = -Vector3.up;
                     * else
                     *  axisRotation = -Vector3.left;*/

                    if (normalPlug.x != 0)
                    {
                        axisRotation = new Vector3(normalPlug.z / normalPlug.x, 0, 1);
                    }
                    else if (normalPlug.y != 0)
                    {
                        axisRotation = new Vector3(0, normalPlug.z / normalPlug.y, 1);
                    }
                    else//normalPlug.z has to be != 0
                    {
                        axisRotation = new Vector3(0, 1, normalPlug.y / normalPlug.z);
                    }
                }

                previewedObject = Instantiate(currentSelection, newElementPosition, Quaternion.identity);
                SetObjectKinematic(previewedObject, true);
                previewedObject.transform.RotateAround(plugged.position, axisRotation, -Vector3.Angle(-normalPlugged, normalPlug));
                Transform  plug     = previewedObject.transform.GetChild(currentPlugIndex);
                FixedJoint newJoint = plug.gameObject.AddComponent <FixedJoint>();
                newJoint.connectedBody = hit.collider.attachedRigidbody;

                return(true);
            }
            else
            {
                if (previewedObject != null)
                {
                    if (!previewedObject.CanInstantiate())
                    {
                        return(false);
                    }
                }

                if (hit.collider.gameObject.name == "Terrain")
                {
                    return(false);
                }

                return(true);
            }
        }
        return(false);
    }
Example #18
0
        private void ItemList_DoubleClick(object sender, EventArgs e)
        {
            switch (this.fType)
            {
            case OverviewType.Encounters:
            {
                if (this.SelectedEncounter == null)
                {
                    break;
                }
                int partyLevel = Workspace.GetPartyLevel(this.SelectedEncounter.First);
                EncounterBuilderForm encounterBuilderForm = new EncounterBuilderForm(this.SelectedEncounter.Second, partyLevel, false);
                if (encounterBuilderForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    this.SelectedEncounter.First.Element = encounterBuilderForm.Encounter;
                    Session.Modified = true;
                    this.update_list();
                }
                return;
            }

            case OverviewType.Traps:
            {
                if (this.SelectedTrap == null)
                {
                    break;
                }
                if (this.SelectedTrap.First.Element is TrapElement)
                {
                    TrapElement     element         = this.SelectedTrap.First.Element as TrapElement;
                    TrapBuilderForm trapBuilderForm = new TrapBuilderForm(this.SelectedTrap.Second);
                    if (trapBuilderForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        element.Trap     = trapBuilderForm.Trap;
                        Session.Modified = true;
                        this.update_list();
                    }
                    return;
                }
                if (!(this.SelectedTrap.First.Element is Encounter))
                {
                    break;
                }
                Encounter       trap             = this.SelectedTrap.First.Element as Encounter;
                int             num              = trap.Traps.IndexOf(this.SelectedTrap.Second);
                TrapBuilderForm trapBuilderForm1 = new TrapBuilderForm(this.SelectedTrap.Second);
                if (trapBuilderForm1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    trap.Traps[num]  = trapBuilderForm1.Trap;
                    Session.Modified = true;
                    this.update_list();
                }
                return;
            }

            case OverviewType.SkillChallenges:
            {
                if (this.SelectedChallenge == null)
                {
                    break;
                }
                if (this.SelectedChallenge.First.Element is SkillChallenge)
                {
                    SkillChallenge            name = this.SelectedChallenge.First.Element as SkillChallenge;
                    SkillChallengeBuilderForm skillChallengeBuilderForm = new SkillChallengeBuilderForm(this.SelectedChallenge.Second);
                    if (skillChallengeBuilderForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        name.Name       = skillChallengeBuilderForm.SkillChallenge.Name;
                        name.Level      = skillChallengeBuilderForm.SkillChallenge.Level;
                        name.Complexity = skillChallengeBuilderForm.SkillChallenge.Complexity;
                        name.Success    = skillChallengeBuilderForm.SkillChallenge.Success;
                        name.Failure    = skillChallengeBuilderForm.SkillChallenge.Failure;
                        name.Skills.Clear();
                        foreach (SkillChallengeData skill in skillChallengeBuilderForm.SkillChallenge.Skills)
                        {
                            name.Skills.Add(skill.Copy());
                        }
                        Session.Modified = true;
                        this.update_list();
                    }
                    return;
                }
                if (!(this.SelectedChallenge.First.Element is Encounter))
                {
                    break;
                }
                Encounter skillChallenge = this.SelectedChallenge.First.Element as Encounter;
                int       num1           = skillChallenge.SkillChallenges.IndexOf(this.SelectedChallenge.Second);
                SkillChallengeBuilderForm skillChallengeBuilderForm1 = new SkillChallengeBuilderForm(this.SelectedChallenge.Second);
                if (skillChallengeBuilderForm1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    skillChallenge.SkillChallenges[num1] = skillChallengeBuilderForm1.SkillChallenge;
                    Session.Modified = true;
                    this.update_list();
                }
                return;
            }

            case OverviewType.Treasure:
            {
                if (this.SelectedParcel == null)
                {
                    break;
                }
                int        parcel     = this.SelectedParcel.First.Parcels.IndexOf(this.SelectedParcel.Second);
                ParcelForm parcelForm = new ParcelForm(this.SelectedParcel.Second);
                if (parcelForm.ShowDialog() != System.Windows.Forms.DialogResult.OK)
                {
                    break;
                }
                this.SelectedParcel.First.Parcels[parcel] = parcelForm.Parcel;
                Session.Modified = true;
                this.update_list();
                break;
            }

            default:
            {
                return;
            }
            }
        }