Implement editing dialogs for individual monster abilities
Changes to game: - Permanent martyr's shield is now customizable - extra1 is per-mille chance to activate each time damage is taken, and extra2 is percent of damage taken to apply to attacker - Absort spells is now customizable - extra1 is per-mille chance to activate each time damage is taken or a magic effect is applied, and extra2 is how much hp to gain from non-damaging magic effects - Splits ability is now customizable - extra1 is per-mille chance of splitting each time damage is taken - Special node ability is now called before the monster tries its normal attack, and multiple monsters can use them per round (though each can only use theirs once) - Fix issue with breath weapons and icy touch abilities conflicting (legacy import issue) - Add two variations of the summoning ability - summon according to summoning level (like the spells), or summon a random creature of a particular species - Fix touch abilities using the range as chance to use Changes to dialog engine: - Fix tab order handling to exclude fields that are currently hidden - Add method to retrieve the parameter passed to toast(), as a quick way to distinguish between the user clicking OK or Cancel after run() has exited - Fix hidden fields being drawn anyway - Fix setting stack page sometimes crashing if the current page was invalid due to earlier reducing the page count to 0
This commit is contained in:
42
rsrc/dialogs/edit-mabil-general.xml
Normal file
42
rsrc/dialogs/edit-mabil-general.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='18' left='50' width='250' height='17'>Edit Monster Ability:</text>
|
||||
<text top='52' left='10' width='100' height='16'>For monster:</text>
|
||||
<text name='monst' framed='true' top='52' left='120' width='200' height='16'/>
|
||||
<text top='80' left='10' width='100' height='16'>Display name:</text>
|
||||
<text name='name' framed='true' top='80' left='120' width='200' height='16'/>
|
||||
<text top='108' left='10' width='100' height='16'>Ability Type:</text>
|
||||
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
|
||||
<text top='136' left='10' width='100' height='16'>Action Point Cost:</text>
|
||||
<text name='ap' framed='true' top='136' left='120' width='200' height='16'/>
|
||||
|
||||
<text top='164' left='10' width='100' height='16'>Ability Subtype:</text>
|
||||
<text name='subtype' framed='true' top='164' left='120' width='200' height='16'/>
|
||||
<button name='pick-subtype' type='regular' top='161' left='330'>Choose</button>
|
||||
|
||||
<text top='192' left='10' width='100' height='16'>Missile:</text>
|
||||
<field name='missile' top='190' left='120' width='50' height='16'/>
|
||||
<text name='missile-touch' framed='true' top='192' left='120' width='50' height='16'>None</text>
|
||||
<button name='pick-missile' type='regular' top='187' left='180'>Choose</button>
|
||||
<pict name='missile-pic' type='missile' num='0' top='192' left='253'/>
|
||||
|
||||
<text top='220' left='10' width='100' height='16'>Ability Range:</text>
|
||||
<field name='range' top='218' left='120' width='50' height='16'/>
|
||||
<text name='range-touch' framed='true' top='220' left='120' width='50' height='16'>Touch</text>
|
||||
<text top='220' left='180' width='100' height='16'>Chance of Using:</text>
|
||||
<field name='odds' top='218' left='290' width='50' height='16'/>
|
||||
|
||||
<text top='248' left='10' width='100' height='16'>Ability Strength:</text>
|
||||
<field name='strength' top='246' left='120' width='70' height='16'/>
|
||||
<button name='pick-strength' type='regular' top='245' left='200'>Choose</button>
|
||||
|
||||
<text name='extra-title' top='276' left='10' width='100' height='16'>Extra:</text>
|
||||
<field name='extra' top='274' left='120' width='70' height='16'/>
|
||||
<button name='pick-extra' type='regular' top='271' left='200'>Choose</button>
|
||||
|
||||
<button name='okay' type='regular' top='300' left='330'>OK</button>
|
||||
<button name='cancel' type='regular' def-key='esc' top='300' left='265'>Cancel</button>
|
||||
<button name='delete' type='regular' top='300' left='10'>Delete</button>
|
||||
</dialog>
|
40
rsrc/dialogs/edit-mabil-missile.xml
Normal file
40
rsrc/dialogs/edit-mabil-missile.xml
Normal file
@@ -0,0 +1,40 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='18' left='50' width='250' height='17'>Edit Monster Ability:</text>
|
||||
<text top='52' left='10' width='100' height='16'>For monster:</text>
|
||||
<text name='monst' framed='true' top='52' left='120' width='200' height='16'/>
|
||||
<text top='80' left='10' width='100' height='16'>Display name:</text>
|
||||
<text name='name' framed='true' top='80' left='120' width='200' height='16'/>
|
||||
<text top='108' left='10' width='100' height='16'>Ability Type:</text>
|
||||
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
|
||||
<text top='136' left='10' width='100' height='16'>Action Point Cost:</text>
|
||||
<text name='ap' framed='true' top='136' left='120' width='200' height='16'/>
|
||||
|
||||
<text top='164' left='10' width='100' height='16'>Ability Subtype:</text>
|
||||
<text name='subtype' framed='true' top='164' left='120' width='200' height='16'/>
|
||||
<button name='pick-subtype' type='regular' top='161' left='330'>Choose</button>
|
||||
|
||||
<text top='192' left='10' width='100' height='16'>Missile:</text>
|
||||
<field name='missile' top='190' left='120' width='50' height='16'/>
|
||||
<button name='pick-missile' type='regular' top='187' left='180'>Choose</button>
|
||||
<pict name='missile-pic' type='missile' num='0' top='192' left='253'/>
|
||||
|
||||
<text top='220' left='10' width='100' height='16'>Number of Dice:</text>
|
||||
<field name='dice' top='218' left='120' width='50' height='16'/>
|
||||
<text top='220' left='180' width='100' height='16'>Sides per Die:</text>
|
||||
<field name='sides' top='218' left='290' width='50' height='16'/>
|
||||
|
||||
<text top='248' left='10' width='100' height='16'>Ability Range:</text>
|
||||
<field name='range' top='246' left='120' width='50' height='16'/>
|
||||
<text top='248' left='180' width='100' height='16'>Chance of Using:</text>
|
||||
<field name='odds' top='246' left='290' width='50' height='16'/>
|
||||
|
||||
<text top='276' left='10' width='100' height='16'>Skill Level:</text>
|
||||
<field name='skill' top='274' left='120' width='70' height='16'/>
|
||||
|
||||
<button name='okay' type='regular' top='300' left='330'>OK</button>
|
||||
<button name='cancel' type='regular' def-key='esc' top='300' left='265'>Cancel</button>
|
||||
<button name='delete' type='regular' top='300' left='10'>Delete</button>
|
||||
</dialog>
|
23
rsrc/dialogs/edit-mabil-radiate.xml
Normal file
23
rsrc/dialogs/edit-mabil-radiate.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='18' left='50' width='250' height='17'>Edit Monster Ability:</text>
|
||||
<text top='52' left='10' width='100' height='16'>For monster:</text>
|
||||
<text name='monst' framed='true' top='52' left='120' width='200' height='16'/>
|
||||
<text top='80' left='10' width='100' height='16'>Display name:</text>
|
||||
<text name='name' framed='true' top='80' left='120' width='200' height='16'/>
|
||||
<text top='108' left='10' width='100' height='16'>Ability Type:</text>
|
||||
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
|
||||
|
||||
<text top='136' left='10' width='100' height='16'>Field Type:</text>
|
||||
<field name='field' top='134' left='120' width='70' height='16'/>
|
||||
<button name='pick-field' type='regular' top='133' left='200'>Choose</button>
|
||||
|
||||
<text top='164' left='10' width='120' height='16'>Radiate Chance:</text>
|
||||
<field name='odds' top='162' left='120' width='50' height='16'/>
|
||||
|
||||
<button name='okay' type='regular' top='216' left='330'>OK</button>
|
||||
<button name='cancel' type='regular' def-key='esc' top='216' left='265'>Cancel</button>
|
||||
<button name='delete' type='regular' top='216' left='10'>Delete</button>
|
||||
</dialog>
|
28
rsrc/dialogs/edit-mabil-special.xml
Normal file
28
rsrc/dialogs/edit-mabil-special.xml
Normal file
@@ -0,0 +1,28 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='18' left='50' width='250' height='17'>Edit Monster Ability:</text>
|
||||
<text top='52' left='10' width='100' height='16'>For monster:</text>
|
||||
<text name='monst' framed='true' top='52' left='120' width='200' height='16'/>
|
||||
<text top='80' left='10' width='100' height='16'>Display name:</text>
|
||||
<text name='name' framed='true' top='80' left='120' width='200' height='16'/>
|
||||
<text top='108' left='10' width='100' height='16'>Ability Type:</text>
|
||||
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
|
||||
<text top='136' left='10' width='100' height='16'>Action Point Cost:</text>
|
||||
<text name='ap' framed='true' top='136' left='120' width='200' height='16'/>
|
||||
|
||||
<text name='extra1-title' framed='true' top='164' left='10' width='200' height='16'>Extra 1</text>
|
||||
<field name='extra1' top='162' left='220' width='70' height='16'/>
|
||||
<button name='pick-extra1' type='large' top='161' left='300'>Create/Edit</button>
|
||||
|
||||
<text name='extra2-title' framed='true' top='192' left='10' width='200' height='16'>Extra 2</text>
|
||||
<field name='extra2' top='190' left='220' width='70' height='16'/>
|
||||
|
||||
<text name='extra3-title' framed='true' top='220' left='10' width='200' height='16'>Extra 3</text>
|
||||
<field name='extra3' top='218' left='220' width='70' height='16'/>
|
||||
|
||||
<button name='okay' type='regular' top='244' left='339'>OK</button>
|
||||
<button name='cancel' type='regular' def-key='esc' top='244' left='274'>Cancel</button>
|
||||
<button name='delete' type='regular' top='244' left='10'>Delete</button>
|
||||
</dialog>
|
34
rsrc/dialogs/edit-mabil-summon.xml
Normal file
34
rsrc/dialogs/edit-mabil-summon.xml
Normal file
@@ -0,0 +1,34 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text size='large' top='18' left='50' width='250' height='17'>Edit Monster Ability:</text>
|
||||
<text top='52' left='10' width='100' height='16'>For monster:</text>
|
||||
<text name='monst' framed='true' top='52' left='120' width='200' height='16'/>
|
||||
<text top='80' left='10' width='100' height='16'>Display name:</text>
|
||||
<text name='name' framed='true' top='80' left='120' width='200' height='16'/>
|
||||
<text top='108' left='10' width='100' height='16'>Ability Type:</text>
|
||||
<text name='type' framed='true' top='108' left='120' width='200' height='16'/>
|
||||
|
||||
<text top='136' left='10' width='100' height='16'>Summoning Type:</text>
|
||||
<text name='subtype' framed='true' top='136' left='120' width='200' height='16'/>
|
||||
<button name='pick-subtype' type='regular' top='133' left='330'>Choose</button>
|
||||
|
||||
<text top='164' left='10' width='100' height='16'>Which Monster?</text>
|
||||
<text name='summon' framed='true' top='164' left='120' width='200' height='16'/>
|
||||
<button name='pick-summon' type='regular' top='161' left='330'>Choose</button>
|
||||
|
||||
<text top='192' left='10' width='100' height='16'>Minimum number:</text>
|
||||
<field name='min' top='190' left='120' width='50' height='16'/>
|
||||
<text top='192' left='180' width='100' height='16'>Maximum number:</text>
|
||||
<field name='max' top='190' left='290' width='50' height='16'/>
|
||||
|
||||
<text top='220' left='10' width='100' height='16'>Summon duration:</text>
|
||||
<field name='len' top='218' left='120' width='50' height='16'/>
|
||||
<text top='220' left='180' width='100' height='16'>Chance of Using:</text>
|
||||
<field name='odds' top='218' left='290' width='50' height='16'/>
|
||||
|
||||
<button name='okay' type='regular' top='244' left='330'>OK</button>
|
||||
<button name='cancel' type='regular' def-key='esc' top='244' left='265'>Cancel</button>
|
||||
<button name='delete' type='regular' top='244' left='10'>Delete</button>
|
||||
</dialog>
|
@@ -1,7 +1,6 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<!--<!DOCTYPE dialog SYSTEM "dialog.dtd">-->
|
||||
<dialog skin='light' defbtn='okay' debug='true'>
|
||||
<dialog skin='light' defbtn='okay'>
|
||||
<!--
|
||||
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
|
||||
-->
|
||||
|
8
rsrc/dialogs/get-mabil-num.xml
Normal file
8
rsrc/dialogs/get-mabil-num.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
|
||||
<?xml-stylesheet href="dialog.xsl" type="text/xsl"?>
|
||||
<dialog defbtn='okay'>
|
||||
<field name="number" type='int' top='53' left='60' width='75' height='16'/>
|
||||
<pict type='dlog' num='16' top='8' left='8'/>
|
||||
<text name='prompt' top='8' left='49' width='200' height='26'/>
|
||||
<button name='okay' type='regular' top='52' left='171'>OK</button>
|
||||
</dialog>
|
Reference in New Issue
Block a user