-
Notifications
You must be signed in to change notification settings - Fork 16
How to contribute modules
(this is a developing section)
To contribute new modules and features, let me go over the class structure of the plugin shortly.
ContentCategory: This class is a higher level container for both categories and content. Examples of ContentCategory would be Raid and Trial. A ContentCategory can contain both other ContentCategories, and Content.
Content: This class specifies a specific encounter or a raid tier. Examples of Content would be Abyssos and The Omega Protocol. A Content can contain ContentItems.
ContentItem: This class specifies a single feature with the encounter or raid tier. Examples of ContentItem would include any individual automarker.
If you would like to contribute a feature to some Savage tier for example, you'd want to:
- find the EwRaidAbyssos class, which already exists in the project (https://github.com/paissaheavyindustries/Lemegeton/blob/master/Lemegeton/Content/EwRaidAbyssos.cs)
- add a new subclass inside it that derives from ContentItem
All initialization will be done automatically, so you don't need to create instances of anything yourself. If you want your feature to get events, such as "cast begin", or "ability used", the best way to approach that is to check out an existing feature - for example, the UCoB Content class (https://github.com/paissaheavyindustries/Lemegeton/blob/master/Lemegeton/Content/UltUcob.cs) is fairly small and easy to understand, and has a good example of how you can subscribe to events and how you might want to feed events to your feature.
If you would like to contribute a raid tier that doesn't exist yet - for example, one of the older ones - then you'd want to:
- create a new ContentCategory class for the expansion, if one doesn't exist already (a good example of an existing expansion class is https://github.com/paissaheavyindustries/Lemegeton/blob/master/Lemegeton/ContentCategory/EndwalkerRaids.cs)
- find the Raid class, which already exists in the project (https://github.com/paissaheavyindustries/Lemegeton/blob/master/Lemegeton/ContentCategory/Raid.cs), and add the ContentCategory you created to it just like the existing ones have been added
- create a new Content class for the raid tier (for example, HwRaidGordias)
- add the Content class you created into the ContentCategory (example: https://github.com/paissaheavyindustries/Lemegeton/blob/master/Lemegeton/ContentCategory/EndwalkerRaids.cs)
- inside the Content class, you would then define and implement ContentItem subclasses for each individual feature