elanthia-online / scripts

shared collaborative lich scripts
20 stars 50 forks source link

[gameobj] Migrate XML updates from ;xmlpatch #97

Open sandersch opened 5 years ago

sandersch commented 5 years ago

Migrate XML updates from ;xmlpatch

;xmlpatch was created a workaround for getting changes merged into the upstream gameobj-data.xml. Now that we own the gameobj-data.xml file published in the repo, we can create migrations for the published data and make the script obsolete. I am getting started on the work and wanted to have a discussion about some of the changes required so that we're all on the same page. There are two main types of XML updates in ;xmlpatch:

Phase 1: Updates to existing types

These are pretty straightforward and I've started creating migrations for these. I should have some PRs to send soon.

Phase 2: New Type Categories

These are all new types that don't currently exist in gameobj-data.xml. I think that they are all worthwhile additions that make sense for us to merge upstream, but if anyone feels like adding these may cause issues, please let me know.

I would like to create the new types through migrations, but that requires us to add a command to the migration DSL for creating new tables.

sandersch commented 5 years ago

@ondreian @mrhoribu let me know if you see any issues with this plan especially the new type additions.

sandersch commented 5 years ago

The only spell-list.xml patch is the updated 909 messaging:

def apply_spell_patches
    # Spell data patching
    Spell[909].instance_variable_set(:@msgup, "Faint ripples in the .* form beneath you for a moment\\.")
    Spell[909].instance_variable_set(:@msgdn, "Faint ripples in the .* beneath you become apparent before quickly dissipating\\.")
end

which has already been updated upstream.

mrhoribu commented 5 years ago

Btw, I added more of the RFD creatures for reim_npcs, not sure if best to put them here for you, but here was my modified reim_npcs with RFD creatures added in.

ethereal (?:barbarian|knight|pillager|raider|scout|soldier|waylayer|zealot|commoner|denizen|guard|guardsman|guardswoman|inmate|lunatic|madman|madwoman|peasant|prisoner|squire|swordsman|swordswoman|traveller|townsman|townswoman|villager)|ghostly (?:bandit|highwayman|highwaywoman|marauder|waylayer)|unworldly (?:barbarian|knight|pillager|raider|scout|soldier|waylayer|zealot|guest|maid|noble|royal guard|royal knight|servant|slave|steward|visitor)|celestial (?:dancer|juggler|nomad|traveller)|Shopkeeper|Innkeeper|Bartender|Patrol Leader|Bandit Lord|Bandit Lady|Gypsy Queen|Gypsy King|Guard Captain|Wall Captain|Drill Sergeant|Stable Hostler|Dungeon Master|Master Torturer|Butler|Cook|Knight Captain|Foreign Dignitary|Royal Prince|Royal Princess|Royal Jester|Royal Emperor|Royal Empress|Sapper Lord|Sapper Lady|Raid Leader|Dark Knight|Massive Butcher|Slender Mercenary|Darkly Hooded Figure|Crimson Count|Kennel Master|Royal Inquisitor|Towering Crusader|Hulking Berserker|Jester Ser Rets|Dame Venti|Corrupted Knight Owrym|Arch Priest Dlitse|Dame Elle Zo|Thane Wedge|Dark Astrologer Scionae|speedy sapper
mrhoribu commented 5 years ago

Reviewing this, I like it all. The realm:area and event:name namespacing makes perfect sense. I welcome the addition of the other new TYPES as well for noncorporeal, companion, familiar and phased. Once this is done I'm sure there are other types we can discuss to add as well. But namely need to.

The only consideration I would see is if there's really a need to specify between the difference of a companion vs a familiar. Not sure what a merged name would be or if it's better to keep them separate.

sandersch commented 5 years ago

I don't have a strong opinion about familiars vs companions. My initial thought was that we should match ;xmlpatch as long as it makes sense to minimize issues with scripts that rely on xmlpatch's changes, but I think combining them would be fine too.

sandersch commented 5 years ago

Phase 1 (modifications to existing types) is complete. For the new types to add in Phase 2, my plan is to add a create_table(:type_name) to the migration DSL so that we can add these programmatically.

sandersch commented 3 years ago

Copious data on companions in case that is helpful: http://drfuturepast.com/GSIV/GECP/