COH ProjectFile
COH Project File (Work in Progress)
The Concept of this is simple...
The tool (No Title yet) I am working on will create a Standard or User Package.
The Standard Package
- Would be i24 Oroborus released original files imported from BIN/DEF and converted to XML.
- Idea was/is to create a common format wrapper for files that parse easily, and don't require a bunch of separate tools.
The User Project
- Will contain copies of Standard files that have edits or new files added.
- In other words the idea is to be able to tell what files you have altered, without altering the originals.
The Tool
- Will Import these XML Files
- Allow you to edit them in A GUI Window (Windows)
- Automate & Help in adding new classes etc.
- Edit Player Character Classes (Hero & Villain)
- Edit Enemy Classes
- Edit Language Entries
- Etc
When the User Project is Ready it would be exported, the tool will look to see what files need to be added and generate replacement Defs or other to be rebuilt by the assets.
Once all Assets are rebuilt, handle as normal.
In some cases I could see updates needing to be required to database etc, and if so a separate file could be generated with SQL or other commands to update those portions.
I would like to stress that there are other "official versions" of tools that are tried and tested.
DragonSire "Reality is Boring"
XML Example (Work in Progress)
<?xml version="1.0" encoding="utf-8"?> <COH_ProjectFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>CityofHeroes_StandardProject</Name> <Author>Crytic/Paragon Studios Revised by Ouroboros</Author> <Website /> <Version>1.0.Alpha</Version> <ReleaseDate>01/01/2020</ReleaseDate> <COH_PC_Heroes> <COH_PC_Hero> <Name>Blaster</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Blaster.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Controller</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Controller.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Defender</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Defender.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Scrapper</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Scrapper.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Tanker</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Tanker.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Peacebringer</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Peacebringer.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> <COH_PC_Hero> <Name>Warshade</Name> <Path>.\CharacterClasses\PlayerClasses\Heroes\Class_Warshade.xml</Path> <EntryType>CharacterClass_Player_Hero</EntryType> </COH_PC_Hero> </COH_PC_Heroes> <COH_PC_Villians> <COH_PC_Villian> <Name>Brute</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Brute.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Stalker</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Stalker.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Mastermind</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Mastermind.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Dominator</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Dominator.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Corruptor</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Corruptor.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Widow</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Arachnos_Widow.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> <COH_PC_Villian> <Name>Soldier</Name> <Path>.\CharacterClasses\PlayerClasses\Villians\Class_Arachnos_Soldier.xml</Path> <EntryType>CharacterClass_Player_Villian</EntryType> </COH_PC_Villian> </COH_PC_Villians> <COH_Enemies> <COH_Enemy> <Name>Minion Fire</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Fire</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Grunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Grunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Henchman</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Henchman</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Monument</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Monument</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion OilSlickTarget</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_OilSlickTarget</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Pets</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Pets</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Practice</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Practice</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion PraetorianGrunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_PraetorianGrunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion PraetorianSmall</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_PraetorianSmall</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Small Agressive</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Small_Agressive</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Small</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Small</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Swarm</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Swarm</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion Turret</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_Turret</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Minion UnkillableNPC</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Minion_UnkillableNPC</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt Grunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_Grunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt Sniper</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_Sniper</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt Turret</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_Turret</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt Henchman</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_Henchman</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt LongRangeDrone</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_LongRangeDrone</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Lt PraetorianGrunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Lt_PraetorianGrunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Archvillain</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Archvillain</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Archvillain_Flying</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Archvillain_Flying</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Elite</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Elite</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss EliteTurret</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_EliteTurret</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Grunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Grunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Guard</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Guard</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Hamidon</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Hamidon</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss HeavyPet</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_HeavyPet</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Henchman</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Henchman</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss HugeDevice</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_HugeDevice</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Mito</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Mito</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Monster</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Monster</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Monster_Flying</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Monster_Flying</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss PraetorianArchvillain</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_PraetorianArchvillain</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss PraetorianAVLowPerception</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_PraetorianAVLowPerception</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss PraetorianElite</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_PraetorianElite</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss PraetorianGrunt</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_PraetorianGrunt</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Reichsman</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Reichsman</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Rularuu</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Rularuu</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss RularuuCoP</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_RularuuCoP</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss RularuuFM</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_RularuuFM</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Shield</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Shield</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Signature_Pets</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Signature_Pets</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> <COH_Enemy> <Name>Boss Turret</Name> <Path>.\CharacterClasses\EnemyClasses\Class_Class_Boss_Turret</Path> <EntryType>CharacterClass_EnemyClass</EntryType> </COH_Enemy> </COH_Enemies>
</COH_ProjectFile>