Get the edit monster abilities dialog all working and updated (except for editing individual abilities)

Game changes:
- Remove support for playing a sound and displaying strings when a monster is first seen, since these behaviours can easily be obtained by using the special node called in the same context.
Dialog engine changes:
- Support for changing the font size of LEDs
- When setting the page, a stack now applies a default value if the map is missing the required data
- Add utility "addPage" method to stacks
- If reducing the page count means the current page is deleted, a stack now switches to the last page
This commit is contained in:
2015-01-18 17:25:08 -05:00
parent 1441f6bfe9
commit 7084991e55
14 changed files with 157 additions and 80 deletions

View File

@@ -5,31 +5,18 @@
<!--
TODO: Assign numeric types (type = 'int' or 'uint') to fields as appropriate
-->
<field name='poison' top='53' left='206' width='52' height='16'/>
<field name='breath-str' top='77' left='206' width='52' height='16'/>
<field name='abil-xtra' top='204' left='382' width='53' height='17'/>
<field name='loot-item' top='246' left='194' width='64' height='16'/>
<field name='loot-chance' top='247' left='464' width='64' height='16'/>
<button name='okay' type='regular' top='325' left='572'>OK</button>
<button name='cancel' type='regular' top='325' left='506' def-key='esc'>Cancel</button>
<!--
TODO: Originally these LED labels would've been bold, I think
Note: These LEDs were shifted left 100 pixels to account for the labels swapping sides
-->
<group name='breath-type'>
<led name='fire' state='off' top='82' left='394' width='100'>Fire</led>
<led name='cold' state='off' top='97' left='394' width='100'>Cold</led>
<led name='shock' state='off' top='112' left='394' width='100'>Electricity</led>
<led name='dark' state='off' top='127' left='394' width='100'>Darkness</led>
</group>
<led name='magic-res' state='off' top='283' left='167' width='100'>Resist Magic</led>
<led name='fire-res' state='off' top='298' left='167' width='100'>Resist Fire</led>
<led name='cold-res' state='off' top='313' left='167' width='100'>Resist Cold</led>
<led name='poison-res' state='off' top='328' left='167' width='100'>Resist Poison</led>
<led name='magic-imm' state='off' top='283' left='320' width='100'>Immune To Magic</led>
<led name='fire-imm' state='off' top='298' left='320' width='100'>Immune To Fire</led>
<led name='cold-imm' state='off' top='313' left='320' width='100'>Immune To Cold</led>
<led name='poison-imm' state='off' top='328' left='320' width='100'>Immune To Poison</led>
<field name='loot-item' top='178' left='194' width='64' height='16'/>
<field name='loot-chance' top='178' left='464' width='64' height='16'/>
<text top='216' left='120' width='40' height='16'>Magic:</text>
<field name='magic-res' top='215' left='167' width='80' height='16'/>
<text top='246' left='120' width='40' height='16'>Fire:</text>
<field name='fire-res' top='245' left='167' width='80' height='16'/>
<text top='216' left='273' width='40' height='16'>Cold:</text>
<field name='cold-res' top='215' left='320' width='80' height='16'/>
<text top='246' left='273' width='40' height='16'>Poison:</text>
<field name='poison-res' top='245' left='320' width='80' height='16'/>
<led name='mindless' top='215' left='415' width='70'>Mindless</led>
<led name='invuln' top='245' left='415' width='70'>Invulnerable</led>
<pict type='dlog' num='16' top='8' left='8'/>
<text size='large' top='6' left='50' width='158' height='16'>Edit Monster Abilities</text>
<text framed='true' top='6' left='222' width='111' height='14'>Monster number:</text>
@@ -38,29 +25,46 @@
Enter properties for this monster type. For a detailed
description of the fields, see the documentation.
</text>
<text top='54' left='7' width='179' height='14'>Monster Poison: (0 - 8)</text>
<text top='77' left='7' width='190' height='68'>Monster Breath Weapon strength (0 - 40):</text>
<text top='78' left='268' width='131' height='14'>Breath weapon type:</text>
<text size='large' top='152' left='7' width='120' height='14'>Special ability:</text>
<text name='abil-name' framed='true' top='152' left='184' width='183' height='14'/>
<button name='abils' type='regular' top='149' left='374'>Choose</button>
<text size='large' top='178' left='7' width='166' height='15'>Create monsters/fields:</text>
<text name='radiate-name' framed='true' top='178' left='184' width='183' height='14'/>
<button name='radiate' type='regular' top='175' left='374'>Choose</button>
<text top='205' left='54' width='118' height='16'/>
<text name='radiate-param' framed='true' top='205' left='180' width='195' height='14'/>
<text size='large' top='228' left='7' width='158' height='16'>Special treasure:</text>
<text top='247' left='23' width='162' height='14'>Item to drop when killed:</text>
<text top='247' left='270' width='186' height='14'>Chance of dropping: (0-100)</text>
<text top='279' left='9' width='141' height='14'>Monster resistances:</text>
<!--
Note: These LEDs were shifted left 80 pixels to account for the labels swapping sides
-->
<text size='large' top='54' left='7' width='110' height='14'>Special abilities:</text>
<stack name='abils'>
<text name='abil-name1' framed='true' top='54' left='124' width='183' height='14'/>
<text name='abil-name2' framed='true' top='80' left='124' width='183' height='14'/>
<text name='abil-name3' framed='true' top='106' left='124' width='183' height='14'/>
<text name='abil-name4' framed='true' top='132' left='124' width='183' height='14'/>
<button name='abil-edit1' type='regular' top='51' left='314'>Add</button>
<button name='abil-edit2' type='regular' top='77' left='314'>Add</button>
<button name='abil-edit3' type='regular' top='103' left='314'>Add</button>
<button name='abil-edit4' type='regular' top='129' left='314'>Add</button>
</stack>
<button name='abil-up' type='up' top='82' left='30'/>
<button name='abil-down' type='down' top='107' left='30'/>
<text size='large' top='160' left='7' width='158' height='16'>Special treasure:</text>
<text top='179' left='23' width='162' height='14'>Item to drop when killed:</text>
<text top='179' left='270' width='186' height='14'>Chance of dropping: (0-100)</text>
<text top='211' left='9' width='108' height='112'>Monster resistances:<br/><br/>
This is the % of full damage the monster takes when of this type.<br/>
e.g. 0 - no damage, 100 - normal, 200 - double
</text>
<text top='81' left='420' width='94' height='14'>Summon type:</text>
<group name='summon'>
<led name='s0' state='off' top='153' left='525' width='100'>No Summon</led>
<led name='s1' state='off' top='168' left='525' width='100'>Type 1</led>
<led name='s2' state='off' top='183' left='525' width='100'>Type 2</led>
<led name='s3' state='off' top='198' left='525' width='100'>Type 3</led>
<led name='s0' state='off' top='85' left='505' width='100'>Weak (no summon)</led>
<led name='s1' state='off' top='100' left='505' width='100'>Type 1</led>
<led name='s2' state='off' top='115' left='505' width='100'>Type 2</led>
<led name='s3' state='off' top='130' left='505' width='100'>Type 3</led>
<led name='s4' state='off' top='145' left='505' width='100'>Unique (no summon)</led>
</group>
<text top='149' left='440' width='94' height='14'>Summon type:</text>
<led name='invis' size='small' top='280' left='120' width='450'>
This monster is naturally and permanently invisible.
</led>
<led name='guard' size='small' top='296' left='120' width='450'>
This monster is a guard - when the town goes hostile, it will hunt the party down.
</led>
<text top='331' left='10' width='250' height='16'>Special node to call when monster first seen</text>
<field name='onsee' top='330' left='270' width='50' height='16'/>
<button name='edit-see' type='large' top='327' left='330'>Create/Edit</button>
<text top='361' left='10' width='250' height='16'>Monster vocalization sound</text>
<field name='snd' top='360' left='270' width='50' height='16'/>
<button name='pick-snd' type='regular' top='357' left='330'>Choose</button>
<button name='okay' type='regular' top='385' left='572'>OK</button>
<button name='cancel' type='regular' top='385' left='506' def-key='esc'>Cancel</button>
</dialog>