public static void WriteQuestLangs(DefinitionDetails definitionDetails) { string[] LangIdList = UpdateNotifsManager.getLangIds(); string[] DisplayList = UpdateNotifsManager.getDispNotifs(); int notificationIndex = definitionDetails.progNotif; string entryLines = ""; entryLines += string.Format("\n\t\t<Entry LangId=\"name_q{0}\" Color=\"5\" Value=\"{1}\" />", definitionDetails.QuestNum, definitionDetails.QuestTitle); entryLines += string.Format("\n\t\t<Entry LangId=\"info_q{0}\" Color=\"5\" Value=\"{1}\" />\n", definitionDetails.QuestNum, definitionDetails.QuestDesc); if (UpdateNotifsManager.isCustomNotification(LangIdList[notificationIndex])) { string progressId = LangIdList[notificationIndex]; string progressdesc = DisplayList[notificationIndex] + " [%d/%d]"; entryLines += string.Format("\t\t<Entry LangId=\"{0}\" Color=\"5\" Value=\"{1}\" />\n", progressId, progressdesc); } string entries = string.Format("\n\t<Entries>{0}\t</Entries>\n", entryLines); string lngText = (string.Format("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<LangFile xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" Endianess=\"BigEndian\">{0}</LangFile>", entries)); foreach (string language in lngLanguages) { string lngPath = string.Format("Sideop_Build//Assets//tpp/pack//ui//lang//lang_default_data_{0}_fpk//Assets//tpp//lang//ui", language); string lngFile = Path.Combine(lngPath, string.Format(@"ih_quest_q{0}.{1}.lng2.xml", definitionDetails.QuestNum, language)); Directory.CreateDirectory(lngPath); File.WriteAllText(lngFile, lngText); XmlCompiler.CompileFile(lngFile, XmlCompiler.LangToolPath); File.Delete(lngFile); } }
public static void BuildFPKDAssets(DefinitionDetails definitionDetails, QuestEntities questDetails) { string destPath = string.Format("Sideop_Build//Assets//tpp//pack//mission2//quest//ih//{0}_fpkd", definitionDetails.FpkName); Directory.CreateDirectory(destPath); string VehFPKDAssetsPath = Path.Combine(VehAssetsPath, "FPKD_Files"); foreach (Vehicle vehicle in questDetails.vehicles) { string vehicleName = vehicleNames[vehicle.vehicleIndex]; string sourceDirPath = Path.Combine(VehFPKDAssetsPath, string.Format("{0}_fpkd", vehicleName)); CopyDirectory(sourceDirPath, destPath); } string AniFPKDAssetsPath = Path.Combine(AniAssetsPath, "FPKD_Files"); foreach (Animal animal in questDetails.animals) { string animalName = animal.animal; string sourceDirPath = Path.Combine(AniFPKDAssetsPath, string.Format("{0}_fpkd", animalName)); CopyDirectory(sourceDirPath, destPath); } string enemyFPKDAssetsPath = Path.Combine(enemyAssetsPath, "FPKD_Files"); if (QuestComponents.EnemyInfo.zombieCount > 0) { string sourceDirPath = Path.Combine(enemyFPKDAssetsPath, "zombie_fpkd"); CopyDirectory(sourceDirPath, destPath); } }
public static void WriteMainQuestLua(DefinitionDetails definitionDetails, QuestEntities questDetails) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); List <string> questLua = new List <string>(questLuaInput); questLua[GetLineOf("local hostageCount =", questLua)] = string.Format("local hostageCount = {0}", questDetails.hostages.Count); questLua[GetLineOf("local CPNAME =", questLua)] = string.Format("local CPNAME = \"{0}\"", definitionDetails.CPName); //add cp combobox to setup questLua[GetLineOf("local useInter =", questLua)] = string.Format("local useInter = {0}", questDetails.canInter.ToString().ToLower()); //add interogation checkbox to setup questLua[GetLineOf("local qType =", questLua)] = string.Format("local qType = TppDefine.QUEST_TYPE.{0}", definitionDetails.objectiveType); //add questtype combobox to setup questLua[GetLineOf("local SUBTYPE =", questLua)] = string.Format("local SUBTYPE = \"{0}\"", questDetails.soldierSubType); string luaBool; if (EnemyInfo.armorCount > 0) { luaBool = "true"; } else { luaBool = "false"; } questLua[GetLineOf(" isQuestArmor =", questLua)] = string.Format(" isQuestArmor = {0},", luaBool); if (EnemyInfo.zombieCount > 0) { luaBool = "true"; } else { luaBool = "false"; } questLua[GetLineOf(" isQuestZombie =", questLua)] = string.Format(" isQuestZombie = {0},", luaBool); if (EnemyInfo.balaCount > 0) { luaBool = "true"; } else { luaBool = "false"; } questLua[GetLineOf(" isQuestBalaclava =", questLua)] = string.Format(" isQuestBalaclava = {0},", luaBool); questLua.InsertRange(GetLineOf(" enemyList = {", questLua) + 1, BuildEnemyList(questDetails)); questLua.InsertRange(GetLineOf(" vehicleList = {", questLua) + 1, BuildVehicleList(questDetails)); questLua.InsertRange(GetLineOf(" hostageList = {", questLua) + 1, BuildHostageList(questDetails)); questLua.InsertRange(GetLineOf(" animalList = {", questLua) + 1, BuildAnimalList(questDetails)); questLua.InsertRange(GetLineOf(" targetList = {", questLua) + 1, BuildTargetList(questDetails)); questLua.InsertRange(GetLineOf(" targetAnimalList = {", questLua) + 1, BuildAnimalTargetList(questDetails)); questLua.InsertRange(GetLineOf("Hostage Attributes List", questLua) + 1, BuildHostageAttributes(questDetails)); string LuaScriptPath = string.Format("Sideop_Build//Assets//tpp//pack//mission2//quest//ih//{0}_fpkd//Assets//tpp//level//mission2//quest//ih", definitionDetails.FpkName); string LuaScriptFile = Path.Combine(LuaScriptPath, definitionDetails.FpkName + ".lua"); Directory.CreateDirectory(LuaScriptPath); File.WriteAllLines(LuaScriptFile, questLua); }
public static void ClearQuestFolders(DefinitionDetails definitionDetails) { string FPKPath = string.Format("Sideop_Build//Assets//tpp//pack//mission2//quest//ih//{0}_fpk", definitionDetails.FpkName); string FPKDPath = string.Format("Sideop_Build//Assets//tpp//pack//mission2//quest//ih//{0}_fpkd", definitionDetails.FpkName); if (Directory.Exists(FPKPath)) { Directory.Delete(FPKPath, true); } if (Directory.Exists(FPKDPath)) { Directory.Delete(FPKDPath, true); } }
private void GoToPanel() { switch (panelNum) { case 0: EntitiesManager.setQuestEntities(detailPage.GetEntityLists()); ShowSetup(); break; case 1: if (isFilled()) { ShowWait(); definitionDetails = setupPage.getDefinitionDetails(); CP selectedCP = EnemyInfo.GetCPIndex(definitionDetails.CPName, definitionDetails.locationID); EntitiesManager.InitializeEntities(selectedCP, BuildCoords(definitionDetails.hostageCoordinates), BuildCoords(definitionDetails.vehicleCoordinates), BuildCoords(definitionDetails.animalCoordinates), BuildCoords(definitionDetails.itemCoordinates), BuildCoords(definitionDetails.activeItemCoordinates), BuildCoords(definitionDetails.modelCoordinates)); detailPage.ResetAllPanels(); detailPage.LoadEntityLists(selectedCP, EntitiesManager.GetQuestEntities()); Application.DoEvents(); ShowDetails(); } else { MessageBox.Show("Please fill in the remaining Setup and Flavor Text fields.", "Missing Details", MessageBoxButtons.OK, MessageBoxIcon.Information); panelNum--; return; } break; case 2: BuildQuest(); MessageBox.Show("Build Complete", "Sideop Companion", MessageBoxButtons.OK, MessageBoxIcon.Information); panelNum--; break; } }
private void BuildQuest() { definitionDetails = setupPage.getDefinitionDetails(); questDetails = detailPage.GetEntityLists(); AssetsBuilder.ClearQuestFolders(definitionDetails); LangBuilder.WriteQuestLangs(definitionDetails); LuaBuilder.WriteDefinitionLua(definitionDetails, questDetails); LuaBuilder.WriteMainQuestLua(definitionDetails, questDetails); Fox2Builder.WriteItemFox2(definitionDetails, questDetails); Fox2Builder.WriteQuestFox2(definitionDetails, questDetails); AssetsBuilder.BuildFPKAssets(definitionDetails, questDetails); AssetsBuilder.BuildFPKDAssets(definitionDetails, questDetails); }
public static void BuildFPKAssets(DefinitionDetails definitionDetails, QuestEntities questDetails) { string destPath = string.Format("Sideop_Build//Assets//tpp//pack//mission2//quest//ih//{0}_fpk", definitionDetails.FpkName); Directory.CreateDirectory(destPath); string VehFPKAssetsPath = Path.Combine(VehAssetsPath, "FPK_Files"); foreach (Vehicle vehicle in questDetails.vehicles) { string vehicleName = vehicleNames[vehicle.vehicleIndex]; string sourceDirPath = Path.Combine(VehFPKAssetsPath, string.Format("{0}_fpk", vehicleName)); CopyDirectory(sourceDirPath, destPath); } string AniFPKAssetsPath = Path.Combine(AniAssetsPath, "FPK_Files"); foreach (Animal animal in questDetails.animals) { string animalName = animal.animal; string sourceDirPath = Path.Combine(AniFPKAssetsPath, string.Format("{0}_fpk", animalName)); CopyDirectory(sourceDirPath, destPath); } destPath += "//Assets"; if (!Directory.Exists(destPath)) { Directory.CreateDirectory(destPath); } foreach (Model model in questDetails.models) { string SourcemodelFileName = Path.Combine(modelAssetsPath, model.model); string DestModelFileName = Path.Combine(destPath, model.model); File.Copy(SourcemodelFileName + ".fmdl", DestModelFileName + ".fmdl", true); if (!model.missingGeom) { File.Copy(SourcemodelFileName + ".geom", DestModelFileName + ".geom", true); } } }
public void setDefinitionDetails(DefinitionDetails dd) { textBoxFPKName.Text = dd.FpkName; textBoxQuestNum.Text = dd.QuestNum; locationID = dd.locationID; if (locationID == 10) { comboBoxRegion.Text = "Afghanistan"; } else if (locationID == 20) { comboBoxRegion.Text = "Central Africa"; } else { comboBoxRegion.Text = "Mother Base"; } comboBoxLoadArea.Text = dd.loadArea; textBoxXCoord.Text = dd.coords.xCoord; textBoxYCoord.Text = dd.coords.yCoord; textBoxZCoord.Text = dd.coords.zCoord; comboBoxRadius.Text = dd.radius; comboBoxCategory.Text = dd.category; comboBoxReward.Text = dd.reward; comboBoxObjective.Text = dd.objectiveType; comboBoxCP.Text = dd.CPName; textBoxQuestTitle.Text = dd.QuestTitle; textBoxQuestDesc.Text = dd.QuestDesc; if (comboBoxProgressNotifs.Items.Count <= dd.progNotif) { comboBoxProgressNotifs.SelectedIndex = 0; } else { comboBoxProgressNotifs.SelectedIndex = dd.progNotif; } textBoxHosCoords.Text = dd.hostageCoordinates.Replace("\n", "\r\n"); textBoxVehCoords.Text = dd.vehicleCoordinates.Replace("\n", "\r\n"); textBoxAnimalCoords.Text = dd.animalCoordinates.Replace("\n", "\r\n"); textBoxItemCoords.Text = dd.itemCoordinates.Replace("\n", "\r\n"); textBoxActiveItemCoords.Text = dd.activeItemCoordinates.Replace("\n", "\r\n"); textBoxStMdCoords.Text = dd.modelCoordinates.Replace("\n", "\r\n"); }
private async Task SetupDefinitionDetailsAsync() { DefinitionDetails.Clear(); try { var lstDefs = await QueuedTask.Run <List <string> >(() => { Definition datasetDefinition = Dataset.DatasetDefinition; List <string> lstDefDetails = new List <string>(); if (datasetDefinition is TableDefinition) { TableDefinition tableDefinition = datasetDefinition as TableDefinition; lstDefDetails.Add($"Object ID Field: {tableDefinition.GetObjectIDField()}"); StringBuilder stringBuilder = new StringBuilder(); if (!(_datastore is FileSystemDatastore)) { lstDefDetails.Add($"Alias Name: {tableDefinition.GetAliasName()}"); lstDefDetails.Add($"CreatedAt Field: {tableDefinition.GetCreatedAtField()}"); lstDefDetails.Add($"Creator Field: {tableDefinition.GetCreatorField()}"); lstDefDetails.Add($"Subtype Field: {tableDefinition.GetSubtypeField()}"); lstDefDetails.Add($"Default Subtype Code: {tableDefinition.GetDefaultSubtypeCode()}"); lstDefDetails.Add($"EditedAt Field: {tableDefinition.GetEditedAtField()}"); lstDefDetails.Add($"Editor Field: {tableDefinition.GetEditorField()}"); lstDefDetails.Add($"Global ID Field: {tableDefinition.GetGlobalIDField()}"); lstDefDetails.Add($"Model Name: {tableDefinition.GetModelName()}"); foreach (var subtype in tableDefinition.GetSubtypes()) { stringBuilder.Append(subtype.GetCode()).Append(": ").Append(subtype.GetName()).Append(Environment.NewLine); } lstDefDetails.Add($"Subtypes: {stringBuilder}"); } stringBuilder = new StringBuilder(); foreach (Index index in tableDefinition.GetIndexes()) { stringBuilder.Append(index.GetName()).Append(","); string order = index.IsAscending() ? "Ascending" : "Descending"; stringBuilder.Append(order).Append(", "); string unique = index.IsUnique() ? "Unique" : "Not Unique"; stringBuilder.Append(unique); } lstDefDetails.Add($"Indexes: {stringBuilder}"); } if (datasetDefinition is FeatureClassDefinition) { FeatureClassDefinition featureClassDefinition = datasetDefinition as FeatureClassDefinition; if (!(_datastore is FileSystemDatastore)) { lstDefDetails.Add($"Area Field: {featureClassDefinition.GetAreaField()}"); lstDefDetails.Add($"Length Field: {featureClassDefinition.GetLengthField()}"); } lstDefDetails.Add($"Shape Field: {featureClassDefinition.GetShapeField()}"); lstDefDetails.Add($"Shape Type: {featureClassDefinition.GetShapeType()}"); lstDefDetails.Add($"Spatial Reference Name: {featureClassDefinition.GetSpatialReference().Name}"); Envelope extent = featureClassDefinition.GetExtent(); lstDefDetails.Add($"Extent Details: XMin-{extent.XMin} XMax-{extent.XMax} YMin-{extent.YMin} YMax-{extent.YMax}"); } if (datasetDefinition is FeatureDatasetDefinition) { FeatureDatasetDefinition featureDatasetDefinition = datasetDefinition as FeatureDatasetDefinition; lstDefDetails.Add($"Spatial Reference Name: {featureDatasetDefinition.GetSpatialReference().Name}"); try { Envelope extent = featureDatasetDefinition.GetExtent(); lstDefDetails.Add($"Extent Details: XMin-{extent.XMin} XMax-{extent.XMax} YMin-{extent.YMin} YMax-{extent.YMax}"); } catch (Exception) { lstDefDetails.Add("Could not get extent"); } } if (datasetDefinition is RelationshipClassDefinition) { RelationshipClassDefinition relationshipClassDefinition = datasetDefinition as RelationshipClassDefinition; lstDefDetails.Add($"Alias Name: {relationshipClassDefinition.GetAliasName()}"); lstDefDetails.Add($"Cardinality: {relationshipClassDefinition.GetCardinality()}"); lstDefDetails.Add($"Origin Class: {relationshipClassDefinition.GetOriginClass()}"); lstDefDetails.Add($"Destination Class: {relationshipClassDefinition.GetDestinationClass()}"); lstDefDetails.Add($"Origin Primary Key: {relationshipClassDefinition.GetOriginKeyField()}"); lstDefDetails.Add($"Origin Foreign Key: {relationshipClassDefinition.GetOriginForeignKeyField()}"); lstDefDetails.Add($"Is Attachement?: {relationshipClassDefinition.IsAttachmentRelationship()}"); lstDefDetails.Add($"Is Composite Relationship?: {relationshipClassDefinition.IsComposite()}"); } if (datasetDefinition is AttributedRelationshipClassDefinition) { AttributedRelationshipClassDefinition relationshipClassDefinition = datasetDefinition as AttributedRelationshipClassDefinition; lstDefDetails.Add($"Destination Key: {relationshipClassDefinition.GetDestinationKeyField()}"); lstDefDetails.Add($"Destination Foreign Key: {relationshipClassDefinition.GetDestinationForeignKeyField()}"); lstDefDetails.Add($"Object ID Field: {relationshipClassDefinition.GetObjectIDField()}"); } return(lstDefDetails); }); DefinitionDetails.AddRange(lstDefs); } catch (Exception exObj) { MessageBox.Show(exObj.Message, "Error"); } }
private async Task SetupDefinitionAsync() { try { var lstDefinitions = await QueuedTask.Run <List <DatasetInfo> >(() => { List <DatasetInfo> definitions = new List <DatasetInfo>(); if (_datastore is Geodatabase) { var geodatabase = _datastore as Geodatabase; switch (DatasetTypeCategory.DatasetType) { case DatasetType.Table: definitions = geodatabase.GetDefinitions <TableDefinition>().Select(CreateDataSetInfo).ToList(); break; case DatasetType.FeatureClass: definitions = geodatabase.GetDefinitions <FeatureClassDefinition>().Select(CreateDataSetInfo).ToList(); break; case DatasetType.FeatureDataset: definitions = geodatabase.GetDefinitions <FeatureDatasetDefinition>().Select(CreateDataSetInfo).ToList(); break; case DatasetType.RelationshipClass: definitions = geodatabase.GetDefinitions <RelationshipClassDefinition>().Select(CreateDataSetInfo).ToList(); break; case DatasetType.AttributedRelationshipClass: definitions = geodatabase.GetDefinitions <AttributedRelationshipClassDefinition>().Select(CreateDataSetInfo).ToList(); break; } } else if (_datastore is Database) { var database = _datastore as Database; IReadOnlyList <string> tableNames = database.GetTableNames(); foreach (string tableName in tableNames) { QueryDescription queryDescription = database.GetQueryDescription(tableName); TableDefinition tableDefinition = database.GetDefinition(queryDescription); if (DatasetTypeCategory.DatasetType == DatasetType.Table || DatasetTypeCategory.DatasetType == DatasetType.FeatureClass) { definitions.Add(new DatasetInfo { Name = tableDefinition.GetName(), DatasetDefinition = tableDefinition }); } } } else if (_datastore is FileSystemDatastore) { var shapefile = _datastore as FileSystemDatastore; FileSystemConnectionPath shapefileConnectionPath = (FileSystemConnectionPath)shapefile.GetConnector(); DirectoryInfo directoryInfo = new DirectoryInfo(shapefileConnectionPath.Path.LocalPath); if (DatasetTypeCategory.DatasetType == DatasetType.FeatureClass) { FileInfo[] filesWithShpExtension = directoryInfo.GetFiles("*.shp"); foreach (FileInfo file in filesWithShpExtension) { definitions.Add(CreateDataSetInfo(shapefile.GetDefinition <FeatureClassDefinition>(file.Name))); } } if (DatasetTypeCategory.DatasetType == DatasetType.Table) { FileInfo[] filesWithDbfExtension = directoryInfo.GetFiles("*.dbf"); foreach (FileInfo file in filesWithDbfExtension) { definitions.Add(CreateDataSetInfo(shapefile.GetDefinition <TableDefinition>(file.Name))); } } } return(definitions); }); Datasets.Clear(); Datasets.AddRange(lstDefinitions); DefinitionDetails.Clear(); } catch (Exception exObj) { MessageBox.Show(exObj.Message, "Error"); } }
public static void WriteDefinitionLua(DefinitionDetails definitionDetails, QuestEntities questDetails) { CultureInfo.DefaultThreadCurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); BodyInfoEntry bodyInfo = new BodyInfoEntry(); if (questDetails.hostageBodyIndex >= 0) { bodyInfo = BodyInfo.BodyInfoArray[questDetails.hostageBodyIndex]; } string packFiles = ""; string locName = ""; string gender = "MALE"; if (bodyInfo.isFemale) { gender = "FEMALE"; } if (definitionDetails.locationID == 10) { locName = "AFGH"; } else if (definitionDetails.locationID == 20) { locName = "MAFR"; } if (questDetails.hostages.Count > 0) { packFiles += "\n\t\t\"/Assets/tpp/pack/mission2/ih/ih_hostage_base.fpk\", "; packFiles += string.Format("\n\t\t\"{0}\", ", bodyInfo.missionPackPath); } packFiles += string.Format("\n\t\t\"/Assets/tpp/pack/mission2/quest/ih/{0}.fpk\", ", definitionDetails.FpkName); if (questDetails.hostages.Count > 0) { if (!bodyInfo.hasface) { packFiles += string.Format("\n\t\trandomFaceListIH = {{gender = \"{0}\", count = {1}}}, ", gender, questDetails.hostages.Count); } } string bodies = ""; string faces = ""; if (locName.Equals("AFGH") || locName.Equals("MAFR")) { if (EnemyInfo.balaCount > 0) { faces += string.Format("TppDefine.QUEST_FACE_ID_LIST.{0}_BALACLAVA, ", locName); } if (EnemyInfo.armorCount > 0) { bodies += string.Format("TppDefine.QUEST_BODY_ID_LIST.{0}_ARMOR, ", locName); } } foreach (string body in getEnemyBodies(questDetails.cpEnemies)) { bodies += string.Format("TppEnemyBodyId.{0}, ", body); } foreach (string body in getEnemyBodies(questDetails.questEnemies)) { bodies += string.Format("TppEnemyBodyId.{0}, ", body); } packFiles += string.Format("\n\t\tfaceIdList={{{0}}}, ", faces); packFiles += string.Format("\n\t\tbodyIdList={{{0}}}, ", bodies); string questPackList = string.Format("\tquestPackList = {{ {0} \n\t}},", packFiles); string locationInfo = string.Format("\tlocationId={0}, areaName=\"{1}\", iconPos=Vector3({2},{3},{4}), radius={5},", definitionDetails.locationID, definitionDetails.loadArea, definitionDetails.coords.xCoord, definitionDetails.coords.yCoord, definitionDetails.coords.zCoord, definitionDetails.radius); string progressLangId = string.Format("\tquestCompleteLangId=\"{0}\",", UpdateNotifsManager.getLangIds()[definitionDetails.progNotif]); string canOpenQuestFunction = "\tcanOpenQuest=InfQuest.AllwaysOpenQuest, --function that decides whether the quest is open or not"; //todo in future update? string disableLzs = "\tdisableLzs={ }, --disables lzs while the quest is active. Turn on the debugMessages option and look in ih_log.txt for StartedMoveToLandingZone after calling in a support heli to find the lz name."; // todo in future update string equipIds = ""; List <string> requestHistory = new List <string>(); foreach (Item item in questDetails.items) { if (item.item.Contains("EQP_WP_") && !requestHistory.Contains(item.item)) { equipIds += string.Format("\"{0}\", ", item.item); requestHistory.Add(item.item); } } string requestEquipIds = string.Format("\trequestEquipIds={{ {0} }},", equipIds); string hasEnemyHeli = "\thasEnemyHeli = false, --reserves an enemy helicopter for the sideop. set to true if the sideop has a heli."; string DefinitionLuaPath = "Sideop_Build//GameDir//mod//quests//"; string DefinitionLuaFile = Path.Combine(DefinitionLuaPath, string.Format("ih_quest_q{0}.lua", definitionDetails.QuestNum)); Directory.CreateDirectory(DefinitionLuaPath); using (StreamWriter defFile = new StreamWriter(DefinitionLuaFile)) { defFile.WriteLine("local this={"); defFile.WriteLine(questPackList); defFile.WriteLine(locationInfo); if (definitionDetails.locationID == 50) { defFile.WriteLine(string.Format("\tclusterName=\"{0}\",", definitionDetails.loadArea.Substring(4))); } defFile.WriteLine(string.Format("\tcategory=TppQuest.QUEST_CATEGORIES_ENUM.{0},", definitionDetails.category)); defFile.WriteLine(progressLangId); defFile.WriteLine(canOpenQuestFunction); defFile.WriteLine(string.Format("\tquestRank=TppDefine.QUEST_RANK.{0},", definitionDetails.reward)); defFile.WriteLine(disableLzs); defFile.WriteLine(requestEquipIds); defFile.WriteLine(hasEnemyHeli); defFile.WriteLine("} return this"); } }