- Joined
- Jul 10, 2007
- Messages
- 6,306
DDS |
v1.0.0.0 Nestharus | ||
__ | A DDS Framework that various DDS Components can plug into ____________________________________________________________________________________________________ |
[tr]
Supports ____________________________________________________________________________________________________ |
[tr]
Damage Event Core _____________________________ | The simplest and lightest damage event possible _______________________________________________________________________ |
Damage Event Modification | Damage modification general, use of timers and health ability |
Damage Event Archetype | Able to differentiate between
Uses the spell damage reduction ability |
Damage Event Unit Modification | Unit specific damage modification |
How To Create A Plugin |
Plugin Name Format |
Plugin Position Information |
Advantage |
Common API Suggestion |
[td]
Create the modules/macros (all optional)
Use DDS and any other required plugins
Users now may use your plugin and automatically use DDS as well as any other plugins all through a common API
____________________________________________________________________________________________________
[/td]
[tr]
[td]
PLUGIN_POSITION
Example
//! textmacro DAMAGE_EVENT_CODE
module DAMAGE_EVENT_API
[/td]
[tr]
//! textmacro CODE ___________________________ | Plugs code above the DDS struct Place module declarations and general code here Keep things private that shouldn't be part of the API Keep things scoped for plugin (make use of scopes and private structs) _________________________________________________________________________ |
module API | Plugs code into the DDS struct above the onDamage function Can either use a delegate to take properties from a struct or put the properties directly into the module. Use whichever promotes readability. |
module RESPONSE_LOCALS | Plugs code into the start of the onDamage function (for locals) |
module RESPONSE_BEFORE | Plugs code into the onDamage function before user events are fired |
module RESPONSE | Plugs code into the onDamage function when user events are fired |
module RESPONSE_AFTER | Plugs code into the onDamage function after user events are fired |
module RESPONSE_CLEANUP | Plugs code into the end of the onDamage function |
module INTERFACE | Plugs code into the DDS module Implemented into a struct, not a method |
module INIT | Implemented at bottom of library Put all init code here Implemented into a method |
[tr]
[td]
Plugin properties and methods go through a common DDS struct
____________________________________________________________________________________________________
[/td]
[tr]
Why follow a common API? It allows plugins to work with any other plugin regardless of the API and allows users to pick whichever plugin they want without having to modify their code. Of course, common API guidelines don't need to be followed, but at the very least, the Damage Event and Damage Event Advanced guidelines should be followed as they follow closely to the JASS Standard. ____________________________________________________________________________________________________ |
Damage EventDamage Event ModificationDamage Event ArchetypeDamage Event Unit ModificationUnexpected tab 5
See Damage Modification Effect and Damage Queue for possible implementations of this. ____________________________________________________________________________________________________
|
[/tr]
[/tr]
Last edited: