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(); } } }
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; }