private void FrameFunction_Architecture_AfterGetSectionToDemolish()
 {
     this.CurrentGameObjects = this.CurrentArchitecture.BelongedFaction.Sections.GetSelectedList();
     if (this.CurrentGameObjects != null)
     {
         foreach (Section section in this.CurrentGameObjects)
         {
             this.CurrentArchitecture.BelongedFaction.RemoveSection(section);
             this.CurrentArchitecture.Scenario.Sections.Remove(section);
             Section anotherSection = this.CurrentArchitecture.BelongedFaction.GetAnotherSection(section);
             if (anotherSection != null)
             {
                 foreach (Architecture architecture in section.Architectures)
                 {
                     anotherSection.AddArchitecture(architecture);
                 }
             }
         }
         foreach (Section section in this.CurrentArchitecture.BelongedFaction.Sections.GetList())
         {
             if ((section.OrientationSection != null) && !this.CurrentArchitecture.BelongedFaction.Sections.HasGameObject(section.OrientationSection))
             {
                 foreach (SectionAIDetail detail in this.CurrentArchitecture.BelongedFaction.Scenario.GameCommonData.AllSectionAIDetails.SectionAIDetails.Values)
                 {
                     if (detail.OrientationKind == SectionOrientationKind.无)
                     {
                         section.AIDetail = detail;
                         break;
                     }
                 }
                 section.OrientationSection = null;
             }
             section.RefreshSectionName();
         }
     }
 }
Example #2
0
 private void OK()
 {
     if (this.IsNew)
     {
         foreach (Section section in this.EditingFaction.Sections)
         {
             foreach (Architecture architecture in this.EditingSection.Architectures)
             {
                 section.RemoveArchitecture(architecture);
             }
         }
         foreach (Architecture architecture in this.EditingSection.Architectures)
         {
             architecture.BelongedSection = this.EditingSection;
         }
         this.EditingFaction.AddSection(this.EditingSection);
         this.EditingFaction.Scenario.Sections.AddSectionWithEvent(this.EditingSection);
     }
     else
     {
         if (this.OriginalSection.AIDetail.AutoRun != this.EditingSection.AIDetail.AutoRun)
         {
             foreach (Architecture architecture in this.EditingSection.Architectures)
             {
                 foreach (Routeway routeway in architecture.Routeways.GetList())
                 {
                     if (!(routeway.Building && (routeway.LastActivePointIndex >= 0)))
                     {
                         architecture.Scenario.RemoveRouteway(routeway);
                     }
                 }
             }
         }
         this.OriginalSection.AIDetail                = this.EditingSection.AIDetail;
         this.OriginalSection.OrientationFaction      = this.EditingSection.OrientationFaction;
         this.OriginalSection.OrientationSection      = this.EditingSection.OrientationSection;
         this.OriginalSection.OrientationState        = this.EditingSection.OrientationState;
         this.OriginalSection.OrientationArchitecture = this.EditingSection.OrientationArchitecture;
         GameObjectList list = this.OriginalSection.Architectures.GetList();
         foreach (Architecture architecture in list)
         {
             this.OriginalSection.RemoveArchitecture(architecture);
         }
         foreach (Section section in this.EditingFaction.Sections)
         {
             foreach (Architecture architecture in this.EditingSection.Architectures)
             {
                 section.RemoveArchitecture(architecture);
             }
         }
         foreach (Architecture architecture in this.EditingSection.Architectures)
         {
             this.OriginalSection.AddArchitecture(architecture);
         }
         Section anotherSection = this.EditingFaction.GetAnotherSection(this.OriginalSection);
         if (anotherSection != null)
         {
             foreach (Architecture architecture in list)
             {
                 if (!this.OriginalSection.HasArchitecture(architecture))
                 {
                     anotherSection.AddArchitecture(architecture);
                 }
             }
         }
     }
     foreach (Section section in this.EditingFaction.Sections.GetList())
     {
         if (section.ArchitectureCount > 0)
         {
             section.RefreshSectionName();
         }
         else
         {
             foreach (Section section3 in this.EditingFaction.Sections.GetList())
             {
                 if ((section3 != section) && (section3.OrientationSection == section))
                 {
                     foreach (SectionAIDetail detail in this.EditingFaction.Scenario.GameCommonData.AllSectionAIDetails.SectionAIDetails.Values)
                     {
                         if (detail.OrientationKind == SectionOrientationKind.无)
                         {
                             section3.AIDetail = detail;
                             break;
                         }
                     }
                     section3.OrientationSection = null;
                 }
             }
             this.EditingFaction.RemoveSection(section);
             this.EditingFaction.Scenario.Sections.Remove(section);
         }
     }
     this.IsShowing = false;
 }