As I am developing the spell system for Dragonia from scratch, I will use this thread to document it.
The Dragonia spell system will entirely coded to the SDK, with the spells themselves being defined in XML. This will make it easy to create new spells, and maintain a high level of performance. The XML file to be used to define the spells will be Civ4CommandInfos.xml (As was already initally used by Dragonia II Beta 1) Civ4CommandInfos.xml will contain the following fields:
Currently I have comleted the conjuration of units, and the application/removal of promotions to the caster.
Next, I am working on targetting a tile.
The Dragonia spell system will entirely coded to the SDK, with the spells themselves being defined in XML. This will make it easy to create new spells, and maintain a high level of performance. The XML file to be used to define the spells will be Civ4CommandInfos.xml (As was already initally used by Dragonia II Beta 1) Civ4CommandInfos.xml will contain the following fields:
Spoiler :
Type - The spell Key
Description - Link to the description text key
Help - Link to the help key
HotKey
bAltDown
bShiftDown
bCtrlDown
iHotKeyPriority
HotKeyAlt
bAltDownAlt
bShiftDownAlt
bCtrlDownAlt
iHotKeyPriorityAlt
iOrderPriority
Automate
bConfirmCommand
bVisible
bAll
Button - Button graphics file location
PromotionPrereq - Promotion prerequisite required to cast the spell
PromotionPrereqAnd - Second promotion prerequisite required to cast the spell
bTargetSelf - Indicates whether the spell targets only the caster
iTargetRange - The spell range. 0 = local plot, 1 = adjascent plot
iTargetMaxUnits - The maximum number of units that can be targetted. -1 = infinite
ConjureUnit - A Link to a unit that is conjured by the spell
TargetPromotion - A link to a promotion that is given to the target unit(s). If the spell conjured a unit, that unit will receive this promotion.
bRemovePromotion - If true, the target promotion will be removed from target unit(s) instead of added
iTargetDamageMin - Minimum amount of damage applied to target unit(s)
iTargetDamageMax - Maximum amount of damage applied to target unit(s)
EffectType - Link to visual effect to display on screen when spell is cast
CommandSound - Link to Audio 3D script to play when spell is cast
Description - Link to the description text key
Help - Link to the help key
HotKey
bAltDown
bShiftDown
bCtrlDown
iHotKeyPriority
HotKeyAlt
bAltDownAlt
bShiftDownAlt
bCtrlDownAlt
iHotKeyPriorityAlt
iOrderPriority
Automate
bConfirmCommand
bVisible
bAll
Button - Button graphics file location
PromotionPrereq - Promotion prerequisite required to cast the spell
PromotionPrereqAnd - Second promotion prerequisite required to cast the spell
bTargetSelf - Indicates whether the spell targets only the caster
iTargetRange - The spell range. 0 = local plot, 1 = adjascent plot
iTargetMaxUnits - The maximum number of units that can be targetted. -1 = infinite
ConjureUnit - A Link to a unit that is conjured by the spell
TargetPromotion - A link to a promotion that is given to the target unit(s). If the spell conjured a unit, that unit will receive this promotion.
bRemovePromotion - If true, the target promotion will be removed from target unit(s) instead of added
iTargetDamageMin - Minimum amount of damage applied to target unit(s)
iTargetDamageMax - Maximum amount of damage applied to target unit(s)
EffectType - Link to visual effect to display on screen when spell is cast
CommandSound - Link to Audio 3D script to play when spell is cast
Currently I have comleted the conjuration of units, and the application/removal of promotions to the caster.
Next, I am working on targetting a tile.