STORY   LOOP   FURRY   PORN   GAMES
• C •   SERVICES [?] [R] RND   POPULAR
Archived flashes:
228097
/disc/ · /res/     /show/ · /fap/ · /gg/ · /swf/P0001 · P2561 · P5121

swfchan turned sixteen years old yesterday! (5may2024)

<div style="position:absolute;top:-99px;left:-99px;"><img src="http://swfchan.com:57475/59166039?noj=FRM59166039-6DC" width="1" height="1"></div>

monstersden.swf

This is the info page for
Flash #3123

(Click the ID number above for more basic data on this flash file.)


Text
PRESENTED BY

<p align="right"><font face="tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="left"><font face="tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

MONSTERS' DEN

BICLOPS GAMES

BICLOPS GAMES

z

z

z

Select Game

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Exemplifier-1</font></p>

LOAD

DELETE

Leaders Killed:

Explore Rate:

Clear Rate:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

Shrines Used:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

Party Defeats:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

Member Deaths:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

Member Deaths:

Party Defeats:

Shrines Used:

Leaders Killed:

Explore Rate:

Clear Rate:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">0</font></p>

<p align="left"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>RATING:</b></font></p>

<p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">3231</font></p>

<p align="center"><font face="Tahoma" size="13" color="#ffffdd" letterSpacing="0.000000" kerning="1"><b>1. Dungeon Level 25 - In Combat (Hardcore)</b></font></p>

Click here to begin a new game!

Your progress will be saved automatically in this slot.

BACK

Click here to add
a new character
to the party

NAME

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Blah Blah Blah kjdhashdkasjdhkahsdkajhdkas dhaksdhka h sajsj sjdhaskjdh ashjdka dshajkd ahsk dshajkdhak</font></p>

CLASS

PORTRAIT

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1">REMOVE CHARACTER</font></p>

<p align="center"><font face="Georgia" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Warrior</b></font></p>

SEX

RND

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Eugene</font></p>

Create your party of adventurers

CONTINUE

<p align="left"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>checkbox text</b></font></p>

loading

loading.

loading..

loading...

Game Options

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">LOW</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">MID</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">FULL</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">OFF</font></p>

Total Volume:

Sound FX Volume:

Music Volume:

Game Credits

Monsters' Den by
Daniel Stradwick

Additional Painted Art
Joe Calkins

www.biclopsgames.com

www.biclopsgames.com

www.cerberusart.com

www.cerberusart.com

Play Game

Play Game

Credits

Credits

Options

Options

GAMES

PLAY MORE GAMES AT

PLAY MORE GAMES AT

<p align="center"><font face="Georgia" size="17" color="#ff0000" letterSpacing="0.000000" kerning="1"><b>Death&apos;s Champions</b></font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="left"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x 2 &nbsp;&nbsp;&nbsp;Goblin Artificer</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ff6600" letterSpacing="0.000000" kerning="1"><b>Blazing Longsword of Eternal and Extreme Cuttiness</b></font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">10 Damage</font></p><p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">+1-3 Fire Damage</font></p><p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">+2 Quickness</font></p><p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">+3 Strength</font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Usable: Warrior, Rogue, Mage, Cleric, Ranger</font></p>

<p align="left"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Offhand Item</font></p>

<p align="right"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Level 1024</font></p>

CURRENTLY EQUIPPED:

<p align="center"><font face="Tahoma" size="14" color="#ffffdd" letterSpacing="0.000000" kerning="1"><b>Ensorcelled Blade</b></font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Here is the incredibly valuable information that you&apos;re simply dying to read. Enjoy!</font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Requires Melee Weapon</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>100 Power</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1">Effect increases with Intellect</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>An Interesting Tooltip Containing Much Information</b></font></p>

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">Here is the incredibly valuable information that you&apos;re simply dying to read. Enjoy!</font></p>

Party Inventory

<p align="center"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>45/45</b></font></p>

<p align="center"><font face="Tahoma" size="11" color="#cccccc" letterSpacing="0.000000" kerning="1">Status text goes here.</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Statistics</font></p>

ACCURACY:

ARMOR RATING:

ENDURANCE:

STRENGTH:

DEXTERITY:

INTELLECT:

DAMAGE:

<p align="right"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">99999</font></p>

DMG REDUCTION:

POISON RESIST:

STUN RESIST:

POWER REGEN:

HEALTH REGEN:

QUICKNESS:

STAT POINTS:

DRAIN HEALTH:

CAUSE STUN:

ADD POISON:

DMG REFLECTION:

BLIND TARGET:

LETHALITY:

UNLOCKED SKILLS

ACTIVE SKILLS

<p align="right"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">999</font></p>

SKILL POINTS:

<p align="center"><font face="Tahoma" size="11" color="#ffffff" letterSpacing="0.000000" kerning="1">SELECT NEW SKILLS</font></p>

?

HELP

RETURN

<p align="center"><font face="Tahoma" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Eugene</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>Level 8 Warrior</b></font></p>

<p align="center"></p>

<p align="center"></p>

INVENTORY SORT

LEVEL

Aa

NAME

TYPE

AUDIO

INVENTORY

<p align="right"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>99</b></font></p>

<p align="right"><font face="Tahoma" size="14" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>Power Attack</b></font></p>

<p align="left"><font face="Tahoma" size="14" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>Power Attack</b></font></p>

Select New Skills

SKILL POINTS REMAINING:

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>8</b></font></p>

CANCEL

<p align="center"><font face="Tahoma" size="14" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Dungeon Level 99</b></font></p>

<p align="center"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>45/45</b></font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"> 0% CLEARED</font></p>

<p align="right"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"> EXPLORED 0%</font></p>

<p align="center"><font face="Tahoma" size="10" color="#663300" letterSpacing="0.000000" kerning="1"><b>New Dungeon</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#663300" letterSpacing="0.000000" kerning="1"><b>Clear</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#663300" letterSpacing="0.000000" kerning="1"><b>Explore</b></font></p>

N

MAP HINT

MENU

CHARS

<p align="center"><font face="Tahoma" size="10" color="#663300" letterSpacing="0.000000" kerning="1"><b>Gear</b></font></p>

RATING

<p align="center"><font face="Tahoma" size="10" color="#663300" letterSpacing="0.000000" kerning="1"><b>Heal</b></font></p>

<p align="center"></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Health: 22 Damage: 22</b></font></p>

<p align="center"></p>

<p align="left"><font face="Monotype Corsiva" size="18" color="#333333" letterSpacing="0.000000" kerning="1">The demonic presence begins to fade, drawn back to whichever hellish realm spawned it. Not willingly, as its final scream of rage and pain shakes the dungeon to its very foundations. </font></p><p align="left"></p><p align="left"><font face="Monotype Corsiva" size="18" color="#333333" letterSpacing="0.000000" kerning="1">Debris begins to rain from the ceiling, and jagged chasms open in the stone floor, revealing still deeper levels of the dungeon. That, however, must remain a mystery for another time. The heroes, victorious in their quest, realize they must leave now lest their retreat be forever barred by the mounting piles of fallen rubble. Bounding up the stairs, they find themselves passing back through all the levels in which they have fought, and bled, and which may yet serve as their tomb.</font></p><p align="left"></p><p align="left"><font face="Monotype Corsiva" size="18" color="#333333" letterSpacing="0.000000" kerning="1">Finally, desperately, they surge forth from the ruin&apos;s entrance, as the dungeon collapses behind them in a final exhalation of dust and debris. </font></p><p align="left"></p><p align="left"><font face="Monotype Corsiva" size="18" color="#333333" letterSpacing="0.000000" kerning="1">They have succeeded, and they have survived.</font></p>

Exit Found!

Descend to the next level of the dungeon now?

NOT YET

YES

Altar of Restoration

Praying at the altar will fully recover your party's
health and power, and revive any fallen. Each
altar may be used only once.
Use this altar now?

Finders, Keepers

Treasure!

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>CONSUMABLES</b></font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>WEAPONS</b></font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>ARMOR</b></font></p>

TAKE LOOT

DISCARD

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>SELECTED: 25/25</b></font></p>

Click on items to deselect

The enemy's loss is your gain.

Warning

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Praying at the altar will fully recover your party&apos;s health and power, and revive any fallen. </font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Each altar may only be used once.</font></p>

Delete Saved Game?

Are you sure you would like to delete this saved
game? You will not be able to recover it.

KEEP SAVE

Retreat and Rest

Having fully cleared the previous dungeon level,
you may retreat there to rest and recover.
Health and Power will be fully restored for the
entire party. You may retreat only once per level.
Retreat now?

<p align="center"><font face="Georgia" size="24" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Hints and Tips</b></font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Praying at the altar will fully recover your party&apos;s health and power, and revive any fallen. </font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">Each altar may only be used once.</font></p>

Expedition Rating

Highest Level Reached
Total Clear, Explore %
Enemy Leaders Killed
Shrines Used
Character Deaths
Party Defeats

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">1</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">100%</font></p><p align="center"></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">11</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">57</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">755</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">2</font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">1000</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">100%</font></p><p align="center"></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">500</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">-250</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">-100</font></p><p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">-1000</font></p>

x
+
x
x
x
x

<p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">25000</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">x100%</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">25000</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">5500</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">250</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">100</font></p><p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">1000</font></p>

=
=
=
=
=
=

<p align="right"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1">220000000</font></p>

TOTAL

<p align="center"><font face="Tahoma" size="15" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Eugene</b></font></p>

<p align="center"></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>Level 8 Warrior</b></font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">99%</font></p>

<p align="left"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">120%</font></p>

<p align="center"><font face="Tahoma" size="13" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>Skill Name</b></font></p>

<p align="center"><font face="Tahoma" size="12" color="#ffffff" letterSpacing="0.000000" kerning="1"><b>announce_text announce_text</b></font></p>

<p align="center"><font face="Tahoma" size="10" color="#ffffcc" letterSpacing="0.000000" kerning="1"><b>announce_subtext</b></font></p>

<p align="right"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">Skeleton Q50 &nbsp;</font></p>

<p align="right"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">Skeleton Q50 &nbsp;</font></p>

<p align="right"><font face="Tahoma" size="9" color="#ffffff" letterSpacing="0.000000" kerning="1">Skeleton Q50 &nbsp;</font></p>

These portraits display the status and
relative positions of your party members.
The character currently taking their turn is
indicated by a flashing gold outline around
their portrait.
Move the mouse over a portrait to view
more information on that target
(see right panel.)

(click anywhere on the screen to exit help)

These portraits display the status and
relative positions of your enemies.
Click on a portrait to use the currently
selected skill on that character.
Different skills have different criteria for
who they may target. Valid targets have a
flashing red outline. When the mouse is
over a valid target, all targets effected by
the skill will glow red.

The current character may
choose which of his active
skills to use here. The
mousewheel also cycles
through these skills.

The current skill's name.

Alternative turn actions

Important status announcements appear here.

Accuracy

Dmg Resist

Poison Resist

Stun Resist

The status of the character
currently taking their turn
is displayed here.

The status of the character
currently moused over is
displayed here.

The turn order is
displayed here. Characters
with a higher Quickness
stat act sooner. If the
mouse pointer is over a
portrait, the chararacter
glows yellow in this list.

Level Exit

Lurking Monsters

Restoration Shrine

Treasure

The position of the party is indicated by the brightest room.
Click on a neighbouring room to travel there.  Entering rooms
which contain monsters will trigger a battle. Defeating the
monsters will earn you treasure.
You must find the level exit in order to progress further into
the dungeon. Lower levels are more difficult, so it is often best
to search out as much treasure as possible before continuing.

These portraits display the status of your
party members. Click on a portrait to
manage their skills and equipment.

Percentage of monsters on
the current level slain.

Percentage of rooms on the
current level explored.

Current dungeon level.

If the level exit has been found,
you may click here to quickly descend.

The current character.

Manage the party inventory here. To use/equip items, double-click the icon,
or drag it onto the paperdoll or character portrait. To discard items, drag the
icon onto the red 'X', or CTRL-Click on the icon. Discarded items cannot be
recovered. Party inventory is limited to 45 items, if the party is carrying more
than that, you will be required to discard some before continuining.

Discard button.

Current character's
equipment.
To remove items,
double-click the icon
or drag it into the
inventory area.

View/Manage statistics and skills here.

Click the tabs to change between skills and statistics. If the current character has
Stat Points or Skill Points to spend, the tab will flash.

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1">LOW</font></p>

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1">MID</font></p>

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1">FULL</font></p>

<p align="center"><font face="Tahoma" size="8" color="#ffffff" letterSpacing="0.000000" kerning="1">TURN OFF</font></p>

TOTAL VOLUME

MUSIC VOLUME

SFX VOLUME

ActionScript [AS3]

Section 1
//clip_sd88detincelle_277 (dungeon_fla.clip_sd88detincelle_277) package dungeon_fla { import flash.display.*; public dynamic class clip_sd88detincelle_277 extends MovieClip { public function clip_sd88detincelle_277(){ addFrameScript(13, frame14); } function frame14(){ stop(); } } }//package dungeon_fla
Section 2
//CorridorSegment_63 (dungeon_fla.CorridorSegment_63) package dungeon_fla { import flash.display.*; public dynamic class CorridorSegment_63 extends MovieClip { public function CorridorSegment_63(){ addFrameScript(0, frame1); } function frame1(){ this.stop(); } } }//package dungeon_fla
Section 3
//Eye1_59 (dungeon_fla.Eye1_59) package dungeon_fla { import flash.display.*; public dynamic class Eye1_59 extends MovieClip { public function Eye1_59(){ addFrameScript(32, frame33, 91, frame92); } function frame92(){ if (Math.random() < 0.7){ this.gotoAndPlay("WaitLeft"); }; } function frame33(){ if (Math.random() < 0.7){ this.gotoAndPlay("WaitRight"); }; } } }//package dungeon_fla
Section 4
//Eye2_60 (dungeon_fla.Eye2_60) package dungeon_fla { import flash.display.*; public dynamic class Eye2_60 extends MovieClip { public function Eye2_60(){ addFrameScript(71, frame72, 123, frame124); } function frame72(){ if (Math.random() < 0.7){ this.gotoAndPlay("WaitLeft"); }; } function frame124(){ if (Math.random() < 0.7){ this.gotoAndPlay("WaitRight"); }; } } }//package dungeon_fla
Section 5
//FadeScreenDarker_45 (dungeon_fla.FadeScreenDarker_45) package dungeon_fla { import flash.display.*; public dynamic class FadeScreenDarker_45 extends MovieClip { public function FadeScreenDarker_45(){ addFrameScript(5, frame6); } function frame6(){ this.gotoAndStop(6); } } }//package dungeon_fla
Section 6
//freeinternetgames_276 (dungeon_fla.freeinternetgames_276) package dungeon_fla { import flash.display.*; public dynamic class freeinternetgames_276 extends MovieClip { public function freeinternetgames_276(){ addFrameScript(59, frame60); } function frame60(){ stop(); } } }//package dungeon_fla
Section 7
//LoadingSymbol_43 (dungeon_fla.LoadingSymbol_43) package dungeon_fla { import flash.display.*; public dynamic class LoadingSymbol_43 extends MovieClip { public function LoadingSymbol_43(){ addFrameScript(3, frame4); } function frame4(){ this.gotoAndStop(4); } } }//package dungeon_fla
Section 8
//player_arrow_impact_228 (dungeon_fla.player_arrow_impact_228) package dungeon_fla { import flash.display.*; public dynamic class player_arrow_impact_228 extends MovieClip { public var hit:MovieClip; public function player_arrow_impact_228(){ addFrameScript(11, frame12); } function frame12(){ this.gotoAndStop(12); } } }//package dungeon_fla
Section 9
//poisonbubble_220 (dungeon_fla.poisonbubble_220) package dungeon_fla { import flash.display.*; public dynamic class poisonbubble_220 extends MovieClip { public function poisonbubble_220(){ addFrameScript(24, frame25); } function frame25(){ this.gotoAndStop(25); } } }//package dungeon_fla
Section 10
//RandomGear_68 (dungeon_fla.RandomGear_68) package dungeon_fla { import flash.display.*; public dynamic class RandomGear_68 extends MovieClip { public var f; public function RandomGear_68(){ addFrameScript(0, frame1); } function frame1(){ f = dm.randomNum(1, this.totalFrames); this.gotoAndStop(f); this.rotation = dm.randomNum(0, 359); } } }//package dungeon_fla
Section 11
//SelectArrow_31 (dungeon_fla.SelectArrow_31) package dungeon_fla { import flash.display.*; public dynamic class SelectArrow_31 extends MovieClip { public function SelectArrow_31(){ addFrameScript(0, frame1); } function frame1(){ this.stop(); } } }//package dungeon_fla
Section 12
//shield_gleam_200 (dungeon_fla.shield_gleam_200) package dungeon_fla { import flash.display.*; public dynamic class shield_gleam_200 extends MovieClip { public function shield_gleam_200(){ addFrameScript(0, frame1, 14, frame15); } function frame15(){ this.gotoAndStop(15); } function frame1(){ this.gotoAndStop(1); } } }//package dungeon_fla
Section 13
//TitleText_55 (dungeon_fla.TitleText_55) package dungeon_fla { import flash.display.*; public dynamic class TitleText_55 extends MovieClip { public function TitleText_55(){ addFrameScript(49, frame50); } function frame50(){ this.stop(); } } }//package dungeon_fla
Section 14
//vert_slash_225 (dungeon_fla.vert_slash_225) package dungeon_fla { import flash.display.*; public dynamic class vert_slash_225 extends MovieClip { public var slash:MovieClip; public function vert_slash_225(){ addFrameScript(11, frame12); } function frame12(){ this.gotoAndStop(12); } } }//package dungeon_fla
Section 15
//Armor (Armor) package { public class Armor extends Equipment { private var _type:int;// = 0 static const medium = 1; static const light = 0; static const heavy = 2; static const special = 3; public function Armor(){ _type = 0; super(); item_name = "Armor"; item_level = 1; type = Armor.light; } override public function generateItem(_arg1:int):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = false; getItemModifiers(); if (item_rarity == Item.green){ if (DungeonMain.RandomNum(0, 100) >= 50){ _local3 = true; } else { _local2 = true; }; }; if ((((item_rarity == Item.blue)) || (_local3))){ prefix = rollForPrefix(item_rarity); }; if ((((item_rarity == Item.blue)) || (_local2))){ suffix = rollForSuffix(item_rarity); }; if (prefix >= 0){ applyPrefix(); }; if (suffix >= 0){ applySuffix(); }; armor_rating = scaleArmorForLevel((base_armor_rating * (1 + (base_armor_mod / 100)))); if (materials.length){ material = rollForMaterial(item_rarity, materials); scaleArmorForMaterial(material); } else { material = -1; }; if (material >= 0){ item_name = ((materials[material] + " ") + item_name); }; if (prefix >= 0){ item_name = ((prefixes[prefix][0] + " ") + item_name); }; if (suffix >= 0){ item_name = ((item_name + " of ") + suffixes[suffix][0]); }; if (item_rarity == Item.grey){ item_name = ((grey_name + " ") + item_name); }; } public function get type():int{ return (this._type); } override public function getItemTypeString(){ return ("Armor"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } public function modifyBaseArmorForSlot():void{ var _local1:*; if (!base_armor_rating){ return; }; _local1 = 1; if (slot == Equipment.boots){ _local1 = 1; } else { if (slot == Equipment.gloves){ _local1 = 1; } else { if (slot == Equipment.legs){ _local1 = 1.2; } else { if (slot == Equipment.armor){ _local1 = 1.5; } else { if (slot == Equipment.head){ _local1 = 1.2; }; }; }; }; }; base_armor_rating = Math.round((base_armor_rating * _local1)); } public function set type(_arg1:int):void{ this._type = _arg1; } override public function itemStatsString(_arg1:String):String{ if (armor_rating){ _arg1 = (_arg1 + (String(armor_rating) + " Armor Rating\n")); }; return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Thick"){ armor_rating = Math.round((armor_rating * prefixes[_local1][1])); return; }; super.applyPrefix(); } public function scaleArmorForMaterial(_arg1:int){ var _local2:*; _local2 = (1 + ((_arg1 + 1) * 0.05)); armor_rating = Math.round((armor_rating * _local2)); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Thick", 1.2]); prefixes.push(["Soothing", 5]); prefixes.push(["Purifying", 30]); suffixes.push(["Reflection", 10]); suffixes.push(["Tenacity", 30]); } } }//package
Section 16
//armor_buff_effect (armor_buff_effect) package { import flash.display.*; public dynamic class armor_buff_effect extends MovieClip { public var shield:MovieClip; public function armor_buff_effect(){ addFrameScript(0, frame1, 4, frame5, 9, frame10, 49, frame50); } function frame10(){ this.shield.gotoAndPlay(2); } function frame1(){ dm.sound.play(SoundControl.armorBuff); } function frame5(){ this.shield.gotoAndStop(1); } function frame50(){ this.stop(); } } }//package
Section 17
//armor_buff_sound (armor_buff_sound) package { import flash.media.*; public dynamic class armor_buff_sound extends Sound { } }//package
Section 18
//arrow_fire_sound (arrow_fire_sound) package { import flash.media.*; public dynamic class arrow_fire_sound extends Sound { } }//package
Section 19
//BackButton (BackButton) package { import flash.display.*; public dynamic class BackButton extends MovieClip { } }//package
Section 20
//basilisk_sound (basilisk_sound) package { import flash.media.*; public dynamic class basilisk_sound extends Sound { } }//package
Section 21
//battle_start2 (battle_start2) package { import flash.media.*; public dynamic class battle_start2 extends Sound { } }//package
Section 22
//BattleActionsBar (BattleActionsBar) package { import flash.display.*; public dynamic class BattleActionsBar extends Sprite { public var retreat_all_skill:SkillIcon; public var pass_skill:SkillIcon; public var retreat_skill:SkillIcon; } }//package
Section 23
//Battlefield (Battlefield) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; import flash.ui.*; import flash.filters.*; public class Battlefield extends MovieClip { const PASS_TURN_DELAY = 600; const max_blur = 30; const color_white:uint = 0xFFFFFF; const pass_animation_frame = 11; const immune_animation_frame = 9; const blur_steps = 3; const stunned_animation_frame = 10; const miss_animation_frame = 8; const color_red:uint = 0xE90000; public var active_info_panel:BattleInfoPanel; var horde:Horde; public var skillbar:SkillBar; var passing:Boolean;// = false public var bg:MovieClip; var bonusAttackPending:Boolean;// = false var npc_portraits:Array; public var help_btn:HelpButton; var retreatAll:Boolean;// = false var damageSpongeMonster:MonsterCharacter; public var selected_skill_text:TextField; var turn;// = 0 var usedSkill:Boolean;// = false public var pc2:EmptyPortrait; public var target_info_panel:BattleInfoPanel; public var pc6:EmptyPortrait; public var pc1:EmptyPortrait; public var pc3:EmptyPortrait; public var pc4:EmptyPortrait; public var pc5:EmptyPortrait; var delayedHit:int;// = -1 var delayedHitsAttacker:Array; var pc_portraits:Array; public var sound_btn:SoundButton; var hover:Character; public var messages:BattleMessageBox; var do_eor:Boolean;// = false var speedlist:Array; public var npc1:EmptyPortrait; public var npc2:EmptyPortrait; public var npc3:EmptyPortrait; public var npc4:EmptyPortrait; public var npc6:EmptyPortrait; var damageSpongePlayer:PlayerCharacter; public var npc5:EmptyPortrait; var phl:CurrentPortraitHighlight; var currentBlur:int;// = 0 public var initDisplay:InitiativeList; var pc_party:Party; var combat_grid:Array; var doLethalAnim:Boolean;// = false var delayedHitsSkill:Array; var valid_targets:Array; var valid_targets_portraits:Array; var delayedHitsDamage:Array; var bonusAttackTarget:Character; var hadMonsterDelay:Boolean;// = false var delayedHitsTarget:Array; public var actionsbar:BattleActionsBar; public function Battlefield(){ pc_portraits = new Array(); npc_portraits = new Array(); speedlist = new Array(11); turn = 0; combat_grid = new Array(3); valid_targets = new Array(); valid_targets_portraits = new Array(); bonusAttackPending = false; do_eor = false; retreatAll = false; delayedHit = -1; delayedHitsDamage = new Array(); delayedHitsSkill = new Array(); delayedHitsTarget = new Array(); delayedHitsAttacker = new Array(); currentBlur = 0; usedSkill = false; hadMonsterDelay = false; doLethalAnim = false; passing = false; super(); addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); } private function PlayerCanHit(_arg1:int){ var _local2:*; var _local3:*; var _local4:PlayerCharacter; var _local5:MonsterCharacter; var _local6:*; _local4 = PlayerCharacter(speedlist[turn]); if (_arg1 > 6){ return; }; if (_arg1 < 1){ return; }; if (_arg1 > 3){ _local2 = (_arg1 % 4); } else { _local2 = (_arg1 - 1); }; _local3 = (Math.ceil((_arg1 / 3)) - 1); if (combat_grid[_local2][_local3] == null){ return; }; _local5 = MonsterCharacter(combat_grid[_local2][_local3]); if (MonsterCharacter(_local5).health <= 0){ return; }; if (MonsterCharacter(_local5).hiding){ return; }; if (((skillbar.getSelectedSkill().targetsStunned) && (!(_local5.stunned_duration)))){ return; }; if (((!((damageSpongeMonster == null))) && (!((damageSpongeMonster == _local5))))){ return; }; _local6 = PortraitFromCharacter(_local5); if (_local6 != null){ addPlayerTarget(_local5); }; } function EndTurn(){ var _local1:*; var _local2:*; var _local3:Timer; if ((speedlist[turn] is PlayerCharacter)){ if (getChildByName("skillbar") != null){ removeChild(skillbar); }; if (getChildByName("actionsbar") != null){ removeChild(actionsbar); }; this.removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelEvent); stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); selected_skill_text.text = ""; }; RemoveTargetInfo(); _local2 = 1500; if (passing){ _local2 = PASS_TURN_DELAY; passing = false; }; if (speedlist[turn].stunned_duration){ _local2 = PASS_TURN_DELAY; }; if ((((speedlist[turn] is PlayerCharacter)) && (((speedlist[turn].retreated) || (speedlist[turn].retreating))))){ _local2 = 600; }; _local3 = new Timer(_local2, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, onTurnDelayComplete, false, 0, true); _local3.start(); } private function modifySkillDamage(_arg1:int, _arg2:Skill, _arg3:Character, _arg4:Character, _arg5:int){ var _local6:*; var _local7:*; var _local8:*; if (_arg3.invulnerable){ return (0); }; if (((_arg2.onlyDamagesUndead) && (!((_arg3.type == Horde.undead))))){ return (0); }; if (((_arg2.splashDamageMultiplier) && (!((_arg3 == _arg3))))){ _arg1 = (_arg1 * _arg2.splashDamageMultiplier); }; if (((_arg2.undeadMultiplier) && ((_arg3.type == Horde.undead)))){ _arg1 = (_arg1 * _arg2.undeadMultiplier); }; if ((((_arg4 is PlayerCharacter)) && (_arg1))){ _arg1 = PlayerCharacter(_arg4).multiplyDamageForTargetType(_arg1, _arg3.type); }; if (((((_arg2.damageBonusVsCreatureType) && (_arg1))) && ((_arg3 is MonsterCharacter)))){ if (_arg2.damageBonusVsCreatureType == MonsterCharacter(_arg3).type){ _arg1 = (_arg1 * _arg2.damageBonusVsCreatureModifier); }; }; if (_arg1){ _local6 = _arg3.damageAfterArmor(_arg1); if (_arg2.ignoresArmor){ _arg1 = Math.max(_arg1, _local6); } else { _arg1 = _local6; }; }; if (((((_arg1) && ((_arg3 is MonsterCharacter)))) && (MonsterCharacter(_arg3).ethereal))){ if (_arg2.isPhysical()){ _arg1 = Math.round((_arg1 * (1 - (MonsterCharacter(_arg3).ethereal / 100)))); if (_arg1 == 0){ _arg1 = 1; }; }; }; doLethalAnim = false; if (((((_arg1) && (((((_arg2.addsPowerToLethality) || (_arg2.lethality))) || (_arg4.getLethality()))))) && (!(_arg3.lethalityImmune)))){ _local7 = (_arg2.lethality + _arg4.getLethality()); if (_arg2.addsPowerToLethality){ _local7 = (_local7 + _arg5); }; _local8 = DungeonMain.RandomNum(0, 100); if (_local8 < _local7){ _arg1 = _arg3.health; doLethalAnim = true; }; }; if (((_arg2.nonLethal) && ((_arg1 >= _arg3.health)))){ _arg1 = (_arg3.health - 1); }; return (_arg1); } function clickRetreatAll(_arg1:MouseEvent):void{ if ((speedlist[turn] is PlayerCharacter)){ retreatAll = true; clickRetreat(_arg1); }; } private function UpdateCombatGrid():void{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; _local1 = 0; while (_local1 < 3) { combat_grid[_local1] = new Array(4); _local2 = 0; while (_local2 < 4) { combat_grid[_local1][_local2] = null; _local2++; }; _local1++; }; _local1 = 0; while (_local1 < speedlist.length) { AddCharToCombatGrid(speedlist[_local1]); _local1++; }; } public function ValidTargetsForPlayer(_arg1:Skill){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:PlayerCharacter; _local2 = speedlist[turn]; _local8 = false; _local9 = false; valid_targets.length = 0; valid_targets_portraits.length = 0; RemoveTargetInfo(); selected_skill_text.text = skillbar.getSelectedSkill().skillname; dm.embolden(selected_skill_text); if (_arg1.usesWeaponRange){ if (_local2.gear[Equipment.weapon]){ if ((_local2.gear[Equipment.weapon] is MeleeWeapon)){ _local9 = true; } else { if ((_local2.gear[Equipment.weapon] is RangedWeapon)){ _local8 = true; }; }; }; }; _local10 = PlayerCharacter(_local2).gear[Equipment.weapon]; if (!_arg1.usable()){ selected_skill_text.textColor = color_red; return; }; selected_skill_text.textColor = color_white; if (_arg1.targetsSelf){ _local12 = PortraitFromCharacter(speedlist[turn]); if (_local12 != null){ addPlayerTarget(speedlist[turn]); }; return; }; if (_arg1.targetsFriendlies){ _local5 = 0; for (;_local5 < pc_portraits.length;_local5++) { _local13 = pc_portraits[_local5].char_ref; if (PlayerCharacter(_local13).retreated){ } else { if (_local13.hiding){ } else { if (_arg1.resurrects){ if (Character(_local13).health > 0){ continue; }; } else { if (Character(_local13).health <= 0){ continue; }; }; if (skillbar.getSelectedSkill().targetsFriendlyFrontRow){ //unresolved if //unresolved if } else { addPlayerTarget(_local13); }; }; }; }; return; }; if (((_arg1.rangedAttack) || (_local8))){ _local5 = 1; while (_local5 <= 6) { PlayerCanHit(_local5); _local5++; }; return; }; _local11 = IsPlayerMeleeBlocked(PlayerCharacter(_local2)); if ((((_local2.pos < 4)) || ((((_local2.pos > 3)) && (!(_local11)))))){ if (damageSpongeMonster != null){ PlayerCanHit(damageSpongeMonster.pos); }; _local3 = 0; _local5 = 0; while (_local5 < 3) { if (combat_grid[_local5][1] != null){ if (Character(combat_grid[_local5][1]).health > 0){ if (Character(combat_grid[_local5][1]).hiding){ } else { _local3++; _local7 = Character(combat_grid[_local5][1]).pos; }; }; }; _local5++; }; if (_local3 == 1){ PlayerCanHit(_local7); } else { if (_local3 > 1){ if (_local2.pos < 4){ PlayerCanHit((_local2.pos + 3)); if ((_local2.pos + 4) <= 6){ PlayerCanHit((_local2.pos + 4)); }; if ((_local2.pos + 2) >= 4){ PlayerCanHit((_local2.pos + 2)); }; } else { PlayerCanHit(_local2.pos); if ((_local2.pos + 1) <= 6){ PlayerCanHit((_local2.pos + 1)); }; if ((_local2.pos - 1) >= 4){ PlayerCanHit((_local2.pos - 1)); }; }; } else { if (_local3 == 0){ _local4 = 0; _local5 = 0; while (_local5 < 3) { if (combat_grid[_local5][0] != null){ if (Character(combat_grid[_local5][0]).health > 0){ if (Character(combat_grid[_local5][0]).hiding){ } else { _local4++; _local7 = Character(combat_grid[_local5][0]).pos; }; }; }; _local5++; }; if (_local4 == 1){ PlayerCanHit(_local7); } else { if (_local4 > 1){ if (_local2.pos < 4){ PlayerCanHit(_local2.pos); if ((_local2.pos + 1) <= 3){ PlayerCanHit((_local2.pos + 1)); }; if ((_local2.pos - 1) >= 1){ PlayerCanHit((_local2.pos - 1)); }; } else { PlayerCanHit((_local2.pos - 3)); if ((_local2.pos - 2) <= 3){ PlayerCanHit((_local2.pos - 2)); }; if ((_local2.pos - 4) >= 1){ PlayerCanHit((_local2.pos - 4)); }; }; }; }; }; }; }; }; } function mouseMoveEvent(_arg1:MouseEvent):void{ } private function replaceChar(_arg1:Character, _arg2:Character):void{ var _local3:*; var _local4:*; var _local5:*; _local3 = 0; while (_local3 < horde.members.length) { if (horde.members[_local3] == _arg1){ horde.members[_local3] = _arg2; }; _local3++; }; _local4 = 0; while (_local4 < 3) { _local5 = 0; while (_local5 < 4) { if (combat_grid[_local4][_local5] == _arg1){ combat_grid[_local4][_local5] = _arg2; return; }; _local5++; }; _local4++; }; } private function IsPlayerMeleeBlocked(_arg1:PlayerCharacter):Boolean{ var _local2:*; var _local3:*; _local2 = 0; _local3 = false; if (_arg1.pos > 3){ _local2 = 0; while (_local2 < 3) { if (combat_grid[_local2][2] != null){ if ((((((combat_grid[_local2][2].health > 0)) && (!(combat_grid[_local2][2].retreated)))) && (!(combat_grid[_local2][2].hiding)))){ _local3 = true; }; }; _local2++; }; }; if (_arg1.gear[Equipment.weapon] != null){ if ((_arg1.gear[Equipment.weapon] is iSpear)){ _local3 = false; }; }; return (_local3); } function unBlurDone(_arg1:TimerEvent):void{ this.filters = null; } private function AddCharToCombatGrid(_arg1:Character):void{ var _local2:*; var _local3:*; if (_arg1 == null){ return; }; if (_arg1.pos > 3){ _local2 = (_arg1.pos % 4); } else { _local2 = (_arg1.pos - 1); }; _local3 = (Math.ceil((_arg1.pos / 3)) - 1); if ((_arg1 is PlayerCharacter)){ _local3 = (_local3 + 2); }; combat_grid[_local2][_local3] = _arg1; } private function PassTurn(){ var _local1:CharacterPortrait; _local1 = PortraitFromCharacter(speedlist[turn]); passing = true; messages.addMessage((speedlist[turn].charname + " passes."), ""); _local1.addAnimationFrame(pass_animation_frame, (PASS_TURN_DELAY + 500)); if (!speedlist[turn].cancelPowerRegen){ speedlist[turn].powerRegenMod = 2; }; _local1.updateBars(); EndTurn(); } public function onTurnDelayComplete(_arg1:TimerEvent):void{ var _local2:*; var _local3:Timer; updateAllBars(); _local3 = new Timer(500, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, onDoNothingDelayComplete, false, 0, true); _local3.start(); } private function IncrementTurn():Boolean{ var _local1:*; var _local2:*; var _local3:Boolean; var _local4:Boolean; var _local5:Boolean; var _local6:*; _local3 = false; _local4 = false; _local5 = false; turn++; _local6 = speedlist.length; if (turn >= _local6){ EndOfRound(); }; _local1 = 0; while (_local1 < npc_portraits.length) { if (MonsterCharacter(npc_portraits[_local1].char_ref).health > 0){ _local4 = true; }; _local1++; }; _local1 = 0; while (_local1 < pc_portraits.length) { if (PlayerCharacter(pc_portraits[_local1].char_ref).retreated != true){ if (PlayerCharacter(pc_portraits[_local1].char_ref).health > 0){ _local3 = true; }; }; _local1++; }; if (!_local4){ horde.defeated = true; }; _local5 = ((_local3) && (_local4)); if (_local5){ initDisplay.turnOf(speedlist[turn], true); return (true); }; return (false); } function blurDone(_arg1:TimerEvent):void{ setBlur(max_blur); } private function playerRegenShown(_arg1:Event):void{ if (usedSkill){ return; }; PortraitFromCharacter(speedlist[turn]).updateBars(); if (speedlist[turn].health <= 0){ EndTurn(); }; } function mousedOverEvent(_arg1:MouseEvent):void{ var _local2:*; _local2 = CharacterPortrait(_arg1.currentTarget).char_ref; if (_local2 == null){ return; }; hover = _local2; UpdateInfoPanels(); initDisplay.highlightChar(_local2); drawEffectedTargets(); } public function cleanup():void{ var _local1:*; help_btn.cleanup(); skillbar.cleanup(); messages.cleanup(); removeEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelEvent); if (stage != null){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); }; actionsbar.pass_skill.cleanup(); actionsbar.pass_skill.removeEventListener(MouseEvent.MOUSE_DOWN, clickPassTurn); actionsbar.retreat_skill.cleanup(); actionsbar.retreat_skill.removeEventListener(MouseEvent.MOUSE_DOWN, clickRetreat); actionsbar.retreat_all_skill.cleanup(); actionsbar.retreat_all_skill.removeEventListener(MouseEvent.MOUSE_DOWN, clickRetreatAll); _local1 = 0; while (_local1 < npc_portraits.length) { npc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OVER, mousedOverEvent); npc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OVER, mouseMoveEvent); npc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OUT, mousedOutEvent); _local1++; }; _local1 = 0; while (_local1 < pc_portraits.length) { pc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OVER, mousedOverEvent); pc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OVER, mouseMoveEvent); pc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_OUT, mousedOutEvent); _local1++; }; } function PortraitFromCharacter(_arg1:Character):CharacterPortrait{ var _local2:*; var _local3:*; if ((_arg1 is PlayerCharacter)){ _local2 = pc_portraits; } else { _local2 = npc_portraits; }; _local3 = 0; while (_local3 < _local2.length) { if (_local2[_local3].char_ref == _arg1){ return (_local2[_local3]); }; _local3++; }; return (null); } private function exitBlur(_arg1:TimerEvent=null):void{ var _local2:Timer; currentBlur = 0; _local2 = new Timer(50, blur_steps); _local2.addEventListener(TimerEvent.TIMER, blurStep, false, 0, true); _local2.addEventListener(TimerEvent.TIMER_COMPLETE, blurDone, false, 0, true); _local2.start(); } function onMouseWheelEvent(_arg1:MouseEvent):void{ if ((speedlist[turn] is MonsterCharacter)){ return; }; if (_arg1.delta > 0){ skillbar.decrementSkill(); } else { if (_arg1.delta < 0){ skillbar.incrementSkill(); }; }; ValidTargetsForPlayer(skillbar.getSelectedSkill()); if (hover != null){ drawEffectedTargets(); }; } private function checkAccuracyMiss(_arg1:Character, _arg2:Skill, _arg3:int, _arg4:Boolean, _arg5:Boolean=false):Boolean{ var _local6:*; var _local7:*; var _local8:*; _local6 = false; _local7 = DungeonMain.RandomNum(1, 100); _local8 = _arg1.getAccuracy(); if (_arg2.attacksWithAccuracyMod != 1){ _local8 = Math.round((_local8 * _arg2.attacksWithAccuracyMod)); }; if (((_arg2.piercesColumn) && (!(_arg5)))){ if (_arg4){ _local7 = (_local8 - 1); } else { _local7 = (_local8 + 1); }; }; if (_local7 > _local8){ if (_arg1.canMissWith(_arg2)){ _local6 = true; } else { _local6 = false; }; }; return (_local6); } public function addMonsterPortrait(_arg1:MonsterCharacter):CharacterPortrait{ var _local2:CharacterPortrait; var _local3:*; _local2 = new CharacterPortrait(); _local2.setChar(_arg1); _local3 = EmptyPortrait(getChildByName(("npc" + String(_arg1.pos)))); if (_local3 == null){ return (null); }; _local3.empty.addChild(_local2); _local2.addEventListener(MouseEvent.MOUSE_OVER, mousedOverEvent); _local2.addEventListener(MouseEvent.MOUSE_OVER, mouseMoveEvent); _local2.addEventListener(MouseEvent.MOUSE_OUT, mousedOutEvent); npc_portraits.push(_local2); return (_local2); } private function EndOfRound():void{ var _local1:*; _local1 = 0; turn = 0; CalculateInitiative(); updateAllBars(); } private function getEffectedTargets(_arg1:Character, _arg2:Skill):Array{ var _local3:*; var _local4:*; var _local5:Array; _local5 = new Array(); if (_arg2.targetsSelf){ _local5.push(_arg1); } else { if (_arg2.hitsAllEnemies){ _local3 = 0; while (_local3 < horde.members.length) { if (horde.members[_local3].health <= 0){ } else { _local5.push(horde.members[_local3]); }; _local3++; }; } else { if (_arg2.hitsAllFriendlies){ _local3 = 0; while (_local3 < pc_party.members.length) { if (pc_party.members[_local3].health <= 0){ } else { if (pc_party.members[_local3].retreated){ } else { _local5.push(pc_party.members[_local3]); }; }; _local3++; }; } else { if (_arg2.hitsAllMeleeRange){ _local5 = valid_targets; } else { if (_arg2.piercesColumn){ if (_arg1.pos < 4){ if (horde.memberInPos((_arg1.pos + 3)) != null){ _local5.push(horde.memberInPos((_arg1.pos + 3))); }; } else { if (horde.memberInPos((_arg1.pos - 3)) != null){ _local5.push(horde.memberInPos((_arg1.pos - 3))); }; }; _local5.push(_arg1); } else { if (_arg2.splashDamageMultiplier){ if (_arg1.pos < 4){ if (horde.memberInPos((_arg1.pos + 3)) != null){ _local5.push(horde.memberInPos((_arg1.pos + 3))); }; } else { if (horde.memberInPos((_arg1.pos - 3)) != null){ _local5.push(horde.memberInPos((_arg1.pos - 3))); }; if (pc_party.memberInPos((_arg1.pos - 3)) != null){ _local5.push(pc_party.memberInPos((_arg1.pos - 3))); }; }; if (((!((_arg1.pos == 4))) && (!((horde.memberInPos((_arg1.pos - 1)) == null))))){ _local5.push(horde.memberInPos((_arg1.pos - 1))); }; if (((!((_arg1.pos == 3))) && (!((horde.memberInPos((_arg1.pos + 1)) == null))))){ _local5.push(horde.memberInPos((_arg1.pos + 1))); }; _local5.push(_arg1); } else { _local5.push(_arg1); }; }; }; }; }; }; _local3 = 0; while (_local3 < _local5.length) { if (_local5[_local3].health <= 0){ _local5.splice(_local3, 1); _local3--; }; _local3++; }; return (_local5); } public function onDoNothingDelayComplete(_arg1:TimerEvent):void{ var _local2:*; if (bonusAttackPending){ bonusAttackOn(bonusAttackTarget); if (!bonusAttackPending){ return; }; }; _local2 = IncrementTurn(); if (_local2){ RunTurn(); } else { EndBattle(); }; } private function updateAllBars():void{ var _local1:*; _local1 = 0; while (_local1 < npc_portraits.length) { npc_portraits[_local1].updateBars(); _local1++; }; _local1 = 0; while (_local1 < pc_portraits.length) { pc_portraits[_local1].updateBars(); _local1++; }; } function added(_arg1:Event):void{ var _local2 = ??pushnamespace ; var _local3:*; _local2 = 8; if (((DungeonMain.showHints) && (!(Dungeon.hintShown(_local2))))){ _local3 = new HintDialog("Battle Start!", "You have encountered a group of enemies, and must now face them in battle. \n\nFirst, set your party's formation by dragging their character portraits. Melee fighters should be in the front row, and more vulnerable ranged fighters or spellcasters in the back row. The front row protects the back row from enemy melee attacks.", true, true); DungeonMain.hints = (DungeonMain.hints + _local2); stage.addChild(_local3); dm.main.saveInterface(); }; entryBlur(); } private function UpdateInfoPanels(_arg1:Character=null){ if (_arg1 == null){ _arg1 = speedlist[turn]; }; if (turn != -1){ if (!this.contains(active_info_panel)){ addChild(active_info_panel); }; active_info_panel.setChar(_arg1); }; if (hover != null){ if (!this.contains(target_info_panel)){ addChild(target_info_panel); }; target_info_panel.setChar(hover); } else { if (this.contains(target_info_panel)){ removeChild(target_info_panel); }; }; } function delayedHitsTimerComplete(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:Character; var _local6:Character; var _local7:*; var _local8:Boolean; var _local9:*; if (delayedHit >= delayedHitsDamage.length){ return; }; _local2 = ""; updateAllBars(); _local3 = delayedHitsDamage[delayedHit]; _local4 = delayedHitsSkill[delayedHit]; _local5 = delayedHitsTarget[delayedHit]; _local6 = delayedHitsAttacker[delayedHit]; _local7 = PortraitFromCharacter(_local5); _local8 = checkAccuracyMiss(_local6, _local4, 0, false); if (_local8){ _local7.addAnimationFrame(miss_animation_frame, _local4.portraitAnimationDuration); _local2 = "(Miss)"; dm.sound.playMissSound(_local4, _local6, true); } else { _local9 = doSkillDamage(_local6, _local5, _local3, _local4); addPortraitAnim(_local5, _local7, _local4, _local6); _local2 = String(_local9); }; delayedHit++; if (delayedHit >= delayedHitsDamage.length){ _local2 = (_local2 + " damage!"); }; messages.updateMostRecent("", (" + " + _local2)); } private function drawEffectedTargets():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:Array; var _local5:*; var _local6:*; var _local7:PortraitEffected; removePortraitEffected(); if (!(speedlist[turn] is PlayerCharacter)){ return; }; _local1 = false; if (getChildByName("skillbar") == null){ return; }; _local2 = 0; while (_local2 < valid_targets.length) { if (hover == valid_targets[_local2]){ _local1 = true; }; _local2++; }; if (_local1){ _local3 = skillbar.getSelectedSkill(); _local4 = getEffectedTargets(hover, _local3); _local5 = 0; while (_local5 < _local4.length) { _local6 = PortraitFromCharacter(_local4[_local5]); _local7 = new PortraitEffected(); _local7.x = _local6.parent.parent.x; _local7.y = _local6.parent.parent.y; _local7.name = ("ei" + _local5); bg.addChildAt(_local7, 1); _local5++; }; }; } public function powerPreview(){ var _local1:*; if ((speedlist[turn] is MonsterCharacter)){ return; }; PortraitFromCharacter(speedlist[turn]).endPowerCostPreview(); _local1 = skillbar.getSelectedSkill().power_cost; if (skillbar.getSelectedSkill().costsRemainingPower){ _local1 = speedlist[turn].power; }; PortraitFromCharacter(speedlist[turn]).startPowerCostPreview(_local1); } private function addPlayerTarget(_arg1:Character):void{ var _local2:CharacterPortrait; var _local3:*; var _local4:PortraitHighlight; _local2 = CharacterPortrait(PortraitFromCharacter(_arg1)); _local3 = 0; while (_local3 < valid_targets.length) { if (valid_targets[_local3] == _arg1){ return; }; _local3++; }; valid_targets.push(_arg1); valid_targets_portraits.push(_local2); _local2.addEventListener(MouseEvent.MOUSE_DOWN, clickAttack); _local4 = new PortraitHighlight(); _local4.name = "highlight"; _local2.addChild(_local4); } private function useSkill(_arg1:Character, _arg2:Skill, _arg3:Character){ var _local4:*; var _local5:*; var _local6:*; var _local7:Array; var _local8:Array; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local18:int; var _local19:String; var _local20:String; var _local21:CharacterPortrait; var _local22:*; var _local23:*; var _local24:*; var _local25:*; var _local26:Array; var _local27:*; var _local28:Character; var _local29:*; var _local30:*; var _local31:*; var _local32:*; var _local33:int; var _local34:*; var _local35:*; var _local36:*; var _local37:*; var _local38:*; var _local39:*; var _local40:*; var _local41:*; var _local42:*; var _local43:*; var _local44:*; var _local45:Timer; var _local46:*; var _local47:*; var _local48:*; var _local49:*; var _local50:*; _local6 = 0; _local7 = new Array(); _local8 = new Array(); _local9 = false; _local10 = 0; _local11 = 0; _local12 = 0; _local13 = 0; _local14 = 0; _local15 = false; _local16 = false; _local17 = false; _local18 = 0; _local19 = ""; _local20 = ""; _local21 = PortraitFromCharacter(_arg1); usedSkill = true; _local22 = _arg2.getDamage(); _local23 = _arg2.powerDamage; _local24 = _arg2.scaleHeal(_arg2.healing); if (_arg2.powerRestore){ _local23 = -(_arg2.powerRestore); }; _local22 = (_local22 * _arg1.buff_damage); if (_local22){ _local22 = (_local22 * _arg1.damageMod); _arg1.damageMod = 1; }; bonusAttackPending = false; delayedHit = -1; delayedHitsDamage.length = 0; delayedHitsSkill.length = 0; delayedHitsTarget.length = 0; delayedHitsAttacker.length = 0; if (_arg2.hitsAllMeleeRange){ if ((_arg1 is PlayerCharacter)){ _local7 = dm.copyArray(valid_targets); _local8 = dm.copyArray(valid_targets_portraits); } else { _local7 = findMonsterTargets(MonsterCharacter(_arg1), _arg2); _local5 = 0; while (_local5 < _local7.length) { _local8.push(PortraitFromCharacter(_local7[_local5])); _local5++; }; }; } else { if (_arg2.attacksTwoTargets){ _local17 = true; _local18 = 400; if ((_arg1 is PlayerCharacter)){ _local7.push(_arg3); _local8.push(PortraitFromCharacter(_arg3)); } else { _local26 = findMonsterTargets(MonsterCharacter(_arg1), _arg2); if (_local26.length == 1){ _local7.push(_arg3); _local7.push(_arg3); } else { if (_local26.length == 2){ _local7 = _local26; } else { if (_local26.length > 2){ _local7.push(_arg3); _local4 = 0; while (_local4 < _local26.length) { if (_local26[_local4] == _arg3){ _local26.splice(_local4, 1); }; _local4++; }; _local7.push(_local26[DungeonMain.RandomNum(0, (_local26.length - 1))]); } else { _local7.push(_arg3); }; }; }; _local5 = 0; while (_local5 < _local7.length) { _local8.push(PortraitFromCharacter(_local7[_local5])); _local5++; }; }; } else { if (_arg2.piercesColumn){ if (_arg3.pos > 3){ _local27 = (_arg3.pos - 3); } else { _local27 = (_arg3.pos + 3); }; if ((_arg3 is MonsterCharacter)){ _local28 = horde.memberInPos(_local27); } else { _local28 = pc_party.memberInPos(_local27); }; _local7.push(_arg3); _local8.push(PortraitFromCharacter(_arg3)); if (_local28 != null){ _local7.push(_local28); _local8.push(PortraitFromCharacter(_local28)); }; } else { if (_arg2.hitsAllEnemies){ if ((_arg1 is PlayerCharacter)){ _local7 = dm.copyArray(horde.members); _local8 = dm.copyArray(npc_portraits); } else { _local7 = dm.copyArray(pc_party.members); _local8 = dm.copyArray(pc_portraits); }; } else { if (_arg2.hitsAllFriendlies){ if ((_arg1 is MonsterCharacter)){ _local7 = dm.copyArray(horde.members); _local8 = dm.copyArray(npc_portraits); } else { _local7 = dm.copyArray(pc_party.members); _local8 = dm.copyArray(pc_portraits); }; } else { if (_arg2.splashDamageMultiplier){ _local7.push(_arg3); _local29 = _arg3.pos; _local30 = 0; _local31 = 0; if (_local29 < 4){ _local30 = (_local29 - 1); } else { _local30 = (_local29 - 4); }; if (_local29 < 4){ _local31 = 0; } else { _local31 = 1; }; if ((_arg3 is PlayerCharacter)){ _local31 = (_local31 + 2); }; _local32 = validCharFromGrid((_local30 - 1), _local31); if (_local32 != null){ _local7.push(_local32); }; _local32 = validCharFromGrid((_local30 + 1), _local31); if (_local32 != null){ _local7.push(_local32); }; _local32 = validCharFromGrid(_local30, (_local31 - 1)); if (_local32 != null){ _local7.push(_local32); }; _local32 = validCharFromGrid(_local30, (_local31 + 1)); if (_local32 != null){ _local7.push(_local32); }; _local5 = 0; while (_local5 < _local7.length) { _local8.push(PortraitFromCharacter(_local7[_local5])); _local5++; }; } else { if (_arg2.summonsCreatureClass != null){ if (((!((_arg1 is MonsterCharacter))) || ((horde.members.length == 6)))){ return; }; _local33 = 0; _local34 = 1; while (_local34 >= 0) { _local35 = 0; while (_local35 < 3) { if (combat_grid[_local35][_local34] == null){ _local33 = combatGridToPos(_local35, _local34); break; }; _local35++; }; if (_local33 > 0){ break; }; _local34--; }; if (_local33 > 0){ _local36 = _arg2.summonsCreatureClass; _local37 = new _local36.constructor(_arg1.level); _local37.pos = _local33; horde.members.push(_local37); AddCharToCombatGrid(_local37); _local38 = addMonsterPortrait(_local37); _local38.addPortraitAnimation(PortraitAnimation.summon); _local16 = true; }; } else { _local7.push(_arg3); _local8.push(PortraitFromCharacter(_arg3)); }; }; }; }; }; }; }; if (_arg2.attacksMultipleTimes > 1){ _local39 = _local7.length; _local5 = 1; while (_local5 < _arg2.attacksMultipleTimes) { _local4 = 0; while (_local4 < _local39) { _local7.push(_local7[_local4]); _local8.push(_local8[_local4]); _local4++; }; _local5++; }; _local17 = true; _local18 = Math.round((1200 / _local7.length)); }; if (_arg2.extraSpeedAttacks){ if (_arg1.getQuickness() > _arg3.getQuickness()){ _local17 = true; _local18 = Math.round((1200 / _arg2.extraSpeedAttacks)); _local5 = 0; while (_local5 < _arg2.extraSpeedAttacks) { _local7.push(_arg3); _local8.push(PortraitFromCharacter(_arg3)); _local5++; }; }; }; _local25 = _arg1.power; _arg1.reducePower(_arg2.power_cost); if (_arg2.costsRemainingPower){ _arg1.power = 0; }; _local4 = 0; while (_local4 < _local7.length) { if (_local7[_local4] == null){ } else { if ((((_local7[_local4].health <= 0)) && (!(_arg2.resurrects)))){ } else { if ((((_local7[_local4] is PlayerCharacter)) && (_local7[_local4].retreated))){ } else { _local40 = _local24; if (_arg2.clonesPlayers){ if ((_local7[_local4] is PlayerCharacter)){ createClone(_local7[_local4]); _local16 = true; }; }; if (_arg2.cannotDie){ _local7[_local4].cannotDie = _arg2.cannotDie; _local7[_local4].cannotDieMin = _arg2.getDefianceHealth(); }; if (_arg2.invulnerable){ _local7[_local4].invulnerable = _arg2.invulnerable; }; if (_arg2.makeDamageSponge){ if ((_local7[_local4] is PlayerCharacter)){ damageSpongePlayer = _local7[_local4]; } else { damageSpongeMonster = _local7[_local4]; }; _local20 = (_local7[_local4].charname + " is now protecting allies!"); }; if (_arg2.tempDamageResistance){ _local7[_local4].temp_damage_resistance = _arg2.tempDamageResistance; }; if (_arg2.hidesTarget){ _local7[_local4].hiding = true; _local8[_local4].setHiding(true); }; _local41 = modifySkillDamage(_local22, _arg2, _local7[_local4], _arg1, _local25); if ((((_local4 > 0)) && (_local17))){ if (delayedHit == -1){ delayedHit = 0; }; delayedHitsDamage.push(_local41); delayedHitsSkill.push(_arg2); delayedHitsTarget.push(_local7[_local4]); delayedHitsAttacker.push(_arg1); _local45 = new Timer((_local18 * _local4), 1); _local45.addEventListener(TimerEvent.TIMER_COMPLETE, delayedHitsTimerComplete, false, 0, true); _local45.start(); } else { _local9 = checkAccuracyMiss(_arg1, _arg2, _local11, (_local14 == 0), (_local4 == 0)); if (_local9){ _local8[_local4].addAnimationFrame(miss_animation_frame, _arg2.portraitAnimationDuration); _local14++; } else { if (_arg2.allyBonusAttack){ bonusAttackPending = true; bonusAttackTarget = _local7[_local4]; }; if (_arg2.cancelPowerRegen){ _local7[_local4].cancelPowerRegen = true; _local7[_local4].powerRegenMod = 1; _local7[_local4].buff_powerRegen = 0; }; if (_arg2.crippling){ _local7[_local4].crippled = Math.max(_arg2.crippling, _local7[_local4].crippled); initDisplay.updateIcon(_local7[_local4]); _local16 = true; }; if (_arg2.curse){ _local7[_local4].cursed = Math.max(_arg2.curse, _local7[_local4].cursed); }; if (_arg2.removesCurse){ _local7[_local4].cursed = 0; }; _local7[_local4].damageMod = (_local7[_local4].damageMod * _arg2.targetDamageMod); if (_arg2.buff_resistPoison){ _local7[_local4].buff_resistPoison = Math.max(_local7[_local4].buff_resistPoison, _arg2.buff_resistPoison); }; if (_arg2.buff_resistStun){ _local7[_local4].buff_resistStun = Math.max(_local7[_local4].buff_resistStun, _arg2.buff_resistStun); }; if (_arg2.buff_damageResist){ _local7[_local4].buff_damageResist = Math.max(_local7[_local4].buff_damageResist, _arg2.buff_damageResist); }; if (_arg2.buff_damageReflect){ _local7[_local4].buff_damageReflect = Math.max(_local7[_local4].buff_damageReflect, _arg2.buff_damageReflect); }; if (_arg2.buff_healthRegen){ _local7[_local4].buff_healthRegen = Math.max(_local7[_local4].buff_healthRegen, _arg2.buff_healthRegen); }; if (_arg2.buff_powerRegen){ _local7[_local4].buff_powerRegen = Math.max(_local7[_local4].buff_powerRegen, _arg2.buff_powerRegen); }; if (_arg2.buff_vampiric){ _local7[_local4].buff_vampiric = Math.max(_local7[_local4].buff_vampiric, _arg2.buff_vampiric); }; if (_arg2.buff_stun){ _local7[_local4].buff_stun = Math.max(_local7[_local4].buff_stun, _arg2.buff_stun); }; if (_arg2.buff_quickness){ _local7[_local4].buff_quickness = Math.max(_local7[_local4].buff_quickness, _arg2.buff_quickness); initDisplay.updateIcon(_local7[_local4]); _local16 = true; }; if (_arg2.buff_damage > _local7[_local4].buff_damage){ _local7[_local4].buff_damage = _arg2.buff_damage; }; if (_arg2.buff_accuracy){ _local7[_local4].buff_accuracy = Math.max(_local7[_local4].buff_accuracy, _arg2.buff_accuracy); }; if (_arg2.resurrects){ if (_local7[_local4].health <= 0){ _local8[_local4].setAlive(); _local15 = true; }; }; _local42 = _local7[_local4].poisoned; if (_local40){ _local8[_local4].setHealthPreview(-(_local40)); }; _local43 = 0; if (_local41){ _local43 = doSkillDamage(_arg1, _local7[_local4], _local41, _arg2); }; if (_local23){ _local8[_local4].setPowerPreview(_local23); }; _local44 = _local7[_local4].reducePower(_local23); _local11 = (_local11 + _local43); _local13 = (_local13 + _local44); _local12 = (_local12 + _local7[_local4].increaseHealth(_local40, _arg2.resurrects)); if (_arg2.stun_percent){ _local46 = (_arg2.stun_percent + _arg1.getStunChance()); if (_arg3.invulnerable){ _local46 = 0; }; if (DungeonMain.RandomNum(1, 100) <= _local46){ _local8[_local4].stunAnim(); _local7[_local4].stun(1); if (!_arg2.suppressStunAnim){ _local8[_local4].checkStun(); }; }; }; if (_arg2.poisonDamage){ if (_local7[_local4].poison((_arg2.scalePoison() + _arg1.getPoisonDamage()))){ _local8[_local4].setPoisoned(true); }; }; if (_arg2.damageAccuracy){ _local7[_local4].accuracy_penalty = Math.max(_local7[_local4].accuracy_penalty, (_arg2.damageAccuracy + _arg1.getAccuracyDamage())); }; if (_local15){ CalculateInitiative(false); initDisplay.insertChar(_local7[_local4], speedlist[turn]); }; if (((((_arg2.gainPowerFromKill) && (_local43))) && (!(_local7[_local4].health)))){ _local21.setPowerPreview(-(_arg2.gainPowerFromKill)); _arg1.increasePower(_arg2.gainPowerFromKill); }; addPortraitAnim(_local7[_local4], _local8[_local4], _arg2, _arg1); if (_local42 < _local7[_local4].poisoned){ _local8[_local4].addPortraitAnimation(PortraitAnimation.poison); }; if (_arg2.removesPoison){ _local7[_local4].poisoned = 0; _local8[_local4].setPoisoned(false); }; if (((_arg2.powerDrain) && (_local44))){ _local21.setPowerPreview(-(_local44)); _arg1.increasePower(_local44); _local21.addPortraitAnimation(PortraitAnimation.gainPower); }; if (_arg2.transformCreatureClass != null){ _local47 = _arg2.transformCreatureClass; _local47.pos = _local7[_local4].pos; if ((_local7[_local4] is MonsterCharacter)){ replaceChar(_local7[_local4], _local47); _local48 = _local8[_local4]; _local48.setChar(_local47, true); _local48.addPortraitAnimation(PortraitAnimation.transform); if (_local7[_local4] == speedlist[turn]){ speedlist[turn] = _local47; }; _local7[_local4] = _local47; _local7[_local4].clearStatusEffects(); _local16 = true; }; }; }; }; }; }; }; _local4++; }; _local19 = (((_arg1.charname + " ") + _arg2.verbage) + "!"); if (_local13 > 0){ _local49 = (_local13 + " power "); if (_arg2.powerDrain){ _local49 = (_local49 + "drained"); } else { _local49 = (_local49 + "damage"); }; _local20 = _local49; } else { if (_local13 < 0){ _local50 = (-(_local13) + " power restored"); _local20 = _local50; }; }; if (((_arg2.healing) || (_local24))){ _local20 = (_local12 + " damage healed"); }; if (((_local17) && (_local22))){ if (_local14){ _local20 = "(Miss)"; } else { _local20 = String(_local11); }; } else { if (((_arg2.damage) || (_local22))){ _local20 = (_local11 + " damage"); }; }; if (((_local7.length) && ((_local14 == _local7.length)))){ _local20 = "Miss!"; dm.sound.playMissSound(_arg2, _arg1); } else { dm.sound.playSoundForSkill(_arg2, _arg1); }; messages.addMessage(_local19, _local20); if (((!(_local15)) && (!(_local16)))){ initDisplay.removeDead(); }; if (_local16){ if (CalculateInitiative(false)){ initDisplay.refill(speedlist[turn]); }; }; UpdateInfoPanels(); EndTurn(); doLethalAnim = false; } function clickRetreat(_arg1:MouseEvent):void{ if ((speedlist[turn] is PlayerCharacter)){ if (PlayerCharacter(speedlist[turn]).canQuickRetreat()){ RetreatCharacter(speedlist[turn]); } else { PlayerCharacter(speedlist[turn]).retreating = true; messages.addMessage((speedlist[turn].charname + " is retreating."), ""); PortraitFromCharacter(speedlist[turn]).updateBars(); EndTurn(); }; }; } private function CanPlayerHit(_arg1:PlayerCharacter, _arg2:MonsterCharacter):Boolean{ var _local3:*; var _local4:*; var _local5:*; _local5 = 0; if (IsPlayerMeleeBlocked(_arg1)){ return (false); }; if (((!((damageSpongeMonster == null))) && ((_arg2 == damageSpongeMonster)))){ return (true); }; if (_arg2.pos > 3){ if ((((((((((((_arg2.pos == _arg1.pos)) || ((_arg2.pos == (_arg1.pos + 1))))) || ((_arg2.pos == (_arg1.pos - 1))))) || ((_arg2.pos == (_arg1.pos + 4))))) || ((_arg2.pos == (_arg1.pos + 3))))) || ((_arg2.pos == (_arg1.pos + 2))))){ return (true); }; return (false); //unresolved jump }; _local3 = 0; while (_local3 < 3) { if (combat_grid[_local3][1] != null){ if ((((Character(combat_grid[_local3][1]).health > 0)) && (!(Character(combat_grid[_local3][1]).hiding)))){ _local5++; }; }; _local3++; }; if (_local5){ return (false); }; if ((((((((((((_arg2.pos == _arg1.pos)) || ((_arg2.pos == (_arg1.pos + 1))))) || ((_arg2.pos == (_arg1.pos - 1))))) || ((_arg2.pos == (_arg1.pos - 4))))) || ((_arg2.pos == (_arg1.pos - 3))))) || ((_arg2.pos == (_arg1.pos - 2))))){ return (true); }; return (false); } private function areEnemies(_arg1:Character, _arg2:Character):Boolean{ if ((((_arg1 is PlayerCharacter)) && ((_arg2 is MonsterCharacter)))){ return (true); }; if ((((_arg1 is MonsterCharacter)) && ((_arg2 is PlayerCharacter)))){ return (true); }; return (false); } private function skillBeneficial(_arg1:Skill, _arg2:Character):Boolean{ var _local3:Character; _local3 = _arg1.char_ref; if (((_arg1.damage) && (areEnemies(_arg2, _local3)))){ return (true); }; if (((_arg1.vampiric_percent) && ((_local3.health < _local3.health_max)))){ return (true); }; if (((_arg1.healing) && ((_arg2.health < _arg2.health_max)))){ return (true); }; if (((_arg1.powerRestore) && ((_arg2.power < _arg2.power_max)))){ return (true); }; if ((_arg1.tempDamageResistance > _arg2.temp_damage_resistance)){ return (true); }; if (((_arg1.powerDamage) && (_arg2.power))){ return (true); }; if (((_arg1.powerDrain) && ((_local3.power < _local3.power_max)))){ return (true); }; if (_arg1.clonesPlayers){ return (true); }; if (_arg1.transformCreatureClass != null){ return (true); }; if (((_arg1.cancelPowerRegen) && (!(_arg2.cancelPowerRegen)))){ return (true); }; if (((((_arg1.stun_percent) && (!(_arg2.stunned_duration)))) && ((_arg2.getStunResist() < 100)))){ return (true); }; if (((_arg1.poisonDamage) && ((_arg2.getPoisonResist() < 100)))){ return (true); }; if (((((_arg1.lethality) || (_arg1.addsPowerToLethality))) && (!(_arg2.lethalityImmune)))){ return (true); }; if (((_arg1.removesCurse) && (_arg2.cursed))){ return (true); }; if (((_arg1.removesPoison) && (_arg2.poisoned))){ return (true); }; if (((_arg1.cannotDie) && (!(_arg2.cannotDie)))){ return (true); }; if (((_arg1.invulnerable) && (!(_arg2.invulnerable)))){ return (true); }; if (((_arg1.hidesTarget) && (!(_arg2.hiding)))){ return (true); }; if (_arg1.damageAccuracy > _arg2.accuracy_penalty){ return (true); }; if (_arg1.crippling > _arg2.crippled){ return (true); }; if (_arg1.buff_resistPoison > _arg2.buff_resistPoison){ return (true); }; if (_arg1.buff_resistStun > _arg2.buff_resistStun){ return (true); }; if (_arg1.buff_damageResist > _arg2.buff_damageResist){ return (true); }; if (_arg1.buff_damageReflect > _arg2.buff_damageReflect){ return (true); }; if (_arg1.buff_healthRegen > _arg2.buff_healthRegen){ return (true); }; if (_arg1.buff_powerRegen > _arg2.buff_powerRegen){ return (true); }; if (_arg1.buff_vampiric > _arg2.buff_vampiric){ return (true); }; if (_arg1.buff_stun > _arg2.buff_stun){ return (true); }; if (_arg1.buff_quickness > _arg2.buff_quickness){ return (true); }; if (_arg1.buff_damage > _arg2.buff_damage){ return (true); }; if (_arg1.buff_accuracy > _arg2.buff_accuracy){ return (true); }; if (_arg1.buff_quickness > _arg2.buff_quickness){ return (true); }; if (_arg1.targetDamageMod != 1){ if (areEnemies(_local3, _arg2)){ if (_arg1.targetDamageMod < _arg2.damageMod){ return (true); }; } else { if (_arg1.targetDamageMod > _arg2.damageMod){ return (true); }; }; }; if (_arg1.makeDamageSponge){ if ((((_arg2 is PlayerCharacter)) && ((damageSpongePlayer == null)))){ return (true); }; if ((((_arg2 is MonsterCharacter)) && ((damageSpongeMonster == null)))){ return (true); }; }; return (false); } private function EndBattle():void{ var _local1:*; var _local2 = ??pushnamespace ; var _local3:Timer; var _local4:Timer; var _local5:*; _local1 = 0; while (_local1 < pc_party.members.length) { if (pc_party.members[_local1].health <= 0){ } else { _local5 = pc_party.members[_local1].getReplenishing(); if (_local5){ pc_party.members[_local1].increaseHealthByPercentage(_local5); pc_party.members[_local1].increasePowerByPercentage(_local5); }; }; _local1++; }; _local2 = 500; dm.main.battle_theme.fadeOut(_local2); _local3 = new Timer(_local2, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, exitBattleTimer, false, 0, true); _local3.start(); _local4 = new Timer((_local2 - 150), 1); _local4.addEventListener(TimerEvent.TIMER_COMPLETE, exitBlur, false, 0, true); _local4.start(); } private function removePortraitEffected():void{ var _local1:*; var _local2:*; _local1 = 0; while (_local1 < 12) { _local2 = bg.getChildByName(("ei" + _local1)); if (_local2 == null){ } else { bg.removeChild(_local2); }; _local1++; }; } private function convertPlayerPos(_arg1:int):int{ if (_arg1 < 4){ return ((_arg1 + 3)); }; if (_arg1 > 3){ return ((_arg1 - 3)); }; return (0); } private function RetreatCharacter(_arg1:PlayerCharacter):void{ _arg1.retreating = false; _arg1.retreated = true; _arg1.clearStatusEffects(); messages.addMessage((_arg1.charname + " leaves the battle!"), ""); PortraitFromCharacter(_arg1).setRetreated(); initDisplay.removeDead(); EndTurn(); } function mousedOutEvent(_arg1:MouseEvent):void{ hover = null; UpdateInfoPanels(); removePortraitEffected(); initDisplay.setNormalColors(); } function stopDragging(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:EmptyPortrait; var _local7:CharacterPortrait; var _local8:EmptyPortrait; var _local9:int; var _local10:*; var _local11:*; var _local12:*; var _local13:PlayerCharacter; var _local14:CharacterPortrait; _local2 = 0; _local3 = 0; _local4 = 0; _local5 = 500; if (_arg1.currentTarget == null){ return; }; _local7 = CharacterPortrait(_arg1.currentTarget); _local9 = 0; this.addChild(_local7); _local7.stopDrag(); _local10 = (_local7.x + (_local7.width / 2)); _local11 = (_local7.y + (_local7.height / 2)); _local12 = 0; while (_local12 < 6) { _local8 = EmptyPortrait(getChildByName(("pc" + String((_local12 + 1))))); _local2 = (_local8.x + (_local8.width / 2)); _local3 = (_local8.y + (_local8.height / 2)); _local4 = DistanceBetween(_local2, _local3, _local10, _local11); if (_local4 > 80){ } else { if (_local4 < _local5){ _local5 = _local4; _local6 = _local8; _local9 = (_local12 + 1); }; }; _local12++; }; if (_local5 == 500){ _local7.x = EmptyPortrait(getChildByName(("pc" + String(_local7.char_ref.pos)))).x; _local7.y = EmptyPortrait(getChildByName(("pc" + String(_local7.char_ref.pos)))).y; } else { _local13 = pc_party.memberInPos(_local9); _local14 = PortraitFromCharacter(_local13); if (_local13 != null){ _local13.pos = _local7.char_ref.pos; _local14.x = EmptyPortrait(getChildByName(("pc" + String(_local7.char_ref.pos)))).x; _local14.y = EmptyPortrait(getChildByName(("pc" + String(_local7.char_ref.pos)))).y; }; _local7.x = _local6.x; _local7.y = _local6.y; _local7.char_ref.pos = _local9; }; } private function doTurnRegen(_arg1:Character, _arg2:CharacterPortrait):Boolean{ var _local3:*; var _local4:*; var _local5:*; var _local6:String; var _local7:String; _local3 = 0; _local4 = 0; _local4 = _arg1.getPowerRegen(); if (_arg1.cancelPowerRegen){ _local4 = 0; }; _arg1.powerRegenMod = 1; _local3 = _arg1.getHealthRegen(); if (_arg1.poisoned){ _local5 = _arg1.poisoned; _local3 = (_local3 - _local5); _arg2.addPortraitAnimation(PortraitAnimation.poison); _local6 = (((_arg1.charname + " takes ") + _local5) + " damage from poison!"); _local7 = ""; if ((_arg1.health + _local3) <= 0){ _local7 = (_arg1.charname + " has died!"); }; messages.addMessage(_local6, _local7); }; _arg2.setHealthPreview(-(_local3)); _arg2.setPowerPreview(-(_local4)); _arg1.increaseHealth(_local3); _arg1.increasePower(_local4); UpdateInfoPanels(); return (true); } private function validTargetForMonster(_arg1:Character, _arg2:Skill):Boolean{ if (_arg1 != null){ if ((_arg1 is PlayerCharacter)){ if (PlayerCharacter(_arg1).retreated){ return (false); }; if (((!((damageSpongePlayer == null))) && (!((damageSpongePlayer == _arg1))))){ return (false); }; }; if (((_arg2.targetsFriendlyFrontRow) && ((_arg1.pos < 4)))){ return (false); }; if (((_arg2.aiTargetsBackRow) && ((_arg1.pos <= 3)))){ return (false); }; if (((_arg2.makeDamageSponge) && (!((damageSpongeMonster == null))))){ return (false); }; if (((_arg2.targetsStunned) && (!(_arg1.stunned_duration)))){ return (false); }; if (_arg1.hiding){ return (false); }; if (_arg2.resurrects){ if (_arg1.health <= 0){ return (true); }; return (false); }; if (((_arg2.healing) && ((_arg1.health >= _arg1.health_max)))){ return (false); }; if (_arg1.health > 0){ return (true); }; }; return (false); } function exitBattleTimer(_arg1:TimerEvent):void{ dm.main.PostBattle(horde); } private function doSkillDamage(_arg1:Character, _arg2:Character, _arg3:int, _arg4:Skill):int{ var _local5:int; var _local6:*; var _local7:CharacterPortrait; var _local8:*; var _local9:int; var _local10:int; var _local11:*; var _local12:*; _local5 = 0; _local6 = PortraitFromCharacter(_arg2); _local7 = PortraitFromCharacter(_arg1); if (_arg3 <= 0){ return (0); }; _local6.setHealthPreview(_arg3); _local5 = _arg2.reduceHealth(_arg3); if (((_arg1.getStunChance()) && (!(_arg4.stun_percent)))){ _local8 = _arg1.getStunChance(); if (_arg2.invulnerable){ _local8 = 0; }; if (DungeonMain.RandomNum(1, 100) <= _local8){ _local6.stunAnim(); _arg2.stun(1); if (!_arg4.suppressStunAnim){ _local6.checkStun(); }; }; }; if (((_arg1.getPoisonDamage()) && (!(_arg4.poisonDamage)))){ if (_arg2.poison(_arg1.getPoisonDamage())){ PortraitFromCharacter(_arg2).setPoisoned(true); }; }; if (((_arg1.getAccuracyDamage()) && (!(_arg4.damageAccuracy)))){ _arg2.accuracy_penalty = Math.max(_arg2.accuracy_penalty, (_arg4.damageAccuracy + _arg1.getAccuracyDamage())); }; if (_local5){ if (((_arg4.vampiric_percent) || (_arg1.getVampiric()))){ _local9 = (_arg4.vampiric_percent + _arg1.getVampiric()); _local10 = ((_local9 / 100) * _local5); _local7.setHealthPreview(-(_local10)); _arg1.increaseHealth(_local10); _local7.addPortraitAnimation(PortraitAnimation.gainHealth); }; if (((((_arg2.getDamageReflection()) || (_arg1.cursed))) && (_local5))){ _local11 = Math.round((_local5 * (_arg2.getDamageReflection() / 100))); if (_arg1.cursed){ _local12 = Math.round((_arg1.cursed * _local5)); if (_local12 > 0){ _local11 = (_local11 + _local12); _local7.addPortraitAnimation(PortraitAnimation.curse); }; }; _local7.setHealthPreview(_local11); _arg1.reduceHealth(_local11); }; }; return (_local5); } private function RunTurn():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:Timer; var _local8:Timer; var _local9:Skill; var _local10:*; var _local11:Array; var _local12:Character; var _local13:Character; var _local14:int; var _local15:*; var _local16:*; var _local17:*; var _local18:*; var _local19:*; var _local20:*; var _local21:SkillIcon; var _local22:*; while ((((speedlist[turn].health <= 0)) || ((((speedlist[turn] is PlayerCharacter)) && (speedlist[turn].retreated))))) { IncrementTurn(); }; if (speedlist[turn].temp_damage_resistance){ speedlist[turn].temp_damage_resistance = 0; }; if (speedlist[turn].cannotDie){ speedlist[turn].cannotDie--; }; if (speedlist[turn].invulnerable){ speedlist[turn].invulnerable--; }; if (speedlist[turn].hiding){ speedlist[turn].hiding = false; PortraitFromCharacter(speedlist[turn]).setHiding(false); }; if (((!((damageSpongeMonster == null))) && ((damageSpongeMonster.health <= 0)))){ damageSpongeMonster = null; }; if (((!((damageSpongePlayer == null))) && ((damageSpongePlayer.health <= 0)))){ damageSpongePlayer = null; }; _local4 = speedlist[turn]; _local5 = PortraitFromCharacter(_local4); usedSkill = false; if ((_local4 is PlayerCharacter)){ phl.x = EmptyPortrait(getChildByName(("pc" + _local4.pos))).x; phl.y = EmptyPortrait(getChildByName(("pc" + _local4.pos))).y; if (damageSpongePlayer == _local4){ damageSpongePlayer = null; }; } else { phl.x = EmptyPortrait(getChildByName(("npc" + _local4.pos))).x; phl.y = EmptyPortrait(getChildByName(("npc" + _local4.pos))).y; if (damageSpongeMonster == _local4){ damageSpongeMonster = null; }; }; UpdateInfoPanels(); if ((((speedlist[turn] is MonsterCharacter)) && (hadMonsterDelay))){ } else { _local6 = doTurnRegen(_local4, _local5); if (!_local6){ return; }; }; if (_local4.stunned_duration > 0){ _local4.stunned_duration--; _local5.addAnimationFrame(stunned_animation_frame, (PASS_TURN_DELAY + 500)); messages.addMessage((speedlist[turn].charname + " is stunned!"), ""); EndTurn(); return; }; if ((((speedlist[turn] is MonsterCharacter)) && (!(hadMonsterDelay)))){ _local7 = new Timer(300, 1); _local7.addEventListener(TimerEvent.TIMER_COMPLETE, monsterTurnDelayComplete, false, 0, true); _local7.start(); return; }; hadMonsterDelay = false; if ((_local4 is PlayerCharacter)){ if (_local4.retreating){ RetreatCharacter(_local4); return; }; if (retreatAll){ clickRetreat(null); return; }; }; if ((speedlist[turn] is PlayerCharacter)){ _local8 = new Timer(500, 1); _local8.addEventListener(TimerEvent.TIMER_COMPLETE, playerRegenShown, false, 0, true); _local8.start(); }; if ((_local4 is MonsterCharacter)){ if (!_local4.skills.length){ PassTurn(); return; }; _local10 = null; _local11 = new Array(0); _local14 = 0; if (MonsterCharacter(_local4).mindless){ _local1 = 0; while (_local1 < _local4.skills.length) { _local9 = _local4.skills[_local1]; _local10 = findMonsterTargets(_local4, _local9); if (_local9.makeDamageSponge){ _local15 = 0; _local16 = 0; while (_local16 < horde.members.length) { if (horde.members[_local16].health > 0){ _local15++; }; _local16++; }; if ((((_local10.length > 1)) || ((_local15 > 1)))){ _local11.push(_local9); }; } else { if (_local10.length >= 1){ _local11.push(_local9); }; }; _local1++; }; if (!_local11.length){ PassTurn(); return; }; if (_local11.length == 1){ _local9 = _local11[0]; } else { _local9 = _local11[DungeonMain.RandomNum(0, (_local11.length - 1))]; }; _local10 = findMonsterTargets(_local4, _local9); _local13 = _local10[0]; if (((_local9.targetsFriendlies) && ((_local10.length > 1)))){ if (_local9.makeDamageSponge){ _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].getEffectiveHealth() > _local14){ _local14 = _local10[_local1].getEffectiveHealth(); _local13 = _local10[_local1]; }; _local1++; }; } else { if (_local9.damage){ _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].health > _local14){ _local14 = _local10[_local1].health; _local13 = _local10[_local1]; }; _local1++; }; } else { if (_local9.healing){ _local14 = 9999; _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].health < _local14){ _local14 = _local10[_local1].health; _local13 = _local10[_local1]; }; _local1++; }; }; }; }; _local12 = _local13; } else { _local12 = _local10[DungeonMain.RandomNum(0, (_local10.length - 1))]; }; } else { _local1 = 0; while (_local1 < _local4.skills.length) { _local9 = _local4.skills[_local1]; _local10 = findMonsterTargets(_local4, _local9); if (_local10.length >= 1){ _local11.push(_local9); }; _local1++; }; if (!_local11.length){ PassTurn(); return; }; if (_local11.length == 1){ _local9 = _local11[0]; } else { _local17 = false; _local1 = 0; while (_local1 < _local11.length) { if (_local11[_local1].aiLowestPriority){ _local11.splice(_local1, 1); _local1--; } else { if (_local11[_local1].aiTopPriority){ _local9 = _local11[_local1]; _local17 = true; break; } else { if (((_local11[_local1].makeDamageSponge) && ((damageSpongeMonster == null)))){ _local9 = _local11[_local1]; _local17 = true; break; }; }; }; _local1++; }; if (!_local17){ _local9 = _local11[DungeonMain.RandomNum(0, (_local11.length - 1))]; }; if (((!(_local9.power_cost)) && ((DungeonMain.RandomNum(0, 500) > 250)))){ _local1 = 0; while (_local1 < _local11.length) { if (((_local11[_local1].power_cost) && (!(_local11[_local1].aiCastCount)))){ _local9 = _local11[_local1]; if (DungeonMain.RandomNum(0, 500) > 250){ break; }; }; _local1++; }; }; }; _local10 = findMonsterTargets(_local4, _local9); _local13 = _local10[0]; if (((_local9.targetsFriendlies) && ((_local10.length > 1)))){ if (_local9.makeDamageSponge){ _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].getEffectiveHealth() > _local14){ _local14 = _local10[_local1].getEffectiveHealth(); _local13 = _local10[_local1]; }; _local1++; }; } else { if (((_local9.damage) || (_local9.aiTargetHealthiest))){ _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].health > _local14){ _local14 = _local10[_local1].health; _local13 = _local10[_local1]; }; _local1++; }; } else { if (_local9.healing){ _local14 = 9999; _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].health < _local14){ _local14 = _local10[_local1].health; _local13 = _local10[_local1]; }; _local1++; }; }; }; }; _local12 = _local13; } else { _local18 = false; if (_local9.damage){ if (_local9.aiTargetHealthiest){ _local14 = 0; _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].health > _local14){ _local14 = _local10[_local1].health; _local13 = _local10[_local1]; }; _local1++; }; } else { _local14 = 9999; _local1 = 0; while (_local1 < _local10.length) { if (_local10[_local1].getEffectiveHealth() < _local9.damage){ _local12 = _local10[_local1]; _local18 = true; break; } else { if (_local10[_local1].getEffectiveHealth() < _local14){ _local14 = _local10[_local1].getEffectiveHealth(); _local13 = _local10[_local1]; }; }; _local1++; }; }; if (!_local18){ _local12 = _local13; }; }; if (!_local18){ _local12 = _local10[DungeonMain.RandomNum(0, (_local10.length - 1))]; }; }; }; if (((!((_local9 == null))) && (!((_local12 == null))))){ useMonsterSkill(_local9, _local12); } else { PassTurn(); }; } else { if ((_local4 is PlayerCharacter)){ actionsbar.retreat_skill.setSkill(new sRetreat(_local4)); actionsbar.retreat_all_skill.setSkill(new sRetreatAll(_local4)); actionsbar.pass_skill.setSkill(new sPassTurn(_local4)); if (!this.contains(actionsbar)){ addChild(actionsbar); }; this.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelEvent); stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); _local19 = skillbar.x; _local20 = skillbar.y; skillbar = null; skillbar = new SkillBar(); skillbar.x = _local19; skillbar.y = _local20; skillbar.name = "skillbar"; addChild(skillbar); _local1 = 0; while (_local1 < _local4.skills.length) { if (_local4.skills[_local1].active == false){ } else { _local21 = new SkillIcon(); _local21.setSkill(_local4.skills[_local1]); _local21.setOwner(PlayerCharacter(_local4)); skillbar.addIcon(_local21); }; _local1++; }; powerPreview(); ValidTargetsForPlayer(skillbar.getSelectedSkill()); if (hover != null){ drawEffectedTargets(); }; if (((DungeonMain.showHints) && (!(Dungeon.hintShown(64))))){ _local22 = new HintDialog("Player Turn", "It is your character's turn. A turn involves selecting a skill and then a target for the skill. Player characters start with three skills, but may later use up to six.\n\nIf you do not (or cannot) use a skill this turn, you may also Pass or Retreat. Pass means the character takes no action, but recovers power more quickly. Retreat causes the character to leave the battle, and can prevent the total defeat of the party.", true, true); DungeonMain.hints = (DungeonMain.hints + 64); stage.addChild(_local22); dm.main.saveInterface(); }; }; }; } function unBlurStep(_arg1:TimerEvent):void{ setBlur((currentBlur - Math.round((max_blur / blur_steps)))); } private function addPortraitAnim(_arg1:Character, _arg2:CharacterPortrait, _arg3:Skill, _arg4:Character):void{ if (showImmune(_arg1, _arg2, _arg3, _arg4)){ _arg2.addAnimationFrame(immune_animation_frame, 1500); } else { if (_arg3.hasPortraitAnimation){ _arg2.addAnimationFrame(_arg3.portraitAnimationFrame, _arg3.portraitAnimationDuration); }; if (((_arg3.showWeaponAnimation) && (_arg4.skills[0].specialAnimation))){ _arg2.addPortraitAnimation(_arg4.skills[0].specialAnimation); }; if (_arg3.specialAnimation){ _arg2.addPortraitAnimation(_arg3.specialAnimation); }; if (doLethalAnim){ _arg2.addPortraitAnimation(PortraitAnimation.lethal); doLethalAnim = false; }; }; } private function bonusAttackOn(_arg1:Character){ var _local2:Array; var _local3:*; var _local4:*; if (_arg1 == null){ return; }; if (_arg1.health <= 0){ return; }; _local2 = new Array(); if ((_arg1 is MonsterCharacter)){ _local3 = 0; for (;_local3 < pc_party.members.length;_local3++) { if (pc_party.members[_local3].health <= 0){ } else { if (pc_party.members[_local3] == speedlist[turn]){ } else { if (pc_party.members[_local3].retreated){ } else { if (pc_party.members[_local3].retreating){ } else { if (pc_party.members[_local3].stunned_duration){ } else { if (pc_party.members[_local3].gear[Equipment.weapon] == null){ } else { if ((((pc_party.members[_local3].gear[Equipment.weapon] is RangedWeapon)) || ((pc_party.members[_local3].gear[Equipment.weapon] is MageWeapon)))){ _local2.push(pc_party.members[_local3]); } else { if (CanPlayerHit(pc_party.members[_local3], MonsterCharacter(_arg1))){ _local2.push(pc_party.members[_local3]); } else { continue; }; }; }; }; }; }; }; }; }; if (_local2.length){ bonusAttackPending = false; _local4 = DungeonMain.RandomNum(0, (_local2.length - 1)); phl.x = EmptyPortrait(getChildByName(("pc" + _local2[_local4].pos))).x; phl.y = EmptyPortrait(getChildByName(("pc" + _local2[_local4].pos))).y; UpdateInfoPanels(); useSkill(_local2[_local4], PlayerCharacter(_local2[_local4]).skills[0], _arg1); }; }; } private function combatGridToPos(_arg1:int, _arg2:int):int{ if ((((_arg2 < 2)) && ((_arg2 >= 0)))){ return (((_arg1 + 1) + (_arg2 * 3))); }; if (_arg2 < 4){ return (((_arg1 + 1) + ((_arg2 - 2) * 3))); }; return (-1); } private function RemoveTargetInfo(){ var _local1:*; var _local2:PortraitHighlight; _local1 = 0; while (_local1 < npc_portraits.length) { npc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, clickAttack); _local2 = PortraitHighlight(npc_portraits[_local1].getChildByName("highlight")); if (_local2 != null){ npc_portraits[_local1].removeChild(_local2); _local2 = null; }; _local1++; }; _local1 = 0; while (_local1 < pc_portraits.length) { pc_portraits[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, clickAttack); _local2 = PortraitHighlight(pc_portraits[_local1].getChildByName("highlight")); if (_local2 != null){ pc_portraits[_local1].removeChild(_local2); _local2 = null; }; _local1++; }; removePortraitEffected(); } function monsterTurnDelayComplete(_arg1:Event):void{ hadMonsterDelay = true; if (speedlist[turn].health <= 0){ PortraitFromCharacter(speedlist[turn]).updateBars(); initDisplay.removeDead(); EndTurn(); return; }; RunTurn(); } private function validCharFromGrid(_arg1:int, _arg2:int):Character{ if (_arg1 > 2){ return (null); }; if (_arg1 < 0){ return (null); }; if (_arg2 < 0){ return (null); }; if (_arg2 > 3){ return (null); }; return (combat_grid[_arg1][_arg2]); } private function useMonsterSkill(_arg1:Skill, _arg2:Character){ PortraitFromCharacter(speedlist[turn]).setPowerPreview(_arg1.power_cost); useSkill(speedlist[turn], _arg1, _arg2); _arg1.aiCastCount++; } private function createClone(_arg1:PlayerCharacter):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Boolean; var _local7:*; _local2 = false; _local3 = 0; _local4 = _arg1.getEvilClone(); if (_arg1.pos < 4){ _local4.pos = (_arg1.pos + 3); } else { if (_arg1.pos != 5){ _local4.pos = (_arg1.pos - 3); } else { _local6 = (_arg1.pos < 4); _local7 = pc_party.findEmptySlot(_local6); if (!_local7){ return; }; _local4.pos = convertPlayerPos(_local7); }; }; AddCharToCombatGrid(_local4); horde.members.push(_local4); _local5 = addMonsterPortrait(_local4); _local5.setClone(); } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.SPACE){ PassTurn(); } else { if (_arg1.charCode == 114){ clickRetreat(null); } else { if (((DungeonMain.debug) && ((_arg1.charCode == 107)))){ speedlist[turn].health = 0; initDisplay.removeDead(); EndTurn(); }; }; }; } private function battleReady(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; turn = 0; phl = new CurrentPortraitHighlight(); addChild(phl); messages.removeEventListener(MouseEvent.MOUSE_DOWN, battleReady); messages.clearAll(); _local2 = 0; while (_local2 < pc_party.members.length) { pc_portraits[_local2].removeEventListener(MouseEvent.MOUSE_DOWN, startDragging); pc_portraits[_local2].removeEventListener(MouseEvent.MOUSE_UP, stopDragging); if (this.contains(pc_portraits[_local2])){ removeChild(pc_portraits[_local2]); }; pc_portraits[_local2].x = 0; pc_portraits[_local2].y = 0; _local5 = EmptyPortrait(getChildByName(("pc" + String(pc_party.members[_local2].pos)))); if (_local5 != null){ _local5.empty.addChild(pc_portraits[_local2]); }; _local2++; }; actionsbar.pass_skill.addEventListener(MouseEvent.MOUSE_DOWN, clickPassTurn); actionsbar.retreat_skill.addEventListener(MouseEvent.MOUSE_DOWN, clickRetreat); actionsbar.retreat_all_skill.addEventListener(MouseEvent.MOUSE_DOWN, clickRetreatAll); UpdateInfoPanels(); UpdateCombatGrid(); this.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelEvent); RunTurn(); } function blurStep(_arg1:TimerEvent):void{ setBlur((currentBlur + Math.round((max_blur / blur_steps)))); } function clickPassTurn(_arg1:MouseEvent):void{ if ((speedlist[turn] is PlayerCharacter)){ PassTurn(); }; } private function showImmune(_arg1:Character, _arg2:CharacterPortrait, _arg3:Skill, _arg4:Character):Boolean{ if (!_arg1.invulnerable){ return (false); }; if (_arg4 == _arg1){ return (false); }; if (_arg3.damage){ return (true); }; if (_arg3.stun_percent){ return (true); }; if (_arg3.poisonDamage){ return (true); }; return (false); } private function findMonsterTargets(_arg1:MonsterCharacter, _arg2:Skill):Array{ var _local3:*; var _local4:*; var _local5:*; var _local6:Array; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:Array; var _local13:*; _local6 = new Array(0); _local9 = 0; _local10 = 0; _local11 = _arg1.pos; if (!_arg1.hasPowerForSkill(_arg2)){ return (_local6); }; if (((!((_arg2.aiCastLimit == -1))) && ((_arg2.aiCastCount >= _arg2.aiCastLimit)))){ return (_local6); }; if (((_arg2.aiNotUnlessHurt) && ((_arg1.health == _arg1.health_max)))){ return (_local6); }; if (((_arg2.aiNotUnlessLowPower) && ((_arg1.power > 20)))){ return (_local6); }; if (_local11 > 3){ _local9 = (_local11 % 4); } else { _local9 = (_local11 - 1); }; _local10 = (Math.ceil((_local11 / 3)) - 1); if (_arg2.targetsEmpty){ if (_arg2.summonsCreatureClass != null){ if (horde.members.length < 6){ _local6.push(_arg1); return (_local6); }; }; } else { if (_arg2.hitsAllFriendlies){ _local3 = 0; while (_local3 < horde.members.length) { if (validTargetForMonster(horde.members[_local3], _arg2)){ if (horde.members[_local3] != _arg1){ _local6.push(horde.members[_local3]); }; }; _local3++; }; } else { if (_arg2.targetsFriendlies){ _local3 = 0; while (_local3 < horde.members.length) { if (validTargetForMonster(horde.members[_local3], _arg2)){ if (horde.members[_local3] != _arg1){ _local6.push(horde.members[_local3]); }; }; _local3++; }; } else { if (_arg2.targetsSelf){ if (((!(_arg2.aiAllowSuicide)) && ((_arg1.health <= _arg2.damage)))){ return (_local6); }; _local6.push(_arg1); } else { if (_arg2.rangedAttack){ _local3 = 0; while (_local3 < pc_party.members.length) { if (validTargetForMonster(pc_party.members[_local3], _arg2)){ _local6.push(pc_party.members[_local3]); }; _local3++; }; } else { _local13 = false; if (_local11 < 4){ _local3 = 0; while (_local3 < 3) { if (combat_grid[_local3][1] != null){ if ((((combat_grid[_local3][1].health > 0)) && (!(combat_grid[_local3][1].hiding)))){ _local13 = true; }; }; _local3++; }; }; if (damageSpongePlayer != null){ _local6.push(damageSpongePlayer); }; if ((((_local11 > 3)) || ((((_local11 < 4)) && (!(_local13)))))){ _local7 = 0; _local3 = 0; while (_local3 < 3) { if (validTargetForMonster(combat_grid[_local3][2], _arg2)){ _local7++; _local5 = Character(combat_grid[_local3][2]); }; _local3++; }; if (_local7 == 1){ _local6.push(_local5); } else { if (_local7 > 0){ if (validTargetForMonster(combat_grid[_local9][2], _arg2)){ _local6.push(combat_grid[_local9][2]); }; if ((_local9 - 1) >= 0){ if (validTargetForMonster(combat_grid[(_local9 - 1)][2], _arg2)){ _local6.push(combat_grid[(_local9 - 1)][2]); }; }; if ((_local9 + 1) < 3){ if (validTargetForMonster(combat_grid[(_local9 + 1)][2], _arg2)){ _local6.push(combat_grid[(_local9 + 1)][2]); }; }; } else { if (_local7 == 0){ _local8 = 0; _local3 = 0; while (_local3 < 3) { if (validTargetForMonster(combat_grid[_local3][3], _arg2)){ _local8++; _local5 = Character(combat_grid[_local3][3]); }; _local3++; }; if (_local8 == 1){ _local6.push(_local5); } else { if (_local8 > 0){ if (validTargetForMonster(combat_grid[_local9][3], _arg2)){ _local6.push(combat_grid[_local9][3]); }; if ((_local9 - 1) >= 0){ if (validTargetForMonster(combat_grid[(_local9 - 1)][3], _arg2)){ _local6.push(combat_grid[(_local9 - 1)][3]); }; }; if ((_local9 + 1) < 3){ if (validTargetForMonster(combat_grid[(_local9 + 1)][3], _arg2)){ _local6.push(combat_grid[(_local9 + 1)][3]); }; }; }; }; }; }; }; }; }; }; }; }; }; _local12 = new Array(); _local3 = 0; while (_local3 < _local6.length) { if (skillBeneficial(_arg2, _local6[_local3])){ _local12.push(_local6[_local3]); }; _local3++; }; return (_local12); } public function layoutBoard(){ var _local1:EmptyPortrait; var _local2:int; var _local3:int; var _local4:*; var _local5:*; var _local6:*; var _local7:*; turn = -1; _local2 = 0; while (_local2 < pc_party.members.length) { pc_party.members[_local2].retreating = false; pc_party.members[_local2].retreated = false; _local6 = pc_party.members[_local2].gear[Equipment.weapon]; if (_local6 != null){ if ((_local6 is MeleeWeapon)){ pc_party.members[_local2].skills[0] = new sWeaponAttack(pc_party.members[_local2]); } else { if ((_local6 is RangedWeapon)){ pc_party.members[_local2].skills[0] = new sRangedAttack(pc_party.members[_local2]); } else { if ((_local6 is MageWeapon)){ pc_party.members[_local2].skills[0] = new sMageAttack(pc_party.members[_local2]); }; }; }; pc_party.members[_local2].skills[0].active = true; } else { pc_party.members[_local2].skills[0] = new sUnarmedAttack(pc_party.members[_local2]); pc_party.members[_local2].skills[0].active = true; }; _local7 = new CharacterPortrait(); _local7.setChar(pc_party.members[_local2]); if (pc_party.members[_local2].pos == 0){ pc_party.setMemberPos(_local2, (_local2 + 1)); }; _local1 = EmptyPortrait(getChildByName(("pc" + String(pc_party.members[_local2].pos)))); _local7.x = _local1.x; _local7.y = _local1.y; this.addChild(_local7); _local7.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); _local7.addEventListener(MouseEvent.MOUSE_UP, stopDragging); _local7.addEventListener(MouseEvent.MOUSE_OVER, mousedOverEvent); _local7.addEventListener(MouseEvent.MOUSE_OVER, mouseMoveEvent); _local7.addEventListener(MouseEvent.MOUSE_OUT, mousedOutEvent); pc_portraits.push(_local7); _local2++; }; _local2 = 0; while (_local2 < horde.members.length) { addMonsterPortrait(horde.members[_local2]); _local2++; }; _local4 = "Adjust Party Formation"; _local5 = "Click here when ready to begin battle!"; messages.addMessage(_local4, _local5); messages.addEventListener(MouseEvent.MOUSE_DOWN, battleReady); selected_skill_text.text = ""; removeChild(actionsbar); removeChild(skillbar); removeChild(active_info_panel); removeChild(target_info_panel); CalculateInitiative(); initDisplay.turnOf(speedlist[0], false); } private function setBlur(_arg1:int):void{ var _local2:BlurFilter; _local2 = new BlurFilter(); _local2.blurX = _arg1; _local2.blurY = _arg1; _local2.quality = BitmapFilterQuality.LOW; this.filters = [_local2]; currentBlur = _arg1; } function clickAttack(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:Character; var _local5:*; _local4 = Character(CharacterPortrait(_arg1.currentTarget).char_ref); _local5 = skillbar.getSelectedSkill(); RemoveTargetInfo(); useSkill(speedlist[turn], _local5, _local4); } private function CalculateInitiative(_arg1:Boolean=true):Boolean{ var _local2:*; var _local3:*; var _local4:Array; var _local5:int; var _local6:int; var _local7:*; var _local8:*; var _local9:*; var _local10:Array; var _local11:*; var _local12:*; var _local13:*; _local4 = pc_party.members.concat(horde.members); _local7 = 0; _local8 = speedlist[turn]; _local9 = -1; _local10 = speedlist; speedlist = new Array(_local4.length); _local2 = 0; while (_local2 < speedlist.length) { _local5 = 0; _local6 = 0; _local3 = 0; while (_local3 < speedlist.length) { if (_local4[_local3] == null){ } else { _local12 = 0; _local12 = _local4[_local3].getQuickness(); if (_local12 >= _local6){ _local6 = _local12; _local5 = _local3; }; }; _local3++; }; speedlist[_local2] = _local4[_local5]; if (speedlist[_local2] == _local8){ _local9 = _local2; }; _local4.splice(_local5, 1); _local7++; _local2++; }; speedlist.length = _local7; if (!_arg1){ if (_local9 != -1){ turn = _local9; }; }; initDisplay.setData(speedlist); _local11 = false; if (_local10.length != speedlist.length){ _local11 = true; } else { _local13 = 0; while (_local13 < _local10.length) { if (_local10[_local13] != speedlist[_local13]){ _local11 = true; break; }; _local13++; }; }; return (_local11); } private function entryBlur():void{ var _local1:Timer; setBlur(max_blur); _local1 = new Timer(50, blur_steps); _local1.addEventListener(TimerEvent.TIMER, unBlurStep, false, 0, true); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, unBlurDone, false, 0, true); _local1.start(); } function startDragging(_arg1:MouseEvent):void{ stage.addChild(CharacterPortrait(_arg1.currentTarget)); CharacterPortrait(_arg1.currentTarget).startDrag(); } public static function DistanceBetween(_arg1:int, _arg2:int, _arg3:int, _arg4:int):int{ var _local5:*; var _local6:*; _local5 = Math.abs((_arg1 - _arg3)); _local6 = Math.abs((_arg2 - _arg4)); return (Math.sqrt(((_local5 * _local5) + (_local6 * _local6)))); } } }//package
Section 24
//BattleInfoPanel (BattleInfoPanel) package { import flash.text.*; import flash.display.*; public class BattleInfoPanel extends MovieClip { const color_green:uint = 52275; const color_white:uint = 0xFFFFFF; const color_red:uint = 0xE90000; public var large_portrait:CharGraphic; public var poison_resist_number:TextField; public var name_label:TextField; public var accuracy_number:TextField; public var damage_resist_number:TextField; public var stun_resist_number:TextField; public var health_bar:NumericIndicatorHealth; public var level_label:TextField; var portrait_w;// = 20 public var power_bar:NumericIndicatorPower; var portrait_h;// = 20 public var description_label:TextField; public function BattleInfoPanel(){ portrait_w = 20; portrait_h = 20; super(); portrait_w = large_portrait.width; portrait_h = large_portrait.height; } public function setChar(_arg1:Character):void{ var _local2:*; var _local3:*; var _local4:*; name_label.text = _arg1.charname; level_label.text = ((("Level " + String(_arg1.level)) + " ") + _arg1.classname); UpdateDescription(description_label, _arg1); large_portrait.setFrame(_arg1.portrait); health_bar.bar.width = ((60 / 100) * _arg1.getHealthPercent()); health_bar.numbers.text = ((String(_arg1.health) + "/") + String(_arg1.health_max)); power_bar.bar.width = ((60 / 100) * _arg1.getPowerPercent()); power_bar.numbers.text = ((String(_arg1.power) + "/") + String(_arg1.power_max)); if (getChildByName("health_bar") == null){ addChild(health_bar); }; if (getChildByName("power_bar") == null){ addChild(power_bar); }; accuracy_number.text = (String(_arg1.getAccuracy()) + "%"); damage_resist_number.text = (String(_arg1.getDamageResist()) + "%"); poison_resist_number.text = (String(_arg1.getPoisonResist()) + "%"); stun_resist_number.text = (String(_arg1.getStunResist()) + "%"); _local2 = 0; if ((_arg1 is MonsterCharacter)){ _local2 = MonsterCharacter(_arg1).damage_resistance; } else { if ((_arg1 is PlayerCharacter)){ _local2 = PlayerCharacter(_arg1).getDamageReductionFromArmor(); }; }; _local3 = (_arg1.getPoisonResist() - _arg1.buff_resistPoison); _local4 = (_arg1.getStunResist() - _arg1.buff_resistStun); accuracy_number.textColor = getColorForText(_arg1.accuracy, _arg1.getAccuracy()); damage_resist_number.textColor = getColorForText(_local2, _arg1.getDamageResist()); poison_resist_number.textColor = getColorForText(_local3, _arg1.getPoisonResist()); stun_resist_number.textColor = getColorForText(_local4, _arg1.getStunResist()); } private function getColorForText(_arg1, _arg2):uint{ if (_arg2 > _arg1){ return (color_green); }; if (_arg2 < _arg1){ return (color_red); }; return (color_white); } private function UpdateDescription(_arg1:TextField, _arg2:Character){ var _local3:String; if ((_arg2 is PlayerCharacter)){ _local3 = ""; } else { _local3 = (_arg2.description + "\n "); }; if (_arg2.lethalityImmune){ _local3 = (_local3 + "'Instant Kill' Immunity, "); }; if (((parent) && ((parent is Battlefield)))){ if (((((!((Battlefield(parent).damageSpongePlayer == null))) && ((_arg2 is PlayerCharacter)))) && ((Battlefield(parent).damageSpongePlayer == _arg2)))){ _local3 = (_local3 + "Shielding Allies! "); } else { if (((((!((Battlefield(parent).damageSpongeMonster == null))) && ((_arg2 is MonsterCharacter)))) && ((Battlefield(parent).damageSpongeMonster == _arg2)))){ _local3 = (_local3 + "Shielding Allies! "); }; }; }; if (_arg2.cancelPowerRegen){ _local3 = (_local3 + "No Power Regeneration, "); }; if (_arg2.damageMod != 1){ _local3 = (_local3 + (("Temp Mod Damage(" + Math.round((_arg2.damageMod * 100))) + "%), ")); }; if (_arg2.powerRegenMod != 1){ _local3 = (_local3 + (("Temp Power Regen(" + Math.round((_arg2.powerRegenMod * 100))) + "%), ")); }; if (_arg2.cursed){ _local3 = (_local3 + (("Cursed(" + (_arg2.cursed * 100)) + "%), ")); }; if (_arg2.temp_damage_resistance){ _local3 = (_local3 + (("Temp Damage Resist(" + _arg2.temp_damage_resistance) + "), ")); }; if (_arg2.buff_resistPoison){ _local3 = (_local3 + (("Buff Resist Poison(" + _arg2.buff_resistPoison) + "), ")); }; if (_arg2.buff_resistStun){ _local3 = (_local3 + (("Buff Resist Stun(" + _arg2.buff_resistStun) + "), ")); }; if (_arg2.buff_damageResist){ _local3 = (_local3 + (("Buff Damage Resist(" + _arg2.buff_damageResist) + "), ")); }; if (_arg2.buff_damageReflect){ _local3 = (_local3 + (("Buff Damage Reflect(" + _arg2.buff_damageReflect) + "), ")); }; if (_arg2.buff_healthRegen){ _local3 = (_local3 + (("Buff Health Regen(" + _arg2.buff_healthRegen) + "), ")); }; if (_arg2.buff_powerRegen){ _local3 = (_local3 + (("Buff Power Regen(" + _arg2.buff_powerRegen) + "), ")); }; if (_arg2.buff_vampiric){ _local3 = (_local3 + (("Buff Health Drain(" + _arg2.buff_vampiric) + "), ")); }; if (_arg2.buff_stun){ _local3 = (_local3 + (("Buff Stun Chance(" + _arg2.buff_stun) + "), ")); }; if (_arg2.buff_quickness){ _local3 = (_local3 + (("Buff Quickness(" + _arg2.buff_quickness) + "), ")); }; if (_arg2.buff_damage != 1){ _local3 = (_local3 + (("Buff Damage(+" + (Math.round((_arg2.buff_damage * 100)) - 100)) + "%), ")); }; if (_arg2.buff_accuracy){ _local3 = (_local3 + (("Buff Accuracy(" + _arg2.buff_accuracy) + "), ")); }; if (_arg2.potion_damage_resist){ _local3 = (_local3 + (("Potion Armor(+" + _arg2.potion_damage_resist) + "%), ")); }; if (_arg2.potion_damage_bonus){ _local3 = (_local3 + (("Potion Damage(+" + _arg2.potion_damage_bonus) + "%), ")); }; if (_arg2.potion_poison_resist){ _local3 = (_local3 + (("Potion Poison Resist(+" + _arg2.potion_poison_resist) + "%), ")); }; if (_arg2.potion_stun_resist){ _local3 = (_local3 + (("Potion Stun Resist(+" + _arg2.potion_stun_resist) + "%), ")); }; if (_arg2.potion_quickness_bonus){ _local3 = (_local3 + (("Potion Quickness(+" + _arg2.potion_quickness_bonus) + "), ")); }; if (_arg2.poisoned){ _local3 = (_local3 + (("Poisoned(" + _arg2.poisoned) + "), ")); }; if (_arg2.accuracy_penalty){ _local3 = (_local3 + (("Blinded(" + _arg2.accuracy_penalty) + "), ")); }; if (_arg2.crippled){ _local3 = (_local3 + (("Slowed(" + _arg2.crippled) + "), ")); }; if (_arg2.stunned_duration){ _local3 = (_local3 + (("Stunned(" + _arg2.stunned_duration) + "), ")); }; if (_arg2.cannotDie){ _local3 = (_local3 + (("Defiant(" + _arg2.cannotDie) + "), ")); }; if (_arg2.invulnerable){ _local3 = (_local3 + (("Invulnerable(" + _arg2.invulnerable) + "), ")); }; if ((((_arg2 is PlayerCharacter)) && (PlayerCharacter(_arg2).retreating))){ _local3 = (_local3 + "Retreating, "); }; if ((((_arg2 is PlayerCharacter)) && (PlayerCharacter(_arg2).retreated))){ _local3 = (_local3 + "Retreated, "); }; if (_arg2.hiding){ _local3 = (_local3 + "Hidden, "); }; if (_local3.length > 1){ _local3 = _local3.slice(0, (_local3.length - 2)); }; _arg1.text = _local3; } } }//package
Section 25
//BattleMessageBox (BattleMessageBox) package { import flash.events.*; import flash.text.*; import flash.display.*; public class BattleMessageBox extends MovieClip { public var next_btn:BattleMessageScroller; public var previous_btn:BattleMessageScroller; var messages2:Array; var messages1:Array; var current:int;// = -1 public var line1:TextField; public var line2:TextField; public function BattleMessageBox():void{ current = -1; super(); messages1 = new Array(); messages2 = new Array(); previous_btn.addEventListener(MouseEvent.MOUSE_DOWN, goPrevious); next_btn.addEventListener(MouseEvent.MOUSE_DOWN, goNext); previous_btn.doubleClickEnabled = true; next_btn.doubleClickEnabled = true; previous_btn.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickArrow); next_btn.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClickArrow); previous_btn.useHandCursor = false; next_btn.useHandCursor = false; previousEnabled(false); nextEnabled(false); } function doubleClickArrow(_arg1:MouseEvent):void{ } public function clearAll():void{ current = 0; messages1.length = 0; messages2.length = 0; line1.text = ""; line2.text = ""; previousEnabled(false); nextEnabled(false); } public function addMessage(_arg1:String, _arg2:String):void{ current = messages1.length; messages1.push(_arg1); messages2.push(_arg2); displayCurrent(); } private function displayCurrent():void{ if ((((current < 0)) || (!(messages1.length)))){ return; }; display(current); } public function updateMostRecent(_arg1:String, _arg2:String):void{ var _local3:*; _local3 = (messages1.length - 1); if (_arg1.length){ messages1[_local3] = (messages1[_local3] + _arg1); }; if (_arg2.length){ messages2[_local3] = (messages2[_local3] + _arg2); }; display(_local3); } private function previousEnabled(_arg1:Boolean):void{ if (((_arg1) && (!(this.contains(previous_btn))))){ addChild(previous_btn); } else { if (((!(_arg1)) && (this.contains(previous_btn)))){ removeChild(previous_btn); }; }; } function goNext(_arg1:MouseEvent):void{ current = Math.min((current + 1), (messages1.length - 1)); displayCurrent(); } public function cleanup():void{ previous_btn.removeEventListener(MouseEvent.MOUSE_DOWN, goPrevious); next_btn.removeEventListener(MouseEvent.MOUSE_DOWN, goNext); previous_btn.removeEventListener(MouseEvent.DOUBLE_CLICK, doubleClickArrow); next_btn.removeEventListener(MouseEvent.DOUBLE_CLICK, doubleClickArrow); } private function display(_arg1:int):void{ line1.text = String(messages1[_arg1]); line2.text = String(messages2[_arg1]); dm.embolden(line1); dm.embolden(line2); if (_arg1 < (messages1.length - 1)){ nextEnabled(true); } else { nextEnabled(false); }; if (_arg1 > 0){ previousEnabled(true); } else { previousEnabled(false); }; } private function nextEnabled(_arg1:Boolean):void{ if (((_arg1) && (!(this.contains(next_btn))))){ addChild(next_btn); } else { if (((!(_arg1)) && (this.contains(next_btn)))){ removeChild(next_btn); }; }; } function goPrevious(_arg1:MouseEvent):void{ current = Math.max((current - 1), 0); displayCurrent(); } } }//package
Section 26
//BattleMessageScroller (BattleMessageScroller) package { import flash.display.*; public dynamic class BattleMessageScroller extends SimpleButton { } }//package
Section 27
//BattleMusic (BattleMusic) package { public class BattleMusic extends Music { public function BattleMusic(_arg1:Boolean=true):void{ var _local2:*; super(); active = true; _local2 = new rollingthunder_c(); channel = _local2.play(0, 99999); if (_arg1){ this.fadeIn(750); } else { this.setVolume(volumeSetting); }; } } }//package
Section 28
//BiclopsLogo (BiclopsLogo) package { import flash.display.*; public dynamic class BiclopsLogo extends SimpleButton { } }//package
Section 29
//BiclopsPreloaderLink (BiclopsPreloaderLink) package { import flash.display.*; public dynamic class BiclopsPreloaderLink extends SimpleButton { } }//package
Section 30
//blind_effect (blind_effect) package { import flash.display.*; public dynamic class blind_effect extends MovieClip { public function blind_effect(){ addFrameScript(0, frame1, 19, frame20); } function frame1(){ dm.sound.play(SoundControl.blind); } function frame20(){ this.gotoAndStop(20); } } }//package
Section 31
//blind_sound (blind_sound) package { import flash.media.*; public dynamic class blind_sound extends Sound { } }//package
Section 32
//BloodRandom (BloodRandom) package { import flash.display.*; public dynamic class BloodRandom extends MovieClip { public var f; public function BloodRandom(){ addFrameScript(0, frame1); } function frame1(){ f = DungeonMain.RandomNum(1, this.totalFrames); this.gotoAndStop(f); } } }//package
Section 33
//BlueBarHorz (BlueBarHorz) package { import flash.display.*; public dynamic class BlueBarHorz extends Sprite { } }//package
Section 34
//blueburst (blueburst) package { import flash.display.*; public dynamic class blueburst extends MovieClip { } }//package
Section 35
//buff_chant_sound (buff_chant_sound) package { import flash.media.*; public dynamic class buff_chant_sound extends Sound { } }//package
Section 36
//buff_effect (buff_effect) package { import flash.display.*; public dynamic class buff_effect extends MovieClip { public function buff_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.buff); } function frame45(){ this.stop(); } } }//package
Section 37
//buff_quickness_effect (buff_quickness_effect) package { import flash.display.*; public dynamic class buff_quickness_effect extends MovieClip { } }//package
Section 38
//BuySkillPanel (BuySkillPanel) package { import flash.events.*; import flash.text.*; import flash.display.*; public class BuySkillPanel extends Sprite { public var sk_icon:SkillIcon; public var bg:MovieClip; var skill:Skill; public var sk_description:TextField; var isSelected:Boolean;// = false public function BuySkillPanel(){ isSelected = false; super(); bg.addEventListener(MouseEvent.MOUSE_DOWN, clicked); sk_icon.addEventListener(MouseEvent.MOUSE_DOWN, clicked); bg.gotoAndStop("normal"); } public function setBlank():void{ if (this.contains(sk_description)){ removeChild(sk_description); }; if (this.contains(sk_icon)){ removeChild(sk_icon); }; cleanup(); } public function setSkill(_arg1:Skill):void{ if (_arg1 == null){ return; }; this.skill = _arg1; sk_icon.gotoAndStop(_arg1.iconFrame); sk_icon.setSkill(_arg1); sk_icon.setOwner(PlayerCharacter(_arg1.char_ref)); sk_icon.setUsable(_arg1.usable(true)); sk_description.mouseEnabled = false; sk_description.text = _arg1.skillname; dm.embolden(sk_description); } function clicked(_arg1:MouseEvent):void{ if (isSelected){ isSelected = false; bg.gotoAndStop("normal"); if (parent != null){ BuySkills(parent).skillDeselected(); }; } else { if ((((parent == null)) || (!((parent is BuySkills))))){ return; }; if (BuySkills(parent).pointsFree > 0){ isSelected = true; bg.gotoAndStop("selected"); BuySkills(parent).skillSelected(); }; }; } public function cleanup():void{ sk_icon.cleanup(); bg.removeEventListener(MouseEvent.MOUSE_DOWN, clicked); sk_icon.removeEventListener(MouseEvent.MOUSE_DOWN, clicked); } } }//package
Section 39
//BuySkillPanelR (BuySkillPanelR) package { public dynamic class BuySkillPanelR extends BuySkillPanel { } }//package
Section 40
//BuySkills (BuySkills) package { import flash.events.*; import flash.text.*; import flash.display.*; public class BuySkills extends MovieClip { public var sk4:BuySkillPanel; public var cancel_btn:CancelButton; public var points_txt:TextField; var char_ref:PlayerCharacter; var info_panel:CharInfoPanel; public var continue_btn:ContinueButton; public var sk1:BuySkillPanel; public var sk2:BuySkillPanel; public var sk3:BuySkillPanel; public var sk5:BuySkillPanelR; public var sk8:BuySkillPanelR; public var sk6:BuySkillPanelR; public var sk7:BuySkillPanelR; var pointsFree:int;// = 0 public function BuySkills(_arg1:CharInfoPanel=null){ pointsFree = 0; super(); if (_arg1 != null){ this.info_panel = _arg1; }; continue_btn.addEventListener(MouseEvent.MOUSE_DOWN, continueClick); cancel_btn.addEventListener(MouseEvent.MOUSE_DOWN, cancelClick); } public function setChar(_arg1:PlayerCharacter):void{ var _local2:*; var _local3:*; var _local4:*; if (_arg1 == null){ return; }; char_ref = _arg1; _local3 = 1; pointsFree = _arg1.skill_points; updateSkillPoints(); _local4 = 0; while (_local4 < _arg1.skills.length) { if (_arg1.skills[_local4].unlocked){ } else { _local2 = getChildByName(("sk" + _local3)); if (_local2 == null){ } else { _local2.setSkill(_arg1.skills[_local4]); _local3++; }; }; _local4++; }; _local4 = _local3; while (_local4 <= 8) { _local2 = getChildByName(("sk" + _local4)); if (_local2 != null){ _local2.setBlank(); }; _local4++; }; } private function updateSkillPoints():void{ points_txt.text = String(pointsFree); dm.embolden(points_txt); } function continueClick(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; _local2 = 1; while (_local2 <= 8) { _local3 = getChildByName(("sk" + _local2)); if (_local3 == null){ } else { if (((_local3.isSelected) && (!((_local3.skill == null))))){ _local3.skill.unlocked = true; }; }; _local2++; }; char_ref.skill_points = pointsFree; this.cleanup(); if (info_panel != null){ info_panel.updateValues(); }; if (stage != null){ stage.removeChild(this); }; } function cancelClick(_arg1:MouseEvent):void{ this.cleanup(); if (parent != null){ stage.removeChild(this); }; } public function skillSelected():void{ pointsFree--; updateSkillPoints(); } public function skillDeselected():void{ pointsFree++; updateSkillPoints(); } public function cleanup():void{ var _local1:*; var _local2:*; continue_btn.removeEventListener(MouseEvent.MOUSE_DOWN, continueClick); cancel_btn.removeEventListener(MouseEvent.MOUSE_DOWN, cancelClick); _local1 = 1; while (_local1 <= 8) { _local2 = getChildByName(("sk" + _local1)); if (_local2 != null){ _local2.cleanup(); }; _local1++; }; } } }//package
Section 41
//CancelButton (CancelButton) package { import flash.display.*; public dynamic class CancelButton extends MovieClip { } }//package
Section 42
//Character (Character) package { public class Character { const power_max = 100; private var _power:int;// = 100 var damageMod;// = 1 private var _type:int;// = 0 private var _potion_stun_resist:int;// = 0 var buff_resistPoison;// = 0 var cursed;// = 0 private var _intellect:int;// = 1 var invulnerable:int;// = 0 var buff_resistStun;// = 0 var buff_stun;// = 0 var lethalityImmune:Boolean;// = false private var _potion_poison_resist:int;// = 0 private var _description:String;// = "" var skills:Array; var accuracy_penalty:int;// = 0 private var _dexterity:int;// = 1 private var _charname:String; private var _quickness:int;// = 50 var cancelPowerRegen:Boolean;// = false var buff_healthRegen;// = 0 private var _accuracy:int;// = 95 var power_per_turn;// = 10 var temp_damage_resistance:int;// = 0 var buff_damageReflect;// = 0 var buff_accuracy;// = 0 private var _potion_quickness_bonus:int;// = 0 var crippled:int;// = 0 private var _health:int;// = 50 var cannotDie:int;// = 0 var hiding;// = false private var _level;// = 1 private var _classname:String; private var _damage:int;// = 0 private var _endurance:int;// = 1 private var _pos:int;// = 0 var cannotDieMin:int;// = 1 private var _health_max:int;// = 50 var buff_damageResist;// = 0 private var _strength:int;// = 1 var powerRegenMod;// = 1 var buff_powerRegen;// = 0 var poisoned:int;// = 0 var stunned_duration:int;// = 0 private var _potion_damage_bonus:int;// = 0 var buff_quickness;// = 0 var buff_damage;// = 1 private var _stunResist:int;// = 0 private var _potion_damage_resist:int;// = 0 private var _poisonResist:int;// = 0 private var _portrait:int;// = 1 var buff_vampiric;// = 0 public function Character(){ _level = 1; _health_max = 50; _health = 50; power_per_turn = 10; _power = 100; _damage = 0; _type = 0; _description = ""; _strength = 1; _endurance = 1; _dexterity = 1; _intellect = 1; _quickness = 50; _accuracy = 95; _portrait = 1; _pos = 0; _poisonResist = 0; _stunResist = 0; skills = new Array(); stunned_duration = 0; accuracy_penalty = 0; poisoned = 0; powerRegenMod = 1; hiding = false; cannotDie = 0; cannotDieMin = 1; cursed = 0; lethalityImmune = false; invulnerable = 0; temp_damage_resistance = 0; damageMod = 1; crippled = 0; cancelPowerRegen = false; buff_resistPoison = 0; buff_resistStun = 0; buff_damageResist = 0; buff_damageReflect = 0; buff_healthRegen = 0; buff_powerRegen = 0; buff_vampiric = 0; buff_stun = 0; buff_quickness = 0; buff_damage = 1; buff_accuracy = 0; _potion_damage_resist = 0; _potion_damage_bonus = 0; _potion_poison_resist = 0; _potion_stun_resist = 0; _potion_quickness_bonus = 0; super(); } public function set intellect(_arg1:int):void{ this._intellect = _arg1; } public function get health_max():int{ return (this._health_max); } public function set health_max(_arg1:int):void{ this._health_max = _arg1; } public function get classname():String{ return (this._classname); } public function get power():int{ return (this._power); } public function set level(_arg1:int):void{ this._level = _arg1; } public function set classname(_arg1:String):void{ this._classname = _arg1; } public function set endurance(_arg1:int):void{ this._endurance = _arg1; } public function set power(_arg1:int):void{ this._power = _arg1; } public function get poisonResist():int{ return (this._poisonResist); } public function getPoisonDamage(_arg1:Boolean=true):int{ return (0); } public function get potion_damage_resist():int{ return (this._potion_damage_resist); } public function get endurance():int{ return (this._endurance); } public function set potion_damage_bonus(_arg1:int):void{ this._potion_damage_bonus = _arg1; } public function getDexterity(_arg1:Boolean=true):int{ return (this.dexterity); } public function getVampiric(_arg1:Boolean=true):int{ if (_arg1){ return (buff_vampiric); }; return (0); } public function set poisonResist(_arg1:int):void{ this._poisonResist = _arg1; } public function getPowerRegen(_arg1:Boolean=true):int{ if (_arg1){ return (Math.round(((power_per_turn + buff_powerRegen) * powerRegenMod))); }; return (power_per_turn); } public function getPowerPercent():int{ return (Math.round((100 / (power_max / power)))); } public function set potion_damage_resist(_arg1:int):void{ this._potion_damage_resist = _arg1; } public function set portrait(_arg1:int):void{ this._portrait = _arg1; } public function get potion_quickness_bonus():int{ return (this._potion_quickness_bonus); } public function get type():int{ return (this._type); } public function increaseHealth(_arg1:int, _arg2:Boolean=false):int{ var _local3:*; _local3 = health; if ((((_local3 == 0)) && (!(_arg2)))){ return (0); }; health = (health + _arg1); if (health > health_max){ health = health_max; }; if (health < 0){ health = 0; clearStatusEffects(); }; return ((health - _local3)); } public function reducePower(_arg1:int):int{ var _local2:*; _local2 = power; power = (power - _arg1); if (power < 0){ power = 0; }; if (power > 100){ power = 100; }; return ((_local2 - power)); } public function get strength():int{ return (this._strength); } public function get stunResist():int{ return (this._stunResist); } public function genderPronoun(_arg1:Boolean=false):String{ if (_arg1){ return ("They"); }; return ("they"); } public function getStunResist(_arg1:Boolean=true):int{ if (_arg1){ return (((stunResist + buff_resistStun) + potion_stun_resist)); }; return (stunResist); } public function getHealthRegen(_arg1:Boolean=true):int{ if (_arg1){ return (buff_healthRegen); }; return (0); } public function get pos():int{ return (this._pos); } public function get health():int{ return (this._health); } public function get potion_poison_resist():int{ return (this._potion_poison_resist); } public function getLethality(_arg1:Boolean=true):int{ return (0); } public function getEndurance(_arg1:Boolean=true):int{ return (this.endurance); } public function get potion_stun_resist():int{ return (this._potion_stun_resist); } public function poison(_arg1:int):Boolean{ var _local2:*; var _local3:*; if (invulnerable){ return (false); }; _local2 = getPoisonResist(); if (_local2 >= 100){ return (false); }; _local3 = Math.round((_arg1 * (1 - (_local2 / 100)))); if (_local3 > 0){ poisoned = (poisoned + _local3); return (true); }; return (false); } public function genderPossessive(_arg1:Boolean=false):String{ if (_arg1){ return ("Their"); }; return ("their"); } public function get damage():int{ return (this._damage); } public function set potion_quickness_bonus(_arg1:int):void{ this._potion_quickness_bonus = _arg1; } public function set type(_arg1:int):void{ this._type = _arg1; } public function getAccuracy(_arg1:Boolean=true):int{ if (_arg1){ return (((accuracy + buff_accuracy) - accuracy_penalty)); }; return (accuracy); } public function getDamageReflection(_arg1:Boolean=true):int{ if (_arg1){ return (buff_damageReflect); }; return (0); } public function set strength(_arg1:int):void{ this._strength = _arg1; } public function get level():int{ return (this._level); } public function get intellect():int{ return (this._intellect); } public function set stunResist(_arg1:int):void{ this._stunResist = _arg1; } public function clearStatusEffects():void{ cannotDie = 0; invulnerable = 0; stunned_duration = 0; accuracy_penalty = 0; poisoned = 0; damageMod = 1; powerRegenMod = 1; temp_damage_resistance = 0; crippled = 0; cursed = 0; hiding = false; cancelPowerRegen = false; buff_resistPoison = 0; buff_resistStun = 0; buff_damageResist = 0; buff_damageReflect = 0; buff_healthRegen = 0; buff_powerRegen = 0; buff_vampiric = 0; buff_stun = 0; buff_quickness = 0; buff_damage = 1; buff_accuracy = 0; buff_quickness = 0; potion_damage_resist = 0; potion_damage_bonus = 0; potion_poison_resist = 0; potion_stun_resist = 0; potion_quickness_bonus = 0; } public function getQuickness(_arg1:Boolean=true):int{ var _local2:*; _local2 = this.quickness; if (_arg1){ _local2 = (_local2 + ((buff_quickness + potion_quickness_bonus) - crippled)); }; _local2 = Math.max(_local2, 0); return (_local2); } public function set dexterity(_arg1:int):void{ this._dexterity = _arg1; } public function damageAfterArmor(_arg1:int):int{ return (_arg1); } public function getHealthPercent():int{ return (Math.round((100 / (health_max / health)))); } public function get portrait():int{ return (this._portrait); } public function get potion_damage_bonus():int{ return (this._potion_damage_bonus); } public function getStunChance(_arg1:Boolean=true):int{ return (0); } public function set pos(_arg1:int):void{ this._pos = _arg1; } public function getEffectiveHealth():int{ return (health); } public function getDamageResist(_arg1:Boolean=true):int{ if (_arg1){ return (((buff_damageResist + temp_damage_resistance) + potion_damage_resist)); }; return (0); } public function hasPowerForSkill(_arg1:Skill):Boolean{ if (_arg1.power_cost > power){ return (false); }; return (true); } public function genderSelf(_arg1:Boolean=false):String{ if (_arg1){ return ("Itself"); }; return ("itself"); } public function set quickness(_arg1:int):void{ this._quickness = _arg1; } public function set health(_arg1:int):void{ this._health = _arg1; } public function set potion_poison_resist(_arg1:int):void{ this._potion_poison_resist = _arg1; } public function stun(_arg1:int):Boolean{ var _local2:*; _local2 = getStunResist(); if (invulnerable){ return (false); }; if (DungeonMain.RandomNum(0, 100) >= _local2){ stunned_duration = _arg1; return (true); }; return (false); } public function getHealingBonus(_arg1:Boolean=true):int{ return (0); } public function getAccuracyDamage(_arg1:Boolean=true):int{ return (0); } public function getPoisonResist(_arg1:Boolean=true):int{ if (_arg1){ return (((poisonResist + buff_resistPoison) + potion_poison_resist)); }; return (poisonResist); } public function set charname(_arg1:String):void{ this._charname = _arg1; } public function get dexterity():int{ return (this._dexterity); } public function reduceHealth(_arg1:int):int{ var _local2:*; if (invulnerable){ return (0); }; _local2 = health; health = (health - _arg1); if ((((health < cannotDieMin)) && ((cannotDie > 0)))){ health = Math.min(_local2, cannotDieMin); }; if (health < 0){ health = 0; clearStatusEffects(); }; if (health > health_max){ health = health_max; }; return ((_local2 - health)); } public function increaseHealthByPercentage(_arg1:int, _arg2:Boolean=false):int{ var _local3:*; _local3 = Math.round((health_max * (_arg1 / 100))); return (increaseHealth(_local3, _arg2)); } public function get quickness():int{ return (this._quickness); } public function set potion_stun_resist(_arg1:int):void{ this._potion_stun_resist = _arg1; } public function getStrength(_arg1:Boolean=true):int{ return (this.strength); } public function getIntellect(_arg1:Boolean=true):int{ return (this.intellect); } public function canMissWith(_arg1:Skill):Boolean{ if (_arg1.alwaysHits){ return (false); }; if (_arg1.targetsFriendlies){ return (false); }; if (_arg1.targetsSelf){ return (false); }; if (_arg1.targetsEmpty){ return (false); }; return (true); } public function increasePowerByPercentage(_arg1:int):int{ return (increasePower(_arg1)); } public function set damage(_arg1:int):void{ this._damage = _arg1; } public function get charname():String{ return (this._charname); } public function increasePower(_arg1:int):int{ var _local2:*; _local2 = power; power = (power + _arg1); if (power > power_max){ power = power_max; }; return ((power - _local2)); } public function reduceHealthByPercentage(_arg1:int):int{ var _local2:*; _local2 = ((health_max / 100) * _arg1); return (reduceHealth(_local2)); } public function set accuracy(_arg1:int):void{ this._accuracy = _arg1; } public function set description(_arg1:String):void{ this._description = _arg1; } public function get accuracy():int{ return (this._accuracy); } public function get description():String{ return (this._description); } } }//package
Section 43
//CharacterPortrait (CharacterPortrait) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class CharacterPortrait extends MovieClip { var hasLethalAnim:Boolean;// = false var char_ref:Character; public var nametag:TextField; public var healthbar:HealthBar; var isHiding:Boolean;// = false var dead:Boolean; var level_glow:LevelUpGlow; var hasGainPowerAnim:Boolean;// = false var animations:Array; var hasPoisonAnim:Boolean;// = false var hasGainHealthAnim:Boolean;// = false var poisoned:Boolean;// = false var animationFrame:PortraitAnimationFrame; var hasCurseAnim:Boolean;// = false var timers:Array; public var graphic:CharGraphic; public var powerbar:PowerBar; public function CharacterPortrait(){ poisoned = false; level_glow = new LevelUpGlow(); isHiding = false; animations = new Array(); timers = new Array(); hasCurseAnim = false; hasPoisonAnim = false; hasLethalAnim = false; hasGainHealthAnim = false; hasGainPowerAnim = false; super(); dead = false; this.gotoAndStop(1); } public function setChar(_arg1:Character, _arg2:Boolean=false){ char_ref = _arg1; if (!_arg2){ update(); }; } public function stunAnim():void{ if (!char_ref.stunned_duration){ if (((((!((parent == null))) && (!((parent.parent == null))))) && ((parent.parent is EmptyPortrait)))){ EmptyPortrait(parent.parent).gotoAndPlay(2); }; }; } public function setClone():void{ var _local1:*; _local1 = new ClonePortrait(); this.addChild(_local1); this.addSpecialAnimation(new clone_create_effect(), 1500); } public function setGlow():void{ if (!(char_ref is PlayerCharacter)){ return; }; if (((PlayerCharacter(char_ref).stat_points) || (PlayerCharacter(char_ref).skill_points))){ if (!this.contains(level_glow)){ addChild(level_glow); }; } else { if (this.contains(level_glow)){ removeChild(level_glow); }; }; } public function updateBars(){ if (((dead) && ((char_ref.health > 0)))){ setAlive(); }; setHealth(char_ref.getHealthPercent()); setPower(char_ref.getPowerPercent()); checkStun(); } public function setPoisoned(_arg1:Boolean):void{ var _local2:*; var _local3:*; var _local4:*; if (((_arg1) && (!(poisoned)))){ poisoned = true; _local2 = new LightGreenBar(); _local2.x = healthbar.lightbar.x; _local2.y = healthbar.lightbar.y; _local2.height = healthbar.lightbar.height; _local2.width = healthbar.lightbar.width; _local2.name = healthbar.lightbar.name; healthbar.removeChild(healthbar.lightbar); healthbar.addChild(_local2); _local2 = new GreenBar(); _local2.x = healthbar.bar.x; _local2.y = healthbar.bar.y; _local2.height = healthbar.bar.height; _local2.width = healthbar.bar.width; _local2.name = healthbar.bar.name; healthbar.removeChild(healthbar.bar); healthbar.addChild(_local2); } else { if (((poisoned) && (!(_arg1)))){ poisoned = false; _local3 = healthbar.getChildByName("bar"); _local4 = healthbar.getChildByName("lightbar"); healthbar.bar.height = _local3.height; healthbar.lightbar.height = _local4.height; healthbar.removeChild(_local3); healthbar.removeChild(_local4); healthbar.addChild(healthbar.lightbar); healthbar.addChild(healthbar.bar); }; }; } function specialAnimationDurationTimerComplete(_arg1:TimerEvent):void{ var _local2:*; var _local3:MovieClip; _local2 = getTimerIndex(Timer(_arg1.target)); if (_local2 < 0){ return; }; _local3 = animations[_local2]; if (_local3 != null){ if (this.contains(_local3)){ this.removeChild(_local3); }; if ((_local3 is curse_effect)){ hasCurseAnim = false; }; if ((_local3 is poisoneffect)){ hasPoisonAnim = false; }; if ((_local3 is lethal_effect)){ hasLethalAnim = false; }; if ((_local3 is gain_health_effect)){ hasGainHealthAnim = false; }; if ((_local3 is gain_power_effect)){ hasGainPowerAnim = false; }; _local3.stop(); animations.splice(_local2, 1); _local3 = null; timers.splice(_local2, 1); }; } public function setHealth(_arg1:int){ var _local2:*; var _local3:*; _local2 = healthbar.getChildByName("bar"); _local2.height = Math.round(((58 / 100) * _arg1)); _local3 = healthbar.getChildByName("lightbar"); _local3.height = Math.round(((58 / 100) * _arg1)); if ((((_arg1 == 0)) && (!(dead)))){ this.setDead(); }; } public function setRetreated(){ var _local1:RetreatedEffect; _local1 = new RetreatedEffect(); _local1.x = 0; _local1.y = 0; _local1.alpha = 0.5; _local1.name = "r_effect"; addChild(_local1); } public function startPowerCostPreview(_arg1:int){ var _local2:*; _local2 = (char_ref.power - _arg1); if (_local2 < 0){ return; }; this.powerbar.bar.height = ((58 / 100) * _local2); } public function addAnimationFrame(_arg1:int, _arg2:int=1500){ var _local3:Timer; if (animationFrame != null){ return; }; animationFrame = new PortraitAnimationFrame(_arg1); animationFrame.name = "anim"; animationFrame.x = graphic.x; animationFrame.y = graphic.y; this.addChild(animationFrame); _local3 = new Timer(_arg2, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, animationDurationTimerComplete, false, 0, true); _local3.start(); } public function setHealthPreview(_arg1:int){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = (char_ref.health - _arg1); if (_local2 < 0){ _local2 = 0; }; if (_local2 > char_ref.health_max){ _local2 = char_ref.health_max; }; _local3 = ((100 / char_ref.health_max) * _local2); _local4 = healthbar.getChildByName("bar"); _local5 = healthbar.getChildByName("lightbar"); if (_arg1 >= 0){ _local4.height = ((58 / 100) * _local3); } else { _local5.height = Math.round(((58 / 100) * _local3)); }; } public function setHiding(_arg1:Boolean){ var _local2:*; if (_arg1){ if (!isHiding){ _local2 = new HidingEffect(); _local2.x = 0; _local2.y = 0; _local2.alpha = 0.5; _local2.name = "hiding_effect"; addChild(_local2); }; isHiding = true; } else { isHiding = false; _local2 = getChildByName("hiding_effect"); if (_local2 != null){ removeChild(_local2); }; }; } public function addPortraitAnimation(_arg1:int):void{ var _local2:MovieClip; if (!_arg1){ return; }; _local2 = PortraitAnimation.getAnimation(_arg1); if (_local2 != null){ _local2.gotoAndStop(1); addSpecialAnimation(_local2); }; _local2 = null; } public function setAlive(){ var _local1:*; dead = false; _local1 = getChildByName("dead_effect"); if (_local1 != null){ removeChild(_local1); }; } public function setPowerPreview(_arg1:int){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _local2 = (char_ref.power - _arg1); if (_local2 < 0){ _local2 = 0; }; if (_local2 > char_ref.power_max){ _local2 = char_ref.power_max; }; _local3 = ((100 / char_ref.power_max) * _local2); _local4 = powerbar.getChildByName("bar"); _local5 = powerbar.getChildByName("lightbar"); if (_arg1 >= 0){ _local4.height = ((58 / 100) * _local3); } else { _local5.height = Math.round(((58 / 100) * _local3)); }; } public function setNameTag(_arg1:String){ this.nametag.text = _arg1; } function animationDurationTimerComplete(_arg1:TimerEvent):void{ if (this.getChildByName("anim") != null){ this.removeChild(animationFrame); }; animationFrame = null; } private function getTimerIndex(_arg1:Timer):int{ var _local2:*; _local2 = 0; while (_local2 < timers.length) { if (timers[_local2] == _arg1){ return (_local2); }; _local2++; }; return (-1); } private function addSpecialAnimation(_arg1:MovieClip, _arg2:int=1500){ var _local3:Timer; var _local4:int; var _local5:*; _arg1.x = graphic.x; _arg1.y = graphic.y; if ((_arg1 is curse_effect)){ if (!hasCurseAnim){ hasCurseAnim = true; } else { return; }; } else { if ((_arg1 is poisoneffect)){ if (!hasPoisonAnim){ hasPoisonAnim = true; } else { return; }; } else { if ((_arg1 is lethal_effect)){ if (!hasLethalAnim){ hasLethalAnim = true; } else { return; }; } else { if ((_arg1 is gain_health_effect)){ if (!hasGainHealthAnim){ hasGainHealthAnim = true; } else { return; }; } else { if ((_arg1 is gain_power_effect)){ if (!hasGainPowerAnim){ hasGainPowerAnim = true; } else { return; }; } else { if ((_arg1 is player_multi_slash)){ _local4 = DungeonMain.RandomNum(-20, 20); _arg1.rotation = _local4; } else { if ((_arg1 is revive_effect)){ _local5 = this.graphic.currentFrame; revive_effect(_arg1).gfx.gotoAndStop(_local5); } else { if ((((_arg1 is player_arrow)) && ((_arg2 == 750)))){ player_arrow(_arg1).spark.x = dm.randomNum(15, 43); player_arrow(_arg1).spark.y = dm.randomNum(15, 43); }; }; }; }; }; }; }; }; _arg1.gotoAndPlay(1); this.addChild(_arg1); _local3 = new Timer(_arg2, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, specialAnimationDurationTimerComplete, false, 0, true); _local3.start(); animations.push(_arg1); timers.push(_local3); } public function setPower(_arg1:int){ this.powerbar.bar.height = ((58 / 100) * _arg1); this.powerbar.lightbar.height = ((58 / 100) * _arg1); } public function update():void{ this.graphic.setFrame(char_ref.portrait); this.setNameTag(char_ref.charname); this.setHealth(((char_ref.health / char_ref.health_max) * 100)); this.setPower(((char_ref.power / char_ref.power_max) * 100)); } public function setDead(){ var _local1:DeadEffect; dead = true; setHealth(0); _local1 = new DeadEffect(); _local1.x = 0; _local1.y = 0; _local1.alpha = 0.5; _local1.name = "dead_effect"; addChild(_local1); } public function checkStun():void{ if (!char_ref.stunned_duration){ this.gotoAndStop(1); } else { this.gotoAndStop(2); }; } public function endPowerCostPreview(){ this.powerbar.bar.height = this.powerbar.lightbar.height; } } }//package
Section 44
//CharCreationEmpty (CharCreationEmpty) package { import flash.display.*; public dynamic class CharCreationEmpty extends MovieClip { } }//package
Section 45
//CharCreationPanel (CharCreationPanel) package { import flash.events.*; import flash.text.*; import flash.display.*; public class CharCreationPanel extends MovieClip { const animate_frames = 10; var slot:int;// = 1 var start_y;// = 0 var end_y;// = 0 public var portrait_left:SelectArrow; var portraits:Array; var lastRandomName:String; public var gender_icon:GenderIcon; var char:PlayerCharacter; var lowered_y;// = 0 var animating;// = false public var portrait_right:SelectArrow; public var description_text:TextField; public var delete_button:TextField; public var name_text:TextField; public var random_name_btn:MovieClip; public var class2:ClassIcon; public var class3:ClassIcon; public var portrait:CharGraphic; public var class_text:TextField; public var class4:ClassIcon; public var class5:ClassIcon; var selected_portrait:int;// = 0 public var class1:ClassIcon; var selected_class:int;// = 1 var frame_count;// = 0 public function CharCreationPanel():void{ var _local1:*; var _local2:*; portraits = new Array(); selected_portrait = 0; selected_class = 1; slot = 1; animating = false; frame_count = 0; start_y = 0; end_y = 0; lowered_y = 0; super(); random_name_btn.addEventListener(MouseEvent.MOUSE_DOWN, randomName); portrait_left.addEventListener(MouseEvent.MOUSE_DOWN, cyclePortrait); portrait_right.addEventListener(MouseEvent.MOUSE_DOWN, cyclePortrait); gender_icon.addEventListener(MouseEvent.MOUSE_DOWN, toggleGender); _local1 = 1; while (_local1 <= 5) { _local2 = getChildByName(("class" + _local1)); _local2.addEventListener(MouseEvent.MOUSE_DOWN, setClass); _local2.gotoAndStop(_local1); _local2.bg.gotoAndStop(1); _local1++; }; delete_button.addEventListener(MouseEvent.MOUSE_DOWN, deleteChar); lowered_y = this.y; this.y = (0 - (this.height + 10)); } public function updateFromChar():void{ name_text.text = char.charname; } public function cleanup():void{ var _local1:*; var _local2:*; _local1 = 1; while (_local1 <= 5) { _local2 = getChildByName(("char" + _local1)); if (_local2 == null){ } else { _local2.removeEventListener(MouseEvent.MOUSE_DOWN, setClass); }; _local1++; }; random_name_btn.removeEventListener(MouseEvent.MOUSE_DOWN, randomName); portrait_left.removeEventListener(MouseEvent.MOUSE_DOWN, cyclePortrait); portrait_right.removeEventListener(MouseEvent.MOUSE_DOWN, cyclePortrait); delete_button.removeEventListener(MouseEvent.MOUSE_DOWN, deleteChar); gender_icon.removeEventListener(MouseEvent.MOUSE_DOWN, toggleGender); } function animateFrame(_arg1:Event):void{ var _local2:*; var _local3:*; animating = true; frame_count++; if ((((frame_count > animate_frames)) || ((this.y == end_y)))){ removeEventListener(Event.ENTER_FRAME, animateFrame); animating = false; return; }; _local2 = (end_y - start_y); _local3 = (_local2 / animate_frames); this.y = (start_y + (frame_count * _local3)); } public function finalize():void{ if (name_text.text != null){ char.charname = name_text.text; }; char.portrait = portraits[selected_portrait]; } function cycleClass(_arg1:MouseEvent):void{ var _local2:SelectArrow; if ((_arg1.currentTarget is SelectArrow)){ _local2 = SelectArrow(_arg1.currentTarget); } else { return; }; _local2.clicked(); if (_local2.name == "class_left"){ selected_class--; if (selected_class < 1){ selected_class = 5; }; } else { if (_local2.name == "class_right"){ selected_class++; if (selected_class > 5){ selected_class = 1; }; }; }; updateClass(); } function toggleGender(_arg1:MouseEvent):void{ if (char.male){ char.male = false; gender_icon.gotoAndStop("female"); } else { char.male = true; gender_icon.gotoAndStop("male"); }; selected_portrait = (selected_class - 1); updatePortraitsArray(); updatePortrait(); if (name_text.text == lastRandomName){ randomName(); }; } function setClass(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; _local2 = 1; while (_local2 <= 5) { _local3 = getChildByName(("class" + _local2)); if (_local3 == null){ } else { if (_arg1.currentTarget == _local3){ selected_class = _local2; }; }; _local2++; }; updateClass(); } private function updatePortraitsArray():void{ portraits.length = 0; if (char.male){ portraits.push(CharGraphic.ranger1); portraits.push(CharGraphic.cleric1); portraits.push(CharGraphic.mage1); portraits.push(CharGraphic.warrior1); portraits.push(CharGraphic.rogue1); portraits.push(6); portraits.push(7); portraits.push(8); portraits.push(9); portraits.push(10); } else { portraits.push(15); portraits.push(16); portraits.push(17); portraits.push(18); portraits.push(19); }; } private function updatePortrait():void{ if (!portraits.length){ return; }; portrait.setFrame(portraits[selected_portrait]); char.portrait = portraits[selected_portrait]; } public function createChar(_arg1:MouseEvent=null):void{ animating = true; end_y = lowered_y; start_y = (0 - this.height); this.y = start_y; frame_count = 0; addEventListener(Event.ENTER_FRAME, animateFrame); char = new PlayerCharacter(); gender_icon.gotoAndStop("male"); randomName(); if (this.slot == 4){ selected_class = dm.randomNum(4, 5); } else { selected_class = this.slot; }; selected_portrait = (selected_class - 1); updatePortraitsArray(); updatePortrait(); updateClass(); } function deleteChar(_arg1:MouseEvent):void{ char = null; animating = true; start_y = this.y; end_y = (0 - this.height); frame_count = 0; addEventListener(Event.ENTER_FRAME, animateFrame); } function cyclePortrait(_arg1:MouseEvent):void{ var _local2:SelectArrow; if ((_arg1.currentTarget is SelectArrow)){ _local2 = SelectArrow(_arg1.currentTarget); } else { return; }; if (_local2.name == "portrait_left"){ selected_portrait--; if (selected_portrait < 0){ selected_portrait = (portraits.length - 1); }; } else { if (_local2.name == "portrait_right"){ selected_portrait++; if (selected_portrait > (portraits.length - 1)){ selected_portrait = 0; }; }; }; updatePortrait(); } private function updateClass():void{ var _local1:*; var _local2:*; if (selected_class == PlayerCharacter.warrior){ class_text.text = "Warrior"; description_text.text = "Warriors can wear the heaviest armor and excel at combat with melee weapons. They are difficult to kill and good at protecting more vulnerable members of the party."; } else { if (selected_class == PlayerCharacter.rogue){ class_text.text = "Rogue"; description_text.text = "Rogues inflict high damage in melee combat, but can also do well with a bow. They have many abilities which debilitate their foes. They may wear medium armor."; } else { if (selected_class == PlayerCharacter.ranger){ class_text.text = "Ranger"; description_text.text = "Rangers are masters of ranged weapons and the lore of the wild. They prefer to fight from afar, where they can heal and support their allies. They may wear medium armor."; } else { if (selected_class == PlayerCharacter.mage){ class_text.text = "Mage"; description_text.text = "Mages use their arcane knowledge to destroy foes from afar and augment their allies. They can inflict a lot of damage, but may wear only the lightest armor."; } else { if (selected_class == PlayerCharacter.cleric){ class_text.text = "Cleric"; description_text.text = "Clerics are holy warriors who call upon divine powers to heal and support their allies or smite their enemies. They wear heavy armor but their weapon selection is limited."; }; }; }; }; }; dm.embolden(class_text); _local1 = 1; while (_local1 <= 5) { _local2 = ClassIcon(getChildByName(("class" + _local1))); if (_local1 == selected_class){ _local2.bg.gotoAndStop(2); } else { _local2.bg.gotoAndStop(1); }; _local1++; }; selected_portrait = (selected_class - 1); updatePortrait(); } function randomName(_arg1:MouseEvent=null):void{ var _local2:Array; var _local3:*; var _local4:String; var _local5:*; var _local6:*; if (char.male){ _local2 = new Array("Nigel", "Neil", "Niles", "Charles", "Boris", "Jethro", "Gerald", "Horace", "Stan", "Alan", "Hank", "Marty", "Trevor", "Trent", "Bruce", "Eugene", "Wally", "Harold", "Hamish", "Carlos", "Jeremy", "Jerome", "Jermaine", "Tito", "George", "Hans", "Chad", "Rupert", "Ruprecht", "Albert", "Alfred", "Phineas", "Brent", "Colin", "Travis", "Jarvis", "Elton", "Ernest", "Mitch"); } else { _local2 = new Array("Tiffany", "Matilda", "Jemima", "Morag", "Mildred", "Martha", "Suzanne", "Sharon", "Chantel", "Miriam", "Muriel", "Susan", "Pam", "Desiree", "Bertha", "Olga", "Peggy", "Freda", "Charlene", "Bessy", "Priscilla", "Aubrey", "Mariah", "Nancy", "Barbara", "Kathleen", "Cynthia", "Maureen", "Judith", "Tammy", "Sheila", "Joyce", "Regina", "Wanda"); }; _local3 = 0; _local4 = ""; _local5 = name_text.text; while ((((char.charname == null)) || ((((char.charname == _local5)) && ((_local3 < 100)))))) { _local6 = DungeonMain.RandomNum(0, (_local2.length - 1)); _local4 = _local2[_local6]; if (!PartyCreation(parent).isNameTaken(_local4)){ char.charname = _local4; }; _local3++; }; if (_local5 != _local4){ lastRandomName = _local4; }; name_text.text = char.charname; } } }//package
Section 46
//CharGraphic (CharGraphic) package { import flash.display.*; public class CharGraphic extends MovieClip { var frame:int; static const troll = 32; static const ranger1 = 1; static const bone_horror = 29; static const lightning_drake = 49; static const orc_warlord = 35; static const vampire = 25; static const ghost = 22; static const voidstalker = 59; static const dragon = 44; static const rogue1 = 5; static const aetherguard = 54; static const demon = 60; static const zombie = 21; static const cult_engine = 57; static const orc_juggernaut = 36; static const warrior1 = 4; static const lich = 28; static const skeleton_archer = 24; static const beholder = 45; static const death_knight = 26; static const necromancer = 27; static const cleric1 = 2; static const greebler = 47; static const poison_drake = 48; static const skeleton = 23; static const arachnoid = 43; static const goblin = 33; static const ascendant = 55; static const orc = 31; static const cult_neophyte = 58; static const orc_woman = 39; static const cult_chosen = 56; static const orc_champion = 38; static const basilisk = 42; static const goblin_archer = 34; static const orc_shaman = 37; static const cult_archer = 52; static const gargoyle = 46; static const cult_priest = 53; static const cult_warrior = 51; static const mage1 = 3; public function CharGraphic(_arg1:int=1){ addFrameScript(0, frame1); setFrame(_arg1); } public function setFrame(_arg1:int){ this.frame = _arg1; this.gotoAndStop(_arg1); } function frame1(){ this.stop(); } } }//package
Section 47
//CharInfoPanel (CharInfoPanel) package { import flash.events.*; import flash.display.*; public class CharInfoPanel extends MovieClip { public var stats_tab:InventoryTab; public var skills_tab:InventoryTab; var char_ref:PlayerCharacter; public var stats_panel:CharStatsPanel; public var skills_panel:CharSkillsPanel; public function CharInfoPanel(_arg1:PlayerCharacter=null){ var _local2:uint; super(); char_ref = _arg1; if (_arg1 != null){ setChar(_arg1); }; stats_tab.tab_text.text = "Statistics"; stats_tab.gotoAndStop(1); stats_tab.addEventListener(MouseEvent.MOUSE_DOWN, clickStatsTab); _local2 = (numChildren - 1); setChildIndex(stats_tab, _local2); skills_tab.tab_text.text = "Skills"; skills_tab.gotoAndStop(2); skills_tab.addEventListener(MouseEvent.MOUSE_DOWN, clickSkillsTab); removeChild(skills_panel); } public function setChar(_arg1:PlayerCharacter){ var _local2:uint; if (_arg1 == null){ return; }; char_ref = _arg1; stats_panel.char_ref = _arg1; skills_panel.char_ref = _arg1; updateValues(); if (parent){ _local2 = (parent.numChildren - 1); parent.setChildIndex(this, _local2); }; } function clickStatsTab(_arg1:MouseEvent):void{ dm.childToTop(stats_tab); stats_tab.gotoAndStop(1); if (!this.contains(stats_panel)){ addChild(stats_panel); }; if (this.contains(skills_panel)){ removeChild(skills_panel); }; dm.childToTop(stats_panel); skills_tab.gotoAndStop(2); updateTabFlashes(); } public function updateValues():void{ stats_panel.updateValues(); skills_panel.updateValues(); updateTabFlashes(); if (((!((parent == null))) && ((parent is Inventory)))){ Inventory(parent).updateStats(); }; } function clickSkillsTab(_arg1:MouseEvent):void{ dm.childToTop(skills_tab); skills_tab.gotoAndStop(1); if (this.contains(stats_panel)){ removeChild(stats_panel); }; if (!this.contains(skills_panel)){ addChild(skills_panel); }; dm.childToTop(skills_panel); stats_tab.gotoAndStop(2); updateTabFlashes(); } public function cleanup():void{ stats_tab.removeEventListener(MouseEvent.MOUSE_DOWN, clickStatsTab); skills_tab.removeEventListener(MouseEvent.MOUSE_DOWN, clickSkillsTab); stats_panel.cleanup(); skills_panel.cleanup(); } private function updateTabFlashes():void{ stats_tab.setFlasher((char_ref.stat_points > 0)); skills_tab.setFlasher((char_ref.skill_points > 0)); } } }//package
Section 48
//CharsButton (CharsButton) package { import flash.display.*; public dynamic class CharsButton extends MovieClip { } }//package
Section 49
//CharSkillsPanel (CharSkillsPanel) package { import flash.events.*; import flash.text.*; import flash.display.*; public class CharSkillsPanel extends Sprite { public var idle3:SkillIconEmpty; public var active2:SkillIconEmpty; public var active3:SkillIconEmpty; var dragged_icon:SkillIcon; public var idle10:SkillIconEmpty; public var idle4:SkillIconEmpty; public var idle7:SkillIconEmpty; var char_ref:PlayerCharacter; public var newskills_button:TextField; public var idle8:SkillIconEmpty; var dragging:Boolean;// = false public var skillpoints_number:TextField; var start_drag_x;// = 0 var start_drag_y;// = 0 public var idle1:SkillIconEmpty; public var idle2:SkillIconEmpty; var num_active:int;// = 0 public var idle6:SkillIconEmpty; public var active1:SkillIconEmpty; var num_idle:int;// = 0 public var active4:SkillIconEmpty; public var active5:SkillIconEmpty; public var active6:SkillIconEmpty; public var idle5:SkillIconEmpty; public var idle9:SkillIconEmpty; public function CharSkillsPanel(_arg1:PlayerCharacter=null){ start_drag_x = 0; start_drag_y = 0; dragging = false; num_idle = 0; num_active = 0; super(); char_ref = _arg1; newskills_button.addEventListener(MouseEvent.MOUSE_DOWN, buySkillsClick); if (_arg1 != null){ updateValues(); }; } function buySkillsClick(_arg1:MouseEvent):void{ var _local2:*; _local2 = new BuySkills(CharInfoPanel(parent)); _local2.setChar(char_ref); stage.addChild(_local2); } private function getActiveSkillInPosition(_arg1:int):Skill{ var _local2:*; _local2 = 0; while (_local2 < char_ref.skills.length) { if (((char_ref.skills[_local2].active) && ((char_ref.skills[_local2].position == _arg1)))){ return (char_ref.skills[_local2]); }; _local2++; }; return (null); } private function removeSkillIcons():void{ var _local1:*; var _local2:*; _local1 = 0; num_active = 0; num_idle = 0; _local1 = 0; while (_local1 < 6) { _local2 = getChildByName(("icon_active" + (_local1 + 1))); removeIcon(_local2); _local1++; }; _local1 = 0; while (_local1 < 10) { _local2 = getChildByName(("icon_idle" + (_local1 + 1))); removeIcon(_local2); _local1++; }; } function startItemDragging(_arg1:MouseEvent):void{ var _local2:SkillIcon; var _local3:uint; var _local4:*; if (((!((_arg1.currentTarget.parent == null))) && ((_arg1.currentTarget.parent is SkillIcon)))){ _local2 = _arg1.currentTarget.parent; } else { return; }; _local3 = (numChildren - 1); setChildIndex(_local2, _local3); start_drag_x = _local2.x; start_drag_y = _local2.y; _local2.startDrag(); dragging = true; dragged_icon = _local2; _local4 = _local2.tooltip; if (_local4 != null){ _local2.mouseOutTarget(null); }; } private function removeIcon(_arg1:SkillIcon):void{ if (_arg1 == null){ return; }; if (this.contains(_arg1)){ removeChild(_arg1); }; _arg1.bg.removeEventListener(MouseEvent.MOUSE_DOWN, startItemDragging); _arg1.bg.removeEventListener(MouseEvent.MOUSE_UP, stopItemDragging); _arg1.bg.removeEventListener(MouseEvent.DOUBLE_CLICK, mouseDblClickSkill); _arg1.cleanup(); } public function updateValues(){ var _local1:*; var _local2:Skill; var _local3:SkillIcon; var _local4:*; var _local5:*; if (char_ref == null){ return; }; skillpoints_number.text = String(char_ref.skill_points); removeSkillIcons(); setDefaultAttack(); _local4 = 0; for (;_local4 < char_ref.skills.length;_local4++) { _local2 = char_ref.skills[_local4]; if (_local2 == null){ } else { if (!_local2.unlocked){ } else { if (num_active >= 6){ _local2.active = false; }; if (_local2.active){ _local1 = getChildByName(("active" + _local2.position)); if (_local1 == null){ continue; }; _local3 = new SkillIcon(); _local3.setSkill(_local2); _local3.setOwner(char_ref); _local3.x = _local1.x; _local3.y = _local1.y; _local3.name = ("icon_active" + _local2.position); addChild(_local3); _local3.bg.addEventListener(MouseEvent.MOUSE_DOWN, startItemDragging); _local3.bg.addEventListener(MouseEvent.MOUSE_UP, stopItemDragging); _local3.bg.doubleClickEnabled = true; _local3.bg.addEventListener(MouseEvent.DOUBLE_CLICK, mouseDblClickSkill); _local3.setUsable(_local3.skill_ref.usable()); num_active++; } else { _local1 = getChildByName(("idle" + (num_idle + 1))); if (_local1 == null){ } else { _local3 = new SkillIcon(); _local3.setSkill(_local2); _local3.setOwner(char_ref); _local3.x = _local1.x; _local3.y = _local1.y; addChild(_local3); _local3.name = ("icon_idle" + (num_idle + 1)); _local3.bg.addEventListener(MouseEvent.MOUSE_DOWN, startItemDragging); _local3.bg.addEventListener(MouseEvent.MOUSE_UP, stopItemDragging); _local3.bg.doubleClickEnabled = true; _local3.bg.addEventListener(MouseEvent.DOUBLE_CLICK, mouseDblClickSkill); _local3.setUsable(_local3.skill_ref.usable()); num_idle++; }; }; }; }; }; if (root != null){ dm.main.saveParty(); dm.main.saveChars(); dm.main.saveInventory(); }; } function mouseDblClickSkill(_arg1:MouseEvent):void{ var _local2:SkillIcon; if (_arg1.currentTarget.parent == null){ return; }; if (!(_arg1.currentTarget.parent is SkillIcon)){ return; }; _local2 = SkillIcon(_arg1.currentTarget.parent); if (_local2.skill_ref.active){ _local2.skill_ref.active = false; updateValues(); } else { if (num_active < 6){ _local2.skill_ref.active = true; _local2.skill_ref.position = lowestAvailablePosition(); updateValues(); }; }; } private function lowestAvailablePosition():int{ var _local1:*; var _local2:*; _local2 = 1; while (_local2 <= 6) { if (getChildByName(("icon_active" + _local2)) == null){ return (_local2); }; _local2++; }; return (-1); } public function cleanup():void{ newskills_button.removeEventListener(MouseEvent.MOUSE_DOWN, buySkillsClick); removeSkillIcons(); } private function setDefaultAttack():void{ var _local1:*; var _local2:*; _local1 = char_ref.gear[Equipment.weapon]; _local2 = 1; if (char_ref.skills[0] != null){ _local2 = char_ref.skills[0].position; }; if (_local1 != null){ if ((_local1 is MeleeWeapon)){ char_ref.skills[0] = new sWeaponAttack(char_ref); } else { if ((_local1 is RangedWeapon)){ char_ref.skills[0] = new sRangedAttack(char_ref); } else { if ((_local1 is MageWeapon)){ char_ref.skills[0] = new sMageAttack(char_ref); }; }; }; } else { char_ref.skills[0] = new sUnarmedAttack(char_ref); }; char_ref.skills[0].active = true; char_ref.skills[0].position = _local2; } function stopItemDragging(_arg1:MouseEvent):void{ var _local2:*; var _local3:SkillIcon; var _local4:*; _local2 = 0; _local3 = _arg1.currentTarget.parent; if (_local3 == null){ return; }; if (!(_local3 is SkillIcon)){ return; }; _arg1.currentTarget.stopDrag(); if (!dragging){ return; }; dragging = false; if ((((_local3.x == start_drag_x)) && ((_local3.y == start_drag_y)))){ return; }; _local4 = _local3.dropTarget.parent; if (_local4 == null){ return; }; if (_local4.name == "bg"){ _local4 = _local4.parent; if (_local4 == null){ return; }; }; if ((_local4 is SkillIcon)){ if (_local4.name.search("idle") > -1){ if (_local3.skill_ref.active){ if (_local3.skill_ref == char_ref.skills[0]){ updateValues(); return; }; _local3.skill_ref.active = false; SkillIcon(_local4).skill_ref.position = _local3.skill_ref.position; SkillIcon(_local4).skill_ref.active = true; }; updateValues(); } else { if (_local4.name.search("active") > -1){ if (_local3.skill_ref.active){ _local2 = _local3.skill_ref.position; _local3.skill_ref.position = SkillIcon(_local4).skill_ref.position; SkillIcon(_local4).skill_ref.position = _local2; updateValues(); } else { if (SkillIcon(_local4).skill_ref == char_ref.skills[0]){ updateValues(); return; }; _local3.skill_ref.position = SkillIcon(_local4).skill_ref.position; _local3.skill_ref.active = true; SkillIcon(_local4).skill_ref.active = false; updateValues(); }; }; }; } else { if ((_local4 is SkillIconEmpty)){ _local3.x = _local4.x; _local3.y = _local4.y; if (_local4.name.search("idle") > -1){ if (_local3.skill_ref == char_ref.skills[0]){ updateValues(); return; }; if (_local3.skill_ref.active){ _local3.skill_ref.active = false; updateValues(); }; } else { if (_local4.name.search("active") > -1){ _local3.skill_ref.active = true; _local3.skill_ref.position = _local4.name.charAt((_local4.name.length - 1)).valueOf(); updateValues(); }; }; } else { updateValues(); }; }; } } }//package
Section 50
//CharStatsPanel (CharStatsPanel) package { import flash.events.*; import flash.text.*; import flash.display.*; public class CharStatsPanel extends Sprite { const color_green:uint = 52275; const color_white:uint = 0xFFFFFF; const color_red:uint = 0xE90000; public var dexterity_inc:StatIncreaseButton; public var healthRegen_number:StatNumber; public var str_number:StatNumber; public var damage_number:StatNumber; public var poisonResist_number:StatNumber; public var quickness_number:StatNumber; public var end_number:StatNumber; var char_ref:PlayerCharacter; public var powerRegen_number:StatNumber; public var lethality_number:StatNumber; public var armor_number:StatNumber; public var accuracy_number:StatNumber; public var dex_number:StatNumber; public var statpoints_number:StatNumber; public var stun_number:StatNumber; public var reduction_number:StatNumber; public var int_number:StatNumber; public var intellect_inc:StatIncreaseButton; public var stunResist_number:StatNumber; public var endurance_inc:StatIncreaseButton; public var blind_number:StatNumber; public var vampiric_number:StatNumber; public var poison_number:StatNumber; public var reflection_number:StatNumber; public var strength_inc:StatIncreaseButton; public function CharStatsPanel(_arg1:PlayerCharacter=null){ char_ref = _arg1; strength_inc.addEventListener(MouseEvent.MOUSE_DOWN, statClick); endurance_inc.addEventListener(MouseEvent.MOUSE_DOWN, statClick); dexterity_inc.addEventListener(MouseEvent.MOUSE_DOWN, statClick); intellect_inc.addEventListener(MouseEvent.MOUSE_DOWN, statClick); if (_arg1 != null){ updateValues(); }; } public function updateValues(){ var _local1:*; var _local2:*; if (char_ref == null){ return; }; if (char_ref.stat_points){ enableButtons(); } else { disableButtons(); }; str_number.nlabel.text = String(char_ref.getStrength()); end_number.nlabel.text = String(char_ref.getEndurance()); dex_number.nlabel.text = String(char_ref.getDexterity()); int_number.nlabel.text = String(char_ref.getIntellect()); statpoints_number.nlabel.text = String(char_ref.stat_points); accuracy_number.nlabel.text = (String(char_ref.getAccuracy()) + "%"); quickness_number.nlabel.text = String(char_ref.getQuickness()); damage_number.nlabel.text = String(char_ref.getWeaponDamage()); armor_number.nlabel.text = String(char_ref.getArmorRating()); reduction_number.nlabel.text = (String(char_ref.getDamageResist()) + "%"); poisonResist_number.nlabel.text = (String(char_ref.getPoisonResist()) + "%"); stunResist_number.nlabel.text = (String(char_ref.getStunResist()) + "%"); healthRegen_number.nlabel.text = String(char_ref.getHealthRegen()); powerRegen_number.nlabel.text = String(char_ref.getPowerRegen()); vampiric_number.nlabel.text = (String(char_ref.getVampiric()) + "%"); stun_number.nlabel.text = (String(char_ref.getStunChance()) + "%"); poison_number.nlabel.text = String(char_ref.getPoisonDamage()); blind_number.nlabel.text = String(char_ref.getAccuracyDamage()); lethality_number.nlabel.text = (String(char_ref.getLethality()) + "%"); reflection_number.nlabel.text = (String(char_ref.getDamageReflection()) + "%"); reduction_number.nlabel.textColor = color_white; damage_number.nlabel.textColor = color_white; poisonResist_number.nlabel.textColor = color_white; stunResist_number.nlabel.textColor = color_white; quickness_number.nlabel.textColor = color_white; if (char_ref.potion_damage_resist){ reduction_number.nlabel.textColor = color_green; }; if (char_ref.potion_damage_bonus){ damage_number.nlabel.textColor = color_green; }; if (char_ref.potion_poison_resist){ poisonResist_number.nlabel.textColor = color_green; }; if (char_ref.potion_stun_resist){ stunResist_number.nlabel.textColor = color_green; }; if (char_ref.potion_quickness_bonus){ quickness_number.nlabel.textColor = color_green; }; str_number.tt_title = "Strength"; end_number.tt_title = "Endurance"; dex_number.tt_title = "Dexterity"; int_number.tt_title = "Intellect"; statpoints_number.tt_title = "Stat Points"; accuracy_number.tt_title = "Accuracy"; quickness_number.tt_title = "Quickness"; damage_number.tt_title = "Weapon Damage"; armor_number.tt_title = "Armor Rating"; reduction_number.tt_title = "Damage Reduction"; poisonResist_number.tt_title = "Poison Resistance"; stunResist_number.tt_title = "Stun Resistance"; healthRegen_number.tt_title = "Health Regeneration"; powerRegen_number.tt_title = "Power Regeneration"; vampiric_number.tt_title = "Health Drain on Hit"; stun_number.tt_title = "Cause Stun on Hit"; poison_number.tt_title = "Poison Damage on Hit"; blind_number.tt_title = "Accuracy Damage on Hit"; lethality_number.tt_title = "Instant Kill on Hit"; reflection_number.tt_title = "Damage Reflection"; str_number.tt_text = "Increases damage done with melee weapons."; end_number.tt_text = "Increases total health points."; dex_number.tt_text = "Increases damage done with ranged weapons."; int_number.tt_text = "Increases damage done with magic."; statpoints_number.tt_text = "You may spend Stat Points to increase one of the character's four main statistics: Strength, Endurance, Dexterity or Intellect. A character gains an extra Stat Point each time they level up."; accuracy_number.tt_text = "Chance to hit with attacks in combat. Higher accuracy is always better, as it helps counteract Blind effects."; quickness_number.tt_text = "Determines turn order in combat. Characters with higher Quickness act sooner."; armor_number.tt_text = "The total of the Armor Rating on all the character's equipment. A higher armor rating grants a greater level of incoming damage reduction."; reduction_number.tt_text = "Damage the character receives is reduced by this amount."; poisonResist_number.tt_text = "Percentage reduction in the damage received from poison effects."; stunResist_number.tt_text = "Percentage chance of resisting stun effects."; healthRegen_number.tt_text = "Health regenerated during combat at the start of the character's turn."; powerRegen_number.tt_text = "Power regenerated during combat at the start of the character's turn."; vampiric_number.tt_text = "Damaging hits will return this percentage of damage caused back to the character as restored health."; stun_number.tt_text = "Percentage chance that damaging hits will stun the target."; poison_number.tt_text = "Damaging hits will add this amount of ongoing poison damage to the target."; blind_number.tt_text = "On a damaging hit, the target's accuracy is reduced by up to this amount."; lethality_number.tt_text = "Percentage chance that damaging hits will instantly kill the target."; reflection_number.tt_text = "This percentage of damage received is inflicted on the attacker."; damage_number.tt_text = "Damage for basic weapon attacks."; if (char_ref.gear[Equipment.weapon]){ _local1 = 0; _local2 = "stat"; damage_number.tt_text = (damage_number.tt_text + (("\n\n" + char_ref.gear[Equipment.weapon].damage) + " (weapon)")); if ((char_ref.gear[Equipment.weapon] is iDagger)){ _local1 = (char_ref.getStrengthDamageBonus() + char_ref.getDexterityDamageBonus()); _local2 = "strength+dexterity"; } else { if ((char_ref.gear[Equipment.weapon] is MeleeWeapon)){ _local1 = char_ref.getStrengthDamageBonus(); _local2 = "strength"; } else { if ((char_ref.gear[Equipment.weapon] is RangedWeapon)){ _local1 = char_ref.getDexterityDamageBonus(); _local2 = "dexterity"; } else { if ((char_ref.gear[Equipment.weapon] is MageWeapon)){ _local1 = char_ref.getIntellectDamageBonus(); _local2 = "intellect"; }; }; }; }; damage_number.tt_text = (damage_number.tt_text + ((((" + " + _local1) + " (") + _local2) + " bonus)\n")); } else { damage_number.tt_text = (("Damage for basic attacks.\n\n " + char_ref.getUnarmedDamage()) + " (strength bonus)"); }; } private function disableButtons():void{ strength_inc.gotoAndStop(2); endurance_inc.gotoAndStop(2); dexterity_inc.gotoAndStop(2); intellect_inc.gotoAndStop(2); } private function enableButtons():void{ strength_inc.gotoAndStop(1); endurance_inc.gotoAndStop(1); dexterity_inc.gotoAndStop(1); intellect_inc.gotoAndStop(1); } public function cleanup():void{ strength_inc.removeEventListener(MouseEvent.MOUSE_DOWN, statClick); endurance_inc.removeEventListener(MouseEvent.MOUSE_DOWN, statClick); dexterity_inc.removeEventListener(MouseEvent.MOUSE_DOWN, statClick); intellect_inc.removeEventListener(MouseEvent.MOUSE_DOWN, statClick); strength_inc.cleanup(); endurance_inc.cleanup(); dexterity_inc.cleanup(); intellect_inc.cleanup(); str_number.cleanup(); end_number.cleanup(); dex_number.cleanup(); int_number.cleanup(); statpoints_number.cleanup(); accuracy_number.cleanup(); quickness_number.cleanup(); armor_number.cleanup(); reduction_number.cleanup(); reflection_number.cleanup(); poisonResist_number.cleanup(); stunResist_number.cleanup(); healthRegen_number.cleanup(); powerRegen_number.cleanup(); vampiric_number.cleanup(); poison_number.cleanup(); blind_number.cleanup(); lethality_number.cleanup(); damage_number.cleanup(); } function statClick(_arg1:MouseEvent):void{ var _local2:*; _local2 = false; if (!char_ref.stat_points){ disableButtons(); return; }; if (_arg1.currentTarget.contains(strength_inc)){ char_ref.strength++; _local2 = true; } else { if (_arg1.currentTarget.contains(endurance_inc)){ char_ref.endurance++; _local2 = true; } else { if (_arg1.currentTarget.contains(dexterity_inc)){ char_ref.dexterity++; _local2 = true; } else { if (_arg1.currentTarget.contains(intellect_inc)){ char_ref.intellect++; _local2 = true; }; }; }; }; if (_local2){ char_ref.stat_points--; if (!char_ref.stat_points){ disableButtons(); }; if (((!((parent == null))) && ((parent is CharInfoPanel)))){ CharInfoPanel(parent).updateValues(); }; }; } } }//package
Section 51
//ClassIcon (ClassIcon) package { import flash.display.*; public dynamic class ClassIcon extends MovieClip { public var bg:ClassIconBG; } }//package
Section 52
//ClassIconBG (ClassIconBG) package { import flash.display.*; public dynamic class ClassIconBG extends MovieClip { } }//package
Section 53
//clone_create_effect (clone_create_effect) package { import flash.display.*; public dynamic class clone_create_effect extends MovieClip { public function clone_create_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.clone); } function frame45(){ this.stop(); } } }//package
Section 54
//clone_effect (clone_effect) package { import flash.display.*; public dynamic class clone_effect extends MovieClip { public function clone_effect(){ addFrameScript(44, frame45); } function frame45(){ this.stop(); } } }//package
Section 55
//ClonePortrait (ClonePortrait) package { import flash.display.*; public dynamic class ClonePortrait extends MovieClip { } }//package
Section 56
//coins_sound (coins_sound) package { import flash.media.*; public dynamic class coins_sound extends Sound { } }//package
Section 57
//Consumable (Consumable) package { public class Consumable extends Item { private var _stack:int;// = 1 var restore_power:int;// = 0 var damage_bonus:int;// = 0 var poison_resist:int;// = 0 var resurrect:Boolean;// = false var quickness_bonus:int;// = 0 var sneaky:Boolean;// = false var restore_health:int;// = 0 var stun_resist:int;// = 0 var damage_resist:int;// = 0 public function Consumable(){ _stack = 1; restore_health = 0; restore_power = 0; resurrect = false; sneaky = false; damage_resist = 0; damage_bonus = 0; poison_resist = 0; stun_resist = 0; quickness_bonus = 0; super(); item_name = "Consumable"; item_level = 0; item_rarity = Item.grey; icon_frame = 1; } public function get stack():int{ return (this._stack); } public function set stack(_arg1:int):void{ this._stack = _arg1; } override public function getItemTypeString(){ return ("Consumable"); } public function basicPowerPotion(){ item_name = "Weak Power Potion"; restore_power = 20; item_rarity = Item.green; item_level = 1; icon_frame = 5; } public function basicRejuvePotion(){ item_name = "Weak Rejuvenation Potion"; restore_health = 20; restore_power = 20; item_rarity = Item.blue; item_level = 1; icon_frame = 7; } public function basicRevivePotion(){ item_name = "Weak Revival Potion"; restore_health = 1; resurrect = true; item_rarity = Item.green; item_level = 1; icon_frame = 6; } public function consume(_arg1:PlayerCharacter, _arg2:Party):Boolean{ var _local3:Boolean; var _local4:*; var _local5:*; _local3 = false; if (((sneaky) && ((_arg2.sneaking < 2)))){ _arg2.sneaking = 2; _local3 = true; }; if (((restore_health) && (_arg1.increaseHealthByPercentage(restore_health, resurrect)))){ _local3 = true; }; if (_arg1.health > 0){ if (restore_power){ if (_arg1.increasePower(restore_power)){ _local3 = true; }; }; if (damage_resist){ _arg1.potion_damage_resist = Math.max(_arg1.potion_damage_resist, damage_resist); _local3 = true; }; if (poison_resist){ _arg1.potion_poison_resist = Math.max(_arg1.potion_poison_resist, poison_resist); _local3 = true; }; if (stun_resist){ _arg1.potion_stun_resist = Math.max(_arg1.potion_stun_resist, stun_resist); _local3 = true; }; if (quickness_bonus){ _arg1.potion_quickness_bonus = Math.max(_arg1.potion_quickness_bonus, quickness_bonus); _local3 = true; }; }; if (_local3){ this.stack--; if (this.stack <= 0){ _local4 = 0; while (_local4 < Party.MAX_INVENTORY) { if (_arg2.inventory[_local4] == this){ _arg2.inventory.splice(_local4, 1); }; _local4++; }; _local4 = 0; while (_local4 < Party.MAX_OVERFLOW) { if (_arg2.overflow[_local4] == this){ _arg2.overflow.splice(_local4, 1); }; _local4++; }; }; }; return (_local3); } override public function itemStatsString(_arg1:String):String{ _arg1 = ""; _arg1 = (_arg1 + "Use: "); if (resurrect){ _arg1 = (_arg1 + "Revives a character\n"); }; if (sneaky){ _arg1 = (_arg1 + "Allows the party to pass by one enemy horde without being attacked\n"); }; if (restore_health){ _arg1 = (_arg1 + (("Restores " + restore_health) + "% maximum health\n")); }; if (restore_power){ _arg1 = (_arg1 + (("Restores " + restore_power) + "% maximum power\n")); }; if (damage_resist){ _arg1 = (_arg1 + (("Grants +" + damage_resist) + "% damage resistance for next battle\n")); }; if (damage_bonus){ _arg1 = (_arg1 + (("Grants +" + damage_bonus) + "% bonus damage for next battle\n")); }; if (stun_resist){ _arg1 = (_arg1 + (("Grants +" + stun_resist) + "% stun resistance for next battle\n")); }; if (poison_resist){ _arg1 = (_arg1 + (("Grants +" + poison_resist) + "% poison resistance for next battle\n")); }; if (quickness_bonus){ _arg1 = (_arg1 + (("Grants +" + quickness_bonus) + " quickness for next battle\n")); }; _arg1 = (_arg1 + "\n(Cannot be used in combat)\n"); return (_arg1); } public function basicHealthPotion(){ item_name = "Weak Healing Potion"; restore_health = 20; item_rarity = Item.green; item_level = 1; icon_frame = 4; } } }//package
Section 58
//ContinueButton (ContinueButton) package { import flash.display.*; public dynamic class ContinueButton extends MovieClip { } }//package
Section 59
//CorridorConnectorH (CorridorConnectorH) package { import flash.display.*; public class CorridorConnectorH extends DoorIcon { public var gfx:MovieClip; public function CorridorConnectorH(){ this.gotoAndStop(1); } override public function setAlpha(_arg1:Number):void{ gfx.alpha = _arg1; } override public function getAlpha():Number{ return (gfx.alpha); } } }//package
Section 60
//CorridorConnectorV (CorridorConnectorV) package { import flash.display.*; public class CorridorConnectorV extends DoorIcon { public var gfx:MovieClip; public function CorridorConnectorV(){ this.gotoAndStop(1); } override public function setAlpha(_arg1:Number):void{ gfx.alpha = _arg1; } override public function getAlpha():Number{ return (gfx.alpha); } } }//package
Section 61
//cosmic_prison (cosmic_prison) package { import flash.display.*; public dynamic class cosmic_prison extends MovieClip { public function cosmic_prison(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.cosmicPrison); } function frame45(){ this.stop(); } } }//package
Section 62
//cosmic_prison_sound (cosmic_prison_sound) package { import flash.media.*; public dynamic class cosmic_prison_sound extends Sound { } }//package
Section 63
//creature_slash (creature_slash) package { import flash.display.*; public dynamic class creature_slash extends MovieClip { public var blood:BloodRandom; public function creature_slash(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterClaws); } function frame45(){ this.stop(); } } }//package
Section 64
//creature_slash_sound (creature_slash_sound) package { import flash.media.*; public dynamic class creature_slash_sound extends Sound { } }//package
Section 65
//creature_spear (creature_spear) package { import flash.display.*; public dynamic class creature_spear extends MovieClip { public var blood:BloodRandom; public var slash:MovieClip; public function creature_spear(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterSlash); } function frame45(){ this.stop(); } } }//package
Section 66
//creature_weapon (creature_weapon) package { import flash.display.*; public dynamic class creature_weapon extends MovieClip { public var blood:BloodRandom; public var slash:horz_slash; public function creature_weapon(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterSlash); slash.rotation = DungeonMain.RandomNum(-15, 15); } function frame45(){ this.stop(); } } }//package
Section 67
//CreditsButton (CreditsButton) package { import flash.display.*; public dynamic class CreditsButton extends SimpleButton { } }//package
Section 68
//CreditsScreen (CreditsScreen) package { import flash.events.*; import flash.display.*; public class CreditsScreen extends MovieClip { public var yes_btn:ContinueButton; public var cerberus_link:SimpleButton; public var biclops_link:SimpleButton; public function CreditsScreen():void{ biclops_link.addEventListener(MouseEvent.MOUSE_DOWN, biclopsClick); cerberus_link.addEventListener(MouseEvent.MOUSE_DOWN, cerberusClick); yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, exitClick); } function exitClick(_arg1:MouseEvent):void{ if (this.parent != null){ cleanup(); parent.removeChild(this); }; } public function cerberusClick(_arg1:MouseEvent):void{ dm.link("http://www.cerberusart.com"); } private function cleanup():void{ biclops_link.removeEventListener(MouseEvent.MOUSE_DOWN, biclopsClick); cerberus_link.removeEventListener(MouseEvent.MOUSE_DOWN, cerberusClick); yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, exitClick); } public function biclopsClick(_arg1:MouseEvent):void{ dm.link("http://www.biclopsgames.com"); } } }//package
Section 69
//CurrentPortraitHighlight (CurrentPortraitHighlight) package { import flash.display.*; public dynamic class CurrentPortraitHighlight extends MovieClip { } }//package
Section 70
//CurrentRoomIcon (CurrentRoomIcon) package { import flash.display.*; public dynamic class CurrentRoomIcon extends MovieClip { } }//package
Section 71
//curse_effect (curse_effect) package { import flash.display.*; public dynamic class curse_effect extends MovieClip { public function curse_effect(){ addFrameScript(0, frame1, 49, frame50); } function frame1(){ dm.sound.play(SoundControl.curse, 0.5); } function frame50(){ this.stop(); } } }//package
Section 72
//curse_sound (curse_sound) package { import flash.media.*; public dynamic class curse_sound extends Sound { } }//package
Section 73
//dCheckBox (dCheckBox) package { import flash.events.*; import flash.text.*; import flash.display.*; public class dCheckBox extends MovieClip { public var description:TextField; var hover:Boolean;// = false var checked:Boolean;// = false public function dCheckBox(_arg1:Boolean=false, _arg2:String=""){ checked = false; hover = false; super(); checked = _arg1; addEventListener(MouseEvent.MOUSE_DOWN, mouseClick); addEventListener(MouseEvent.MOUSE_OVER, mouseOn); addEventListener(MouseEvent.MOUSE_OUT, mouseOff); setDescription(_arg2); update(); } function mouseClick(_arg1:MouseEvent):void{ checked = !(checked); update(); } public function clicked(_arg1:MouseEvent=null){ this.gotoAndPlay(2); } function mouseOn(_arg1:MouseEvent):void{ hover = true; update(); } function mouseOff(_arg1:MouseEvent):void{ hover = false; update(); } public function setDescription(_arg1:String):void{ description.text = _arg1; dm.embolden(description); description.autoSize = TextFieldAutoSize.LEFT; } public function cleanup():void{ removeEventListener(MouseEvent.MOUSE_DOWN, mouseClick); removeEventListener(MouseEvent.MOUSE_OVER, mouseOn); removeEventListener(MouseEvent.MOUSE_OUT, mouseOff); } private function update():void{ if (!checked){ if (hover){ this.gotoAndStop(3); } else { this.gotoAndStop(1); }; } else { if (hover){ this.gotoAndStop(4); } else { this.gotoAndStop(2); }; }; } public function setChecked(_arg1:Boolean):void{ this.checked = _arg1; update(); } } }//package
Section 74
//DeadEffect (DeadEffect) package { import flash.display.*; public dynamic class DeadEffect extends MovieClip { } }//package
Section 75
//debuff_effect (debuff_effect) package { import flash.display.*; public dynamic class debuff_effect extends MovieClip { public function debuff_effect(){ addFrameScript(4, frame5, 44, frame45); } function frame5(){ dm.sound.play(SoundControl.debuff); } function frame45(){ this.stop(); } } }//package
Section 76
//debuff_sound (debuff_sound) package { import flash.media.*; public dynamic class debuff_sound extends Sound { } }//package
Section 77
//DeleteButton (DeleteButton) package { import flash.display.*; public dynamic class DeleteButton extends MovieClip { } }//package
Section 78
//destroy_item_sound (destroy_item_sound) package { import flash.media.*; public dynamic class destroy_item_sound extends Sound { } }//package
Section 79
//DiscardButton (DiscardButton) package { import flash.display.*; public dynamic class DiscardButton extends MovieClip { } }//package
Section 80
//disintegrate_effect (disintegrate_effect) package { import flash.display.*; public dynamic class disintegrate_effect extends MovieClip { public function disintegrate_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.disintegrate); } function frame45(){ this.stop(); } } }//package
Section 81
//disintegrate_sound (disintegrate_sound) package { import flash.media.*; public dynamic class disintegrate_sound extends Sound { } }//package
Section 82
//dm (dm) package { import flash.text.*; import flash.display.*; import flash.net.*; import flash.external.*; public class dm { static var stage:Stage; static var sound:SoundControl; static var main:DungeonMain; public static function shuffleArray(_arg1:Array):Array{ var _local2:Array; var _local3:Array; var _local4:*; var _local5:Array; _local2 = new Array(); _local3 = new Array(_arg1.length); _local4 = 0; while (_local4 < _local3.length) { _local3[_local4] = _arg1[_local4]; _local4++; }; while (_local3.length) { _local4 = dm.randomNum(0, (_local3.length - 1)); _local5 = _local3.splice(_local4, 1); _local2.push(_local5[0]); }; return (_local2); } public static function randomNum(_arg1:int, _arg2:int):int{ var _local3:*; _local3 = (Math.round((Math.random() * (_arg2 - _arg1))) + _arg1); return (_local3); } public static function copyArray(_arg1:Array):Array{ var _local2:Array; var _local3:*; _local2 = new Array(_arg1.length); _local3 = 0; while (_local3 < _local2.length) { _local2[_local3] = _arg1[_local3]; _local3++; }; return (_local2); } public static function childToTop(_arg1:DisplayObjectContainer):void{ var _local2:*; if ((((_arg1 == null)) || ((_arg1.parent == null)))){ return; }; _local2 = (_arg1.parent.numChildren - 1); _arg1.parent.setChildIndex(_arg1, _local2); } static function vector_length(_arg1:Number, _arg2:Number):Number{ return (Math.sqrt(((_arg1 * _arg1) + (_arg2 * _arg2)))); } public static function joinArrays(_arg1:Array, _arg2:Array):Array{ var _local3:Array; var _local4:*; _local3 = new Array(); _local4 = 0; while (_local4 < _arg1.length) { _local3.push(_arg1[_local4]); _local4++; }; _local4 = 0; while (_local4 < _arg2.length) { _local3.push(_arg2[_local4]); _local4++; }; return (_local3); } static function dot(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (((_arg1 * _arg3) + (_arg2 * _arg4))); } static function vectors2angle(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; _local5 = vector_length(_arg1, _arg2); _local6 = vector_length(_arg3, _arg4); if (_local5 != 0){ _arg1 = (_arg1 / _local5); _arg2 = (_arg2 / _local5); }; if (_local6 != 0){ _arg3 = (_arg3 / _local6); _arg4 = (_arg4 / _local6); }; _local7 = dot(_arg1, _arg2, _arg3, _arg4); _local8 = (_local7 / (Math.sqrt(vector_length(_arg1, _arg2)) * Math.sqrt(vector_length(_arg3, _arg4)))); _local9 = Math.acos(_local8); _local10 = dm.radians_to_degrees(_local9); return (_local10); } public static function embolden(_arg1:TextField){ var _local2:TextFormat; _local2 = _arg1.getTextFormat(); _local2.bold = true; _arg1.setTextFormat(_local2); } static function radians_to_degrees(_arg1:Number):Number{ return ((_arg1 * (180 / Math.PI))); } public static function link(_arg1:String):void{ var url = _arg1; try { ExternalInterface.call("window.open", url, "_blank", ""); } catch(error) { navigateToURL(new URLRequest(url), "_blank"); }; } } }//package
Section 83
//DoorIcon (DoorIcon) package { import flash.display.*; public class DoorIcon extends MovieClip { public var door_gfx:MovieClip; var room2:DungeonRoom; var room1:DungeonRoom; public function DoorIcon(){ this.gotoAndStop(1); } public function setAlpha(_arg1:Number):void{ this.door_gfx.alpha = _arg1; } public function getAlpha():Number{ return (this.door_gfx.alpha); } public function setVert():void{ this.rotation = 90; } } }//package
Section 84
//DownLevelButton (DownLevelButton) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.geom.*; public class DownLevelButton extends MovieClip { var tooltip:Tooltip; var tt_text:String; var tt_title:String; public function DownLevelButton(){ tt_title = "Descend"; tt_text = "You have found the exit from this level. When you are ready, click here to proceed."; } function mouseOverTarget(_arg1:MouseEvent):void{ var _local2:uint; var _local3:*; var _local4:*; var _local5:Point; _local2 = (parent.numChildren - 1); parent.setChildIndex(this, _local2); if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local3 = _arg1.target.mouseX; _local4 = _arg1.target.mouseY; _local5 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); if ((_local5.x + tooltip.width) > DungeonMain.app_width){ _local3 = (_local3 + (DungeonMain.app_width - (_local5.x + tooltip.width))); }; if ((_local5.y + tooltip.height) > DungeonMain.app_height){ _local4 = (_local4 + (DungeonMain.app_height - (_local5.y + tooltip.height))); }; tooltip.x = _local3; tooltip.y = _local4; _arg1.updateAfterEvent(); } private function newTooltip():Boolean{ tooltip = new Tooltip(tt_title, tt_text); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip_skill"; addChild(tooltip); return (true); } function mouseMoveTarget(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:Point; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.mouseX; _local3 = _arg1.target.mouseY; _local4 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); if ((_local4.x + tooltip.width) > DungeonMain.app_width){ _local2 = (_local2 + (DungeonMain.app_width - (_local4.x + tooltip.width))); }; if ((_local4.y + tooltip.height) > DungeonMain.app_height){ _local3 = (_local3 + (DungeonMain.app_height - (_local4.y + tooltip.height))); }; tooltip.x = _local2; tooltip.y = _local3; _arg1.updateAfterEvent(); } function mouseOutTarget(_arg1:MouseEvent):void{ if (tooltip != null){ removeChild(tooltip); tooltip = null; }; } } }//package
Section 85
//DownLevelDialog (DownLevelDialog) package { import flash.events.*; import flash.display.*; import flash.ui.*; public class DownLevelDialog extends MovieClip { public var yes_btn:YesButton; public var no_btn:NotYetButton; public function DownLevelDialog(){ this.yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickYes); this.no_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function clickYes(_arg1:MouseEvent):void{ Dungeon(parent).descend(); cleanup(); } function clickNo(_arg1:MouseEvent):void{ if (parent != null){ cleanup(); parent.removeChild(this); }; } private function cleanup():void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickYes); no_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ clickYes(null); } else { if (_arg1.keyCode == Keyboard.ESCAPE){ clickNo(null); }; }; } } }//package
Section 86
//Dungeon (Dungeon) package { import flash.events.*; import flash.display.*; import flash.ui.*; public class Dungeon extends Sprite { const hintStart = 32; const tile_dungeon = 1; const hintBattle = 8; const tile_cave = 2; const hintInventory = 2; const hintDefeat = 4; const hintSave = 128; const hintLevel = 1; const hintTurn = 64; const hintHorde = 16; const bar_max_width = 147; var bossRoom:DungeonRoom; var a_tallrooms:Array; var previousLevelCleared;// = false var entryRoom:DungeonRoom; var hint:HintDialog; var door_array:Array; var currentRoomIcon:CurrentRoomIcon; var a_chambers:Array; var moveArrow:Sprite; var shrines:Array; var race:int;// = 0 var tileset:int; var a_galleries:Array; var exitRoom:DungeonRoom; var exit_found;// = false var a_largerooms:Array; var grid:Array; var dinterface:DungeonInterface; var a_corridors:Array; var chests:Array; var pc_party:Party; var a_widerooms:Array; var dungeon_level:int;// = 1 var hordes:Array; var a_cells:Array; var currentRoom:DungeonRoom; var room_array:Array; static const grid_height = 15; static const GRID_SIZE = 20; static const SCREEN_Y_OFFSET = 10; static const grid_width = 27; static const SCREEN_X_OFFSET = 5; public function Dungeon(_arg1:Party=null, _arg2:int=1, _arg3:int=0, _arg4:Boolean=false){ dungeon_level = 1; race = 0; tileset = tile_dungeon; room_array = new Array(); door_array = new Array(); hordes = new Array(); shrines = new Array(); chests = new Array(); exit_found = false; previousLevelCleared = false; super(); if (_arg1 == null){ return; }; this.previousLevelCleared = _arg4; dungeon_level = _arg2; pc_party = _arg1; dinterface = new DungeonInterface(); if (!_arg3){ race = Dungeon.getMonsterRace(_arg2, 0); } else { race = _arg3; }; drawInterface(); if (DungeonMain.showHints){ if ((((_arg2 == 2)) && (!(hintShown(hintLevel))))){ hint = new HintDialog("Level Up!", "You have descended to the next level of the dungeon, and your characters have grown in power. \n\nEach level they will gain points to increase their statistics and buy new skills.\n\nClick on a portrait to enter the Inventory screen and spend these points."); DungeonMain.hints = (DungeonMain.hints + hintLevel); }; if ((((_arg2 == 1)) && (!(hintShown(hintStart))))){ hint = new HintDialog("The Dungeon Map", "This is the Dungeon Map. From here, you move your party from room to room, encountering monsters and finding treasure while searching for the entrance to the next level of the dungeon.\n\nThe brightest room shows the current position of your party, while slightly dimmer rooms are those you can move to from your current position. Simply click on a room to move there.\n\nIf you can't figure out where to explore next, try clicking the 'Map Hint' button."); DungeonMain.hints = (DungeonMain.hints + hintStart); }; }; } private function saveClick(_arg1:MouseEvent):void{ if (parent != null){ DungeonMain(parent).saveClick(_arg1); }; } public function exploreAll(_arg1:MouseEvent):void{ var _local2:*; foundExit(); _local2 = 0; while (_local2 < room_array.length) { if (room_array[_local2] == null){ } else { room_array[_local2].explored = true; room_array[_local2].seen = true; }; _local2++; }; roomHighlights(); } private function generateDoors():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:DoorIcon; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:*; var _local13:*; _local10 = -1; _local11 = -1; _local1 = 0; while (_local1 < room_array.length) { _local2 = 0; for (;_local2 < room_array[_local1].adjacent.length;_local2++) { if (room_array[_local1] == null){ } else { if (room_array[_local1].adjacent[_local2] == room_array[_local1]){ } else { _local8 = room_array[_local1]; _local7 = room_array[_local1].adjacent[_local2]; if ((((_local7 is DungeonCorridor)) && ((room_array[_local1] is DungeonCorridor)))){ addCorridorConnection(_local7, room_array[_local1]); } else { _local6 = new DoorIcon(); _local6.x = 0; _local6.y = 0; _local6.room1 = _local8; _local6.room2 = _local7; _local12 = 0; _local13 = 0; if (_local7.grid_x >= (_local8.grid_x + _local8.getGridWidth())){ _local6.setVert(); _local12 = (_local8.grid_x + _local8.getGridWidth()); _local13 = _local8.grid_y; if ((((_local12 >= grid_width)) || ((_local13 >= grid_height)))){ continue; }; _local6.x = (SCREEN_X_OFFSET + (GRID_SIZE * (_local8.grid_x + _local8.getGridWidth()))); _local10 = -1; _local11 = -1; _local3 = 0; while (_local3 < _local8.getGridHeight()) { _local9 = grid[_local12][(_local13 + _local3)]; if (_local9 == null){ } else { if (_local9 == _local7){ if (_local10 == -1){ _local10 = _local3; }; _local11 = _local3; }; }; _local3++; }; _local5 = ((_local10 + _local11) / 2); _local6.y = (SCREEN_Y_OFFSET + (GRID_SIZE * (_local8.grid_y + _local5))); } else { if (_local7.grid_y >= (_local8.grid_y + _local8.getGridHeight())){ _local12 = _local8.grid_x; _local13 = (_local8.grid_y + _local8.getGridHeight()); if ((((_local12 >= grid_width)) || ((_local13 >= grid_height)))){ continue; }; _local6.y = Math.round((SCREEN_Y_OFFSET + (GRID_SIZE * (_local8.grid_y + _local8.getGridHeight())))); _local10 = -1; _local11 = -1; _local3 = 0; while (_local3 < _local8.getGridWidth()) { _local9 = grid[(_local12 + _local3)][_local13]; if (_local9 == null){ } else { if (_local9 == _local7){ if (_local10 == -1){ _local10 = _local3; }; _local11 = _local3; }; }; _local3++; }; _local5 = ((_local10 + _local11) / 2); _local6.x = (SCREEN_X_OFFSET + (GRID_SIZE * (_local8.grid_x + _local5))); }; }; if ((((_local6.x > 0)) && ((_local6.y > 0)))){ door_array.push(_local6); DungeonRoom(_local6.room1).addDoor(_local6); DungeonRoom(_local6.room2).addDoor(_local6); }; }; }; }; }; _local1++; }; } private function drawRooms():void{ var _local1:*; _local1 = 0; while (_local1 < room_array.length) { if (room_array[_local1] == null){ } else { room_array[_local1].index = _local1; this.addChild(room_array[_local1]); }; _local1++; }; } private function newCorridorConnection(_arg1:Boolean, _arg2:int, _arg3:int, _arg4:DungeonRoom, _arg5:DungeonRoom):void{ var _local6:*; if (_arg1){ _local6 = new CorridorConnectorV(); } else { _local6 = new CorridorConnectorH(); }; _local6.room1 = _arg4; _local6.room2 = _arg5; _local6.y = _arg3; _local6.x = _arg2; _arg4.addDoor(_local6); _arg5.addDoor(_local6); door_array.push(_local6); } private function updateInventoryCount():void{ dinterface.items_label.text = ((String((pc_party.inventory.length + pc_party.overflow.length)) + "/") + String(Party.MAX_INVENTORY)); if (pc_party.overflow.length){ dinterface.items_label.textColor = 0xFF0000; } else { dinterface.items_label.textColor = 0xFFFFFF; }; dm.embolden(dinterface.items_label); } private function addRoomToTypeArray(_arg1:DungeonRoom):void{ if ((((_arg1 is rCorridorV)) || ((_arg1 is rCorridorH)))){ a_corridors.push(_arg1); } else { if ((_arg1 is rCell)){ a_cells.push(_arg1); } else { if ((_arg1 is rChamber)){ a_chambers.push(_arg1); } else { if ((_arg1 is rLargeRoom)){ a_largerooms.push(_arg1); } else { if ((_arg1 is rGallery)){ a_galleries.push(_arg1); } else { if ((_arg1 is rTallRoom)){ a_tallrooms.push(_arg1); } else { if ((_arg1 is rWideRoom)){ a_widerooms.push(_arg1); }; }; }; }; }; }; }; } private function isExistingRoomConnection(_arg1:DungeonRoom, _arg2:DungeonRoom):Boolean{ var _local3:*; _local3 = 0; while (_local3 < _arg1.doors.length) { if ((((_arg1.doors[_local3].room1 == _arg2)) || ((_arg1.doors[_local3].room2 == _arg2)))){ return (true); }; _local3++; }; return (false); } private function getRoomCount():int{ return ((room_array.length - a_corridors.length)); } private function PlaceRoom(_arg1:DungeonRoom):Boolean{ var _local2:*; var _local3:*; var _local4:*; _local4 = checkFootprintEmpty(_arg1); if (!_local4){ return (false); }; _arg1.x = (SCREEN_X_OFFSET + (_arg1.grid_x * GRID_SIZE)); _arg1.y = (SCREEN_Y_OFFSET + (_arg1.grid_y * GRID_SIZE)); fillGridForRoom(_arg1); room_array.push(_arg1); _arg1.setFloor(); _arg1.addFurniture(); addRoomToTypeArray(_arg1); return (true); } private function isDungeonTooSmall():Boolean{ if (room_array.length < 40){ return (true); }; if (getRoomCount() < 10){ return (true); }; return (false); } private function ConnectRooms(_arg1:DungeonRoom, _arg2:DungeonRoom, _arg3:int){ var _local4:*; var _local5:*; if ((((_arg2 == null)) || ((_arg1 == null)))){ return; }; if (_arg2.num_adjacent == DungeonRoom.max_adjacent){ return; }; if (_arg1.num_adjacent == DungeonRoom.max_adjacent){ return; }; if ((_arg1 is DungeonCorridor)){ if ((_arg2 is DungeonCorridor)){ _arg1.setAdjacentTo(_arg2); return; }; }; if (_arg2.num_adjacent == 0){ _arg1.setAdjacentTo(_arg2); return; }; if ((_arg1 is DungeonCorridor)){ if (_arg1.num_adjacent < 2){ _arg1.setAdjacentTo(_arg2); return; }; }; if ((_arg2 is DungeonCorridor)){ if (_arg2.num_adjacent < 2){ _arg1.setAdjacentTo(_arg2); return; }; }; _local4 = ((((_arg3 * room_array.length) + _arg2.floor_frame_number) + (_arg1.grid_x * _arg2.grid_y)) + (_arg2.grid_x * _arg1.grid_y)); _local5 = (_local4 % 10); if (_arg1.num_adjacent == 0){ _arg1.setAdjacentTo(_arg2); } else { if (_arg1.num_adjacent == 1){ if (_local5 >= 4){ _arg1.setAdjacentTo(_arg2); }; } else { if (_arg1.num_adjacent == 2){ if (_local5 >= 8){ _arg1.setAdjacentTo(_arg2); }; } else { if (_local5 >= 9){ _arg1.setAdjacentTo(_arg2); }; }; }; }; } private function ClearAllRoomEdges(){ var _local1:*; _local1 = 0; while (_local1 < room_array.length) { if (room_array[_local1] == null){ } else { room_array[_local1].clearAdjacent(); }; _local1++; }; } public function useShrine():void{ var _local1:*; var _local2:*; var _local3:*; if ((((currentRoom.shrine == null)) || (currentRoom.shrine.used))){ return; }; _local1 = getChildByName("shrine_dlg"); if (_local1 != null){ removeChild(_local1); }; pc_party.fullRecovery(); _local2 = 0; while (_local2 < pc_party.members.length) { _local3 = dinterface.getChildByName(("char" + (_local2 + 1))); if (_local3 == null){ } else { CharacterPortrait(_local3).addPortraitAnimation(PortraitAnimation.heal); }; _local2++; }; currentRoom.shrine.used = true; currentRoom.shrine.fade(); pc_party.stat_shrines_used++; if (parent != null){ DungeonMain(parent).saveParty(); DungeonMain(parent).saveDungeon(); }; updateChars(); } function removed(_arg1:Event):void{ stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } public function removeMovementArrow():void{ var _local1:*; _local1 = this; if (((!((moveArrow == null))) && (_local1.contains(moveArrow)))){ _local1.removeChild(moveArrow); moveArrow = null; }; } private function drawInterface(){ var _local1:CharacterPortrait; var _local2:*; var _local3:*; dinterface.x = 0; dinterface.y = 0; this.addChild(dinterface); dinterface.level_label.mouseEnabled = false; dinterface.level_label.text = ("Dungeon Level " + dungeon_level); dm.embolden(dinterface.level_label); if (DungeonMain.debug){ dinterface.explore_btn.addEventListener(MouseEvent.MOUSE_DOWN, exploreAll); dinterface.newdungeon_btn.addEventListener(MouseEvent.MOUSE_DOWN, newDungeonClick); dinterface.clear_btn.addEventListener(MouseEvent.MOUSE_DOWN, clearHordes); dinterface.gear_btn.addEventListener(MouseEvent.MOUSE_DOWN, addDebugGear); dinterface.heal_btn.addEventListener(MouseEvent.MOUSE_DOWN, debugHeal); dinterface.level_debug.text = ((("Health: " + MonsterCharacter.getHealthMax(dungeon_level)) + " | Damage: ") + MonsterCharacter.getBaseDamage(dungeon_level)); } else { if (dinterface.contains(dinterface.explore_btn)){ dinterface.removeChild(dinterface.explore_btn); }; if (dinterface.contains(dinterface.newdungeon_btn)){ dinterface.removeChild(dinterface.newdungeon_btn); }; if (dinterface.contains(dinterface.clear_btn)){ dinterface.removeChild(dinterface.clear_btn); }; if (dinterface.contains(dinterface.gear_btn)){ dinterface.removeChild(dinterface.gear_btn); }; if (dinterface.contains(dinterface.heal_btn)){ dinterface.removeChild(dinterface.heal_btn); }; if (dinterface.contains(dinterface.level_debug)){ dinterface.removeChild(dinterface.level_debug); }; }; dinterface.rest_button.addEventListener(MouseEvent.MOUSE_DOWN, restButtonClick); dinterface.inventory_btn.addEventListener(MouseEvent.MOUSE_DOWN, inventoryClick); dinterface.menu_btn.addEventListener(MouseEvent.MOUSE_DOWN, menuClick); dinterface.hint_btn.addEventListener(MouseEvent.MOUSE_DOWN, hintClick); dinterface.rating_btn.addEventListener(MouseEvent.MOUSE_DOWN, ratingClick); dinterface.maxgames_btn.addEventListener(MouseEvent.MOUSE_DOWN, linkClick); this.addEventListener(Event.ADDED_TO_STAGE, added); this.addEventListener(Event.REMOVED_FROM_STAGE, removed); updateInventoryCount(); _local2 = 0; while (_local2 < pc_party.members.length) { _local3 = dinterface.getChildByName(("slot" + (_local2 + 1))); if (_local3 == null){ } else { _local1 = new CharacterPortrait(); _local1.x = _local3.x; _local1.y = _local3.y; _local1.setChar(pc_party.members[_local2]); _local1.name = ("char" + (_local2 + 1)); _local1.setGlow(); dinterface.addChild(_local1); dinterface.removeChild(_local3); _local1.addEventListener(MouseEvent.MOUSE_DOWN, portraitClick); }; _local2++; }; if (!exit_found){ if (dinterface.getChildByName("descend_button") != null){ dinterface.removeChild(dinterface.descend_button); }; }; if (!previousLevelCleared){ removeRestButton(); }; } public function fullyCleared():Boolean{ var _local1:*; if (getHordesDefeated() == hordes.length){ _local1 = 0; while (_local1 < room_array.length) { if (room_array[_local1].explored == false){ return (false); }; _local1++; }; return (true); }; return (false); } private function addTreasureToRoom(_arg1:DungeonRoom):void{ var _local2:*; _local2 = new TreasureChest(pc_party, dungeon_level); _local2.x = _arg1.getCenterHorz(); _local2.y = _arg1.getCenterVert(); _arg1.treasure = _local2; chests.push(_local2); _arg1.setChild(_local2); _local2.mask = null; } public function getIntroduction(_arg1:int):String{ var _local2:*; var _local3:String; var _local4:*; var _local5:*; var _local6:*; _local2 = false; _local3 = "The party descend to the next level.\n\n"; if (pc_party.members.length == 1){ return (""); }; if ((((dungeon_level > DungeonMain.MAX_LEVEL)) && ((_arg1 == Horde.special)))){ return ((_local3 + "An uneasy peace holds in this area, as the dungeon's denizens come together to plot and scheme.")); }; _local4 = DungeonMain.RandomNum(0, (pc_party.members.length - 1)); if (dm.randomNum(0, 100) < 8){ _local2 = true; } else { _local2 = false; }; if ((pc_party.members[_local4] is PC_Cleric)){ if (_local2){ _local3 = (_local3 + (((pc_party.members[_local4].charname + " performs a rite of battle.\n'") + Horde.nameForRace(_arg1, true)) + ", then? It makes little difference. Nothing may hinder the righteous.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (pc_party.members[_local4].charname + " scowls.\n'This place bears the taint of the undead.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (("'There is heresy here. The greenskins and their false gods hold\nsway,' spits " + pc_party.members[_local4].charname) + ", growing incensed.")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (("'The creatures here are base, soulless things: the work of no higher\npower,' mutters " + pc_party.members[_local4].charname) + ".")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (pc_party.members[_local4].charname + " appears distressed.\n'This place.. it is utterly corrupted by the heresies of the cultists.\nWe should not linger here.'")); }; }; }; }; }; } else { if ((pc_party.members[_local4] is PC_Warrior)){ if (_local2){ _local3 = (_local3 + (((pc_party.members[_local4].charname + " says 'An opportunity to test my prowess against ") + Horde.nameForRace(_arg1)) + " is welcome. To arms!'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (((("'It is plain that this is the domain of the undead. Be on your\nguard,' says " + pc_party.members[_local4].charname) + ", adjusting ") + pc_party.members[_local4].genderPossessive()) + " armor.")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (pc_party.members[_local4].charname + " points.\n'Look, there: the trappings of the orc. Stupid beasts, but\ndangerous. Stay close.'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (pc_party.members[_local4].charname + " inhales, then spits.\n'The stench of carrion. Whatever monsters lurk here, they shall not\nfind us so easy a meal.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'Ho, there- that emblem. The mark of the Cult of the Outward\nPath,' notes " + pc_party.members[_local4].charname) + ".\n'Our foes will not hail from this world alone.'")); }; }; }; }; }; } else { if ((pc_party.members[_local4] is PC_Rogue)){ if (_local2){ _local3 = (_local3 + (((((((((pc_party.members[_local4].charname + " checks ") + pc_party.members[_local4].genderPossessive()) + " pack for provisions.\n'I just hope we're not fighting any more ") + Horde.nameForRace(_arg1)) + ".'\n") + pc_party.members[_local4].genderPronoun(true)) + " turns ") + pc_party.members[_local4].genderPossessive()) + " head sharply as a distinctive sound echoes down the corridor.\n'Well. I suppose I should have seen that coming.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (("'Did you hear that?' asks " + pc_party.members[_local4].charname) + ", peering nervously into the gloom.\n'I have a bad feeling we're dealing with walking corpses, here.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (((pc_party.members[_local4].charname + " sniffs the air.\n'Did we take a wrong turn into a sewer? Oh, right.. orcs.'\n") + pc_party.members[_local4].genderPronoun(true)) + " sighs.")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (pc_party.members[_local4].charname + " sits down heavily, taking a moment to rest.\n'Ugh, I think I may be sitting in monster droppings.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'This place doesn't feel right,' mutters " + pc_party.members[_local4].charname) + ".\n'It's those twisted cultists.'")); }; }; }; }; }; } else { if ((pc_party.members[_local4] is PC_Mage)){ if (_local2){ _local3 = (_local3 + (((("At a gesture from " + pc_party.members[_local4].charname) + ", a glyph appears fleetingly in the air.\n'") + Horde.nameForRace(_arg1, true)) + ". There can be no doubt: my mastery of detection spells\nis complete.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (("Warning glyphs flash in the air about " + pc_party.members[_local4].charname) + ".\n'The dark arts are at work in this place. The dead walk.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (pc_party.members[_local4].charname + " concentrates for a moment.\n'The mystic arts are being practiced here, but weakly. This place\nmust be home to the vile orcs and their kin.'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local4].charname + " falters in ") + pc_party.members[_local4].genderPossessive()) + " preparation.\n'There is ancient power here. The creatures of the deep are drawn to\nit.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'The fabric of the aether has been rent,' states " + pc_party.members[_local4].charname) + ".\n'No doubt the work of those reckless amateurs, the Cult of the\nOutward Path.'")); }; }; }; }; }; } else { if ((pc_party.members[_local4] is PC_Ranger)){ if (_local2){ _local3 = (_local3 + (((("Examining the entrance, " + pc_party.members[_local4].charname) + " slowly nods.\n'There were ") + Horde.nameForRace(_arg1)) + " here, and recently. The signs of their passage\n are unmistakable.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (pc_party.members[_local4].charname + " crouches, noting debris strewn on the dank stone floor.\n'Nothing but bonemeal and crypt-dust. Undead.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (("'I've found something! Look here: the spoor of greenskins,' calls " + pc_party.members[_local4].charname) + ", after examining the area.")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local4].charname + " grows excited as ") + pc_party.members[_local4].genderPronoun()) + " scouts the immediate area.\n'There are tracks here.. creatures of many types. We have found\nourselves a hunt.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'Human footprints,' remarks " + pc_party.members[_local4].charname) + ".\n'Cultists?'")); }; }; }; }; }; } else { _local3 = (_local3 + (((pc_party.members[_local4].charname + " says 'There are ") + Horde.nameForRace(_arg1)) + " here.'")); }; }; }; }; }; _local3 = (_local3 + "\n\n"); _local5 = _local4; while (_local5 == _local4) { _local5 = DungeonMain.RandomNum(0, (pc_party.members.length - 1)); }; if (dm.randomNum(0, 100) < 8){ _local2 = true; } else { _local2 = false; }; if ((pc_party.members[_local5] is PC_Cleric)){ if (_local2){ _local3 = (_local3 + (pc_party.members[_local5].charname + " intones a sonorous prayer.\n'Let our faith be our shield!'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (((("'Those lost souls will find peace this day,' promises " + pc_party.members[_local5].charname) + ",\n") + pc_party.members[_local4].genderPossessive()) + " countenance grim.")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (((((pc_party.members[_local5].charname + " grimaces.\n'The beasts will not defile this place much longer. We shall make\ncertain of it,' ") + pc_party.members[_local4].genderPronoun()) + " growls, hefting ") + pc_party.members[_local4].genderPossessive()) + " weapon.")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " readies ") + pc_party.members[_local5].genderSelf()) + ".\n'Let us cleanse this foul menagerie.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'Heretics!' snarls " + pc_party.members[_local5].charname) + ".\n'Their work here is an affront: we must make an end of it.'")); }; }; }; }; }; } else { if ((pc_party.members[_local5] is PC_Warrior)){ if (_local2){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " draws ") + pc_party.members[_local5].genderPossessive()) + " weapon.\n'Stay behind me. We will cut a path, no matter how many may come.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (pc_party.members[_local5].charname + " nods slightly.\n'Then let us lay them to rest.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " sharpens ") + pc_party.members[_local5].genderPossessive()) + " blade.\n'The clumsy brawn of those ragged brutes is little match for the\nfighting arm of a seasoned warrior. Let them come.'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " shifts ") + pc_party.members[_local5].genderPossessive()) + " weight.\n'It will take more than a monstrous rabble to slow us.\nCome, this way.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'The Cult of the Outward Path,' muses " + pc_party.members[_local5].charname) + ".\n'Let us see if the fiends they worship can protect them.'")); }; }; }; }; }; } else { if ((pc_party.members[_local5] is PC_Rogue)){ if (_local2){ _local3 = (_local3 + (pc_party.members[_local5].charname + " glances around.\n'Is it too late to go back?'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (("'Great. My favorite,' snorts " + pc_party.members[_local5].charname) + ".")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " holds ") + pc_party.members[_local5].genderPossessive()) + " nose.\n'I suppose they won't smell any better after we kill them..'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (pc_party.members[_local5].charname + " sighs.\n'More things that want to eat me.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (((("'Religious types,' mutters " + pc_party.members[_local5].charname) + ", rolling ") + pc_party.members[_local5].genderPossessive()) + " eyes.")); _local6 = 0; while (_local6 < pc_party.members.length) { if ((pc_party.members[_local6] is PC_Cleric)){ _local3 = (_local3 + (((("\n\n" + pc_party.members[_local6].charname) + " glares at ") + pc_party.members[_local5].charname) + ".")); break; }; _local6++; }; }; }; }; }; }; } else { if ((pc_party.members[_local5] is PC_Mage)){ if (_local2){ _local3 = (_local3 + (pc_party.members[_local5].charname + " finishes an incantation.\n'I am prepared.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (pc_party.members[_local5].charname + " frowns.\n'The spawn of the dark arts. Despicable.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (pc_party.members[_local5].charname + " nods.\n'Communers with spirits and petty dabblers in the art. Precious\nlittle here to challenge me.'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " snaps shut ") + pc_party.members[_local5].genderPossessive()) + " spellbook.\n'Monsters and aberrations. I have some experience with their ilk.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'Meddlers! Fools!' rages " + pc_party.members[_local5].charname) + ".\n'They cannot begin to comprehend the forces they toy with.'")); }; }; }; }; }; } else { if ((pc_party.members[_local5] is PC_Ranger)){ if (_local2){ _local3 = (_local3 + (pc_party.members[_local5].charname + " smiles.\n'Easy prey.'")); } else { if (_arg1 == Horde.undead){ _local3 = (_local3 + (pc_party.members[_local5].charname + " nocks an arrow.\n'Unnatural foes, but they shall fall all the same.'")); } else { if (_arg1 == Horde.greenskins){ _local3 = (_local3 + (pc_party.members[_local5].charname + " appears disappointed.\n'Savages. They lack all finesse.'")); } else { if (_arg1 == Horde.creatures){ _local3 = (_local3 + (((pc_party.members[_local5].charname + " tests ") + pc_party.members[_local5].genderPossessive()) + " bowstring.\n'At last, worthy prey.'")); } else { if (_arg1 == Horde.cultists){ _local3 = (_local3 + (("'Perhaps here I can find a fresh challenge,' remarks " + pc_party.members[_local5].charname) + ".")); }; }; }; }; }; } else { _local3 = (_local3 + (((pc_party.members[_local5].charname + " says 'We will defeat the ") + Horde.nameForRace(_arg1)) + ".'")); }; }; }; }; }; return (_local3); } function TestForAdjacentCorridorV(_arg1:DungeonRoom):Boolean{ if (_arg1 == null){ return (false); }; if ((_arg1 is rCorridorV)){ return (true); }; return (false); } private function initGrid():void{ var _local1:*; var _local2:*; grid = new Array(grid_width); _local1 = 0; while (_local1 < grid_width) { grid[_local1] = new Array(grid_height); _local2 = 0; while (_local2 < grid_height) { grid[_local1][_local2] = null; _local2++; }; _local1++; }; } public function updateChars():void{ var _local1:*; var _local2:*; updateCleared(); updateInventoryCount(); _local2 = 0; while (_local2 < pc_party.members.length) { _local1 = dinterface.getChildByName(("char" + (_local2 + 1))); if ((((_local1 == null)) || (!((_local1 is CharacterPortrait))))){ } else { CharacterPortrait(_local1).updateBars(); CharacterPortrait(_local1).setGlow(); CharacterPortrait(_local1).setHiding((pc_party.sneaking > 0)); }; _local2++; }; if (parent != null){ DungeonMain(parent).saveParty(); DungeonMain(parent).saveChars(); }; } function TestForAdjacentCorridorH(_arg1:DungeonRoom):Boolean{ if (_arg1 == null){ return (false); }; if ((_arg1 is rCorridorH)){ return (true); }; return (false); } private function updateCleared():void{ var _local1:int; var _local2:*; _local1 = getClearedPercent(); dinterface.cleared_bar.label.text = ((" " + String(_local1)) + "% CLEARED"); dinterface.cleared_bar.bar_mask.width = Math.ceil(((_local1 / 100) * bar_max_width)); _local2 = "normal"; if (_local1 == 100){ _local2 = "complete"; }; dinterface.cleared_bar.holder.gotoAndStop(_local2); } private function GenerateMonsters():void{ var _local1:DungeonRoom; var _local2:*; var _local3:*; var _local4:*; var _local5:Array; var _local6:*; var _local7:*; _local2 = 0; if (DungeonMain.nobaddies){ return; }; _local3 = 10; _local4 = 0; if (dungeon_level != DungeonMain.MAX_LEVEL){ _local7 = getLargestEmptyRoom(); addHordeToRoom(_local7, true); bossRoom = _local7; _local4++; } else { _local3--; }; _local5 = getRandomRoomList(true); _local6 = 0; for (;_local6 < _local5.length;_local6++) { if (roomValidForMonster(_local5[_local6])){ addHordeToRoom(_local5[_local6]); _local4++; } else { continue; }; if (_local4 >= _local3){ break; }; }; } public function createFromDataArray(_arg1:Array, _arg2:int, _arg3:Array, _arg4:Boolean=false):Boolean{ var _local5:*; var _local6:DungeonRoom; var _local7:*; var _local8:Horde; this.race = race; this.tileset = tileset; this.previousLevelCleared = _arg4; initGrid(); initRoomArrays(); _local5 = 0; while (_local5 < _arg1.length) { _local6 = DungeonRoomData(_arg1[_local5]).toRoom(_arg4); PlaceRoom(_local6); if ((_local6 is rDemonRoom)){ bossRoom = _local6; }; if (_arg1[_local5].treasure){ addTreasureToRoom(_local6); } else { if (_arg1[_local5].shrine){ addShrineToRoom(_local6); } else { _local7 = 0; while (_local7 < _arg3.length) { if (HordeData(_arg3[_local7]).roomIndex == _local5){ _local8 = HordeData(_arg3[_local7]).toHorde(); room_array[_local5].setHorde(_local8); hordes.push(_local8); _local8.mask = null; if (_local8.boss){ bossRoom = _local6; }; break; }; _local7++; }; }; }; _local5++; }; TestAllRoomEdges(); generateDoors(); _local5 = 0; while (_local5 < room_array.length) { if (_arg1[_local5].isEntrance){ room_array[_local5].addEntrance(_arg4); entryRoom = room_array[_local5]; } else { if (_arg1[_local5].isExit){ room_array[_local5].addExit(); exitRoom = room_array[_local5]; }; }; _local5++; }; drawRooms(); drawDoors(); currentRoom = room_array[_arg2]; currentRoom.travelTo(true); roomHighlights(); updateDemonRoom(); return (true); } public function cleanup():void{ var _local1:*; var _local2:*; dinterface.explore_btn.removeEventListener(MouseEvent.MOUSE_DOWN, exploreAll); dinterface.newdungeon_btn.removeEventListener(MouseEvent.MOUSE_DOWN, newDungeonClick); dinterface.clear_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clearHordes); dinterface.gear_btn.removeEventListener(MouseEvent.MOUSE_DOWN, addDebugGear); dinterface.heal_btn.removeEventListener(MouseEvent.MOUSE_DOWN, debugHeal); dinterface.rating_btn.removeEventListener(MouseEvent.MOUSE_DOWN, ratingClick); dinterface.maxgames_btn.addEventListener(MouseEvent.MOUSE_DOWN, linkClick); dinterface.inventory_btn.removeEventListener(MouseEvent.MOUSE_DOWN, inventoryClick); dinterface.menu_btn.removeEventListener(MouseEvent.MOUSE_DOWN, menuClick); dinterface.hint_btn.removeEventListener(MouseEvent.MOUSE_DOWN, hintClick); dinterface.descend_button.removeEventListener(MouseEvent.MOUSE_DOWN, descendClick); dinterface.rest_button.removeEventListener(MouseEvent.MOUSE_DOWN, restButtonClick); this.removeEventListener(Event.ADDED_TO_STAGE, added); this.removeEventListener(Event.REMOVED_FROM_STAGE, removed); dinterface.help_btn.cleanup(); _local1 = 0; while (_local1 < pc_party.members.length) { _local2 = dinterface.getChildByName(("char" + (_local1 + 1))); if (_local2 != null){ _local2.removeEventListener(MouseEvent.MOUSE_DOWN, portraitClick); }; _local1++; }; _local1 = 0; while (_local1 < hordes.length) { hordes[_local1].cleanup(); _local1++; }; if (currentRoom != null){ currentRoom.travelFrom(); }; } private function clearHordes(_arg1:MouseEvent=null):void{ var _local2:*; if (!DungeonMain.debug){ return; }; _local2 = 0; while (_local2 < hordes.length) { hordes[_local2].fade(); _local2++; }; hordeDefeated(null); } private function showDescendDialog():void{ var _local1:*; if (getChildByName("downlevel_dlg") == null){ _local1 = new DownLevelDialog(); _local1.name = "downlevel_dlg"; addChild(_local1); }; } private function newDungeonClick(_arg1:MouseEvent):void{ DungeonMain(parent).NewDungeonClick(_arg1); } public function descend():void{ if (parent != null){ DungeonMain(parent).descendClick(null); }; } function CloseTreasureReport(){ var _local1:*; _local1 = getChildByName("treasure_report"); if (_local1 != null){ stage.removeEventListener(KeyboardEvent.KEY_DOWN, treasureReportKeyDown); if (_local1.chest != null){ if (!_local1.chest.looted){ _local1.chest.fade(); }; }; _local1.take_btn.removeEventListener(MouseEvent.MOUSE_DOWN, treasureTakeClick); _local1.discard_btn.removeEventListener(MouseEvent.MOUSE_DOWN, treasureDiscardClick); _local1.cleanup(); removeChild(_local1); _local1 = null; }; if (parent != null){ DungeonMain(parent).saveInventory(); DungeonMain(parent).saveDungeon(); }; updateInventoryCount(); } private function checkFootprintEmpty(_arg1:DungeonRoom):Boolean{ var _local2:*; var _local3:*; _local2 = 0; while (_local2 < _arg1.getGridWidth()) { _local3 = 0; while (_local3 < _arg1.getGridHeight()) { if (((((_arg1.grid_x + _local2) >= grid_width)) || (((_arg1.grid_y + _local3) >= grid_height)))){ return (false); }; if (grid[(_arg1.grid_x + _local2)][(_arg1.grid_y + _local3)] != null){ return (false); }; _local3++; }; _local2++; }; return (true); } private function getRandomRoomListIncreasingSize(_arg1:Boolean=false):Array{ var _local2:Array; _local2 = new Array(); if (_arg1){ _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_corridors)); }; _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_cells)); _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_chambers)); _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_widerooms)); _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_tallrooms)); _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_galleries)); _local2 = dm.joinArrays(_local2, dm.shuffleArray(a_largerooms)); return (_local2); } function portraitClick(_arg1:MouseEvent):void{ var _local2:*; if (_arg1.currentTarget == null){ return; }; if (!(_arg1.currentTarget is CharacterPortrait)){ return; }; _local2 = PlayerCharacter(CharacterPortrait(_arg1.currentTarget).char_ref); dm.main.goToInventory(_local2); } private function RemoveUselessCorridors():Boolean{ var _local1:*; var _local2:*; _local1 = false; _local2 = 0; while (_local2 < room_array.length) { if ((((room_array[_local2] is DungeonCorridor)) && ((room_array[_local2].num_adjacent == 1)))){ if (room_array[_local2].getChildByName("entrance") != null){ } else { if (room_array[_local2].getChildByName("exit") != null){ } else { DeleteRoom(_local2); _local1 = true; }; }; }; _local2++; }; return (_local1); } private function isValidEntryPoint(_arg1:DungeonRoom):Boolean{ if (_arg1 == null){ return (false); }; if ((((_arg1 is DungeonCorridor)) && ((_arg1.num_adjacent > 1)))){ return (false); }; return (true); } function debugHeal(_arg1:MouseEvent):void{ pc_party.fullRecovery(); updateChars(); } private function findEntryPoint():DungeonRoom{ var _local1:*; _local1 = 0; _local1 = 0; while (_local1 < a_corridors.length) { if (!isValidEntryPoint(a_corridors[_local1])){ } else { if (a_corridors[_local1].num_adjacent == 1){ return (a_corridors[_local1]); }; }; _local1++; }; return (null); } function addDebugGear(_arg1:MouseEvent):void{ var _local2:Item; var _local3:*; if (DungeonMain.debug == false){ return; }; _local3 = 0; while (_local3 < 20) { _local2 = TreasureChest.getItem(dungeon_level, 0, true); pc_party.addToInventory(_local2); _local3++; }; updateInventoryCount(); } private function addCorridorConnection(_arg1:DungeonRoom, _arg2:DungeonRoom):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local5 = 0; _local6 = 0; _local7 = false; if (isExistingRoomConnection(_arg1, _arg2)){ return; }; if ((_arg1 is rCorridorV)){ if ((_arg2 is rCorridorV)){ _local7 = true; _local5 = _arg1.x; _local6 = Math.max(_arg1.y, _arg2.y); newCorridorConnection(_local7, _local5, _local6, _arg1, _arg2); } else { if ((_arg2 is rCorridorH)){ if (_arg2.y < _arg1.y){ _local7 = true; } else { if (Math.abs((_arg1.y - _arg2.y)) >= 40){ _local7 = true; } else { _local7 = false; }; }; _local5 = Math.max(_arg1.x, _arg2.x); _local6 = Math.max(_arg1.y, _arg2.y); newCorridorConnection(_local7, _local5, _local6, _arg1, _arg2); }; }; } else { if ((_arg2 is rCorridorH)){ _local7 = false; _local5 = Math.max(_arg1.x, _arg2.x); _local6 = _arg1.y; newCorridorConnection(_local7, _local5, _local6, _arg1, _arg2); }; }; } private function ValidateDungeonLayout(_arg1:Boolean=false):Boolean{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:Array; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; _local2 = 0; _local3 = 0; _local4 = false; _local5 = 0; _local6 = new Array(); _local7 = 0; _local8 = 0; _local3 = 0; while (_local3 < room_array.length) { room_array[_local3].validate_id = -1; _local3++; }; while ((((_local5 < room_array.length)) && ((_local2 < room_array.length)))) { if (room_array[_local2].validate_id > -1){ _local2++; } else { _local6[_local8] = room_array[_local2].validate(_local8); _local5 = (_local5 + _local6[_local8]); if (_local6[_local8] > _local6[_local7]){ _local7 = _local8; }; _local8++; _local2++; }; }; _local3 = 0; for (;_local3 < room_array.length;_local3++) { if (room_array[_local3].validate_id != _local7){ if ((((dungeon_level == DungeonMain.MAX_LEVEL)) && ((room_array[_local3] == bossRoom)))){ room_array.length = 0; return (true); }; DeleteRoom(_local3); _local3--; _local4 = true; continue; } else { if (_arg1){ if ((((room_array[_local3] is DungeonCorridor)) && ((room_array[_local3].num_adjacent == 1)))){ DeleteRoom(_local3); _local3--; _local4 = true; continue; }; } else { if ((((((room_array[_local3] is DungeonCorridor)) && ((room_array[_local3].num_adjacent == 1)))) && (!((room_array[_local3].adjacent[0] is DungeonCorridor))))){ _local9 = room_array[_local3].adjacent[0]; _local10 = room_array[_local3].grid_x; _local11 = room_array[_local3].grid_y; if ((room_array[_local3] is rCorridorH)){ if ((((getRoomAtGridPos(_local10, (_local11 - 1)) == _local9)) || ((getRoomAtGridPos((_local10 + 1), (_local11 - 1)) == _local9)))){ DeleteRoom(_local3); _local3--; _local4 = true; continue; }; if ((((getRoomAtGridPos(_local10, (_local11 + 1)) == _local9)) || ((getRoomAtGridPos((_local10 + 1), (_local11 + 1)) == _local9)))){ DeleteRoom(_local3); _local3--; _local4 = true; continue; }; } else { if ((room_array[_local3] is rCorridorV)){ if ((((getRoomAtGridPos((_local10 - 1), _local11) == _local9)) && ((getRoomAtGridPos((_local10 - 1), (_local11 + 1)) == _local9)))){ DeleteRoom(_local3); _local3--; _local4 = true; } else { if ((((getRoomAtGridPos((_local10 + 1), _local11) == _local9)) && ((getRoomAtGridPos((_local10 + 1), (_local11 + 1)) == _local9)))){ DeleteRoom(_local3); _local3--; _local4 = true; continue; }; }; }; }; }; }; }; }; return (_local4); } private function pointlessBusyWork():void{ } function GoToInventory():void{ CloseTreasureReport(); dm.main.InventoryClick(null); } private function descendClick(_arg1:MouseEvent):void{ showDescendDialog(); } function added(_arg1:Event):void{ stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); if (hint != null){ stage.addChild(hint); hint = null; }; } private function getRandomRoomList(_arg1:Boolean=false):Array{ var _local2:Array; _local2 = new Array(); _local2 = dm.joinArrays(_local2, a_largerooms); _local2 = dm.joinArrays(_local2, a_galleries); _local2 = dm.joinArrays(_local2, a_widerooms); _local2 = dm.joinArrays(_local2, a_tallrooms); _local2 = dm.joinArrays(_local2, a_chambers); _local2 = dm.joinArrays(_local2, a_cells); if (_arg1){ _local2 = dm.joinArrays(_local2, a_corridors); }; return (dm.shuffleArray(_local2)); } function restButtonClick(_arg1:MouseEvent):void{ showRestDialog(); } public function retreatFromMonsters(_arg1:Horde):void{ var _local2:*; if (_arg1 != null){ _arg1.gotoAndStop("normal"); }; _local2 = 0; while (_local2 < DungeonRoom.max_adjacent) { if (currentRoom.adjacent[_local2] == currentRoom){ } else { if (currentRoom.adjacent[_local2] == null){ } else { if (currentRoom.adjacent[_local2].explored){ currentRoom.travelFrom(); currentRoom.adjacent[_local2].travelTo(); currentRoom = currentRoom.adjacent[_local2]; roomHighlights(); return; }; }; }; _local2++; }; } private function getHordesDefeated():int{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < hordes.length) { if (hordes[_local2].defeated){ _local1++; }; _local2++; }; return (_local1); } private function showRestDialog():void{ var _local1:*; if (!previousLevelCleared){ return; }; if (this.getChildByName("rest_dlg") == null){ _local1 = new RestDialog(); _local1.name = "rest_dlg"; this.addChild(_local1); }; } private function initRoomArrays():void{ a_corridors = new Array(); a_cells = new Array(); a_chambers = new Array(); a_largerooms = new Array(); a_galleries = new Array(); a_tallrooms = new Array(); a_widerooms = new Array(); } private function addShrineToRoom(_arg1:DungeonRoom):void{ var _local2:*; _local2 = new RecoveryShrine(); _local2.x = _arg1.getCenterHorz(); _local2.y = _arg1.getCenterVert(); _arg1.shrine = _local2; _local2.room = _arg1; _arg1.setChild(_local2); shrines.push(_local2); _local2.mask = null; } private function getRoomAtGridPos(_arg1:int, _arg2:int):DungeonRoom{ if (_arg1 >= grid_width){ return (null); }; if (_arg2 >= grid_height){ return (null); }; if (_arg1 < 0){ return (null); }; if (_arg2 < 0){ return (null); }; return (DungeonRoom(grid[_arg1][_arg2])); } private function encounter(_arg1:DungeonRoom):void{ var _local2:*; var _local3:*; var _local4:*; if (_arg1.isEntrance){ _local2 = _arg1.getEntrance(); if (_local2 == null){ return; }; if (_local2.enableRest){ showRestDialog(); }; } else { if (_arg1.isExit){ foundExit(); showDescendDialog(); } else { if (_arg1.horde != null){ if (_arg1.horde.defeated){ return; }; if (pc_party.sneaking){ pc_party.sneaking = 1; return; }; _local3 = stage.getChildByName("tooltip_horde"); if (_local3 != null){ stage.removeChild(_local3); }; enterBattle(_arg1.horde); } else { if (_arg1.treasure != null){ addTreasureReport(_arg1.treasure); } else { if (_arg1.shrine != null){ if (_arg1.shrine.used){ return; }; if (getChildByName("shrine_dlg") == null){ _local4 = new ShrineUseDialog(); _local4.name = "shrine_dlg"; addChild(_local4); }; }; }; }; }; }; } private function refreshRoomArrays():void{ var _local1:*; initRoomArrays(); _local1 = 0; while (_local1 < room_array.length) { addRoomToTypeArray(DungeonRoom(room_array[_local1])); _local1++; }; } public function hordeDefeated(_arg1:Horde):void{ updateCleared(); updateDemonRoom(); } function hintClick(_arg1:Event):void{ var _local2:*; _local2 = 0; while (_local2 < room_array.length) { if (room_array[_local2].explored){ } else { if (room_array[_local2].seen){ room_array[_local2].hintFlash(); }; }; _local2++; }; } function treasureTakeClick(_arg1:MouseEvent){ var _local2:TreasureReport; var _local3:*; _local2 = TreasureReport(getChildByName("treasure_report")); if (_local2 == null){ return; }; _local3 = 0; while (_local3 < _local2.icons.length) { if (_local2.icons[_local3].taking){ pc_party.addToInventory(_local2.icons[_local3].item_ref); }; _local3++; }; CloseTreasureReport(); dm.sound.play(SoundControl.lootItem); if (pc_party.overflow.length){ GoToInventory(); }; } private function findExitPoint(_arg1:DungeonRoom):DungeonRoom{ var _local2:Array; var _local3:*; _local2 = getRandomRoomListIncreasingSize(true); _local3 = 0; while (_local3 < _local2.length) { if (!isRoomValidExit(_local2[_local3], _arg1)){ } else { if (_local2[_local3].num_adjacent == 1){ return (_local2[_local3]); }; }; _local3++; }; return (null); } private function roomValidForShrine(_arg1:DungeonRoom):Boolean{ var _local2 = ??pushnamespace ; var _local3:*; var _local4:*; if (_arg1 == null){ return (false); }; if (_arg1.horde != null){ return (false); }; if (_arg1.treasure != null){ return (false); }; if (_arg1.shrine != null){ return (false); }; if (_arg1.isExit){ return (false); }; if (_arg1.isEntrance){ return (false); }; if ((_arg1 is DungeonCorridor)){ return (false); }; if ((_arg1 is rCell)){ return (false); }; _local2 = 5; _local3 = 0; for (;_local3 < shrines.length;_local3++) { if (shrines[_local3].room == null){ continue; } else { _local4 = shrines[_local3].room; }; if (Math.abs((_arg1.grid_x - _local4.grid_x)) < _local2){ return (false); }; if (Math.abs((_arg1.grid_y - _local4.grid_y)) < _local2){ return (false); }; }; return (true); } private function GenerateTreasure():void{ var _local1 = ??pushnamespace ; var _local2:*; var _local3:Array; var _local4:*; var _local5:*; var _local6:DungeonRoom; _local1 = 30; _local2 = Math.max(8, Math.round((getRoomCount() * (_local1 / 100)))); _local3 = getRandomRoomList(false); _local4 = 0; _local5 = 0; while (_local5 < _local3.length) { _local6 = _local3[_local5]; if (((_local6.isExit) || (_local6.isEntrance))){ } else { if (_local6.horde != null){ } else { if (_local6.shrine != null){ } else { if (_local6.treasure != null){ } else { addTreasureToRoom(_local6); ++_local4; if (_local4 >= _local2){ break; }; }; }; }; }; _local5++; }; } function treasureReportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ treasureTakeClick(null); } else { if (_arg1.keyCode == Keyboard.ESCAPE){ treasureDiscardClick(null); }; }; } private function debugReport(_arg1:MouseEvent):void{ var _local2:DungeonRoom; _local2 = currentRoom; if (_local2 == null){ return; }; if ((((((_local2 is DungeonCorridor)) && ((_local2.num_adjacent == 1)))) && (!((_local2.adjacent[0] is DungeonCorridor))))){ }; } private function menuClick(_arg1:MouseEvent):void{ if (parent != null){ DungeonMain(parent).dungeonMenuClick(_arg1); }; } function roomClick(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; if (pc_party.overflow.length){ _local2 = new WarningDialog("You are carrying too many items. You must enter the Inventory screen and discard some."); this.addChild(_local2); return; }; currentRoom.travelFrom(); if (pc_party.sneaking == 1){ pc_party.sneaking = 0; _local3 = 0; while (_local3 < pc_party.members.length) { _local4 = dinterface.getChildByName(("char" + (_local3 + 1))); if ((((_local4 == null)) || (!((_local4 is CharacterPortrait))))){ } else { _local4.setHiding((pc_party.sneaking > 0)); }; _local3++; }; }; currentRoom = DungeonRoom(_arg1.currentTarget); if (currentRoom.travelTo()){ roomHighlights(); encounter(currentRoom); } else { roomHighlights(); }; if (((DungeonMain.showHints) && ((hintShown(hintHorde) == false)))){ _local5 = false; _local6 = 0; while (_local6 < currentRoom.num_adjacent) { if (((!((currentRoom.adjacent[_local6].horde == null))) && (!(currentRoom.adjacent[_local6].horde.defeated)))){ _local5 = true; break; }; _local6++; }; if (_local5){ _local7 = new HintDialog("Lurking Monsters", "There are enemies nearby, as indicated by the crossed swords icon. Move the mouse over the icon to see their type and number. Entering that room will trigger a battle.\n\nYou do not need to kill every monster in the dungeon, but doing so earns rewards. Defeated monsters will always drop treasure items.\n\nBeware of 'Leader' monsters, indicated by golden swords. They are significantly stronger than regular monsters, but defeating them yields a powerful item."); DungeonMain.hints = (DungeonMain.hints + hintHorde); stage.addChild(_local7); DungeonMain(parent).saveInterface(); }; }; } private function TestAllRoomEdges(){ var _local1:*; ClearAllRoomEdges(); _local1 = 0; while (_local1 < room_array.length) { if (room_array[_local1] == null){ } else { if (room_array[_local1].num_adjacent == DungeonRoom.max_adjacent){ } else { TestRoomEdges(_local1); }; }; _local1++; }; specialEdgeTests(); } public function roomHighlights(){ var _local1:int; var _local2:int; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; _local1 = 0; _local2 = 0; _local3 = 0; while (_local3 < room_array.length) { if (room_array[_local3] == null){ } else { if (room_array[_local3].explored){ room_array[_local3].setAlpha(0.3); _local2++; } else { if (room_array[_local3].seen){ room_array[_local3].setAlpha(0.2); } else { room_array[_local3].setAlpha(0); }; }; }; _local3++; }; currentRoom.setAlpha(1); if (currentRoomIcon == null){ currentRoomIcon = new CurrentRoomIcon(); }; if (currentRoomIcon.parent != null){ currentRoomIcon.parent.removeChild(currentRoomIcon); }; currentRoomIcon.x = currentRoom.getCenterHorz(); currentRoomIcon.y = currentRoom.getCenterVert(); currentRoomIcon.width = ((currentRoom.getGridWidth() * GRID_SIZE) - 4); currentRoomIcon.height = ((currentRoom.getGridHeight() * GRID_SIZE) - 4); if (currentRoom.hasSpecial()){ currentRoom.addChildAt(currentRoomIcon, (currentRoom.numChildren - 2)); } else { currentRoom.addChild(currentRoomIcon); }; _local4 = 0; while (_local4 < currentRoom.num_adjacent) { currentRoom.adjacent[_local4].setAlpha(0.6); _local4++; }; _local5 = 0; while (_local5 < door_array.length) { if (((DungeonRoom(door_array[_local5].room1).seen) && (DungeonRoom(door_array[_local5].room2).seen))){ _local7 = door_array[_local5].room1.getAlpha(); _local8 = door_array[_local5].room2.getAlpha(); if ((((door_array[_local5] is CorridorConnectorH)) || ((door_array[_local5] is CorridorConnectorV)))){ door_array[_local5].setAlpha(Math.min(_local7, _local8)); } else { door_array[_local5].setAlpha(((_local7 + _local8) / 2)); }; } else { door_array[_local5].setAlpha(0); }; _local5++; }; _local1 = Math.round(((_local2 / room_array.length) * 100)); dinterface.explored_bar.label.text = (("EXPLORED " + String(_local1)) + "% "); dinterface.explored_bar.bar_mask.width = Math.ceil(((_local1 / 100) * bar_max_width)); _local6 = "normal"; if (_local1 == 100){ _local6 = "complete"; }; dinterface.explored_bar.holder.gotoAndStop(_local6); updateCleared(); updateDemonRoom(); if (parent != null){ dm.main.saveParty(); dm.main.saveDungeon(); }; } private function GenerateShrines():void{ var _local1 = ??pushnamespace ; var _local2:Array; var _local3:*; var _local4:*; _local1 = 2; _local2 = getRandomRoomList(false); _local3 = 0; _local4 = 0; for (;_local4 < _local2.length;_local4++) { if (roomValidForShrine(_local2[_local4])){ addShrineToRoom(_local2[_local4]); _local3++; } else { continue; }; if (_local3 >= _local1){ break; }; }; } private function DeleteRoom(_arg1:int){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; if (_arg1 >= room_array.length){ return; }; if (_arg1 < 0){ return; }; if (room_array[_arg1] != null){ _local2 = room_array[_arg1].grid_x; _local3 = room_array[_arg1].grid_y; _local4 = 0; while (_local4 < room_array[_arg1].getGridWidth()) { _local6 = 0; while (_local6 < room_array[_arg1].getGridHeight()) { grid[(_local2 + _local4)][(_local3 + _local6)] = null; _local6++; }; _local4++; }; _local5 = 0; while (_local5 < room_array[_arg1].num_adjacent) { DungeonRoom(room_array[_arg1]).setNotAdjacentTo(room_array[_arg1].adjacent[_local5]); _local5++; }; }; room_array.splice(_arg1, 1); } private function isRoomValidExit(_arg1:DungeonRoom, _arg2:DungeonRoom):Boolean{ var _local3 = ??pushnamespace ; _local3 = 6; if (_arg1 == null){ return (false); }; if (_arg1 == _arg2){ return (false); }; if (Math.abs((_arg1.grid_x - _arg2.grid_x)) < _local3){ return (false); }; if (Math.abs((_arg1.grid_y - _arg2.grid_y)) < _local3){ return (false); }; if ((((_arg1 is DungeonCorridor)) && ((_arg1.num_adjacent > 1)))){ return (false); }; return (true); } private function demonSpawnCheck():Boolean{ if (((!((bossRoom == null))) && (!((bossRoom.horde == null))))){ return (false); }; if (getHordesDefeated() == hordes.length){ return (true); }; return (false); } private function roomValidForMonster(_arg1:DungeonRoom):Boolean{ var _local2:*; if (_arg1 == null){ return (false); }; if (_arg1.horde != null){ return (false); }; if (_arg1.shrine != null){ return (false); }; if (_arg1.treasure != null){ return (false); }; if (_arg1.isExit){ return (false); }; if (_arg1.isEntrance){ return (false); }; if ((_arg1 is DungeonCorridor)){ if (DungeonMain.RandomNum(0, 1000) < 700){ return (false); }; }; _local2 = 0; while (_local2 < DungeonRoom.max_adjacent) { if (_arg1.adjacent[_local2] == null){ } else { if (_arg1.adjacent[_local2] == _arg1){ } else { if (_arg1.adjacent[_local2].horde != null){ return (false); }; if (_arg1.adjacent[_local2].isEntrance){ return (false); }; }; }; _local2++; }; return (true); } private function fillGridForRoom(_arg1:DungeonRoom):void{ var _local2:*; var _local3:*; _local2 = 0; while (_local2 < _arg1.getGridWidth()) { _local3 = 0; while (_local3 < _arg1.getGridHeight()) { grid[(_arg1.grid_x + _local2)][(_arg1.grid_y + _local3)] = _arg1; _local3++; }; _local2++; }; } public function generateDungeon():Boolean{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; var _local10:*; var _local11:*; var _local12:DungeonRoom; var _local13:*; var _local14:*; var _local15:*; var _local16:*; var _local17:*; var _local18:*; room_array = new Array(); door_array = new Array(); bossRoom = null; currentRoom = null; entryRoom = null; exitRoom = null; initGrid(); initRoomArrays(); _local8 = false; _local9 = 0; _local10 = 0; if (dungeon_level == DungeonMain.MAX_LEVEL){ _local12 = new rDemonRoom(); _local14 = ((grid_width - _local12.getGridWidth()) / 2); _local15 = ((grid_height - _local12.getGridHeight()) / 2); _local12.grid_x = dm.randomNum((_local14 - 2), (_local14 + 2)); _local12.grid_y = dm.randomNum((_local15 - 2), (_local15 + 2)); PlaceRoom(_local12); bossRoom = _local12; }; _local1 = 0; while (_local1 < grid_width) { _local2 = 0; while (_local2 < grid_height) { if (grid[_local1][_local2] != null){ } else { if (dm.randomNum(1, 100) > 50){ _local16 = dm.randomNum(0, 100); _local17 = (a_corridors.length > Math.round((room_array.length / 2))); if ((((_local17 == false)) && ((_local16 > 70)))){ if (dm.randomNum(1, 100) > 50){ _local8 = false; } else { _local8 = true; }; if (_local8){ _local12 = new rCorridorV(); } else { _local12 = new rCorridorH(); }; _local12.grid_x = _local1; _local12.grid_y = _local2; PlaceCorridor(DungeonCorridor(_local12), true); } else { if (_local16 > 65){ _local12 = new rCell(); } else { if (_local16 > 50){ _local12 = new rChamber(); } else { if (_local16 > 35){ _local12 = new rTallRoom(); } else { if (_local16 > 20){ _local12 = new rWideRoom(); } else { if (_local16 > 10){ _local12 = new rLargeRoom(); } else { _local12 = new rGallery(); }; }; }; }; }; _local12.grid_x = _local1; _local12.grid_y = _local2; PlaceRoom(_local12); }; }; }; _local2++; }; _local1++; }; if (isDungeonTooSmall()){ return (false); }; TestAllRoomEdges(); _local13 = false; while (!(_local13)) { _local18 = ValidateDungeonLayout(false); if (isDungeonTooSmall()){ return (false); }; if (_local18){ TestAllRoomEdges(); } else { _local13 = true; }; }; refreshRoomArrays(); generateDoors(); entryRoom = findEntryPoint(); if ((((entryRoom == null)) || (!(entryRoom.num_adjacent)))){ return (false); }; entryRoom.addEntrance(previousLevelCleared); currentRoom = entryRoom; if (dungeon_level != DungeonMain.MAX_LEVEL){ exit_found = false; exitRoom = findExitPoint(entryRoom); if (exitRoom == null){ return (false); }; exitRoom.addExit(); }; GenerateShrines(); GenerateTreasure(); GenerateMonsters(); drawRooms(); drawDoors(); pc_party.stat_rooms_total = (pc_party.stat_rooms_total + room_array.length); currentRoom.travelTo(true); roomHighlights(); updateDemonRoom(); return (true); } private function drawDoors():void{ var _local1:*; _local1 = 0; while (_local1 < door_array.length) { addChild(door_array[_local1]); _local1++; }; } private function TestRoomEdges(_arg1:int){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; _local2 = 0; _local3 = 0; _local5 = room_array[_arg1].getGridWidth(); _local6 = room_array[_arg1].getGridHeight(); _local7 = (room_array[_arg1].grid_x - 1); _local8 = room_array[_arg1].grid_y; if ((((_local7 >= 0)) && ((_local8 >= 0)))){ _local2 = 0; while (_local2 < _local6) { if (grid[_local7][(_local8 + _local2)] != null){ _local4 = grid[_local7][(_local8 + _local2)]; ConnectRooms(room_array[_arg1], _local4, _arg1); }; _local2++; }; }; _local7 = room_array[_arg1].grid_x; _local8 = (room_array[_arg1].grid_y - 1); if ((((_local8 >= 0)) && ((_local7 >= 0)))){ _local2 = 0; while (_local2 < _local5) { if (grid[(_local7 + _local2)][_local8] != null){ _local4 = grid[(_local7 + _local2)][_local8]; ConnectRooms(room_array[_arg1], _local4, _arg1); }; _local2++; }; }; } private function updateDemonRoom():void{ var _local1:*; var _local2:*; if (dungeon_level != DungeonMain.MAX_LEVEL){ return; }; if (bossRoom == null){ return; }; if ((bossRoom is rDemonRoom)){ _local1 = (getHordesDefeated() + 1); _local2 = Math.min((getHordesDefeated() + 1), bossRoom.totalFrames); if (bossRoom.currentFrame != _local2){ rDemonRoom(bossRoom).toFrame(_local2); }; if (demonSpawnCheck()){ addHordeToRoom(bossRoom, true); }; }; } private function enterBattle(_arg1:Horde):void{ dm.main.beginBattle(_arg1); } private function specialEdgeTests():void{ var _local1:*; var _local2:DungeonCorridor; var _local3:DungeonRoom; var _local4:*; _local1 = 0; while (_local1 < room_array.length) { if ((((room_array[_local1] is DungeonCorridor)) && ((room_array[_local1].num_adjacent == 2)))){ _local4 = 0; while (_local4 < room_array[_local1].num_adjacent) { if ((room_array[_local1].adjacent[_local4] is DungeonCorridor)){ _local2 = room_array[_local1].adjacent[_local4]; } else { _local3 = room_array[_local1].adjacent[_local4]; }; _local4++; }; if (((((!((_local2 == null))) && (!((_local3 == null))))) && (_local2.isAdjacentTo(_local3)))){ room_array[_local1].setNotAdjacentTo(_local3, true); }; }; _local1++; }; } function linkClick(_arg1:MouseEvent):void{ dm.link("http://www.maxgames.com"); } public function drawMovementArrow(_arg1:DungeonRoom):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:DoorIcon; var _local9:*; var _local10:*; var _local11:*; var _local12:*; _local2 = 0xFFFFFF; _local3 = new MovementArrowHead(); if (((((!((_arg1.horde == null))) && (!(_arg1.horde.defeated)))) && (!(pc_party.sneaking)))){ _local2 = 0xFF0000; _local3.gotoAndStop("red"); } else { if (!_arg1.explored){ _local2 = 39423; _local3.gotoAndStop("blue"); } else { _local2 = 26367; _local3.gotoAndStop("blue"); }; }; moveArrow = new Sprite(); moveArrow.name = "arrow"; moveArrow.mouseEnabled = false; moveArrow.mouseChildren = false; _local4 = (currentRoom.x + Math.round(((currentRoom.getGridWidth() * GRID_SIZE) / 2))); _local5 = (currentRoom.y + Math.round(((currentRoom.getGridHeight() * GRID_SIZE) / 2))); _local6 = _local4; _local7 = _local5; _local8 = _arg1.findDoorTo(currentRoom); if (_local8 != null){ if ((((_local8 is CorridorConnectorH)) || ((((_local8 is DoorIcon)) && (!((_local8.rotation == 0))))))){ _local6 = _local8.x; _local7 = (_local8.y + 10); } else { if ((((_local8 is CorridorConnectorV)) || ((((_local8 is DoorIcon)) && ((_local8.rotation == 0)))))){ _local6 = (_local8.x + 10); _local7 = _local8.y; } else { _local6 = (_local8.x + Math.round((_local8.width / 2))); _local7 = (_local8.y + Math.round((_local8.height / 2))); }; }; }; _local9 = (_arg1.x + Math.round(((_arg1.getGridWidth() * GRID_SIZE) / 2))); _local10 = (_arg1.y + Math.round(((_arg1.getGridHeight() * GRID_SIZE) / 2))); moveArrow.graphics.lineStyle(4, _local2, 0.9); moveArrow.graphics.moveTo(_local4, _local5); moveArrow.graphics.lineTo(_local6, _local7); moveArrow.graphics.lineTo(_local9, _local10); _local3.x = _local9; _local3.y = _local10; _local11 = Math.round(dm.vectors2angle((_local9 - _local6), (_local10 - _local7), 1, 0)); if (_local10 < _local5){ _local11 = -(_local11); }; _local3.rotation = _local11; _local12 = this; moveArrow.addChild(_local3); _local12.addChild(moveArrow); dm.childToTop(moveArrow); } private function inventoryClick(_arg1:MouseEvent):void{ DungeonMain(parent).InventoryClick(_arg1); } public function foundExit():void{ exit_found = true; dinterface.addChild(dinterface.descend_button); dinterface.descend_button.addEventListener(MouseEvent.MOUSE_DOWN, descendClick); } private function addHordeToRoom(_arg1:DungeonRoom, _arg2:Boolean=false):void{ var _local3:Horde; _local3 = new Horde(this.race, this.dungeon_level, _arg2, _arg1); _arg1.setHorde(_local3); hordes.push(_local3); _local3.mask = null; } private function getLargestEmptyRoom():DungeonRoom{ var _local1:Array; var _local2:DungeonRoom; var _local3:int; var _local4:Array; var _local5:*; _local3 = 0; _local4 = new Array(); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_largerooms)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_galleries)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_widerooms)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_tallrooms)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_chambers)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_cells)); _local4 = dm.joinArrays(_local4, dm.shuffleArray(a_corridors)); _local5 = 0; for (;_local5 < _local4.length;_local5++) { if (!roomValidForMonster(_local4[_local5])){ continue; } else { return (_local4[_local5]); }; }; return (room_array[0]); } public function removeRestButton():void{ if (dinterface.contains(dinterface.rest_button)){ dinterface.removeChild(dinterface.rest_button); }; } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.SPACE){ hintClick(_arg1); }; } public function addTreasureReport(_arg1:TreasureChest, _arg2:Boolean=false):void{ var _local3:String; var _local4:*; var _local5:*; if (_arg1.looted){ return; }; if (_arg2){ _local3 = "drop"; } else { _local3 = "chest"; }; _local4 = new TreasureReport(_local3); _local4.name = "treasure_report"; _local4.chest = _arg1; _local5 = 0; while (_local5 < _arg1.loot.length) { _local4.addItemRef(_arg1.loot[_local5]); _local5++; }; _local4.take_btn.addEventListener(MouseEvent.MOUSE_DOWN, treasureTakeClick); _local4.discard_btn.addEventListener(MouseEvent.MOUSE_DOWN, treasureDiscardClick); stage.addEventListener(KeyboardEvent.KEY_DOWN, treasureReportKeyDown); addChild(_local4); _local4.drawIcons(); } function treasureDiscardClick(_arg1:MouseEvent):void{ CloseTreasureReport(); dm.sound.play(SoundControl.destroyItem); } function ratingClick(_arg1:Event):void{ var _local2:*; _local2 = new RatingDialog(pc_party); addChild(_local2); } private function getClearedPercent():int{ var _local1:*; var _local2:*; _local1 = hordes.length; if (_local1 <= 0){ return (0); }; _local2 = getHordesDefeated(); return (Math.round(((_local2 / _local1) * 100))); } private function PlaceCorridor(_arg1:DungeonCorridor, _arg2:Boolean=false):int{ var _local3:*; var _local4:*; var _local5:*; var _local6:DungeonRoom; var _local7:*; var _local8:*; var _local9:Boolean; var _local10:*; _local3 = 0; _local4 = _arg1.grid_x; _local5 = _arg1.grid_y; _local7 = (_arg1 is rCorridorV); _local8 = checkFootprintEmpty(_arg1); if (!_local8){ return (0); }; _local9 = false; if (_local7){ _local3 = 0; while (_local3 < 2) { if (((((_local4 - 1) < 0)) || (((_local5 + _local3) >= grid_height)))){ return (0); }; _local6 = grid[(_local4 - 1)][(_local5 + _local3)]; _local9 = ((_local9) || (TestForAdjacentCorridorV(_local6))); if (((((_local4 + 1) >= grid_width)) || (((_local5 + _local3) >= grid_height)))){ return (0); }; _local6 = grid[(_local4 + 1)][(_local5 + _local3)]; _local9 = ((_local9) || (TestForAdjacentCorridorV(_local6))); _local3++; }; } else { _local3 = 0; while (_local3 < 2) { if (((((_local4 + _local3) >= grid_width)) || (((_local5 - 1) < 0)))){ return (0); }; _local6 = grid[(_local4 + _local3)][(_local5 - 1)]; _local9 = ((_local9) || (TestForAdjacentCorridorH(_local6))); if (((((_local4 + _local3) >= grid_width)) || (((_local5 + 1) >= grid_height)))){ return (0); }; _local6 = grid[(_local4 + _local3)][(_local5 + 1)]; _local9 = ((_local9) || (TestForAdjacentCorridorH(_local6))); _local3++; }; }; if (_local9){ return (0); }; _arg1.x = (SCREEN_X_OFFSET + (_local4 * GRID_SIZE)); _arg1.y = (SCREEN_Y_OFFSET + (_local5 * GRID_SIZE)); fillGridForRoom(_arg1); room_array.push(_arg1); addRoomToTypeArray(_arg1); _local10 = 1; if (((_arg2) || ((dm.randomNum(1, 100) > 20)))){ if (_local7){ _local5 = (_local5 + rCorridorV.grid_height); } else { _local4 = (_local4 + rCorridorH.grid_width); }; if (dm.randomNum(1, 100) > 70){ _local7 = !(_local7); if (!_local7){ _local5 = (_local5 + (rCorridorV.grid_height - 1)); }; }; if (_local7){ _arg1 = new rCorridorV(); } else { _arg1 = new rCorridorH(); }; _arg1.grid_x = _local4; _arg1.grid_y = _local5; _local10 = (_local10 + PlaceCorridor(_arg1, false)); }; return (_local10); } public function useRest():void{ var _local1:*; var _local2:*; var _local3:*; _local1 = getChildByName("rest_dlg"); if (_local1 != null){ removeChild(_local1); }; if (entryRoom == null){ return; }; _local2 = entryRoom.getEntrance(); if (_local2 == null){ return; }; _local3 = new RestScreen(); addChild(_local3); pc_party.fullRecovery(); _local2.enableRest = false; _local2.removeGlow(); previousLevelCleared = false; if (parent != null){ DungeonMain(parent).saveParty(); DungeonMain(parent).saveDungeon(); }; } public static function hintShown(_arg1:int):Boolean{ return (((DungeonMain.hints & _arg1) == _arg1)); } public static function getMonsterRace(_arg1:int, _arg2:int):int{ var _local3:Array; var _local4:*; if ((_arg1 % DungeonMain.MAX_LEVEL) == 0){ return (Horde.special); }; if (_arg1 == 1){ return (Horde.undead); }; _local3 = new Array(); _local4 = 1; while (_local4 <= 8) { if ((_arg2 & _local4) != _local4){ _local3.push(_local4); }; _local4 = (_local4 * 2); }; if (!_local3.length){ return (Horde.undead); }; return (_local3[dm.randomNum(0, (_local3.length - 1))]); } } }//package
Section 87
//DungeonCorridor (DungeonCorridor) package { public class DungeonCorridor extends DungeonRoom { public function DungeonCorridor(){ isCorridor = true; } } }//package
Section 88
//DungeonInterface (DungeonInterface) package { import flash.text.*; import flash.display.*; public dynamic class DungeonInterface extends MovieClip { public var cleared_bar:ProgressCleared; public var slot3:EmptyPortrait; public var level_debug:TextField; public var slot1:EmptyPortrait; public var slot4:EmptyPortrait; public var maxgames_btn:MaxGamesHudButton; public var sound_btn:SoundButton; public var slot2:EmptyPortrait; public var explored_bar:ProgressExplored; public var help_btn:HelpButton; public var clear_btn:TextField; public var descend_button:DownLevelButton; public var menu_btn:MenuButton; public var level_label:TextField; public var heal_btn:TextField; public var gear_btn:TextField; public var hint_btn:HintButton; public var items_label:TextField; public var explore_btn:TextField; public var rating_btn:MovieClip; public var newdungeon_btn:TextField; public var inventory_btn:CharsButton; public var rest_button:MovieClip; } }//package
Section 89
//DungeonLoading (DungeonLoading) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.media.*; public class DungeonLoading extends Sprite { private var text_contents:String; var channel:SoundChannel; public var proceed_btn:ProceedButton; public var prose:TextField; var anim_frame:int;// = 0 private var proceed_fn:Function; public function DungeonLoading(){ anim_frame = 0; super(); this.addEventListener(Event.REMOVED_FROM_STAGE, removed); } function frameAnim(_arg1:Event):void{ var _local2 = ??pushnamespace ; var _local3:*; if (anim_frame == 1){ startWriteSound(); }; _local2 = 4; _local3 = Math.min((_local2 * anim_frame), text_contents.length); prose.text = text_contents.substr(0, _local3); if (_local3 >= text_contents.length){ this.removeEventListener(Event.ENTER_FRAME, frameAnim); endWriteSound(); }; anim_frame++; } public function allowProceed():void{ if (!this.contains(proceed_btn)){ addChild(proceed_btn); }; if (proceed_fn != null){ proceed_btn.addEventListener(MouseEvent.MOUSE_DOWN, proceed_fn); }; } function removed(_arg1:Event):void{ this.removeEventListener(Event.REMOVED_FROM_STAGE, removed); if (proceed_fn != null){ proceed_btn.removeEventListener(MouseEvent.MOUSE_DOWN, proceed_fn); }; this.removeEventListener(Event.ENTER_FRAME, frameAnim); endWriteSound(); } private function startWriteSound():void{ channel = new writing_sound().play(0, 999); channel.soundTransform = new SoundTransform(SoundControl.volumeSetting); } public function setText(_arg1:String):int{ var _local2:*; text_contents = _arg1; prose.text = _arg1; _local2 = prose.textHeight; prose.text = ""; this.addEventListener(Event.ENTER_FRAME, frameAnim); return (_local2); } private function endWriteSound():void{ if (channel != null){ channel.stop(); }; } public function setCallback(_arg1:Function):void{ proceed_fn = _arg1; } } }//package
Section 90
//DungeonMain (DungeonMain) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; public class DungeonMain extends MovieClip { var dungeon_theme:DungeonMusic; var title_theme:TitleMusic; var loading:DungeonLoading; var recent_monsters:uint;// = 0 var inventory:Inventory; var so:SharedObject; var level:int;// = 1 var infiniteTransition:Boolean;// = false var battle_theme:BattleMusic; var pc_party:Party; var dungeon:Dungeon; var suspendSaving:Boolean;// = false var battle:Battlefield; var creation:PartyCreation; static const skillsUnlocked = false; static const app_width = 550; static const MAX_LEVEL = 9; static const debugitems = false; static const debug = false; static const app_height = 450; static const nobaddies = false; static const nosaving = false; static const instantKill = false; static var hints:uint = 0; static var showHints:Boolean = true; public function DungeonMain(){ level = 1; recent_monsters = 0; infiniteTransition = false; suspendSaving = false; super(); dm.sound = new SoundControl(); dm.main = this; if (root != null){ dm.stage = stage; }; beginIntro(); } function descendClick(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:*; saveAll(false); clearSave(); suspendSaving = true; levelUp(); dungeon.cleanup(); removeChild(dungeon); _local2 = dungeon.race; _local3 = dungeon.fullyCleared(); dungeon = null; checkRecentMonsters(); _local4 = Dungeon.getMonsterRace(level, recent_monsters); addToRecentMonsters(_local4); dungeon = new Dungeon(pc_party, level, _local4, _local3); if (level == MAX_LEVEL){ addLoadingScreen("The party descend to the next level.\n\nIn their quest they have battled many and experienced much, but\nthey find themselves unprepared for what awaits them here. Never\nyet have they encountered so palpable a sense of evil. It pervades\nthese halls, and lesser men would flee in terror at its touch.\n\nThese few, though, have not come so far only to falter at the last. They sense that they have reached their destination and victory\nnow lies within their grasp.\n\nWithout exchanging a word, the heroes know what they must do. Nothing in this place may be suffered to live.", this.proceedClick, true); } else { addLoadingScreen(dungeon.getIntroduction(_local4), this.proceedClick); }; startDungeonTimer(); } public function saveAll(_arg1:Boolean):void{ var _local2:*; var _local3:*; if (((nosaving) || (suspendSaving))){ return; }; saveInterface(); setSaveSlot(); saveParty(); saveChars(); saveInventory(); saveDungeon(); so.data.battle = _arg1; if (DungeonMain.debug){ }; so.flush(); if (DungeonMain.debug){ }; } public function init():void{ endIntro(); registerAliases(); loadInterface(); mainMenu(); } function saveClick(_arg1:MouseEvent):void{ saveAll(false); } public function loadGame(_arg1:int):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; loadInterface(); if ((((_arg1 > 0)) && ((_arg1 < 4)))){ so = SharedObject.getLocal(("party" + _arg1)); if (DungeonMain.debug){ }; }; if (((!((so == null))) && ((so.size > 0)))){ pc_party = Party(so.data.pc_party); pc_party.save_slot = _arg1; if (so.data.char1 != null){ pc_party.members[0] = so.data.char1; _local2 = 0; while (_local2 < so.data.char1_skills_active.length) { pc_party.members[0].skills[_local2].active = so.data.char1_skills_active[_local2]; pc_party.members[0].skills[_local2].position = so.data.char1_skills_position[_local2]; pc_party.members[0].skills[_local2].unlocked = so.data.char1_skills_unlocked[_local2]; _local2++; }; _local2 = 0; while (_local2 < Equipment.gearSlots) { pc_party.members[0].gear[_local2] = so.data.char1_equipment[_local2]; _local2++; }; pc_party.members[0].party = pc_party; }; if (so.data.char2 != null){ pc_party.members[1] = so.data.char2; _local2 = 0; while (_local2 < so.data.char2_skills_active.length) { pc_party.members[1].skills[_local2].active = so.data.char2_skills_active[_local2]; pc_party.members[1].skills[_local2].position = so.data.char2_skills_position[_local2]; pc_party.members[1].skills[_local2].unlocked = so.data.char2_skills_unlocked[_local2]; _local2++; }; _local2 = 0; while (_local2 < Equipment.gearSlots) { pc_party.members[1].gear[_local2] = so.data.char2_equipment[_local2]; _local2++; }; pc_party.members[1].party = pc_party; }; if (so.data.char3 != null){ pc_party.members[2] = so.data.char3; _local2 = 0; while (_local2 < so.data.char3_skills_active.length) { pc_party.members[2].skills[_local2].active = so.data.char3_skills_active[_local2]; pc_party.members[2].skills[_local2].position = so.data.char3_skills_position[_local2]; pc_party.members[2].skills[_local2].unlocked = so.data.char3_skills_unlocked[_local2]; _local2++; }; _local2 = 0; while (_local2 < Equipment.gearSlots) { pc_party.members[2].gear[_local2] = so.data.char3_equipment[_local2]; _local2++; }; pc_party.members[2].party = pc_party; }; if (so.data.char4 != null){ pc_party.members[3] = so.data.char4; _local2 = 0; while (_local2 < so.data.char4_skills_active.length) { pc_party.members[3].skills[_local2].active = so.data.char4_skills_active[_local2]; pc_party.members[3].skills[_local2].position = so.data.char4_skills_position[_local2]; pc_party.members[3].skills[_local2].unlocked = so.data.char4_skills_unlocked[_local2]; _local2++; }; _local2 = 0; while (_local2 < Equipment.gearSlots) { pc_party.members[3].gear[_local2] = so.data.char4_equipment[_local2]; _local2++; }; pc_party.members[3].party = pc_party; }; pc_party.inventory = so.data.inventory; pc_party.overflow = so.data.overflow; recent_monsters = so.data.recent_monsters; if (so.data.hordes.length >= 1){ so.data.hordes[0].members = so.data.h0_members; }; if (so.data.hordes.length >= 2){ so.data.hordes[1].members = so.data.h1_members; }; if (so.data.hordes.length >= 3){ so.data.hordes[2].members = so.data.h2_members; }; if (so.data.hordes.length >= 4){ so.data.hordes[3].members = so.data.h3_members; }; if (so.data.hordes.length >= 5){ so.data.hordes[4].members = so.data.h4_members; }; if (so.data.hordes.length >= 6){ so.data.hordes[5].members = so.data.h5_members; }; if (so.data.hordes.length >= 7){ so.data.hordes[6].members = so.data.h6_members; }; if (so.data.hordes.length >= 8){ so.data.hordes[7].members = so.data.h7_members; }; if (so.data.hordes.length >= 9){ so.data.hordes[8].members = so.data.h8_members; }; if (so.data.hordes.length >= 10){ so.data.hordes[9].members = so.data.h9_members; }; this.level = pc_party.level; dungeon = new Dungeon(pc_party, pc_party.level, so.data.race); _local4 = dungeon.createFromDataArray(so.data.rooms, so.data.currentRoomIndex, so.data.hordes, so.data.previous_cleared); if (!_local4){ } else { if (so.data.exit_found){ dungeon.foundExit(); }; if (getChildByName("LoadParty") != null){ removeChild(getChildByName("LoadParty")); }; if (so.data.battle){ addChild(dungeon); _local5 = dungeon.currentRoom.horde; beginBattle(_local5, true); } else { addChild(dungeon); musicDungeonTheme(true); }; }; if (((nosaving) || (suspendSaving))){ so = null; }; }; } private function demonDefeated():void{ var _local1:*; var _local2:*; dungeon.cleanup(); removeChild(dungeon); dungeon = null; infiniteTransition = true; pc_party.fullRecovery(); levelUp(); pc_party.addDemonLoot(); checkRecentMonsters(); _local1 = Dungeon.getMonsterRace(level, recent_monsters); addToRecentMonsters(_local1); dungeon = new Dungeon(pc_party, level, _local1, true); _local2 = "The demonic presence begins to fade, drawn back to whichever\nhellish realm spawned it. Not willingly, as its final scream of rage\nand pain shakes the dungeon to its very foundations.\n\nDebris begins to rain from the ceiling, and jagged chasms open in\nthe stone floor, revealing still deeper levels of the dungeon. That,\nhowever, must remain a mystery for another time. The heroes,\nvictorious in their quest, realize they must leave now lest their\nretreat be forever barred by the mounting piles of fallen rubble.\nBounding up the stairs, they find themselves passing back through\nall the levels in which they have fought, and bled, and which may\nyet become their tomb.\n\nFinally, desperately, they surge forth from the ruin's entrance, as\nthe dungeon collapses behind them in a final exhalation of dust and debris. Jubilance and disbelief.\n\nThey have succeeded, and they have survived."; addLoadingScreen(_local2, this.proceedClick, true); startDungeonTimer(); } private function musicDungeonTheme(_arg1:Boolean=false):void{ stopMusic(); dungeon_theme = new DungeonMusic(_arg1); } public function goToInventory(_arg1:PlayerCharacter=null){ inventory = null; inventory = new Inventory(); removeChild(dungeon); addChild(inventory); inventory.init(pc_party); if (_arg1 != null){ inventory.selectChar(_arg1); }; } private function levelUp():void{ var _local1:*; level++; pc_party.level++; _local1 = 0; while (_local1 < pc_party.members.length) { if (level > pc_party.members[_local1].level){ pc_party.members[_local1].levelUp(); }; _local1++; }; } private function beginIntro():void{ var _local1:MaxGamesIntro; _local1 = new MaxGamesIntro(); _local1.name = "intro"; _local1.x = 275; _local1.y = 225; addChild(_local1); _local1.link_btn.addEventListener(MouseEvent.CLICK, maxGamesClick); } private function startDungeonTimer():void{ var _local1:Timer; _local1 = new Timer(50, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, generateDungeon, false, 0, true); _local1.start(); } private function stopMusic(_arg1:int=0):void{ if (_arg1){ if (title_theme != null){ title_theme.fadeOut(_arg1); }; if (battle_theme != null){ battle_theme.fadeOut(_arg1); }; if (dungeon_theme != null){ dungeon_theme.fadeOut(_arg1); }; } else { if (title_theme != null){ title_theme.stop(); title_theme = null; }; if (battle_theme != null){ battle_theme.stop(); battle_theme = null; }; if (dungeon_theme != null){ dungeon_theme.stop(); dungeon_theme = null; }; }; } private function musicTitleTheme():void{ stopMusic(); title_theme = new TitleMusic(); } public function saveInventory():void{ var _local1:*; if (((nosaving) || (suspendSaving))){ return; }; if (so == null){ setSaveSlot(); }; so.data.inventory = new Array(pc_party.inventory.length); _local1 = 0; while (_local1 < pc_party.inventory.length) { so.data.inventory[_local1] = pc_party.inventory[_local1]; _local1++; }; so.data.overflow = new Array(pc_party.overflow.length); _local1 = 0; while (_local1 < pc_party.overflow.length) { so.data.overflow[_local1] = pc_party.overflow[_local1]; _local1++; }; } private function endIntro():void{ var _local1:*; _local1 = getChildByName("intro"); if (_local1 != null){ this.removeChild(_local1); MaxGamesIntro(_local1).link_btn.removeEventListener(MouseEvent.CLICK, maxGamesClick); }; } private function clearSave():void{ if (so == null){ return; }; so = null; } public function creationFinished(_arg1:Party):void{ var _local2:*; var _local3:Item; var _local4:*; pc_party = _arg1; if (this.contains(creation)){ removeChild(creation); }; if (DungeonMain.debugitems){ while (_arg1.inventory.length < Party.MAX_INVENTORY) { _local3 = new iShieldBuckler(1, -1); if (_local3.item_rarity == Item.purple){ _local4 = _local3.item_name; }; if (TreasureChest.testItemSuitable(_local3, _arg1)){ _arg1.addToInventory(_local3); }; }; }; recent_monsters = 0; _local2 = Dungeon.getMonsterRace(1, recent_monsters); addToRecentMonsters(_local2); dungeon = new Dungeon(pc_party, 1, _local2, false); addLoadingScreen("The party of adventurers make their way to the ancient ruin,\nequipped only with what meagre provisions the locals could spare.\n\nThe words of the village headman had filled them with a quiet\ndread, yet steeled their resolve. If the world is to be saved, they\nmust assault the dungeon and destroy the corruption lurking in its\ndepths.\n\nThey must enter the monsters' den.", this.proceedClick); startDungeonTimer(); } public function saveInterface():void{ var _local1:SharedObject; if (nosaving){ return; }; _local1 = SharedObject.getLocal("interface"); _local1.data.globalVolumeSetting = GlobalVolume.volumeSetting; _local1.data.sfxVolumeSetting = SoundControl.volumeSetting; _local1.data.musicVolumeSetting = Music.volumeSetting; _local1.data.showHints = showHints; _local1.data.hints = hints; } public function loadGameMenu(){ var _local1:*; _local1 = new LoadParty(); _local1.name = "LoadParty"; addChild(_local1); } private function checkRecentMonsters():void{ if (recent_monsters == (((Horde.greenskins + Horde.undead) + Horde.cultists) + Horde.creatures)){ recent_monsters = 0; }; } public function startGame(_arg1:int=1){ loadInterface(); level = 1; creation = new PartyCreation(); creation.pc_party.save_slot = _arg1; addChild(creation); } public function closeInventory(){ inventory.cleanup(); removeChild(inventory); addChild(dungeon); dungeon.updateChars(); } function closeDefeatDialog(_arg1:MouseEvent):void{ var _local2 = ??pushnamespace ; var _local3:*; if (((!((loading == null))) && (stage.contains(loading)))){ stage.removeChild(loading); }; musicDungeonTheme(); _local2 = 4; if (((DungeonMain.showHints) && ((Dungeon.hintShown(_local2) == false)))){ _local3 = new HintDialog("Defeat!", "You suffer a penalty for the defeat of the entire party.\n\nEach character loses an item of equipment, and up to two items are lost from party inventory."); DungeonMain.hints = (DungeonMain.hints + _local2); stage.addChild(_local3); saveInterface(); }; } public function PostBattle(_arg1:Horde){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local2 = false; battle.cleanup(); removeChild(battle); battle = null; suspendSaving = false; _local3 = 0; while (_local3 < pc_party.members.length) { pc_party.members[_local3].clearStatusEffects(); _local3++; }; _local3 = (_arg1.members.length - 1); while (_local3 >= 0) { if (_arg1.members[_local3].isSummoned()){ _arg1.members.splice(_local3, 1); } else { if ((((((level == MAX_LEVEL)) && (_arg1.boss))) && (!((_arg1.members[_local3] is mDemon))))){ _arg1.members.splice(_local3, 1); } else { _arg1.members[_local3].clearStatusEffects(); _arg1.members[_local3].resetSkills(); _arg1.members[_local3].health = _arg1.members[_local3].health_max; _arg1.members[_local3].power = _arg1.members[_local3].power_max; }; }; _local3--; }; _arg1.tooltip = null; if (pc_party.isPartyDead()){ pc_party.stat_party_defeats++; if (pc_party.hardcore){ DeleteSave(); pc_party = null; _local4 = "The heroes have fallen. Jubilant shouts ring through the ancient\nhalls as the enemy celebrate their victory.\n\nThough the adventurers fought bravely and endured much, in the\nend it was not enough-- the forces of darkness proving too strong.\n\nThe only hope that remains is that another group of brave souls\nmay be found, to attempt once more to enter the monsters' den\nand penetrate its dark heart."; addLoadingScreen(_local4, this.closeHardcoreDefeatDialog, false, true); return; }; _local5 = pc_party.deathPenalty(); dungeon.retreatFromMonsters(_arg1); _local6 = "The party has been defeated in battle. The enemy pick over the\nfallen bodies, claiming a few choice items as trophies of their\nvictory.\n\nTime passes.\n\nEventually, the bodies begin to stir. Were the enemy less successful\nthan they hoped, or is this a miracle-- an act of divine provenance?\n\nWhatever the explanation may be, our heroes have survived to\ncontinue their quest. There is hope yet."; addLoadingScreen(_local6, this.closeDefeatDialog, false, true); if (_local5){ }; _local2 = true; } else { if (!_arg1.defeated){ dungeon.retreatFromMonsters(_arg1); }; }; addChild(dungeon); dungeon.updateChars(); if (_arg1.defeated){ _arg1.fade(); pc_party.stat_hordes_defeated++; if (_arg1.boss){ pc_party.stat_leaders_defeated++; }; if ((((level == MAX_LEVEL)) && (_arg1.boss))){ demonDefeated(); return; }; dungeon.hordeDefeated(_arg1); _local7 = new TreasureChest(pc_party, level, Math.round((_arg1.members.length * 1.5)), _arg1.boss); if (_local7.loot.length){ dungeon.addTreasureReport(_local7, true); }; }; if (!_local2){ musicDungeonTheme(); }; saveAll(false); } public function saveChars():void{ var _local1:*; if (((nosaving) || (suspendSaving))){ return; }; if (so == null){ setSaveSlot(); }; so.data.char1 = pc_party.members[0]; so.data.char2 = pc_party.members[1]; so.data.char3 = pc_party.members[2]; so.data.char4 = pc_party.members[3]; if (pc_party.members[0] != null){ so.data.char1_skills_active = new Array(10); so.data.char1_skills_position = new Array(10); so.data.char1_skills_unlocked = new Array(10); _local1 = 0; while (_local1 < pc_party.members[0].skills.length) { so.data.char1_skills_active[_local1] = pc_party.members[0].skills[_local1].active; so.data.char1_skills_position[_local1] = pc_party.members[0].skills[_local1].position; so.data.char1_skills_unlocked[_local1] = pc_party.members[0].skills[_local1].unlocked; _local1++; }; so.data.char1_equipment = new Array(Equipment.gearSlots); _local1 = 0; while (_local1 < Equipment.gearSlots) { so.data.char1_equipment[_local1] = pc_party.members[0].gear[_local1]; _local1++; }; }; if (pc_party.members[1] != null){ so.data.char2_skills_active = new Array(10); so.data.char2_skills_position = new Array(10); so.data.char2_skills_unlocked = new Array(10); _local1 = 0; while (_local1 < pc_party.members[1].skills.length) { so.data.char2_skills_active[_local1] = pc_party.members[1].skills[_local1].active; so.data.char2_skills_position[_local1] = pc_party.members[1].skills[_local1].position; so.data.char2_skills_unlocked[_local1] = pc_party.members[1].skills[_local1].unlocked; _local1++; }; so.data.char2_equipment = new Array(Equipment.gearSlots); _local1 = 0; while (_local1 < Equipment.gearSlots) { so.data.char2_equipment[_local1] = pc_party.members[1].gear[_local1]; _local1++; }; }; if (pc_party.members[2] != null){ so.data.char3_skills_active = new Array(10); so.data.char3_skills_position = new Array(10); so.data.char3_skills_unlocked = new Array(10); _local1 = 0; while (_local1 < pc_party.members[2].skills.length) { so.data.char3_skills_active[_local1] = pc_party.members[2].skills[_local1].active; so.data.char3_skills_position[_local1] = pc_party.members[2].skills[_local1].position; so.data.char3_skills_unlocked[_local1] = pc_party.members[2].skills[_local1].unlocked; _local1++; }; so.data.char3_equipment = new Array(Equipment.gearSlots); _local1 = 0; while (_local1 < Equipment.gearSlots) { so.data.char3_equipment[_local1] = pc_party.members[2].gear[_local1]; _local1++; }; }; if (pc_party.members[3] != null){ so.data.char4_skills_active = new Array(10); so.data.char4_skills_position = new Array(10); so.data.char4_skills_unlocked = new Array(10); _local1 = 0; while (_local1 < pc_party.members[3].skills.length) { so.data.char4_skills_active[_local1] = pc_party.members[3].skills[_local1].active; so.data.char4_skills_position[_local1] = pc_party.members[3].skills[_local1].position; so.data.char4_skills_unlocked[_local1] = pc_party.members[3].skills[_local1].unlocked; _local1++; }; so.data.char4_equipment = new Array(Equipment.gearSlots); _local1 = 0; while (_local1 < Equipment.gearSlots) { so.data.char4_equipment[_local1] = pc_party.members[3].gear[_local1]; _local1++; }; }; } private function addToRecentMonsters(_arg1:int):void{ if ((recent_monsters & _arg1) == _arg1){ recent_monsters = 0; } else { recent_monsters = (recent_monsters + _arg1); }; } public function saveDungeon():void{ var _local1:*; if (((nosaving) || (suspendSaving))){ return; }; if (so == null){ setSaveSlot(); }; so.data.recent_monsters = recent_monsters; so.data.race = dungeon.race; so.data.tileset = dungeon.tileset; so.data.exit_found = dungeon.exit_found; so.data.previous_cleared = dungeon.previousLevelCleared; so.data.currentRoomIndex = dungeon.currentRoom.index; so.data.rooms = new Array(); _local1 = 0; while (_local1 < dungeon.room_array.length) { so.data.rooms.push(dungeon.room_array[_local1].roomData()); _local1++; }; so.data.hordes = new Array(dungeon.hordes.length); _local1 = 0; while (_local1 < dungeon.hordes.length) { so.data.hordes[_local1] = dungeon.hordes[_local1].hordeData(); _local1++; }; if (dungeon.hordes.length >= 1){ so.data.h0_members = dungeon.hordes[0].members; }; if (dungeon.hordes.length >= 2){ so.data.h1_members = dungeon.hordes[1].members; }; if (dungeon.hordes.length >= 3){ so.data.h2_members = dungeon.hordes[2].members; }; if (dungeon.hordes.length >= 4){ so.data.h3_members = dungeon.hordes[3].members; }; if (dungeon.hordes.length >= 5){ so.data.h4_members = dungeon.hordes[4].members; }; if (dungeon.hordes.length >= 6){ so.data.h5_members = dungeon.hordes[5].members; }; if (dungeon.hordes.length >= 7){ so.data.h6_members = dungeon.hordes[6].members; }; if (dungeon.hordes.length >= 8){ so.data.h7_members = dungeon.hordes[7].members; }; if (dungeon.hordes.length >= 9){ so.data.h8_members = dungeon.hordes[8].members; }; if (dungeon.hordes.length >= 10){ so.data.h9_members = dungeon.hordes[9].members; }; } public function NewDungeonClick(_arg1:MouseEvent){ var _local2:*; var _local3:*; removeChild(dungeon); dungeon.cleanup(); _local2 = dungeon.race; dungeon = null; dungeon = new Dungeon(pc_party, level); _local3 = false; while (!(_local3)) { _local3 = dungeon.generateDungeon(); }; addChild(dungeon); } public function saveParty():void{ if (((nosaving) || (suspendSaving))){ return; }; if (so == null){ setSaveSlot(); }; so.data.pc_party = pc_party; so.data.hints = hints; } public function loadInterface():void{ var _local1:SharedObject; _local1 = SharedObject.getLocal("interface"); if (_local1.size > 0){ GlobalVolume.setVolume(_local1.data.globalVolumeSetting); SoundControl.volumeSetting = _local1.data.sfxVolumeSetting; setMusicVolume(_local1.data.musicVolumeSetting); showHints = _local1.data.showHints; hints = _local1.data.hints; }; } public function proceedClick(_arg1:MouseEvent):void{ if (((!((loading == null))) && (stage.contains(loading)))){ stage.removeChild(loading); }; if (infiniteTransition){ infiniteTransition = false; mainMenu(true); } else { addChild(dungeon); musicDungeonTheme(true); }; } function closeHardcoreDefeatDialog(_arg1:MouseEvent):void{ if (((!((loading == null))) && (stage.contains(loading)))){ stage.removeChild(loading); }; mainMenu(); } private function musicBattleTheme():void{ stopMusic(); battle_theme = new BattleMusic(true); } private function dungeonLoadingFinished():void{ suspendSaving = false; saveAll(false); loading.allowProceed(); } public function beginBattle(_arg1:Horde, _arg2:Boolean=false){ var _local3:Timer; dungeon.mouseEnabled = false; dungeon.mouseChildren = false; battle = new Battlefield(); battle.pc_party = pc_party; battle.horde = _arg1; battle.layoutBoard(); if (!_arg2){ saveAll(true); }; clearSave(); suspendSaving = true; if (_arg1.room != null){ dm.childToTop(_arg1.room); }; _arg1.battleAnim(); _local3 = new Timer(1000, 1); _local3.addEventListener(TimerEvent.TIMER_COMPLETE, battleTimerFinished, false, 0, true); _local3.start(); } public function setSaveSlot():void{ var _local1:*; if (((nosaving) || (suspendSaving))){ return; }; _local1 = pc_party.save_slot; if (_local1 == 1){ so = SharedObject.getLocal("party1"); } else { if (_local1 == 2){ so = SharedObject.getLocal("party2"); } else { if (_local1 == 3){ so = SharedObject.getLocal("party3"); } else { return; }; }; }; } public function InventoryClick(_arg1:MouseEvent){ goToInventory(); } public function dungeonMenuClick(_arg1:MouseEvent):void{ saveAll(false); if (dungeon != null){ if (this.contains(dungeon)){ removeChild(dungeon); }; dungeon.cleanup(); dungeon = null; }; mainMenu(); } function maxGamesClick(_arg1:MouseEvent):void{ dm.link("http://www.maxgames.com"); } private function addLoadingScreen(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local5:*; var _local6:*; stopMusic(200); loading = new DungeonLoading(); loading.name = "dungeonloading"; loading.setCallback(_arg2); _local5 = loading.setText(_arg1); loading.prose.y = ((app_height - _local5) / 2); if (_arg3){ _local6 = (((loading.prose.y + loading.prose.textHeight) + 15) - loading.proceed_btn.y); if (_local6 > 0){ loading.prose.y = Math.max(0, (loading.prose.y - _local6)); }; }; if (_arg4){ loading.allowProceed(); } else { loading.removeChild(loading.proceed_btn); }; stage.addChild(loading); } public function generateDungeon(_arg1:TimerEvent=null):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = 0; while (((!(_local2)) && ((_local3 < 5)))) { _local2 = dungeon.generateDungeon(); _local3++; }; if (_local2){ dungeonLoadingFinished(); } else { startDungeonTimer(); }; } public function setMusicVolume(_arg1:Number):void{ Music.volumeSetting = _arg1; if (((!((dungeon_theme == null))) && (dungeon_theme.active))){ dungeon_theme.setVolume(_arg1); }; if (((!((battle_theme == null))) && (battle_theme.active))){ battle_theme.setVolume(_arg1); }; if (((!((title_theme == null))) && (title_theme.active))){ title_theme.setVolume(_arg1); }; } public function mainMenu(_arg1:Boolean=false):void{ var _local2:*; var _local3:*; var _local4:*; if (battle_theme != null){ battle_theme.fadeOut(500); }; if (dungeon_theme != null){ dungeon_theme.fadeOut(500); }; if (title_theme == null){ musicTitleTheme(); }; _local2 = new TitleScreen(); _local2.name = "title"; addChild(_local2); if (_arg1){ _local3 = "The quest has been completed, but the adventure is not over. \n\nYou may continue with your party, gaining power and items, as long as you wish.\n\nCheck the party inventory for bonus rewards!"; _local4 = new HintDialog("Infinite Mode Unlocked", _local3, false, true); stage.addChild(_local4); }; } private function DeleteSave():void{ setSaveSlot(); if (((!((so == null))) && ((so.size > 0)))){ so.clear(); so.flush(); so = null; }; } function battleTimerFinished(_arg1:TimerEvent):void{ if (this.contains(dungeon)){ removeChild(dungeon); }; addChild(battle); dungeon.mouseEnabled = true; dungeon.mouseChildren = true; musicBattleTheme(); } public static function RandomNum(_arg1:int, _arg2:int):int{ var _local3:*; _local3 = (Math.round((Math.random() * (_arg2 - _arg1))) + _arg1); return (_local3); } public static function registerAliases():void{ registerClassAlias("PartyAlias", Party); registerClassAlias("PlayerCharacterAlias", PlayerCharacter); registerClassAlias("PC_ClericAlias", PC_Cleric); registerClassAlias("PC_RogueAlias", PC_Rogue); registerClassAlias("PC_MageAlias", PC_Mage); registerClassAlias("PC_WarriorAlias", PC_Warrior); registerClassAlias("PC_RangerAlias", PC_Ranger); registerClassAlias("DungeonRoomDataAlias", DungeonRoomData); registerClassAlias("HordeDataAlias", HordeData); registerClassAlias("MonsterCharacterAlias", MonsterCharacter); registerClassAlias("mDemonAlias", mDemon); registerClassAlias("mDeathKnightAlias", mDeathKnight); registerClassAlias("mNecromancerAlias", mNecromancer); registerClassAlias("mOrcJuggernaut", mOrcJuggernaut); registerClassAlias("mOrcWarlordAlias", mOrcWarlord); registerClassAlias("mDragonAlias", mDragon); registerClassAlias("mBeholderAlias", mBeholder); registerClassAlias("mCultEngineAlias", mCultEngine); registerClassAlias("mAscendantAlias", mAscendant); registerClassAlias("mZombieAlias", mZombie); registerClassAlias("mBoneHorrorAlias", mBoneHorror); registerClassAlias("mGhostAlias", mGhost); registerClassAlias("mSkeletonAlias", mSkeleton); registerClassAlias("mLichAlias", mLich); registerClassAlias("mVampireAlias", mVampire); registerClassAlias("mSkeletonArcherAlias", mSkeletonArcher); registerClassAlias("mTrollAlias", mTroll); registerClassAlias("mOrcBerserkerAlias", mOrcBerserker); registerClassAlias("mOrcChampionAlias", mOrcChampion); registerClassAlias("mOrcSavageAlias", mOrcSavage); registerClassAlias("mOrcShamanAlias", mOrcShaman); registerClassAlias("mGoblinArtificerAlias", mGoblinArtificer); registerClassAlias("mBasiliskAlias", mBasilisk); registerClassAlias("mArachnoidAlias", mArachnoid); registerClassAlias("mGreeblerAlias", mGreebler); registerClassAlias("mGargoyleAlias", mGargoyle); registerClassAlias("mPoisonDrakeAlias", mPoisonDrake); registerClassAlias("mLightningDrakeAlias", mLightningDrake); registerClassAlias("mCultWarriorAlias", mCultWarrior); registerClassAlias("mCultArcherAlias", mCultArcher); registerClassAlias("mCultChosenAlias", mCultChosen); registerClassAlias("mCultPriestAlias", mCultPriest); registerClassAlias("mCultNeophyteAlias", mCultNeophyte); registerClassAlias("mVoidstalkerAlias", mVoidstalker); registerClassAlias("mAetherguardAlias", mAetherguard); registerClassAlias("iDaggerAlias", iDagger); registerClassAlias("iSwordAlias", iSword); registerClassAlias("iAxeAlias", iAxe); registerClassAlias("iMaceAlias", iMace); registerClassAlias("iSpearAlias", iSpear); registerClassAlias("iBowAlias", iBow); registerClassAlias("iCrossbowAlias", iCrossbow); registerClassAlias("iStaffAlias", iStaff); registerClassAlias("iPlateHelmetAlias", iPlateHelmet); registerClassAlias("iPlateGlovesAlias", iPlateGloves); registerClassAlias("iPlateGreavesAlias", iPlateGreaves); registerClassAlias("iPlateBootsAlias", iPlateBoots); registerClassAlias("iPlateBreastplateAlias", iPlateBreastplate); registerClassAlias("iLeatherHatAlias", iLeatherHat); registerClassAlias("iLeatherGlovesAlias", iLeatherGloves); registerClassAlias("iLeatherLegsAlias", iLeatherLegs); registerClassAlias("iLeatherBootsAlias", iLeatherBoots); registerClassAlias("iLeatherChestAlias", iLeatherChest); registerClassAlias("iCLothHat", iClothHat); registerClassAlias("iClothGloves", iClothGloves); registerClassAlias("iClothlegs", iClothLegs); registerClassAlias("iClothShows", iClothShoes); registerClassAlias("iClothRobe", iClothRobe); registerClassAlias("iRingAlias", iRing); registerClassAlias("iCloakAlias", iCloak); registerClassAlias("iQuiverAlias", iQuiver); registerClassAlias("iParryingDaggerAlias", iParryingDagger); registerClassAlias("iShieldBucklerAlias", iShieldBuckler); registerClassAlias("iShieldTowerAlias", iShieldTower); registerClassAlias("iCenserAlias", iCenser); registerClassAlias("pothealthsmall", PotionHealthSmall); registerClassAlias("potpowersmall", PotionPowerSmall); registerClassAlias("potrejuvesmall", PotionRejuveSmall); registerClassAlias("potreviveweak", PotionReviveWeak); registerClassAlias("pothealth", PotionHealth); registerClassAlias("potpower", PotionPower); registerClassAlias("potrejuve", PotionRejuve); registerClassAlias("potrevive", PotionRevive); registerClassAlias("potresist", PotionPoisonResist); registerClassAlias("potshield", PotionShield); registerClassAlias("potquickness", PotionQuickness); registerClassAlias("sneakscroll", SneakyScroll); } } }//package
Section 91
//DungeonMusic (DungeonMusic) package { import flash.events.*; import flash.media.*; public class DungeonMusic extends Music { var segment1:Sound; var playingSegment:int;// = 0 var segment2:Sound; public function DungeonMusic(_arg1:Boolean=true):void{ playingSegment = 0; super(); segment1 = new return_of_the_knights_b(); active = true; channel = segment1.play(0, 99999); if (_arg1){ this.fadeIn(); } else { this.setVolume(volumeSetting); }; } function finishedSegment(_arg1:Event):void{ if (this.active){ if (playingSegment == 2){ playSegment1(); } else { if (playingSegment == 1){ playSegment2(); }; }; }; } private function playSegment1():void{ var _local1:*; if (channel != null){ channel.removeEventListener(Event.SOUND_COMPLETE, finishedSegment); }; playingSegment = 1; _local1 = dm.randomNum(1, 1); channel = segment1.play(0, _local1); channel.addEventListener(Event.SOUND_COMPLETE, finishedSegment); } private function playSegment2():void{ var _local1:*; if (channel != null){ channel.removeEventListener(Event.SOUND_COMPLETE, finishedSegment); }; playingSegment = 2; _local1 = dm.randomNum(1, 1); channel = segment2.play(0, _local1); channel.addEventListener(Event.SOUND_COMPLETE, finishedSegment); } } }//package
Section 92
//DungeonRoom (DungeonRoom) package { import flash.events.*; import flash.display.*; public class DungeonRoom extends MovieClip { var shrine:RecoveryShrine; public var floor:MovieClip; var horde:Horde; private var _floor_frame_number:int;// = 0 private var _isExit:Boolean;// = false var doors:Array; private var _furniture_frame_number:int;// = 0 var treasure:TreasureChest; private var _grid_x:int;// = 0 private var _grid_y:int;// = 0 var validate_id:int;// = -1 var isCorridor:Boolean; var adjacent:Array; private var _seen:Boolean;// = false private var _explored:Boolean;// = false var isCorridorH:Boolean; private var _isEntrance:Boolean;// = false private var _index:int;// = 0 static const max_adjacent = 6; public function DungeonRoom(){ adjacent = new Array(); doors = new Array(max_adjacent); _grid_x = 0; _grid_y = 0; _furniture_frame_number = 0; _floor_frame_number = 0; _seen = false; _explored = false; _isExit = false; _isEntrance = false; _index = 0; validate_id = -1; super(); isCorridor = false; isCorridorH = false; } public function get isEntrance():Boolean{ return (this._isEntrance); } public function set isEntrance(_arg1:Boolean):void{ this._isEntrance = _arg1; } public function getGridHeight():int{ return (0); } public function setAlpha(_arg1:Number):void{ this.alpha = _arg1; } public function isAdjacentTo(_arg1:DungeonRoom):Boolean{ var _local2:*; _local2 = 0; while (_local2 < num_adjacent) { if (adjacent[_local2] == _arg1){ return (true); }; _local2++; }; return (false); } public function getEntrance():EntryStairs{ var _local1:*; if (!this.isEntrance){ return (null); }; _local1 = getChildByName("entrance"); return (_local1); } public function get explored():Boolean{ return (this._explored); } protected function setAlphaChildren(_arg1:Number):void{ if (treasure != null){ treasure.alpha = _arg1; }; if (horde != null){ horde.alpha = _arg1; }; if (shrine != null){ shrine.alpha = _arg1; }; if (isEntrance){ getChildByName("entrance").alpha = _arg1; }; if (isExit){ getChildByName("exit").alpha = _arg1; }; } public function hasValidTreasure():Boolean{ if (((!((this.treasure == null))) && (!(this.treasure.looted)))){ return (true); }; return (false); } public function addFurniture():void{ if (furniture_frame_number == 0){ furniture_frame_number = DungeonMain.RandomNum(1, this.totalFrames); }; this.gotoAndStop(furniture_frame_number); } public function set explored(_arg1:Boolean):void{ this._explored = _arg1; } public function realHeight():int{ return ((getGridHeight() * Dungeon.GRID_SIZE)); } private function resetDoors():void{ var _local1:*; _local1 = 0; while (_local1 < doors.length) { if (doors[_local1] == null){ } else { doors[_local1].gotoAndStop(1); }; _local1++; }; } public function addEntrance(_arg1:Boolean):void{ var _local2:*; var _local3:EntryStairs; var _local4:*; var _local5:*; var _local6:*; _local2 = 0; this.isEntrance = true; this.furniture_frame_number = 1; _local3 = new EntryStairs(_arg1); _local3.name = "entrance"; _local4 = (this.x + (this.realWidth() / 2)); _local5 = (this.y + (this.realHeight() / 2)); _local6 = false; if (isCorridor){ if (isCorridorH){ _local6 = false; _local2 = 0; while (_local2 < doors.length) { if (doors[_local2].x >= _local4){ _local6 = true; }; _local2++; }; if (_local6){ _local3.rotation = 180; }; } else { _local3.rotation = 90; _local6 = false; _local2 = 0; while (_local2 < doors.length) { if (doors[_local2].y >= _local5){ _local6 = true; }; _local2++; }; if (_local6){ _local3.rotation = 270; }; }; }; _local3.x = getCenterHorz(); _local3.y = getCenterVert(); this.setChild(_local3); } public function get seen():Boolean{ return (this._seen); } private function highlightDoor():void{ var _local1:DungeonRoom; var _local2:*; if (((!((parent == null))) && ((parent is Dungeon)))){ _local1 = Dungeon(parent).currentRoom; } else { return; }; _local2 = 0; while (_local2 < doors.length) { if (doors[_local2] == null){ } else { if ((((doors[_local2].room1 == _local1)) || ((doors[_local2].room2 == _local1)))){ doors[_local2].gotoAndStop(2); }; }; _local2++; }; } function room_mouseover(_arg1:MouseEvent):void{ drawArrow(); } public function cleanup():void{ this.removeEventListener(MouseEvent.MOUSE_DOWN, Dungeon(parent).roomClick); this.removeEventListener(MouseEvent.MOUSE_OVER, room_mouseover); this.removeEventListener(MouseEvent.MOUSE_OUT, room_mouseout); } public function hasPathTo(_arg1:DungeonRoom):Boolean{ var _local2:Array; var _local3:Array; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local2 = new Array(); _local3 = new Array(); _local4 = false; _local2.push(this); while ((_local5 = _local2.pop())) { _local3.push(_local5); _local6 = 0; while (_local6 < num_adjacent) { if (_local5.adjacent[_local6] != _local5){ _local4 = false; _local7 = 0; while (_local7 < _local3.length) { if (_local3[_local7] == _local5.adjacent[_local6]){ _local4 = true; }; _local7++; }; if (!_local4){ _local2.push(_local5.adjacent[_local6]); }; }; _local6++; }; if (_local5 == _arg1){ return (true); }; }; return (false); } public function clearAdjacent():void{ adjacent.length = 0; doors.length = 0; } public function hasSpecial():Boolean{ if (((!((this.horde == null))) && (!(horde.defeated)))){ return (true); }; if (((!((this.shrine == null))) && (!(shrine.used)))){ return (true); }; if (((!((this.treasure == null))) && (!(treasure.looted)))){ return (true); }; if (this.isExit){ return (true); }; if (this.isEntrance){ return (true); }; return (false); } public function setHorde(_arg1:Horde):void{ this.horde = _arg1; _arg1.room = this; _arg1.x = getCenterHorz(); _arg1.y = getCenterVert(); _arg1.name = "horde"; if (_arg1.defeated == false){ this.setChild(_arg1); }; } public function realWidth():int{ return ((getGridWidth() * Dungeon.GRID_SIZE)); } public function set isExit(_arg1:Boolean):void{ this._isExit = _arg1; } public function setFloor():void{ var _local1:MovieClip; _local1 = MovieClip(this.getChildByName("floor")); if (_local1 == null){ return; }; if (floor_frame_number == 0){ floor_frame_number = DungeonMain.RandomNum(1, _local1.totalFrames); }; _local1.gotoAndStop(floor_frame_number); } public function get index():int{ return (this._index); } public function toTop():void{ var _local1:*; if (parent == null){ return; }; _local1 = (parent.numChildren - 1); if (parent.getChildByName("arrow") != null){ _local1--; }; parent.setChildIndex(this, _local1); } public function set seen(_arg1:Boolean):void{ this._seen = _arg1; } public function set furniture_frame_number(_arg1:int):void{ this._furniture_frame_number = _arg1; } public function getCenterVert():int{ return (((this.getGridHeight() * Dungeon.GRID_SIZE) / 2)); } public function roomData():DungeonRoomData{ var _local1:*; _local1 = new DungeonRoomData(); this.copyValuesTo(_local1); return (_local1); } private function drawArrow():void{ if (((!((parent == null))) && ((parent is Dungeon)))){ Dungeon(parent).drawMovementArrow(this); }; } public function validate(_arg1:int):int{ var _local2:*; var _local3:*; _local2 = 0; if (this.validate_id != -1){ return (_local2); }; this.validate_id = _arg1; _local2++; _local3 = 0; while (_local3 < adjacent.length) { _local2 = (_local2 + adjacent[_local3].validate(_arg1)); _local3++; }; return (_local2); } public function travelTo(_arg1:Boolean=false):Boolean{ var _local2:*; removeArrow(); if (((!(explored)) && (!((parent == null))))){ Dungeon(parent).pc_party.stat_rooms_explored++; }; seen = true; explored = true; if ((((parent == null)) && (!((parent is Dungeon))))){ return (false); }; _local2 = 0; while (_local2 < adjacent.length) { if (((!((adjacent[_local2] == this))) && (!((adjacent[_local2] == null))))){ adjacent[_local2].addEventListener(MouseEvent.MOUSE_DOWN, Dungeon(parent).roomClick); adjacent[_local2].seen = true; adjacent[_local2].addEventListener(MouseEvent.MOUSE_OVER, adjacent[_local2].room_mouseover); adjacent[_local2].addEventListener(MouseEvent.MOUSE_OUT, adjacent[_local2].room_mouseout); }; _local2++; }; if (!_arg1){ if (treasure != null){ return (true); }; if (isExit){ return (true); }; if (isEntrance){ return (true); }; if (shrine != null){ return (true); }; }; if (horde != null){ return (true); }; return (false); } public function setNotAdjacentTo(_arg1:DungeonRoom, _arg2:Boolean=true){ var _local3:*; _local3 = 0; while (_local3 < adjacent.length) { if (adjacent[_local3] == _arg1){ adjacent.splice(_local3, 1); _local3--; if (_arg2){ _arg1.setNotAdjacentTo(this, false); }; return; }; _local3++; }; } public function setAdjacentTo(_arg1:DungeonRoom, _arg2:Boolean=true){ var _local3:*; _local3 = 0; while (_local3 < adjacent.length) { if (adjacent[_local3] == _arg1){ return; }; _local3++; }; adjacent.push(_arg1); if (_arg2){ _arg1.setAdjacentTo(this, false); }; } public function set floor_frame_number(_arg1:int):void{ this._floor_frame_number = _arg1; } public function addExit():void{ var _local1:*; var _local2:ExitStairs; var _local3:*; var _local4:*; var _local5:*; _local1 = 0; this.isExit = true; this.furniture_frame_number = 1; _local2 = new ExitStairs(); _local2.name = "exit"; _local3 = (this.x + (this.realWidth() / 2)); _local4 = (this.y + (this.realHeight() / 2)); _local5 = false; if (isCorridor){ _local2.gotoAndStop(1); if (isCorridorH){ _local5 = false; _local1 = 0; while (_local1 < doors.length) { if (doors[_local1].x > _local3){ _local5 = true; }; _local1++; }; if (_local5){ _local2.rotation = 180; }; } else { _local2.rotation = 90; _local5 = false; _local1 = 0; while (_local1 < doors.length) { if (doors[_local1].y >= _local4){ _local5 = true; }; _local1++; }; if (_local5){ _local2.rotation = 270; }; }; } else { _local2.gotoAndStop(2); }; _local2.x = getCenterHorz(); _local2.y = getCenterVert(); this.setChild(_local2); } public function getGridWidth():int{ return (0); } function room_mouseout(_arg1:MouseEvent):void{ removeArrow(); } public function get isExit():Boolean{ return (this._isExit); } public function getCenterHorz():int{ return (((this.getGridWidth() * Dungeon.GRID_SIZE) / 2)); } public function set grid_x(_arg1:int):void{ this._grid_x = _arg1; } public function set grid_y(_arg1:int):void{ this._grid_y = _arg1; } public function get furniture_frame_number():int{ return (this._furniture_frame_number); } public function set index(_arg1:int):void{ this._index = _arg1; } public function getAlpha():Number{ return (this.alpha); } public function hintFlash():void{ var _local1:*; _local1 = new RoomFlash(); _local1.x = this.x; _local1.y = this.y; _local1.width = (this.getGridWidth() * Dungeon.GRID_SIZE); _local1.height = (this.getGridHeight() * Dungeon.GRID_SIZE); if (isCorridor){ _local1.x = (_local1.x + 1); _local1.y = (_local1.y + 1); _local1.width = (_local1.width - 2); _local1.height = (_local1.height - 2); } else { _local1.x = (_local1.x + 2); _local1.y = (_local1.y + 2); _local1.width = (_local1.width - 4); _local1.height = (_local1.height - 4); }; _local1.alpha = 0.8; parent.addChild(_local1); } public function get floor_frame_number():int{ return (this._floor_frame_number); } public function get grid_y():int{ return (this._grid_y); } public function get grid_x():int{ return (this._grid_x); } protected function copyValuesTo(_arg1:DungeonRoomData):void{ _arg1.roomType = DungeonRoomData.getRoomTypeOf(this); _arg1.grid_x = this.grid_x; _arg1.grid_y = this.grid_y; _arg1.furniture_frame_number = this.furniture_frame_number; _arg1.floor_frame_number = this.floor_frame_number; _arg1.seen = this.seen; _arg1.explored = this.explored; _arg1.isEntrance = this.isEntrance; _arg1.isExit = this.isExit; _arg1.treasure = ((!((this.treasure == null))) && (!((this.treasure.looted == true)))); _arg1.shrine = ((!((this.shrine == null))) && (!((this.shrine.used == true)))); } public function setChild(_arg1:DisplayObject):void{ this.addChild(_arg1); } public function get num_adjacent():int{ return (this.adjacent.length); } public function findDoorTo(_arg1:DungeonRoom):DoorIcon{ var _local2:*; _local2 = 0; while (_local2 < doors.length) { if ((((doors[_local2].room1 == _arg1)) || ((doors[_local2].room2 == _arg1)))){ return (doors[_local2]); }; _local2++; }; return (null); } public function travelFrom():void{ var _local1:*; resetDoors(); removeArrow(); _local1 = 0; while (_local1 < num_adjacent) { if (adjacent[_local1] == null){ } else { adjacent[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, Dungeon(parent).roomClick); adjacent[_local1].removeEventListener(MouseEvent.MOUSE_OVER, adjacent[_local1].room_mouseover); adjacent[_local1].removeEventListener(MouseEvent.MOUSE_OUT, adjacent[_local1].room_mouseout); }; _local1++; }; } private function removeArrow():void{ if (((!((parent == null))) && ((parent is Dungeon)))){ Dungeon(parent).removeMovementArrow(); }; } public function addDoor(_arg1:DoorIcon):Boolean{ var _local2:*; _local2 = 0; while (_local2 < doors.length) { if (doors[_local2] == _arg1){ return (false); }; _local2++; }; doors.push(_arg1); return (true); } } }//package
Section 93
//DungeonRoomData (DungeonRoomData) package { public class DungeonRoomData { private var _floor_frame_number:int;// = 0 private var _roomType:int;// = 1 private var _isExit:Boolean;// = false private var _explored:Boolean;// = false private var _seen:Boolean;// = false private var _grid_x:int;// = 0 private var _grid_y:int;// = 0 private var _isEntrance:Boolean;// = false private var _furniture_frame_number:int;// = 0 private var _shrine:Boolean;// = false private var _treasure:Boolean;// = false static const chamber = 5; static const demonRoom = 9; static const tallRoom = 8; static const cell = 4; static const corridorV = 2; static const wideRoom = 3; static const gallery = 6; static const largeRoom = 7; static const corridorH = 1; public function DungeonRoomData(){ _grid_x = 0; _grid_y = 0; _furniture_frame_number = 0; _floor_frame_number = 0; _seen = false; _explored = false; _isExit = false; _isEntrance = false; _roomType = 1; _treasure = false; _shrine = false; super(); } public function get grid_y():int{ return (this._grid_y); } public function get shrine():Boolean{ return (this._shrine); } public function set grid_x(_arg1:int):void{ this._grid_x = _arg1; } public function set shrine(_arg1:Boolean):void{ this._shrine = _arg1; } public function set grid_y(_arg1:int):void{ this._grid_y = _arg1; } public function get furniture_frame_number():int{ return (this._furniture_frame_number); } public function set furniture_frame_number(_arg1:int):void{ this._furniture_frame_number = _arg1; } public function get treasure():Boolean{ return (this._treasure); } public function get isEntrance():Boolean{ return (this._isEntrance); } public function set floor_frame_number(_arg1:int):void{ this._floor_frame_number = _arg1; } public function set explored(_arg1:Boolean):void{ this._explored = _arg1; } public function set treasure(_arg1:Boolean):void{ this._treasure = _arg1; } public function get isExit():Boolean{ return (this._isExit); } public function set roomType(_arg1:int):void{ this._roomType = _arg1; } public function set isEntrance(_arg1:Boolean):void{ this._isEntrance = _arg1; } public function get floor_frame_number():int{ return (this._floor_frame_number); } public function get explored():Boolean{ return (this._explored); } public function set isExit(_arg1:Boolean):void{ this._isExit = _arg1; } public function get roomType():int{ return (this._roomType); } public function set seen(_arg1:Boolean):void{ this._seen = _arg1; } public function get seen():Boolean{ return (this._seen); } public function toRoom(_arg1:Boolean):DungeonRoom{ var _local2:DungeonRoom; if (roomType == corridorH){ _local2 = new rCorridorH(); } else { if (roomType == corridorV){ _local2 = new rCorridorV(); } else { if (roomType == wideRoom){ _local2 = new rWideRoom(); } else { if (roomType == cell){ _local2 = new rCell(); } else { if (roomType == chamber){ _local2 = new rChamber(); } else { if (roomType == gallery){ _local2 = new rGallery(); } else { if (roomType == largeRoom){ _local2 = new rLargeRoom(); } else { if (roomType == tallRoom){ _local2 = new rTallRoom(); } else { if (roomType == demonRoom){ _local2 = new rDemonRoom(); } else { _local2 = new rCorridorH(); }; }; }; }; }; }; }; }; }; _local2.grid_x = this.grid_x; _local2.grid_y = this.grid_y; _local2.furniture_frame_number = this.furniture_frame_number; _local2.floor_frame_number = this.floor_frame_number; _local2.seen = this.seen; _local2.explored = this.explored; return (_local2); } public function get grid_x():int{ return (this._grid_x); } public static function getRoomTypeOf(_arg1:DungeonRoom):int{ if ((_arg1 is rCorridorH)){ return (corridorH); }; if ((_arg1 is rCorridorV)){ return (corridorV); }; if ((_arg1 is rWideRoom)){ return (wideRoom); }; if ((_arg1 is rCell)){ return (cell); }; if ((_arg1 is rChamber)){ return (chamber); }; if ((_arg1 is rGallery)){ return (gallery); }; if ((_arg1 is rLargeRoom)){ return (largeRoom); }; if ((_arg1 is rTallRoom)){ return (tallRoom); }; if ((_arg1 is rDemonRoom)){ return (demonRoom); }; return (0); } } }//package
Section 94
//EmptyPortrait (EmptyPortrait) package { import flash.display.*; public class EmptyPortrait extends MovieClip { public var empty:MovieClip; public function EmptyPortrait(){ addFrameScript(0, frame1, 12, frame13); this.gotoAndStop(1); } function frame1(){ this.stop(); } function frame13(){ this.gotoAndStop(1); } } }//package
Section 95
//EntryStairs (EntryStairs) package { import flash.display.*; public class EntryStairs extends Sprite { public var glow:StairsGlow; var enableRest:Boolean;// = false public function EntryStairs(_arg1:Boolean=false){ enableRest = false; super(); this.enableRest = _arg1; if (!_arg1){ removeGlow(); }; } public function removeGlow():void{ if (this.contains(glow)){ removeChild(glow); }; } } }//package
Section 96
//equip_bow_sound (equip_bow_sound) package { import flash.media.*; public dynamic class equip_bow_sound extends Sound { } }//package
Section 97
//equip_shield_sound (equip_shield_sound) package { import flash.media.*; public dynamic class equip_shield_sound extends Sound { } }//package
Section 98
//equip_sound (equip_sound) package { import flash.media.*; public dynamic class equip_sound extends Sound { } }//package
Section 99
//equip_staff_sound (equip_staff_sound) package { import flash.media.*; public dynamic class equip_staff_sound extends Sound { } }//package
Section 100
//equip_sword_sound (equip_sword_sound) package { import flash.media.*; public dynamic class equip_sword_sound extends Sound { } }//package
Section 101
//Equipment (Equipment) package { public class Equipment extends Item { const base_accuracy_bonus = 10; const base_item_stat_bonus = 1; const purple_armor_multiplier = 1.5; const max_stat_for_purple = 4; private var _causes_stun_percent:int;// = 0 var white_chance;// = 20 private var _mod_endurance:int;// = 0 var purple_chance;// = 1 var base_armor_mod:int;// = 0 private var _damageBonusVsCreatureType:int;// = 0 private var _whoEquips:uint;// = 0 var material:int;// = -1 protected var materials:Array; private var _damageBonusVsCreatureModifier:Number;// = 1 var base_armor_rating:int;// = 0 var suffix:int;// = -1 private var _mod_healing:int;// = 0 private var _blind:int;// = 0 private var _damageReflection:int;// = 0 private var _resistStun:int;// = 0 private var _resistPoison:int;// = 0 private var _poisonDamage:int;// = 0 private var _armor_rating:int;// = 0 private var _healthRegen:int;// = 0 private var _mod_intellect:int;// = 0 var prefix:int;// = -1 var grey_chance;// = 10 private var _accuracyBonus:int;// = 0 private var _lethality:int;// = 0 var blue_chance;// = 19 protected var suffixes:Array; protected var prefixes:Array; private var _mod_strength:int;// = 0 private var _mod_dexterity:int;// = 0 private var _powerRegen:int;// = 0 private var _replenishing:int;// = 0 private var _slot:int;// = 0 private var _mod_quickness:int;// = 0 protected var grey_name:String;// = "Damaged" var green_chance;// = 50 private var _quickRetreat:Boolean;// = false private var _vampiric_percent:int;// = 0 static const boots = 4; static const weapon = 0; static const legs = 5; static const gearSlots = 9; static const back = 3; static const head = 8; static const ring = 2; static const offhand = 1; static const armor_scale_constant = 0.2; static const gloves = 7; static const armor = 6; static var clericEquip:uint = 2; static var allEquip:uint = 4095; static var warriorEquip:uint = 8; static var rangerEquip:uint = 1; static var mageEquip:uint = 16; static var rogueEquip:uint = 4; public function Equipment(){ _slot = 0; grey_name = "Damaged"; grey_chance = 10; white_chance = 20; green_chance = 50; blue_chance = 19; purple_chance = 1; material = -1; prefix = -1; suffix = -1; materials = new Array(); _whoEquips = 0; _vampiric_percent = 0; _causes_stun_percent = 0; _poisonDamage = 0; _powerRegen = 0; _healthRegen = 0; _quickRetreat = false; _accuracyBonus = 0; _resistPoison = 0; _resistStun = 0; _damageReflection = 0; _blind = 0; _lethality = 0; _damageBonusVsCreatureType = 0; _damageBonusVsCreatureModifier = 1; _armor_rating = 0; base_armor_rating = 0; base_armor_mod = 0; _replenishing = 0; _mod_strength = 0; _mod_endurance = 0; _mod_dexterity = 0; _mod_intellect = 0; _mod_quickness = 0; _mod_healing = 0; super(); item_name = "Equipment"; slot = Equipment.gearSlots; item_level = 1; icon_frame = 1; } public function getItemModifiers():void{ prefixes = new Array(); prefixes.push(["Runed", 2]); suffixes = new Array(); suffixes.push(["Might", base_item_stat_bonus]); suffixes.push(["Resilience", base_item_stat_bonus]); suffixes.push(["Deftness", base_item_stat_bonus]); suffixes.push(["Insight", base_item_stat_bonus]); suffixes.push(["Speed", 5]); } public function get replenishing():int{ return (this._replenishing); } public function set damageBonusVsCreatureType(_arg1:int):void{ this._damageBonusVsCreatureType = _arg1; } public function set mod_intellect(_arg1:int):void{ this._mod_intellect = _arg1; } public function get mod_endurance():int{ return (this._mod_endurance); } protected function setVampiric(_arg1:int=5, _arg2:int=7):void{ this.vampiric_percent = (this.vampiric_percent + adjustStat(_arg1, _arg2)); } public function get lethality():int{ return (this._lethality); } public function get quickRetreat():Boolean{ return (this._quickRetreat); } protected function setPoisonDamage(_arg1:int=5):void{ this.poisonDamage = (this.poisonDamage + Math.round((MonsterCharacter.getHealthMax(item_level) * (_arg1 / 100)))); } public function get damageBonusVsCreatureModifier():Number{ return (this._damageBonusVsCreatureModifier); } public function usableString():String{ var _local1:String; if (whoEquips == allEquip){ return ("Usable: All"); }; _local1 = ""; if ((warriorEquip & whoEquips) == warriorEquip){ _local1 = (_local1 + "Warrior, "); }; if ((rogueEquip & whoEquips) == rogueEquip){ _local1 = (_local1 + "Rogue, "); }; if ((clericEquip & whoEquips) == clericEquip){ _local1 = (_local1 + "Cleric, "); }; if ((rangerEquip & whoEquips) == rangerEquip){ _local1 = (_local1 + "Ranger, "); }; if ((mageEquip & whoEquips) == mageEquip){ _local1 = (_local1 + "Mage, "); }; if (_local1 == ""){ return ("Usable: None"); }; _local1 = _local1.substr(0, (_local1.length - 2)); return (("Usable: " + _local1)); } public function set resistPoison(_arg1:int):void{ this._resistPoison = _arg1; } public function set lethality(_arg1:int):void{ this._lethality = _arg1; } public function set quickRetreat(_arg1:Boolean):void{ this._quickRetreat = _arg1; } public function set vampiric_percent(_arg1:int):void{ this._vampiric_percent = _arg1; } public function get powerRegen():int{ return (this._powerRegen); } public function set armor_rating(_arg1:int):void{ this._armor_rating = _arg1; } public function set poisonDamage(_arg1:int):void{ this._poisonDamage = _arg1; } protected function setIntellect(_arg1:int=1, _arg2:int=3):void{ this.mod_intellect = (this.mod_intellect + adjustStat(_arg1, _arg2)); } protected function setBlind(_arg1:int=10, _arg2:int=20):void{ this.blind = (this.blind + adjustStat(_arg1, _arg2)); } public function get healthRegen():int{ return (this._healthRegen); } public function set whoEquips(_arg1:uint):void{ this._whoEquips = _arg1; } protected function setPowerRegen(_arg1:int=1, _arg2:int=4):void{ this.powerRegen = (this.powerRegen + adjustStat(_arg1, _arg2)); } public function generateItem(_arg1:int):void{ } public function set accuracyBonus(_arg1:int):void{ this._accuracyBonus = _arg1; } public function set damageBonusVsCreatureModifier(_arg1:Number):void{ this._damageBonusVsCreatureModifier = _arg1; } public function rollForMaterial(_arg1:int, _arg2:Array):int{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; if (_arg1 == Item.grey){ return (-1); }; if (_arg1 == Item.purple){ return (-1); }; _local3 = Math.ceil((100 / _arg2.length)); _local4 = DungeonMain.RandomNum(0, 100); _local5 = 0; while (_local5 < _arg2.length) { _local6 = ((_local5 + 1) * _local3); if (_local4 <= _local6){ return (_local5); }; _local5++; }; return (1); } override public function getItemTypeString(){ return ("Equipment"); } protected function setResistPoison(_arg1:int=20, _arg2:int=40):void{ this.resistPoison = (this.resistPoison + adjustStat(_arg1, _arg2)); } public function get blind():int{ return (this._blind); } override public function itemData():ItemData{ var _local1:ItemData; _local1 = new ItemData(); _local1.item_level = this.item_level; _local1.item_rarity = this.item_rarity; _local1.purple_num = this.purple_num; _local1.material = this.material; _local1.prefix = this.prefix; _local1.suffix = this.suffix; return (_local1); } public function set mod_endurance(_arg1:int):void{ this._mod_endurance = _arg1; } public function set causes_stun_percent(_arg1:int):void{ this._causes_stun_percent = _arg1; } public function set powerRegen(_arg1:int):void{ this._powerRegen = _arg1; } public function scaleArmorForLevel(_arg1:int):int{ return ((_arg1 * (1 + ((item_level - 1) * armor_scale_constant)))); } protected function setAccuracy(_arg1:int=5, _arg2:int=15):void{ this.accuracyBonus = (this.accuracyBonus + adjustStat(_arg1, _arg2)); } override public function itemStatsString(_arg1:String):String{ if (replenishing){ _arg1 = (_arg1 + (("Replenishes " + replenishing) + "% health and power at the end of every battle\n")); }; if (damageBonusVsCreatureType == MonsterCharacter.undead){ _arg1 = (_arg1 + ((damageBonusVsCreatureModifier * 100) + "% damage to undead\n")); }; if (damageBonusVsCreatureType == MonsterCharacter.greenskin){ _arg1 = (_arg1 + ((damageBonusVsCreatureModifier * 100) + "% damage to greenskins\n")); }; if (damageBonusVsCreatureType == MonsterCharacter.creature){ _arg1 = (_arg1 + ((damageBonusVsCreatureModifier * 100) + "% damage to creatures\n")); }; if (damageBonusVsCreatureType == MonsterCharacter.human){ _arg1 = (_arg1 + ((damageBonusVsCreatureModifier * 100) + "% damage to humans\n")); }; if (mod_strength > 0){ _arg1 = (_arg1 + (("+" + mod_strength) + " Strength\n")); }; if (mod_endurance > 0){ _arg1 = (_arg1 + (("+" + mod_endurance) + " Endurance\n")); }; if (mod_dexterity > 0){ _arg1 = (_arg1 + (("+" + mod_dexterity) + " Dexterity\n")); }; if (mod_intellect > 0){ _arg1 = (_arg1 + (("+" + mod_intellect) + " Intellect\n")); }; if (causes_stun_percent > 0){ _arg1 = (_arg1 + (String(causes_stun_percent) + "% chance to stun target\n")); }; if (blind > 0){ _arg1 = (_arg1 + (("Reduces target's accuracy by " + blind) + "%\n")); }; if (lethality > 0){ _arg1 = (_arg1 + (lethality + "% chance to kill target\n")); }; if (powerRegen > 0){ _arg1 = (_arg1 + (("+" + powerRegen) + " power regeneration\n")); }; if (healthRegen > 0){ _arg1 = (_arg1 + (("+" + healthRegen) + " health regeneration\n")); }; if (damageReflection > 0){ _arg1 = (_arg1 + (damageReflection + "% damage reflection\n")); }; if (resistPoison > 0){ _arg1 = (_arg1 + (resistPoison + "% reduced damage from poison\n")); }; if (resistStun > 0){ _arg1 = (_arg1 + (resistStun + "% chance to resist stun\n")); }; if (vampiric_percent > 0){ _arg1 = (_arg1 + (("Drain health (" + vampiric_percent) + "% of damage)\n")); }; if (poisonDamage > 0){ _arg1 = (_arg1 + (("Apply " + poisonDamage) + " poison damage on hit\n")); }; if (accuracyBonus){ _arg1 = (_arg1 + (("+" + accuracyBonus) + " chance to hit\n")); }; if (mod_quickness > 0){ _arg1 = (_arg1 + (("+" + mod_quickness) + " Quickness\n")); }; if (mod_quickness < 0){ _arg1 = (_arg1 + (mod_quickness + " Quickness\n")); }; if (quickRetreat){ _arg1 = (_arg1 + "Wearer may retreat instantly\n"); }; return (_arg1); } protected function setHealthRegen(_arg1:int=7):void{ this.healthRegen = (this.healthRegen + Math.round((_arg1 * (PlayerCharacter.baseHealthForLevel(item_level) / 100)))); } public function get damageBonusVsCreatureType():int{ return (this._damageBonusVsCreatureType); } public function set resistStun(_arg1:int):void{ this._resistStun = _arg1; } public function set healthRegen(_arg1:int):void{ this._healthRegen = _arg1; } protected function adjustStat(_arg1:int, _arg2:int):int{ var _local3:*; var _local4:*; _local3 = Math.min(1, (item_level / DungeonMain.MAX_LEVEL)); _local4 = Math.round((_arg1 + (_local3 * Math.abs((_arg2 - _arg1))))); return (_local4); } protected function setDamageReflection(_arg1:int=5, _arg2:int=15):void{ this.damageReflection = (this.damageReflection + adjustStat(_arg1, _arg2)); } public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; if (suffixes[_local1][0] == "Reflection"){ setDamageReflection(); return; }; if (suffixes[_local1][0] == "Tenacity"){ setResistStun(); return; }; if (suffixes[_local1][0] == "Accuracy"){ setAccuracy(); return; }; if (suffixes[_local1][0] == "Might"){ setStrength(); return; }; if (suffixes[_local1][0] == "Resilience"){ setEndurance(); return; }; if (suffixes[_local1][0] == "Insight"){ setIntellect(); return; }; if (suffixes[_local1][0] == "Deftness"){ setDexterity(); return; }; if (suffixes[_local1][0] == "Speed"){ setQuickness(); return; }; if (suffixes[_local1][0] == "Lethality"){ setLethality(); return; }; if (suffixes[_local1][0] == "Discretion"){ quickRetreat = true; return; }; } protected function SetRarity(_arg1:int){ var _local2:int; if (_arg1 >= 0){ this.item_rarity = _arg1; return; }; _local2 = DungeonMain.RandomNum(1, 100); if (_local2 <= grey_chance){ item_rarity = Item.grey; } else { if (_local2 <= (white_chance + grey_chance)){ item_rarity = Item.white; } else { if (_local2 <= ((green_chance + grey_chance) + white_chance)){ item_rarity = Item.green; } else { if (_local2 <= (((blue_chance + green_chance) + grey_chance) + white_chance)){ item_rarity = Item.blue; } else { item_rarity = Item.purple; }; }; }; }; } public function set mod_dexterity(_arg1:int):void{ this._mod_dexterity = _arg1; } protected function setStunChance(_arg1:int=5, _arg2:int=10):void{ this.causes_stun_percent = (this.causes_stun_percent + adjustStat(_arg1, _arg2)); } protected function setQuickness(_arg1:int=3, _arg2:int=10):void{ this.mod_quickness = (this.mod_quickness + adjustStat(_arg1, _arg2)); } public function set mod_quickness(_arg1:int):void{ this._mod_quickness = _arg1; } public function get vampiric_percent():int{ return (this._vampiric_percent); } public function get resistPoison():int{ return (this._resistPoison); } protected function setDexterity(_arg1:int=1, _arg2:int=3):void{ this.mod_dexterity = (this.mod_dexterity + adjustStat(_arg1, _arg2)); } public function get mod_intellect():int{ return (this._mod_intellect); } public function set mod_healing(_arg1:int):void{ this._mod_healing = _arg1; } public function get armor_rating():int{ return (this._armor_rating); } public function get poisonDamage():int{ return (this._poisonDamage); } public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Runed"){ setPowerRegen(); return; }; if (prefixes[_local1][0] == "Vampiric"){ setVampiric(); return; }; if (prefixes[_local1][0] == "Staggering"){ setStunChance(); return; }; if (prefixes[_local1][0] == "Unerring"){ setAccuracy(); return; }; if (prefixes[_local1][0] == "Venomous"){ setPoisonDamage(); return; }; if (prefixes[_local1][0] == "Blinding"){ setBlind(); return; }; if (prefixes[_local1][0] == "Soothing"){ setHealthRegen(); return; }; if (prefixes[_local1][0] == "Purifying"){ setResistPoison(); return; }; } public function get whoEquips():uint{ return (this._whoEquips); } public function get accuracyBonus():int{ return (this._accuracyBonus); } public function set blind(_arg1:int):void{ this._blind = _arg1; } public function get causes_stun_percent():int{ return (this._causes_stun_percent); } public function set mod_strength(_arg1:int):void{ this._mod_strength = _arg1; } public function rollForPrefix(_arg1:int):int{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; if ((((_arg1 == Item.grey)) || ((_arg1 == Item.white)))){ return (-1); }; _local2 = Math.ceil((100 / prefixes.length)); _local3 = DungeonMain.RandomNum(0, 100); _local4 = 0; while (_local4 < prefixes.length) { _local5 = ((_local4 + 1) * _local2); if (_local3 <= _local5){ return (_local4); }; _local4++; }; return (-1); } protected function setStrength(_arg1:int=1, _arg2:int=3):void{ this.mod_strength = (this.mod_strength + adjustStat(_arg1, _arg2)); } public function get resistStun():int{ return (this._resistStun); } protected function setEndurance(_arg1:int=1, _arg2:int=3):void{ this.mod_endurance = (this.mod_endurance + adjustStat(_arg1, _arg2)); } public function get mod_dexterity():int{ return (this._mod_dexterity); } protected function setResistStun(_arg1:int=20, _arg2:int=40):void{ this.resistStun = (this.resistStun + adjustStat(_arg1, _arg2)); } public function get mod_quickness():int{ return (this._mod_quickness); } public function rollForSuffix(_arg1:int):int{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; if ((((_arg1 == Item.grey)) || ((_arg1 == Item.white)))){ return (-1); }; _local2 = Math.ceil((100 / suffixes.length)); _local3 = DungeonMain.RandomNum(0, 100); _local4 = 0; while (_local4 < suffixes.length) { _local5 = ((_local4 + 1) * _local2); if (_local3 <= _local5){ return (_local4); }; _local4++; }; return (-1); } protected function setLethality(_arg1:int=5, _arg2:int=10):void{ this.lethality = (this.lethality + adjustStat(_arg1, _arg2)); } public function get mod_healing():int{ return (this._mod_healing); } public function get mod_strength():int{ return (this._mod_strength); } public function set damageReflection(_arg1:int):void{ this._damageReflection = _arg1; } public function get damageReflection():int{ return (this._damageReflection); } public function set slot(_arg1:int):void{ this._slot = _arg1; } public function get slot():int{ return (this._slot); } public function set replenishing(_arg1:int):void{ this._replenishing = _arg1; } } }//package
Section 102
//ExitStairs (ExitStairs) package { import flash.display.*; public dynamic class ExitStairs extends MovieClip { } }//package
Section 103
//FadeScreen (FadeScreen) package { import flash.display.*; public dynamic class FadeScreen extends MovieClip { public function FadeScreen(){ addFrameScript(5, frame6); } function frame6(){ this.gotoAndStop(6); } } }//package
Section 104
//feardeath_effect (feardeath_effect) package { import flash.display.*; public dynamic class feardeath_effect extends MovieClip { public function feardeath_effect(){ addFrameScript(0, frame1, 34, frame35, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.curse, 0.75); } function frame35(){ this.stop(); } function frame45(){ this.stop(); } } }//package
Section 105
//fire_effect (fire_effect) package { import flash.display.*; public dynamic class fire_effect extends MovieClip { public var flames:fire_scroll; public function fire_effect(){ addFrameScript(0, frame1, 49, frame50); } function frame1(){ dm.sound.play(SoundControl.flames); this.flames.x = DungeonMain.RandomNum(0, 240); } function frame50(){ this.stop(); } } }//package
Section 106
//fire_scroll (fire_scroll) package { import flash.display.*; public dynamic class fire_scroll extends MovieClip { public function fire_scroll(){ addFrameScript(44, frame45); } function frame45(){ this.gotoAndStop(45); } } }//package
Section 107
//flames_sound (flames_sound) package { import flash.media.*; public dynamic class flames_sound extends Sound { } }//package
Section 108
//freeze_sound (freeze_sound) package { import flash.media.*; public dynamic class freeze_sound extends Sound { } }//package
Section 109
//frozen_effect (frozen_effect) package { import flash.display.*; public dynamic class frozen_effect extends MovieClip { public function frozen_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.freeze); } function frame45(){ this.stop(); } } }//package
Section 110
//gain_both_effect (gain_both_effect) package { import flash.display.*; public dynamic class gain_both_effect extends MovieClip { public function gain_both_effect(){ addFrameScript(44, frame45); } function frame45(){ this.stop(); } } }//package
Section 111
//gain_health_effect (gain_health_effect) package { import flash.display.*; public dynamic class gain_health_effect extends MovieClip { public function gain_health_effect(){ addFrameScript(20, frame21, 44, frame45); } function frame21(){ this.stop(); } function frame45(){ this.stop(); } } }//package
Section 112
//gain_power_effect (gain_power_effect) package { import flash.display.*; public dynamic class gain_power_effect extends MovieClip { public function gain_power_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.powerUp); } function frame45(){ this.stop(); } } }//package
Section 113
//GenderIcon (GenderIcon) package { import flash.display.*; public dynamic class GenderIcon extends MovieClip { } }//package
Section 114
//GlobalVolume (GlobalVolume) package { import flash.events.*; import flash.media.*; import flash.utils.*; public class GlobalVolume { static const fade_out_time = 500; static const fade_in_time = 1000; static const volumeMid = 0.5; static const volumeFull = 1; static const volumeOff = 0; static const volumeLow = 0.15; static const sound_fade_steps = 20; static var fadeFromSetting:Number = 0; static var volumeSetting:Number = 1; public static function beginFade():void{ var _local1:*; var _local2:Timer; if (volumeSetting == fadeFromSetting){ return; }; if (volumeSetting > fadeFromSetting){ _local1 = fade_in_time; } else { _local1 = fade_out_time; }; SoundMixer.soundTransform = new SoundTransform(fadeFromSetting); _local2 = new Timer(Math.round((_local1 / sound_fade_steps)), sound_fade_steps); _local2.addEventListener(TimerEvent.TIMER, fadeStep, false, 0, true); _local2.addEventListener(TimerEvent.TIMER_COMPLETE, fadeDone, false, 0, true); _local2.start(); } public static function setVolume(_arg1:Number, _arg2:Boolean=false):void{ fadeFromSetting = volumeSetting; volumeSetting = _arg1; if (_arg2){ beginFade(); } else { SoundMixer.soundTransform = new SoundTransform(_arg1); }; } static function fadeStep(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; _local2 = ((volumeSetting - fadeFromSetting) / sound_fade_steps); _local3 = (SoundMixer.soundTransform.volume + _local2); SoundMixer.soundTransform = new SoundTransform(_local3); } public static function mute():void{ setVolume(volumeOff); } static function fadeDone(_arg1:TimerEvent):void{ SoundMixer.soundTransform = new SoundTransform(volumeSetting); } } }//package
Section 115
//GreenBar (GreenBar) package { import flash.display.*; public dynamic class GreenBar extends Sprite { } }//package
Section 116
//grid_marker (grid_marker) package { import flash.text.*; import flash.display.*; public dynamic class grid_marker extends MovieClip { public var owner_label:TextField; } }//package
Section 117
//heal1_sound (heal1_sound) package { import flash.media.*; public dynamic class heal1_sound extends Sound { } }//package
Section 118
//healeffect (healeffect) package { import flash.display.*; public dynamic class healeffect extends MovieClip { public function healeffect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.heal); } function frame45(){ this.stop(); } } }//package
Section 119
//healeffect_green (healeffect_green) package { import flash.display.*; public dynamic class healeffect_green extends MovieClip { } }//package
Section 120
//HealthBar (HealthBar) package { import flash.display.*; public dynamic class HealthBar extends MovieClip { public var bar:RedBar; public var lightbar:RedBar; } }//package
Section 121
//HeavyArmor (HeavyArmor) package { public class HeavyArmor extends Armor { public function HeavyArmor(){ type = Armor.heavy; mod_quickness = (mod_quickness - 5); whoEquips = (Equipment.warriorEquip + Equipment.clericEquip); base_armor_rating = 27; grey_name = "Battered"; materials.push("Iron", "Steel", "Damascene", "Mithril", "Magesteel", "Planeforged"); } override public function getItemTypeString(){ return ("Heavy Armor"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Lightweight"){ mod_quickness = (mod_quickness + prefixes[_local1][1]); if (mod_quickness > 0){ mod_quickness = 0; }; return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Lightweight", 2]); } } }//package
Section 122
//HelpButton (HelpButton) package { import flash.events.*; import flash.display.*; public class HelpButton extends MovieClip { var target:DisplayObjectContainer; var helpscreen:MovieClip; public function HelpButton(){ addEventListener(MouseEvent.MOUSE_DOWN, clicked); } public function clicked(_arg1:MouseEvent){ if (parent == null){ return; }; target = parent; if ((parent is DungeonInterface)){ helpscreen = new HelpScreenDungeon(); target = parent.parent; } else { if ((parent is Inventory)){ helpscreen = new HelpScreenInventory(); } else { if ((parent is Battlefield)){ helpscreen = new HelpScreenBattlefield(); }; }; }; if (helpscreen == null){ return; }; helpscreen.addEventListener(MouseEvent.MOUSE_DOWN, closeHelp); target.addChild(helpscreen); } function closeHelp(_arg1:MouseEvent):void{ if (helpscreen == null){ return; }; if (target == null){ target = parent; }; helpscreen.removeEventListener(MouseEvent.MOUSE_DOWN, closeHelp); if (target.contains(helpscreen)){ target.removeChild(helpscreen); }; helpscreen = null; } public function cleanup():void{ removeEventListener(MouseEvent.MOUSE_DOWN, clicked); } } }//package
Section 123
//HelpScreenBattlefield (HelpScreenBattlefield) package { import flash.display.*; public dynamic class HelpScreenBattlefield extends MovieClip { } }//package
Section 124
//HelpScreenDungeon (HelpScreenDungeon) package { import flash.display.*; public dynamic class HelpScreenDungeon extends MovieClip { } }//package
Section 125
//HelpScreenInventory (HelpScreenInventory) package { import flash.display.*; public dynamic class HelpScreenInventory extends MovieClip { } }//package
Section 126
//hide3_sound (hide3_sound) package { import flash.media.*; public dynamic class hide3_sound extends Sound { } }//package
Section 127
//HidingEffect (HidingEffect) package { import flash.display.*; public dynamic class HidingEffect extends MovieClip { } }//package
Section 128
//HintButton (HintButton) package { import flash.display.*; public dynamic class HintButton extends MovieClip { } }//package
Section 129
//HintDialog (HintDialog) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.ui.*; public class HintDialog extends MovieClip { public var yes_btn:ContinueButton; var checkboxEnabled:Boolean;// = true public var showCheck:dCheckBox; public var bg:MovieClip; public var dlg_text:TextField; public var dlg_title:TextField; public function HintDialog(_arg1:String="", _arg2:String="", _arg3:Boolean=true, _arg4:Boolean=false){ var _local5:*; var _local6:*; checkboxEnabled = true; super(); if (_arg1.length){ setTitle(_arg1); }; if (_arg2.length){ setText(_arg2); }; yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickOkay); if (_arg3){ showCheck.setChecked(DungeonMain.showHints); showCheck.setDescription("Show hints and tips"); } else { removeChild(showCheck); checkboxEnabled = false; }; dlg_text.mouseEnabled = false; dlg_title.y = (bg.y + 5); dlg_text.y = (dlg_title.y + 40); yes_btn.y = ((dlg_text.y + dlg_text.textHeight) + 18); showCheck.y = yes_btn.y; bg.height = ((yes_btn.y - bg.y) + 26); _local5 = bg.y; if (!_arg4){ bg.y = (((DungeonMain.app_height - bg.height) - 130) / 2); } else { bg.y = ((DungeonMain.app_height - bg.height) / 2); }; _local6 = (_local5 - bg.y); dlg_title.y = (dlg_title.y - _local6); dlg_text.y = (dlg_text.y - _local6); yes_btn.y = (yes_btn.y - _local6); showCheck.y = (showCheck.y - _local6); dm.stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } public function setTitle(_arg1:String):void{ dlg_title.text = _arg1; dm.embolden(dlg_title); } private function cleanup():void{ dm.stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); showCheck.cleanup(); } public function setText(_arg1:String):void{ dlg_text.text = _arg1; } function clickOkay(_arg1:MouseEvent):void{ if (stage != null){ DungeonMain.showHints = showCheck.checked; if (dm.main != null){ dm.main.saveInterface(); }; yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); stage.removeChild(this); cleanup(); }; } function reportKeyDown(_arg1:KeyboardEvent):void{ if ((((_arg1.keyCode == Keyboard.ENTER)) || ((_arg1.keyCode == Keyboard.ESCAPE)))){ clickOkay(null); }; } } }//package
Section 130
//Horde (Horde) package { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.geom.*; public class Horde extends MovieClip { var tooltip:HordeTooltip; var members:Array; var defeated:Boolean;// = false public var bg:MovieClip; var boss:Boolean;// = false var level:int;// = 1 public var icon:HordeIcon; public var glow:HordeIconGlow; var race:int;// = 1 var room:DungeonRoom; static const cultists = 8; static const greenskins = 2; static const creatures = 4; static const special = 16; static const max_size = 6; static const undead = 1; public function Horde(_arg1:int=1, _arg2:int=1, _arg3=false, _arg4=null, _arg5:Boolean=false){ var _local6:*; var _local7:MonsterCharacter; var _local8:*; var _local9:*; var _local10:Boolean; var _local11:Array; var _local12:*; var _local13:*; var _local14:*; var _local15:*; var _local16:*; members = new Array(); defeated = false; race = Horde.undead; level = 1; boss = false; super(); addFrameScript(0, frame1, 14, frame15, 29, frame30); _local6 = 0; _local8 = -1; _local9 = dm.randomNum(2, 5); this.race = _arg1; this.level = _arg2; this.boss = _arg3; this.room = _arg4; if (_arg3){ icon.gotoAndStop(2); if (_arg2 == DungeonMain.MAX_LEVEL){ _local7 = new mDemon(_arg2); _local7.pos = 2; } else { if (_arg2 <= 4){ _local10 = true; } else { if (_arg2 <= 8){ _local10 = false; } else { _local10 = (DungeonMain.RandomNum(0, 1000) > 500); }; }; if (_arg1 == Horde.special){ _local8 = dm.randomNum(1, 4); }; if ((((_arg1 == Horde.undead)) || ((_local8 == 1)))){ if (_local10){ _local7 = new mDeathKnight(_arg2); } else { _local7 = new mNecromancer(_arg2); }; } else { if ((((_arg1 == Horde.greenskins)) || ((_local8 == 2)))){ if (_local10){ _local7 = new mOrcJuggernaut(_arg2); } else { _local7 = new mOrcWarlord(_arg2); }; } else { if ((((_arg1 == Horde.creatures)) || ((_local8 == 3)))){ if (_local10){ _local7 = new mDragon(_arg2); } else { _local7 = new mBeholder(_arg2); }; } else { if ((((_arg1 == Horde.cultists)) || ((_local8 == 4)))){ if (_local10){ _local7 = new mCultEngine(_arg2); } else { _local7 = new mAscendant(_arg2); }; }; }; }; }; }; if (((!((_local7 == null))) && (!(_arg5)))){ if (_local10){ _local7.pos = 5; } else { _local7.pos = 2; }; members.push(_local7); _local6 = _local7.pos; _local9 = (_local9 + 2); }; }; _local9 = (_local9 + getRoomSizeModifier()); if (_arg2 == DungeonMain.MAX_LEVEL){ if (_arg3){ _local9 = 1; } else { _local9++; }; } else { if (_arg2 == 1){ _local9--; }; }; _local9 = Math.min(_local9, 6); _local9 = Math.max(_local9, 1); while ((((members.length < _local9)) && (!(_arg5)))) { _local11 = new Array(6); _local12 = 0; while (_local12 < 6) { _local11[_local12] = (_local12 + 1); _local12++; }; _local11 = dm.shuffleArray(_local11); _local13 = 0; while (_local13 < 6) { if (_local11[_local13] == _local6){ } else { if (memberInPos(_local11[_local13]) != null){ } else { _local14 = (_local9 - members.length); _local15 = Math.round((75 / _local14)); if (DungeonMain.RandomNum(0, 100) <= _local15){ _local16 = _arg2; _local7 = GetMonsterForSlot(_arg1, _local16, _local11[_local13]); members.push(_local7); if (members.length == _local9){ break; }; }; }; }; _local13++; }; }; bg.addEventListener(MouseEvent.MOUSE_MOVE, hordeMouseOnTarget); bg.addEventListener(MouseEvent.MOUSE_OVER, hordeMouseOnTarget); bg.addEventListener(MouseEvent.MOUSE_OUT, hordeMouseOutTarget); } public function battleAnim():void{ this.gotoAndPlay("battle"); dm.sound.play(SoundControl.battleStart, Music.volumeSetting); } protected function GetMonsterForSlot(_arg1:int, _arg2:int, _arg3:int):MonsterCharacter{ var _local4:MonsterCharacter; var _local5:*; var _local6:*; _local5 = (_arg3 > 3); if (_arg2 == DungeonMain.MAX_LEVEL){ _local6 = dm.randomNum(1, 99); if (_local6 > 75){ _local4 = getUndead(_arg1, _arg2, _local5); } else { if (_local6 > 50){ _local4 = getGreenskin(_arg1, _arg2, _local5); } else { if (_local6 > 25){ _local4 = getCreature(_arg1, _arg2, _local5); } else { _local4 = getCultist(_arg1, _arg2, _local5); }; }; }; } else { if (_arg1 == Horde.undead){ _local4 = getUndead(_arg1, _arg2, _local5); } else { if (_arg1 == Horde.greenskins){ _local4 = getGreenskin(_arg1, _arg2, _local5); } else { if (_arg1 == Horde.creatures){ _local4 = getCreature(_arg1, _arg2, _local5); } else { if (_arg1 == Horde.cultists){ _local4 = getCultist(_arg1, _arg2, _local5); } else { _local4 = new mGreebler(_arg2); }; }; }; }; }; _local4.pos = _arg3; return (_local4); } private function newTooltip():Boolean{ var _local1:*; var _local2:Array; var _local3:Boolean; var _local4:*; var _local5:*; var _local6:*; _local1 = 0; _local2 = new Array(); _local4 = getHordeDescription(); if (!members.length){ return (false); }; _local5 = 0; while (_local5 < members.length) { if (members[_local5].health <= 0){ } else { _local3 = true; _local6 = 0; while (_local6 < _local2.length) { if (_local2[_local6][0] == members[_local5].charname){ var _local7 = _local2[_local6]; var _local8 = 1; var _local9 = (_local7[_local8] + 1); _local7[_local8] = _local9; _local3 = false; break; }; _local6++; }; if (_local3){ _local2.push([members[_local5].charname, 1, members[_local5].portrait]); }; }; _local5++; }; tooltip = new HordeTooltip(_local4, _local2, boss); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip_horde"; stage.addChild(tooltip); tooltip.mask = null; return (true); } function onFadeComplete(_arg1:TimerEvent):void{ if (parent != null){ parent.removeChild(this); }; } function hordeMouseOnTarget(_arg1:MouseEvent):void{ var _local2:Point; var _local3:*; var _local4:*; var _local5 = ??pushnamespace ; if (room == null){ return; }; if (!room.seen){ return; }; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); _local3 = _local2.x; _local4 = _local2.y; _local5 = 5; if (((_local2.x + tooltip.width) + _local5) > DungeonMain.app_width){ _local3 = (_local3 + (DungeonMain.app_width - ((_local2.x + tooltip.width) + _local5))); }; if (((_local2.y + tooltip.height) + _local5) > DungeonMain.app_height){ _local4 = (_local4 + (DungeonMain.app_height - ((_local2.y + tooltip.height) + _local5))); }; tooltip.x = _local3; tooltip.y = _local4; _arg1.updateAfterEvent(); } function frame1(){ this.gotoAndStop("normal"); } public function memberInPos(_arg1:int):MonsterCharacter{ var _local2:*; if (_arg1 <= 0){ return (null); }; if (_arg1 > 6){ return (null); }; _local2 = 0; while (_local2 < members.length) { if (members[_local2].pos == _arg1){ return (members[_local2]); }; _local2++; }; return (null); } private function getGreenskin(_arg1:int, _arg2:int, _arg3:Boolean):MonsterCharacter{ var _local4:*; var _local5:MonsterCharacter; _local4 = DungeonMain.RandomNum(0, 100); if (_arg3){ if (_local4 <= 20){ _local5 = new mOrcChampion(_arg2); } else { if (_local4 <= 50){ _local5 = new mTroll(_arg2); } else { _local5 = new mOrcBerserker(_arg2); }; }; } else { if (_local4 <= 40){ _local5 = new mOrcShaman(_arg2); } else { if (_local4 <= 70){ _local5 = new mGoblinArtificer(_arg2); } else { _local5 = new mOrcSavage(_arg2); }; }; }; return (_local5); } public function fade():void{ var _local1:Timer; defeated = true; this.gotoAndPlay("fade"); _local1 = new Timer(500, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, onFadeComplete); _local1.start(); } private function getUndead(_arg1:int, _arg2:int, _arg3:Boolean):MonsterCharacter{ var _local4:*; var _local5:MonsterCharacter; _local4 = DungeonMain.RandomNum(0, 100); if (_arg3){ if (_local4 <= 20){ _local5 = new mBoneHorror(_arg2); } else { if (_local4 <= 50){ _local5 = new mGhost(_arg2); } else { _local5 = new mSkeleton(_arg2); }; }; } else { if (_local4 <= 30){ _local5 = new mLich(_arg2); } else { if (_local4 <= 60){ _local5 = new mVampire(_arg2); } else { _local5 = new mSkeletonArcher(_arg2); }; }; }; return (_local5); } function frame15(){ this.gotoAndStop(15); } function frame30(){ this.gotoAndStop(30); } private function getCultist(_arg1:int, _arg2:int, _arg3:Boolean):MonsterCharacter{ var _local4:*; var _local5:MonsterCharacter; _local4 = DungeonMain.RandomNum(0, 100); if (_arg3){ if (_local4 <= 40){ _local5 = new mCultWarrior(_arg2); } else { if (_local4 <= 80){ _local5 = new mCultNeophyte(_arg2); } else { _local5 = new mCultChosen(_arg2); }; }; } else { if (_local4 <= 60){ _local5 = new mCultArcher(_arg2); } else { _local5 = new mCultPriest(_arg2); }; }; return (_local5); } function hordeMouseOutTarget(_arg1:MouseEvent):void{ if (tooltip != null){ if (((!((stage == null))) && (stage.contains(tooltip)))){ stage.removeChild(tooltip); }; tooltip = null; }; } public function cleanup():void{ bg.removeEventListener(MouseEvent.MOUSE_MOVE, hordeMouseOnTarget); bg.removeEventListener(MouseEvent.MOUSE_OVER, hordeMouseOnTarget); bg.removeEventListener(MouseEvent.MOUSE_OUT, hordeMouseOutTarget); } private function getCreature(_arg1:int, _arg2:int, _arg3:Boolean):MonsterCharacter{ var _local4:*; var _local5:MonsterCharacter; _local4 = DungeonMain.RandomNum(0, 100); if (_arg3){ if (_local4 <= 40){ _local5 = new mArachnoid(_arg2); } else { if (_local4 <= 60){ _local5 = new mBasilisk(_arg2); } else { _local5 = new mGreebler(_arg2); }; }; } else { if (_local4 <= 35){ _local5 = new mPoisonDrake(_arg2); } else { if (_local4 <= 70){ _local5 = new mLightningDrake(_arg2); } else { _local5 = new mGargoyle(_arg2); }; }; }; return (_local5); } protected function getHordeDescription():String{ if (race == Horde.undead){ if (boss){ return ("Death's Champions"); }; if (members.length <= 2){ return ("Wandering Bones"); }; if (members.length <= 4){ return ("Restless Dead"); }; return ("Undying Horde"); //unresolved jump }; if (race == Horde.greenskins){ if (boss){ return ("Warleader's Band"); }; if (members.length <= 2){ return ("Greenskin Patrol"); }; if (members.length <= 4){ return ("Savage Host"); }; return ("Orcish Legion"); //unresolved jump }; if (race == Horde.creatures){ if (boss){ return ("Ancient Ones"); }; if (members.length <= 2){ return ("Scavengers"); }; if (members.length <= 4){ return ("Hunting Pack"); }; return ("Beastly Horde"); //unresolved jump }; if (race == Horde.special){ if (boss){ return ("Hellish Overlord"); }; if (members.length <= 2){ return ("Honor Guard"); }; if (members.length <= 4){ return ("United Forces"); }; return ("Alliance of Evil"); //unresolved jump }; if (race == Horde.cultists){ if (boss){ return ("The Enlightened"); }; if (members.length <= 2){ return ("Cult Sentries"); }; if (members.length <= 4){ return ("Path Faithful"); }; return ("Planebreakers"); //unresolved jump }; return (Horde.nameForRace(race, true)); } public function hordeData():HordeData{ var _local1:HordeData; _local1 = new HordeData(); _local1.roomIndex = this.room.index; _local1.defeated = this.defeated; _local1.race = this.race; _local1.boss = this.boss; _local1.level = this.level; return (_local1); } protected function getRoomSizeModifier():int{ if (room == null){ return (0); }; if ((room is rCorridorV)){ return (-1); }; if ((room is rCorridorH)){ return (-1); }; if ((room is rCell)){ return (0); }; if ((room is rChamber)){ return (0); }; if ((room is rTallRoom)){ return (1); }; if ((room is rWideRoom)){ return (1); }; if ((room is rGallery)){ return (2); }; if ((room is rLargeRoom)){ return (2); }; return (0); } public static function getEngineName():String{ var _local1:Array; var _local2:Array; var _local3:String; _local1 = new Array("Consecrator", "Retributor", "Assimilator", "Annihilator", "Exemplifier", "Admonisher", "Intensifier", "Augmentor"); _local2 = new Array("1", "2", "3", "4", "5", "6", "7", "8", "9"); _local3 = ""; _local3 = (_local3 + _local1[dm.randomNum(0, (_local1.length - 1))]); _local3 = (_local3 + "-"); _local3 = (_local3 + _local2[dm.randomNum(0, (_local2.length - 1))]); return (_local3); } public static function getNecromancerName():String{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:String; _local1 = new Array("Ner", "Zag", "Jal", "Sel", "Bal", "Dam", "Zel", "Sal", "Nar", "Mal", "Tral"); _local2 = new Array("'", "a", "e", "u", "o"); _local3 = new Array("gar", "zar", "thon", "sal", "tor", "thul", "thal", "bann"); _local4 = ""; _local4 = (_local4 + _local1[dm.randomNum(0, (_local1.length - 1))]); _local4 = (_local4 + _local2[dm.randomNum(0, (_local2.length - 1))]); _local4 = (_local4 + _local3[dm.randomNum(0, (_local3.length - 1))]); return (_local4); } public static function getKnightName():String{ var _local1:Array; var _local2:Array; var _local3:String; _local1 = new Array("Ser ", "Sir ", "Lord ", "Black ", "Fell ", "Dread "); _local2 = new Array("Nigel", "Neil", "Niles", "Charles", "Boris", "Jethro", "Gerald", "Horace", "Stan", "Alan", "Hank", "Marty", "Trevor", "Trent", "Bruce", "Eugene", "Wally", "Harold", "Hamish", "Carlos", "Jeremy", "Jerome", "Jermaine", "Tito", "George", "Hans", "Chad", "Rupert", "Ruprecht", "Albert", "Alfred", "Phineas", "Brent", "Colin", "Travis", "Jarvis", "Elton", "Ernest"); _local3 = ""; _local3 = (_local3 + _local1[dm.randomNum(0, (_local1.length - 1))]); _local3 = (_local3 + _local2[dm.randomNum(0, (_local2.length - 1))]); return (_local3); } public static function nameForRace(_arg1:int, _arg2:Boolean=false):String{ if (_arg2){ if (_arg1 == Horde.undead){ return ("Undead"); }; if (_arg1 == Horde.greenskins){ return ("Greenskins"); }; if (_arg1 == Horde.creatures){ return ("Creatures"); }; if (_arg1 == Horde.cultists){ return ("Cultists"); }; return ("Monsters"); } else { if (_arg1 == Horde.undead){ return ("undead"); }; if (_arg1 == Horde.greenskins){ return ("greenskins"); }; if (_arg1 == Horde.creatures){ return ("creatures"); }; if (_arg1 == Horde.cultists){ return ("cultists"); }; }; return (!NULL!); } public static function getBeholderName():String{ return (getNecromancerName()); } public static function getGreenskinName():String{ var _local1:Array; var _local2:Array; var _local3:String; _local1 = new Array("Gral", "Grun", "Grun", "Kil", "Skar", "Krum", "Har", "Zug", "Kaz", "Bom"); _local2 = new Array("gog", "gul", "grul", "guk", "krul", "krag", "zog", "bog", "skag", "zak"); _local3 = ""; _local3 = (_local3 + _local1[dm.randomNum(0, (_local1.length - 1))]); _local3 = (_local3 + _local2[dm.randomNum(0, (_local2.length - 1))]); return (_local3); } public static function getDragonName():String{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:String; _local1 = new Array("Sm", "Br", "N"); _local2 = new Array("au", "auga", "aga", "alga", "aulga"); _local3 = new Array("g", "fen", "l", "n"); _local4 = ""; _local4 = (_local4 + _local1[dm.randomNum(0, (_local1.length - 1))]); _local4 = (_local4 + _local2[dm.randomNum(0, (_local2.length - 1))]); _local4 = (_local4 + _local3[dm.randomNum(0, (_local3.length - 1))]); return (_local4); } } }//package
Section 131
//HordeData (HordeData) package { public class HordeData { private var _level:int;// = 0 private var _boss:Boolean;// = false var members:Array; private var _defeated:Boolean;// = false private var _roomIndex:int;// = 0 private var _race:int; public function HordeData(){ members = new Array(); _roomIndex = 0; _defeated = false; _race = Horde.undead; _level = 0; _boss = false; super(); } public function get level():int{ return (this._level); } public function set level(_arg1:int):void{ this._level = _arg1; } public function get race():int{ return (this._race); } public function get defeated():Boolean{ return (this._defeated); } public function set boss(_arg1:Boolean):void{ this._boss = _arg1; } public function set defeated(_arg1:Boolean):void{ this._defeated = _arg1; } public function set race(_arg1:int):void{ this._race = _arg1; } public function get boss():Boolean{ return (this._boss); } public function set roomIndex(_arg1:int):void{ this._roomIndex = _arg1; } public function get roomIndex():int{ return (this._roomIndex); } public function toHorde():Horde{ var _local1:Horde; var _local2:*; _local1 = new Horde(this.race, this.level, this.boss, null, true); _local1.defeated = this.defeated; _local1.members = this.members; _local2 = 0; while (_local2 < members.length) { MonsterCharacter(_local1.members[_local2]).initSkills(); _local2++; }; return (_local1); } } }//package
Section 132
//HordeIcon (HordeIcon) package { import flash.display.*; public dynamic class HordeIcon extends MovieClip { public function HordeIcon(){ addFrameScript(0, frame1); } function frame1(){ this.gotoAndStop(1); } } }//package
Section 133
//HordeIconGlow (HordeIconGlow) package { import flash.display.*; public dynamic class HordeIconGlow extends MovieClip { } }//package
Section 134
//HordeTooltip (HordeTooltip) package { import flash.text.*; import flash.display.*; public class HordeTooltip extends Sprite { const red_text = 0xCC0000; const white_text = 0xFFFFFF; const grey_text = 0xCCCCCC; const boss_text = 16777164; const purple_text = 0x9900FF; const green_text = 0x66FF00; const blue_text = 26367; public var tooltip_bg:ItemTooltipBg; public var t2:TextField; public var t3:TextField; public var t5:TextField; public var t1:TextField; public var t6:TextField; public var t4:TextField; public var title_label:TextField; public var p1:CharGraphic; public var p2:CharGraphic; public var p3:CharGraphic; public var p5:CharGraphic; public var p6:CharGraphic; public var p4:CharGraphic; public function HordeTooltip(_arg1:String="", _arg2:Array=null, _arg3=false){ var _local4:*; var _local5:*; var _local6:TextField; var _local7:MovieClip; super(); if (_arg2 == null){ return; }; _local4 = _arg2.length; if (_arg1 == ""){ _arg1 = "Blank"; }; title_label.text = _arg1; dm.embolden(title_label); _local5 = (_local4 + 1); while (_local5 <= 6) { removeChild(getChildByName(("p" + _local5))); removeChild(getChildByName(("t" + _local5))); _local5++; }; _local5 = 1; while (_local5 <= _local4) { _local6 = TextField(getChildByName(("t" + _local5))); if (((_arg3) && ((_local5 == 1)))){ _local6.text = getString(_arg2, (_local5 - 1), true); _local6.textColor = boss_text; } else { _local6.text = getString(_arg2, (_local5 - 1)); }; _local7 = MovieClip(getChildByName(("p" + _local5))); _local7.setFrame(_arg2[(_local5 - 1)][2]); _local5++; }; tooltip_bg.height = ((39 + (_local4 * 30)) + 7); } private function getString(_arg1:Array, _arg2:int, _arg3:Boolean=false):String{ if (_arg2 >= _arg1.length){ return ("Blank"); }; if (_arg3){ return ((((("x " + String(_arg1[_arg2][1])) + " '") + _arg1[_arg2][0]) + "'")); }; return (((("x " + String(_arg1[_arg2][1])) + " ") + _arg1[_arg2][0])); } } }//package
Section 135
//horz_slash (horz_slash) package { import flash.display.*; public dynamic class horz_slash extends MovieClip { public var slash:MovieClip; public function horz_slash(){ addFrameScript(11, frame12); } function frame12(){ this.gotoAndStop(12); } } }//package
Section 136
//iAxe (iAxe) package { public class iAxe extends SteelEdgedWeapon { public function iAxe(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Greataxe"; slot = weapon; item_level = _arg1; whoEquips = (Equipment.warriorEquip + Equipment.rangerEquip); twoHanded = true; icon_frame = 10; base_damage = axe_base_damage; mod_quickness = (mod_quickness - 15); grey_name = "Rusty"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Blood Harvester"; base_damage_mod = 50; setHealthRegen(); setVampiric(7, 12); icon_frame = 38; } else { item_name = "Golden Axe"; base_damage_mod = 50; setStunChance(15, 25); setStrength(2, max_stat_for_purple); icon_frame = 39; }; } } }//package
Section 137
//iBow (iBow) package { public class iBow extends RangedWeapon { public function iBow(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Bow"; slot = weapon; item_level = _arg1; whoEquips = ((Equipment.warriorEquip + Equipment.rangerEquip) + Equipment.rogueEquip); twoHanded = true; icon_frame = 15; base_damage = bow_base_damage; grey_name = "Cracked"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "The Huntsman"; base_damage_mod = 50; damageBonusVsCreatureType = MonsterCharacter.creature; damageBonusVsCreatureModifier = 1.2; setAccuracy(); setLethality(); setPoisonDamage(); icon_frame = 53; } else { item_name = "Manhunter Bow"; lore = "No man escapes the Manhunter"; base_damage_mod = 50; damageBonusVsCreatureType = MonsterCharacter.human; damageBonusVsCreatureModifier = 1.2; setStunChance(15, 20); setAccuracy(); icon_frame = 52; }; } } }//package
Section 138
//iCenser (iCenser) package { public class iCenser extends Offhand { public function iCenser(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Censer"; slot = offhand; item_level = _arg1; whoEquips = Equipment.clericEquip; base_armor_rating = 0; mod_healing = (item_level * 5); icon_frame = 63; grey_name = "Tarnished"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Inquisitor's Censer"; mod_healing = Math.round((mod_healing * 1.2)); setStrength(2, max_stat_for_purple); damageBonusVsCreatureType = MonsterCharacter.undead; damageBonusVsCreatureModifier = 1.3; icon_frame = 75; } else { item_name = "Blessed Censer of the Exalted Priest-Lord"; mod_healing = (mod_healing * 2); setHealthRegen(); setResistPoison(50, 75); icon_frame = 76; }; } override public function itemStatsString(_arg1:String):String{ var _local2:*; _local2 = super.itemStatsString(_arg1); if (_local2.length){ _local2 = (_local2 + "\n"); }; _local2 = (_local2 + ("Special(Censer): Increases the effect of Healing abilities by " + mod_healing)); return (_local2); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Vampiric", 10]); } } }//package
Section 139
//iCloak (iCloak) package { public class iCloak extends Armor { public function iCloak(_arg1:int=1, _arg2:int=-1){ type = Armor.light; mod_quickness = 0; whoEquips = Equipment.allEquip; base_armor_rating = 2; materials.push("Linen", "Wool", "Velvet", "Silk", "Suncloth", "Aetherweave"); SetRarity(_arg2); item_level = _arg1; item_name = "Cloak"; slot = Equipment.back; icon_frame = 55; if (item_rarity == Item.orange){ return; }; modifyBaseArmorForSlot(); grey_name = "Threadbare"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 3; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Cloak of Flames"; base_armor_rating = Math.round((base_armor_rating * 3)); setStrength(2, max_stat_for_purple); setDamageReflection(10, 15); setQuickness(8, 15); icon_frame = 57; } else { if (_local2 == 2){ item_name = "Manashroud"; base_armor_rating = Math.round((base_armor_rating * 2)); setIntellect(2, max_stat_for_purple); setPowerRegen(5, 8); icon_frame = 58; } else { item_name = "Shroud of Darkness"; base_armor_rating = Math.round((base_armor_rating * 2)); quickRetreat = true; setBlind(15, 25); setDexterity(2, max_stat_for_purple); icon_frame = 56; }; }; } override public function getItemTypeString(){ return ("Cloak"); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Vampiric", 10]); suffixes.push(["Discretion", 1]); } } }//package
Section 140
//iClothGloves (iClothGloves) package { public class iClothGloves extends LightArmor { public function iClothGloves(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Gloves"; icon_frame = 31; slot = Equipment.gloves; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Thief's Gloves"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setBlind(); setQuickness(); icon_frame = 88; } else { item_name = "Savant's Gloves"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(2, max_stat_for_purple); setEndurance(); setPowerRegen(); icon_frame = 87; }; } override public function getItemModifiers():void{ super.getItemModifiers(); suffixes.push(["Accuracy", base_accuracy_bonus]); } } }//package
Section 141
//iClothHat (iClothHat) package { public class iClothHat extends LightArmor { public function iClothHat(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Hood"; icon_frame = 33; slot = Equipment.head; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Facemask of the Bandit Chieftain"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(2, max_stat_for_purple); setDexterity(2, max_stat_for_purple); setPoisonDamage(2); icon_frame = 90; } else { item_name = "Savant's Hood"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(2, max_stat_for_purple); setEndurance(); setPowerRegen(); icon_frame = 89; }; } } }//package
Section 142
//iClothLegs (iClothLegs) package { public class iClothLegs extends LightArmor { public function iClothLegs(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Trousers"; icon_frame = 34; slot = Equipment.legs; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Swashbuckler's Pantaloons"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(); setDexterity(); setQuickness(); icon_frame = 85; } else { item_name = "Savant's Leggings"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(2, max_stat_for_purple); setEndurance(); setPowerRegen(); icon_frame = 86; }; } } }//package
Section 143
//iClothRobe (iClothRobe) package { public class iClothRobe extends LightArmor { public function iClothRobe(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Robe"; icon_frame = 35; slot = Equipment.armor; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Sacred Vestments"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setStrength(); setResistPoison(); mod_healing = (item_level * 5); whoEquips = clericEquip; icon_frame = 92; } else { if (_local2 == 2){ item_name = "Savant's Robe"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(2, max_stat_for_purple); setEndurance(); setPowerRegen(); icon_frame = 91; }; }; } } }//package
Section 144
//iClothShoes (iClothShoes) package { public class iClothShoes extends LightArmor { public function iClothShoes(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Slippers"; icon_frame = 36; slot = Equipment.boots; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Lightstep Slippers"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setQuickness(5, 10); quickRetreat = true; icon_frame = 95; } else { item_name = "Savant's Slippers"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(2, max_stat_for_purple); setEndurance(); setPowerRegen(); icon_frame = 94; }; } override public function getItemModifiers():void{ super.getItemModifiers(); suffixes.push(["Discretion", 1]); } } }//package
Section 145
//iCrossbow (iCrossbow) package { public class iCrossbow extends RangedWeapon { public function iCrossbow(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Crossbow"; slot = weapon; item_level = _arg1; whoEquips = ((Equipment.warriorEquip + Equipment.rangerEquip) + Equipment.rogueEquip); twoHanded = true; mod_quickness = (mod_quickness - 20); icon_frame = 67; base_damage = crossbow_base_damage; grey_name = "Worn"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Mystically Augmented Bolt-Throwing System Mk I"; lore = "This weapon is remarkably easy to handle."; base_damage_mod = 50; setAccuracy(15, 30); mod_quickness = 0; setDexterity(); icon_frame = 72; } else { item_name = "Quarrel-Ender"; lore = "The most efficient way to end any argument."; base_damage_mod = 50; setBlind(10, 15); setPoisonDamage(); setLethality(7, 15); icon_frame = 71; }; } } }//package
Section 146
//iDagger (iDagger) package { public class iDagger extends SteelEdgedWeapon { public function iDagger(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Dagger"; slot = weapon; item_level = _arg1; whoEquips = Equipment.rogueEquip; icon_frame = 16; base_damage = dagger_base_damage; mod_quickness = (mod_quickness + 5); grey_name = "Worn"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 3; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Pestilence Blade"; base_damage_mod = 30; setPoisonDamage(20); icon_frame = 41; resistPoison = -10; } else { if (_local2 == 2){ item_name = "Bloodseeker"; base_damage_mod = 35; setVampiric(10, 20); setAccuracy(); icon_frame = 40; } else { item_name = "The Shudderer"; lore = "It brings a pointy reckoning.."; base_damage_mod = 40; setStunChance(15, 25); icon_frame = 42; }; }; } override public function itemStatsString(_arg1:String):String{ var _local2:*; _local2 = super.itemStatsString(_arg1); _local2 = (_local2 + "\nSpecial(Dagger): Gains bonus damage from both Strength and Dexterity"); return (_local2); } } }//package
Section 147
//iLeatherBoots (iLeatherBoots) package { public class iLeatherBoots extends MediumArmor { public function iLeatherBoots(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Boots"; icon_frame = 24; slot = Equipment.boots; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Heavy Spineskin Boots"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.5)))); setStrength(2, max_stat_for_purple); setDamageReflection(10, 15); quickRetreat = true; icon_frame = 99; } else { item_name = "Stalker's Boots"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setEndurance(); setHealthRegen(); icon_frame = 98; }; } override public function getItemModifiers():void{ super.getItemModifiers(); suffixes.push(["Discretion", 1]); } } }//package
Section 148
//iLeatherChest (iLeatherChest) package { public class iLeatherChest extends MediumArmor { public function iLeatherChest(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Jerkin"; icon_frame = 47; slot = Equipment.armor; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Bloodsoaked Berserker's Jerkin"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(2, max_stat_for_purple); setEndurance(); setResistStun(); icon_frame = 104; } else { item_name = "Stalker's Jerkin"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setEndurance(); setHealthRegen(); icon_frame = 103; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 149
//iLeatherGloves (iLeatherGloves) package { public class iLeatherGloves extends MediumArmor { public function iLeatherGloves(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Gloves"; icon_frame = 32; slot = Equipment.gloves; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Assassin's Gloves"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(); setDexterity(); setLethality(); icon_frame = 101; } else { item_name = "Stalker's Gloves"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setEndurance(); setHealthRegen(); icon_frame = 100; }; } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Staggering", 10]); suffixes.push(["Accuracy", base_accuracy_bonus]); } } }//package
Section 150
//iLeatherHat (iLeatherHat) package { public class iLeatherHat extends MediumArmor { public function iLeatherHat(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Helmet"; icon_frame = 48; slot = Equipment.head; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 1; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Assassin's Hood"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); damageBonusVsCreatureType = MonsterCharacter.human; damageBonusVsCreatureModifier = 1.2; setResistPoison(60, 80); setLethality(); whoEquips = (whoEquips - Equipment.clericEquip); icon_frame = 54; } else { item_name = "Stalker's Hood"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setEndurance(); setHealthRegen(); icon_frame = 102; }; } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 151
//iLeatherLegs (iLeatherLegs) package { public class iLeatherLegs extends MediumArmor { public function iLeatherLegs(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Leggings"; icon_frame = 29; slot = Equipment.legs; modifyBaseArmorForSlot(); if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Bloodsoaked Berserker's Leggings"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(2, max_stat_for_purple); setEndurance(); setResistStun(); icon_frame = 97; } else { item_name = "Stalker's Leggings"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setDexterity(2, max_stat_for_purple); setEndurance(); setHealthRegen(); icon_frame = 96; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 152
//iMace (iMace) package { public class iMace extends MeleeWeapon { public function iMace(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Mace"; slot = weapon; item_level = _arg1; whoEquips = ((Equipment.warriorEquip + Equipment.clericEquip) + Equipment.rogueEquip); icon_frame = 13; base_damage = mace_base_damage; grey_name = "Battered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Scepter of Grace"; base_damage_mod = 50; setPowerRegen(4, 6); setResistPoison(20, 30); setResistStun(20, 30); setIntellect(2, max_stat_for_purple); icon_frame = 43; } else { item_name = "The Punisher"; base_damage_mod = 60; setBlind(20, 30); setStunChance(15, 25); icon_frame = 44; }; } } }//package
Section 153
//InitiativeIcon (InitiativeIcon) package { import flash.text.*; import flash.display.*; public class InitiativeIcon extends MovieClip { var start_y:int; var dying:Boolean;// = false protected var char_ref:Character; var nametext:String;// = "Error" var pos:int;// = 1 var target_y:int; var tcolor:uint;// = 0xFFFFFF public var pos_icon:InitiativePositionIndicator; public var name_label:TextField; public function InitiativeIcon(_arg1:Character=null){ tcolor = 0xFFFFFF; nametext = "Error"; pos = 1; dying = false; super(); addFrameScript(8, frame9, 9, frame10, 19, frame20, 20, frame21, 30, frame31, 39, frame40); if (_arg1 != null){ this.char_ref = _arg1; this.updateNow(); }; } public function fix():void{ name_label.text = this.nametext; name_label.textColor = this.tcolor; pos_icon.gotoAndStop(this.pos); } function setColor(_arg1:uint):void{ this.tcolor = _arg1; fix(); } function frame10(){ if (dying){ tcolor = 0; }; this.fix(); } function frame20(){ this.gotoAndStop(20); this.fix(); } function frame9(){ if (!dying){ this.gotoAndStop(9); }; this.fix(); } public function kill():void{ dying = true; fix(); if (this.currentFrame == 9){ this.gotoAndPlay(10); }; } function frame21(){ this.fix(); } function frame31(){ this.fix(); } public function updateNow():void{ this.nametext = (((char_ref.charname + " Q") + char_ref.getQuickness()) + " "); this.pos = char_ref.pos; name_label.text = this.nametext; name_label.textColor = this.tcolor; } public function res():void{ dying = false; fix(); this.gotoAndPlay(21); } function frame40(){ this.gotoAndStop(40); this.fix(); } public function getChar():Character{ return (char_ref); } } }//package
Section 154
//InitiativeList (InitiativeList) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class InitiativeList extends MovieClip { const highlight_color = 0xFFFF00; const player_color = 0xFFFFFF; const entry_height = 15; const monster_color = 0xE90000; const dead_color = 0; private var icons:Array; private var turn_order:Array; public var bg:MovieClip; private var entry_data:Array; private var highlighted:Character; var turn:int;// = 0 var current:int; private var last_turn:Character; var frame_count;// = 0 var animate_frames;// = 10 static const max_entries = 25; public function InitiativeList(){ icons = new Array(); turn_order = new Array(); turn = 0; frame_count = 0; animate_frames = 10; super(); } function refillTimerComplete(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; var _local4:*; _local2 = 0; while (_local2 < icons.length) { if (bg.contains(icons[_local2])){ bg.removeChild(icons[_local2]); }; _local2++; }; icons.length = 0; _local3 = 0; while (_local3 < turn_order.length) { _local4 = new InitiativeIcon(turn_order[_local3]); _local4.setColor(getColorFor(turn_order[_local3])); _local4.x = 0; if (_local3 > 0){ _local4.target_y = (entry_height * (_local3 + 1)); _local4.start_y = bg.height; _local4.y = bg.height; } else { _local4.y = (entry_height * _local3); _local4.target_y = _local4.y; _local4.start_y = _local4.y; _local4.gotoAndStop(1); _local4.fix(); }; icons.push(_local4); bg.addChild(_local4); _local3++; }; animate_frames = 30; frame_count = 0; addEventListener(Event.ENTER_FRAME, animateFrame); } private function getColorFor(_arg1:Character):uint{ var _local2:uint; if (((!((highlighted == null))) && ((highlighted == _arg1)))){ _local2 = highlight_color; } else { if (!shouldAdd(_arg1)){ _local2 = dead_color; } else { if ((_arg1 is MonsterCharacter)){ _local2 = monster_color; } else { _local2 = player_color; }; }; }; return (_local2); } private function buildTurnOrder(_arg1:Character, _arg2:Boolean=false):Boolean{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; _local5 = 0; _local6 = false; _local7 = false; turn_order.length = 0; _local3 = 0; while (_local3 < entry_data.length) { if (entry_data[_local3] == _arg1){ _local5 = _local3; if (_arg2){ if (shouldAdd(last_turn)){ turn_order.push(last_turn); } else { _local7 = true; }; }; _local4 = _local5; while (_local4 < entry_data.length) { if (shouldAdd(entry_data[_local4])){ turn_order.push(entry_data[_local4]); }; _local4++; }; break; }; _local3++; }; last_turn = _arg1; _local8 = turn_order.length; _local9 = max_entries; if (_arg2){ _local9 = (_local9 + 2); }; while (_local8 < _local9) { _local3 = 0; while (_local3 < entry_data.length) { if (shouldAdd(entry_data[_local3])){ turn_order.push(entry_data[_local3]); ++_local8; if (_local8 >= max_entries){ break; }; }; _local3++; }; }; return (_local7); } public function removeDead():void{ var _local1:*; var _local2:*; var _local3:*; var _local4:*; _local3 = 0; _local4 = false; _local1 = 0; while (_local1 < turn_order.length) { icons[_local1].start_y = icons[_local1].y; icons[_local1].target_y = icons[_local1].y; if ((((Character(turn_order[_local1]).health <= 0)) || ((((turn_order[_local1] is PlayerCharacter)) && (turn_order[_local1].retreated))))){ if (_local1 > 1){ _local3 = (_local3 + entry_height); }; icons[_local1].kill(); _local4 = true; } else { icons[_local1].target_y = (icons[_local1].target_y - _local3); }; _local1++; }; if (_local4){ animate_frames = 10; frame_count = -30; addEventListener(Event.ENTER_FRAME, animateFrame); }; } public function setData(_arg1:Array=null){ if (_arg1 == null){ return; }; entry_data = _arg1; } public function highlightChar(_arg1:Character):Boolean{ var _local2:*; var _local3:*; _local2 = false; _local3 = 0; while (_local3 < icons.length) { if (icons[_local3].getChar() != _arg1){ } else { if (icons[_local3].getChar().health <= 0){ } else { highlighted = _arg1; icons[_local3].setColor(highlight_color); _local2 = true; }; }; _local3++; }; if (_local2){ return (true); }; return (false); } public function refill(_arg1:Character):void{ var _local2:Boolean; var _local3:*; var _local4:Timer; _local2 = false; buildTurnOrder(_arg1); _local3 = 0; while (_local3 < icons.length) { if (!_local2){ if (icons[_local3].getChar() == _arg1){ _local2 = true; }; } else { icons[_local3].start_y = icons[_local3].y; icons[_local3].target_y = bg.height; }; _local3++; }; animate_frames = 30; frame_count = 0; addEventListener(Event.ENTER_FRAME, animateFrame); _local4 = new Timer(600, 1); _local4.addEventListener(TimerEvent.TIMER_COMPLETE, refillTimerComplete); _local4.start(); } public function turnOf(_arg1:Character, _arg2:Boolean):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; _local5 = false; _local3 = 0; while (_local3 < icons.length) { if (icons[_local3] == null){ } else { if (bg.contains(icons[_local3])){ bg.removeChild(icons[_local3]); }; }; _local3++; }; icons.length = 0; _local5 = buildTurnOrder(_arg1, _arg2); _local3 = 0; while (_local3 < turn_order.length) { _local6 = new InitiativeIcon(turn_order[_local3]); _local6.setColor(getColorFor(turn_order[_local3])); _local6.x = 0; _local7 = 0; if (_local5){ _local7 = (_local3 + 1); } else { _local7 = _local3; }; _local6.y = (entry_height * _local7); if (_arg2){ } else { _local6.gotoAndStop(1); _local6.fix(); }; icons.push(_local6); bg.addChild(_local6); _local3++; }; } function animateFrame(_arg1:Event):void{ var _local2:*; var _local3:*; var _local4:*; frame_count++; if (frame_count < 1){ return; }; if (frame_count > animate_frames){ removeEventListener(Event.ENTER_FRAME, animateFrame); return; }; _local2 = 0; while (_local2 < icons.length) { if (icons[_local2].start_y == icons[_local2].target_y){ } else { if (icons[_local2].y == icons[_local2].target_y){ } else { _local3 = (icons[_local2].target_y - icons[_local2].start_y); _local4 = (_local3 / animate_frames); icons[_local2].y = (icons[_local2].start_y + (frame_count * _local4)); }; }; _local2++; }; } public function insertChar(_arg1:Character, _arg2:Character):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; buildTurnOrder(_arg2); _local3 = 0; _local4 = -1; _local5 = false; _local6 = 0; _local7 = 0; while (_local7 < turn_order.length) { _local4 = (_local7 + 1); icons[_local4].start_y = icons[_local4].y; icons[_local4].target_y = icons[_local4].y; if (turn_order[_local7] == _arg1){ insertIconAt(_local4, _arg1, _local3); _local3 = (_local3 + entry_height); _local5 = true; } else { icons[_local4].target_y = (icons[_local4].target_y + _local3); }; _local7++; }; if (_local5){ animate_frames = 10; frame_count = 0; addEventListener(Event.ENTER_FRAME, animateFrame); }; } public function setNormalColors():void{ var _local1:uint; var _local2:*; highlighted = null; _local2 = 0; while (_local2 < icons.length) { if (!shouldAdd(icons[_local2].getChar())){ _local1 = dead_color; } else { if ((icons[_local2].getChar() is MonsterCharacter)){ _local1 = monster_color; } else { _local1 = player_color; }; }; icons[_local2].setColor(_local1); _local2++; }; } private function insertIconAt(_arg1:int, _arg2:Character, _arg3:int):void{ var _local4:*; var _local5:*; var _local6:InitiativeIcon; _local6 = new InitiativeIcon(_arg2); _local6.setColor(getColorFor(_arg2)); icons.splice(_arg1, 0, _local6); _local6.x = 0; _local6.y = ((entry_height * _arg1) + _arg3); bg.addChild(_local6); _local6.res(); } public function setDead(_arg1:Character):void{ var _local2:*; var _local3:*; _local2 = 0; while (_local2 < icons.length) { if (icons[_local2].getChar() == _arg1){ icons[_local2].setColor(dead_color); }; _local2++; }; } public function updateIcon(_arg1:Character):void{ var _local2:*; _local2 = 0; while (_local2 < icons.length) { if (icons[_local2].getChar() == _arg1){ icons[_local2].updateNow(); }; _local2++; }; } private function shouldAdd(_arg1:Character):Boolean{ if (_arg1 == null){ return (false); }; if (_arg1.health <= 0){ return (false); }; if ((((_arg1 is PlayerCharacter)) && (PlayerCharacter(_arg1).retreated))){ return (false); }; return (true); } private function numOf(_arg1:Character):int{ var _local2:*; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < turn_order.length) { if (turn_order[_local3] == _arg1){ _local2++; }; _local3++; }; return (_local2); } } }//package
Section 155
//InitiativePositionIndicator (InitiativePositionIndicator) package { import flash.display.*; public dynamic class InitiativePositionIndicator extends MovieClip { } }//package
Section 156
//Inventory (Inventory) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.ui.*; public class Inventory extends Sprite { const argsForNumeral; var dragged_icon:InventoryIcon; public var player_power_bar:NumericIndicatorPower; public var player_level_label:TextField; public var large_portrait:CharGraphic; public var sort_name_btn:NameButton; public var party_items:InventoryPanel; public var info_panel:CharInfoPanel; var portraits:Array; public var sort_type_btn:TypeButton; var dragging:Boolean;// = false public var empty1:EmptyPortrait; var selectedChar:PlayerCharacter; public var empty3:EmptyPortrait; public var empty4:EmptyPortrait; public var help_btn:HelpButton; var pc_party:Party; public var empty2:EmptyPortrait; public var player_name_label:TextField; var start_drag_x;// = 0 var start_drag_y;// = 0 public var exit_btn:ReturnButton; public var sort_level_btn:LevelButton; public var player_health_bar:NumericIndicatorHealth; public var paperdoll:Paperdoll; public var statusbar:TextField; public var destroy:ItemDestroyTarget; var tooltipController:ItemTooltipController; public function Inventory():void{ portraits = new Array(); argsForNumeral = (Array.DESCENDING | Array.NUMERIC); start_drag_x = 0; start_drag_y = 0; dragging = false; super(); exit_btn.addEventListener(MouseEvent.MOUSE_DOWN, exitClick); sort_level_btn.addEventListener(MouseEvent.MOUSE_DOWN, sortByLevel); sort_type_btn.addEventListener(MouseEvent.MOUSE_DOWN, sortByType); sort_name_btn.addEventListener(MouseEvent.MOUSE_DOWN, sortByName); destroy.gotoAndStop(1); destroy.addEventListener(MouseEvent.MOUSE_MOVE, destroyHover); statusbar.text = ""; tooltipController = new ItemTooltipController(); addEventListener(Event.ADDED_TO_STAGE, added); } function added(_arg1:Event):void{ var _local2:*; var _local3:*; removeEventListener(Event.ADDED_TO_STAGE, added); if (stage != null){ tooltipController.stage = stage; _local2 = 2; if (((DungeonMain.showHints) && (!(Dungeon.hintShown(_local2))))){ _local3 = new HintDialog("Status and Inventory", "On this screen you can review and upgrade your characters' skills and statistics, as well as manage their equipment.\n\nEquip items you find by double-clicking their icon, or dragging to the paperdoll or character portrait. \n\nDiscard items by dragging them onto the red 'X' or click on them while holding the 'control' key.", true, true); DungeonMain.hints = (DungeonMain.hints + _local2); stage.addChild(_local3); dm.main.saveInterface(); }; }; } function startItemDragging(_arg1:MouseEvent):void{ var _local2:*; if (_arg1.ctrlKey){ _local2 = InventoryIcon(_arg1.currentTarget.parent); _local2.bg.removeEventListener(MouseEvent.MOUSE_UP, stopItemDragging); destroyItem(_local2.item_ref); return; }; if (_arg1.currentTarget.parent == null){ return; }; dragged_icon = InventoryIcon(_arg1.currentTarget.parent); dm.childToTop(dragged_icon); dm.childToTop(dragged_icon.parent); start_drag_x = dragged_icon.x; start_drag_y = dragged_icon.y; InventoryIcon(dragged_icon).startDrag(); dragging = true; stage.addEventListener(Event.ENTER_FRAME, checkDropTarget); tooltipController.destroyTooltip(); _arg1.updateAfterEvent(); } public function consume(_arg1:Consumable, _arg2:PlayerCharacter){ var _local3:*; var _local4:int; var _local5:*; statusbar.text = (((_arg2.charname + " uses the ") + _arg1.item_name) + "."); _local3 = portraitFromCharacter(_arg2); _local4 = 0; if (_local3 != null){ if ((_arg1 is SneakyScroll)){ } else { if (_arg1.resurrect){ _local4 = PortraitAnimation.revive; } else { if ((_arg1 is PotionPoisonResist)){ _local4 = PortraitAnimation.buff; } else { if (_arg1.restore_health){ _local4 = PortraitAnimation.heal; } else { if (_arg1.restore_power){ _local4 = PortraitAnimation.gainPower; } else { if (_arg1.damage_resist){ _local4 = PortraitAnimation.armorBuff; } else { _local4 = PortraitAnimation.buff; }; }; }; }; }; }; if ((_arg1 is SneakyScroll)){ _local5 = SoundControl.hideSound; } else { _local5 = SoundControl.potionSound; }; dm.sound.play(_local5, 1, true); }; if (_arg1.stack <= 0){ _arg1 = null; }; updateStats(); updatePaperdoll(selectedChar); updateInventoryPanels(); if (_local4){ _local3.addPortraitAnimation(_local4); }; } public function init(_arg1:Party){ var _local2:*; var _local3:*; var _local4:*; this.pc_party = _arg1; selectChar(pc_party.members[0]); _local2 = 0; while (_local2 < pc_party.members.length) { _local3 = getChildByName(("empty" + (_local2 + 1))); _local4 = new CharacterPortrait(); _local4.x = _local3.x; _local4.y = _local3.y; _local4.setChar(pc_party.members[_local2]); _local4.name = ("portrait" + _local2); _local4.setGlow(); _local4.setHiding((pc_party.sneaking > 0)); removeChild(_local3); addChildAt(_local4, 1); _local4.addEventListener(MouseEvent.MOUSE_DOWN, portraitClick); portraits.push(_local4); _local2++; }; updateInventoryPanels(); stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); stage.addEventListener(KeyboardEvent.KEY_UP, reportKeyUp); } public function removeItemFrom(_arg1:Item, _arg2:PlayerCharacter){ var _local3:Equipment; if (!(_arg1 is Equipment)){ return; }; _local3 = Equipment(_arg1); if (_arg2.unequip(Equipment(_arg1))){ updateStats(); updatePaperdoll(selectedChar); updateInventoryPanels(); statusbar.text = (((_arg2.charname + " removes the ") + _local3.item_name) + "."); } else { statusbar.text = (((_arg2.charname + " cannot remove the ") + _local3.item_name) + "."); }; } public function exitClick(_arg1:MouseEvent){ if (pc_party.overflow.length){ statusbar.text = "Your party is carrying too many items. Discard some."; } else { dm.main.closeInventory(); }; } public function updatePaperdoll(_arg1:PlayerCharacter){ var _local2:*; var _local3:*; var _local4:uint; _local4 = (numChildren - 1); setChildIndex(paperdoll, _local4); _local3 = 0; while (_local3 < Equipment.gearSlots) { _local2 = paperdoll.getChildByName(("slot" + String(_local3))); if (_local2 == null){ } else { paperdoll.removeChild(_local2); }; _local3++; }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (_arg1.gear[_local3] == null){ } else { if (_arg1.gear[_local3].slot == Equipment.gearSlots){ } else { if (_arg1.gear[_local3].slot != _local3){ } else { _local2 = new InventoryIcon(_arg1.gear[_local3], tooltipController); _local2.x = getSlotX(_arg1.gear[_local3].slot); _local2.y = getSlotY(_arg1.gear[_local3].slot); _local2.name = ("slot" + String(_local3)); paperdoll.addChild(_local2); setDraggable(_local2); if (_local3 == Equipment.weapon){ if (Weapon(_arg1.gear[_local3]).twoHanded){ paperdoll.offhand.gotoAndStop(2); } else { paperdoll.offhand.gotoAndStop(1); }; }; }; }; }; _local3++; }; info_panel.setChar(_arg1); } public function destroyItem(_arg1:Item):void{ var _local2:*; statusbar.text = (_arg1.item_name + " destroyed."); pc_party.destroyItem(_arg1); dm.sound.play(SoundControl.destroyItem, 1, true); _local2 = 0; while (_local2 < Equipment.gearSlots) { if (selectedChar.gear[_local2] == _arg1){ selectedChar.gear[_local2] = null; }; _local2++; }; _arg1 = null; updateStats(); updatePaperdoll(selectedChar); updateInventoryPanels(); } function destroyHover(_arg1:MouseEvent){ if (((dragging) && (_arg1.buttonDown))){ destroy.gotoAndStop(2); } else { destroy.gotoAndStop(1); }; } private function setDraggable(_arg1:InventoryIcon):void{ _arg1.bg.addEventListener(MouseEvent.MOUSE_DOWN, startItemDragging, false, 0, true); _arg1.bg.addEventListener(MouseEvent.MOUSE_UP, stopItemDragging, false, 0, true); } public function updateInventoryPanels(){ var _local1:*; var _local2:*; var _local3:*; var _local4:uint; var _local5:InventoryIcon; _local1 = 0; _local2 = 0; _local3 = new InventoryPanel(); _local3.x = party_items.x; _local3.y = party_items.y; _local3.width = party_items.original_width; _local3.height = party_items.original_height; removeChild(party_items); party_items = null; party_items = _local3; _local4 = (this.numChildren - 1); addChildAt(party_items, _local4); _local4 = (this.numChildren - 1); setChildIndex(paperdoll, _local4); _local1 = 0; while (_local1 < pc_party.inventory.length) { _local5 = party_items.addItemRef(pc_party.inventory[_local1], tooltipController); setDraggable(_local5); _local1++; }; _local1 = 0; while (_local1 < pc_party.overflow.length) { _local5 = party_items.addItemRef(pc_party.overflow[_local1], tooltipController); setDraggable(_local5); _local1++; }; party_items.updateCount((pc_party.inventory.length + pc_party.overflow.length)); } public function getSlotX(_arg1:int):int{ var _local2:*; _local2 = 0; if (_arg1 == Equipment.head){ _local2 = paperdoll.head.x; } else { if (_arg1 == Equipment.armor){ _local2 = paperdoll.armor.x; } else { if (_arg1 == Equipment.gloves){ _local2 = paperdoll.gloves.x; } else { if (_arg1 == Equipment.boots){ _local2 = paperdoll.boots.x; } else { if (_arg1 == Equipment.back){ _local2 = paperdoll.cloak.x; } else { if (_arg1 == Equipment.weapon){ _local2 = paperdoll.weapon.x; } else { if (_arg1 == Equipment.offhand){ _local2 = paperdoll.offhand.x; } else { if (_arg1 == Equipment.ring){ _local2 = paperdoll.ring.x; } else { if (_arg1 == Equipment.legs){ _local2 = paperdoll.legs.x; }; }; }; }; }; }; }; }; }; return (_local2); } public function updateStats(){ var _local1:*; _local1 = 0; while (_local1 < portraits.length) { pc_party.members[_local1].recalculateMaxHealth(); if (portraits[_local1] == null){ } else { portraits[_local1].updateBars(); portraits[_local1].setGlow(); portraits[_local1].setHiding((pc_party.sneaking > 0)); }; _local1++; }; player_health_bar.bar.width = ((60 / 100) * selectedChar.getHealthPercent()); player_health_bar.numbers.text = ((String(selectedChar.health) + "/") + String(selectedChar.health_max)); player_power_bar.bar.width = ((60 / 100) * selectedChar.getPowerPercent()); player_power_bar.numbers.text = ((String(selectedChar.power) + "/") + String(selectedChar.power_max)); if (parent != null){ DungeonMain(parent).saveChars(); DungeonMain(parent).saveInventory(); }; } private function sortByType(_arg1:MouseEvent):void{ var _local2:Array; var _local3:Array; var _local4:Array; _local2 = pc_party.getConsumables(); _local3 = pc_party.getEquipment(); _local2.sortOn(["icon_frame", "item_name", "item_level"], [argsForNumeral, Array.DESCENDING, argsForNumeral]); _local3.sortOn(["slot", "icon_frame", "item_name", "item_level"], [argsForNumeral, argsForNumeral, Array.DESCENDING, argsForNumeral]); _local4 = dm.joinArrays(_local2, _local3); finishSort(_local4); } public function consumeFailed(_arg1:Item, _arg2:PlayerCharacter){ statusbar.text = (((_arg2.charname + " cannot use the ") + _arg1.item_name) + " at this time."); updateInventoryPanels(); } public function getSlotY(_arg1:int):int{ var _local2:*; _local2 = 0; if (_arg1 == Equipment.head){ _local2 = paperdoll.head.y; } else { if (_arg1 == Equipment.armor){ _local2 = paperdoll.armor.y; } else { if (_arg1 == Equipment.gloves){ _local2 = paperdoll.gloves.y; } else { if (_arg1 == Equipment.boots){ _local2 = paperdoll.boots.y; } else { if (_arg1 == Equipment.back){ _local2 = paperdoll.cloak.y; } else { if (_arg1 == Equipment.weapon){ _local2 = paperdoll.weapon.y; } else { if (_arg1 == Equipment.offhand){ _local2 = paperdoll.offhand.y; } else { if (_arg1 == Equipment.ring){ _local2 = paperdoll.ring.y; } else { if (_arg1 == Equipment.legs){ _local2 = paperdoll.legs.y; }; }; }; }; }; }; }; }; }; return (_local2); } public function selectChar(_arg1:PlayerCharacter){ var _local2:*; _local2 = 0; selectedChar = _arg1; tooltipController.setChar(_arg1); player_name_label.text = _arg1.charname; player_level_label.text = ((("Level " + String(_arg1.level)) + " ") + String(_arg1.classname)); dm.embolden(player_name_label); dm.embolden(player_level_label); player_health_bar.bar.width = ((60 / 100) * _arg1.getHealthPercent()); player_health_bar.numbers.text = ((String(_arg1.health) + "/") + String(_arg1.health_max)); player_power_bar.bar.width = ((60 / 100) * _arg1.getPowerPercent()); player_power_bar.numbers.text = ((String(_arg1.power) + "/") + String(_arg1.power_max)); info_panel.setChar(_arg1); large_portrait.setFrame(_arg1.portrait); updatePaperdoll(_arg1); } private function reportKeyUp(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.CONTROL){ destroy.gotoAndStop(1); }; } function portraitClick(_arg1:MouseEvent):void{ selectChar(PlayerCharacter(CharacterPortrait(_arg1.currentTarget).char_ref)); } public function equipFailed(_arg1:Item, _arg2:PlayerCharacter){ updatePaperdoll(selectedChar); updateInventoryPanels(); statusbar.text = (((_arg2.charname + " cannot equip the ") + _arg1.item_name) + "."); } public function cleanup():void{ var _local1:*; var _local2:*; help_btn.cleanup(); exit_btn.removeEventListener(MouseEvent.MOUSE_DOWN, exitClick); destroy.removeEventListener(MouseEvent.MOUSE_MOVE, destroyHover); sort_level_btn.removeEventListener(MouseEvent.MOUSE_DOWN, sortByLevel); sort_type_btn.removeEventListener(MouseEvent.MOUSE_DOWN, sortByType); sort_name_btn.removeEventListener(MouseEvent.MOUSE_DOWN, sortByName); stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); stage.removeEventListener(KeyboardEvent.KEY_UP, reportKeyUp); _local1 = 0; while (_local1 < portraits.length) { portraits[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, portraitClick); _local1++; }; _local1 = 0; while (_local1 < Equipment.gearSlots) { _local2 = paperdoll.getChildByName(("slot" + String(_local1))); if (_local2 != null){ _local2.cleanup(); }; _local1++; }; party_items.cleanup(); info_panel.cleanup(); } public function useItemOn(_arg1:Item, _arg2:PlayerCharacter){ if ((_arg1 is Equipment)){ if (_arg2.equip(Equipment(_arg1))){ equipped(_arg1, _arg2); } else { equipFailed(_arg1, _arg2); }; } else { if ((_arg1 is Consumable)){ if (Consumable(_arg1).consume(_arg2, pc_party)){ pc_party.balanceInventory(); consume(Consumable(_arg1), _arg2); } else { consumeFailed(_arg1, _arg2); }; } else { updateInventoryPanels(); updatePaperdoll(selectedChar); statusbar.text = (("The " + _arg1.item_name) + " is not usable."); }; }; } public function checkDropTarget(_arg1:Event){ if (!dragging){ return; }; if (dragged_icon == null){ return; }; if (dragged_icon.dropTarget == null){ return; }; if (dragged_icon.dropTarget.parent == null){ return; }; if (dragged_icon.dropTarget.parent == destroy){ destroy.gotoAndStop(2); } else { destroy.gotoAndStop(1); }; } private function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.CONTROL){ destroy.gotoAndStop(2); }; } private function sortByName(_arg1:MouseEvent):void{ var _local2:Array; _local2 = dm.joinArrays(pc_party.inventory, pc_party.overflow); _local2.sortOn(["item_name", "item_level", "icon_frame"], [Array.DESCENDING, argsForNumeral, argsForNumeral]); finishSort(_local2); } private function portraitFromCharacter(_arg1:PlayerCharacter):CharacterPortrait{ var _local2:*; _local2 = 0; while (_local2 < portraits.length) { if (portraits[_local2].char_ref == _arg1){ return (portraits[_local2]); }; _local2++; }; return (null); } private function draggedOnPaperdoll(_arg1:Object):Boolean{ if (_arg1 == null){ return (false); }; if (_arg1.dropTarget == null){ return (false); }; if (paperdoll.contains(_arg1.dropTarget)){ return (true); }; return (false); } function stopItemDragging(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:*; var _local5:*; _arg1.currentTarget.stopDrag(); if (!dragging){ return; }; dragging = false; stage.removeEventListener(Event.ENTER_FRAME, checkDropTarget); if (!(_arg1.currentTarget.parent is InventoryIcon)){ return; }; _local2 = _arg1.currentTarget.parent; _local3 = InventoryIcon(_local2).item_ref; if ((((_local2.x == start_drag_x)) && ((_local2.y == start_drag_y)))){ return; }; _local4 = false; if (_local2.dropTarget.parent != null){ if (_local2.dropTarget.parent == destroy){ _local4 = true; }; }; if (draggedOnPaperdoll(_local2)){ if (_local2.parent == paperdoll){ updatePaperdoll(selectedChar); return; }; useItemOn(_local3, selectedChar); } else { if (_local4){ destroy.gotoAndStop(1); destroyItem(_local3); } else { if ((_local2.dropTarget.parent.parent is CharacterPortrait)){ _local5 = PlayerCharacter(CharacterPortrait(_local2.dropTarget.parent.parent).char_ref); useItemOn(_local3, _local5); } else { if ((((party_items == _local2.dropTarget)) || (party_items.contains(_local2.dropTarget)))){ if (paperdoll.contains(_arg1.currentTarget.parent)){ removeItemFrom(_local3, selectedChar); } else { updateInventoryPanels(); }; } else { updatePaperdoll(selectedChar); updateInventoryPanels(); }; }; }; }; _arg1.updateAfterEvent(); } private function finishSort(_arg1:Array):void{ var _local2:*; pc_party.inventory.length = 0; pc_party.overflow.length = 0; _local2 = 0; while (_local2 < Party.MAX_INVENTORY) { if (_arg1.length){ pc_party.inventory.push(_arg1.pop()); }; _local2++; }; while (_arg1.length) { pc_party.overflow.push(_arg1.pop()); }; updateInventoryPanels(); } public function equipped(_arg1:Item, _arg2:PlayerCharacter){ statusbar.text = (((_arg2.charname + " equips the ") + _arg1.item_name) + "."); dm.sound.play(getEquipSound(_arg1), 1, true); _arg1 = null; updateStats(); updatePaperdoll(selectedChar); updateInventoryPanels(); } private function getEquipSound(_arg1:Item):int{ if ((_arg1 is iSword)){ return (SoundControl.equipSword); }; if ((_arg1 is iAxe)){ return (SoundControl.equipAxe); }; if ((_arg1 is iDagger)){ return (SoundControl.equipDagger); }; if ((_arg1 is iMace)){ return (SoundControl.equipMace); }; if ((_arg1 is iSpear)){ return (SoundControl.equipSpear); }; if ((_arg1 is iBow)){ return (SoundControl.equipBow); }; if ((_arg1 is iCrossbow)){ return (SoundControl.equipCrossbow); }; if ((_arg1 is iStaff)){ return (SoundControl.equipStaff); }; if ((_arg1 is Shield)){ return (SoundControl.equipShield); }; if ((_arg1 is iParryingDagger)){ return (SoundControl.equipDagger); }; return (SoundControl.equipGeneric); } private function sortByLevel(_arg1:MouseEvent):void{ var _local2:Array; _local2 = dm.joinArrays(pc_party.inventory, pc_party.overflow); _local2.sortOn(["item_level", "icon_frame", "item_name"], [argsForNumeral, argsForNumeral, Array.DESCENDING]); finishSort(_local2); } } }//package
Section 157
//InventoryIcon (InventoryIcon) package { import flash.events.*; import flash.text.*; import flash.display.*; public class InventoryIcon extends MovieClip { public var bg:InventoryIconBg; public var stack_size:TextField; public var stack_bg:MovieClip; var item_ref:Item; var taking:Boolean;// = true var draggable:Boolean;// = false var tooltipController:ItemTooltipController; public function InventoryIcon(_arg1=null, _arg2:ItemTooltipController=null){ draggable = false; taking = true; super(); if (_arg1 == null){ return; }; if (_arg2 != null){ this.tooltipController = _arg2; }; item_ref = _arg1; this.gotoAndStop(_arg1.icon_frame); stack_size.mouseEnabled = false; stack_bg.mouseEnabled = false; if ((((item_ref is Consumable)) && ((Consumable(item_ref).stack > 1)))){ stack_size.text = String(Consumable(item_ref).stack); } else { if (this.contains(stack_size)){ removeChild(stack_size); }; if (this.contains(stack_bg)){ removeChild(stack_bg); }; }; bg.gotoAndStop((_arg1.item_rarity + 1)); bg.addEventListener(MouseEvent.MOUSE_OVER, mouseOverInventoryIcon); bg.addEventListener(MouseEvent.MOUSE_MOVE, mouseOverInventoryIcon); bg.addEventListener(MouseEvent.MOUSE_OUT, mouseOutInventoryIcon); if ((((_arg1 is Equipment)) || ((_arg1 is Consumable)))){ bg.doubleClickEnabled = true; bg.addEventListener(MouseEvent.DOUBLE_CLICK, doubleClick); }; } function mouseOutInventoryIcon(_arg1:MouseEvent):void{ tooltipController.removeTooltip(_arg1, item_ref); } function doubleClick(_arg1:MouseEvent=null):void{ var _local2:*; if ((parent is InventoryPanel)){ _local2 = Inventory(parent.parent).selectedChar; Inventory(parent.parent).useItemOn(item_ref, _local2); } else { if ((parent is Paperdoll)){ _local2 = Inventory(parent.parent).selectedChar; Inventory(parent.parent).removeItemFrom(item_ref, _local2); }; }; } function mouseOverInventoryIcon(_arg1:MouseEvent):void{ tooltipController.showTooltip(_arg1, item_ref); if ((((((parent is InventoryPanel)) || ((parent is Paperdoll)))) && ((((item_ref is Equipment)) || ((item_ref is Consumable)))))){ tooltipController.enableDoubleClick(this, doubleClick); }; } public function cleanup():void{ bg.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverInventoryIcon); bg.removeEventListener(MouseEvent.MOUSE_MOVE, mouseOverInventoryIcon); bg.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutInventoryIcon); bg.removeEventListener(MouseEvent.DOUBLE_CLICK, doubleClick); if (draggable){ bg.removeEventListener(MouseEvent.MOUSE_DOWN, Inventory(parent.parent).startItemDragging); bg.removeEventListener(MouseEvent.MOUSE_UP, Inventory(parent.parent).stopItemDragging); }; } } }//package
Section 158
//InventoryIconBg (InventoryIconBg) package { import flash.display.*; public dynamic class InventoryIconBg extends MovieClip { } }//package
Section 159
//InventoryPanel (InventoryPanel) package { import flash.text.*; import flash.display.*; public class InventoryPanel extends Sprite { const icon_start_y = 20; const row_width = 15; const ICON_WIDTH = 20; const ICON_HEIGHT = 20; const ICON_GAP = 4; var icons:Array; var original_height;// = 0 public var count_label:TextField; var original_width;// = 0 public function InventoryPanel(){ icons = new Array(); original_width = 0; original_height = 0; super(); original_width = width; original_height = height; } public function addItemRef(_arg1:Item, _arg2:ItemTooltipController):InventoryIcon{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; if (_arg1 == null){ return (null); }; _local3 = 0; _local4 = 0; _local5 = icons.length; if (_local5 < Party.MAX_INVENTORY){ _local4 = Math.floor((_local5 / row_width)); _local3 = (_local5 % row_width); _local6 = new InventoryIcon(_arg1, _arg2); _local6.x = (10 + (_local3 * (ICON_WIDTH + ICON_GAP))); _local6.y = (icon_start_y + (_local4 * (ICON_HEIGHT + ICON_GAP))); this.addChild(_local6); icons.push(_local6); return (_local6); }; if (_local5 < (Party.MAX_INVENTORY + Party.MAX_OVERFLOW)){ _local3 = (_local5 % row_width); _local7 = new InventoryIcon(_arg1, _arg2); _local7.x = (10 + (_local3 * (ICON_WIDTH + ICON_GAP))); _local7.y = ((icon_start_y + 7) + ((_local4 + 3) * (ICON_HEIGHT + ICON_GAP))); this.addChild(_local7); icons.push(_local7); return (_local7); }; return (null); } public function cleanup():void{ var _local1:*; _local1 = 0; while (_local1 < icons.length) { icons[_local1].cleanup(); _local1++; }; } public function updateCount(_arg1:int){ var _local2 = ??pushnamespace ; var _local3 = ??pushnamespace ; _local2 = 0xFF0000; _local3 = 0xFFFFFF; if (_arg1 > Party.MAX_INVENTORY){ count_label.textColor = _local2; } else { count_label.textColor = _local3; }; count_label.text = ((_arg1 + "/") + Party.MAX_INVENTORY); } } }//package
Section 160
//InventoryTab (InventoryTab) package { import flash.text.*; import flash.display.*; public class InventoryTab extends MovieClip { public var tab_text:TextField; public var flasher:MovieClip; var flashing:Boolean;// = false public function InventoryTab(){ flashing = false; super(); this.gotoAndStop(1); flashing = true; } public function setFlasher(_arg1:Boolean=true):void{ if (((_arg1) && (!(flashing)))){ flasher.gotoAndPlay(1); flashing = true; } else { if (((!(_arg1)) && (flashing))){ flasher.gotoAndStop(1); flashing = false; }; }; } } }//package
Section 161
//iParryingDagger (iParryingDagger) package { public class iParryingDagger extends Offhand { public function iParryingDagger(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Parrying Dagger"; slot = offhand; item_level = _arg1; whoEquips = ((Equipment.rogueEquip + Equipment.warriorEquip) + Equipment.rangerEquip); base_armor_rating = 20; icon_frame = 17; grey_name = "Worn"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 1; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Bladeturner"; base_armor_mod = 50; damageReflection = 20; mod_quickness = 10; icon_frame = 70; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ var _local2:*; _local2 = super.itemStatsString(_arg1); return (_local2); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 162
//iPlateBoots (iPlateBoots) package { public class iPlateBoots extends HeavyArmor { public function iPlateBoots(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Plate Sabatons"; icon_frame = 12; slot = Equipment.boots; modifyBaseArmorForSlot(); grey_name = "Battered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Stalwart Guardian's Sabatons"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.2)))); setStrength(); setEndurance(); setHealthRegen(); icon_frame = 108; } else { item_name = "Sabatons of the Valiant Crusader"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setEndurance(); setPowerRegen(); icon_frame = 107; }; } override public function getItemModifiers():void{ super.getItemModifiers(); suffixes.push(["Discretion", 1]); } } }//package
Section 163
//iPlateBreastplate (iPlateBreastplate) package { public class iPlateBreastplate extends HeavyArmor { public function iPlateBreastplate(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Breastplate"; icon_frame = 11; slot = Equipment.armor; modifyBaseArmorForSlot(); grey_name = "Battered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Stalwart Guardian's Breastplate"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.2)))); setStrength(); setEndurance(); setHealthRegen(); icon_frame = 114; } else { item_name = "Breastplate of the Valiant Crusader"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setEndurance(); setPowerRegen(); icon_frame = 113; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 164
//iPlateGloves (iPlateGloves) package { public class iPlateGloves extends HeavyArmor { public function iPlateGloves(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Plate Gauntlets"; icon_frame = 14; slot = Equipment.gloves; modifyBaseArmorForSlot(); grey_name = "Battered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Stalwart Guardian's Gauntlets"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.2)))); setStrength(); setEndurance(); setHealthRegen(); icon_frame = 108; } else { if (_local2 == 2){ item_name = "Ogrish Gauntlets"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setStrength(2, max_stat_for_purple); setEndurance(); setStunChance(10, 20); icon_frame = 115; } else { item_name = "Gauntlets of the Valiant Crusader"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setEndurance(); setPowerRegen(); icon_frame = 107; }; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Staggering"){ setStunChance(); }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Staggering", 10]); suffixes.push(["Accuracy", base_accuracy_bonus]); } } }//package
Section 165
//iPlateGreaves (iPlateGreaves) package { public class iPlateGreaves extends HeavyArmor { public function iPlateGreaves(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_level = _arg1; item_name = "Plate Greaves"; icon_frame = 18; slot = Equipment.legs; modifyBaseArmorForSlot(); grey_name = "Battered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Stalwart Guardian's Greaves"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.2)))); setStrength(); setEndurance(); setHealthRegen(); icon_frame = 112; } else { item_name = "Greaves of the Valiant Crusader"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setEndurance(); setPowerRegen(); icon_frame = 111; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 166
//iPlateHelmet (iPlateHelmet) package { public class iPlateHelmet extends HeavyArmor { public function iPlateHelmet(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Plate Helm"; item_level = _arg1; slot = Equipment.head; modifyBaseArmorForSlot(); icon_frame = 2; grey_name = "Dented"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Stalwart Guardian's Helm"; base_armor_rating = Math.round((base_armor_rating * Math.round((purple_armor_multiplier * 1.2)))); setStrength(); setEndurance(); setHealthRegen(); icon_frame = 106; } else { item_name = "Helm of the Valiant Crusader"; base_armor_rating = Math.round((base_armor_rating * purple_armor_multiplier)); setIntellect(); setEndurance(); setPowerRegen(); icon_frame = 105; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 167
//iQuiver (iQuiver) package { public class iQuiver extends Armor { public function iQuiver(_arg1:int=1, _arg2:int=-1){ type = Armor.special; setQuickness(10, 15); whoEquips = Equipment.rangerEquip; base_armor_rating = 0; materials.length = 0; SetRarity(_arg2); item_level = _arg1; item_name = "Quiver"; icon_frame = 64; slot = Equipment.back; grey_name = "Tattered"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 1; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Basilisk-hide Quiver"; setDexterity(2, max_stat_for_purple); setQuickness(5, 10); setStunChance(5, 10); icon_frame = 65; }; } override public function getItemTypeString(){ return ("Quiver"); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Staggering", 10]); prefixes.push(["Unerring", base_accuracy_bonus]); prefixes.push(["Venomous", 5]); prefixes.push(["Blinding", 10]); prefixes.push(["Vampiric", 10]); suffixes.push(["Lethality", 1]); } } }//package
Section 168
//iRing (iRing) package { public class iRing extends Jewellery { public function iRing(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Ring"; slot = ring; item_level = _arg1; grey_name = "Tarnished"; whoEquips = Equipment.allEquip; if (item_rarity == Item.orange){ return; }; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); if (item_rarity != Item.purple){ if (materials[material] == "Gold"){ icon_frame = 20; } else { if (materials[material] == "Silver"){ icon_frame = 21; } else { if (materials[material] == "Crystalline"){ icon_frame = 22; } else { if (materials[material] == "Obsidian"){ icon_frame = 23; } else { icon_frame = 21; }; }; }; }; }; } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Nature's Band"; setHealthRegen(); setPowerRegen(3, 5); setResistPoison(30, 40); icon_frame = 61; } else { item_name = "Bone Ring"; setVampiric(); setStrength(); setDexterity(); accuracyBonus = 5; icon_frame = 62; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ var _local2:*; _local2 = super.itemStatsString(_arg1); return (_local2); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Protective"){ base_armor_rating = prefixes[_local1][1]; return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Protective", 15]); prefixes.push(["Vampiric", 10]); } } }//package
Section 169
//iShieldBuckler (iShieldBuckler) package { public class iShieldBuckler extends Shield { public function iShieldBuckler(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Buckler"; slot = offhand; item_level = _arg1; whoEquips = (Equipment.allEquip - Equipment.mageEquip); base_armor_rating = 50; mod_quickness = -10; icon_frame = 26; grey_name = "Worn"; if (item_rarity == Item.purple){ statsForPurple(); } else { generateItem(_arg2); }; } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = dm.randomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Buckler of the Faded Legion"; base_armor_mod = 50; setHealthRegen(12); setEndurance(2, max_stat_for_purple); icon_frame = 73; } else { item_name = "Foe-Holder"; base_armor_mod = 75; quickRetreat = true; setStunChance(10, 20); icon_frame = 74; }; } } }//package
Section 170
//iShieldTower (iShieldTower) package { public class iShieldTower extends Shield { public function iShieldTower(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Tower Shield"; slot = offhand; item_level = _arg1; whoEquips = (Equipment.warriorEquip + Equipment.clericEquip); base_armor_rating = 100; mod_quickness = -20; icon_frame = 28; grey_name = "Dented"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Aegis of the Immortal Champion"; base_armor_rating = Math.round((base_armor_rating * 1.2)); setResistPoison(60, 80); setResistStun(60, 80); setEndurance(); icon_frame = 37; } else { item_name = "Retribution"; base_armor_rating = Math.round((base_armor_rating * 1.2)); setDamageReflection(20, 25); setStrength(2, max_stat_for_purple); setLethality(); icon_frame = 60; }; } } }//package
Section 171
//iSpear (iSpear) package { public class iSpear extends SteelEdgedWeapon { public function iSpear(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Spear"; slot = weapon; item_level = _arg1; whoEquips = (Equipment.warriorEquip + Equipment.rangerEquip); twoHanded = true; icon_frame = 49; base_damage = spear_base_damage; mod_quickness = (mod_quickness - 10); grey_name = "Bent"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1:*; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Wicked Barb"; base_damage_mod = 50; setAccuracy(); setPoisonDamage(); setLethality(6, 12); icon_frame = 50; } else { item_name = "Spear of the Fallen Emperor"; base_damage_mod = 40; setHealthRegen(); setPowerRegen(4, 6); setEndurance(2, max_stat_for_purple); icon_frame = 51; }; } override public function itemStatsString(_arg1:String):String{ var _local2:*; _local2 = super.itemStatsString(_arg1); _local2 = (_local2 + "\nSpecial(Spear): May make melee attacks past allies from the back row"); return (_local2); } } }//package
Section 172
//iStaff (iStaff) package { public class iStaff extends MageWeapon { public function iStaff(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Staff"; slot = weapon; item_level = _arg1; whoEquips = Equipment.mageEquip; twoHanded = true; icon_frame = 66; base_damage = staff_base_damage; grey_name = "Warped"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 2; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Archmage's Channeling Staff"; base_damage_mod = 50; setPowerRegen(5, 10); setResistStun(40, 60); icon_frame = 68; } else { item_name = "Luminescent Staff of the Enlightened Magus"; base_damage_mod = 50; setBlind(25, 35); setIntellect(2, max_stat_for_purple); icon_frame = 69; }; } } }//package
Section 173
//iSword (iSword) package { public class iSword extends SteelEdgedWeapon { public function iSword(_arg1:int=1, _arg2:int=-1){ SetRarity(_arg2); item_name = "Longsword"; slot = weapon; item_level = _arg1; whoEquips = (Equipment.allEquip - Equipment.clericEquip); icon_frame = 3; base_damage = sword_base_damage; grey_name = "Notched"; if (item_rarity == Item.purple){ statsForPurple(); }; generateItem(_arg2); } protected function statsForPurple(){ var _local1 = ??pushnamespace ; var _local2:*; _local1 = 3; _local2 = DungeonMain.RandomNum(1, _local1); this.purple_num = _local2; if (_local2 == 1){ item_name = "Death's Edge"; lore = "To even touch the blade is to risk death."; base_damage_mod = 60; setLethality(10, 20); icon_frame = 45; } else { if (_local2 == 2){ item_name = "Mageblade"; base_damage_mod = 40; setPowerRegen(4, 6); setIntellect(); icon_frame = 46; } else { item_name = "Orcsbane"; base_damage_mod = 50; setAccuracy(); setEndurance(2, max_stat_for_purple); damageBonusVsCreatureType = MonsterCharacter.greenskin; damageBonusVsCreatureModifier = 1.3; icon_frame = 59; }; }; } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Consecrated"){ whoEquips = (whoEquips + Equipment.clericEquip); return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Consecrated", 0]); } } }//package
Section 174
//Item (Item) package { public class Item { private var _icon_frame:int;// = 1 private var _lore:String;// = "" private var _item_rarity;// = 0 private var _purple_num:int;// = 0 private var _item_name:String;// = "Item" private var _item_level:int;// = 1 static const green = 2; static const white = 1; static const orange = 5; static const blue = 3; static const purple = 4; static const grey = 0; public function Item(){ _item_level = 1; _item_name = "Item"; _icon_frame = 1; _lore = ""; _item_rarity = 0; _purple_num = 0; super(); } public function get purple_num():int{ return (this._purple_num); } public function set purple_num(_arg1:int):void{ this._purple_num = _arg1; } public function set icon_frame(_arg1:int):void{ this._icon_frame = _arg1; } public function itemStatsString(_arg1:String):String{ return (_arg1); } public function getItemTypeString(){ return ("Item"); } public function get item_rarity():int{ return (this._item_rarity); } public function get item_level():int{ return (this._item_level); } public function itemData():ItemData{ var _local1:ItemData; _local1 = new ItemData(); _local1.item_level = this.item_level; _local1.item_rarity = this.item_rarity; _local1.purple_num = this.purple_num; return (_local1); } public function get icon_frame():int{ return (this._icon_frame); } public function set lore(_arg1:String):void{ this._lore = _arg1; } public function set item_name(_arg1:String):void{ this._item_name = _arg1; } public function get lore():String{ return (this._lore); } public function get item_name():String{ return (this._item_name); } public function set item_rarity(_arg1:int):void{ this._item_rarity = _arg1; } public function set item_level(_arg1:int):void{ this._item_level = _arg1; } } }//package
Section 175
//ItemData (ItemData) package { public class ItemData { private var _material:int;// = -1 private var _item_rarity;// = 0 private var _suffix:int;// = -1 private var _prefix:int;// = -1 private var _purple_num:int;// = 0 private var _item_level:int;// = 1 public function ItemData():void{ _item_level = 1; _item_rarity = 0; _material = -1; _prefix = -1; _suffix = -1; _purple_num = 0; super(); } public function get purple_num():int{ return (this._purple_num); } public function set purple_num(_arg1:int):void{ this._purple_num = _arg1; } public function set material(_arg1:int):void{ this._material = _arg1; } public function get suffix():int{ return (this._suffix); } public function get prefix():int{ return (this._prefix); } public function get item_rarity():int{ return (this._item_rarity); } public function get item_level():int{ return (this._item_level); } public function set prefix(_arg1:int):void{ this._prefix = _arg1; } public function get material():int{ return (this._material); } public function set suffix(_arg1:int):void{ this._suffix = _arg1; } public function set item_rarity(_arg1:int):void{ this._item_rarity = _arg1; } public function set item_level(_arg1:int):void{ this._item_level = _arg1; } } }//package
Section 176
//ItemDestroyTarget (ItemDestroyTarget) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.geom.*; public class ItemDestroyTarget extends MovieClip { var tooltip:Tooltip; function mouseOverTarget(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:Point; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.mouseX; _local3 = _arg1.target.mouseY; _local4 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); if ((_local4.x + tooltip.width) > DungeonMain.app_width){ _local2 = (_local2 + (DungeonMain.app_width - (_local4.x + tooltip.width))); }; if ((_local4.y + tooltip.height) > DungeonMain.app_height){ _local3 = (_local3 + (DungeonMain.app_height - (_local4.y + tooltip.height))); }; tooltip.x = _local2; tooltip.y = _local3; _arg1.updateAfterEvent(); } private function newTooltip():Boolean{ var _local1:*; var _local2:*; _local1 = "Discard Item"; _local2 = "Drag an item here to discard it, or click on the item icon while holding the CTRL key."; tooltip = new Tooltip(_local1, _local2); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip_destroy"; addChild(tooltip); return (true); } function mouseMoveTarget(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; var _local4:Point; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.mouseX; _local3 = _arg1.target.mouseY; _local4 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); if ((_local4.x + tooltip.width) > DungeonMain.app_width){ _local2 = (_local2 + (DungeonMain.app_width - (_local4.x + tooltip.width))); }; if ((_local4.y + tooltip.height) > DungeonMain.app_height){ _local3 = (_local3 + (DungeonMain.app_height - (_local4.y + tooltip.height))); }; tooltip.x = _local2; tooltip.y = _local3; _arg1.updateAfterEvent(); } function mouseOutTarget(_arg1:MouseEvent):void{ if (tooltip != null){ removeChild(tooltip); tooltip = null; }; } } }//package
Section 177
//ItemTooltip (ItemTooltip) package { import flash.text.*; import flash.display.*; public class ItemTooltip extends Sprite { const red_text = 0xCC0000; const white_text = 0xFFFFFF; const orange_text = 0xFF6600; const grey_text = 0xCCCCCC; const purple_text = 0x9900FF; const green_text = 0x66FF00; const blue_text = 26367; public var tooltip_bg:ItemTooltipBg; public var stats_label:TextField; public var name_label:TextField; var item_ref:Item; public var level_label:TextField; public var equipped_text:MovieClip; public var type_label:TextField; public var usable_label:TextField; public function ItemTooltip(_arg1:Item=null, _arg2:PlayerCharacter=null, _arg3:Boolean=false){ var _local4:*; var _local5:String; super(); if (_arg1 == null){ return; }; if (!_arg3){ removeChild(equipped_text); }; item_ref = _arg1; name_label.autoSize = TextFieldAutoSize.CENTER; name_label.text = Item(item_ref).item_name; dm.embolden(name_label); _local4 = name_label.height; name_label.autoSize = TextFieldAutoSize.NONE; if (_local4 == 16){ name_label.height = (_local4 + 5); } else { name_label.height = (_local4 + 2); }; setTextColor(); level_label.y = ((name_label.y + name_label.height) + 2); type_label.y = ((name_label.y + name_label.height) + 2); if (item_ref.item_level){ level_label.text = ("Level " + String(item_ref.item_level)); } else { if ((item_ref is Consumable)){ level_label.text = ("Stack: " + String(Consumable(item_ref).stack)); } else { removeChild(level_label); }; }; type_label.text = item_ref.getItemTypeString(); _local5 = ""; if (item_ref.lore != ""){ _local5 = (("\"" + item_ref.lore) + "\"\n\n"); }; _local5 = (_local5 + item_ref.itemStatsString("")); stats_label.text = _local5; stats_label.autoSize = TextFieldAutoSize.CENTER; stats_label.y = ((type_label.y + type_label.height) + 8); if ((item_ref is Equipment)){ usable_label.text = Equipment(item_ref).usableString(); } else { usable_label.text = ""; }; usable_label.autoSize = TextFieldAutoSize.CENTER; usable_label.y = ((stats_label.y + stats_label.height) + 8); if (_arg2 != null){ if (_arg2.itemUsable(item_ref)){ usable_label.textColor = white_text; } else { usable_label.textColor = red_text; }; }; tooltip_bg.height = ((usable_label.y + usable_label.height) + 12); } public function setTextColor(){ var _local1:Item; _local1 = item_ref; if (_local1.item_rarity == Item.white){ name_label.textColor = white_text; } else { if (_local1.item_rarity == Item.green){ name_label.textColor = green_text; } else { if (_local1.item_rarity == Item.blue){ name_label.textColor = blue_text; } else { if (_local1.item_rarity == Item.purple){ name_label.textColor = purple_text; } else { if (_local1.item_rarity == Item.orange){ name_label.textColor = orange_text; } else { name_label.textColor = grey_text; }; }; }; }; }; } } }//package
Section 178
//ItemTooltipBg (ItemTooltipBg) package { import flash.display.*; public dynamic class ItemTooltipBg extends Sprite { } }//package
Section 179
//ItemTooltipController (ItemTooltipController) package { import flash.events.*; import flash.display.*; import flash.geom.*; public class ItemTooltipController { var tooltip:ItemTooltip; var c_tooltip:ItemTooltip; private var char_ref:PlayerCharacter; var stage:Stage; public function ItemTooltipController():void{ } public function destroyTooltip():void{ if (tooltip != null){ if (this.stage != null){ stage.removeChild(tooltip); }; tooltip = null; }; if (c_tooltip != null){ if (this.stage != null){ stage.removeChild(c_tooltip); }; c_tooltip = null; }; } public function showTooltip(_arg1:MouseEvent, _arg2:Item):void{ var _local3:*; var _local4:*; var _local5:Point; if (((!((_arg1 == null))) && (_arg1.buttonDown))){ return; }; if (_arg2 == null){ return; }; if (tooltip == null){ if (((!((char_ref == null))) && ((_arg2 is Equipment)))){ if (((((!((char_ref.gear[Equipment(_arg2).slot] == null))) && (!((char_ref.gear[Equipment(_arg2).slot] == _arg2))))) && (char_ref.itemUsable(_arg2)))){ c_tooltip = new ItemTooltip(char_ref.gear[Equipment(_arg2).slot], char_ref, true); c_tooltip.mouseEnabled = false; c_tooltip.mouseChildren = false; c_tooltip.name = "c_tooltip"; if (this.stage != null){ stage.addChild(c_tooltip); }; }; }; tooltip = new ItemTooltip(_arg2, char_ref, false); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip"; if (this.stage != null){ stage.addChild(tooltip); }; }; _local5 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); if ((_local5.x + tooltip.width) > DungeonMain.app_width){ _local3 = (DungeonMain.app_width - tooltip.width); } else { _local3 = _local5.x; }; if ((_local5.y + tooltip.height) > DungeonMain.app_height){ _local4 = (DungeonMain.app_height - tooltip.height); } else { _local4 = _local5.y; }; tooltip.x = Math.round(_local3); tooltip.y = Math.round(_local4); if (c_tooltip != null){ c_tooltip.x = _local3; c_tooltip.y = (_local4 - c_tooltip.height); }; _arg1.updateAfterEvent(); } public function setChar(_arg1:PlayerCharacter){ this.char_ref = _arg1; } public function enableDoubleClick(_arg1:InventoryIcon, _arg2:Function):void{ if (tooltip == null){ return; }; tooltip.doubleClickEnabled = true; tooltip.addEventListener(MouseEvent.DOUBLE_CLICK, _arg2, false, 0, true); } public function removeTooltip(_arg1:MouseEvent, _arg2:Item){ if (tooltip != null){ if (tooltip.item_ref == _arg2){ destroyTooltip(); }; }; } } }//package
Section 180
//Jewellery (Jewellery) package { public class Jewellery extends Equipment { public function Jewellery(){ whoEquips = Equipment.allEquip; grey_name = "Tarnished"; materials.push("Silver", "Gold", "Platinum", "Obsidian", "Crystalline"); base_armor_rating = 0; grey_chance = 0; white_chance = 0; green_chance = 70; blue_chance = 29; purple_chance = 1; } override public function generateItem(_arg1:int):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = false; if (item_rarity == Item.green){ if (DungeonMain.RandomNum(0, 100) >= 50){ _local3 = true; } else { _local2 = true; }; }; getItemModifiers(); if ((((item_rarity == Item.blue)) || (_local3))){ prefix = rollForPrefix(item_rarity); }; if ((((item_rarity == Item.blue)) || (_local2))){ suffix = rollForSuffix(item_rarity); }; if (prefix >= 0){ applyPrefix(); }; if (suffix >= 0){ applySuffix(); }; if (base_armor_rating){ armor_rating = scaleArmorForLevel((base_armor_rating * (1 + (base_armor_mod / 100)))); }; material = rollForMaterial(item_rarity, materials); if (material >= 0){ item_name = ((materials[material] + " ") + item_name); }; if (prefix >= 0){ item_name = ((prefixes[prefix][0] + " ") + item_name); }; if (suffix >= 0){ item_name = ((item_name + " of ") + suffixes[suffix][0]); }; if (item_rarity == Item.grey){ item_name = ((grey_name + " ") + item_name); }; } override public function getItemTypeString(){ return ("Jewellery"); } override public function itemStatsString(_arg1:String):String{ if (armor_rating){ _arg1 = (String(armor_rating) + " Armor Rating\n"); }; return (super.itemStatsString(_arg1)); } } }//package
Section 181
//KeepButton (KeepButton) package { import flash.display.*; public dynamic class KeepButton extends MovieClip { } }//package
Section 182
//lethal_effect (lethal_effect) package { import flash.display.*; public dynamic class lethal_effect extends MovieClip { public function lethal_effect(){ addFrameScript(44, frame45); } function frame45(){ this.stop(); } } }//package
Section 183
//LevelButton (LevelButton) package { import flash.display.*; public dynamic class LevelButton extends MovieClip { } }//package
Section 184
//LevelUpGlow (LevelUpGlow) package { import flash.display.*; public dynamic class LevelUpGlow extends MovieClip { } }//package
Section 185
//LightArmor (LightArmor) package { public class LightArmor extends Armor { public function LightArmor(){ type = Armor.light; mod_quickness = (mod_quickness - 0); whoEquips = Equipment.allEquip; base_armor_rating = 4; grey_name = "Threadbare"; materials.push("Linen", "Wool", "Velvet", "Silk", "Suncloth", "Aetherweave"); } override public function getItemTypeString(){ return ("Light Armor"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 186
//LightGreenBar (LightGreenBar) package { import flash.display.*; public dynamic class LightGreenBar extends Sprite { } }//package
Section 187
//Lightning (Lightning) package { import flash.display.*; public dynamic class Lightning extends MovieClip { public var flash:LightningFlash; public function Lightning(){ addFrameScript(0, frame1); } function frame1(){ dm.sound.play(SoundControl.lightning); } } }//package
Section 188
//lightning_sound (lightning_sound) package { import flash.media.*; public dynamic class lightning_sound extends Sound { } }//package
Section 189
//LightningFlash (LightningFlash) package { import flash.display.*; public dynamic class LightningFlash extends MovieClip { public var lightning:RandomLightning; public function LightningFlash(){ addFrameScript(3, frame4); } function frame4(){ this.stop(); } } }//package
Section 190
//LoadButton (LoadButton) package { import flash.display.*; public dynamic class LoadButton extends MovieClip { } }//package
Section 191
//LoaderClass (LoaderClass) package { import flash.events.*; import flash.display.*; import flash.text.*; import flash.external.*; import flash.net.*; public class LoaderClass extends MovieClip { public var bar:MovieClip; var loading:Boolean;// = false public var total_label:TextField; public var loaded_label:TextField; public var logo:SimpleButton; public var biclops:SimpleButton; public function LoaderClass(){ loading = false; super(); loading = true; stop(); addEventListener(Event.ENTER_FRAME, enterLoaderFrame); stage.showDefaultContextMenu = false; logo.addEventListener(MouseEvent.CLICK, logoClick); biclops.addEventListener(MouseEvent.CLICK, biclopsClick); } function enterLoaderFrame(_arg1:Event):void{ if (loading){ updateText(_arg1); } else { removeEventListener(Event.ENTER_FRAME, enterLoaderFrame); logo.removeEventListener(MouseEvent.CLICK, logoClick); biclops.removeEventListener(MouseEvent.CLICK, biclopsClick); this.gotoAndStop(3); }; } function logoClick(_arg1:MouseEvent):void{ var url:*; var e = _arg1; url = "http://www.maxgames.com"; try { ExternalInterface.call("window.open", url, "_blank", ""); } catch(error) { navigateToURL(new URLRequest(url), "_blank"); }; } private function updateText(_arg1:Event):void{ var _local2:*; var _local3:*; _local2 = stage.loaderInfo.bytesTotal; _local3 = stage.loaderInfo.bytesLoaded; loaded_label.text = (String(Math.round((_local3 / 0x0400))) + "kB"); total_label.text = (String(Math.round((_local2 / 0x0400))) + "kB"); bar.width = (2 * Math.round(((_local3 / _local2) * 100))); if (_local3 == _local2){ loading = false; }; } function biclopsClick(_arg1:MouseEvent):void{ var url:*; var e = _arg1; url = "http://www.biclopsgames.com"; try { ExternalInterface.call("window.open", url, "_blank", ""); } catch(error) { navigateToURL(new URLRequest(url), "_blank"); }; } } }//package
Section 192
//LoadParty (LoadParty) package { import flash.events.*; import flash.display.*; import flash.net.*; public class LoadParty extends MovieClip { public var party1:SaveGameStatus; public var party3:SaveGameStatus; public var party2:SaveGameStatus; public var menu_btn:BackButton; public function LoadParty(){ DungeonMain.registerAliases(); party1.slot = 1; party2.slot = 2; party3.slot = 3; loadSlot(1); loadSlot(2); loadSlot(3); menu_btn.addEventListener(MouseEvent.MOUSE_DOWN, menuClick); addEventListener(Event.ADDED_TO_STAGE, added); } function added(_arg1:Event):void{ var _local2 = ??pushnamespace ; var _local3:*; removeEventListener(Event.ADDED_TO_STAGE, added); _local2 = 128; if (((DungeonMain.showHints) && (!(Dungeon.hintShown(_local2))))){ _local3 = new HintDialog("Saving", "Monsters' Den saves your progress automatically. You may quit at any time, and return to continue playing your game later.", true, true); DungeonMain.hints = (DungeonMain.hints + _local2); stage.addChild(_local3); dm.main.saveInterface(); }; } private function loadSlot(_arg1:int):void{ var _local2:SharedObject; var _local3:SaveGameStatus; var _local4:Party; if ((((_arg1 < 1)) || ((_arg1 > 3)))){ return; }; _local2 = SharedObject.getLocal(("party" + _arg1)); if (DungeonMain.debug){ }; _local3 = SaveGameStatus(getChildByName(("party" + _arg1))); if (_local2.size > 0){ _local4 = Party(_local2.data.pc_party); if (_local4 == null){ _local3.emptySlot(); return; }; if (_local2.data.char1 != null){ _local4.members[0] = _local2.data.char1; }; if (_local2.data.char2 != null){ _local4.members[1] = _local2.data.char2; }; if (_local2.data.char3 != null){ _local4.members[2] = _local2.data.char3; }; if (_local2.data.char4 != null){ _local4.members[3] = _local2.data.char4; }; if (_local3 != null){ _local3.setParty(_local4, _local2.data.battle); }; } else { _local3.emptySlot(); }; } public function deleteSlot(_arg1:int):void{ var _local2:SharedObject; var _local3:SaveGameStatus; if ((((_arg1 < 1)) || ((_arg1 >= 4)))){ return; }; _local2 = SharedObject.getLocal(("party" + _arg1)); if (DungeonMain.debug){ }; _local2.clear(); _local2.flush(); _local3 = SaveGameStatus(getChildByName(("party" + _arg1))); if (_local3 != null){ _local3.emptySlot(); }; } public function menuClick(_arg1:MouseEvent):void{ if (root != null){ dm.main.mainMenu(); cleanup(); dm.main.removeChild(this); }; } public function cleanup():void{ menu_btn.removeEventListener(MouseEvent.MOUSE_DOWN, menuClick); party1.cleanup(); party2.cleanup(); party3.cleanup(); } public function newGame(_arg1:int):void{ if (parent != null){ DungeonMain(parent).startGame(_arg1); cleanup(); parent.removeChild(this); }; } } }//package
Section 193
//lose_power_effect (lose_power_effect) package { import flash.display.*; public dynamic class lose_power_effect extends MovieClip { } }//package
Section 194
//mAetherguard (mAetherguard) package { public class mAetherguard extends MonsterCharacter { public function mAetherguard(_arg1:int=1){ super(_arg1); type = MonsterCharacter.special; classname = "Planar Entity"; ethereal = 20; charname = "Aetherguard"; portrait = CharGraphic.aetherguard; mindless = true; description = "Slightly resistant to physical damage."; quickness = 50; health_max = Math.round((health_max * 1.2)); health = health_max; damage = Math.round((damage * 1.4)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sAetherLightning(this)); } } }//package
Section 195
//mage_staff_sound (mage_staff_sound) package { import flash.media.*; public dynamic class mage_staff_sound extends Sound { } }//package
Section 196
//MageWeapon (MageWeapon) package { public class MageWeapon extends Weapon { public function MageWeapon(){ materials.push("Elm", "Oak", "Ash", "Yew", "Voidwood", "Planespine"); whoEquips = Equipment.mageEquip; } override public function getItemTypeString(){ return ("Mage Weapon"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 197
//mArachnoid (mArachnoid) package { public class mArachnoid extends MonsterCharacter { public function mArachnoid(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; charname = "Arachnoid"; portrait = CharGraphic.arachnoid; mindless = true; description = "Twisted fusion of man and spider. Tangles its enemies in webbing."; poisonResist = 25; quickness = 45; damage_resistance = 0; regenerate = 0; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sArachnoidWeb(this)); } } }//package
Section 198
//mAscendant (mAscendant) package { public class mAscendant extends MonsterCharacter { public function mAscendant(_arg1:int=1){ super(_arg1); type = MonsterCharacter.special; power_per_turn = Math.round((power_per_turn * 1.5)); regenerate = 10; charname = Horde.getBeholderName(); classname = "Ascended Human"; portrait = CharGraphic.ascendant; mindless = false; description = "Cult Leader. Defensive spellcaster. Regenerates."; accuracy = 150; damage_resistance = 0; poisonResist = 75; stunResist = 75; quickness = 50; lethalityImmune = true; damage = Math.round((damage * 1.2)); health_max = Math.round((health_max * 1.45)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sAscendantRanged(this)); skills.push(new sCelestialArmor(this)); skills.push(new sCelestialSpeed(this)); skills.push(new sCelestialAccuracy(this)); } } }//package
Section 199
//MaxGamesHudButton (MaxGamesHudButton) package { import flash.display.*; public dynamic class MaxGamesHudButton extends SimpleButton { } }//package
Section 200
//MaxGamesIntro (MaxGamesIntro) package { import flash.display.*; public dynamic class MaxGamesIntro extends MovieClip { public var link_btn:SimpleButton; public function MaxGamesIntro(){ addFrameScript(240, frame241); } function frame241(){ this.stop(); if (((!((parent == null))) && ((parent is DungeonMain)))){ DungeonMain(parent).init(); }; } } }//package
Section 201
//mBasilisk (mBasilisk) package { public class mBasilisk extends MonsterCharacter { public function mBasilisk(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; classname = "Creature"; charname = "Basilisk"; portrait = CharGraphic.basilisk; mindless = true; description = "Stuns with attacks."; quickness = 30; damage_resistance = 0; causes_stun_percent = 30; regenerate = 0; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 0.8)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sBasiliskPetrify(this)); } } }//package
Section 202
//mBeholder (mBeholder) package { public class mBeholder extends MonsterCharacter { public function mBeholder(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; charname = Horde.getBeholderName(); classname = "Beholder"; portrait = CharGraphic.beholder; mindless = false; description = "Creature Leader. Powerful spellcaster. Ignores armor."; accuracy = 150; damage_resistance = 0; poisonResist = 30; stunResist = 50; quickness = 40; lethalityImmune = true; damage = Math.round((damage * 1.5)); health_max = Math.round((health_max * 1.25)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sBeholderRanged(this)); skills.push(new sBeholderDrain(this)); skills.push(new sBeholderRecover(this)); } } }//package
Section 203
//mBoneHorror (mBoneHorror) package { public class mBoneHorror extends MonsterCharacter { public function mBoneHorror(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Bone Horror"; portrait = CharGraphic.bone_horror; mindless = true; description = "Undead. Lumbering, jagged monstrosity of bone. Reflects damage."; damage_reflection = 10; quickness = 20; health_max = Math.round((health_max * 1.3)); health = health_max; damage = Math.round((damage * 1.4)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); } } }//package
Section 204
//mCultArcher (mCultArcher) package { public class mCultArcher extends MonsterCharacter { public function mCultArcher(_arg1:int=1){ super(_arg1); type = MonsterCharacter.human; classname = "Human"; power_per_turn = Math.round((power_per_turn * 1.5)); charname = "Protector"; portrait = CharGraphic.cult_archer; mindless = true; description = "Armored. Ranged attack."; quickness = 60; damage_resistance = 20; health_max = Math.round((health_max * 0.9)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterRangedAttack(this)); skills.push(new sCultistArrow(this)); } } }//package
Section 205
//mCultChosen (mCultChosen) package { public class mCultChosen extends MonsterCharacter { public function mCultChosen(_arg1:int=1){ super(_arg1); type = MonsterCharacter.human; classname = "Human"; power_per_turn = Math.round((power_per_turn * 1.5)); charname = "Chosen"; portrait = CharGraphic.cult_chosen; mindless = true; description = "Armored. Warrior/Spellcaster."; quickness = 40; damage_resistance = 20; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1.2)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sCultistMeleeStun(this)); skills.push(new sCultistSever(this)); } } }//package
Section 206
//mCultEngine (mCultEngine) package { public class mCultEngine extends MonsterCharacter { public function mCultEngine(_arg1:int=1){ super(_arg1); type = MonsterCharacter.special; power_per_turn = Math.round((power_per_turn * 1.5)); charname = Horde.getEngineName(); classname = "Nexus Engine"; portrait = CharGraphic.cult_engine; mindless = false; description = "Sacred Icon. Gathers and stores planar energy."; accuracy = 120; damage_resistance = 35; poisonResist = 100; stunResist = 60; quickness = 10; lethalityImmune = true; damage = Math.round((damage * 1.75)); health_max = Math.round((health_max * 1.4)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterMeleeAE(this)); skills.push(new sEngineConduit(this)); skills.push(new sVoidCannon(this)); } } }//package
Section 207
//mCultNeophyte (mCultNeophyte) package { public class mCultNeophyte extends MonsterCharacter { public function mCultNeophyte(_arg1:int=1){ super(_arg1); type = MonsterCharacter.human; classname = "Human"; power_per_turn = Math.round((power_per_turn * 1.5)); charname = "Neophyte"; portrait = CharGraphic.cult_neophyte; mindless = false; description = "Sacrifice themselves to summon more powerful allies."; quickness = 35; health_max = Math.round((health_max * 0.8)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sTransformAetherguard(this)); } } }//package
Section 208
//mCultPriest (mCultPriest) package { public class mCultPriest extends MonsterCharacter { public function mCultPriest(_arg1:int=1){ super(_arg1); type = MonsterCharacter.human; classname = "Human"; power_per_turn = Math.round((power_per_turn * 1.5)); charname = "Acolyte"; portrait = CharGraphic.cult_priest; mindless = false; description = "Spellcaster. Summons planar entities."; quickness = 35; health_max = Math.round((health_max * 0.8)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterMagicAttack(this)); skills.push(new sCultistHeal(this)); skills.push(new sSummonVoidstalker(this)); } } }//package
Section 209
//mCultWarrior (mCultWarrior) package { public class mCultWarrior extends MonsterCharacter { public function mCultWarrior(_arg1:int=1){ super(_arg1); type = MonsterCharacter.human; classname = "Human"; power_per_turn = Math.round((power_per_turn * 1.5)); charname = "Guardian"; portrait = CharGraphic.cult_warrior; mindless = true; description = "Armored."; quickness = 45; damage_resistance = 20; health_max = Math.round((health_max * 0.9)); health = health_max; damage = Math.round((damage * 0.9)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sCultistMeleeStun(this)); } } }//package
Section 210
//mDeathKnight (mDeathKnight) package { public class mDeathKnight extends MonsterCharacter { public function mDeathKnight(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; poisonResist = 50; charname = Horde.getKnightName(); classname = "Fallen Knight"; portrait = CharGraphic.death_knight; mindless = false; description = "Undead Leader. Powerful warrior."; accuracy = 140; damage_resistance = 30; poisonResist = 50; stunResist = 50; quickness = 40; lethalityImmune = true; damage = Math.round((damage * 1.75)); health_max = Math.round((health_max * 1.5)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterMeleeAE(this)); skills.push(new sDeathKnightRally(this)); } } }//package
Section 211
//mDemon (mDemon) package { public class mDemon extends MonsterCharacter { public function mDemon(_arg1:int=1){ super(_arg1); charname = "The Corruptor"; classname = "Demon"; type = MonsterCharacter.special; portrait = CharGraphic.demon; mindless = false; description = "Dungeon Lord. Source of the danger to this world."; accuracy = 140; damage_resistance = 20; poisonResist = 50; stunResist = 75; power_per_turn = 20; quickness = 50; lethalityImmune = true; damage = Math.round((damage * 1.5)); health_max = Math.round((health_max * 2.5)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sDemonDoubleAttack(this)); skills.push(new sDemonPoison(this)); skills.push(new sDemonClone(this)); } } }//package
Section 212
//mDragon (mDragon) package { public class mDragon extends MonsterCharacter { public function mDragon(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; classname = "Dragon"; charname = Horde.getDragonName(); portrait = CharGraphic.dragon; mindless = false; description = "Creature Leader. Attacks multiple enemies."; accuracy = 140; damage_resistance = 20; poisonResist = 0; stunResist = 50; quickness = 25; lethalityImmune = true; damage = Math.round((damage * 1.8)); health_max = Math.round((health_max * 1.6)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sDragonFlame(this)); skills.push(new sDragonTail(this)); } } }//package
Section 213
//MediumArmor (MediumArmor) package { public class MediumArmor extends Armor { public function MediumArmor(){ type = Armor.medium; mod_quickness = (mod_quickness - 1); whoEquips = (Equipment.allEquip - Equipment.mageEquip); base_armor_rating = 10; grey_name = "Patched"; materials.push("Leather", "Studded", "Scaled", "Trollhide", "Symbiotic", "Shiftsteel"); } override public function getItemTypeString(){ return ("Medium Armor"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function itemStatsString(_arg1:String):String{ return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 214
//MeleeWeapon (MeleeWeapon) package { public class MeleeWeapon extends Weapon { public function MeleeWeapon(){ materials.push("Iron", "Steel", "Damascene", "Mithril", "Magesteel", "Planeforged"); } override public function getItemTypeString(){ return ("Melee Weapon"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); } } }//package
Section 215
//MenuButton (MenuButton) package { import flash.display.*; public dynamic class MenuButton extends MovieClip { } }//package
Section 216
//mGargoyle (mGargoyle) package { public class mGargoyle extends MonsterCharacter { public function mGargoyle(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; classname = "Creature"; type = MonsterCharacter.creature; charname = "Gargoyle"; portrait = CharGraphic.gargoyle; mindless = true; description = "Flying creature. Highly resistant to damage."; quickness = 60; damage_resistance = 80; poisonResist = 100; regenerate = 0; health_max = Math.round((health_max * 0.2)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sMonsterFlightAttack(this)); skills.push(new sMonsterStoneForm(this)); } } }//package
Section 217
//mGhost (mGhost) package { public class mGhost extends MonsterCharacter { public function mGhost(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 100; stunResist = 100; ethereal = 80; charname = "Wraith"; portrait = CharGraphic.ghost; mindless = true; description = "Highly resistant to physical attacks. Ignores armor."; quickness = 60; health_max = Math.round((health_max * 0.3)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sGhostAttack(this)); skills.push(new sGhostTouch(this)); skills.push(new sGhostHide(this)); } } }//package
Section 218
//mGoblinArtificer (mGoblinArtificer) package { public class mGoblinArtificer extends MonsterCharacter { public function mGoblinArtificer(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Goblin Artificer"; portrait = CharGraphic.goblin; mindless = true; description = "Ranged explosive attack. Hated by their kin."; quickness = 60; accuracy = 95; health_max = Math.round((health_max * 0.8)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sGoblinCrossbow(this)); skills.push(new sGoblinGrenade(this)); } } }//package
Section 219
//mGreebler (mGreebler) package { public class mGreebler extends MonsterCharacter { public function mGreebler(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; classname = "Creature"; charname = "Greebler"; portrait = CharGraphic.greebler; description = "Poisonous claws. Can attack at range."; quickness = 65; health_max = Math.round((health_max * 0.8)); health = health_max; damage = Math.round((damage * 0.8)); poison_damage = Math.round((damage * 0.2)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sMonsterShadowStrike(this)); } } }//package
Section 220
//miss_magic_sound (miss_magic_sound) package { import flash.media.*; public dynamic class miss_magic_sound extends Sound { } }//package
Section 221
//miss_melee_sound (miss_melee_sound) package { import flash.media.*; public dynamic class miss_melee_sound extends Sound { } }//package
Section 222
//miss_ranged_sound (miss_ranged_sound) package { import flash.media.*; public dynamic class miss_ranged_sound extends Sound { } }//package
Section 223
//miss_thrown_sound (miss_thrown_sound) package { import flash.media.*; public dynamic class miss_thrown_sound extends Sound { } }//package
Section 224
//mLich (mLich) package { public class mLich extends MonsterCharacter { public function mLich(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Lich"; portrait = CharGraphic.lich; mindless = false; description = "Undead. Spellcaster."; quickness = 35; health_max = Math.round((health_max * 0.8)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterMagicCold(this)); skills.push(new sLichStun(this)); skills.push(new sLichAE(this)); } } }//package
Section 225
//mLightningDrake (mLightningDrake) package { public class mLightningDrake extends MonsterCharacter { public function mLightningDrake(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; charname = "Storm Drake"; portrait = CharGraphic.lightning_drake; mindless = true; description = "Flying creature. Has lightning attack."; quickness = 55; damage_resistance = 0; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1.1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sMonsterFlightAttack(this)); skills.push(new sLightningDrakeAE(this)); } } }//package
Section 226
//mNecromancer (mNecromancer) package { public class mNecromancer extends MonsterCharacter { public function mNecromancer(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; charname = Horde.getNecromancerName(); classname = "Arch-Lich"; portrait = CharGraphic.necromancer; mindless = false; description = "Undead Leader. Powerful spellcaster."; accuracy = 150; damage_resistance = 10; poisonResist = 50; stunResist = 30; quickness = 35; lethalityImmune = true; damage = Math.round((damage * 2)); health_max = Math.round((health_max * 1.8)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterMagicCold(this)); skills.push(new sNecroDrain(this)); skills.push(new sNecroSponge(this)); } } }//package
Section 227
//monster_arrow (monster_arrow) package { import flash.display.*; public dynamic class monster_arrow extends MovieClip { public var blood:BloodRandom; public var spark:monster_arrow_impact; public function monster_arrow(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterArrow); this.spark.x = dm.randomNum(15, 43); this.spark.y = dm.randomNum(15, 43); } function frame45(){ this.stop(); } } }//package
Section 228
//monster_arrow_drainpower (monster_arrow_drainpower) package { import flash.display.*; public dynamic class monster_arrow_drainpower extends MovieClip { public var blood:BloodRandom; public var spark:monster_arrow_impact; public function monster_arrow_drainpower(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterArrow); this.spark.x = dm.randomNum(15, 43); this.spark.y = dm.randomNum(15, 43); } function frame45(){ this.stop(); } } }//package
Section 229
//monster_arrow_impact (monster_arrow_impact) package { import flash.display.*; public dynamic class monster_arrow_impact extends MovieClip { public var hit:MovieClip; public function monster_arrow_impact(){ addFrameScript(11, frame12); } function frame12(){ this.gotoAndStop(12); } } }//package
Section 230
//monster_drain_effect (monster_drain_effect) package { import flash.display.*; public dynamic class monster_drain_effect extends MovieClip { public function monster_drain_effect(){ addFrameScript(44, frame45); } function frame45(){ this.stop(); } } }//package
Section 231
//monster_magic_attack (monster_magic_attack) package { import flash.display.*; public dynamic class monster_magic_attack extends MovieClip { public function monster_magic_attack(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.monsterMagicAttack); } function frame45(){ this.stop(); } } }//package
Section 232
//monster_magic_sound (monster_magic_sound) package { import flash.media.*; public dynamic class monster_magic_sound extends Sound { } }//package
Section 233
//monster_thrown (monster_thrown) package { import flash.display.*; public dynamic class monster_thrown extends MovieClip { public var blood:BloodRandom; public var spark:monster_arrow_impact; public function monster_thrown(){ addFrameScript(0, frame1, 4, frame5, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.thrown); } function frame5(){ this.spark.x = dm.randomNum(15, 43); this.spark.y = dm.randomNum(15, 43); } function frame45(){ this.stop(); } } }//package
Section 234
//MonsterCharacter (MonsterCharacter) package { public class MonsterCharacter extends Character { private var _vampiric_percent:int;// = 0 private var _causes_stun_percent:int;// = 0 private var _accuracy_damage:int;// = 0 private var _regenerate:int;// = 0 private var _mindless:Boolean;// = true private var _damage_reflection:int;// = 0 private var _damage_resistance:int;// = 0 private var _poison_damage:int;// = 0 private var _ethereal:int;// = 0 static const greenskin = 2; static const BASE_DAMAGE = 20; static const DAMAGE_SCALE_RATE = 38; static const human = 4; static const BASE_HEALTH = 100; static const HEALTH_SCALE_RATE = 60; static const special = 5; static const undead = 1; static const creature = 3; public function MonsterCharacter(_arg1:int=1){ _regenerate = 0; _mindless = true; _damage_resistance = 0; _ethereal = 0; _vampiric_percent = 0; _causes_stun_percent = 0; _damage_reflection = 0; _accuracy_damage = 0; _poison_damage = 0; super(); this.level = _arg1; classname = "Monster"; health_max = getHealthMax(_arg1); damage = getBaseDamage(_arg1); } override public function getHealthRegen(_arg1:Boolean=true):int{ var _local2:*; _local2 = Math.round(((regenerate / 100) * health_max)); if (_arg1){ _local2 = (_local2 + buff_healthRegen); }; return (_local2); } public function set poison_damage(_arg1:int):void{ this._poison_damage = _arg1; } override public function getPoisonDamage(_arg1:Boolean=true):int{ return (poison_damage); } public function get damage_resistance():int{ return (this._damage_resistance); } override public function getVampiric(_arg1:Boolean=true):int{ if (_arg1){ return ((vampiric_percent + buff_vampiric)); }; return (vampiric_percent); } public function set damage_resistance(_arg1:int):void{ this._damage_resistance = _arg1; } public function set ethereal(_arg1:int):void{ this._ethereal = _arg1; } public function set damage_reflection(_arg1:int):void{ this._damage_reflection = _arg1; } public function set vampiric_percent(_arg1:int):void{ this._vampiric_percent = _arg1; } public function set regenerate(_arg1:int):void{ this._regenerate = _arg1; } public function get accuracy_damage():int{ return (this._accuracy_damage); } override public function getDamageReflection(_arg1:Boolean=true):int{ if (_arg1){ return ((damage_reflection + buff_damageReflect)); }; return (damage_reflection); } public function resetSkills():void{ var _local1:*; _local1 = 0; while (_local1 < skills.length) { skills[_local1].aiCastCount = 0; _local1++; }; } public function set causes_stun_percent(_arg1:int):void{ this._causes_stun_percent = _arg1; } public function get poison_damage():int{ return (this._poison_damage); } override public function damageAfterArmor(_arg1:int):int{ var _local2:*; _local2 = (damage_resistance + buff_damageResist); if (_local2 >= 100){ _local2 = 99; }; if (_local2 != 0){ _arg1 = (_arg1 * (1 - (_local2 / 100))); }; if (_arg1 == 0){ _arg1 = 1; }; return (_arg1); } public function get ethereal():int{ return (this._ethereal); } override public function getStunChance(_arg1:Boolean=true):int{ if (_arg1){ return ((causes_stun_percent + buff_stun)); }; return (causes_stun_percent); } public function get vampiric_percent():int{ return (this._vampiric_percent); } public function initSkills():void{ } public function isSummoned():Boolean{ return (false); } override public function getEffectiveHealth():int{ var _local1:*; var _local2:*; _local1 = ((100 - getDamageResist()) / 100); _local2 = Math.round((health / _local1)); return (_local2); } override public function getDamageResist(_arg1:Boolean=true):int{ if (_arg1){ return (Math.min(99, ((damage_resistance + buff_damageResist) + temp_damage_resistance))); }; return (Math.min(99, damage_resistance)); } public function get causes_stun_percent():int{ return (this._causes_stun_percent); } override public function getAccuracyDamage(_arg1:Boolean=true):int{ return (accuracy_damage); } public function get regenerate():int{ return (this._regenerate); } public function set mindless(_arg1:Boolean):void{ this._mindless = _arg1; } public function set accuracy_damage(_arg1:int):void{ this._accuracy_damage = _arg1; } public function get mindless():Boolean{ return (this._mindless); } public function get damage_reflection():int{ return (this._damage_reflection); } public static function getHealthMax(_arg1:int):int{ var _local2:*; _local2 = (BASE_HEALTH + getHealthIncrease(_arg1)); if (_arg1 == 1){ _local2 = Math.round((_local2 * 0.7)); } else { if (_arg1 == 2){ _local2 = Math.round((_local2 * 0.9)); }; }; return (_local2); } public static function getBaseDamage(_arg1:int):int{ var _local2:*; _local2 = (BASE_DAMAGE + Math.round(((_arg1 - 1) * (BASE_DAMAGE * (DAMAGE_SCALE_RATE / 100))))); if (_arg1 == 1){ _local2 = Math.round((_local2 * 0.7)); } else { if (_arg1 == 2){ _local2 = Math.round((_local2 * 0.9)); }; }; return (_local2); } public static function getHealthIncrease(_arg1:int):int{ var _local2:*; _arg1--; _local2 = Math.round((_arg1 * (BASE_HEALTH * (HEALTH_SCALE_RATE / 100)))); if (_arg1){ _local2 = (_local2 + Math.round((_arg1 * (_arg1 / 8)))); }; return (_local2); } } }//package
Section 235
//mOrcBerserker (mOrcBerserker) package { public class mOrcBerserker extends MonsterCharacter { public function mOrcBerserker(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Orc Berserker"; portrait = CharGraphic.orc; mindless = true; description = "Attacks twice."; quickness = 60; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterDoubleAttack(this)); } } }//package
Section 236
//mOrcChampion (mOrcChampion) package { public class mOrcChampion extends MonsterCharacter { public function mOrcChampion(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Orc Champion"; portrait = CharGraphic.orc_champion; mindless = true; description = "Orcish elite."; quickness = 45; damage_resistance = 10; health_max = Math.round((health_max * 1.1)); health = health_max; damage = Math.round((damage * 1.1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sOrcSponge(this)); } } }//package
Section 237
//mOrcJuggernaut (mOrcJuggernaut) package { public class mOrcJuggernaut extends MonsterCharacter { public function mOrcJuggernaut(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; stunResist = 25; charname = Horde.getGreenskinName(); classname = "Half-Troll"; portrait = CharGraphic.orc_juggernaut; mindless = false; description = "Greenskin Leader. Slow, hulking warrior. Regenerates."; accuracy = 120; damage_resistance = 0; poisonResist = 50; stunResist = 75; quickness = 45; lethalityImmune = true; regenerate = 10; damage = Math.round((damage * 1.5)); health_max = Math.round((health_max * 1.6)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterDoubleAttack(this)); skills.push(new sTrollHowl(this)); } } }//package
Section 238
//mOrcSavage (mOrcSavage) package { public class mOrcSavage extends MonsterCharacter { public function mOrcSavage(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Orc Savage"; portrait = CharGraphic.orc_woman; mindless = true; description = "Strong ranged attack, but inaccurate."; quickness = 65; accuracy = 65; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1.1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sOrcAxeThrow(this)); skills.push(new sMonsterDoubleAttack(this)); } } }//package
Section 239
//mOrcShaman (mOrcShaman) package { public class mOrcShaman extends MonsterCharacter { public function mOrcShaman(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Orc Shaman"; portrait = CharGraphic.orc_shaman; mindless = false; description = "Spellcaster. Heals allies and curses enemies."; quickness = 35; health_max = Math.round((health_max * 0.9)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterHeal(this)); skills.push(new sMonsterCurse(this)); } } }//package
Section 240
//mOrcWarlord (mOrcWarlord) package { public class mOrcWarlord extends MonsterCharacter { public function mOrcWarlord(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; stunResist = 25; charname = Horde.getGreenskinName(); classname = "Orc Warlord"; portrait = CharGraphic.orc_warlord; mindless = false; description = "Greenskin Leader."; accuracy = 140; damage_resistance = 20; poisonResist = 25; stunResist = 75; quickness = 35; lethalityImmune = true; health_max = Math.round((health_max * 2)); health = health_max; damage = Math.round((damage * 1.8)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sWarlordRevive(this)); skills.push(new sWarlordFocus(this)); skills.push(new sWarlordBuff(this)); } } }//package
Section 241
//MovementArrowHead (MovementArrowHead) package { import flash.display.*; public dynamic class MovementArrowHead extends MovieClip { } }//package
Section 242
//mPoisonDrake (mPoisonDrake) package { public class mPoisonDrake extends MonsterCharacter { public function mPoisonDrake(_arg1:int=1){ super(_arg1); type = MonsterCharacter.creature; charname = "Poison Drake"; portrait = CharGraphic.poison_drake; mindless = true; description = "Spits poison."; quickness = 45; damage_resistance = 0; poisonResist = 100; health_max = Math.round((health_max * 1)); health = health_max; damage = Math.round((damage * 1)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sPoisonDrakeShot(this)); skills.push(new sPoisonDrakeAE(this)); } } }//package
Section 243
//mSkeleton (mSkeleton) package { public class mSkeleton extends MonsterCharacter { public function mSkeleton(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Skeleton"; portrait = CharGraphic.skeleton; mindless = true; description = "Undead. Fragile, but slowly mends."; quickness = 40; health_max = Math.round((health_max * 1)); health = health_max; damage_resistance = -10; regenerate = 6; stunResist = 0; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); } } }//package
Section 244
//mSkeletonArcher (mSkeletonArcher) package { public class mSkeletonArcher extends MonsterCharacter { public function mSkeletonArcher(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Undead Archer"; portrait = CharGraphic.skeleton_archer; mindless = true; description = "Undead. Ranged attack. Fragile, but slowly mends."; quickness = 50; health_max = Math.round((health_max * 1)); health = health_max; damage_resistance = -10; regenerate = 6; stunResist = 0; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterRangedAttack(this)); } } }//package
Section 245
//mTroll (mTroll) package { public class mTroll extends MonsterCharacter { public function mTroll(_arg1:int=1){ super(_arg1); type = MonsterCharacter.greenskin; classname = "Greenskin"; stunResist = 25; charname = "Troll"; portrait = CharGraphic.troll; mindless = true; description = "Regenerates health. Slow. Strong attack."; quickness = 20; accuracy = 80; damage_resistance = 0; regenerate = 15; health_max = Math.round((health_max * 1.2)); health = health_max; damage = Math.round((damage * 1.6)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttackWeapon(this)); skills.push(new sMonsterPierce(this)); } } }//package
Section 246
//Music (Music) package { import flash.events.*; import flash.media.*; import flash.utils.*; public class Music { const fade_out_time = 500; const fade_in_time = 1000; const sound_fade_steps = 25; var channel:SoundChannel; var active:Boolean;// = false var fadeStepCount;// = 0 static var volumeSetting = 0.5; public function Music(_arg1:Sound=null, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local4:*; fadeStepCount = 0; active = false; super(); if (_arg1 == null){ return; }; _local4 = 1; if (_arg2){ _local4 = 99999; }; active = true; channel = _arg1.play(0, _local4); if (_arg3){ this.fadeIn(); } else { this.setVolume(volumeSetting); }; } function musicFadeInDone(_arg1:TimerEvent):void{ channel.soundTransform = new SoundTransform(volumeSetting); } public function stop():void{ channel.stop(); active = false; } public function fadeOut(_arg1:int=1000):void{ var _local2:Timer; if (channel == null){ return; }; active = false; fadeStepCount = sound_fade_steps; channel.soundTransform = new SoundTransform(volumeSetting); _local2 = new Timer((_arg1 / sound_fade_steps), sound_fade_steps); _local2.addEventListener(TimerEvent.TIMER, musicFadeOutStep, false, 0, true); _local2.addEventListener(TimerEvent.TIMER_COMPLETE, musicFadeOutDone, false, 0, true); _local2.start(); } public function fadeIn(_arg1:int=1000):void{ var _local2:Timer; if (channel == null){ return; }; channel.soundTransform = new SoundTransform(0); fadeStepCount = 0; _local2 = new Timer((_arg1 / sound_fade_steps), sound_fade_steps); _local2.addEventListener(TimerEvent.TIMER, musicFadeInStep, false, 0, true); _local2.addEventListener(TimerEvent.TIMER_COMPLETE, musicFadeInDone, false, 0, true); _local2.start(); } function musicFadeOutStep(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; fadeStepCount--; _local2 = (1 / sound_fade_steps); _local3 = (fadeStepCount * _local2); _local3 = (_local3 * volumeSetting); channel.soundTransform = new SoundTransform(_local3); } function musicFadeInStep(_arg1:TimerEvent):void{ var _local2:*; var _local3:*; fadeStepCount++; _local2 = (1 / sound_fade_steps); _local3 = (fadeStepCount * _local2); _local3 = (_local3 * volumeSetting); channel.soundTransform = new SoundTransform(_local3); } function musicFadeOutDone(_arg1:TimerEvent):void{ channel.stop(); } public function mute():void{ setVolume(0); } public function setVolume(_arg1:Number):void{ if (channel == null){ return; }; _arg1 = Math.max(0, _arg1); _arg1 = Math.min(volumeSetting, _arg1); channel.soundTransform = new SoundTransform(_arg1); } } }//package
Section 247
//mVampire (mVampire) package { public class mVampire extends MonsterCharacter { public function mVampire(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Vampire"; portrait = CharGraphic.vampire; mindless = true; description = "Undead. Drains health."; quickness = 60; vampiric_percent = 75; health_max = Math.round((health_max * 0.9)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sVampireAttack(this)); } } }//package
Section 248
//mVoidstalker (mVoidstalker) package { public class mVoidstalker extends MonsterCharacter { public function mVoidstalker(_arg1:int=1){ super(_arg1); type = MonsterCharacter.special; classname = "Planar Entity"; ethereal = 20; charname = "Voidstalker"; portrait = CharGraphic.voidstalker; description = "Slightly resistant to physical damage. Reduces target's accuracy. Can attack at range."; accuracy_damage = 30; quickness = 80; health_max = Math.round((health_max * 0.7)); health = health_max; damage = Math.round((damage * 0.9)); initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sMonsterAttack(this)); skills.push(new sMonsterShadowStrike(this)); } override public function isSummoned():Boolean{ return (true); } } }//package
Section 249
//mZombie (mZombie) package { public class mZombie extends MonsterCharacter { public function mZombie(_arg1:int=1){ super(_arg1); type = MonsterCharacter.undead; classname = "Undead"; poisonResist = 50; charname = "Zombie"; portrait = CharGraphic.zombie; mindless = true; description = "Undead. Slow, but tough. Has debilitating attacks."; quickness = 20; health_max = Math.round((health_max * 1.3)); health = health_max; initSkills(); } override public function initSkills():void{ skills.length = 0; skills.push(new sZombieAttack(this)); skills.push(new sZombieAE(this)); } } }//package
Section 250
//NameButton (NameButton) package { import flash.display.*; public dynamic class NameButton extends MovieClip { } }//package
Section 251
//NotYetButton (NotYetButton) package { import flash.display.*; public dynamic class NotYetButton extends MovieClip { } }//package
Section 252
//NumericIndicatorHealth (NumericIndicatorHealth) package { import flash.text.*; import flash.display.*; public dynamic class NumericIndicatorHealth extends Sprite { public var bar:RedBarHorz; public var numbers:TextField; } }//package
Section 253
//NumericIndicatorPower (NumericIndicatorPower) package { import flash.text.*; import flash.display.*; public dynamic class NumericIndicatorPower extends Sprite { public var bar:BlueBarHorz; public var numbers:TextField; } }//package
Section 254
//Offhand (Offhand) package { public class Offhand extends Equipment { override public function generateItem(_arg1:int):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = false; if (item_rarity == Item.green){ if (DungeonMain.RandomNum(0, 100) >= 50){ _local3 = true; } else { _local2 = true; }; }; if (item_rarity == Item.grey){ item_rarity = Item.white; }; getItemModifiers(); if ((((item_rarity == Item.blue)) || (_local3))){ prefix = rollForPrefix(item_rarity); }; if ((((item_rarity == Item.blue)) || (_local2))){ suffix = rollForSuffix(item_rarity); }; if (prefix >= 0){ applyPrefix(); }; if (suffix >= 0){ applySuffix(); }; if (base_armor_rating){ armor_rating = scaleArmorForLevel((base_armor_rating * (1 + (base_armor_mod / 100)))); }; if (prefix >= 0){ item_name = ((prefixes[prefix][0] + " ") + item_name); }; if (suffix >= 0){ item_name = ((item_name + " of ") + suffixes[suffix][0]); }; } override public function getItemTypeString(){ return ("Offhand"); } override public function itemStatsString(_arg1:String):String{ if (armor_rating){ _arg1 = (_arg1 + (String(armor_rating) + " Armor Rating\n")); }; return (super.itemStatsString(_arg1)); } } }//package
Section 255
//OptionsScreen (OptionsScreen) package { import flash.events.*; import flash.display.*; public class OptionsScreen extends MovieClip { public var yes_btn:ContinueButton; public var showHintsBox:dCheckBox; public var vc:VolumeControlMenu; public function OptionsScreen(){ this.yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, exitClick); vc.init(dm.main); showHintsBox.setChecked(DungeonMain.showHints); showHintsBox.setDescription("Show hints and tips"); } function exitClick(_arg1:MouseEvent):void{ if (this.parent != null){ DungeonMain.showHints = showHintsBox.checked; if (dm.main != null){ dm.main.saveInterface(); }; parent.removeChild(this); cleanup(); }; } private function cleanup():void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, exitClick); } } }//package
Section 256
//Paperdoll (Paperdoll) package { import flash.display.*; public dynamic class Paperdoll extends Sprite { public var weapon:PaperdollEmptySlot; public var legs:PaperdollEmptySlot; public var ring:PaperdollEmptySlot; public var armor:PaperdollEmptySlot; public var gloves:PaperdollEmptySlot; public var offhand:PaperdollEmptySlot; public var boots:PaperdollEmptySlot; public var cloak:PaperdollEmptySlot; public var head:PaperdollEmptySlot; } }//package
Section 257
//PaperdollEmptySlot (PaperdollEmptySlot) package { import flash.display.*; public dynamic class PaperdollEmptySlot extends MovieClip { public function PaperdollEmptySlot(){ addFrameScript(0, frame1); } function frame1(){ this.gotoAndStop(1); } } }//package
Section 258
//Party (Party) package { public class Party { var save_slot:int;// = 1 var overflow:Array; private var _level:int;// = 1 var members:Array; private var _stat_rooms_explored:int;// = 0 private var _sneaking:int;// = 0 private var _stat_rooms_total:int;// = 0 private var _stat_leaders_defeated:int;// = 0 private var _stat_member_deaths:int;// = 0 private var _stat_party_defeats:int;// = 0 private var _stat_shrines_used:int;// = 0 var inventory:Array; private var _stat_hordes_defeated:int;// = 0 private var _hardcore:Boolean;// = false static const MAX_INVENTORY = 45; static const SCORE_SHRINES = -150; static const MAX_OVERFLOW = 15; static const SCORE_DEATHS = -100; static const SCORE_DEFEATS = -1000; static const SCORE_LEVEL = 1000; static const max_size = 4; static const SCORE_LEADERS = 500; public function Party(){ var _local1:*; var _local2:*; members = new Array(); save_slot = 1; inventory = new Array(); overflow = new Array(); _level = 1; _hardcore = false; _sneaking = 0; _stat_party_defeats = 0; _stat_member_deaths = 0; _stat_shrines_used = 0; _stat_hordes_defeated = 0; _stat_leaders_defeated = 0; _stat_rooms_explored = 0; _stat_rooms_total = 0; super(); _local1 = 0; while (_local1 < 3) { addToInventory(new SneakyScroll()); _local1++; }; _local1 = 0; while (_local1 < 2) { addToInventory(new PotionHealthSmall()); _local1++; }; _local1 = 0; while (_local1 < 2) { addToInventory(new PotionPowerSmall()); _local1++; }; _local1 = 0; while (_local1 < 2) { addToInventory(new PotionReviveWeak()); _local1++; }; if (DungeonMain.debugitems){ }; } public function set level(_arg1:int):void{ this._level = _arg1; } public function get level():int{ return (this._level); } public function get hardcore():Boolean{ return (this._hardcore); } public function addDemonLoot():void{ var _local1:iRing; var _local2:iCloak; _local1 = new iRing(DungeonMain.MAX_LEVEL, Item.orange); _local1.item_name = "Signet of the Demonslayer"; _local1.lore = "Presented to honor those who freed the world from the demon's tyranny."; _local1.replenishing = 20; _local1.powerRegen = 5; _local1.resistPoison = 50; _local1.resistStun = 50; _local1.icon_frame = 116; addToInventory(_local1); _local2 = new iCloak(DungeonMain.MAX_LEVEL, Item.orange); _local2.item_name = "Demonhide Cloak"; _local2.lore = "Fashioned from the skin of the demon himself."; _local2.armor_rating = 150; _local2.lethality = 5; _local2.mod_strength = 2; _local2.mod_endurance = 2; _local2.mod_intellect = 2; _local2.mod_dexterity = 2; _local2.icon_frame = 117; addToInventory(_local2); } public function set hardcore(_arg1:Boolean):void{ this._hardcore = _arg1; } public function setMemberPos(_arg1:int, _arg2:int){ var _local3:*; var _local4:*; var _local5:Boolean; var _local6:Boolean; _local5 = false; _local3 = 0; while (_local3 < members.length) { if (members[_local3].pos == _arg2){ _local5 = true; }; _local3++; }; if (_local5){ _local3 = 1; while (_local3 < 7) { _local6 = true; _local4 = 0; while (_local4 < members.length) { if (members[_local4].pos == _local3){ _local6 = false; }; _local4++; }; if (_local6){ members[_arg1].pos = _local3; break; }; _local3++; }; } else { members[_arg1].pos = _arg2; }; } public function set sneaking(_arg1:int):void{ this._sneaking = _arg1; } public function get stat_member_deaths():int{ return (this._stat_member_deaths); } public function get stat_party_defeats():int{ return (this._stat_party_defeats); } public function set stat_rooms_total(_arg1:int):void{ this._stat_rooms_total = _arg1; } public function set stat_shrines_used(_arg1:int):void{ this._stat_shrines_used = _arg1; } public function get stat_leaders_defeated():int{ return (this._stat_leaders_defeated); } public function destroyItem(_arg1:Item):Boolean{ var _local2:*; var _local3:*; _local2 = false; _local3 = 0; while (_local3 < Party.MAX_INVENTORY) { if (inventory[_local3] == _arg1){ (inventory[_local3] == null); inventory.splice(_local3, 1); _local2 = true; break; }; _local3++; }; if (!_local2){ _local3 = 0; while (_local3 < Party.MAX_OVERFLOW) { if (overflow[_local3] == _arg1){ (overflow[_local3] == null); overflow.splice(_local3, 1); _local2 = true; break; }; _local3++; }; }; if (!_local2){ return (false); }; balanceInventory(); return (true); } public function removeFromInventory(_arg1:Item):Boolean{ var _local2:*; var _local3:*; _local2 = false; _local3 = getItemIndex(_arg1); if (_local3 >= 0){ inventory.splice(_local3, 1); _local2 = true; } else { _local3 = getOverflowIndex(_arg1); if (_local3 >= 0){ overflow.splice(_local3, 1); _local2 = true; }; }; if (_local2){ balanceInventory(); }; return (_local2); } public function addToInventory(_arg1:Item):Boolean{ var _local2:*; if (_arg1 == null){ return (false); }; if ((_arg1 is Consumable)){ _local2 = 0; while (_local2 < inventory.length) { if (sameConsumableType(inventory[_local2], _arg1)){ inventory[_local2].stack++; return (true); }; _local2++; }; }; if (inventory.length < Party.MAX_INVENTORY){ inventory.push(_arg1); return (true); }; if (overflow.length < Party.MAX_OVERFLOW){ overflow.push(_arg1); return (true); }; return (false); } public function set stat_member_deaths(_arg1:int):void{ this._stat_member_deaths = _arg1; } private function sameConsumableType(_arg1:Item, _arg2:Item):Boolean{ if ((((_arg1 is Consumable)) && ((_arg2 is Consumable)))){ if (_arg1.item_name == _arg2.item_name){ return (true); }; return (false); //unresolved jump }; return (false); } public function fullRecovery():void{ var _local1:*; _local1 = 0; while (_local1 < members.length) { members[_local1].health = members[_local1].health_max; members[_local1].power = members[_local1].power_max; members[_local1].clearStatusEffects(); _local1++; }; } public function set stat_rooms_explored(_arg1:int):void{ this._stat_rooms_explored = _arg1; } public function set stat_party_defeats(_arg1:int):void{ this._stat_party_defeats = _arg1; } public function getItemIndex(_arg1:Item):int{ var _local2:*; _local2 = 0; while (_local2 < inventory.length) { if (this.inventory[_local2] == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function findEmptySlot(_arg1:Boolean):int{ var _local2:*; if (_arg1){ _local2 = 1; while (_local2 <= 3) { if (memberInPos(_local2) == null){ return (_local2); }; _local2++; }; }; _local2 = 4; while (_local2 <= 6) { if (memberInPos(_local2) == null){ return (_local2); }; _local2++; }; if (_arg1){ return (0); }; _local2 = 1; while (_local2 <= 3) { if (memberInPos(_local2) == null){ return (_local2); }; _local2++; }; return (0); } public function get sneaking():int{ return (this._sneaking); } public function get stat_shrines_used():int{ return (this._stat_shrines_used); } public function get stat_rooms_total():int{ return (this._stat_rooms_total); } public function getEquipment():Array{ var _local1:*; var _local2:Array; _local1 = 0; _local2 = new Array(); _local1 = 0; while (_local1 < inventory.length) { if ((inventory[_local1] is Equipment)){ _local2.push(inventory[_local1]); }; _local1++; }; _local1 = 0; while (_local1 < overflow.length) { if ((overflow[_local1] is Equipment)){ _local2.push(inventory[_local1]); }; _local1++; }; return (_local2); } public function isPartyDead():Boolean{ var _local1:*; _local1 = 0; while (_local1 < members.length) { if (members[_local1].health > 0){ return (false); }; _local1++; }; return (true); } public function get stat_rooms_explored():int{ return (this._stat_rooms_explored); } public function set stat_leaders_defeated(_arg1:int):void{ this._stat_leaders_defeated = _arg1; } public function getOverflowIndex(_arg1:Item):int{ var _local2:*; _local2 = 0; while (_local2 < overflow.length) { if (this.overflow[_local2] == _arg1){ return (_local2); }; _local2++; }; return (-1); } public function unequipItem(_arg1:Equipment):Boolean{ var _local2:*; var _local3:*; var _local4:*; _local2 = false; _local3 = -1; _local4 = 0; while (_local4 < members.length) { if (members[_local4].gear[_arg1.slot] == _arg1){ _local3 = _local4; break; }; _local4++; }; if (_local3 != -1){ if (addToInventory(_arg1)){ members[_local3].gear[_arg1.slot] = null; _local2 = true; }; } else { _local2 = true; }; return (_local2); } public function getLevelScore():int{ var _local1:int; var _local2:Number; var _local3:Number; _local1 = 0; _local2 = (stat_rooms_explored / stat_rooms_total); _local3 = (stat_hordes_defeated / (level * 10)); _local1 = (_local1 + (level * SCORE_LEVEL)); _local1 = (_local1 * (_local2 + _local3)); _local1 = Math.round((_local1 / 10)); _local1 = (_local1 * 10); return (_local1); } public function balanceInventory():void{ while (((overflow.length) && ((inventory.length < Party.MAX_INVENTORY)))) { inventory.push(overflow[0]); overflow.splice(0, 1); }; } public function getConsumables():Array{ var _local1:*; var _local2:Array; _local1 = 0; _local2 = new Array(); _local1 = 0; while (_local1 < inventory.length) { if ((inventory[_local1] is Consumable)){ _local2.push(inventory[_local1]); }; _local1++; }; _local1 = 0; while (_local1 < overflow.length) { if ((overflow[_local1] is Consumable)){ _local2.push(inventory[_local1]); }; _local1++; }; return (_local2); } public function getScore():int{ var _local1:int; _local1 = 0; _local1 = (_local1 + getLevelScore()); _local1 = (_local1 + (stat_leaders_defeated * SCORE_LEADERS)); _local1 = (_local1 + (stat_member_deaths * SCORE_DEATHS)); _local1 = (_local1 + (stat_shrines_used * SCORE_SHRINES)); _local1 = (_local1 + (stat_party_defeats * SCORE_DEFEATS)); return (_local1); } public function deathPenalty():Boolean{ var _local1:*; var _local2:*; var _local3:Array; var _local4:*; _local1 = false; _local2 = 0; while (_local2 < members.length) { _local1 = ((members[_local2].loseRandomEquipment()) || (_local1)); members[_local2].increaseHealthByPercentage(50, true); members[_local2].increasePower(30); _local2++; }; _local3 = dm.shuffleArray(inventory); _local4 = 0; while (_local4 < _local3.length) { if ((_local3[_local4] is Equipment)){ _local1 = ((_local1) || (destroyItem(_local3[_local4]))); }; _local4++; }; return (_local1); } public function memberInPos(_arg1:int):PlayerCharacter{ var _local2:*; if (_arg1 <= 0){ return (null); }; if (_arg1 > 6){ return (null); }; _local2 = 0; while (_local2 < members.length) { if (members[_local2].pos == _arg1){ return (members[_local2]); }; _local2++; }; return (null); } public function set stat_hordes_defeated(_arg1:int):void{ this._stat_hordes_defeated = _arg1; } public function get stat_hordes_defeated():int{ return (this._stat_hordes_defeated); } } }//package
Section 259
//PartyCreation (PartyCreation) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class PartyCreation extends MovieClip { var tooltip:Tooltip; public var empty1:CharCreationEmpty; public var empty4:CharCreationEmpty; public var back_button:BackButton; public var enter_button:ContinueButton; public var empty3:CharCreationEmpty; var pc_party:Party; public var char3:CharCreationPanel; public var empty2:CharCreationEmpty; public var char1:CharCreationPanel; public var hardcore_check:dCheckBox; public var char2:CharCreationPanel; var timerCount;// = 0 public var char4:CharCreationPanel; public function PartyCreation():void{ var _local1:*; var _local2:Timer; timerCount = 0; super(); pc_party = new Party(); enter_button.addEventListener(MouseEvent.MOUSE_DOWN, enterClick); back_button.addEventListener(MouseEvent.MOUSE_DOWN, backClick); hardcore_check.setDescription("Play in Hardcore mode (advanced)"); hardcore_check.addEventListener(MouseEvent.MOUSE_DOWN, checkClick); _local1 = 1; while (_local1 <= 4) { CharCreationPanel(getChildByName(("char" + _local1))).slot = _local1; _local1++; }; empty1.addEventListener(MouseEvent.MOUSE_DOWN, createClick); empty2.addEventListener(MouseEvent.MOUSE_DOWN, createClick); empty3.addEventListener(MouseEvent.MOUSE_DOWN, createClick); empty4.addEventListener(MouseEvent.MOUSE_DOWN, createClick); timerCount = 1; if (!char1.animating){ char1.createChar(); }; _local2 = new Timer(250, 3); _local2.addEventListener(TimerEvent.TIMER, addCharTimer, false, 0, true); _local2.start(); } public function isNameTaken(_arg1:String):Boolean{ var _local2:*; var _local3:CharCreationPanel; _local2 = 1; while (_local2 <= 4) { _local3 = CharCreationPanel(getChildByName(("char" + _local2))); if (_local3.char == null){ } else { if (_local3.char.charname == _arg1){ return (true); }; }; _local2++; }; return (false); } function createClick(_arg1:MouseEvent):void{ var _local2:*; _local2 = 1; while (_local2 <= 4) { if (_arg1.currentTarget == getChildByName(("empty" + _local2))){ if (CharCreationPanel(getChildByName(("char" + _local2))).animating){ return; }; CharCreationPanel(getChildByName(("char" + _local2))).createChar(); }; _local2++; }; } private function charCount():int{ var _local1:*; var _local2:*; var _local3:*; _local1 = 0; _local2 = 1; while (_local2 <= 4) { _local3 = CharCreationPanel(getChildByName(("char" + _local2))); if (_local3 == null){ } else { if (_local3.char == null){ } else { _local1++; }; }; _local2++; }; return (_local1); } function enterClick(_arg1:MouseEvent):void{ var _local2:CharCreationPanel; var _local3:int; var _local4:*; var _local5:*; var _local6:*; _local3 = charCount(); if (_local3 == 0){ _local5 = new WarningDialog(); _local5.setText("You must add some characters to your party before entering the dungeon."); addChild(_local5); return; }; pc_party.members.length = 0; _local4 = 1; while (_local4 <= 4) { _local2 = CharCreationPanel(getChildByName(("char" + _local4))); if (_local2 == null){ } else { if (_local2.char == null){ } else { _local2.finalize(); _local6 = pc_party.members.push(convertClass(_local2.char, _local2.selected_class)); }; }; _local4++; }; pc_party.hardcore = hardcore_check.checked; this.cleanup(); dm.main.creationFinished(pc_party); } function checkClick(_arg1:MouseEvent):void{ var _local2:*; if (!hardcore_check.checked){ return; }; _local2 = new WarningDialog(); _local2.setText("In Hardcore mode, you will not be able to continue if your entire party is defeated.\n\nThis option is recommended only for advanced players."); addChild(_local2); } public function cleanup():void{ var _local1:*; enter_button.removeEventListener(MouseEvent.MOUSE_DOWN, enterClick); back_button.removeEventListener(MouseEvent.MOUSE_DOWN, backClick); hardcore_check.removeEventListener(MouseEvent.MOUSE_DOWN, checkClick); hardcore_check.cleanup(); empty1.removeEventListener(MouseEvent.MOUSE_DOWN, createClick); empty2.removeEventListener(MouseEvent.MOUSE_DOWN, createClick); empty3.removeEventListener(MouseEvent.MOUSE_DOWN, createClick); empty4.removeEventListener(MouseEvent.MOUSE_DOWN, createClick); _local1 = 1; while (_local1 <= 4) { CharCreationPanel(getChildByName(("char" + _local1))).cleanup(); _local1++; }; } private function convertClass(_arg1:PlayerCharacter, _arg2:int):PlayerCharacter{ var _local3:*; var _local4:*; var _local5:Boolean; _local3 = _arg1.charname; _local4 = _arg1.portrait; _local5 = _arg1.male; if (_arg2 == PlayerCharacter.warrior){ _arg1 = new PC_Warrior(pc_party); } else { if (_arg2 == PlayerCharacter.mage){ _arg1 = new PC_Mage(pc_party); } else { if (_arg2 == PlayerCharacter.ranger){ _arg1 = new PC_Ranger(pc_party); } else { if (_arg2 == PlayerCharacter.rogue){ _arg1 = new PC_Rogue(pc_party); } else { if (_arg2 == PlayerCharacter.cleric){ _arg1 = new PC_Cleric(pc_party); }; }; }; }; }; _arg1.charname = _local3; _arg1.portrait = _local4; _arg1.male = _local5; return (_arg1); } function backClick(_arg1:MouseEvent):void{ pc_party = null; if (((parent) && ((parent is DungeonMain)))){ this.cleanup(); DungeonMain(parent).loadGameMenu(); DungeonMain(parent).removeChild(this); }; } function addCharTimer(_arg1:TimerEvent):void{ var _local2:*; timerCount++; _local2 = CharCreationPanel(getChildByName(("char" + timerCount))); if (_local2 == null){ return; }; if (_local2.char != null){ return; }; if (_local2.animating){ return; }; _local2.createChar(); } } }//package
Section 260
//PC_Cleric (PC_Cleric) package { public class PC_Cleric extends PlayerCharacter { public function PC_Cleric(_arg1:Party=null){ this.party = _arg1; quickness = 60; charname = "Jeremy"; playerclass = PlayerCharacter.cleric; classname = "Cleric"; portrait = CharGraphic.cleric1; pos = 0; health_max = getMaxHealth(); health = health_max; skills.push(new sWeaponAttack(this)); skills.push(new sClericHeal(this)); skills.push(new sClericSmite(this)); skills.push(new sClericFlash(this)); skills.push(new sClericHealGroup(this)); skills.push(new sClericDamageBuff(this)); skills.push(new sClericRevive(this)); skills.push(new sClericAE(this)); skills.push(new sClericPurify(this)); skills.push(new sClericShield(this)); skills.push(new sClericMelee(this)); setActiveSkillsDefault(); generateDefaultGear(); } public function generateDefaultGear(){ var _local1:Armor; var _local2:*; _local1 = new iPlateBreastplate(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateGloves(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateBoots(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateGreaves(1, Item.grey); this.gear[_local1.slot] = _local1; _local2 = new iMace(1, Item.grey); this.gear[_local2.slot] = _local2; } } }//package
Section 261
//PC_Mage (PC_Mage) package { public class PC_Mage extends PlayerCharacter { public function PC_Mage(_arg1:Party=null){ this.party = _arg1; quickness = 40; charname = "Errol"; playerclass = PlayerCharacter.mage; classname = "Mage"; portrait = CharGraphic.mage1; pos = 0; health_max = getMaxHealth(); health = health_max; skills.push(new sWeaponAttack(this)); skills.push(new sMageBolt(this)); skills.push(new sMageExplosion(this)); skills.push(new sMageAE(this)); skills.push(new sMagePrison(this)); skills.push(new sMageInvisibility(this)); skills.push(new sMageArmor(this)); skills.push(new sMageThorns(this)); skills.push(new sMageSword(this)); skills.push(new sMageTouch(this)); skills.push(new sMageDrain(this)); setActiveSkillsDefault(); generateDefaultGear(); } public function generateDefaultGear(){ this.gear[Equipment.head] = new iClothHat(1, Item.grey); this.gear[Equipment.armor] = new iClothRobe(1, Item.grey); this.gear[Equipment.gloves] = new iClothGloves(1, Item.grey); this.gear[Equipment.legs] = new iClothLegs(1, Item.grey); this.gear[Equipment.boots] = new iClothShoes(1, Item.grey); this.gear[Equipment.weapon] = new iStaff(1, Item.grey); } } }//package
Section 262
//PC_Ranger (PC_Ranger) package { public class PC_Ranger extends PlayerCharacter { public function PC_Ranger(_arg1:Party=null){ this.party = _arg1; quickness = 55; charname = "Hamish"; playerclass = PlayerCharacter.ranger; classname = "Ranger"; portrait = CharGraphic.ranger1; pos = 0; health_max = getMaxHealth(); health = health_max; skills.push(new sRangedAttack(this)); skills.push(new sRangerPenetrate(this)); skills.push(new sRangerRegen(this)); skills.push(new sRangerHeal(this)); skills.push(new sRangerHunt(this)); skills.push(new sRangerAE(this)); skills.push(new sRangerStun(this)); skills.push(new sRangerMultiMelee(this)); skills.push(new sRangerPoison(this)); skills.push(new sRangerFocus(this)); skills.push(new sRangerHaste(this)); setActiveSkillsDefault(); generateDefaultGear(); } public function generateDefaultGear(){ this.gear[Equipment.head] = new iLeatherHat(1, Item.grey); this.gear[Equipment.armor] = new iLeatherChest(1, Item.grey); this.gear[Equipment.gloves] = new iLeatherGloves(1, Item.grey); this.gear[Equipment.legs] = new iLeatherLegs(1, Item.grey); this.gear[Equipment.boots] = new iLeatherBoots(1, Item.grey); this.gear[Equipment.weapon] = new iBow(1, Item.grey); } } }//package
Section 263
//PC_Rogue (PC_Rogue) package { public class PC_Rogue extends PlayerCharacter { public function PC_Rogue(_arg1:Party=null){ this.party = _arg1; quickness = 70; charname = "Deepak"; playerclass = PlayerCharacter.rogue; classname = "Rogue"; portrait = CharGraphic.rogue1; pos = 0; health_max = getMaxHealth(); health = health_max; skills.push(new sWeaponAttack(this)); skills.push(new sRoguePoison(this)); skills.push(new sRogueCritical(this)); skills.push(new sRogueSneakAttack(this)); skills.push(new sRogueBlind(this)); skills.push(new sRogueOpening(this)); skills.push(new sRogueHide(this)); skills.push(new sRogueSap(this)); skills.push(new sRogueLuck(this)); skills.push(new sRogueFinisher(this)); skills.push(new sRogueCripple(this)); setActiveSkillsDefault(); generateDefaultGear(); } public function generateDefaultGear(){ this.gear[Equipment.head] = new iLeatherHat(1, Item.grey); this.gear[Equipment.armor] = new iLeatherChest(1, Item.grey); this.gear[Equipment.gloves] = new iLeatherGloves(1, Item.grey); this.gear[Equipment.legs] = new iLeatherLegs(1, Item.grey); this.gear[Equipment.boots] = new iLeatherBoots(1, Item.grey); this.gear[Equipment.weapon] = new iDagger(1, Item.grey); } } }//package
Section 264
//PC_Warrior (PC_Warrior) package { public class PC_Warrior extends PlayerCharacter { public function PC_Warrior(_arg1:Party=null){ this.party = _arg1; quickness = 50; health_max = getMaxHealth(); health = health_max; level = 1; charname = "Bruce"; playerclass = PlayerCharacter.warrior; classname = "Warrior"; portrait = CharGraphic.warrior1; pos = 0; skills.push(new sWeaponAttack(this)); skills.push(new sWarriorPowerAttack(this)); skills.push(new sWarriorDefiance(this)); skills.push(new sWarriorAE(this)); skills.push(new sWarriorAdrenaline(this)); skills.push(new sWarriorHeal(this)); skills.push(new sWarriorShield(this)); skills.push(new sWarriorInspire(this)); skills.push(new sWarriorExecute(this)); skills.push(new sWarriorBloodlust(this)); skills.push(new sWarriorSpeedAttack(this)); setActiveSkillsDefault(); generateDefaultGear(); } public function generateDefaultGear(){ var _local1:Armor; var _local2:*; _local1 = new iPlateHelmet(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateBreastplate(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateGloves(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateBoots(1, Item.grey); this.gear[_local1.slot] = _local1; _local1 = new iPlateGreaves(1, Item.grey); this.gear[_local1.slot] = _local1; _local2 = new iSword(1, Item.grey); this.gear[_local2.slot] = _local2; } } }//package
Section 265
//player_arrow (player_arrow) package { import flash.display.*; public dynamic class player_arrow extends MovieClip { public var spark:MovieClip; public function player_arrow(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.playerArrow); this.spark.x = dm.randomNum(15, 43); this.spark.y = dm.randomNum(15, 43); } function frame45(){ this.stop(); } } }//package
Section 266
//player_mage_attack (player_mage_attack) package { import flash.display.*; public dynamic class player_mage_attack extends MovieClip { public function player_mage_attack(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.playerMagicAttack); } function frame45(){ this.stop(); } } }//package
Section 267
//player_multi_slash (player_multi_slash) package { import flash.display.*; public dynamic class player_multi_slash extends MovieClip { public var hslash:MovieClip; public function player_multi_slash(){ addFrameScript(0, frame1, 11, frame12); } function frame12(){ this.stop(); this.gotoAndStop(12); } function frame1(){ dm.sound.play(SoundControl.playerSlash); } } }//package
Section 268
//player_power_slash (player_power_slash) package { import flash.display.*; public dynamic class player_power_slash extends MovieClip { public function player_power_slash(){ addFrameScript(11, frame12); } function frame12(){ this.stop(); } } }//package
Section 269
//player_slash (player_slash) package { import flash.display.*; public dynamic class player_slash extends MovieClip { public var hslash:MovieClip; public function player_slash(){ addFrameScript(0, frame1, 11, frame12); } function frame12(){ this.gotoAndStop(12); } function frame1(){ dm.sound.play(SoundControl.playerSlash); } } }//package
Section 270
//PlayerCharacter (PlayerCharacter) package { public class PlayerCharacter extends Character { const CLONE_DAMAGE_MULTIPLIER = 0.5; const CLONE_HEALTH_MULTIPLIER = 2; protected var playerclass:int; private var _stat_points:int;// = 0 var gear:Array; private var _skill_points:int;// = 0 var retreated:Boolean;// = false var retreating:Boolean;// = false var party:Party; private var _male:Boolean;// = true static const warrior = 1; static const HEALTH_PER_ENDURANCE = 4; static const cleric = 2; static const mage = 3; static const ranger = 4; static const STATS_PER_LEVEL = 3; static const rogue = 5; static var base_health = 50; public function PlayerCharacter(_arg1:Party=null){ gear = new Array(Equipment.gearSlots); _stat_points = 0; _skill_points = 0; _male = true; retreating = false; retreated = false; super(); level = 1; classname = "Player"; portrait = CharGraphic.warrior1; pos = 0; if (_arg1 != null){ this.party = _arg1; }; } override public function getHealthRegen(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; if (_arg1){ _local2 = (_local2 + buff_healthRegen); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].healthRegen); }; _local3++; }; return (_local2); } override public function getPoisonDamage(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].poisonDamage); }; _local3++; }; return (_local2); } public function getDexterityDamageBonus():int{ var _local1:*; _local1 = getDexterity(); return (getBonus(_local1)); } override public function getDexterity(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = this.dexterity; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_dexterity); }; _local3++; }; return (_local2); } public function set male(_arg1:Boolean):void{ this._male = _arg1; } override public function getVampiric(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; if (_arg1){ _local2 = (_local2 + buff_vampiric); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].vampiric_percent); }; _local3++; }; return (_local2); } public function multiplyDamageForTargetType(_arg1:int, _arg2:int):int{ var _local3:*; var _local4:*; _local3 = 0; _local4 = 1; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (((!((gear[_local3] == null))) && ((gear[_local3].damageBonusVsCreatureType == _arg2)))){ _local4 = (_local4 * gear[_local3].damageBonusVsCreatureModifier); }; _local3++; }; return (Math.round((_arg1 * _local4))); } public function set skill_points(_arg1:int):void{ this._skill_points = _arg1; } public function get male():Boolean{ return (this._male); } public function getWeaponDamage():int{ var _local1:*; _local1 = 0; if (gear[Equipment.weapon] == null){ return (getUnarmedDamage()); }; if ((gear[Equipment.weapon] is iDagger)){ _local1 = (getStrengthDamageBonus() + getDexterityDamageBonus()); } else { if ((gear[Equipment.weapon] is MeleeWeapon)){ _local1 = getStrengthDamageBonus(); } else { if ((gear[Equipment.weapon] is RangedWeapon)){ _local1 = getDexterityDamageBonus(); } else { if ((gear[Equipment.weapon] is MageWeapon)){ _local1 = getIntellectDamageBonus(); }; }; }; }; return ((this.gear[Equipment.weapon].damage + _local1)); } public function canQuickRetreat():Boolean{ var _local1:*; var _local2:*; _local1 = false; _local2 = 0; while (_local2 < Equipment.gearSlots) { if (gear[_local2] != null){ if (gear[_local2].quickRetreat){ return (true); }; }; _local2++; }; return (false); } override public function getPowerRegen(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = power_per_turn; if (_arg1){ _local2 = (_local2 + buff_powerRegen); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].powerRegen); }; _local3++; }; return (Math.round((_local2 * powerRegenMod))); } override public function genderPossessive(_arg1:Boolean=false):String{ if (_arg1){ if (this.male){ return ("His"); }; return ("Her"); //unresolved jump }; if (this.male){ return ("his"); }; return ("her"); } override public function getQuickness(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = this.quickness; if (_arg1){ _local2 = (_local2 + ((buff_quickness + potion_quickness_bonus) - crippled)); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_quickness); }; _local3++; }; _local2 = Math.max(_local2, 0); return (_local2); } public function get stat_points():int{ return (this._stat_points); } public function loseRandomEquipment():Boolean{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:*; var _local5:Boolean; _local1 = new Array(); _local2 = new Array(); _local3 = new Array(); _local4 = 0; while (_local4 < Equipment.gearSlots) { if (gear[_local4] == null){ } else { if ((((gear[_local4].item_rarity == Item.grey)) || ((gear[_local4].item_rarity == Item.white)))){ _local1.push(gear[_local4]); }; if ((((gear[_local4].item_rarity == Item.green)) || ((gear[_local4].item_rarity == Item.blue)))){ _local2.push(gear[_local4]); }; if (gear[_local4].item_rarity == Item.purple){ _local3.push(gear[_local4]); }; }; _local4++; }; _local5 = false; if (_local1.length){ _local5 = destroyEquipment(_local1[DungeonMain.RandomNum(0, (_local1.length - 1))]); } else { if (_local2.length){ _local5 = destroyEquipment(_local2[DungeonMain.RandomNum(0, (_local2.length - 1))]); } else { if (_local3.length){ _local5 = destroyEquipment(_local3[DungeonMain.RandomNum(0, (_local3.length - 1))]); }; }; }; if (DungeonMain.debug){ }; return (_local5); } override public function genderPronoun(_arg1:Boolean=false):String{ if (_arg1){ if (this.male){ return ("He"); }; return ("She"); //unresolved jump }; if (this.male){ return ("he"); }; return ("she"); } override public function getStunResist(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = stunResist; if (_arg1){ _local2 = (_local2 + (buff_resistStun + potion_stun_resist)); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].resistStun); }; _local3++; }; if (_local2 > 100){ _local2 = 100; }; return (_local2); } public function unequip(_arg1:Equipment):Boolean{ if (party == null){ return (false); }; if (party.addToInventory(gear[_arg1.slot])){ gear[_arg1.slot] = null; return (true); }; return (false); } override public function getEndurance(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = this.endurance; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_endurance); }; _local3++; }; return (_local2); } public function getMaxHealth():int{ var _local1:*; _local1 = getEndurance(); return (getHealthForEndurance(_local1)); } public function levelTo(_arg1:int):void{ var _local2:*; _local2 = level; while (_local2 <= _arg1) { levelUp(); _arg1++; }; } public function equip(_arg1:Equipment):Boolean{ var _local2:Boolean; _local2 = itemUsable(_arg1); if ((_arg1 is Offhand)){ if (gear[Equipment.weapon] != null){ if (gear[Equipment.weapon].twoHanded){ _local2 = false; }; }; }; if ((_arg1 is Weapon)){ if (Weapon(_arg1).twoHanded){ if (gear[Equipment.offhand] != null){ _local2 = false; }; }; }; if (!_local2){ return (false); }; if (!party.unequipItem(_arg1)){ return (false); }; if (gear[_arg1.slot] != null){ if (!party.unequipItem(gear[_arg1.slot])){ return (false); }; }; if (party.removeFromInventory(_arg1)){ gear[_arg1.slot] = _arg1; return (true); }; return (false); } public function levelUp():void{ var _local1:*; level++; strength = (strength + STATS_PER_LEVEL); endurance = (endurance + STATS_PER_LEVEL); dexterity = (dexterity + STATS_PER_LEVEL); intellect = (intellect + STATS_PER_LEVEL); stat_points = (stat_points + STATS_PER_LEVEL); if (level <= DungeonMain.MAX_LEVEL){ skill_points++; }; _local1 = health_max; health_max = getMaxHealth(); health = (health + (health_max - _local1)); } override public function getLethality(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; if (((DungeonMain.debug) && (DungeonMain.instantKill))){ return (100); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].lethality); }; _local3++; }; return (_local2); } override public function reduceHealth(_arg1:int):int{ var _local2:*; var _local3:*; _local2 = health; _local3 = super.reduceHealth(_arg1); if ((((((health <= 0)) && ((_local2 > 0)))) && ((_local3 > 0)))){ party.stat_member_deaths++; }; return (_local3); } public function set stat_points(_arg1:int):void{ this._stat_points = _arg1; } override public function getAccuracy(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = accuracy; if (_arg1){ _local2 = (_local2 + (buff_accuracy - accuracy_penalty)); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].accuracyBonus); }; _local3++; }; return (_local2); } public function getUnarmedDamage():int{ return ((getStrength() * 2)); } override public function getDamageReflection(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; if (_arg1){ _local2 = (_local2 + buff_damageReflect); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].damageReflection); }; _local3++; }; return (_local2); } private function getBonus(_arg1:int):int{ var _local2:*; _local2 = (_arg1 * 2); return (_local2); } public function getReplenishing():int{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < Equipment.gearSlots) { if (gear[_local2] != null){ _local1 = (_local1 + gear[_local2].replenishing); }; _local2++; }; return (_local1); } public function getEvilClone():MonsterCharacter{ var _local1:*; var _local2:*; var _local3:*; _local1 = new MonsterCharacter(level); _local1.charname = ("Dark " + this.charname); _local1.classname = ("Corrupted " + this.classname); _local1.type = MonsterCharacter.human; _local1.description = "A twisted shadow cast by the Corruptor's power."; _local1.level = this.level; _local1.portrait = this.portrait; _local1.health_max = Math.round((this.health_max * CLONE_HEALTH_MULTIPLIER)); _local1.health = _local1.health_max; _local1.power_per_turn = this.getPowerRegen(false); _local1.strength = this.getStrength(false); _local1.endurance = this.getEndurance(false); _local1.dexterity = this.getDexterity(false); _local1.intellect = this.getIntellect(false); _local1.quickness = Math.max((this.getQuickness(false) - 5), 0); _local1.accuracy = this.getAccuracy(false); _local1.poisonResist = this.getPoisonResist(false); _local1.stunResist = this.getStunResist(false); _local1.pos = 0; _local1.mindless = false; _local1.ethereal = 0; _local1.damage_resistance = this.getDamageResist(false); _local1.vampiric_percent = this.getVampiric(false); _local1.causes_stun_percent = this.getStunChance(false); _local1.damage_reflection = this.getDamageReflection(false); _local1.accuracy_damage = this.getAccuracyDamage(false); _local1.poison_damage = this.getPoisonDamage(false); _local1.regenerate = Math.round(((this.getHealthRegen(false) / _local1.health_max) * 100)); _local2 = 0; while (_local2 < skills.length) { if (((skills[_local2].active) && (skills[_local2].usable(true)))){ _local3 = new skills[_local2].constructor(_local1); _local3.damage = Math.round((skills[_local2].getDamage() * CLONE_DAMAGE_MULTIPLIER)); _local3.requiresWeapon = false; _local3.requiresMelee = false; _local3.requiresRanged = false; _local3.requiresShield = false; if (_local3.usesWeaponRange){ if (((!((gear[Equipment.weapon] == null))) && ((((gear[Equipment.weapon] is RangedWeapon)) || ((gear[Equipment.weapon] is MageWeapon)))))){ _local3.rangedAttack = true; }; _local3.usesWeaponRange = false; }; _local1.skills.push(_local3); }; _local2++; }; return (_local1); } public function recalculateMaxHealth():void{ health_max = getMaxHealth(); if (health > health_max){ health = health_max; }; } public function get skill_points():int{ return (this._skill_points); } override public function damageAfterArmor(_arg1:int):int{ var _local2:*; var _local3:*; _local2 = getDamageResist(); if (_local2 >= 100){ _local2 = 99; }; _local3 = (1 - (_local2 / 100)); if (_local2 != 0){ _arg1 = (_arg1 * _local3); }; if (_arg1 == 0){ _arg1 = 1; }; return (_arg1); } public function setActiveSkillsDefault():void{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < skills.length) { if (_local1 >= 3){ break; }; if (skills[_local2] != null){ skills[_local2].unlocked = true; skills[_local2].active = true; skills[_local2].position = (_local2 + 1); _local1++; }; _local2++; }; if (DungeonMain.skillsUnlocked){ _local2 = 0; while (_local2 < skills.length) { skills[_local2].unlocked = true; _local2++; }; }; } override public function getStunChance(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; if (_arg1){ _local2 = (_local2 + buff_stun); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].causes_stun_percent); }; _local3++; }; return (_local2); } public function getArmorRating():int{ var _local1:*; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < Equipment.gearSlots) { if (gear[_local2] != null){ _local1 = (_local1 + gear[_local2].armor_rating); }; _local2++; }; return (_local1); } override public function getPoisonResist(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = poisonResist; if (_arg1){ _local2 = (_local2 + (buff_resistPoison + potion_poison_resist)); }; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].resistPoison); }; _local3++; }; if (_local2 > 100){ _local2 = 100; }; return (_local2); } override public function getEffectiveHealth():int{ var _local1:*; var _local2:*; _local1 = ((100 - getDamageResist()) / 100); _local2 = Math.round((health / _local1)); return (_local2); } override public function getDamageResist(_arg1:Boolean=true):int{ var _local2:*; _local2 = 0; if (_arg1){ _local2 = (_local2 + ((buff_damageResist + temp_damage_resistance) + potion_damage_resist)); }; _local2 = (_local2 + getDamageReductionFromArmor()); if (_local2 >= 100){ _local2 = 99; }; return (_local2); } override public function genderSelf(_arg1:Boolean=false):String{ if (_arg1){ if (this.male){ return ("Himself"); }; return ("Herself"); //unresolved jump }; if (this.male){ return ("himself"); }; return ("herself"); } override public function getStrength(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = this.strength; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_strength); }; _local3++; }; return (_local2); } override public function getHealingBonus(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_healing); }; _local3++; }; return (_local2); } override public function getAccuracyDamage(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = 0; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].blind); }; _local3++; }; return (_local2); } private function destroyEquipment(_arg1:Equipment):Boolean{ var _local2:*; _local2 = 0; while (_local2 < Equipment.gearSlots) { if (gear[_local2] == _arg1){ gear[_local2] = null; return (true); }; _local2++; }; return (false); } public function getStrengthDamageBonus():int{ var _local1:*; _local1 = getStrength(); return (getBonus(_local1)); } public function getIntellectDamageBonus():int{ var _local1:*; _local1 = getIntellect(); return (getBonus(_local1)); } public function getDamageReductionFromArmor():int{ var _local1:*; var _local2 = ??pushnamespace ; var _local3:*; _local1 = getArmorRating(); _local2 = 250; _local3 = (_local2 * (1 + ((level - 1) * Equipment.armor_scale_constant))); return (Math.round(((_local1 / _local3) * 40))); } override public function getIntellect(_arg1:Boolean=true):int{ var _local2:*; var _local3:*; _local2 = this.intellect; _local3 = 0; while (_local3 < Equipment.gearSlots) { if (gear[_local3] != null){ _local2 = (_local2 + gear[_local3].mod_intellect); }; _local3++; }; return (_local2); } public function itemUsable(_arg1:Item):Boolean{ var _local2:Boolean; var _local3:Equipment; if (!(_arg1 is Equipment)){ return (true); }; _local2 = false; _local3 = Equipment(_arg1); if (_local3.whoEquips == Equipment.allEquip){ _local2 = true; } else { if ((((playerclass == PlayerCharacter.cleric)) && (((_local3.whoEquips & Equipment.clericEquip) == Equipment.clericEquip)))){ _local2 = true; }; if ((((playerclass == PlayerCharacter.warrior)) && (((_local3.whoEquips & Equipment.warriorEquip) == Equipment.warriorEquip)))){ _local2 = true; }; if ((((playerclass == PlayerCharacter.rogue)) && (((_local3.whoEquips & Equipment.rogueEquip) == Equipment.rogueEquip)))){ _local2 = true; }; if ((((playerclass == PlayerCharacter.ranger)) && (((_local3.whoEquips & Equipment.rangerEquip) == Equipment.rangerEquip)))){ _local2 = true; }; if ((((playerclass == PlayerCharacter.mage)) && (((_local3.whoEquips & Equipment.mageEquip) == Equipment.mageEquip)))){ _local2 = true; }; }; return (_local2); } public static function baseHealthForLevel(_arg1:int):int{ return (getHealthForEndurance((1 + (_arg1 * STATS_PER_LEVEL)))); } public static function getHealthForEndurance(_arg1:int):int{ return ((base_health + ((_arg1 - 1) * HEALTH_PER_ENDURANCE))); } } }//package
Section 271
//PlayGameButton (PlayGameButton) package { import flash.display.*; public dynamic class PlayGameButton extends SimpleButton { } }//package
Section 272
//poison_drake_sound (poison_drake_sound) package { import flash.media.*; public dynamic class poison_drake_sound extends Sound { } }//package
Section 273
//poison_sound (poison_sound) package { import flash.media.*; public dynamic class poison_sound extends Sound { } }//package
Section 274
//poisoneffect (poisoneffect) package { import flash.display.*; public dynamic class poisoneffect extends MovieClip { public function poisoneffect(){ addFrameScript(4, frame5, 49, frame50); } function frame5(){ dm.sound.play(SoundControl.poison, 0.75); } function frame50(){ this.stop(); } } }//package
Section 275
//PortraitAnimation (PortraitAnimation) package { import flash.display.*; public class PortraitAnimation { static const playerMultiSlash = 29; static const creatureSpear = 52; static const poison = 16; static const cosmicPrison = 15; static const restore = 42; static const curse = 8; static const explosion = 13; static const freeze = 12; static const lethal = 17; static const cultistArrow = 57; static const swoopAttack = 61; static const playerSlash = 28; static const playerArrow = 26; static const fireBuff = 5; static const fearDeath = 71; static const regenBuff = 7; static const armorBuff = 4; static const fire = 11; static const quicknessBuff = 6; static const gainHealth = 41; static const ghostAttack = 60; static const playerPowerSlash = 30; static const protectAllies = 20; static const monsterThrown = 58; static const lightning = 18; static const gainPower = 40; static const monsterArrow = 55; static const buff = 3; static const debuff = 14; static const revive = 2; static const monsterThorns = 90; static const defiance = 21; static const web = 70; static const blind = 9; static const creatureWeapon = 51; static const playerUnarmed = 27; static const holyDamage = 10; static const heal = 1; static const mageAttack = 25; static const disintegrate = 99; static const monsterDrain = 98; static const summon = 80; static const powerDrain = 39; static const monsterMagic = 56; static const transform = 81; static const creatureSlash = 50; static const clone = 100; public static function getAnimation(_arg1:int):MovieClip{ var _local2:MovieClip; if (_arg1 <= 0){ return (null); }; _local2 = null; switch (_arg1){ case heal: _local2 = new healeffect(); break; case revive: _local2 = new revive_effect(); break; case buff: case quicknessBuff: case monsterThorns: case regenBuff: _local2 = new buff_effect(); break; case armorBuff: case protectAllies: case defiance: _local2 = new armor_buff_effect(); break; case debuff: _local2 = new debuff_effect(); break; case poison: _local2 = new poisoneffect(); break; case curse: _local2 = new curse_effect(); break; case blind: _local2 = new blind_effect(); break; case holyDamage: _local2 = new smite_effect(); break; case lethal: _local2 = new lethal_effect(); break; case fire: case explosion: case fireBuff: _local2 = new fire_effect(); break; case lightning: _local2 = new Lightning(); break; case freeze: _local2 = new frozen_effect(); break; case cosmicPrison: _local2 = new cosmic_prison(); break; case fearDeath: _local2 = new feardeath_effect(); break; case playerArrow: _local2 = new player_arrow(); break; case playerSlash: _local2 = new player_slash(); break; case playerMultiSlash: _local2 = new player_multi_slash(); break; case playerPowerSlash: _local2 = new player_power_slash(); break; case mageAttack: _local2 = new player_mage_attack(); break; case summon: _local2 = new summon_effect(); break; case transform: _local2 = new transform_effect(); break; case powerDrain: _local2 = new lose_power_effect(); break; case gainPower: _local2 = new gain_power_effect(); break; case gainHealth: _local2 = new gain_health_effect(); break; case restore: _local2 = new gain_both_effect(); break; case creatureSlash: case swoopAttack: case ghostAttack: _local2 = new creature_slash(); break; case creatureWeapon: _local2 = new creature_weapon(); break; case creatureSpear: _local2 = new creature_spear(); break; case monsterMagic: _local2 = new monster_magic_attack(); break; case monsterArrow: _local2 = new monster_arrow(); break; case cultistArrow: _local2 = new monster_arrow_drainpower(); break; case monsterThrown: _local2 = new monster_thrown(); break; case web: _local2 = new web_effect(); break; case disintegrate: _local2 = new disintegrate_effect(); break; case monsterDrain: _local2 = new monster_drain_effect(); break; case clone: _local2 = new clone_effect(); break; }; return (_local2); } } }//package
Section 276
//PortraitAnimationFrame (PortraitAnimationFrame) package { import flash.display.*; public class PortraitAnimationFrame extends MovieClip { public function PortraitAnimationFrame(_arg1:int=0){ this.gotoAndStop(_arg1); } } }//package
Section 277
//PortraitEffected (PortraitEffected) package { import flash.display.*; public dynamic class PortraitEffected extends MovieClip { } }//package
Section 278
//PortraitHighlight (PortraitHighlight) package { import flash.display.*; public dynamic class PortraitHighlight extends MovieClip { } }//package
Section 279
//potion_sound (potion_sound) package { import flash.media.*; public dynamic class potion_sound extends Sound { } }//package
Section 280
//PotionHealth (PotionHealth) package { public class PotionHealth extends Consumable { public function PotionHealth(_arg1:int=1){ item_name = "Healing Potion"; restore_health = 75; item_rarity = Item.green; icon_frame = 4; } } }//package
Section 281
//PotionHealthSmall (PotionHealthSmall) package { public class PotionHealthSmall extends Consumable { public function PotionHealthSmall(_arg1:int=1){ item_name = "Weak Healing Potion"; restore_health = 40; item_rarity = Item.green; icon_frame = 80; } } }//package
Section 282
//PotionPoisonResist (PotionPoisonResist) package { public class PotionPoisonResist extends Consumable { public function PotionPoisonResist(_arg1:int=1){ item_name = "Snake's Blood Potion"; restore_health = 20; poison_resist = 100; item_rarity = Item.green; icon_frame = 77; } } }//package
Section 283
//PotionPower (PotionPower) package { public class PotionPower extends Consumable { public function PotionPower(_arg1:int=1){ item_name = "Power Potion"; restore_power = 75; item_rarity = Item.green; icon_frame = 5; } } }//package
Section 284
//PotionPowerSmall (PotionPowerSmall) package { public class PotionPowerSmall extends Consumable { public function PotionPowerSmall(_arg1:int=1){ item_name = "Weak Power Potion"; restore_power = 40; item_rarity = Item.green; icon_frame = 81; } } }//package
Section 285
//PotionQuickness (PotionQuickness) package { public class PotionQuickness extends Consumable { public function PotionQuickness(_arg1:int=1){ item_name = "Elixir of Speed"; quickness_bonus = 20; item_rarity = Item.green; icon_frame = 78; } } }//package
Section 286
//PotionRejuve (PotionRejuve) package { public class PotionRejuve extends Consumable { public function PotionRejuve(_arg1:int=1){ item_name = "Rejuvenation Potion"; restore_health = 75; restore_power = 75; item_rarity = Item.green; icon_frame = 7; } } }//package
Section 287
//PotionRejuveSmall (PotionRejuveSmall) package { public class PotionRejuveSmall extends Consumable { public function PotionRejuveSmall(_arg1:int=1){ item_name = "Weak Rejuvenation Potion"; restore_health = 40; restore_power = 40; item_rarity = Item.green; icon_frame = 83; } } }//package
Section 288
//PotionRevive (PotionRevive) package { public class PotionRevive extends Consumable { public function PotionRevive(_arg1:int=1){ item_name = "Revival Potion"; restore_health = 75; resurrect = true; item_rarity = Item.green; icon_frame = 6; } } }//package
Section 289
//PotionReviveWeak (PotionReviveWeak) package { public class PotionReviveWeak extends Consumable { public function PotionReviveWeak(_arg1:int=1){ item_name = "Weak Revival Potion"; restore_health = 30; resurrect = true; item_rarity = Item.green; icon_frame = 82; } } }//package
Section 290
//PotionShield (PotionShield) package { public class PotionShield extends Consumable { public function PotionShield(_arg1:int=1){ item_name = "Elixir of Protection"; damage_resist = 20; stun_resist = 50; item_rarity = Item.green; icon_frame = 79; } } }//package
Section 291
//power_up_sound (power_up_sound) package { import flash.media.*; public dynamic class power_up_sound extends Sound { } }//package
Section 292
//PowerBar (PowerBar) package { import flash.display.*; public dynamic class PowerBar extends MovieClip { public var bar:MovieClip; public var lightbar:MovieClip; } }//package
Section 293
//ProceedButton (ProceedButton) package { import flash.events.*; import flash.display.*; public class ProceedButton extends MovieClip { public var bg:MovieClip; public function ProceedButton(){ addFrameScript(14, frame15); this.addEventListener(Event.ADDED_TO_STAGE, added); this.addEventListener(Event.REMOVED_FROM_STAGE, removed); } function added(_arg1:Event):void{ bg.gotoAndStop(1); this.addEventListener(MouseEvent.MOUSE_OVER, mouseOn); this.addEventListener(MouseEvent.MOUSE_MOVE, mouseOn); this.addEventListener(MouseEvent.MOUSE_OUT, mouseOff); } function frame15(){ this.gotoAndStop(15); this.bg.gotoAndStop(1); } function mouseOn(_arg1:MouseEvent):void{ bg.gotoAndStop(2); } function mouseOff(_arg1:MouseEvent):void{ bg.gotoAndStop(1); } function removed(_arg1:Event):void{ this.removeEventListener(MouseEvent.MOUSE_OVER, mouseOn); this.removeEventListener(MouseEvent.MOUSE_MOVE, mouseOn); this.removeEventListener(MouseEvent.MOUSE_OUT, mouseOff); this.removeEventListener(Event.ADDED_TO_STAGE, added); this.removeEventListener(Event.REMOVED_FROM_STAGE, removed); } } }//package
Section 294
//ProgressCleared (ProgressCleared) package { import flash.text.*; import flash.display.*; public dynamic class ProgressCleared extends MovieClip { public var label:TextField; public var bar_mask:MovieClip; public var holder:ProgressHolder; } }//package
Section 295
//ProgressExplored (ProgressExplored) package { import flash.text.*; import flash.display.*; public dynamic class ProgressExplored extends MovieClip { public var label:TextField; public var bar_mask:MovieClip; public var holder:ProgressHolder; } }//package
Section 296
//ProgressHolder (ProgressHolder) package { import flash.display.*; public dynamic class ProgressHolder extends MovieClip { } }//package
Section 297
//punch_sound (punch_sound) package { import flash.media.*; public dynamic class punch_sound extends Sound { } }//package
Section 298
//RandomBones (RandomBones) package { import flash.display.*; public dynamic class RandomBones extends MovieClip { public var f; public function RandomBones(){ addFrameScript(0, frame1); } function frame1(){ f = dm.randomNum(1, this.totalFrames); this.gotoAndStop(f); } } }//package
Section 299
//RandomFloor (RandomFloor) package { import flash.display.*; public dynamic class RandomFloor extends MovieClip { } }//package
Section 300
//RandomLightning (RandomLightning) package { import flash.display.*; public dynamic class RandomLightning extends MovieClip { public var f; public var r; public function RandomLightning(){ addFrameScript(0, frame1); } function frame1(){ f = dm.randomNum(1, this.totalFrames); this.gotoAndStop(f); r = dm.randomNum(0, 359); this.rotation = r; } } }//package
Section 301
//RangedWeapon (RangedWeapon) package { public class RangedWeapon extends Weapon { public function RangedWeapon(){ materials.push("Elm", "Oak", "Ash", "Yew", "Voidwood", "Planespine"); } override public function getItemTypeString(){ return ("Ranged Weapon"); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Venomous", 5]); } } }//package
Section 302
//RatingDialog (RatingDialog) package { import flash.events.*; import flash.text.*; import flash.display.*; public class RatingDialog extends MovieClip { public var yes_btn:ContinueButton; public var total:TextField; public var col1:TextField; public var col3:TextField; public var col2:TextField; public function RatingDialog(_arg1:Party=null){ var _local2:*; var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:*; var _local8:*; var _local9:*; super(); yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickOkay); if (_arg1 != null){ _local2 = _arg1.level; _local3 = Math.round(((_arg1.stat_rooms_explored / _arg1.stat_rooms_total) * 100)); _local4 = Math.round(((_arg1.stat_hordes_defeated / (_local2 * 10)) * 100)); _local5 = (_local3 + _local4); _local6 = _arg1.stat_member_deaths; _local7 = _arg1.stat_shrines_used; _local8 = _arg1.stat_party_defeats; _local9 = _arg1.stat_leaders_defeated; _arg1.getLevelScore(); col1.text = ((((((((((_local2 + "\n") + _local4) + "\n\n") + _local9) + "\n") + _local7) + "\n") + _local6) + "\n") + _local8); col2.text = ((((((((((Party.SCORE_LEVEL + "\n") + _local3) + "\n\n") + Party.SCORE_LEADERS) + "\n") + Party.SCORE_SHRINES) + "\n") + Party.SCORE_DEATHS) + "\n") + Party.SCORE_DEFEATS); col3.text = (((((((((((((_arg1.level * Party.SCORE_LEVEL) + "\nx") + _local5) + "%\n") + _arg1.getLevelScore()) + "\n") + (_local9 * Party.SCORE_LEADERS)) + "\n") + (_local7 * Party.SCORE_SHRINES)) + "\n") + (_local6 * Party.SCORE_DEATHS)) + "\n") + (_local8 * Party.SCORE_DEFEATS)); total.text = String(_arg1.getScore()); }; } function clickOkay(_arg1:MouseEvent):void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); if (parent != null){ parent.removeChild(this); cleanup(); }; } private function cleanup():void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); } } }//package
Section 303
//rCell (rCell) package { public class rCell extends DungeonRoom { static var grid_height = 2; static var grid_width = 2; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 304
//rChamber (rChamber) package { public class rChamber extends DungeonRoom { static var grid_height = 3; static var grid_width = 3; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 305
//rCorridorH (rCorridorH) package { import flash.display.*; public class rCorridorH extends DungeonCorridor { public var gfx:MovieClip; static var grid_height = 1; static var grid_width = 2; public function rCorridorH(){ isCorridorH = true; } override public function getGridHeight():int{ return (grid_height); } override public function setAlpha(_arg1:Number):void{ gfx.alpha = _arg1; setAlphaChildren(_arg1); } override public function getGridWidth():int{ return (grid_width); } override public function getAlpha():Number{ return (gfx.alpha); } override public function setChild(_arg1:DisplayObject):void{ addChild(_arg1); } } }//package
Section 306
//rCorridorV (rCorridorV) package { import flash.display.*; public class rCorridorV extends DungeonCorridor { public var gfx:MovieClip; static var grid_height = 2; static var grid_width = 1; override public function getGridHeight():int{ return (grid_height); } override public function setAlpha(_arg1:Number):void{ gfx.alpha = _arg1; setAlphaChildren(_arg1); } override public function getGridWidth():int{ return (grid_width); } override public function getAlpha():Number{ return (gfx.alpha); } override public function setChild(_arg1:DisplayObject):void{ addChild(_arg1); } } }//package
Section 307
//rDemonRoom (rDemonRoom) package { import flash.display.*; public class rDemonRoom extends DungeonRoom { public var rune1:MovieClip; public var rune2:MovieClip; public var rune6:MovieClip; public var rune8:MovieClip; public var rune9:MovieClip; public var rune7:MovieClip; public var rune3:MovieClip; public var rune4:MovieClip; public var rune5:MovieClip; static var grid_height = 5; static var grid_width = 5; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } public function toFrame(_arg1:int):void{ var _local2:*; var _local3:*; this.gotoAndStop(_arg1); _local2 = 1; while (_local2 < _arg1) { _local3 = getChildByName(("rune" + _local2)); if (_local3 == null){ } else { _local3.gotoAndPlay(1); }; _local2++; }; } } }//package
Section 308
//RecoveryShrine (RecoveryShrine) package { import flash.events.*; import flash.display.*; import flash.utils.*; public class RecoveryShrine extends MovieClip { var used:Boolean; var room:DungeonRoom; public function RecoveryShrine(){ addFrameScript(0, frame1); used = false; this.gotoAndStop(1); } function onFadeComplete(_arg1:TimerEvent):void{ if (parent != null){ parent.removeChild(this); }; } function frame1(){ this.gotoAndStop(1); } public function fade():void{ var _local1:Timer; used = true; this.gotoAndPlay(2); _local1 = new Timer(500, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, onFadeComplete); _local1.start(); } } }//package
Section 309
//RedBar (RedBar) package { import flash.display.*; public dynamic class RedBar extends MovieClip { } }//package
Section 310
//RedBarHorz (RedBarHorz) package { import flash.display.*; public dynamic class RedBarHorz extends MovieClip { } }//package
Section 311
//RestDialog (RestDialog) package { import flash.events.*; import flash.display.*; import flash.ui.*; public class RestDialog extends MovieClip { public var yes_btn:YesButton; public var no_btn:NotYetButton; public function RestDialog(){ this.yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickYes); this.no_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function clickYes(_arg1:MouseEvent):void{ if (((!((parent == null))) && ((parent is Dungeon)))){ cleanup(); Dungeon(parent).useRest(); }; } function clickNo(_arg1:MouseEvent):void{ if (parent != null){ cleanup(); parent.removeChild(this); }; } private function cleanup():void{ dm.stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickYes); no_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickNo); } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ clickYes(null); } else { if (_arg1.keyCode == Keyboard.ESCAPE){ clickNo(null); }; }; } } }//package
Section 312
//RestScreen (RestScreen) package { import flash.display.*; public dynamic class RestScreen extends MovieClip { public function RestScreen(){ addFrameScript(14, frame15, 30, frame31); } function frame15(){ if (((!((this.parent == null))) && ((this.parent is Dungeon)))){ Dungeon(this.parent).updateChars(); Dungeon(this.parent).removeRestButton(); }; } function frame31(){ if (this.parent != null){ parent.removeChild(this); }; } } }//package
Section 313
//RetreatedEffect (RetreatedEffect) package { import flash.display.*; public dynamic class RetreatedEffect extends Sprite { } }//package
Section 314
//return_of_the_knights_b (return_of_the_knights_b) package { import flash.media.*; public dynamic class return_of_the_knights_b extends Sound { } }//package
Section 315
//ReturnButton (ReturnButton) package { import flash.display.*; public dynamic class ReturnButton extends MovieClip { } }//package
Section 316
//revive_effect (revive_effect) package { import flash.display.*; public dynamic class revive_effect extends MovieClip { public var gfx:CharGraphic; public function revive_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.heal); } function frame45(){ this.stop(); } } }//package
Section 317
//rGallery (rGallery) package { public class rGallery extends DungeonRoom { static var grid_height = 4; static var grid_width = 3; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 318
//rLargeRoom (rLargeRoom) package { public class rLargeRoom extends DungeonRoom { static var grid_height = 4; static var grid_width = 4; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 319
//rollingthunder_c (rollingthunder_c) package { import flash.media.*; public dynamic class rollingthunder_c extends Sound { } }//package
Section 320
//RoomFlash (RoomFlash) package { import flash.display.*; public dynamic class RoomFlash extends MovieClip { public function RoomFlash(){ addFrameScript(8, frame9); } function frame9(){ if (this.parent != null){ parent.removeChild(this); }; } } }//package
Section 321
//rTallRoom (rTallRoom) package { public class rTallRoom extends DungeonRoom { static var grid_height = 4; static var grid_width = 2; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 322
//rWideRoom (rWideRoom) package { public class rWideRoom extends DungeonRoom { static var grid_height = 2; static var grid_width = 4; override public function getGridHeight():int{ return (grid_height); } override public function getGridWidth():int{ return (grid_width); } } }//package
Section 323
//sAetherLightning (sAetherLightning) package { public class sAetherLightning extends Skill { public function sAetherLightning(_arg1:Character){ char_ref = _arg1; aiTargetsBackRow = true; rangedAttack = true; power_cost = 50; damage = Math.round((char_ref.damage * 0.8)); splashDamageMultiplier = 0.7; skillname = "Ion Bolt"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.lightning; } } }//package
Section 324
//sArachnoidWeb (sArachnoidWeb) package { public class sArachnoidWeb extends Skill { public function sArachnoidWeb(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; rangedAttack = true; hitsAllEnemies = true; damage = 0; power_cost = 80; attacksWithAccuracyMod = 0.75; crippling = 15; skillname = "Web"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.web; } } }//package
Section 325
//sAscendantRanged (sAscendantRanged) package { public class sAscendantRanged extends Skill { public function sAscendantRanged(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 1)); power_cost = 10; ignoresArmor = false; damageAccuracy = 10; skillname = "Energy Flare"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.holyDamage; } } }//package
Section 326
//SaveDeleteDialog (SaveDeleteDialog) package { import flash.events.*; import flash.display.*; import flash.ui.*; public class SaveDeleteDialog extends MovieClip { public var yes_btn:DeleteButton; var slot:int;// = 0 public var no_btn:KeepButton; public function SaveDeleteDialog(_arg1:int=0){ slot = 0; super(); this.slot = _arg1; this.yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickYes); this.no_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function clickYes(_arg1:MouseEvent):void{ if (((!((parent == null))) && ((parent is LoadParty)))){ LoadParty(parent).deleteSlot(slot); cleanup(); parent.removeChild(this); }; } function clickNo(_arg1:MouseEvent):void{ if (parent != null){ parent.removeChild(this); cleanup(); }; } private function cleanup(){ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickYes); no_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ESCAPE){ clickNo(null); }; } } }//package
Section 327
//SaveGameEmpty (SaveGameEmpty) package { import flash.display.*; public dynamic class SaveGameEmpty extends MovieClip { } }//package
Section 328
//SaveGameStatus (SaveGameStatus) package { import flash.events.*; import flash.text.*; import flash.display.*; public class SaveGameStatus extends MovieClip { private var scrolling:Boolean;// = false var slot:int;// = 1 public var infinite_mode_icon:MovieClip; public var bg:SaveGameStatusBG; public var del_btn:DeleteButton; public var load_btn:LoadButton; public var level_label:TextField; public var score:TextField; public var char3:CharacterPortrait; public var stats:StatusStatScroller; public var empty_panel:MovieClip; var empty:Boolean;// = false public var char1:CharacterPortrait; public var char2:CharacterPortrait; public var char4:CharacterPortrait; public function SaveGameStatus():void{ empty = false; slot = 1; scrolling = false; super(); DungeonMain.registerAliases(); char1.mouseEnabled = false; char2.mouseEnabled = false; char3.mouseEnabled = false; char4.mouseEnabled = false; level_label.mouseEnabled = false; stats.explore_rate.mouseEnabled = false; stats.clear_rate.mouseEnabled = false; stats.member_deaths.mouseEnabled = false; stats.party_defeats.mouseEnabled = false; stats.clear_rate.mouseEnabled = false; stats.shrines_used.mouseEnabled = false; load_btn.addEventListener(MouseEvent.MOUSE_DOWN, loadClick); del_btn.addEventListener(MouseEvent.MOUSE_DOWN, deleteClick); empty_panel.addEventListener(MouseEvent.MOUSE_DOWN, emptyClick); removeChild(empty_panel); stats.stop(); addEventListener(Event.ENTER_FRAME, enterFrameCheck); } public function emptySlot():void{ empty = true; level_label.text = (slot + ". Empty Slot"); if (!contains(empty_panel)){ addChild(empty_panel); }; } function emptyClick(_arg1:MouseEvent):void{ if (parent != null){ LoadParty(parent).newGame(slot); }; } function loadClick(_arg1:MouseEvent):void{ if (parent == null){ return; }; dm.main.loadGame(slot); } function deleteClick(_arg1:MouseEvent):void{ var _local2:SaveDeleteDialog; if (((!((parent == null))) && ((parent is LoadParty)))){ _local2 = new SaveDeleteDialog(slot); _local2.name = "dialog"; parent.addChild(_local2); }; } function enterFrameCheck(_arg1:Event):void{ var _local2:Boolean; _local2 = false; if ((((bg.mouseX > bg.width)) || ((bg.mouseX < 0)))){ _local2 = true; }; if ((((bg.mouseY > bg.height)) || ((bg.mouseY < 0)))){ _local2 = true; }; if (parent.getChildByName("dialog") != null){ _local2 = true; }; if (_local2){ bg.gotoAndStop("normal"); if (scrolling){ stats.stop(); }; scrolling = false; } else { bg.gotoAndStop("highlight"); if (!scrolling){ stats.play(); }; scrolling = true; }; } public function cleanup():void{ load_btn.removeEventListener(MouseEvent.MOUSE_DOWN, loadClick); del_btn.removeEventListener(MouseEvent.MOUSE_DOWN, deleteClick); empty_panel.removeEventListener(MouseEvent.MOUSE_DOWN, emptyClick); removeEventListener(Event.ENTER_FRAME, enterFrameCheck); } public function setParty(_arg1:Party, _arg2:Boolean=false):void{ var _local3:*; var _local4:*; var _local5:*; var _local6:*; var _local7:CharacterPortrait; if (_arg1 == null){ emptySlot(); return; }; empty = false; _local3 = ((slot + ". Dungeon Level ") + _arg1.level); if (_arg2){ _local3 = (_local3 + " - In Combat"); }; if (_arg1.hardcore){ _local3 = (_local3 + " (Hardcore)"); }; level_label.text = _local3; dm.embolden(level_label); _local4 = Math.round(((_arg1.stat_rooms_explored / _arg1.stat_rooms_total) * 100)); _local5 = Math.round(((_arg1.stat_hordes_defeated / (_arg1.level * 10)) * 100)); if (DungeonMain.debug){ }; stats.explore_rate.text = (String(_local4) + "%"); stats.clear_rate.text = (String(_local5) + "%"); stats.leaders.text = String(_arg1.stat_leaders_defeated); stats.member_deaths.text = String(_arg1.stat_member_deaths); stats.party_defeats.text = String(_arg1.stat_party_defeats); stats.shrines_used.text = String(_arg1.stat_shrines_used); score.text = String(_arg1.getScore()); _local6 = 0; while (_local6 < 4) { _local7 = CharacterPortrait(getChildByName(("char" + (_local6 + 1)))); if (_arg1.members[_local6] != null){ _local7.setChar(_arg1.members[_local6]); } else { removeChild(_local7); }; _local6++; }; if (_arg1.level <= DungeonMain.MAX_LEVEL){ removeChild(infinite_mode_icon); }; } } }//package
Section 329
//SaveGameStatusBG (SaveGameStatusBG) package { import flash.display.*; public dynamic class SaveGameStatusBG extends MovieClip { } }//package
Section 330
//sBasiliskPetrify (sBasiliskPetrify) package { public class sBasiliskPetrify extends Skill { public function sBasiliskPetrify(_arg1:Character){ char_ref = _arg1; aiCastLimit = 2; hitsAllMeleeRange = true; power_cost = 65; damage = 0; stun_percent = 100; skillname = "Petrify"; verbage = ("uses " + skillname); } } }//package
Section 331
//sBeholderDrain (sBeholderDrain) package { public class sBeholderDrain extends Skill { public function sBeholderDrain(_arg1:Character){ char_ref = _arg1; aiNotUnlessHurt = true; aiTargetHealthiest = true; rangedAttack = true; damage = Math.round((_arg1.damage * 0.5)); vampiric_percent = 100; curse = 0.3; power_cost = 40; ignoresArmor = true; skillname = "Steal Soul"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.monsterDrain; } } }//package
Section 332
//sBeholderRanged (sBeholderRanged) package { public class sBeholderRanged extends Skill { public function sBeholderRanged(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 1.3)); power_cost = 70; ignoresArmor = true; skillname = "Disentegrate"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.disintegrate; } } }//package
Section 333
//sBeholderRecover (sBeholderRecover) package { public class sBeholderRecover extends Skill { public function sBeholderRecover(_arg1:Character){ char_ref = _arg1; aiNotUnlessLowPower = true; targetsSelf = true; damage = Math.round((_arg1.health_max * 0.1)); powerRestore = 100; power_cost = 0; skillname = "Channeling"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.gainPower; } } }//package
Section 334
//sCelestialAccuracy (sCelestialAccuracy) package { public class sCelestialAccuracy extends Skill { public function sCelestialAccuracy(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; damage = 0; power_cost = 40; targetsFriendlies = true; hitsAllFriendlies = true; buff_accuracy = 20; skillname = "Celestial Guidance"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.buff; } } }//package
Section 335
//sCelestialArmor (sCelestialArmor) package { public class sCelestialArmor extends Skill { public function sCelestialArmor(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; damage = 0; power_cost = 40; targetsFriendlies = true; hitsAllFriendlies = true; buff_damageResist = 20; skillname = "Celestial Protection"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.armorBuff; } override public function description():String{ return ((("Caster gains an additional " + buff_damageResist) + "% damage resistance for the remainder of the battle.")); } } }//package
Section 336
//sCelestialSpeed (sCelestialSpeed) package { public class sCelestialSpeed extends Skill { public function sCelestialSpeed(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; damage = 0; power_cost = 40; targetsFriendlies = true; hitsAllFriendlies = true; buff_quickness = 10; skillname = "Celestial Motion"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.buff; } } }//package
Section 337
//sClericAE (sClericAE) package { public class sClericAE extends Skill { public function sClericAE(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; aiCastLimit = 0; magicStrength = 0.5; damage = getBaseMagicDamage(magicStrength); rangedAttack = true; hitsAllEnemies = true; power_cost = 55; iconFrame = 26; skillname = "Litany of Pain"; verbage = ("intones the " + skillname); specialAnimation = PortraitAnimation.holyDamage; } override public function description():String{ return ((("Magic area attack. Inflicts " + getDamage()) + " damage to all enemies.")); } } }//package
Section 338
//sClericDamageBuff (sClericDamageBuff) package { public class sClericDamageBuff extends Skill { public function sClericDamageBuff(_arg1:Character){ char_ref = _arg1; increasesWith = none; targetsFriendlies = true; rangedAttack = true; power_cost = 30; targetDamageMod = 1.75; iconFrame = 42; skillname = "Anoint"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.buff; } override public function description():String{ return ((("Target party member deals " + Math.round((targetDamageMod * 100))) + "% normal damage on next attack.")); } } }//package
Section 339
//sClericFlash (sClericFlash) package { public class sClericFlash extends Skill { public function sClericFlash(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; magicStrength = 0.3; damage = getBaseMagicDamage(magicStrength); onlyDamagesUndead = true; rangedAttack = true; hitsAllEnemies = true; power_cost = 40; damageAccuracy = 30; alwaysHits = true; iconFrame = 13; skillname = "Holy Light"; verbage = ("calls down " + skillname); specialAnimation = PortraitAnimation.blind; } override public function description():String{ return ((((("Reduce all enemies' accuracy by " + damageAccuracy) + "% for the remainder of the battle. Deals ") + getDamage()) + " damage to Undead. Always hits.")); } } }//package
Section 340
//sClericHeal (sClericHeal) package { public class sClericHeal extends Skill { public function sClericHeal(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; skillname = "Heal"; targetsFriendlies = true; rangedAttack = true; healing = 40; power_cost = 25; removesPoison = true; iconFrame = 9; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.heal; } override public function description():String{ return ((("Restore " + scaleHeal(healing)) + " health to one member of your party. Cures poison.")); } } }//package
Section 341
//sClericHealGroup (sClericHealGroup) package { public class sClericHealGroup extends Skill { public function sClericHealGroup(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; removesPoison = true; healing = 20; power_cost = 50; iconFrame = 10; skillname = "Heal All"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.heal; } override public function description():String{ return ((("Restore " + scaleHeal(healing)) + " health to every member of your party. Cures poison.")); } } }//package
Section 342
//sClericMelee (sClericMelee) package { public class sClericMelee extends Skill { public function sClericMelee(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; addWeaponDamage = true; scaleWeaponDamage = 2; power_cost = 50; requiresMelee = true; iconFrame = 4; skillname = "Fervor"; verbage = ("attacks with " + skillname); specialAnimation = PortraitAnimation.playerPowerSlash; } override public function description():String{ return ((((("Melee attack for " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + ")")); } } }//package
Section 343
//sClericPurify (sClericPurify) package { public class sClericPurify extends Skill { public function sClericPurify(_arg1:Character){ char_ref = _arg1; increasesWith = none; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; power_cost = 20; removesPoison = true; removesCurse = true; buff_resistPoison = 50; iconFrame = 45; skillname = "Purify"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.buff; } override public function description():String{ return ((("Removes poison and curse effects from all party members, and increases their poison resistance by " + buff_resistPoison) + " for the remainder of the battle.")); } } }//package
Section 344
//sClericRevive (sClericRevive) package { public class sClericRevive extends Skill { public function sClericRevive(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; targetsFriendlies = true; rangedAttack = true; healing = 30; power_cost = 60; removesPoison = true; resurrects = true; iconFrame = 47; skillname = "Revive"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.revive; } override public function description():String{ return ((("Revives fallen party member with " + scaleHeal(healing)) + " health.")); } } }//package
Section 345
//sClericShield (sClericShield) package { public class sClericShield extends Skill { public function sClericShield(_arg1:Character){ char_ref = _arg1; increasesWith = none; aiCastLimit = 1; damage = 0; power_cost = 50; targetsSelf = true; invulnerable = 1; iconFrame = 19; skillname = "Shield of Faith"; verbage = ("is enclosed in a " + skillname); specialAnimation = PortraitAnimation.armorBuff; } override public function description():String{ return ((("Caster takes no damage until " + char_ref.genderPossessive()) + " next turn.")); } } }//package
Section 346
//sClericSmite (sClericSmite) package { public class sClericSmite extends Skill { public function sClericSmite(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; magicStrength = 0.75; damage = getBaseMagicDamage(magicStrength); rangedAttack = true; power_cost = 30; undeadMultiplier = 2; alwaysHits = true; iconFrame = 44; skillname = "Smite"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.holyDamage; } override public function description():String{ return ((((("Ranged magic attack for " + getDamage()) + " damage. Deals ") + Math.round((undeadMultiplier * 100))) + "% damage to undead. Always hits.")); } } }//package
Section 347
//sCultistArrow (sCultistArrow) package { public class sCultistArrow extends Skill { public function sCultistArrow(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 0.5)); powerDamage = 25; power_cost = 75; skillname = "Draining Shot"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.cultistArrow; } } }//package
Section 348
//sCultistHeal (sCultistHeal) package { public class sCultistHeal extends Skill { public function sCultistHeal(_arg1:Character){ char_ref = _arg1; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; healing = Math.round((_arg1.health_max / 4)); powerRestore = 25; power_cost = 40; removesPoison = false; skillname = "Energy Flow"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.restore; } override public function description():String{ return ((("Restore " + scaleHeal(healing)) + " health to one member of your party. Cures poison.")); } } }//package
Section 349
//sCultistMeleeStun (sCultistMeleeStun) package { public class sCultistMeleeStun extends Skill { public function sCultistMeleeStun(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 1.2)); power_cost = 40; stun_percent = 60; skillname = "Impact"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.creatureWeapon; } } }//package
Section 350
//sCultistSever (sCultistSever) package { public class sCultistSever extends Skill { public function sCultistSever(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; damage = 0; rangedAttack = true; hitsAllEnemies = true; attacksWithAccuracyMod = 0.5; power_cost = 60; cancelPowerRegen = true; skillname = "Sever"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.debuff; } } }//package
Section 351
//sDeathKnightRally (sDeathKnightRally) package { public class sDeathKnightRally extends Skill { public function sDeathKnightRally(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; power_cost = 25; buff_damage = 1.25; healing = Math.round((_arg1.health_max / 6)); skillname = "Rally"; verbage = "rallies his troops"; specialAnimation = PortraitAnimation.buff; } override public function description():String{ return (""); } } }//package
Section 352
//sDemonClone (sDemonClone) package { public class sDemonClone extends Skill { public function sDemonClone(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; aiTopPriority = true; damage = 0; rangedAttack = true; hitsAllEnemies = true; alwaysHits = true; clonesPlayers = true; power_cost = 50; skillname = "Dark Mirror"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.clone; } } }//package
Section 353
//sDemonDoubleAttack (sDemonDoubleAttack) package { public class sDemonDoubleAttack extends Skill { public function sDemonDoubleAttack(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 0.6)); power_cost = 40; attacksTwoTargets = true; skillname = "Demonic Rage"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.creatureSlash; } } }//package
Section 354
//sDemonPoison (sDemonPoison) package { public class sDemonPoison extends Skill { public function sDemonPoison(_arg1:Character){ char_ref = _arg1; aiLowestPriority = true; rangedAttack = true; power_cost = 30; damage = 0; poisonDamage = Math.round((_arg1.damage / 6)); damageAccuracy = 15; crippling = 10; skillname = "Touch of Corruption"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.poison; } } }//package
Section 355
//sDragonFlame (sDragonFlame) package { public class sDragonFlame extends Skill { public function sDragonFlame(_arg1:Character){ char_ref = _arg1; rangedAttack = true; hitsAllEnemies = true; damage = Math.round((_arg1.damage * 0.6)); power_cost = 30; hasPortraitAnimation = true; portraitAnimationFrame = 6; skillname = "Flame Breath"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.fire; } } }//package
Section 356
//sDragonTail (sDragonTail) package { public class sDragonTail extends Skill { public function sDragonTail(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 0.8)); power_cost = 40; hitsAllMeleeRange = true; hasPortraitAnimation = true; portraitAnimationFrame = 4; skillname = "Tail Swipe"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.creatureWeapon; } override public function description():String{ return (""); } } }//package
Section 357
//SelectArrow (SelectArrow) package { import flash.display.*; public dynamic class SelectArrow extends SimpleButton { } }//package
Section 358
//sEngineConduit (sEngineConduit) package { public class sEngineConduit extends Skill { public function sEngineConduit(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; aiNotUnlessLowPower = true; rangedAttack = true; targetsFriendlies = true; hitsAllFriendlies = true; powerRestore = 50; power_cost = 50; iconFrame = 1; skillname = "Conduit"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.gainPower; } } }//package
Section 359
//sGhostAttack (sGhostAttack) package { public class sGhostAttack extends Skill { public function sGhostAttack(_arg1:Character){ char_ref = _arg1; damage = _arg1.damage; power_cost = 0; ignoresArmor = true; skillname = "Attack"; verbage = "attacks"; specialAnimation = PortraitAnimation.ghostAttack; } } }//package
Section 360
//sGhostHide (sGhostHide) package { public class sGhostHide extends Skill { public function sGhostHide(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; aiNotUnlessHurt = true; damage = 0; healing = Math.round((char_ref.health_max / 2)); power_cost = 50; targetsSelf = true; hidesTarget = true; skillname = "Vanish"; verbage = "fades from view"; } override public function description():String{ return (""); } } }//package
Section 361
//sGhostTouch (sGhostTouch) package { public class sGhostTouch extends Skill { public function sGhostTouch(_arg1:Character){ char_ref = _arg1; damage = 0; power_cost = 40; powerDamage = 30; stun_percent = 25; curse = 0.3; skillname = "Spectral Touch"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.curse; } } }//package
Section 362
//sGoblinCrossbow (sGoblinCrossbow) package { public class sGoblinCrossbow extends Skill { public function sGoblinCrossbow(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 0.5)); power_cost = 0; rangedAttack = true; attacksTwoTargets = true; skillname = "Repeating Crossbow"; verbage = "shoots"; specialAnimation = PortraitAnimation.monsterArrow; } } }//package
Section 363
//sGoblinGrenade (sGoblinGrenade) package { public class sGoblinGrenade extends Skill { public function sGoblinGrenade(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = char_ref.damage; power_cost = 30; splashDamageMultiplier = 0.6; skillname = "Grenade"; verbage = ("hurls " + skillname); specialAnimation = PortraitAnimation.explosion; } override public function description():String{ return (""); } } }//package
Section 364
//Shield (Shield) package { public class Shield extends Offhand { override public function generateItem(_arg1:int):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = false; if (item_rarity == Item.grey){ item_rarity = Item.white; }; getItemModifiers(); if (item_rarity == Item.green){ if (DungeonMain.RandomNum(0, 100) >= 50){ _local3 = true; } else { _local2 = true; }; }; if ((((item_rarity == Item.blue)) || (_local3))){ prefix = rollForPrefix(item_rarity); }; if ((((item_rarity == Item.blue)) || (_local2))){ suffix = rollForSuffix(item_rarity); }; if (prefix >= 0){ applyPrefix(); }; if (suffix >= 0){ applySuffix(); }; if (base_armor_rating){ armor_rating = scaleArmorForLevel((base_armor_rating * (1 + (base_armor_mod / 100)))); }; if (prefix >= 0){ item_name = ((prefixes[prefix][0] + " ") + item_name); }; if (suffix >= 0){ item_name = ((item_name + " of ") + suffixes[suffix][0]); }; } override public function getItemTypeString(){ return ("Shield"); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Thick", 1.2]); } } }//package
Section 365
//ShrineUseDialog (ShrineUseDialog) package { import flash.events.*; import flash.display.*; import flash.ui.*; public class ShrineUseDialog extends MovieClip { public var yes_btn:YesButton; public var no_btn:NotYetButton; public function ShrineUseDialog(){ this.yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickYes); this.no_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.addEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function clickYes(_arg1:MouseEvent):void{ if (((!((parent == null))) && ((parent is Dungeon)))){ cleanup(); Dungeon(parent).useShrine(); }; } function clickNo(_arg1:MouseEvent):void{ if (parent != null){ cleanup(); parent.removeChild(this); }; } private function cleanup():void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickYes); no_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickNo); dm.stage.removeEventListener(KeyboardEvent.KEY_DOWN, reportKeyDown); } function reportKeyDown(_arg1:KeyboardEvent):void{ if (_arg1.keyCode == Keyboard.ENTER){ clickYes(null); } else { if (_arg1.keyCode == Keyboard.ESCAPE){ clickNo(null); }; }; } } }//package
Section 366
//Skill (Skill) package { public class Skill { var showWeaponAnimation:Boolean;// = false var requiresRanged:Boolean;// = false var undeadMultiplier;// = 0 var clonesPlayers:Boolean;// = false var char_ref:Character; var invulnerable:int;// = 0 var onlyDamagesUndead;// = false var makeDamageSponge:Boolean;// = false var increaseRate;// = 1 var aiNotUnlessLowPower:Boolean;// = false var crippling:int;// = 0 var aiTargetsBackRow:Boolean;// = false var skillname:String;// = "Skill" var cancelPowerRegen:Boolean;// = false var hidesTarget;// = false private var _power_cost:int;// = 0 var transformCreatureClass:MonsterCharacter;// = null var removesPoison:Boolean;// = false var aiCastLimit:int;// = -1 var requiresMelee:Boolean;// = false var iconFrame;// = 1 var cannotDie:int;// = 0 var targetDamageMod;// = 1 var curse;// = 0 var costsRemainingPower:Boolean;// = false var vampiric_percent:int;// = 0 var poisonDamage:int;// = 0 var attacksTwoTargets:Boolean;// = false var buff_damageResist;// = 0 var addsPowerToLethality:Boolean;// = false var hitsAllEnemies;// = false var hasPortraitAnimation:Boolean;// = false var requiresShield:Boolean;// = false var aiTopPriority:Boolean;// = false var specialAnimation:int;// = 0 var aiNotUnlessHurt:Boolean;// = false var powerDamage:int;// = 0 var increasesWith:int;// = 5 var buff_quickness;// = 0 var buff_damage;// = 1 var portraitAnimationDuration:int;// = 1500 var ignoresArmor:Boolean;// = false var portraitAnimationFrame:int;// = 0 var unlocked:Boolean;// = false var aiAllowSuicide:Boolean;// = false var healing:int;// = 0 var tempDamageResistance:int;// = 0 var buff_vampiric;// = 0 var active:Boolean;// = false var gainPowerFromKill:int;// = 0 var extraSpeedAttacks:int;// = 0 var magicStrength:Number;// = 0 var lethality:int;// = 0 var splashDamageMultiplier;// = 0 var usesWeaponRange;// = false var damageBonusVsCreatureModifier;// = 1 var buff_stun;// = 0 var position:int;// = 1 var scaleWeaponDamage;// = 1 var allyBonusAttack:Boolean;// = false var buff_resistStun;// = 0 var targetsStunned;// = false var targetsFriendlies;// = false var buff_healthRegen;// = 0 var hitsAllMeleeRange;// = false var piercesColumn;// = false var buff_damageReflect;// = 0 var removesCurse:Boolean;// = false var buff_accuracy;// = 0 var requiresWeapon:Boolean;// = false var targetsEmpty;// = false var damage:int;// = 0 var targetsSelf;// = false var verbage:String; var damageBonusVsCreatureType;// = 0 var damageAccuracy:int;// = 0 var aiTargetHealthiest:Boolean;// = false var buff_powerRegen;// = 0 var hitsAllFriendlies;// = false var attacksMultipleTimes:int;// = 0 var aiLowestPriority:Boolean;// = false var stun_percent:int;// = 0 var nonLethal:Boolean;// = false var suppressStunAnim:Boolean;// = false var aiCastCount:int;// = 0 var powerRestore:int;// = 0 var health_cost:int;// = 0 var summonsCreatureClass:MonsterCharacter;// = null var unarmedAttack;// = false var addWeaponDamage;// = false var targetsFriendlyFrontRow:Boolean;// = false var rangedAttack;// = false var resurrects:Boolean;// = false var powerDrain:Boolean;// = false var alwaysHits:Boolean;// = false var buff_resistPoison;// = 0 var attacksWithAccuracyMod;// = 1 static const intellect = 4; static const strength = 1; static const dexterity = 3; static const endurance = 2; static const level = 6; static const weapon = 5; static const none = 0; public function Skill(){ skillname = "Skill"; verbage = ("uses " + String(skillname)); iconFrame = 1; active = false; position = 1; unlocked = false; aiCastLimit = -1; aiCastCount = 0; aiNotUnlessHurt = false; aiTargetHealthiest = false; aiNotUnlessLowPower = false; aiTopPriority = false; aiLowestPriority = false; aiAllowSuicide = false; aiTargetsBackRow = false; increasesWith = Skill.weapon; increaseRate = 1; requiresWeapon = false; requiresMelee = false; requiresRanged = false; requiresShield = false; _power_cost = 0; health_cost = 0; damage = 0; healing = 0; buff_resistPoison = 0; buff_resistStun = 0; buff_damageResist = 0; buff_damageReflect = 0; buff_healthRegen = 0; buff_powerRegen = 0; buff_vampiric = 0; buff_stun = 0; buff_quickness = 0; buff_damage = 1; buff_accuracy = 0; powerDamage = 0; powerDrain = false; gainPowerFromKill = 0; powerRestore = 0; clonesPlayers = false; lethality = 0; costsRemainingPower = false; addsPowerToLethality = false; hidesTarget = false; unarmedAttack = false; summonsCreatureClass = null; transformCreatureClass = null; makeDamageSponge = false; tempDamageResistance = 0; targetsFriendlyFrontRow = false; targetsStunned = false; cancelPowerRegen = false; damageAccuracy = 0; crippling = 0; targetDamageMod = 1; nonLethal = false; undeadMultiplier = 0; onlyDamagesUndead = false; vampiric_percent = 0; stun_percent = 0; alwaysHits = false; allyBonusAttack = false; attacksMultipleTimes = 0; attacksWithAccuracyMod = 1; extraSpeedAttacks = 0; attacksTwoTargets = false; curse = 0; removesCurse = false; poisonDamage = 0; removesPoison = false; resurrects = false; cannotDie = 0; invulnerable = 0; ignoresArmor = false; rangedAttack = false; usesWeaponRange = false; targetsFriendlies = false; targetsSelf = false; targetsEmpty = false; hitsAllFriendlies = false; hitsAllEnemies = false; hitsAllMeleeRange = false; piercesColumn = false; splashDamageMultiplier = 0; scaleWeaponDamage = 1; addWeaponDamage = false; magicStrength = 0; damageBonusVsCreatureType = 0; damageBonusVsCreatureModifier = 1; hasPortraitAnimation = false; portraitAnimationFrame = 0; portraitAnimationDuration = 1500; specialAnimation = 0; showWeaponAnimation = false; suppressStunAnim = false; super(); } public function description():String{ return ("Blank skill description"); } public function isPhysical():Boolean{ if (skillname == "Magic Attack"){ return (false); }; if (((((((unarmedAttack) || (addWeaponDamage))) || (requiresMelee))) || (requiresRanged))){ return (true); }; return (false); } public function getCostString():String{ var _local1:*; if (((costsRemainingPower) && (power_cost))){ _local1 = (("Requires " + power_cost) + " power\n Uses remaining power"); } else { if (costsRemainingPower){ _local1 = "Uses remaining power"; } else { if (power_cost){ _local1 = (("Uses " + power_cost) + " power"); }; }; }; return (_local1); } public function getDamage():int{ var _local1:PlayerCharacter; var _local2:int; var _local3:*; var _local4:*; _local1 = null; _local2 = damage; if (((!((char_ref == null))) && ((char_ref is PlayerCharacter)))){ _local1 = PlayerCharacter(char_ref); }; if (((unarmedAttack) && (!((_local1 == null))))){ return (_local1.getUnarmedDamage()); }; if (((addWeaponDamage) && (!((_local1 == null))))){ _local3 = _local1.getWeaponDamage(); _local3 = (_local3 * scaleWeaponDamage); _local2 = (_local2 + Math.round(_local3)); }; if (((((((damage) && (!((_local1 == null))))) && (!((increasesWith == Skill.none))))) && (!((increasesWith == Skill.level))))){ _local4 = getStat(increasesWith); if (_local4 > 0){ _local2 = (_local2 + getScaledDamage(_local4)); }; }; return (_local2); } public function scaleHeal(_arg1:int):int{ var _local2:*; var _local3:int; var _local4:*; if (_arg1 <= 0){ return (0); }; _local2 = getStat(increasesWith); if (_local2 > 0){ _local4 = (1 + (((_local2 - 1) * 0.05) * increaseRate)); _arg1 = Math.round((_arg1 * _local4)); }; _local3 = (_arg1 + char_ref.getHealingBonus()); return (_local3); } public function get power_cost():int{ return (this._power_cost); } private function getStat(_arg1:int):int{ var _local2:*; _local2 = 0; if (_arg1 == Skill.strength){ _local2 = char_ref.getStrength(); } else { if (_arg1 == Skill.dexterity){ _local2 = char_ref.getDexterity(); } else { if (_arg1 == Skill.endurance){ _local2 = char_ref.getEndurance(); } else { if (_arg1 == Skill.intellect){ _local2 = char_ref.getIntellect(); }; }; }; }; return (_local2); } private function getScaledDamage(_arg1:int):int{ var _local2:int; var _local3:Number; _arg1--; _local2 = (30 * (char_ref.level - 1)); _local3 = ((_arg1 * increaseRate) * (_local2 / ((PlayerCharacter.STATS_PER_LEVEL * char_ref.level) * 2))); if (magicStrength > 0){ _local3 = (_local3 * magicStrength); }; return (Math.round(_local3)); } public function scalePoison():int{ if (((!((increasesWith == Skill.none))) && (!((increasesWith == Skill.weapon))))){ return ((poisonDamage + getScaledDamage(getStat(increasesWith)))); }; return (poisonDamage); } public function usable(_arg1=false):Boolean{ var _local2:*; var _local3:*; if ((char_ref is PlayerCharacter)){ _local2 = PlayerCharacter(char_ref).gear[Equipment.weapon]; _local3 = PlayerCharacter(char_ref).gear[Equipment.offhand]; if (((requiresWeapon) && ((_local2 == null)))){ return (false); }; if (((requiresMelee) && (!((_local2 is MeleeWeapon))))){ return (false); }; if (((requiresRanged) && (!((_local2 is RangedWeapon))))){ return (false); }; if (((requiresShield) && (!((_local3 is Shield))))){ return (false); }; }; if (char_ref.power < power_cost){ return (false); }; return (true); } public function getDefianceHealth():int{ var _local1:*; _local1 = 1; if (((!((char_ref == null))) && ((char_ref is PlayerCharacter)))){ _local1 = char_ref.getEndurance(); }; return (_local1); } public function set power_cost(_arg1:int):void{ this._power_cost = _arg1; } public static function getBaseMagicDamage(_arg1:Number):int{ var _local2:*; _local2 = Math.round(((Weapon.staff_base_damage * 2.2) * _arg1)); return (_local2); } } }//package
Section 367
//SkillBar (SkillBar) package { import flash.events.*; import flash.display.*; public class SkillBar extends Sprite { public var slot3:SkillIconEmpty; var icons:Array; public var slot2:SkillIconEmpty; var selected_id:int; var sih:SkillIconHighlight; public var slot5:SkillIconEmpty; public var slot1:SkillIconEmpty; public var slot4:SkillIconEmpty; public var slot6:SkillIconEmpty; static const max_skills = 6; public function SkillBar(){ icons = new Array(); super(); icons.length = 0; selected_id = 0; sih = new SkillIconHighlight(); addChild(sih); } public function incrementSkill(){ var _local1:*; _local1 = (selected_id + 1); if (_local1 >= icons.length){ _local1 = 0; }; setSelectedSkill(_local1); } public function setSelectedSkill(_arg1:int){ sih.x = icons[_arg1].x; sih.y = icons[_arg1].y; selected_id = _arg1; Battlefield(parent).powerPreview(); } public function cleanup():void{ var _local1:*; _local1 = 0; while (_local1 < icons.length) { icons[_local1].cleanup(); icons[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, skillClick); _local1++; }; } public function decrementSkill(){ var _local1:*; _local1 = (selected_id - 1); if (_local1 < 0){ _local1 = (icons.length - 1); }; setSelectedSkill(_local1); } public function addIcon(_arg1:SkillIcon):Boolean{ var _local2:*; var _local3:*; var _local4:SkillIconEmpty; if (icons.length < max_skills){ _local4 = SkillIconEmpty(getChildByName(("slot" + _arg1.skill_ref.position))); if (_local4 == null){ return (false); }; _arg1.x = _local4.x; _arg1.y = _local4.y; icons.push(_arg1); _arg1.setUsable(_arg1.skill_ref.usable()); addChild(_arg1); _arg1.addEventListener(MouseEvent.MOUSE_DOWN, skillClick); reOrderByPosition(); setSelectedSkill(0); return (true); }; return (false); } public function skillClick(_arg1:MouseEvent):void{ var _local2:*; var _local3:*; _local2 = 0; while (_local2 < icons.length) { if (icons[_local2] == SkillIcon(_arg1.currentTarget)){ setSelectedSkill(_local2); Battlefield(parent).ValidTargetsForPlayer(icons[_local2].skill_ref); break; }; _local2++; }; } public function getSelectedSkill():Skill{ var _local1:*; _local1 = null; if (selected_id < icons.length){ _local1 = SkillIcon(icons[selected_id]).skill_ref; }; return (_local1); } private function reOrderByPosition():void{ var _local1:Array; var _local2:*; var _local3:*; _local1 = new Array(); _local2 = 1; while (_local2 <= 6) { _local3 = 0; while (_local3 < icons.length) { if (icons[_local3].skill_ref.position == _local2){ _local1.push(icons[_local3]); }; _local3++; }; _local2++; }; icons = _local1; } } }//package
Section 368
//SkillIcon (SkillIcon) package { import flash.events.*; import flash.display.*; import flash.geom.*; public class SkillIcon extends MovieClip { var tooltip:SkillTooltip; var char_ref:PlayerCharacter; public var bg:SkillIconBG; var skill_ref:Skill; var tt_text:String; var tt_title:String; public function SkillIcon(){ bg.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); bg.addEventListener(MouseEvent.MOUSE_MOVE, mouseOverTarget); bg.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); } function added(_arg1:Event):void{ this.addEventListener(Event.REMOVED_FROM_STAGE, removed); } public function setUsable(_arg1:Boolean):void{ if (_arg1){ bg.gotoAndStop(1); } else { bg.gotoAndStop(2); }; } public function setSkill(_arg1:Skill){ this.skill_ref = _arg1; tt_text = skill_ref.description(); tt_title = skill_ref.skillname; this.gotoAndStop(_arg1.iconFrame); if (((!((skill_ref.char_ref == null))) && ((skill_ref.char_ref is PlayerCharacter)))){ this.char_ref = PlayerCharacter(skill_ref.char_ref); }; } function mouseOverTarget(_arg1:MouseEvent):void{ var _local2:Point; var _local3:*; var _local4:*; var _local5 = ??pushnamespace ; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); _local3 = _local2.x; _local4 = _local2.y; _local5 = 0; if (((_local2.x + tooltip.width) + _local5) > DungeonMain.app_width){ _local3 = (_local3 + (DungeonMain.app_width - ((_local2.x + tooltip.width) + _local5))); }; if (((_local2.y + tooltip.height) + _local5) > DungeonMain.app_height){ _local4 = (_local4 + (DungeonMain.app_height - ((_local2.y + tooltip.height) + _local5))); }; tooltip.x = _local3; tooltip.y = _local4; _arg1.updateAfterEvent(); } private function newTooltip():Boolean{ var _local1:String; var _local2:String; var _local3:Boolean; var _local4:Boolean; _local3 = false; if (skill_ref.requiresWeapon){ _local1 = "Requires Weapon"; if (char_ref.gear[Equipment.weapon] != null){ _local3 = true; }; } else { if (skill_ref.requiresMelee){ _local1 = "Requires Melee Weapon"; if (((!((char_ref.gear[Equipment.weapon] == null))) && ((char_ref.gear[Equipment.weapon] is MeleeWeapon)))){ _local3 = true; }; } else { if (skill_ref.requiresRanged){ _local1 = "Requires Ranged Weapon"; if (((!((char_ref.gear[Equipment.weapon] == null))) && ((char_ref.gear[Equipment.weapon] is RangedWeapon)))){ _local3 = true; }; } else { if (skill_ref.requiresShield){ _local1 = "Requires Shield"; if (((!((char_ref.gear[Equipment.offhand] == null))) && ((char_ref.gear[Equipment.offhand] is Shield)))){ _local3 = true; }; }; }; }; }; if (skill_ref.increasesWith != Skill.none){ if (skill_ref.increasesWith == Skill.weapon){ _local2 = "Effect increases with Weapon Damage"; }; if (skill_ref.increasesWith == Skill.level){ _local2 = "Effect increases with Level"; }; if (skill_ref.increasesWith == Skill.strength){ _local2 = "Effect increases with Strength"; }; if (skill_ref.increasesWith == Skill.intellect){ _local2 = "Effect increases with Intellect"; }; if (skill_ref.increasesWith == Skill.endurance){ _local2 = "Effect increases with Endurance"; }; if (skill_ref.increasesWith == Skill.dexterity){ _local2 = "Effect increases with Dexterity"; }; }; _local4 = false; if ((((char_ref.power > 0)) && ((char_ref.power >= skill_ref.power_cost)))){ _local4 = true; }; tooltip = new SkillTooltip(tt_title, tt_text, _local1, _local3, _local2, skill_ref.getCostString(), _local4); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip_skill"; stage.addChild(tooltip); return (true); } function mouseOutTarget(_arg1:MouseEvent):void{ if (((!((tooltip == null))) && (!((stage == null))))){ stage.removeChild(tooltip); tooltip = null; }; } public function setOwner(_arg1:PlayerCharacter){ this.char_ref = _arg1; } function removed(_arg1:Event):void{ this.removeEventListener(Event.REMOVED_FROM_STAGE, removed); if (this.tooltip != null){ mouseOutTarget(null); }; } public function cleanup():void{ bg.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); bg.removeEventListener(MouseEvent.MOUSE_MOVE, mouseOverTarget); bg.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); } } }//package
Section 369
//SkillIconBG (SkillIconBG) package { import flash.display.*; public class SkillIconBG extends MovieClip { public function SkillIconBG(){ addFrameScript(0, frame1); } function frame1(){ this.stop(); } } }//package
Section 370
//SkillIconEmpty (SkillIconEmpty) package { import flash.display.*; public dynamic class SkillIconEmpty extends Sprite { } }//package
Section 371
//SkillIconHighlight (SkillIconHighlight) package { import flash.display.*; public dynamic class SkillIconHighlight extends MovieClip { } }//package
Section 372
//SkillTooltip (SkillTooltip) package { import flash.text.*; import flash.display.*; public class SkillTooltip extends Sprite { const red_text = 0xCC0000; const white_text = 0xFFFFFF; const grey_text = 0xCCCCCC; const purple_text = 0x9900FF; const green_text = 0x66FF00; const blue_text = 26367; public var tooltip_bg:ItemTooltipBg; public var requires_label:TextField; public var text_label:TextField; public var title_label:TextField; public var power_cost_label:TextField; public var increase_label:TextField; public function SkillTooltip(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:Boolean=false, _arg5:String="", _arg6:String="", _arg7:Boolean=false){ var _local8:*; var _local9:*; super(); if (_arg1 == null){ _arg1 = "Blank"; }; if (_arg2 == null){ _arg2 = "Tooltip contents failed to load."; }; title_label.autoSize = TextFieldAutoSize.CENTER; title_label.text = _arg1; dm.embolden(title_label); _local8 = title_label.height; title_label.autoSize = TextFieldAutoSize.NONE; if (_local8 == 16){ title_label.height = (_local8 + 5); }; _local9 = ((title_label.y + title_label.height) + 4); if (_arg3 != null){ requires_label.y = (_local9 - 3); _local9 = (_local9 + (requires_label.height + 3)); requires_label.text = _arg3; dm.embolden(requires_label); if (_arg4){ requires_label.textColor = white_text; } else { requires_label.textColor = red_text; }; } else { removeChild(requires_label); }; if (_arg5 != null){ increase_label.y = (_local9 - 3); if (_arg3 != null){ increase_label.y = (increase_label.y - 4); }; _local9 = (_local9 + (increase_label.height + 3)); increase_label.text = _arg5; } else { removeChild(increase_label); }; text_label.y = (_local9 + 3); text_label.text = _arg2; text_label.autoSize = TextFieldAutoSize.CENTER; _local9 = ((text_label.y + text_label.height) + 4); if (_arg6 != null){ power_cost_label.y = (_local9 + 6); _local9 = (_local9 + (2 + power_cost_label.height)); power_cost_label.text = _arg6; dm.embolden(power_cost_label); if (_arg7){ power_cost_label.textColor = white_text; } else { power_cost_label.textColor = red_text; }; } else { removeChild(power_cost_label); }; tooltip_bg.height = (_local9 + 15); } } }//package
Section 373
//slash1_sound (slash1_sound) package { import flash.media.*; public dynamic class slash1_sound extends Sound { } }//package
Section 374
//sLichAE (sLichAE) package { public class sLichAE extends Skill { public function sLichAE(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; rangedAttack = true; hitsAllEnemies = true; damage = Math.round((_arg1.damage / 4)); poisonDamage = 10; power_cost = 60; skillname = "Poison Cloud"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.poison; } } }//package
Section 375
//sLichStun (sLichStun) package { public class sLichStun extends Skill { public function sLichStun(_arg1:Character){ char_ref = _arg1; aiCastLimit = 2; rangedAttack = true; hitsAllEnemies = true; alwaysHits = true; damage = Math.round((_arg1.damage / 4)); stun_percent = 60; power_cost = 75; skillname = "Fear of Death"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.fearDeath; } } }//package
Section 376
//sLightningDrakeAE (sLightningDrakeAE) package { public class sLightningDrakeAE extends Skill { public function sLightningDrakeAE(_arg1:Character){ char_ref = _arg1; aiTopPriority = true; damage = Math.round((_arg1.damage * 0.8)); power_cost = 60; hitsAllMeleeRange = true; skillname = "Lightning Arc"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.lightning; } } }//package
Section 377
//sMageAE (sMageAE) package { public class sMageAE extends Skill { public function sMageAE(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; aiCastLimit = 0; magicStrength = 0.7; damage = getBaseMagicDamage(magicStrength); rangedAttack = true; hitsAllEnemies = true; power_cost = 55; iconFrame = 40; skillname = "Electrical Storm"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.lightning; } override public function description():String{ return ((("Magic area attack. Inflicts " + getDamage()) + " damage to all enemies.")); } } }//package
Section 378
//sMageArmor (sMageArmor) package { public class sMageArmor extends Skill { public function sMageArmor(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 1; damage = 0; power_cost = 25; targetsSelf = true; buff_damageResist = 40; iconFrame = 19; skillname = "Arcane Armor"; verbage = ("summons " + skillname); specialAnimation = PortraitAnimation.armorBuff; } override public function description():String{ return ((("Caster gains an additional " + buff_damageResist) + "% damage resistance for the remainder of the battle.")); } } }//package
Section 379
//sMageAttack (sMageAttack) package { public class sMageAttack extends Skill { public function sMageAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; unlocked = true; damage = 0; addWeaponDamage = true; rangedAttack = true; power_cost = 0; skillname = "Magic Attack"; verbage = "fires a bolt from his staff"; iconFrame = 32; specialAnimation = PortraitAnimation.mageAttack; } override public function description():String{ return ((("Ranged magic attack with equipped weapon. Causes " + getDamage()) + " damage.\n\n[Skill cannot be removed]")); } } }//package
Section 380
//sMageBolt (sMageBolt) package { public class sMageBolt extends Skill { public function sMageBolt(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; magicStrength = 1; damage = getBaseMagicDamage(magicStrength); rangedAttack = true; power_cost = 25; stun_percent = 25; iconFrame = 37; skillname = "Freeze"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.freeze; } override public function description():String{ return ((((("Ranged magic attack for " + getDamage()) + " damage. ") + stun_percent) + "% chance to stun the target.")); } } }//package
Section 381
//sMageDrain (sMageDrain) package { public class sMageDrain extends Skill { public function sMageDrain(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; rangedAttack = true; hitsAllEnemies = true; damage = 0; powerDamage = 20; powerDrain = true; power_cost = 50; iconFrame = 54; skillname = "Power Siphon"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.monsterDrain; } override public function description():String{ return ((("Drains up to " + powerDamage) + " power from each enemy.")); } } }//package
Section 382
//sMageExplosion (sMageExplosion) package { public class sMageExplosion extends Skill { public function sMageExplosion(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; aiTargetsBackRow = true; magicStrength = 0.8; damage = getBaseMagicDamage(magicStrength); rangedAttack = true; power_cost = 35; splashDamageMultiplier = 0.8; skillname = "Fireball"; verbage = ("casts " + skillname); iconFrame = 55; specialAnimation = PortraitAnimation.explosion; } override public function description():String{ return ((((("Ranged magic attack for " + getDamage()) + " damage. Characters (including allies) in adjacent squares take ") + Math.round((getDamage() * splashDamageMultiplier))) + " damage.")); } } }//package
Section 383
//sMageInvisibility (sMageInvisibility) package { public class sMageInvisibility extends Skill { public function sMageInvisibility(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; aiCastLimit = 0; damage = 0; power_cost = 30; targetsFriendlies = true; rangedAttack = true; hidesTarget = true; iconFrame = 16; skillname = "Invisibility"; verbage = ("casts " + skillname); } override public function description():String{ return ("Target may not be directly attacked until their next turn."); } } }//package
Section 384
//sMagePrison (sMagePrison) package { public class sMagePrison extends Skill { public function sMagePrison(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; rangedAttack = true; stun_percent = 100; alwaysHits = true; tempDamageResistance = 40; magicStrength = 0.3; damage = getBaseMagicDamage(magicStrength); power_cost = 30; skillname = "Cosmic Prison"; verbage = ("conjures a " + skillname); iconFrame = 39; suppressStunAnim = true; specialAnimation = PortraitAnimation.cosmicPrison; } override public function description():String{ return ((((("Encase the target in an arcane prison, causing " + getDamage()) + " damage. The target is stunned, but gains ") + tempDamageResistance) + "% damage resistance until their next turn. Does not miss.\n\n(Note: If the stun effect is resisted, the damage resistance bonus still applies)")); } } }//package
Section 385
//sMageSword (sMageSword) package { public class sMageSword extends Skill { public function sMageSword(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; power_cost = 65; iconFrame = 4; requiresMelee = true; addWeaponDamage = true; rangedAttack = true; scaleWeaponDamage = 1; attacksMultipleTimes = 4; skillname = "Ensorcelled Blade"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.playerMultiSlash; } override public function description():String{ return ((((("Four ranged attacks with equipped melee weapon on any target. (" + getDamage()) + "x") + attacksMultipleTimes) + " damage)")); } } }//package
Section 386
//sMageThorns (sMageThorns) package { public class sMageThorns extends Skill { public function sMageThorns(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; damage = 0; power_cost = 25; targetsFriendlies = true; rangedAttack = true; buff_damageReflect = 50; iconFrame = 41; skillname = "Flickering Flames"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.fireBuff; } override public function description():String{ return ((("Target reflects " + buff_damageReflect) + "% of damage taken back onto attacker for the remainder of the battle.")); } } }//package
Section 387
//sMageTouch (sMageTouch) package { public class sMageTouch extends Skill { public function sMageTouch(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; magicStrength = 1.35; damage = getBaseMagicDamage(magicStrength); rangedAttack = false; power_cost = 25; iconFrame = 35; skillname = "Incinerate"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.fire; } override public function description():String{ return ((("Close range magic attack. Causes " + getDamage()) + " damage to a single target in melee range.")); } } }//package
Section 388
//smite_effect (smite_effect) package { import flash.display.*; public dynamic class smite_effect extends MovieClip { public function smite_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.smite); } function frame45(){ this.stop(); } } }//package
Section 389
//sMonsterAttack (sMonsterAttack) package { public class sMonsterAttack extends Skill { public function sMonsterAttack(_arg1:Character){ char_ref = _arg1; damage = _arg1.damage; power_cost = 0; skillname = "Attack"; verbage = "attacks"; specialAnimation = PortraitAnimation.creatureSlash; } } }//package
Section 390
//sMonsterAttackWeapon (sMonsterAttackWeapon) package { public class sMonsterAttackWeapon extends Skill { public function sMonsterAttackWeapon(_arg1:Character){ char_ref = _arg1; damage = _arg1.damage; power_cost = 0; skillname = "Attack"; verbage = "attacks"; specialAnimation = PortraitAnimation.creatureWeapon; } } }//package
Section 391
//sMonsterCurse (sMonsterCurse) package { public class sMonsterCurse extends Skill { public function sMonsterCurse(_arg1:Character){ char_ref = _arg1; aiCastLimit = 2; rangedAttack = true; damage = 0; power_cost = 25; curse = 0.5; skillname = "Curse"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.curse; } } }//package
Section 392
//sMonsterDoubleAttack (sMonsterDoubleAttack) package { public class sMonsterDoubleAttack extends Skill { public function sMonsterDoubleAttack(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 0.65)); power_cost = 25; attacksTwoTargets = true; skillname = "Double Attack"; verbage = "attacks savagely"; specialAnimation = PortraitAnimation.creatureWeapon; } } }//package
Section 393
//sMonsterFlightAttack (sMonsterFlightAttack) package { public class sMonsterFlightAttack extends Skill { public function sMonsterFlightAttack(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 0.9)); power_cost = 30; skillname = "Flying Attack"; verbage = "swoops down on the enemy"; specialAnimation = PortraitAnimation.swoopAttack; } } }//package
Section 394
//sMonsterHeal (sMonsterHeal) package { public class sMonsterHeal extends Skill { public function sMonsterHeal(_arg1:Character){ char_ref = _arg1; targetsFriendlies = true; rangedAttack = true; healing = Math.round((_arg1.health_max * 0.6)); power_cost = 40; removesPoison = true; skillname = "Heal"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.heal; } override public function description():String{ return ((("Restore " + scaleHeal(healing)) + " health to one member of your party. Cures poison.")); } } }//package
Section 395
//sMonsterMagicAttack (sMonsterMagicAttack) package { public class sMonsterMagicAttack extends Skill { public function sMonsterMagicAttack(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = _arg1.damage; power_cost = 0; skillname = "Arcane Bolt"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.monsterMagic; } } }//package
Section 396
//sMonsterMagicCold (sMonsterMagicCold) package { public class sMonsterMagicCold extends Skill { public function sMonsterMagicCold(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = _arg1.damage; power_cost = 0; skillname = "Deathly Chill"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.freeze; } } }//package
Section 397
//sMonsterMeleeAE (sMonsterMeleeAE) package { public class sMonsterMeleeAE extends Skill { public function sMonsterMeleeAE(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 0.8)); power_cost = 55; hitsAllMeleeRange = true; skillname = "Hew"; verbage = "hews through the enemy"; specialAnimation = PortraitAnimation.creatureWeapon; } override public function description():String{ return (""); } } }//package
Section 398
//sMonsterPierce (sMonsterPierce) package { public class sMonsterPierce extends Skill { public function sMonsterPierce(_arg1:Character){ char_ref = _arg1; damage = Math.round((char_ref.damage * 0.9)); power_cost = 40; piercesColumn = true; skillname = "Spear Lunge"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.creatureSpear; } override public function description():String{ return (""); } } }//package
Section 399
//sMonsterRangedAttack (sMonsterRangedAttack) package { public class sMonsterRangedAttack extends Skill { public function sMonsterRangedAttack(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 1)); skillname = "Arrow"; rangedAttack = true; power_cost = 20; verbage = ("fires " + skillname); specialAnimation = PortraitAnimation.monsterArrow; } } }//package
Section 400
//sMonsterShadowStrike (sMonsterShadowStrike) package { public class sMonsterShadowStrike extends Skill { public function sMonsterShadowStrike(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 1.1)); power_cost = 60; skillname = "Shadowstrike"; verbage = "strikes from the shadows"; specialAnimation = PortraitAnimation.creatureSlash; } } }//package
Section 401
//sMonsterStoneForm (sMonsterStoneForm) package { public class sMonsterStoneForm extends Skill { public function sMonsterStoneForm(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; aiNotUnlessHurt = true; targetsSelf = true; cannotDie = 1; healing = Math.round((0.5 * _arg1.health_max)); power_cost = 50; skillname = "Stone Form"; verbage = ("enters " + skillname); specialAnimation = PortraitAnimation.armorBuff; } } }//package
Section 402
//SneakyScroll (SneakyScroll) package { public class SneakyScroll extends Consumable { public function SneakyScroll(_arg1:int=1){ item_name = "Scroll of Deception"; sneaky = true; item_rarity = Item.blue; icon_frame = 84; } } }//package
Section 403
//sNecroDrain (sNecroDrain) package { public class sNecroDrain extends Skill { public function sNecroDrain(_arg1:Character){ char_ref = _arg1; aiNotUnlessHurt = true; rangedAttack = true; targetsFriendlies = true; damage = Math.round((_arg1.damage * 0.4)); vampiric_percent = 120; powerDamage = 50; powerDrain = true; power_cost = 10; skillname = "Drain Minion"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.monsterDrain; } override public function description():String{ return (""); } } }//package
Section 404
//sNecroSponge (sNecroSponge) package { public class sNecroSponge extends Skill { public function sNecroSponge(_arg1:Character){ char_ref = _arg1; damage = 0; power_cost = 30; targetsFriendlies = true; rangedAttack = true; targetsFriendlyFrontRow = true; makeDamageSponge = true; skillname = "Servitude"; verbage = ("casts " + skillname); specialAnimation = PortraitAnimation.protectAllies; } override public function description():String{ return (""); } } }//package
Section 405
//sOrcAxeThrow (sOrcAxeThrow) package { public class sOrcAxeThrow extends Skill { public function sOrcAxeThrow(_arg1:Character){ char_ref = _arg1; damage = Math.round((_arg1.damage * 1)); rangedAttack = true; power_cost = 20; skillname = "Axe"; verbage = ("throws " + skillname); specialAnimation = PortraitAnimation.monsterThrown; } } }//package
Section 406
//sOrcSponge (sOrcSponge) package { public class sOrcSponge extends Skill { public function sOrcSponge(_arg1:Character){ char_ref = _arg1; aiCastLimit = 2; damage = 0; power_cost = 50; targetsSelf = true; makeDamageSponge = true; skillname = "Challenge"; verbage = ("issues a " + skillname); specialAnimation = PortraitAnimation.protectAllies; } override public function description():String{ return (""); } } }//package
Section 407
//SoundButton (SoundButton) package { import flash.events.*; import flash.display.*; public class SoundButton extends MovieClip { var sound_enabled:Boolean;// = true var control:VolumeControl; public var sound_icon:SoundIcon; public function SoundButton(){ sound_enabled = true; super(); this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true); } function added(_arg1:Event):void{ this.addEventListener(MouseEvent.MOUSE_DOWN, clickedOn); iconTest(); } private function removeControl():void{ if (control == null){ return; }; iconTest(); if (stage.contains(control)){ control.removeEventListener(Event.ENTER_FRAME, controlMouseOut); stage.removeChild(control); control.cleanup(); control = null; }; } function clickedOn(_arg1:MouseEvent):void{ if (control != null){ return; }; createControl(); } private function soundOn(_arg1:Boolean=false):void{ sound_icon.gotoAndStop("on"); } function removed(_arg1:Event):void{ this.removeEventListener(MouseEvent.MOUSE_DOWN, clickedOn); } private function iconTest():void{ this.sound_enabled = (GlobalVolume.volumeSetting > 0); if (sound_enabled){ soundOn(); } else { soundOff(); }; } private function createControl():void{ if (control != null){ removeControl(); }; control = new VolumeControl(dm.main); control.y = (this.y - (control.height - this.height)); control.x = this.x; stage.addChild(control); control.addEventListener(Event.ENTER_FRAME, controlMouseOut); } private function soundOff(_arg1:Boolean=false):void{ sound_icon.gotoAndStop("off"); } function controlMouseOut(_arg1:Event):void{ var _local2:Boolean; _local2 = false; if ((((control.mouseX > control.width)) || ((control.mouseX < 0)))){ _local2 = true; }; if ((((control.mouseY > control.height)) || ((control.mouseY < 0)))){ _local2 = true; }; if (_local2){ removeControl(); }; } } }//package
Section 408
//SoundControl (SoundControl) package { import flash.events.*; import flash.media.*; public class SoundControl { var channels:Array; var channel_ids:Array; static const powerUp = 56; static const miss_ranged = 111; static const poisonDrake = 81; static const equipGeneric = 1; static const poison = 75; static const equipSpear = 6; static const battleStart = 40; static const cosmicPrison = 74; static const smite = 54; static const equipStaff = 10; static const freeze = 52; static const curse = 76; static const playerSlash = 64; static const flames = 53; static const playerArrow = 62; static const monsterMagicAttack = 61; static const destroyItem = 20; static const playerMagicAttack = 60; static const punch = 67; static const equipShield = 9; static const monsterClaws = 66; static const equipSword = 2; static const equipAxe = 3; static const armorBuff = 90; static const miss_melee = 110; static const equipMace = 5; static const thrown = 69; static const lightning = 51; static const potionSound = 15; static const miss_magic = 113; static const monsterArrow = 63; static const monsterSlash = 65; static const buff = 58; static const blind = 78; static const lootItem = 21; static const writing = 41; static const clone = 99; static const heal = 57; static const equipDagger = 4; static const disintegrate = 68; static const miss_thrown = 112; static const debuff = 77; static const hideSound = 16; static const summon = 100; static const basilisk = 82; static const equipCrossbow = 8; static const web = 80; static const equipBow = 7; static var volumeSetting = GlobalVolume.volumeFull; public function SoundControl():void{ channels = new Array(); channel_ids = new Array(); } public function playSoundForSkill(_arg1:Skill, _arg2:Character):void{ this.play(getSoundForSkill(_arg1, _arg2)); } public function soundFromConstant(_arg1:int):Sound{ var _local2:Sound; switch (_arg1){ case equipGeneric: _local2 = new equip_sound(); break; case equipStaff: _local2 = new equip_staff_sound(); break; case equipSword: case equipDagger: case equipMace: case equipAxe: case equipSpear: _local2 = new equip_sword_sound(); break; case equipBow: case equipCrossbow: _local2 = new equip_bow_sound(); break; case equipShield: _local2 = new equip_shield_sound(); break; case potionSound: _local2 = new potion_sound(); break; case hideSound: _local2 = new hide3_sound(); break; case destroyItem: _local2 = new destroy_item_sound(); break; case lootItem: _local2 = new coins_sound(); break; case battleStart: _local2 = new battle_start2(); break; case writing: _local2 = new writing_sound(); break; case lightning: _local2 = new lightning_sound(); break; case freeze: _local2 = new freeze_sound(); break; case poison: _local2 = new poison_sound(); break; case flames: _local2 = new flames_sound(); break; case curse: _local2 = new curse_sound(); break; case blind: _local2 = new blind_sound(); break; case armorBuff: _local2 = new armor_buff_sound(); break; case punch: _local2 = new punch_sound(); break; case playerMagicAttack: _local2 = new mage_staff_sound(); break; case monsterMagicAttack: _local2 = new monster_magic_sound(); break; case powerUp: _local2 = new power_up_sound(); break; case playerArrow: case monsterArrow: _local2 = new arrow_fire_sound(); break; case smite: _local2 = new summon1_sound(); break; case clone: case summon: _local2 = new summon2_sound(); break; case web: _local2 = new web_squirt_sound(); break; case playerSlash: case monsterSlash: _local2 = new slash1_sound(); break; case monsterClaws: _local2 = new creature_slash_sound(); break; case heal: _local2 = new heal1_sound(); break; case buff: _local2 = new buff_chant_sound(); break; case debuff: _local2 = new debuff_sound(); break; case cosmicPrison: _local2 = new cosmic_prison_sound(); break; case disintegrate: _local2 = new disintegrate_sound(); break; case thrown: _local2 = new thrown_sound(); break; case basilisk: _local2 = new basilisk_sound(); break; case poisonDrake: _local2 = new poison_drake_sound(); break; case miss_melee: _local2 = new miss_melee_sound(); break; case miss_ranged: _local2 = new miss_ranged_sound(); break; case miss_thrown: _local2 = new miss_thrown_sound(); break; case miss_magic: _local2 = new miss_magic_sound(); break; }; return (_local2); } public function getSoundForSkill(_arg1:Skill, _arg2:Character):int{ var _local3:*; _local3 = -1; if (_arg1.hidesTarget){ return (hideSound); }; if (_arg1.curse){ return (curse); }; if (_arg1.unarmedAttack){ return (punch); }; if ((_arg1 is sBasiliskPetrify)){ return (basilisk); }; if ((_arg1 is sPoisonDrakeAE)){ return (poisonDrake); }; if ((_arg1 is sPoisonDrakeShot)){ return (poisonDrake); }; switch (_arg1.specialAnimation){ }; return (_local3); } public function getMissSound(_arg1:Skill, _arg2:Character):int{ var _local3:*; var _local4:int; var _local5:*; _local3 = -1; if (_arg1.hidesTarget){ return (hideSound); }; _local4 = _arg1.specialAnimation; if ((((_arg2 is PlayerCharacter)) && (_arg1.showWeaponAnimation))){ _local5 = PlayerCharacter(_arg2).gear[Equipment.weapon]; if ((_local5 is MeleeWeapon)){ _local4 = PortraitAnimation.playerSlash; } else { if ((_local5 is MageWeapon)){ _local4 = PortraitAnimation.mageAttack; } else { if ((_local5 is RangedWeapon)){ _local4 = PortraitAnimation.playerArrow; }; }; }; }; if (_arg1.unarmedAttack){ _local4 = PortraitAnimation.playerSlash; }; switch (_local4){ case PortraitAnimation.creatureSlash: case PortraitAnimation.creatureSpear: case PortraitAnimation.creatureWeapon: case PortraitAnimation.playerSlash: case PortraitAnimation.playerMultiSlash: case PortraitAnimation.playerPowerSlash: _local3 = miss_melee; break; case PortraitAnimation.monsterThrown: _local3 = miss_thrown; break; case PortraitAnimation.playerArrow: case PortraitAnimation.monsterArrow: case PortraitAnimation.cultistArrow: _local3 = miss_ranged; break; }; if (_local3 == -1){ _local3 = miss_magic; }; return (_local3); } private function idCheck(_arg1:int):Boolean{ var _local2:*; if (_arg1 == playerSlash){ return (true); }; if (_arg1 == monsterSlash){ return (true); }; if (_arg1 == playerArrow){ return (true); }; if (_arg1 == monsterArrow){ return (true); }; _local2 = 0; while (_local2 < channels.length) { if (channel_ids[_local2] == _arg1){ if (channels[_local2].position < 0.5){ return (false); }; }; _local2++; }; return (true); } public function play(_arg1:int, _arg2:Number=1, _arg3:Boolean=false):void{ playSound(soundFromConstant(_arg1), _arg2, _arg1, _arg3); } public function playSound(_arg1:Sound, _arg2:Number=1, _arg3:int=-1, _arg4:Boolean=false):void{ var _local5:SoundChannel; if (_arg1 == null){ return; }; if (((!(_arg4)) && (!(idCheck(_arg3))))){ return; }; _arg2 = (_arg2 * volumeSetting); _local5 = _arg1.play(0, 1); _local5.soundTransform = new SoundTransform(_arg2); _local5.addEventListener(Event.SOUND_COMPLETE, finishedSound); channels.push(_local5); channel_ids.push(_arg3); } function finishedSound(_arg1:Event):void{ var _local2:*; _local2 = 0; while (_local2 < channels.length) { if (channels[_local2] == _arg1.target){ channels[_local2].removeEventListener(Event.SOUND_COMPLETE, finishedSound); channels.splice(_local2, 1); channel_ids.splice(_local2, 1); }; _local2++; }; } public function playMissSound(_arg1:Skill, _arg2:Character, _arg3:Boolean=false):void{ this.play(getMissSound(_arg1, _arg2), 1, _arg3); } } }//package
Section 409
//SoundIcon (SoundIcon) package { import flash.display.*; public dynamic class SoundIcon extends MovieClip { } }//package
Section 410
//sPassTurn (sPassTurn) package { public class sPassTurn extends Skill { public function sPassTurn(_arg1:Character){ char_ref = _arg1; increasesWith = none; iconFrame = 24; skillname = "Pass Turn"; } override public function description():String{ return ("This character takes no action this turn. Power regeneration rate is increased for this round.\n\n[Shortcut: space bar]"); } } }//package
Section 411
//sPoisonDrakeAE (sPoisonDrakeAE) package { public class sPoisonDrakeAE extends Skill { public function sPoisonDrakeAE(_arg1:Character){ char_ref = _arg1; skillname = "Venomous Cloud"; hitsAllMeleeRange = true; power_cost = 55; damage = Math.round((_arg1.damage * 0.5)); poisonDamage = Math.round((_arg1.damage * 0.5)); damageAccuracy = 25; verbage = ("sprays a " + skillname); specialAnimation = PortraitAnimation.poison; } } }//package
Section 412
//sPoisonDrakeShot (sPoisonDrakeShot) package { public class sPoisonDrakeShot extends Skill { public function sPoisonDrakeShot(_arg1:Character){ char_ref = _arg1; rangedAttack = true; power_cost = 30; damage = Math.round((_arg1.damage * 0.7)); poisonDamage = Math.round((_arg1.damage * 0.5)); skillname = "Venom"; verbage = ("spits " + skillname); specialAnimation = PortraitAnimation.poison; } } }//package
Section 413
//sRangedAttack (sRangedAttack) package { public class sRangedAttack extends Skill { public function sRangedAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; unlocked = true; damage = 0; power_cost = 0; addWeaponDamage = true; rangedAttack = true; requiresRanged = true; iconFrame = 15; skillname = "Ranged Attack"; verbage = "shoots"; specialAnimation = PortraitAnimation.playerArrow; } override public function description():String{ return ((("Ranged attack with equipped weapon. Causes " + getDamage()) + " damage.\n\n[Skill cannot be removed]")); } } }//package
Section 414
//sRangerAE (sRangerAE) package { public class sRangerAE extends Skill { public function sRangerAE(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; aiCastLimit = 0; damage = 0; power_cost = 60; rangedAttack = true; requiresRanged = true; hitsAllEnemies = true; addWeaponDamage = true; scaleWeaponDamage = 0.4; attacksMultipleTimes = 2; iconFrame = 29; skillname = "Hail of Arrows"; verbage = "unleashes a hail of arrows"; specialAnimation = PortraitAnimation.playerArrow; } override public function description():String{ return ((("Perform two ranged attacks for 40% weapon damage each (" + getDamage()) + " damage) on every enemy.")); } } }//package
Section 415
//sRangerFocus (sRangerFocus) package { public class sRangerFocus extends Skill { public function sRangerFocus(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.none; targetsSelf = true; power_cost = 0; powerRestore = 25; iconFrame = 46; skillname = "Focus"; verbage = "finds his focus"; specialAnimation = PortraitAnimation.gainPower; } override public function description():String{ return ((("Recover " + powerRestore) + " power.")); } } }//package
Section 416
//sRangerHaste (sRangerHaste) package { public class sRangerHaste extends Skill { public function sRangerHaste(_arg1:Character){ char_ref = _arg1; increasesWith = none; aiCastLimit = 1; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; alwaysHits = true; buff_quickness = 20; power_cost = 30; iconFrame = 57; skillname = "Swiftness"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.quicknessBuff; } override public function description():String{ return ((("All members of the party gain +" + buff_quickness) + " to Quickness for the remainder of the battle.")); } } }//package
Section 417
//sRangerHeal (sRangerHeal) package { public class sRangerHeal extends Skill { public function sRangerHeal(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; targetsFriendlies = true; rangedAttack = true; removesPoison = true; healing = 20; power_cost = 30; iconFrame = 9; skillname = "Healing Lore"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.heal; } override public function description():String{ return ((("Restore " + scaleHeal(healing)) + " health to one member of your party. Cures poison.")); } } }//package
Section 418
//sRangerHunt (sRangerHunt) package { public class sRangerHunt extends Skill { public function sRangerHunt(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.weapon; addWeaponDamage = true; usesWeaponRange = true; requiresWeapon = true; damage = 0; scaleWeaponDamage = 1.1; damageBonusVsCreatureType = MonsterCharacter.creature; damageBonusVsCreatureModifier = 2; lethality = 10; power_cost = 30; iconFrame = 34; skillname = "Hunter's Prowess"; verbage = ("uses " + skillname); showWeaponAnimation = true; } override public function description():String{ return ((("Weapon attack for slightly increased (" + getDamage()) + ") damage, with +10% chance to kill target outright. Deals double damage to creatures.")); } } }//package
Section 419
//sRangerMultiMelee (sRangerMultiMelee) package { public class sRangerMultiMelee extends Skill { public function sRangerMultiMelee(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.weapon; damage = 0; power_cost = 55; iconFrame = 4; requiresMelee = true; addWeaponDamage = true; scaleWeaponDamage = 1; attacksMultipleTimes = 3; attacksWithAccuracyMod = 0.6; ignoresArmor = true; skillname = "Force of Nature"; verbage = ("is a " + skillname); specialAnimation = PortraitAnimation.playerMultiSlash; } override public function description():String{ return ((((((("Three melee weapon attacks on a single target at " + (attacksWithAccuracyMod * 100)) + "% of user's normal accuracy. (") + getDamage()) + "x") + attacksMultipleTimes) + " damage.) Ignores armor.")); } } }//package
Section 420
//sRangerPenetrate (sRangerPenetrate) package { public class sRangerPenetrate extends Skill { public function sRangerPenetrate(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.weapon; damage = 0; power_cost = 30; scaleWeaponDamage = 1; addWeaponDamage = true; rangedAttack = true; requiresRanged = true; piercesColumn = true; iconFrame = 33; skillname = "Pierce"; verbage = "fires a piercing shot"; showWeaponAnimation = true; } override public function description():String{ return ((((("Ranged attack for " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + "). Hits up to two targets in a vertical line.")); } } }//package
Section 421
//sRangerPoison (sRangerPoison) package { public class sRangerPoison extends Skill { public function sRangerPoison(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; increaseRate = 0.5; damage = 0; power_cost = 30; poisonDamage = 4; requiresRanged = true; addWeaponDamage = true; rangedAttack = true; iconFrame = 3; skillname = "Envenomed Arrow"; verbage = ("fires an " + skillname); showWeaponAnimation = true; specialAnimation = PortraitAnimation.poison; } override public function description():String{ return ((((("Ranged weapon attack (" + getDamage()) + " damage). Applies ") + scalePoison()) + " poison damage.")); } } }//package
Section 422
//sRangerRegen (sRangerRegen) package { public class sRangerRegen extends Skill { public function sRangerRegen(_arg1:Character){ char_ref = _arg1; increasesWith = Skill.intellect; targetsFriendlies = true; rangedAttack = true; removesPoison = true; buff_resistPoison = 100; buff_healthRegen = 10; power_cost = 35; iconFrame = 50; skillname = "Nature's Balm"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.regenBuff; } override public function description():String{ return ((("Grant target immunity to poison and +" + scaleHeal(buff_healthRegen)) + " health regeneration per turn for the remainder of the battle.")); } } }//package
Section 423
//sRangerStun (sRangerStun) package { public class sRangerStun extends Skill { public function sRangerStun(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; rangedAttack = true; requiresRanged = true; damage = 0; addWeaponDamage = true; scaleWeaponDamage = 0.75; stun_percent = 100; power_cost = 40; iconFrame = 30; skillname = "Pin"; verbage = "pins the enemy"; showWeaponAnimation = true; } override public function description():String{ return ((((("Ranged attack for " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + ") which stuns the target.")); } } }//package
Section 424
//sRetreat (sRetreat) package { public class sRetreat extends Skill { public function sRetreat(_arg1:Character){ char_ref = _arg1; iconFrame = 23; skillname = "Retreat"; } override public function description():String{ return ("Retreat this character from the battle. Takes one full turn.\n\n[Shortcut: r]"); } } }//package
Section 425
//sRetreatAll (sRetreatAll) package { public class sRetreatAll extends Skill { public function sRetreatAll(_arg1:Character){ char_ref = _arg1; iconFrame = 25; skillname = "Full Retreat"; } override public function description():String{ return ("Retreat all characters from the battle. Takes one full turn."); } } }//package
Section 426
//sRogueBlind (sRogueBlind) package { public class sRogueBlind extends Skill { public function sRogueBlind(_arg1:Character){ char_ref = _arg1; increasesWith = none; damage = 0; power_cost = 40; damageAccuracy = 50; stun_percent = 50; alwaysHits = true; iconFrame = 11; skillname = "Flash Powder"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.blind; } override public function description():String{ return ((((("Reduce target in melee range's accuracy by " + damageAccuracy) + "% for the remainder of the battle. ") + stun_percent) + "% chance to cause stun. Does not miss.")); } } }//package
Section 427
//sRogueCripple (sRogueCripple) package { public class sRogueCripple extends Skill { public function sRogueCripple(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; power_cost = 25; crippling = 100; iconFrame = 53; addWeaponDamage = true; usesWeaponRange = true; requiresWeapon = true; nonLethal = true; scaleWeaponDamage = 0.5; skillname = "Cripple"; verbage = "launches a crippling attack"; showWeaponAnimation = true; specialAnimation = PortraitAnimation.debuff; } override public function description():String{ return ((((("Special weapon attack for a maximum of " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + "). This attack will not kill the target. If the attack hits, it reduces the target's Quickness to zero for the remainder of the battle, forcing them to act last in the turn order.")); } } }//package
Section 428
//sRogueCritical (sRogueCritical) package { public class sRogueCritical extends Skill { public function sRogueCritical(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; power_cost = 30; addWeaponDamage = true; usesWeaponRange = true; requiresWeapon = true; ignoresArmor = true; scaleWeaponDamage = 1.1; iconFrame = 12; skillname = "Pierce Defenses"; verbage = "finds a weak spot"; showWeaponAnimation = true; } override public function description():String{ return ((((("Weapon attack for " + Math.round((scaleWeaponDamage * 100))) + "% weapon damage (") + getDamage()) + "). Ignores target's armor.")); } } }//package
Section 429
//sRogueFinisher (sRogueFinisher) package { public class sRogueFinisher extends Skill { public function sRogueFinisher(_arg1:Character){ char_ref = _arg1; increasesWith = none; damage = 1; requiresWeapon = true; targetsStunned = true; lethality = 100; power_cost = 30; iconFrame = 14; skillname = "Coup de Grâce"; verbage = ("delivers the " + skillname); showWeaponAnimation = true; } override public function description():String{ return ("Instantly kill a stunned target."); } } }//package
Section 430
//sRogueHide (sRogueHide) package { public class sRogueHide extends Skill { public function sRogueHide(_arg1:Character){ char_ref = _arg1; increasesWith = none; aiCastLimit = 0; damage = 0; power_cost = 20; targetsSelf = true; hidesTarget = true; iconFrame = 16; skillname = "Hide"; verbage = "hides"; } override public function description():String{ return ((("User may not be attacked until " + char_ref.genderPossessive()) + " next turn.")); } } }//package
Section 431
//sRogueLuck (sRogueLuck) package { public class sRogueLuck extends Skill { public function sRogueLuck(_arg1:Character){ char_ref = _arg1; increasesWith = none; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; alwaysHits = true; buff_accuracy = 30; power_cost = 20; iconFrame = 22; skillname = "Thief's Luck"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.buff; } override public function description():String{ return ((("All members of the party gain +" + buff_accuracy) + " to accuracy for the remainder of the battle.")); } } }//package
Section 432
//sRogueOpening (sRogueOpening) package { public class sRogueOpening extends Skill { public function sRogueOpening(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; aiCastLimit = 0; damage = 0; power_cost = 40; iconFrame = 51; requiresMelee = true; addWeaponDamage = true; scaleWeaponDamage = 0.75; allyBonusAttack = true; skillname = "Create Opening"; verbage = " creates an opening!"; showWeaponAnimation = true; } override public function description():String{ return ((("Melee attack for 75% weapon damage (" + getDamage()) + "). If it hits, a random ally performs a bonus weapon attack on the target.")); } } }//package
Section 433
//sRoguePoison (sRoguePoison) package { public class sRoguePoison extends Skill { public function sRoguePoison(_arg1:Character){ char_ref = _arg1; increasesWith = intellect; increaseRate = 0.5; damage = 0; power_cost = 20; poisonDamage = 4; iconFrame = 3; requiresWeapon = true; addWeaponDamage = true; usesWeaponRange = true; skillname = "Poison"; verbage = ("applies " + skillname); showWeaponAnimation = true; } override public function description():String{ return ((((("Weapon attack (" + getDamage()) + " damage). Applies ") + scalePoison()) + " poison damage.")); } } }//package
Section 434
//sRogueSap (sRogueSap) package { public class sRogueSap extends Skill { public function sRogueSap(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; power_cost = 40; addWeaponDamage = true; requiresMelee = true; scaleWeaponDamage = 0.5; powerDamage = 75; iconFrame = 52; skillname = "Sap Strength"; verbage = "saps the enemy's strength"; showWeaponAnimation = true; specialAnimation = PortraitAnimation.powerDrain; } override public function description():String{ return ((((((("Melee attack for " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + "). Reduces enemy power by ") + powerDamage) + ".")); } } }//package
Section 435
//sRogueSneakAttack (sRogueSneakAttack) package { public class sRogueSneakAttack extends Skill { public function sRogueSneakAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; power_cost = 30; iconFrame = 8; requiresMelee = true; addWeaponDamage = true; rangedAttack = true; scaleWeaponDamage = 1.2; skillname = "Sneak Attack"; verbage = ("performs a " + skillname); specialAnimation = PortraitAnimation.playerSlash; } override public function description():String{ return ((((("Melee weapon attack on any target for " + (scaleWeaponDamage * 100)) + "% weapon damage (") + getDamage()) + ").")); } } }//package
Section 436
//sSummonVoidstalker (sSummonVoidstalker) package { public class sSummonVoidstalker extends Skill { public function sSummonVoidstalker(_arg1:Character){ char_ref = _arg1; aiTopPriority = true; targetsEmpty = true; summonsCreatureClass = new mVoidstalker(char_ref.level); power_cost = 60; skillname = "Void Portal"; verbage = ("casts " + skillname); } } }//package
Section 437
//StairsGlow (StairsGlow) package { import flash.display.*; public dynamic class StairsGlow extends MovieClip { } }//package
Section 438
//StatIncreaseButton (StatIncreaseButton) package { import flash.events.*; import flash.display.*; public class StatIncreaseButton extends MovieClip { public function StatIncreaseButton(){ addEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); addEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); this.gotoAndStop(2); } function mouseOverTarget(_arg1:MouseEvent):void{ if (this.currentFrame == 1){ this.gotoAndStop(3); }; } function mouseOutTarget(_arg1:MouseEvent):void{ if (this.currentFrame == 3){ this.gotoAndStop(1); }; } public function cleanup():void{ removeEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); removeEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); } } }//package
Section 439
//StatNumber (StatNumber) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.geom.*; public class StatNumber extends Sprite { var tooltip:Tooltip; public var nlabel:TextField; var tt_text:String; var tt_title:String; public function StatNumber(){ nlabel.addEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); nlabel.addEventListener(MouseEvent.MOUSE_MOVE, mouseOverTarget); nlabel.addEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); } function mouseOverTarget(_arg1:MouseEvent):void{ var _local2:Point; var _local3:*; var _local4:*; var _local5 = ??pushnamespace ; if (_arg1.buttonDown){ return; }; if (tooltip == null){ if (!newTooltip()){ return; }; }; _local2 = _arg1.target.localToGlobal(new Point(_arg1.target.mouseX, _arg1.target.mouseY)); _local3 = _local2.x; _local4 = _local2.y; _local5 = 0; if (((_local2.x + tooltip.width) + _local5) > DungeonMain.app_width){ _local3 = (_local3 + (DungeonMain.app_width - ((_local2.x + tooltip.width) + _local5))); }; if (((_local2.y + tooltip.height) + _local5) > DungeonMain.app_height){ _local4 = (_local4 + (DungeonMain.app_height - ((_local2.y + tooltip.height) + _local5))); }; tooltip.x = _local3; tooltip.y = _local4; _arg1.updateAfterEvent(); } private function newTooltip():Boolean{ tooltip = new Tooltip(tt_title, tt_text); tooltip.mouseEnabled = false; tooltip.mouseChildren = false; tooltip.name = "tooltip_stats"; stage.addChild(tooltip); return (true); } function mouseOutTarget(_arg1:MouseEvent):void{ if (((!((tooltip == null))) && (!((stage == null))))){ stage.removeChild(tooltip); tooltip = null; }; } public function cleanup():void{ nlabel.removeEventListener(MouseEvent.MOUSE_OVER, mouseOverTarget); nlabel.removeEventListener(MouseEvent.MOUSE_MOVE, mouseOverTarget); nlabel.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutTarget); mouseOutTarget(null); } } }//package
Section 440
//StatusStatScroller (StatusStatScroller) package { import flash.text.*; import flash.display.*; public dynamic class StatusStatScroller extends MovieClip { public var explore_rate:TextField; public var party_defeats:TextField; public var leaders:TextField; public var clear_rate:TextField; public var shrines_used:TextField; public var member_deaths:TextField; public function StatusStatScroller(){ addFrameScript(179, frame180); } function frame180(){ this.gotoAndPlay(1); } } }//package
Section 441
//SteelEdgedWeapon (SteelEdgedWeapon) package { public class SteelEdgedWeapon extends MeleeWeapon { override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; if (prefixes[_local1][0] == "Sharp"){ base_damage_mod = 10; return; }; super.applyPrefix(); } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Sharp", 1.1]); } } }//package
Section 442
//sTransformAetherguard (sTransformAetherguard) package { public class sTransformAetherguard extends Skill { public function sTransformAetherguard(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; aiTopPriority = true; aiAllowSuicide = true; damage = _arg1.health_max; targetsSelf = true; transformCreatureClass = new mAetherguard(char_ref.level); power_cost = 100; skillname = "Breach Aether"; verbage = ("casts " + skillname); } } }//package
Section 443
//sTrollHowl (sTrollHowl) package { public class sTrollHowl extends Skill { public function sTrollHowl(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; hitsAllEnemies = true; rangedAttack = true; power_cost = 50; alwaysHits = true; powerDamage = 25; stun_percent = 50; skillname = "Howl of Rage"; verbage = ("lets loose a " + skillname); specialAnimation = PortraitAnimation.powerDrain; } override public function description():String{ return (""); } } }//package
Section 444
//summon_effect (summon_effect) package { import flash.display.*; public dynamic class summon_effect extends MovieClip { public function summon_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.summon); } function frame45(){ this.stop(); } } }//package
Section 445
//summon1_sound (summon1_sound) package { import flash.media.*; public dynamic class summon1_sound extends Sound { } }//package
Section 446
//summon2_sound (summon2_sound) package { import flash.media.*; public dynamic class summon2_sound extends Sound { } }//package
Section 447
//sUnarmedAttack (sUnarmedAttack) package { public class sUnarmedAttack extends Skill { public function sUnarmedAttack(_arg1:Character){ char_ref = _arg1; increasesWith = strength; unlocked = true; unarmedAttack = true; damage = 0; power_cost = 0; iconFrame = 18; skillname = "Unarmed Attack"; verbage = "attacks"; specialAnimation = PortraitAnimation.playerUnarmed; } override public function description():String{ return ((("Unarmed melee attack. Inflicts " + PlayerCharacter(char_ref).getUnarmedDamage()) + " damage.\n\n[Skill cannot be removed]")); } } }//package
Section 448
//sVampireAttack (sVampireAttack) package { public class sVampireAttack extends Skill { public function sVampireAttack(_arg1:Character){ char_ref = _arg1; damage = _arg1.damage; rangedAttack = true; power_cost = 30; hasPortraitAnimation = true; portraitAnimationFrame = 5; skillname = "Vampire Bite"; verbage = "strikes from the shadows"; specialAnimation = PortraitAnimation.creatureSlash; } } }//package
Section 449
//sWarlordBuff (sWarlordBuff) package { public class sWarlordBuff extends Skill { public function sWarlordBuff(_arg1:Character){ char_ref = _arg1; aiCastLimit = 1; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; power_cost = 25; buff_quickness = 20; buff_damageResist = 10; skillname = "Battle Plan"; verbage = ("implements " + skillname); specialAnimation = PortraitAnimation.buff; } override public function description():String{ return (""); } } }//package
Section 450
//sWarlordFocus (sWarlordFocus) package { public class sWarlordFocus extends Skill { public function sWarlordFocus(_arg1:Character){ char_ref = _arg1; aiNotUnlessLowPower = true; aiCastLimit = 1; targetsSelf = true; power_cost = 0; powerRestore = 75; skillname = "Survey"; verbage = "surveys the battlefield"; specialAnimation = PortraitAnimation.gainPower; } override public function description():String{ return ((("Recover " + powerRestore) + " power.")); } } }//package
Section 451
//sWarlordRevive (sWarlordRevive) package { public class sWarlordRevive extends Skill { public function sWarlordRevive(_arg1:Character){ char_ref = _arg1; aiCastLimit = 2; targetsFriendlies = true; rangedAttack = true; healing = char_ref.health_max; power_cost = 70; removesPoison = true; resurrects = true; skillname = "Reinforce"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.revive; } override public function description():String{ return ((("Revives fallen party member with " + scaleHeal(healing)) + " health.")); } } }//package
Section 452
//sWarriorAdrenaline (sWarriorAdrenaline) package { public class sWarriorAdrenaline extends Skill { public function sWarriorAdrenaline(_arg1:Character){ char_ref = _arg1; increasesWith = none; aiCastLimit = 1; targetsSelf = true; power_cost = 25; buff_resistStun = 100; buff_damage = 1.3; iconFrame = 48; skillname = "Adrenaline"; verbage = "feels a burst of adrenaline"; specialAnimation = PortraitAnimation.buff; } override public function description():String{ return ((("User gains immunity to Stun effects and " + Math.round(((buff_damage - 1) * 100))) + "% bonus damage for the remainder of the battle.")); } } }//package
Section 453
//sWarriorAE (sWarriorAE) package { public class sWarriorAE extends Skill { public function sWarriorAE(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; addWeaponDamage = true; requiresMelee = true; scaleWeaponDamage = 1; power_cost = 60; hitsAllMeleeRange = true; iconFrame = 5; skillname = "Cleave"; verbage = "cleaves through the enemy!"; specialAnimation = PortraitAnimation.playerSlash; } override public function description():String{ return ((("Perform a melee weapon attack (" + getDamage()) + " damage) on all targets in melee range.")); } } }//package
Section 454
//sWarriorBloodlust (sWarriorBloodlust) package { public class sWarriorBloodlust extends Skill { public function sWarriorBloodlust(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; addWeaponDamage = true; scaleWeaponDamage = 1.1; power_cost = 30; requiresMelee = true; gainPowerFromKill = 50; iconFrame = 36; skillname = "Bloodlust"; verbage = ("is filled with " + skillname); showWeaponAnimation = true; } override public function description():String{ return ((((((("Melee attack for " + Math.round((scaleWeaponDamage * 100))) + "% weapon damage (") + getDamage()) + "). If this attack kills the target, the attacker gains ") + gainPowerFromKill) + " power.")); } } }//package
Section 455
//sWarriorDefiance (sWarriorDefiance) package { public class sWarriorDefiance extends Skill { public function sWarriorDefiance(_arg1:Character){ char_ref = _arg1; increasesWith = endurance; aiCastLimit = 0; damage = 0; power_cost = 50; targetsSelf = true; cannotDie = 1; iconFrame = 6; skillname = "Defiance"; verbage = "shouts his defiance!"; specialAnimation = PortraitAnimation.defiance; } override public function description():String{ return ((((("User may not be reduced below " + getDefianceHealth()) + " health until ") + char_ref.genderPossessive()) + " next turn.")); } } }//package
Section 456
//sWarriorExecute (sWarriorExecute) package { public class sWarriorExecute extends Skill { public function sWarriorExecute(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; aiCastLimit = 0; damage = 0; addWeaponDamage = true; requiresMelee = true; costsRemainingPower = true; addsPowerToLethality = true; power_cost = 0; iconFrame = 14; skillname = "Execute"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.playerPowerSlash; } override public function description():String{ return ((("Melee weapon attack (" + getDamage()) + " damage). The character's remaining power is added as percentage chance of killing the target outright.")); } } }//package
Section 457
//sWarriorHeal (sWarriorHeal) package { public class sWarriorHeal extends Skill { public function sWarriorHeal(_arg1:Character){ char_ref = _arg1; increasesWith = endurance; increaseRate = 1.5; targetsSelf = true; removesPoison = false; healing = 20; power_cost = 40; iconFrame = 9; skillname = "Resolve"; verbage = "finds the strength to continue"; specialAnimation = PortraitAnimation.heal; } override public function description():String{ return ((("Character recovers " + scaleHeal(healing)) + " health.")); } } }//package
Section 458
//sWarriorInspire (sWarriorInspire) package { public class sWarriorInspire extends Skill { public function sWarriorInspire(_arg1:Character){ char_ref = _arg1; increasesWith = none; aiCastLimit = 1; targetsFriendlies = true; hitsAllFriendlies = true; rangedAttack = true; power_cost = 15; buff_damage = 1.2; iconFrame = 27; skillname = "Inspire"; verbage = "inspires the party"; specialAnimation = PortraitAnimation.buff; } override public function description():String{ return ((("All party members' damage is increased by " + Math.round(((buff_damage - 1) * 100))) + "% for the remainder of the battle.")); } } }//package
Section 459
//sWarriorPowerAttack (sWarriorPowerAttack) package { public class sWarriorPowerAttack extends Skill { public function sWarriorPowerAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; damage = 0; addWeaponDamage = true; scaleWeaponDamage = 1.3; power_cost = 40; requiresMelee = true; iconFrame = 4; skillname = "Power Attack"; verbage = ("performs a " + skillname); specialAnimation = PortraitAnimation.playerPowerSlash; } override public function description():String{ return ((("Melee attack for 130% weapon damage (" + getDamage()) + ")")); } } }//package
Section 460
//sWarriorShield (sWarriorShield) package { public class sWarriorShield extends Skill { public function sWarriorShield(_arg1:Character){ char_ref = _arg1; increasesWith = none; damage = 0; power_cost = 60; targetsSelf = true; requiresShield = true; targetsFriendlyFrontRow = true; makeDamageSponge = true; tempDamageResistance = 25; iconFrame = 19; skillname = "Shield Wall"; verbage = "raises his shield"; specialAnimation = PortraitAnimation.protectAllies; } override public function description():String{ return ((("User receives +" + tempDamageResistance) + "% damage resistance and is sole target of enemy attacks until his next turn. Other party members may still take damage from area attacks. Can only be used in the front row of the party formation.")); } } }//package
Section 461
//sWarriorSpeedAttack (sWarriorSpeedAttack) package { public class sWarriorSpeedAttack extends Skill { public function sWarriorSpeedAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; aiCastLimit = 0; damage = 0; addWeaponDamage = true; power_cost = 75; requiresMelee = true; extraSpeedAttacks = 2; iconFrame = 49; skillname = "Overwhelm"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.playerMultiSlash; } override public function description():String{ return ((("Melee weapon attack (" + getDamage()) + " damage). If the warrior has higher Quickness than the target, warrior performs two bonus weapon attacks on the same target.")); } } }//package
Section 462
//sWeaponAttack (sWeaponAttack) package { public class sWeaponAttack extends Skill { public function sWeaponAttack(_arg1:Character){ char_ref = _arg1; increasesWith = weapon; unlocked = true; damage = 0; addWeaponDamage = true; power_cost = 0; skillname = "Melee Attack"; requiresMelee = true; verbage = "attacks"; iconFrame = 17; specialAnimation = PortraitAnimation.playerSlash; } override public function description():String{ return ((("Melee attack with equipped weapon. Inflicts " + getDamage()) + " damage. \n\n[Skill cannot be removed]")); } } }//package
Section 463
//sVoidCannon (sVoidCannon) package { public class sVoidCannon extends Skill { public function sVoidCannon(_arg1:Character){ char_ref = _arg1; rangedAttack = true; damage = Math.round((_arg1.damage * 1)); power_cost = 75; ignoresArmor = true; piercesColumn = true; skillname = "Void Cannon"; verbage = ("uses " + skillname); specialAnimation = PortraitAnimation.disintegrate; } } }//package
Section 464
//sZombieAE (sZombieAE) package { public class sZombieAE extends Skill { public function sZombieAE(_arg1:Character){ char_ref = _arg1; skillname = "Noxious Cloud"; hitsAllMeleeRange = true; power_cost = 65; damage = Math.round((_arg1.damage / 4)); poisonDamage = Math.round((_arg1.damage / 4)); damageAccuracy = 25; verbage = ("emits a " + skillname); specialAnimation = PortraitAnimation.poison; } } }//package
Section 465
//sZombieAttack (sZombieAttack) package { public class sZombieAttack extends Skill { public function sZombieAttack(_arg1:Character){ char_ref = _arg1; damage = _arg1.damage; powerDamage = 10; power_cost = 0; skillname = "Attack"; verbage = "attacks"; specialAnimation = PortraitAnimation.creatureSlash; } } }//package
Section 466
//tab_flash (tab_flash) package { import flash.display.*; public dynamic class tab_flash extends MovieClip { } }//package
Section 467
//TakeButton (TakeButton) package { import flash.display.*; public dynamic class TakeButton extends MovieClip { } }//package
Section 468
//ThinButtonBG (ThinButtonBG) package { import flash.events.*; import flash.display.*; public class ThinButtonBG extends MovieClip { public function ThinButtonBG(){ this.gotoAndStop(1); this.addEventListener(Event.ADDED_TO_STAGE, added, false, 0, true); this.addEventListener(Event.REMOVED_FROM_STAGE, removed, false, 0, true); } function added(_arg1:Event):void{ this.addEventListener(MouseEvent.MOUSE_OVER, mouseOn); this.addEventListener(MouseEvent.MOUSE_MOVE, mouseOn); this.addEventListener(MouseEvent.MOUSE_OUT, mouseOff); } function mouseOn(_arg1:MouseEvent):void{ this.gotoAndStop(2); } function mouseOff(_arg1:MouseEvent):void{ this.gotoAndStop(1); } function removed(_arg1:Event):void{ this.removeEventListener(MouseEvent.MOUSE_OVER, mouseOn); this.removeEventListener(MouseEvent.MOUSE_MOVE, mouseOn); this.removeEventListener(MouseEvent.MOUSE_OUT, mouseOff); } } }//package
Section 469
//thrown_sound (thrown_sound) package { import flash.media.*; public dynamic class thrown_sound extends Sound { } }//package
Section 470
//title_music (title_music) package { import flash.media.*; public dynamic class title_music extends Sound { } }//package
Section 471
//TitleMusic (TitleMusic) package { public class TitleMusic extends Music { public function TitleMusic(_arg1:Boolean=false):void{ var _local2:*; super(); active = true; _local2 = new title_music(); channel = _local2.play(0, 99999); if (_arg1){ this.fadeIn(750); } else { this.setVolume(volumeSetting); }; } } }//package
Section 472
//TitleScreen (TitleScreen) package { import flash.events.*; import flash.display.*; public class TitleScreen extends MovieClip { public var biclops_logo:SimpleButton; public var options_button:SimpleButton; public var credits_button:SimpleButton; public var continue_button:SimpleButton; public var maxgames_logo:SimpleButton; public function TitleScreen():void{ continue_button.addEventListener(MouseEvent.MOUSE_DOWN, continueClick); credits_button.addEventListener(MouseEvent.MOUSE_DOWN, creditsClick); options_button.addEventListener(MouseEvent.MOUSE_DOWN, optionsClick); biclops_logo.addEventListener(MouseEvent.MOUSE_DOWN, biclopsClick); maxgames_logo.addEventListener(MouseEvent.MOUSE_DOWN, maxgamesClick); } function creditsClick(_arg1:MouseEvent):void{ addChild(new CreditsScreen()); } public function continueClick(_arg1:MouseEvent):void{ cleanup(); DungeonMain(parent).loadGameMenu(); parent.removeChild(this); } function optionsClick(_arg1:MouseEvent):void{ addChild(new OptionsScreen()); } private function cleanup():void{ continue_button.removeEventListener(MouseEvent.MOUSE_DOWN, continueClick); credits_button.removeEventListener(MouseEvent.MOUSE_DOWN, creditsClick); options_button.removeEventListener(MouseEvent.MOUSE_DOWN, optionsClick); biclops_logo.removeEventListener(MouseEvent.MOUSE_DOWN, biclopsClick); maxgames_logo.removeEventListener(MouseEvent.MOUSE_DOWN, maxgamesClick); } public function maxgamesClick(_arg1:MouseEvent):void{ dm.link("http://www.maxgames.com"); } public function biclopsClick(_arg1:MouseEvent):void{ dm.link("http://www.biclopsgames.com"); } } }//package
Section 473
//Tooltip (Tooltip) package { import flash.text.*; import flash.display.*; public class Tooltip extends Sprite { const red_text = 0xCC0000; const white_text = 0xFFFFFF; const grey_text = 0xCCCCCC; const purple_text = 0x9900FF; const green_text = 0x66FF00; const blue_text = 26367; public var tooltip_bg:ItemTooltipBg; public var text_label:TextField; public var title_label:TextField; public function Tooltip(_arg1:String="", _arg2:String=""){ var _local3:*; super(); if (_arg1 == null){ _arg1 = "Blank"; }; if (_arg2 == null){ _arg2 = "Tooltip contents failed to load."; }; title_label.autoSize = TextFieldAutoSize.CENTER; title_label.text = _arg1; dm.embolden(title_label); _local3 = title_label.height; title_label.autoSize = TextFieldAutoSize.NONE; if (_local3 == 16){ title_label.height = (_local3 + 6); } else { title_label.height = (_local3 + 4); }; text_label.y = (title_label.y + title_label.height); text_label.text = _arg2; text_label.autoSize = TextFieldAutoSize.CENTER; tooltip_bg.height = ((text_label.y + text_label.height) + 12); } } }//package
Section 474
//transform_effect (transform_effect) package { import flash.display.*; public dynamic class transform_effect extends MovieClip { public function transform_effect(){ addFrameScript(0, frame1, 14, frame15, 44, frame45); } function frame15(){ if (((!((this.parent == null))) && ((this.parent is CharacterPortrait)))){ CharacterPortrait(this.parent).update(); }; } function frame1(){ dm.sound.play(SoundControl.summon); } function frame45(){ this.stop(); } } }//package
Section 475
//TreasureCategoryTake (TreasureCategoryTake) package { import flash.events.*; import flash.display.*; public class TreasureCategoryTake extends MovieClip { public var take:Boolean; public function TreasureCategoryTake():void{ take = true; addEventListener(MouseEvent.MOUSE_DOWN, clicked); } function clicked(_arg1:MouseEvent):void{ take = !(take); if (take){ this.gotoAndStop(1); } else { this.gotoAndStop(2); }; TreasureReport(parent).takeSettingsChange(TreasureCategoryTake(_arg1.currentTarget)); } public function cleanup():void{ removeEventListener(MouseEvent.MOUSE_DOWN, clicked); } } }//package
Section 476
//TreasureChest (TreasureChest) package { import flash.events.*; import flash.text.*; import flash.display.*; import flash.utils.*; public class TreasureChest extends MovieClip { var looted:Boolean;// = false var loot:Array; var chest_level;// = 1 static const POTION_CHANCE = 15; public function TreasureChest(_arg1:Party=null, _arg2:int=1, _arg3:int=0, _arg4=false){ var _local5:Boolean; var _local6:Item; loot = new Array(); chest_level = 1; looted = false; super(); addFrameScript(59, frame60, 74, frame75); chest_level = _arg2; if (_arg4){ _local5 = false; while (((!(_local5)) && (!((_arg1 == null))))) { _local6 = getItem(_arg2, Item.purple); if (testItemSuitable(_local6, _arg1)){ loot.push(_local6); _local5 = true; }; }; }; GenerateItems(_arg1, _arg3); } function frame75(){ this.stop(); } private function GenerateItems(_arg1:Party, _arg2:int){ var _local3:*; var _local4:*; var _local5:Item; _local3 = 0; _local4 = 0; _local5 = null; if (!_arg2){ _arg2 = DungeonMain.RandomNum(2, 5); }; while (loot.length < _arg2) { _local5 = getItem(chest_level); if (testItemSuitable(_local5, _arg1)){ loot.push(_local5); }; }; } function onFadeComplete(_arg1:TimerEvent):void{ if (parent != null){ parent.removeChild(this); }; } public function fade():void{ var _local1:Timer; looted = true; this.gotoAndPlay(61); _local1 = new Timer(500, 1); _local1.addEventListener(TimerEvent.TIMER_COMPLETE, onFadeComplete); _local1.start(); } function frame60(){ this.gotoAndPlay(1); } public static function getItem(_arg1:int=-1, _arg2:int=-1, _arg3:Boolean=false):Item{ var _local4:Array; var _local5:*; _local4 = GetItemTypes(_arg1, _arg2, _arg3); _local5 = DungeonMain.RandomNum(0, _local4.length); return (_local4[_local5]); } public static function testItemSuitable(_arg1:Item, _arg2:Party):Boolean{ var _local3:int; var _local4:*; if (_arg1 == null){ return (false); }; if (_arg2 != null){ _local3 = 0; _local4 = 0; while (_local4 < _arg2.members.length) { if (_arg2.members[_local4].itemUsable(_arg1)){ _local3++; }; _local4++; }; if (_local3 > 0){ return (true); }; return (false); }; return (false); } private static function GetItemTypes(_arg1:int, _arg2:int=0, _arg3:Boolean=false):Array{ var _local4:Array; var _local5:*; _local4 = new Array(); if (((_arg3) || ((((_arg2 == -1)) && ((dm.randomNum(0, 100) < POTION_CHANCE)))))){ _local4.push(new PotionHealthSmall(_arg1)); _local4.push(new PotionHealthSmall(_arg1)); _local4.push(new PotionHealthSmall(_arg1)); _local4.push(new PotionPowerSmall(_arg1)); _local4.push(new PotionPowerSmall(_arg1)); _local4.push(new PotionRejuveSmall(_arg1)); _local4.push(new PotionRejuveSmall(_arg1)); _local4.push(new PotionReviveWeak(_arg1)); _local4.push(new PotionReviveWeak(_arg1)); _local4.push(new PotionHealth(_arg1)); _local4.push(new PotionHealth(_arg1)); _local4.push(new PotionPower(_arg1)); _local4.push(new PotionRejuve(_arg1)); _local4.push(new PotionRevive(_arg1)); _local4.push(new PotionPoisonResist(_arg1)); _local4.push(new PotionShield(_arg1)); _local4.push(new PotionQuickness(_arg1)); _local4.push(new SneakyScroll()); return (_local4); }; _local4.push(new iDagger(_arg1, _arg2)); _local4.push(new iDagger(_arg1, _arg2)); _local4.push(new iSword(_arg1, _arg2)); _local4.push(new iSword(_arg1, _arg2)); _local4.push(new iAxe(_arg1, _arg2)); _local4.push(new iSpear(_arg1, _arg2)); _local4.push(new iMace(_arg1, _arg2)); _local4.push(new iMace(_arg1, _arg2)); _local4.push(new iStaff(_arg1, _arg2)); _local4.push(new iStaff(_arg1, _arg2)); _local4.push(new iBow(_arg1, _arg2)); _local4.push(new iBow(_arg1, _arg2)); _local4.push(new iCrossbow(_arg1, _arg2)); _local4.push(new iPlateHelmet(_arg1, _arg2)); _local4.push(new iPlateGloves(_arg1, _arg2)); _local4.push(new iPlateGreaves(_arg1, _arg2)); _local4.push(new iPlateBoots(_arg1, _arg2)); _local4.push(new iPlateBreastplate(_arg1, _arg2)); _local4.push(new iLeatherHat(_arg1, _arg2)); _local4.push(new iLeatherGloves(_arg1, _arg2)); _local4.push(new iLeatherLegs(_arg1, _arg2)); _local4.push(new iLeatherBoots(_arg1, _arg2)); _local4.push(new iLeatherChest(_arg1, _arg2)); _local4.push(new iClothHat(_arg1, _arg2)); _local4.push(new iClothGloves(_arg1, _arg2)); _local4.push(new iClothLegs(_arg1, _arg2)); _local4.push(new iClothShoes(_arg1, _arg2)); _local4.push(new iClothRobe(_arg1, _arg2)); _local5 = 0; while (_local5 < 2) { _local4.push(new iRing(_arg1, _arg2)); _local4.push(new iCloak(_arg1, _arg2)); _local5++; }; _local4.push(new iQuiver(_arg1, _arg2)); _local4.push(new iParryingDagger(_arg1, _arg2)); _local4.push(new iShieldBuckler(_arg1, _arg2)); _local4.push(new iShieldTower(_arg1, _arg2)); _local4.push(new iCenser(_arg1, _arg2)); return (_local4); } } }//package
Section 477
//TreasureReport (TreasureReport) package { import flash.events.*; import flash.text.*; import flash.display.*; public class TreasureReport extends MovieClip { const icon_gap = 4; var chest:TreasureChest; var icons:Array; public var bg:MovieClip; public var discard_btn:DiscardButton; public var selected_count_label:TextField; public var weapons_lbl:TextField; public var consumables_lbl:TextField; public var take_btn:TakeButton; public var armor_lbl:TextField; var tooltipController:ItemTooltipController; public function TreasureReport(_arg1:String="chest"){ icons = new Array(); super(); tooltipController = new ItemTooltipController(); this.addEventListener(Event.ADDED_TO_STAGE, added); this.gotoAndStop(_arg1); } function added(_arg1:Event):void{ this.removeEventListener(Event.ADDED_TO_STAGE, added); if (stage != null){ tooltipController.stage = stage; }; } private function updateSelectedCount():void{ var _local1:int; var _local2:*; _local1 = 0; _local2 = 0; while (_local2 < icons.length) { if (icons[_local2].taking){ _local1++; }; _local2++; }; selected_count_label.text = ((("SELECTED: " + String(_local1)) + "/") + String(icons.length)); } public function takeSettingsChange(_arg1:TreasureCategoryTake):void{ } public function drawIcons():void{ var _local1:Array; var _local2:Array; var _local3:Array; var _local4:*; var _local5:*; var _local6:*; var _local7 = ??pushnamespace ; var _local8 = ??pushnamespace ; var _local9:*; var _local10:*; _local1 = new Array(); _local2 = new Array(); _local3 = new Array(); _local4 = 0; while (_local4 < icons.length) { if (icons[_local4] == null){ } else { if (icons[_local4].item_ref == null){ } else { if ((icons[_local4].item_ref is Consumable)){ _local1.push(icons[_local4]); } else { if ((icons[_local4].item_ref is Weapon)){ _local2.push(icons[_local4]); } else { if ((icons[_local4].item_ref is Equipment)){ _local3.push(icons[_local4]); }; }; }; icons[_local4].addEventListener(MouseEvent.MOUSE_DOWN, clickedIcon); }; }; _local4++; }; _local5 = 0; _local6 = 0; _local7 = 18; _local8 = 54; _local9 = (consumables_lbl.y + _local7); _local10 = (bg.x + 30); removeChild(consumables_lbl); removeChild(weapons_lbl); removeChild(armor_lbl); _local4 = 0; while (_local4 < _local1.length) { _local5 = Math.floor((_local4 / 12)); _local6 = (_local4 % 12); _local1[_local4].x = (_local10 + (_local6 * (_local1[_local4].width + icon_gap))); _local1[_local4].y = (_local9 + (_local5 * (_local1[_local4].height + icon_gap))); addChild(_local1[_local4]); _local4++; }; if (_local1.length){ _local9 = (_local9 + _local8); addChild(consumables_lbl); }; weapons_lbl.y = (_local9 - _local7); _local4 = 0; while (_local4 < _local2.length) { _local5 = Math.floor((_local4 / 12)); _local6 = (_local4 % 12); _local2[_local4].x = (_local10 + (_local6 * (_local2[_local4].width + icon_gap))); _local2[_local4].y = (_local9 + (_local5 * (_local2[_local4].height + icon_gap))); addChild(_local2[_local4]); _local4++; }; if (_local2.length){ _local9 = (_local9 + _local8); addChild(weapons_lbl); }; armor_lbl.y = (_local9 - _local7); _local4 = 0; while (_local4 < _local3.length) { _local5 = Math.floor((_local4 / 12)); _local6 = (_local4 % 12); _local3[_local4].x = (_local10 + (_local6 * (_local3[_local4].width + icon_gap))); _local3[_local4].y = (_local9 + (_local5 * (_local3[_local4].height + icon_gap))); addChild(_local3[_local4]); _local4++; }; if (_local3.length){ addChild(armor_lbl); }; updateSelectedCount(); } public function addItemRef(_arg1:Item):int{ var _local2:*; var _local3:*; var _local4:*; if (_arg1 == null){ return (-1); }; _local2 = 0; _local3 = 0; while (_local3 < Party.MAX_OVERFLOW) { if (icons[_local3] == null){ _local4 = new InventoryIcon(_arg1, tooltipController); icons.push(_local4); return (_local3); }; _local3++; }; return (-1); } public function cleanup():void{ var _local1:*; _local1 = 0; while (_local1 < icons.length) { icons[_local1].removeEventListener(MouseEvent.MOUSE_DOWN, clickedIcon); icons[_local1].cleanup(); _local1++; }; } function clickedIcon(_arg1:MouseEvent):void{ var _local2:InventoryIcon; _local2 = InventoryIcon(_arg1.currentTarget); _local2.taking = !(_local2.taking); if (_local2.taking){ _local2.alpha = 1; } else { _local2.alpha = 0.3; }; updateSelectedCount(); } } }//package
Section 478
//TypeButton (TypeButton) package { import flash.display.*; public dynamic class TypeButton extends MovieClip { } }//package
Section 479
//WarningDialog (WarningDialog) package { import flash.events.*; import flash.text.*; import flash.display.*; public class WarningDialog extends MovieClip { public var yes_btn:ContinueButton; public var dlg_text:TextField; public function WarningDialog(_arg1:String=""){ if (_arg1.length){ setText(_arg1); }; yes_btn.addEventListener(MouseEvent.MOUSE_DOWN, clickOkay); } private function cleanup():void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); } public function setText(_arg1:String):void{ dlg_text.text = _arg1; } function clickOkay(_arg1:MouseEvent):void{ yes_btn.removeEventListener(MouseEvent.MOUSE_DOWN, clickOkay); if (parent != null){ parent.removeChild(this); cleanup(); }; } } }//package
Section 480
//Weapon (Weapon) package { public class Weapon extends Equipment { const crossbow_base_damage = 16; const spear_base_damage = 20; const sword_base_damage = 15; const dagger_base_damage = 14; const bow_base_damage = 14; const mace_base_damage = 14; const axe_base_damage = 22; private var _twoHanded:Boolean;// = false var base_damage_mod:int;// = 0 var base_damage:int; private var _damage:int; static const staff_base_damage = 14; public function Weapon(){ _twoHanded = false; base_damage_mod = 0; super(); item_name = "Weapon"; slot = weapon; grey_name = "Damaged"; } override public function generateItem(_arg1:int):void{ var _local2:*; var _local3:*; _local2 = false; _local3 = false; if (item_rarity == Item.green){ if (DungeonMain.RandomNum(0, 100) >= 50){ _local3 = true; } else { _local2 = true; }; }; getItemModifiers(); if ((((item_rarity == Item.blue)) || (_local3))){ prefix = rollForPrefix(item_rarity); }; if ((((item_rarity == Item.blue)) || (_local2))){ suffix = rollForSuffix(item_rarity); }; if (prefix >= 0){ applyPrefix(); }; if (suffix >= 0){ applySuffix(); }; damage = scaleWeaponDamageForLevel((base_damage * (1 + (base_damage_mod / 100)))); material = rollForMaterial(item_rarity, materials); scaleDamageForMaterial(material); if (material >= 0){ item_name = ((materials[material] + " ") + item_name); }; if (prefix >= 0){ item_name = ((prefixes[prefix][0] + " ") + item_name); }; if (suffix >= 0){ item_name = ((item_name + " of ") + suffixes[suffix][0]); }; if (item_rarity == Item.grey){ item_name = ((grey_name + " ") + item_name); }; } override public function getItemTypeString(){ return ("Weapon"); } override public function applySuffix():void{ var _local1:*; _local1 = suffix; if (_local1 < 0){ return; }; super.applySuffix(); } public function get damage():int{ return (this._damage); } public function set twoHanded(_arg1:Boolean):void{ this._twoHanded = _arg1; } override public function itemStatsString(_arg1:String):String{ _arg1 = (_arg1 + (String(damage) + " damage\n")); return (super.itemStatsString(_arg1)); } override public function applyPrefix():void{ var _local1:*; _local1 = prefix; if (_local1 < 0){ return; }; super.applyPrefix(); } public function scaleWeaponDamageForLevel(_arg1:int):int{ var _local2:int; var _local3:*; _local2 = (30 * (item_level - 1)); _local3 = (_arg1 + Math.round(((item_level - 1) * ((_local2 / 300) * _arg1)))); return (_local3); } public function get twoHanded():Boolean{ return (this._twoHanded); } public function set damage(_arg1:int):void{ this._damage = _arg1; } override public function getItemModifiers():void{ super.getItemModifiers(); prefixes.push(["Staggering", 10]); prefixes.push(["Unerring", base_accuracy_bonus]); prefixes.push(["Venomous", 5]); prefixes.push(["Blinding", 10]); prefixes.push(["Vampiric", 10]); suffixes.push(["Lethality", 1]); } public function scaleDamageForMaterial(_arg1:int){ var _local2:*; _local2 = (1 + ((_arg1 + 1) * 0.05)); damage = Math.round((damage * _local2)); } } }//package
Section 481
//web_effect (web_effect) package { import flash.display.*; public dynamic class web_effect extends MovieClip { public function web_effect(){ addFrameScript(0, frame1, 44, frame45); } function frame1(){ dm.sound.play(SoundControl.web); } function frame45(){ this.stop(); } } }//package
Section 482
//web_squirt_sound (web_squirt_sound) package { import flash.media.*; public dynamic class web_squirt_sound extends Sound { } }//package
Section 483
//VolumeControl (VolumeControl) package { import flash.display.*; public class VolumeControl extends MovieClip { public var sfx_selector:VolumeSelector; public var global_selector:VolumeSelector; var main:DungeonMain; public var music_selector:VolumeSelector; public function VolumeControl(_arg1:DungeonMain=null):void{ if (_arg1 == null){ return; }; init(_arg1); } public function init(_arg1:DungeonMain):void{ if (_arg1 == null){ if (dm.main == null){ return; }; _arg1 = dm.main; }; this.main = _arg1; global_selector.setFrameFromVolume(GlobalVolume.volumeSetting); sfx_selector.setFrameFromVolume(SoundControl.volumeSetting); music_selector.setFrameFromVolume(Music.volumeSetting); } public function adjustVolume(_arg1:VolumeSelector, _arg2:Number):void{ if (_arg1 == global_selector){ GlobalVolume.setVolume(_arg2); main.saveInterface(); } else { if (_arg1 == music_selector){ main.setMusicVolume(_arg2); main.saveInterface(); } else { if (_arg1 == sfx_selector){ SoundControl.volumeSetting = _arg2; main.saveInterface(); }; }; }; } public function cleanup():void{ global_selector.cleanup(); sfx_selector.cleanup(); music_selector.cleanup(); } } }//package
Section 484
//VolumeControlMenu (VolumeControlMenu) package { public dynamic class VolumeControlMenu extends VolumeControl { } }//package
Section 485
//VolumeSelector (VolumeSelector) package { import flash.events.*; import flash.text.*; import flash.display.*; public class VolumeSelector extends MovieClip { const vol_mid = 2; const vol_off = 0; const vol_full = 3; const vol_low = 1; public var mid:TextField; public var low:TextField; public var off:TextField; public var full:TextField; public function VolumeSelector():void{ full.addEventListener(MouseEvent.MOUSE_DOWN, clickFull); mid.addEventListener(MouseEvent.MOUSE_DOWN, clickMid); low.addEventListener(MouseEvent.MOUSE_DOWN, clickLow); off.addEventListener(MouseEvent.MOUSE_DOWN, clickOff); } private function setFrame(_arg1:int):void{ if (_arg1 == vol_off){ this.gotoAndStop("off"); } else { if (_arg1 == vol_low){ this.gotoAndStop("low"); } else { if (_arg1 == vol_mid){ this.gotoAndStop("mid"); } else { if (_arg1 == vol_full){ this.gotoAndStop("full"); }; }; }; }; } function clickFull(_arg1:MouseEvent):void{ var _local2:*; _local2 = GlobalVolume.volumeFull; setFrame(vol_full); if (parent != null){ VolumeControl(parent).adjustVolume(this, _local2); }; } function clickLow(_arg1:MouseEvent):void{ var _local2:*; _local2 = GlobalVolume.volumeLow; setFrame(vol_low); if (parent != null){ VolumeControl(parent).adjustVolume(this, _local2); }; } function clickMid(_arg1:MouseEvent):void{ var _local2:*; _local2 = GlobalVolume.volumeMid; setFrame(vol_mid); if (parent != null){ VolumeControl(parent).adjustVolume(this, _local2); }; } public function cleanup():void{ full.removeEventListener(MouseEvent.MOUSE_DOWN, clickFull); mid.removeEventListener(MouseEvent.MOUSE_DOWN, clickMid); low.removeEventListener(MouseEvent.MOUSE_DOWN, clickLow); off.removeEventListener(MouseEvent.MOUSE_DOWN, clickOff); } function clickOff(_arg1:MouseEvent):void{ var _local2:*; _local2 = GlobalVolume.volumeOff; setFrame(vol_off); if (parent != null){ VolumeControl(parent).adjustVolume(this, _local2); }; } public function setFrameFromVolume(_arg1:Number):void{ if (_arg1 == GlobalVolume.volumeOff){ setFrame(vol_off); } else { if (_arg1 == GlobalVolume.volumeLow){ setFrame(vol_low); } else { if (_arg1 == GlobalVolume.volumeMid){ setFrame(vol_mid); } else { if (_arg1 == GlobalVolume.volumeFull){ setFrame(vol_full); }; }; }; }; } } }//package
Section 486
//VolumeSelectorMenu (VolumeSelectorMenu) package { public dynamic class VolumeSelectorMenu extends VolumeSelector { } }//package
Section 487
//writing_sound (writing_sound) package { import flash.media.*; public dynamic class writing_sound extends Sound { } }//package
Section 488
//YesButton (YesButton) package { import flash.display.*; public dynamic class YesButton extends MovieClip { } }//package

Library Items

Symbol 1 GraphicUsed by:5 12 263 318 338 385 424 426 435 436 701 712 755 788 806 838 898 916 928 935 942 945 983
Symbol 2 BitmapUsed by:3
Symbol 3 GraphicUses:2Used by:4
Symbol 4 MovieClipUses:3Used by:5 436
Symbol 5 MovieClip {CorridorConnectorV}Uses:1 4Used by:Timeline
Symbol 6 GraphicUsed by:12 419 421 427 430 431 432 720 838 894 959 973 982 999 1004 1014 1022 1032 1035 1056 1076
Symbol 7 GraphicUsed by:10 11 28 257
Symbol 8 GraphicUsed by:9
Symbol 9 MovieClipUses:8Used by:10 11
Symbol 10 MovieClipUses:7 9Used by:12
Symbol 11 MovieClipUses:7 9Used by:12
Symbol 12 MovieClipUses:1 6 10 11Used by:268 309 380 1177  Timeline
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 ButtonUses:14Used by:Timeline
Symbol 16 FontUsed by:17 19 20 55 56 57 219 236 237 238 240 242 244 251 252 253 254 255 256 259 260 275 281 285 290 291 292 304 322 323 324 325 327 328 329 334 335 336 337 339 340 446 447 448 449 450 451 453 454 455 456 457 461 462 463 464 465 467 468 474 476 484 488 489 495 497 498 499 500 501 502 503 504 505 506 507 508 509 516 517 518 519 520 535 536 574 702 704 707 708 714 715 725 728 730 731 732 748 752 808 816 825 826 827 833 834 840 843 849 853 856 857 858 860 863 871 873 874 875 876 877 880 883 884 896 899 900 1145 1146 1147 1148
Symbol 17 TextUses:16Used by:Timeline
Symbol 18 FontUsed by:19 20 219 236 237 238 240 242 244 251 252 253 254 255 256 259 260 281 285 292 304 322 323 324 325 375 377 446 447 448 449 450 451 453 454 455 456 457 461 462 463 464 465 467 468 474 476 484 495 518 520 535 536 574 702 704 708 714 715 725 728 730 731 732 748 752 825 826 827 833 840 853 871 873 874 875 876 877 880 883 884 896 899 900 1145 1146 1147 1148
Symbol 19 EditableTextUses:16 18 24Used by:Timeline
Symbol 20 EditableTextUses:16 18 24Used by:Timeline
Symbol 21 GraphicUsed by:22
Symbol 22 MovieClipUses:21Used by:Timeline
Symbol 23 GraphicUsed by:Timeline
Symbol 24 FontUsed by:19 20 25 26 27 219 227 230 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 258 259 260 261 262 266 278 281 282 283 285 292 300 304 322 323 324 325 334 335 446 447 448 449 450 451 453 454 455 456 457 458 461 462 463 464 465 467 468 474 476 484 490 491 492 493 494 495 518 520 529 530 533 535 536 539 543 545 547 552 554 560 562 574 702 704 708 709 714 715 725 728 730 731 732 739 742 745 748 750 752 753 754 756 809 812 825 826 827 829 831 833 840 845 853 859 861 864 871 872 873 874 875 876 877 880 883 884 896 899 900 902 903 904 905 906 907 908 909 910 911 912 913 914 915 918 919 920 921 922 923 924 925 926 927 929 930 931 932 933 934 1145 1146 1147 1148 1150 1151 1152
Symbol 25 TextUses:24Used by:Timeline
Symbol 26 TextUses:24Used by:28
Symbol 27 TextUses:24Used by:28
Symbol 28 Button {BiclopsPreloaderLink}Uses:26 27 7Used by:Timeline
Symbol 29 GraphicUsed by:31
Symbol 30 GraphicUsed by:31
Symbol 31 MovieClip {SkillIconBG}Uses:29 30Used by:91  Timeline
Symbol 32 GraphicUsed by:91
Symbol 33 GraphicUsed by:91
Symbol 34 GraphicUsed by:91
Symbol 35 GraphicUsed by:91
Symbol 36 GraphicUsed by:91
Symbol 37 GraphicUsed by:91
Symbol 38 GraphicUsed by:91
Symbol 39 GraphicUsed by:91
Symbol 40 GraphicUsed by:91 296
Symbol 41 GraphicUsed by:91
Symbol 42 GraphicUsed by:91
Symbol 43 GraphicUsed by:91
Symbol 44 GraphicUsed by:91
Symbol 45 GraphicUsed by:91 1028 1099
Symbol 46 GraphicUsed by:91 296
Symbol 47 GraphicUsed by:91 296
Symbol 48 GraphicUsed by:91
Symbol 49 GraphicUsed by:91
Symbol 50 GraphicUsed by:91
Symbol 51 GraphicUsed by:91
Symbol 52 GraphicUsed by:91
Symbol 53 GraphicUsed by:91
Symbol 54 GraphicUsed by:91
Symbol 55 TextUses:16Used by:91
Symbol 56 TextUses:16Used by:91
Symbol 57 TextUses:16Used by:91
Symbol 58 GraphicUsed by:91
Symbol 59 GraphicUsed by:91 296
Symbol 60 GraphicUsed by:91
Symbol 61 GraphicUsed by:91
Symbol 62 GraphicUsed by:91
Symbol 63 GraphicUsed by:91
Symbol 64 GraphicUsed by:91
Symbol 65 GraphicUsed by:91
Symbol 66 GraphicUsed by:91
Symbol 67 GraphicUsed by:91
Symbol 68 GraphicUsed by:91
Symbol 69 GraphicUsed by:91
Symbol 70 GraphicUsed by:91
Symbol 71 GraphicUsed by:91
Symbol 72 GraphicUsed by:91
Symbol 73 GraphicUsed by:91
Symbol 74 GraphicUsed by:91
Symbol 75 GraphicUsed by:91
Symbol 76 GraphicUsed by:91
Symbol 77 GraphicUsed by:91
Symbol 78 GraphicUsed by:91
Symbol 79 GraphicUsed by:91
Symbol 80 GraphicUsed by:91
Symbol 81 GraphicUsed by:91
Symbol 82 GraphicUsed by:91 296 555
Symbol 83 GraphicUsed by:91
Symbol 84 GraphicUsed by:91
Symbol 85 GraphicUsed by:91
Symbol 86 GraphicUsed by:91
Symbol 87 GraphicUsed by:91
Symbol 88 GraphicUsed by:91
Symbol 89 GraphicUsed by:91
Symbol 90 GraphicUsed by:91
Symbol 91 MovieClip {SkillIcon}Uses:31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90Used by:703 705 882  Timeline
Symbol 92 GraphicUsed by:93
Symbol 93 MovieClip {SkillIconEmpty}Uses:92Used by:99 521  Timeline
Symbol 94 GraphicUsed by:97
Symbol 95 GraphicUsed by:97
Symbol 96 GraphicUsed by:97
Symbol 97 MovieClip {SkillIconHighlight}Uses:94 95 96Used by:Timeline
Symbol 98 GraphicUsed by:99
Symbol 99 MovieClip {SkillBar}Uses:98 93Used by:895  Timeline
Symbol 100 FontUsed by:101 286 298 320 333 344 345 348 349 351 352 445 473 706 807 815 824 839 842 848 852 855
Symbol 101 TextUses:100Used by:268
Symbol 102 GraphicUsed by:104
Symbol 103 GraphicUsed by:104
Symbol 104 MovieClip {SaveGameStatusBG}Uses:102 103Used by:264
Symbol 105 GraphicUsed by:264
Symbol 106 GraphicUsed by:107
Symbol 107 MovieClipUses:106Used by:264
Symbol 108 GraphicUsed by:109 1044 1074
Symbol 109 MovieClipUses:108Used by:110
Symbol 110 MovieClip {EmptyPortrait}Uses:109Used by:264 563 755 895  Timeline
Symbol 111 GraphicUsed by:221
Symbol 112 BitmapUsed by:113
Symbol 113 GraphicUses:112Used by:211
Symbol 114 BitmapUsed by:115
Symbol 115 GraphicUses:114Used by:211
Symbol 116 BitmapUsed by:117
Symbol 117 GraphicUses:116Used by:211
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:211
Symbol 120 BitmapUsed by:121
Symbol 121 GraphicUses:120Used by:211
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:211
Symbol 124 BitmapUsed by:125
Symbol 125 GraphicUses:124Used by:211
Symbol 126 BitmapUsed by:127
Symbol 127 GraphicUses:126Used by:211
Symbol 128 BitmapUsed by:129
Symbol 129 GraphicUses:128Used by:211
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:211
Symbol 132 BitmapUsed by:133
Symbol 133 GraphicUses:132Used by:211
Symbol 134 BitmapUsed by:135
Symbol 135 GraphicUses:134Used by:211
Symbol 136 BitmapUsed by:137
Symbol 137 GraphicUses:136Used by:211
Symbol 138 BitmapUsed by:139
Symbol 139 GraphicUses:138Used by:211
Symbol 140 BitmapUsed by:141
Symbol 141 GraphicUses:140Used by:211
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:211
Symbol 144 BitmapUsed by:145
Symbol 145 GraphicUses:144Used by:211
Symbol 146 BitmapUsed by:147
Symbol 147 GraphicUses:146Used by:211
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:211
Symbol 150 BitmapUsed by:151
Symbol 151 GraphicUses:150Used by:211
Symbol 152 BitmapUsed by:153
Symbol 153 GraphicUses:152Used by:211
Symbol 154 BitmapUsed by:155
Symbol 155 GraphicUses:154Used by:211
Symbol 156 BitmapUsed by:157
Symbol 157 GraphicUses:156Used by:211
Symbol 158 BitmapUsed by:159
Symbol 159 GraphicUses:158Used by:211
Symbol 160 BitmapUsed by:161
Symbol 161 GraphicUses:160Used by:211
Symbol 162 BitmapUsed by:163 164
Symbol 163 GraphicUses:162Used by:211
Symbol 164 GraphicUses:162Used by:211
Symbol 165 BitmapUsed by:166
Symbol 166 GraphicUses:165Used by:211
Symbol 167 BitmapUsed by:168
Symbol 168 GraphicUses:167Used by:211
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:211
Symbol 171 BitmapUsed by:172
Symbol 172 GraphicUses:171Used by:211
Symbol 173 BitmapUsed by:174
Symbol 174 GraphicUses:173Used by:211
Symbol 175 BitmapUsed by:176
Symbol 176 GraphicUses:175Used by:211
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:211
Symbol 179 BitmapUsed by:180
Symbol 180 GraphicUses:179Used by:211
Symbol 181 BitmapUsed by:182
Symbol 182 GraphicUses:181Used by:211
Symbol 183 BitmapUsed by:184
Symbol 184 GraphicUses:183Used by:211
Symbol 185 BitmapUsed by:186
Symbol 186 GraphicUses:185Used by:211
Symbol 187 BitmapUsed by:188
Symbol 188 GraphicUses:187Used by:211
Symbol 189 BitmapUsed by:190
Symbol 190 GraphicUses:189Used by:211
Symbol 191 BitmapUsed by:192
Symbol 192 GraphicUses:191Used by:211
Symbol 193 BitmapUsed by:194
Symbol 194 GraphicUses:193Used by:211
Symbol 195 BitmapUsed by:196
Symbol 196 GraphicUses:195Used by:211
Symbol 197 BitmapUsed by:198
Symbol 198 GraphicUses:197Used by:211
Symbol 199 BitmapUsed by:200
Symbol 200 GraphicUses:199Used by:211
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:211
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:211
Symbol 205 BitmapUsed by:206
Symbol 206 GraphicUses:205Used by:211
Symbol 207 BitmapUsed by:208
Symbol 208 GraphicUses:207Used by:211
Symbol 209 BitmapUsed by:210
Symbol 210 GraphicUses:209Used by:211
Symbol 211 MovieClip {CharGraphic}Uses:113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 145 147 149 151 153 155 157 159 161 163 164 166 168 170 172 174 176 178 180 182 184 186 188 190 192 194 196 198 200 202 204 206 208 210Used by:221 297 452 563 879 1002  Timeline
Symbol 212 GraphicUsed by:215 218
Symbol 213 GraphicUsed by:214 542
Symbol 214 MovieClipUses:213Used by:215  Timeline
Symbol 215 MovieClip {PowerBar}Uses:212 214Used by:221  Timeline
Symbol 216 GraphicUsed by:217 435 437 538 757 970 987 1014 1143
Symbol 217 MovieClip {RedBar}Uses:216Used by:218  Timeline
Symbol 218 MovieClip {HealthBar}Uses:212 217Used by:221  Timeline
Symbol 219 EditableTextUses:16 18 24Used by:221
Symbol 220 GraphicUsed by:221
Symbol 221 MovieClip {CharacterPortrait}Uses:111 211 215 218 219 220Used by:264  Timeline
Symbol 222 GraphicUsed by:225
Symbol 223 GraphicUsed by:225
Symbol 224 GraphicUsed by:225
Symbol 225 MovieClip {ThinButtonBG}Uses:222 223 224Used by:228 231 267 301 531 534 548 553 555 561 710 740 743 746 751 810 813 830 832 846
Symbol 226 GraphicUsed by:228
Symbol 227 TextUses:24Used by:228
Symbol 228 MovieClip {LoadButton}Uses:225 226 227Used by:264
Symbol 229 GraphicUsed by:231 710 810 832
Symbol 230 TextUses:24Used by:231
Symbol 231 MovieClip {DeleteButton}Uses:225 229 230Used by:264 847
Symbol 232 GraphicUsed by:264
Symbol 233 TextUses:24Used by:257
Symbol 234 TextUses:24Used by:257
Symbol 235 TextUses:24Used by:257
Symbol 236 EditableTextUses:16 18 24Used by:257
Symbol 237 EditableTextUses:16 18 24Used by:257
Symbol 238 EditableTextUses:16 18 24Used by:257
Symbol 239 TextUses:24Used by:257
Symbol 240 EditableTextUses:16 18 24Used by:257
Symbol 241 TextUses:24Used by:257
Symbol 242 EditableTextUses:16 18 24Used by:257
Symbol 243 TextUses:24Used by:257
Symbol 244 EditableTextUses:16 18 24Used by:257
Symbol 245 TextUses:24Used by:257
Symbol 246 TextUses:24Used by:257
Symbol 247 TextUses:24Used by:257
Symbol 248 TextUses:24Used by:257
Symbol 249 TextUses:24Used by:257
Symbol 250 TextUses:24Used by:257
Symbol 251 EditableTextUses:16 18 24Used by:257
Symbol 252 EditableTextUses:16 18 24Used by:257
Symbol 253 EditableTextUses:16 18 24Used by:257
Symbol 254 EditableTextUses:16 18 24Used by:257
Symbol 255 EditableTextUses:16 18 24Used by:257
Symbol 256 EditableTextUses:16 18 24Used by:257
Symbol 257 MovieClip {StatusStatScroller}Uses:7 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256Used by:264
Symbol 258 EditableTextUses:24Used by:264
Symbol 259 EditableTextUses:16 18 24Used by:264
Symbol 260 EditableTextUses:16 18 24Used by:264
Symbol 261 TextUses:24Used by:263
Symbol 262 TextUses:24Used by:263
Symbol 263 MovieClip {SaveGameEmpty}Uses:1 261 262Used by:264  Timeline
Symbol 264 MovieClip {SaveGameStatus}Uses:104 105 107 110 221 228 231 232 257 258 259 260 263Used by:268  Timeline
Symbol 265 GraphicUsed by:267
Symbol 266 TextUses:24Used by:267
Symbol 267 MovieClip {BackButton}Uses:225 265 266Used by:268 309
Symbol 268 MovieClip {LoadParty}Uses:12 101 264 267Used by:Timeline
Symbol 269 GraphicUsed by:273 284
Symbol 270 GraphicUsed by:273 284
Symbol 271 GraphicUsed by:273 284
Symbol 272 GraphicUsed by:273 284
Symbol 273 MovieClip {dungeon_fla.SelectArrow_31}Uses:269 270 271 272Used by:Timeline
Symbol 274 GraphicUsed by:276
Symbol 275 TextUses:16Used by:276
Symbol 276 MovieClip {CharCreationEmpty}Uses:274 275Used by:309  Timeline
Symbol 277 GraphicUsed by:297
Symbol 278 TextUses:24Used by:297
Symbol 279 GraphicUsed by:280
Symbol 280 MovieClipUses:279Used by:297
Symbol 281 EditableTextUses:16 18 24Used by:297
Symbol 282 TextUses:24Used by:297
Symbol 283 TextUses:24Used by:297
Symbol 284 Button {SelectArrow}Uses:269 270 271 272Used by:297
Symbol 285 EditableTextUses:16 18 24Used by:297
Symbol 286 EditableTextUses:100 822Used by:297
Symbol 287 GraphicUsed by:289
Symbol 288 GraphicUsed by:289
Symbol 289 MovieClip {GenderIcon}Uses:287 288Used by:297
Symbol 290 TextUses:16Used by:297
Symbol 291 TextUses:16Used by:297
Symbol 292 EditableTextUses:16 18 24Used by:297
Symbol 293 GraphicUsed by:295
Symbol 294 GraphicUsed by:295
Symbol 295 MovieClip {ClassIconBG}Uses:293 294Used by:296  Timeline
Symbol 296 MovieClip {ClassIcon}Uses:295 82 40 59 46 47Used by:297  Timeline
Symbol 297 MovieClip {CharCreationPanel}Uses:277 278 280 281 282 283 211 284 285 286 289 290 291 292 296Used by:309  Timeline
Symbol 298 TextUses:100Used by:309
Symbol 299 GraphicUsed by:301
Symbol 300 TextUses:24Used by:301
Symbol 301 MovieClip {ContinueButton}Uses:225 299 300Used by:309 332 343 711 841 854 866
Symbol 302 GraphicUsed by:308
Symbol 303 GraphicUsed by:308
Symbol 304 EditableTextUses:16 18 24Used by:308
Symbol 305 GraphicUsed by:308
Symbol 306 GraphicUsed by:308
Symbol 307 GraphicUsed by:308
Symbol 308 MovieClip {dCheckBox}Uses:302 303 304 305 306 307Used by:309 332 854  Timeline
Symbol 309 MovieClip {PartyCreation}Uses:12 276 297 298 301 267 308Used by:Timeline
Symbol 310 FontUsed by:311 312 313 314 793
Symbol 311 TextUses:310Used by:315
Symbol 312 TextUses:310Used by:315
Symbol 313 TextUses:310Used by:315
Symbol 314 TextUses:310Used by:315
Symbol 315 MovieClipUses:311 312 313 314Used by:805  Timeline
Symbol 316 GraphicUsed by:317
Symbol 317 MovieClip {dungeon_fla.LoadingSymbol_43}Uses:316Used by:Timeline
Symbol 318 MovieClip {dungeon_fla.FadeScreenDarker_45}Uses:1Used by:332 343 711 838
Symbol 319 GraphicUsed by:332 343 814 817 841 847 850 851 866
Symbol 320 TextUses:100Used by:332
Symbol 321 GraphicUsed by:326 1149
Symbol 322 EditableTextUses:16 18 24Used by:326
Symbol 323 EditableTextUses:16 18 24Used by:326
Symbol 324 EditableTextUses:16 18 24Used by:326
Symbol 325 EditableTextUses:16 18 24Used by:326
Symbol 326 MovieClip {VolumeSelectorMenu}Uses:321 322 323 324 325Used by:331
Symbol 327 TextUses:16Used by:331
Symbol 328 TextUses:16Used by:331
Symbol 329 TextUses:16Used by:331
Symbol 330 GraphicUsed by:331
Symbol 331 MovieClip {VolumeControlMenu}Uses:326 327 328 329 330Used by:332
Symbol 332 MovieClip {OptionsScreen}Uses:318 319 320 301 331 308Used by:Timeline
Symbol 333 TextUses:100Used by:343
Symbol 334 TextUses:24 16Used by:343
Symbol 335 TextUses:24 16Used by:343
Symbol 336 TextUses:16Used by:338
Symbol 337 TextUses:16Used by:338
Symbol 338 ButtonUses:336 337 1Used by:343
Symbol 339 TextUses:16Used by:342
Symbol 340 TextUses:16Used by:342
Symbol 341 GraphicUsed by:342
Symbol 342 ButtonUses:339 340 341Used by:343
Symbol 343 MovieClip {CreditsScreen}Uses:318 319 333 334 301 335 338 342Used by:Timeline
Symbol 344 TextUses:100Used by:347
Symbol 345 TextUses:100Used by:347
Symbol 346 GraphicUsed by:347 350 353
Symbol 347 Button {PlayGameButton}Uses:344 345 346Used by:380
Symbol 348 TextUses:100Used by:350
Symbol 349 TextUses:100Used by:350
Symbol 350 Button {CreditsButton}Uses:348 349 346Used by:380
Symbol 351 TextUses:100Used by:353
Symbol 352 TextUses:100Used by:353
Symbol 353 ButtonUses:351 352 346Used by:380
Symbol 354 GraphicUsed by:355
Symbol 355 MovieClipUses:354Used by:358
Symbol 356 BitmapUsed by:357
Symbol 357 GraphicUses:356Used by:358
Symbol 358 MovieClip {dungeon_fla.TitleText_55}Uses:355 357Used by:380
Symbol 359 GraphicUsed by:360 361
Symbol 360 MovieClip {dungeon_fla.Eye1_59}Uses:359Used by:370
Symbol 361 MovieClip {dungeon_fla.Eye2_60}Uses:359Used by:370
Symbol 362 GraphicUsed by:366
Symbol 363 ShapeTweeningUsed by:366
Symbol 364 GraphicUsed by:366
Symbol 365 ShapeTweeningUsed by:366
Symbol 366 MovieClipUses:362 363 364 365Used by:370
Symbol 367 GraphicUsed by:370
Symbol 368 FontUsed by:369
Symbol 369 TextUses:368Used by:370
Symbol 370 MovieClipUses:360 361 366 367 369Used by:372
Symbol 371 GraphicUsed by:372
Symbol 372 Button {BiclopsLogo}Uses:370 371Used by:380
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:379
Symbol 375 TextUses:18Used by:379
Symbol 376 GraphicUsed by:379
Symbol 377 TextUses:18Used by:379
Symbol 378 GraphicUsed by:379
Symbol 379 ButtonUses:374 375 376 377 378Used by:380
Symbol 380 MovieClip {TitleScreen}Uses:12 347 350 353 358 372 379Used by:Timeline
Symbol 381 BitmapUsed by:382 423
Symbol 382 GraphicUses:381Used by:385
Symbol 383 GraphicUsed by:385
Symbol 384 GraphicUsed by:385
Symbol 385 MovieClip {dungeon_fla.CorridorSegment_63}Uses:1 382 383 384Used by:Timeline
Symbol 386 GraphicUsed by:387
Symbol 387 MovieClip {DungeonRoom}Uses:386Used by:Timeline
Symbol 388 BitmapUsed by:389 390 391 392
Symbol 389 GraphicUses:388Used by:399
Symbol 390 GraphicUses:388Used by:399
Symbol 391 GraphicUses:388Used by:399
Symbol 392 GraphicUses:388Used by:399
Symbol 393 BitmapUsed by:394 395
Symbol 394 GraphicUses:393Used by:399
Symbol 395 GraphicUses:393Used by:399
Symbol 396 BitmapUsed by:397 398
Symbol 397 GraphicUses:396Used by:399
Symbol 398 GraphicUses:396Used by:399
Symbol 399 MovieClip {RandomFloor}Uses:389 390 391 392 394 395 397 398Used by:419 421 427 430 431 432
Symbol 400 GraphicUsed by:419 421 427 430 431 432
Symbol 401 GraphicUsed by:419
Symbol 402 BitmapUsed by:403 962 1061
Symbol 403 GraphicUses:402Used by:419 421 427 430 431 432
Symbol 404 GraphicUsed by:407
Symbol 405 GraphicUsed by:407
Symbol 406 GraphicUsed by:407
Symbol 407 MovieClip {RandomBones}Uses:404 405 406Used by:419 421 427 430 431 432
Symbol 408 GraphicUsed by:419 421 427 430 431 432
Symbol 409 GraphicUsed by:419
Symbol 410 GraphicUsed by:419 431
Symbol 411 GraphicUsed by:415
Symbol 412 GraphicUsed by:415
Symbol 413 GraphicUsed by:415
Symbol 414 GraphicUsed by:415
Symbol 415 MovieClip {dungeon_fla.RandomGear_68}Uses:411 412 413 414Used by:419 421 427 430 431 432
Symbol 416 GraphicUsed by:419 421 427 430 432
Symbol 417 GraphicUsed by:419 421 427 430 431 432
Symbol 418 GraphicUsed by:419 427 430
Symbol 419 MovieClip {rCell}Uses:6 399 400 401 403 407 408 409 410 415 416 417 418Used by:Timeline
Symbol 420 GraphicUsed by:421 427 430
Symbol 421 MovieClip {rChamber}Uses:6 399 400 408 407 403 415 417 420 416Used by:Timeline
Symbol 422 GraphicUsed by:425
Symbol 423 GraphicUses:381Used by:424
Symbol 424 MovieClipUses:1 423Used by:425 426
Symbol 425 MovieClip {rCorridorH}Uses:422 424Used by:Timeline
Symbol 426 MovieClip {rCorridorV}Uses:1 424Used by:Timeline
Symbol 427 MovieClip {rGallery}Uses:6 399 400 418 408 403 407 415 417 416 420Used by:Timeline
Symbol 428 BitmapUsed by:429 965
Symbol 429 GraphicUses:428Used by:430 432
Symbol 430 MovieClip {rLargeRoom}Uses:6 399 400 403 429 418 417 407 415 416 408 420Used by:Timeline
Symbol 431 MovieClip {rTallRoom}Uses:6 399 400 408 410 407 403 417 415Used by:Timeline
Symbol 432 MovieClip {rWideRoom}Uses:6 399 400 407 415 408 403 429 417 416Used by:Timeline
Symbol 433 GraphicUsed by:434
Symbol 434 MovieClipUses:433Used by:435
Symbol 435 MovieClip {DoorIcon}Uses:1 434 216Used by:788  Timeline
Symbol 436 MovieClip {CorridorConnectorH}Uses:1 4Used by:Timeline
Symbol 437 MovieClip {RoomFlash}Uses:216Used by:Timeline
Symbol 438 BitmapUsed by:439
Symbol 439 GraphicUses:438Used by:442
Symbol 440 GraphicUsed by:441
Symbol 441 MovieClipUses:440Used by:442
Symbol 442 MovieClip {rDemonRoom}Uses:439 441Used by:Timeline
Symbol 443 GraphicUsed by:444
Symbol 444 MovieClip {ItemTooltipBg}Uses:443Used by:452 460 466 469  Timeline
Symbol 445 EditableTextUses:100 822Used by:452
Symbol 446 EditableTextUses:16 18 24Used by:452
Symbol 447 EditableTextUses:16 18 24Used by:452
Symbol 448 EditableTextUses:16 18 24Used by:452
Symbol 449 EditableTextUses:16 18 24Used by:452
Symbol 450 EditableTextUses:16 18 24Used by:452
Symbol 451 EditableTextUses:16 18 24Used by:452
Symbol 452 MovieClip {HordeTooltip}Uses:444 445 446 211 447 448 449 450 451Used by:Timeline
Symbol 453 EditableTextUses:16 18 24Used by:460
Symbol 454 EditableTextUses:16 18 24Used by:460
Symbol 455 EditableTextUses:16 18 24Used by:460
Symbol 456 EditableTextUses:16 18 24Used by:460
Symbol 457 EditableTextUses:16 18 24Used by:460
Symbol 458 TextUses:24Used by:459
Symbol 459 MovieClipUses:458Used by:460
Symbol 460 MovieClip {ItemTooltip}Uses:444 453 454 455 456 457 459Used by:Timeline
Symbol 461 EditableTextUses:16 18 24Used by:466
Symbol 462 EditableTextUses:16 18 24Used by:466
Symbol 463 EditableTextUses:16 18 24Used by:466
Symbol 464 EditableTextUses:16 18 24Used by:466
Symbol 465 EditableTextUses:16 18 24Used by:466
Symbol 466 MovieClip {SkillTooltip}Uses:444 461 462 463 464 465Used by:Timeline
Symbol 467 EditableTextUses:16 18 24Used by:469
Symbol 468 EditableTextUses:16 18 24Used by:469
Symbol 469 MovieClip {Tooltip}Uses:444 467 468Used by:Timeline
Symbol 470 GraphicUsed by:563 711 755
Symbol 471 GraphicUsed by:563
Symbol 472 GraphicUsed by:475
Symbol 473 TextUses:100Used by:475
Symbol 474 EditableTextUses:16 18 24Used by:475
Symbol 475 MovieClip {InventoryPanel}Uses:472 473 474Used by:563  Timeline
Symbol 476 EditableTextUses:16 18 24Used by:563
Symbol 477 GraphicUsed by:479
Symbol 478 GraphicUsed by:479
Symbol 479 MovieClip {ItemDestroyTarget}Uses:477 478Used by:563  Timeline
Symbol 480 GraphicUsed by:522
Symbol 481 GraphicUsed by:487
Symbol 482 GraphicUsed by:483
Symbol 483 MovieClip {tab_flash}Uses:482Used by:487
Symbol 484 EditableTextUses:16 18 24Used by:487
Symbol 485 GraphicUsed by:487
Symbol 486 GraphicUsed by:487 724
Symbol 487 MovieClip {InventoryTab}Uses:481 483 484 485 486Used by:522  Timeline
Symbol 488 TextUses:16Used by:514
Symbol 489 TextUses:16Used by:514
Symbol 490 TextUses:24Used by:514
Symbol 491 TextUses:24Used by:514
Symbol 492 TextUses:24Used by:514
Symbol 493 TextUses:24Used by:514
Symbol 494 TextUses:24Used by:514
Symbol 495 EditableTextUses:16 18 24Used by:496
Symbol 496 MovieClip {StatNumber}Uses:495Used by:514  Timeline
Symbol 497 TextUses:16Used by:514
Symbol 498 TextUses:16Used by:514
Symbol 499 TextUses:16Used by:514
Symbol 500 TextUses:16Used by:514
Symbol 501 TextUses:16Used by:514
Symbol 502 TextUses:16Used by:514
Symbol 503 TextUses:16Used by:514
Symbol 504 TextUses:16Used by:514
Symbol 505 TextUses:16Used by:514
Symbol 506 TextUses:16Used by:514
Symbol 507 TextUses:16Used by:514
Symbol 508 TextUses:16Used by:514
Symbol 509 TextUses:16Used by:514
Symbol 510 GraphicUsed by:513
Symbol 511 GraphicUsed by:513
Symbol 512 GraphicUsed by:513
Symbol 513 MovieClip {StatIncreaseButton}Uses:510 511 512Used by:514  Timeline
Symbol 514 MovieClip {CharStatsPanel}Uses:488 489 490 491 492 493 494 496 497 498 499 500 501 502 503 504 505 506 507 508 509 513Used by:522  Timeline
Symbol 515 GraphicUsed by:521
Symbol 516 TextUses:16Used by:521
Symbol 517 TextUses:16Used by:521
Symbol 518 EditableTextUses:16 18 24Used by:521
Symbol 519 TextUses:16Used by:521
Symbol 520 EditableTextUses:16 18 24Used by:521
Symbol 521 MovieClip {CharSkillsPanel}Uses:93 515 516 517 518 519 520Used by:522  Timeline
Symbol 522 MovieClip {CharInfoPanel}Uses:480 487 514 521Used by:563  Timeline
Symbol 523 GraphicUsed by:527
Symbol 524 GraphicUsed by:526
Symbol 525 GraphicUsed by:526
Symbol 526 MovieClip {PaperdollEmptySlot}Uses:524 525Used by:527  Timeline
Symbol 527 MovieClip {Paperdoll}Uses:523 526Used by:563  Timeline
Symbol 528 GraphicUsed by:531
Symbol 529 TextUses:24Used by:531
Symbol 530 TextUses:24Used by:531
Symbol 531 MovieClip {HelpButton}Uses:225 528 529 530Used by:563 755 895  Timeline
Symbol 532 GraphicUsed by:534
Symbol 533 TextUses:24Used by:534
Symbol 534 MovieClip {ReturnButton}Uses:225 532 533Used by:563
Symbol 535 EditableTextUses:16 18 24Used by:563
Symbol 536 EditableTextUses:16 18 24Used by:563
Symbol 537 GraphicUsed by:540
Symbol 538 MovieClip {RedBarHorz}Uses:216Used by:540  Timeline
Symbol 539 EditableTextUses:24Used by:540
Symbol 540 MovieClip {NumericIndicatorHealth}Uses:537 538 539Used by:563 879  Timeline
Symbol 541 GraphicUsed by:544
Symbol 542 MovieClip {BlueBarHorz}Uses:213Used by:544  Timeline
Symbol 543 EditableTextUses:24Used by:544
Symbol 544 MovieClip {NumericIndicatorPower}Uses:541 542 543Used by:563 879  Timeline
Symbol 545 TextUses:24Used by:563
Symbol 546 GraphicUsed by:548
Symbol 547 TextUses:24Used by:548
Symbol 548 MovieClip {LevelButton}Uses:225 546 547Used by:563
Symbol 549 GraphicUsed by:553 555
Symbol 550 FontUsed by:551 737
Symbol 551 TextUses:550Used by:553
Symbol 552 TextUses:24Used by:553
Symbol 553 MovieClip {NameButton}Uses:225 549 551 552Used by:563
Symbol 554 TextUses:24Used by:555
Symbol 555 MovieClip {TypeButton}Uses:225 549 82 554Used by:563
Symbol 556 GraphicUsed by:561
Symbol 557 GraphicUsed by:559
Symbol 558 GraphicUsed by:559
Symbol 559 MovieClip {SoundIcon}Uses:557 558Used by:561
Symbol 560 TextUses:24Used by:561
Symbol 561 MovieClip {SoundButton}Uses:225 556 559 560Used by:563 755 895
Symbol 562 TextUses:24Used by:563 755
Symbol 563 MovieClip {Inventory}Uses:470 471 475 476 479 522 527 110 531 534 211 535 536 540 544 545 548 553 555 561 562Used by:Timeline
Symbol 564 GraphicUsed by:570
Symbol 565 GraphicUsed by:570
Symbol 566 GraphicUsed by:570
Symbol 567 GraphicUsed by:570
Symbol 568 GraphicUsed by:570
Symbol 569 GraphicUsed by:570
Symbol 570 MovieClip {InventoryIconBg}Uses:564 565 566 567 568 569Used by:699  Timeline
Symbol 571 GraphicUsed by:699
Symbol 572 GraphicUsed by:573
Symbol 573 MovieClipUses:572Used by:699
Symbol 574 EditableTextUses:16 18 24Used by:699
Symbol 575 GraphicUsed by:699
Symbol 576 GraphicUsed by:699
Symbol 577 GraphicUsed by:699
Symbol 578 GraphicUsed by:699
Symbol 579 GraphicUsed by:699
Symbol 580 GraphicUsed by:699
Symbol 581 GraphicUsed by:699
Symbol 582 GraphicUsed by:699
Symbol 583 GraphicUsed by:699
Symbol 584 GraphicUsed by:699
Symbol 585 GraphicUsed by:699
Symbol 586 GraphicUsed by:699
Symbol 587 GraphicUsed by:699
Symbol 588 GraphicUsed by:699
Symbol 589 GraphicUsed by:699
Symbol 590 GraphicUsed by:699
Symbol 591 GraphicUsed by:699
Symbol 592 GraphicUsed by:699
Symbol 593 GraphicUsed by:699
Symbol 594 GraphicUsed by:699
Symbol 595 GraphicUsed by:699
Symbol 596 GraphicUsed by:699
Symbol 597 GraphicUsed by:699
Symbol 598 GraphicUsed by:699
Symbol 599 GraphicUsed by:699
Symbol 600 GraphicUsed by:699
Symbol 601 GraphicUsed by:699
Symbol 602 GraphicUsed by:699
Symbol 603 GraphicUsed by:699
Symbol 604 GraphicUsed by:699
Symbol 605 GraphicUsed by:699
Symbol 606 GraphicUsed by:699
Symbol 607 GraphicUsed by:699
Symbol 608 GraphicUsed by:699
Symbol 609 GraphicUsed by:699
Symbol 610 GraphicUsed by:699
Symbol 611 GraphicUsed by:699
Symbol 612 GraphicUsed by:699
Symbol 613 GraphicUsed by:699
Symbol 614 GraphicUsed by:699
Symbol 615 GraphicUsed by:699
Symbol 616 GraphicUsed by:699
Symbol 617 GraphicUsed by:699
Symbol 618 GraphicUsed by:619
Symbol 619 MovieClipUses:618Used by:620
Symbol 620 MovieClipUses:619Used by:699
Symbol 621 GraphicUsed by:699
Symbol 622 GraphicUsed by:699
Symbol 623 GraphicUsed by:699
Symbol 624 GraphicUsed by:699
Symbol 625 GraphicUsed by:699
Symbol 626 GraphicUsed by:699
Symbol 627 GraphicUsed by:699
Symbol 628 GraphicUsed by:699
Symbol 629 GraphicUsed by:699
Symbol 630 GraphicUsed by:699
Symbol 631 GraphicUsed by:699
Symbol 632 GraphicUsed by:699
Symbol 633 GraphicUsed by:699
Symbol 634 GraphicUsed by:699
Symbol 635 GraphicUsed by:636
Symbol 636 MovieClipUses:635Used by:637
Symbol 637 MovieClipUses:636Used by:699
Symbol 638 GraphicUsed by:699
Symbol 639 GraphicUsed by:699
Symbol 640 GraphicUsed by:699
Symbol 641 GraphicUsed by:699
Symbol 642 GraphicUsed by:699
Symbol 643 GraphicUsed by:699
Symbol 644 GraphicUsed by:699
Symbol 645 GraphicUsed by:699
Symbol 646 GraphicUsed by:699
Symbol 647 GraphicUsed by:699
Symbol 648 GraphicUsed by:699
Symbol 649 GraphicUsed by:699
Symbol 650 GraphicUsed by:699
Symbol 651 GraphicUsed by:699
Symbol 652 GraphicUsed by:699
Symbol 653 GraphicUsed by:699
Symbol 654 GraphicUsed by:699
Symbol 655 GraphicUsed by:699
Symbol 656 GraphicUsed by:699
Symbol 657 GraphicUsed by:699
Symbol 658 GraphicUsed by:699
Symbol 659 GraphicUsed by:699
Symbol 660 GraphicUsed by:699
Symbol 661 GraphicUsed by:699
Symbol 662 GraphicUsed by:699
Symbol 663 GraphicUsed by:699
Symbol 664 GraphicUsed by:699
Symbol 665 GraphicUsed by:699
Symbol 666 GraphicUsed by:699
Symbol 667 GraphicUsed by:699
Symbol 668 GraphicUsed by:699
Symbol 669 GraphicUsed by:699
Symbol 670 GraphicUsed by:699
Symbol 671 GraphicUsed by:699
Symbol 672 GraphicUsed by:699
Symbol 673 GraphicUsed by:699
Symbol 674 GraphicUsed by:699
Symbol 675 GraphicUsed by:699
Symbol 676 GraphicUsed by:699
Symbol 677 GraphicUsed by:699
Symbol 678 GraphicUsed by:699
Symbol 679 GraphicUsed by:699
Symbol 680 GraphicUsed by:699
Symbol 681 GraphicUsed by:699
Symbol 682 GraphicUsed by:699
Symbol 683 GraphicUsed by:699
Symbol 684 GraphicUsed by:699
Symbol 685 GraphicUsed by:699
Symbol 686 GraphicUsed by:699
Symbol 687 GraphicUsed by:699
Symbol 688 GraphicUsed by:699
Symbol 689 GraphicUsed by:699
Symbol 690 GraphicUsed by:699
Symbol 691 GraphicUsed by:699
Symbol 692 GraphicUsed by:699
Symbol 693 GraphicUsed by:699
Symbol 694 GraphicUsed by:699
Symbol 695 GraphicUsed by:699
Symbol 696 GraphicUsed by:699
Symbol 697 GraphicUsed by:699
Symbol 698 GraphicUsed by:699
Symbol 699 MovieClip {InventoryIcon}Uses:570 571 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698Used by:Timeline
Symbol 700 GraphicUsed by:701
Symbol 701 MovieClipUses:1 700Used by:703 705
Symbol 702 EditableTextUses:16 18 24Used by:703
Symbol 703 MovieClip {BuySkillPanel}Uses:701 91 702Used by:711
Symbol 704 EditableTextUses:16 18 24Used by:705
Symbol 705 MovieClip {BuySkillPanelR}Uses:701 91 704Used by:711
Symbol 706 TextUses:100Used by:711
Symbol 707 TextUses:16Used by:711
Symbol 708 EditableTextUses:16 18 24Used by:711
Symbol 709 TextUses:24Used by:710
Symbol 710 MovieClip {CancelButton}Uses:225 229 709Used by:711
Symbol 711 MovieClip {BuySkills}Uses:318 470 703 705 706 707 708 710 301Used by:Timeline
Symbol 712 MovieClip {RestScreen}Uses:1Used by:Timeline
Symbol 713 GraphicUsed by:755
Symbol 714 EditableTextUses:16 18 24Used by:755
Symbol 715 EditableTextUses:16 18 24Used by:755
Symbol 716 BitmapUsed by:717
Symbol 717 GraphicUses:716Used by:718
Symbol 718 Button {MaxGamesHudButton}Uses:717Used by:755
Symbol 719 GraphicUsed by:726 729
Symbol 720 MovieClipUses:6Used by:726 729
Symbol 721 GraphicUsed by:726
Symbol 722 GraphicUsed by:724
Symbol 723 GraphicUsed by:724
Symbol 724 MovieClip {ProgressHolder}Uses:722 486 723Used by:726 729
Symbol 725 EditableTextUses:16 18 24Used by:726
Symbol 726 MovieClip {ProgressCleared}Uses:719 720 721 724 725Used by:755
Symbol 727 GraphicUsed by:729
Symbol 728 EditableTextUses:16 18 24Used by:729
Symbol 729 MovieClip {ProgressExplored}Uses:719 720 727 724 728Used by:755
Symbol 730 EditableTextUses:16 18 24Used by:755
Symbol 731 EditableTextUses:16 18 24Used by:755
Symbol 732 EditableTextUses:16 18 24Used by:755
Symbol 733 GraphicUsed by:735 747
Symbol 734 GraphicUsed by:735 747
Symbol 735 MovieClip {DownLevelButton}Uses:733 734Used by:755  Timeline
Symbol 736 GraphicUsed by:740
Symbol 737 TextUses:550Used by:740
Symbol 738 GraphicUsed by:740
Symbol 739 TextUses:24Used by:740
Symbol 740 MovieClip {HintButton}Uses:225 736 737 738 739Used by:755
Symbol 741 GraphicUsed by:743
Symbol 742 TextUses:24Used by:743
Symbol 743 MovieClip {MenuButton}Uses:225 741 742Used by:755
Symbol 744 GraphicUsed by:746
Symbol 745 TextUses:24Used by:746
Symbol 746 MovieClip {CharsButton}Uses:225 744 745Used by:755
Symbol 747 MovieClipUses:733 734Used by:755
Symbol 748 EditableTextUses:16 18 24Used by:755
Symbol 749 GraphicUsed by:751
Symbol 750 TextUses:24Used by:751
Symbol 751 MovieClipUses:225 749 750Used by:755
Symbol 752 EditableTextUses:16 18 24Used by:755
Symbol 753 EditableTextUses:24Used by:755
Symbol 754 EditableTextUses:24Used by:755
Symbol 755 MovieClip {DungeonInterface}Uses:470 1 110 713 714 715 562 718 726 729 730 731 732 531 735 740 743 746 747 561 748 751 752 753 754Used by:Timeline
Symbol 756 EditableTextUses:24Used by:757
Symbol 757 MovieClip {grid_marker}Uses:216 756Used by:Timeline
Symbol 758 GraphicUsed by:759
Symbol 759 MovieClipUses:758Used by:764
Symbol 760 GraphicUsed by:764
Symbol 761 GraphicUsed by:762
Symbol 762 MovieClipUses:761Used by:764
Symbol 763 GraphicUsed by:764
Symbol 764 MovieClip {ExitStairs}Uses:759 760 762 763Used by:928  Timeline
Symbol 765 GraphicUsed by:766
Symbol 766 MovieClip {HordeIconGlow}Uses:765Used by:772 928  Timeline
Symbol 767 GraphicUsed by:769
Symbol 768 GraphicUsed by:769
Symbol 769 MovieClip {HordeIcon}Uses:767 768Used by:772 928  Timeline
Symbol 770 GraphicUsed by:771 1090
Symbol 771 MovieClipUses:770Used by:772
Symbol 772 MovieClip {Horde}Uses:766 769 771Used by:Timeline
Symbol 773 GraphicUsed by:774
Symbol 774 MovieClip {StairsGlow}Uses:773Used by:776 788
Symbol 775 GraphicUsed by:776
Symbol 776 MovieClip {RecoveryShrine}Uses:774 775Used by:928  Timeline
Symbol 777 GraphicUsed by:781
Symbol 778 GraphicUsed by:781
Symbol 779 GraphicUsed by:780
Symbol 780 MovieClipUses:779Used by:781
Symbol 781 MovieClip {TreasureChest}Uses:777 778 780Used by:928  Timeline
Symbol 782 MovieClip {Dungeon}Used by:Timeline
Symbol 783 GraphicUsed by:785
Symbol 784 GraphicUsed by:785
Symbol 785 MovieClip {MovementArrowHead}Uses:783 784Used by:Timeline
Symbol 786 GraphicUsed by:788
Symbol 787 GraphicUsed by:788
Symbol 788 MovieClip {EntryStairs}Uses:786 774 1 435 787Used by:Timeline
Symbol 789 GraphicUsed by:790
Symbol 790 MovieClip {CurrentRoomIcon}Uses:789Used by:Timeline
Symbol 791 BitmapUsed by:792
Symbol 792 GraphicUses:791Used by:805
Symbol 793 EditableTextUses:310Used by:805
Symbol 794 GraphicUsed by:804
Symbol 795 BitmapUsed by:796
Symbol 796 GraphicUses:795Used by:797 803
Symbol 797 MovieClipUses:796Used by:804
Symbol 798 GraphicUsed by:804
Symbol 799 GraphicUsed by:801
Symbol 800 GraphicUsed by:801
Symbol 801 MovieClipUses:799 800Used by:804
Symbol 802 GraphicUsed by:804
Symbol 803 MovieClipUses:796Used by:804
Symbol 804 MovieClip {ProceedButton}Uses:794 797 798 801 802 803Used by:805
Symbol 805 MovieClip {DungeonLoading}Uses:792 793 315 804Used by:Timeline
Symbol 806 MovieClip {FadeScreen}Uses:1Used by:814 817 841 847 850 854 866
Symbol 807 TextUses:100Used by:814
Symbol 808 TextUses:16Used by:814
Symbol 809 TextUses:24Used by:810
Symbol 810 MovieClip {NotYetButton}Uses:225 229 809Used by:814 817 850
Symbol 811 GraphicUsed by:813
Symbol 812 TextUses:24Used by:813
Symbol 813 MovieClip {YesButton}Uses:225 811 812Used by:814 817 850
Symbol 814 MovieClip {DownLevelDialog}Uses:806 319 807 808 810 813Used by:Timeline
Symbol 815 TextUses:100Used by:817
Symbol 816 TextUses:16Used by:817
Symbol 817 MovieClip {ShrineUseDialog}Uses:806 319 815 816 813 810Used by:Timeline
Symbol 818 GraphicUsed by:819
Symbol 819 MovieClipUses:818Used by:838
Symbol 820 BitmapUsed by:821
Symbol 821 GraphicUses:820Used by:838
Symbol 822 FontUsed by:286 445 823 837 852
Symbol 823 TextUses:822Used by:838
Symbol 824 TextUses:100Used by:838
Symbol 825 EditableTextUses:16 18 24Used by:838
Symbol 826 EditableTextUses:16 18 24Used by:838
Symbol 827 EditableTextUses:16 18 24Used by:838
Symbol 828 GraphicUsed by:830
Symbol 829 TextUses:24Used by:830
Symbol 830 MovieClip {TakeButton}Uses:225 828 829Used by:838
Symbol 831 TextUses:24Used by:832
Symbol 832 MovieClip {DiscardButton}Uses:225 229 831Used by:838
Symbol 833 EditableTextUses:16 18 24Used by:838
Symbol 834 TextUses:16Used by:838
Symbol 835 BitmapUsed by:836
Symbol 836 GraphicUses:835Used by:838
Symbol 837 TextUses:822Used by:838
Symbol 838 MovieClip {TreasureReport}Uses:318 819 6 821 1 823 824 825 826 827 830 832 833 834 836 837Used by:Timeline
Symbol 839 TextUses:100Used by:841
Symbol 840 EditableTextUses:16 18 24Used by:841
Symbol 841 MovieClip {WarningDialog}Uses:806 319 839 840 301Used by:Timeline
Symbol 842 TextUses:100Used by:847
Symbol 843 TextUses:16Used by:847
Symbol 844 GraphicUsed by:846
Symbol 845 TextUses:24Used by:846
Symbol 846 MovieClip {KeepButton}Uses:225 844 845Used by:847
Symbol 847 MovieClip {SaveDeleteDialog}Uses:806 319 842 843 231 846Used by:Timeline
Symbol 848 TextUses:100Used by:850
Symbol 849 TextUses:16Used by:850
Symbol 850 MovieClip {RestDialog}Uses:806 319 848 849 813 810Used by:Timeline
Symbol 851 MovieClipUses:319Used by:854
Symbol 852 EditableTextUses:100 822Used by:854
Symbol 853 EditableTextUses:16 18 24Used by:854
Symbol 854 MovieClip {HintDialog}Uses:806 851 852 853 301 308Used by:Timeline
Symbol 855 TextUses:100Used by:866
Symbol 856 TextUses:16Used by:866
Symbol 857 EditableTextUses:16Used by:866
Symbol 858 EditableTextUses:16Used by:866
Symbol 859 TextUses:24Used by:866
Symbol 860 EditableTextUses:16Used by:866
Symbol 861 TextUses:24Used by:866
Symbol 862 GraphicUsed by:866
Symbol 863 EditableTextUses:16Used by:866
Symbol 864 TextUses:24Used by:866
Symbol 865 GraphicUsed by:866
Symbol 866 MovieClip {RatingDialog}Uses:806 319 855 856 301 857 858 859 860 861 862 863 864 865Used by:Timeline
Symbol 867 BitmapUsed by:868
Symbol 868 GraphicUses:867Used by:869
Symbol 869 MovieClipUses:868Used by:895
Symbol 870 GraphicUsed by:879
Symbol 871 EditableTextUses:16 18 24Used by:879
Symbol 872 EditableTextUses:24Used by:879
Symbol 873 EditableTextUses:16 18 24Used by:879
Symbol 874 EditableTextUses:16 18 24Used by:879
Symbol 875 EditableTextUses:16 18 24Used by:879
Symbol 876 EditableTextUses:16 18 24Used by:879
Symbol 877 EditableTextUses:16 18 24Used by:879
Symbol 878 GraphicUsed by:879
Symbol 879 MovieClip {BattleInfoPanel}Uses:870 871 211 872 873 540 544 874 875 876 877 878Used by:895  Timeline
Symbol 880 EditableTextUses:16 18 24Used by:895
Symbol 881 GraphicUsed by:882
Symbol 882 MovieClip {BattleActionsBar}Uses:881 91Used by:895  Timeline
Symbol 883 EditableTextUses:16 18 24Used by:890
Symbol 884 EditableTextUses:16 18 24Used by:890
Symbol 885 GraphicUsed by:889
Symbol 886 GraphicUsed by:889
Symbol 887 GraphicUsed by:889
Symbol 888 GraphicUsed by:889
Symbol 889 Button {BattleMessageScroller}Uses:885 886 887 888Used by:890
Symbol 890 MovieClip {BattleMessageBox}Uses:883 884 889Used by:895
Symbol 891 GraphicUsed by:892 982
Symbol 892 MovieClipUses:891Used by:894
Symbol 893 GraphicUsed by:894
Symbol 894 MovieClip {InitiativeList}Uses:6 892 893Used by:895  Timeline
Symbol 895 MovieClip {Battlefield}Uses:869 879 110 99 880 882 890 894 531 561Used by:Timeline
Symbol 896 EditableTextUses:16 18 24Used by:901
Symbol 897 GraphicUsed by:898
Symbol 898 MovieClip {InitiativePositionIndicator}Uses:1 897Used by:901  Timeline
Symbol 899 EditableTextUses:16 18 24Used by:901
Symbol 900 EditableTextUses:16 18 24Used by:901
Symbol 901 MovieClip {InitiativeIcon}Uses:896 898 899 900Used by:Timeline
Symbol 902 TextUses:24Used by:916
Symbol 903 TextUses:24Used by:916 928 935
Symbol 904 TextUses:24Used by:916
Symbol 905 TextUses:24Used by:916
Symbol 906 TextUses:24Used by:916
Symbol 907 TextUses:24Used by:916
Symbol 908 TextUses:24Used by:916
Symbol 909 TextUses:24Used by:916
Symbol 910 TextUses:24Used by:916
Symbol 911 TextUses:24Used by:916
Symbol 912 TextUses:24Used by:916
Symbol 913 TextUses:24Used by:916
Symbol 914 TextUses:24Used by:916
Symbol 915 TextUses:24Used by:916
Symbol 916 MovieClip {HelpScreenBattlefield}Uses:1 902 903 904 905 906 907 908 909 910 911 912 913 914 915Used by:Timeline
Symbol 917 GraphicUsed by:928
Symbol 918 TextUses:24Used by:928
Symbol 919 TextUses:24Used by:928
Symbol 920 TextUses:24Used by:928
Symbol 921 TextUses:24Used by:928
Symbol 922 TextUses:24Used by:928
Symbol 923 TextUses:24Used by:928 935
Symbol 924 TextUses:24Used by:928
Symbol 925 TextUses:24Used by:928
Symbol 926 TextUses:24Used by:928
Symbol 927 TextUses:24Used by:928
Symbol 928 MovieClip {HelpScreenDungeon}Uses:1 917 764 776 781 918 919 920 921 922 766 769 923 903 924 925 926 927Used by:Timeline
Symbol 929 TextUses:24Used by:935
Symbol 930 TextUses:24Used by:935
Symbol 931 TextUses:24Used by:935
Symbol 932 TextUses:24Used by:935
Symbol 933 TextUses:24Used by:935
Symbol 934 TextUses:24Used by:935
Symbol 935 MovieClip {HelpScreenInventory}Uses:1 923 903 929 930 931 932 933 934Used by:Timeline
Symbol 936 BitmapUsed by:937
Symbol 937 GraphicUses:936Used by:938
Symbol 938 MovieClip {fire_scroll}Uses:937Used by:983  Timeline
Symbol 939 GraphicUsed by:940 951
Symbol 940 MovieClip {CurrentPortraitHighlight}Uses:939Used by:Timeline
Symbol 941 GraphicUsed by:942 1002
Symbol 942 MovieClip {DeadEffect}Uses:1 941Used by:Timeline
Symbol 943 GraphicUsed by:944
Symbol 944 MovieClip {GreenBar}Uses:943Used by:Timeline
Symbol 945 MovieClip {HidingEffect}Uses:1Used by:Timeline
Symbol 946 GraphicUsed by:947
Symbol 947 MovieClip {LightGreenBar}Uses:946Used by:Timeline
Symbol 948 GraphicUsed by:949
Symbol 949 MovieClipUses:948Used by:950
Symbol 950 MovieClip {PortraitEffected}Uses:949Used by:Timeline
Symbol 951 MovieClip {PortraitHighlight}Uses:939Used by:Timeline
Symbol 952 GraphicUsed by:953
Symbol 953 MovieClip {RetreatedEffect}Uses:952Used by:Timeline
Symbol 954 GraphicUsed by:959 1002
Symbol 955 GraphicUsed by:958
Symbol 956 GraphicUsed by:958
Symbol 957 GraphicUsed by:958
Symbol 958 MovieClip {dungeon_fla.shield_gleam_200}Uses:955 956 957Used by:959
Symbol 959 MovieClip {armor_buff_effect}Uses:954 6 958Used by:Timeline
Symbol 960 GraphicUsed by:961
Symbol 961 MovieClip {blind_effect}Uses:960Used by:Timeline
Symbol 962 GraphicUses:402Used by:966
Symbol 963 BitmapUsed by:964
Symbol 964 GraphicUses:963Used by:966 1071
Symbol 965 GraphicUses:428Used by:966 1071
Symbol 966 MovieClip {BloodRandom}Uses:962 964 965Used by:977 1000 1008 1018 1077 1098  Timeline
Symbol 967 BitmapUsed by:968 969
Symbol 968 GraphicUses:967Used by:970
Symbol 969 GraphicUses:967Used by:970
Symbol 970 MovieClip {blueburst}Uses:216 968 969Used by:985  Timeline
Symbol 971 GraphicUsed by:973 1014
Symbol 972 GraphicUsed by:973
Symbol 973 MovieClip {buff_effect}Uses:971 6 972Used by:Timeline
Symbol 974 GraphicUsed by:975
Symbol 975 MovieClipUses:974Used by:976
Symbol 976 MovieClip {horz_slash}Uses:975Used by:977 1000  Timeline
Symbol 977 MovieClip {creature_slash}Uses:976 966Used by:Timeline
Symbol 978 GraphicUsed by:979
Symbol 979 MovieClipUses:978Used by:982
Symbol 980 GraphicUsed by:982
Symbol 981 GraphicUsed by:982 1028 1099
Symbol 982 MovieClip {curse_effect}Uses:891 6 979 980 981Used by:Timeline
Symbol 983 MovieClip {fire_effect}Uses:1 938Used by:Timeline
Symbol 984 GraphicUsed by:985
Symbol 985 MovieClip {healeffect}Uses:970 984Used by:Timeline
Symbol 986 GraphicUsed by:989
Symbol 987 MovieClipUses:216Used by:989
Symbol 988 GraphicUsed by:989
Symbol 989 MovieClip {healeffect_green}Uses:986 987 988Used by:Timeline
Symbol 990 GraphicUsed by:991
Symbol 991 MovieClipUses:990Used by:992 993
Symbol 992 MovieClip {player_multi_slash}Uses:991Used by:Timeline
Symbol 993 MovieClip {player_slash}Uses:991Used by:994  Timeline
Symbol 994 MovieClip {player_power_slash}Uses:993Used by:Timeline
Symbol 995 GraphicUsed by:996
Symbol 996 MovieClipUses:995Used by:999
Symbol 997 GraphicUsed by:998
Symbol 998 MovieClip {dungeon_fla.poisonbubble_220}Uses:997Used by:999
Symbol 999 MovieClip {poisoneffect}Uses:6 996 998Used by:Timeline
Symbol 1000 MovieClip {creature_weapon}Uses:976 966Used by:Timeline
Symbol 1001 GraphicUsed by:1002
Symbol 1002 MovieClip {revive_effect}Uses:954 1001 941 211Used by:Timeline
Symbol 1003 GraphicUsed by:1004
Symbol 1004 MovieClip {buff_quickness_effect}Uses:1003 6Used by:Timeline
Symbol 1005 GraphicUsed by:1006
Symbol 1006 MovieClipUses:1005Used by:1007
Symbol 1007 MovieClip {dungeon_fla.vert_slash_225}Uses:1006Used by:1008  Timeline
Symbol 1008 MovieClip {creature_spear}Uses:1007 966Used by:Timeline
Symbol 1009 GraphicUsed by:1010
Symbol 1010 MovieClipUses:1009Used by:1011
Symbol 1011 MovieClip {dungeon_fla.player_arrow_impact_228}Uses:1010Used by:1012
Symbol 1012 MovieClip {player_arrow}Uses:1011Used by:Timeline
Symbol 1013 GraphicUsed by:1014
Symbol 1014 MovieClip {debuff_effect}Uses:971 6 216 1013Used by:Timeline
Symbol 1015 GraphicUsed by:1016
Symbol 1016 MovieClipUses:1015Used by:1017
Symbol 1017 MovieClip {monster_arrow_impact}Uses:1016Used by:1018 1077 1098  Timeline
Symbol 1018 MovieClip {monster_arrow}Uses:1017 966Used by:Timeline
Symbol 1019 GraphicUsed by:1020
Symbol 1020 MovieClip {LevelUpGlow}Uses:1019Used by:Timeline
Symbol 1021 GraphicUsed by:1022
Symbol 1022 MovieClip {cosmic_prison}Uses:6 1021Used by:Timeline
Symbol 1023 BitmapUsed by:1024
Symbol 1024 GraphicUses:1023Used by:1027
Symbol 1025 BitmapUsed by:1026
Symbol 1026 GraphicUses:1025Used by:1027
Symbol 1027 MovieClip {frozen_effect}Uses:1024 1026Used by:Timeline
Symbol 1028 MovieClip {lethal_effect}Uses:981 45Used by:Timeline
Symbol 1029 GraphicUsed by:1030
Symbol 1030 MovieClipUses:1029Used by:1032
Symbol 1031 GraphicUsed by:1032 1035 1076
Symbol 1032 MovieClip {gain_health_effect}Uses:6 1030 1031Used by:1072  Timeline
Symbol 1033 GraphicUsed by:1034
Symbol 1034 MovieClipUses:1033Used by:1035 1076
Symbol 1035 MovieClip {gain_power_effect}Uses:6 1034 1031Used by:1072  Timeline
Symbol 1036 GraphicUsed by:1039
Symbol 1037 GraphicUsed by:1038
Symbol 1038 MovieClipUses:1037Used by:1039 1044
Symbol 1039 MovieClip {clone_effect}Uses:1036 1038Used by:Timeline
Symbol 1040 GraphicUsed by:1041
Symbol 1041 MovieClipUses:1040Used by:1042
Symbol 1042 MovieClip {ClonePortrait}Uses:1041Used by:Timeline
Symbol 1043 GraphicUsed by:1044
Symbol 1044 MovieClip {clone_create_effect}Uses:1043 108 1038Used by:Timeline
Symbol 1045 GraphicUsed by:1046
Symbol 1046 MovieClipUses:1045Used by:1047
Symbol 1047 MovieClip {disintegrate_effect}Uses:1046Used by:Timeline
Symbol 1048 GraphicUsed by:1049
Symbol 1049 MovieClipUses:1048Used by:1050
Symbol 1050 MovieClip {smite_effect}Uses:1049Used by:Timeline
Symbol 1051 GraphicUsed by:1052
Symbol 1052 MovieClipUses:1051Used by:1053
Symbol 1053 MovieClip {player_mage_attack}Uses:1052Used by:Timeline
Symbol 1054 GraphicUsed by:1055
Symbol 1055 MovieClipUses:1054Used by:1056
Symbol 1056 MovieClip {monster_drain_effect}Uses:6 1055Used by:Timeline
Symbol 1057 BitmapUsed by:1058
Symbol 1058 GraphicUses:1057Used by:1071
Symbol 1059 BitmapUsed by:1060
Symbol 1060 GraphicUses:1059Used by:1071
Symbol 1061 GraphicUses:402Used by:1071
Symbol 1062 BitmapUsed by:1063
Symbol 1063 GraphicUses:1062Used by:1071
Symbol 1064 BitmapUsed by:1065
Symbol 1065 GraphicUses:1064Used by:1071
Symbol 1066 GraphicUsed by:1071
Symbol 1067 GraphicUsed by:1071
Symbol 1068 GraphicUsed by:1071
Symbol 1069 GraphicUsed by:1071
Symbol 1070 GraphicUsed by:1071
Symbol 1071 MovieClip {PortraitAnimationFrame}Uses:1058 1060 1061 964 965 1063 1065 1066 1067 1068 1069 1070Used by:Timeline
Symbol 1072 MovieClip {gain_both_effect}Uses:1032 1035Used by:Timeline
Symbol 1073 GraphicUsed by:1074 1075
Symbol 1074 MovieClip {summon_effect}Uses:108 1073Used by:Timeline
Symbol 1075 MovieClip {transform_effect}Uses:1073Used by:Timeline
Symbol 1076 MovieClip {lose_power_effect}Uses:6 1034 1031Used by:1077  Timeline
Symbol 1077 MovieClip {monster_arrow_drainpower}Uses:1017 966 1076Used by:Timeline
Symbol 1078 BitmapUsed by:1079
Symbol 1079 GraphicUses:1078Used by:1088
Symbol 1080 BitmapUsed by:1081
Symbol 1081 GraphicUses:1080Used by:1088
Symbol 1082 BitmapUsed by:1083
Symbol 1083 GraphicUses:1082Used by:1088
Symbol 1084 BitmapUsed by:1085
Symbol 1085 GraphicUses:1084Used by:1088
Symbol 1086 BitmapUsed by:1087
Symbol 1087 GraphicUses:1086Used by:1088
Symbol 1088 MovieClip {RandomLightning}Uses:1079 1081 1083 1085 1087Used by:1089
Symbol 1089 MovieClip {LightningFlash}Uses:1088Used by:1090
Symbol 1090 MovieClip {Lightning}Uses:770 1089Used by:Timeline
Symbol 1091 GraphicUsed by:1092
Symbol 1092 MovieClipUses:1091Used by:1093
Symbol 1093 MovieClip {monster_magic_attack}Uses:1092Used by:Timeline
Symbol 1094 GraphicUsed by:1097
Symbol 1095 GraphicUsed by:1096
Symbol 1096 MovieClipUses:1095Used by:1097
Symbol 1097 MovieClip {web_effect}Uses:1094 1096Used by:Timeline
Symbol 1098 MovieClip {monster_thrown}Uses:1017 966Used by:Timeline
Symbol 1099 MovieClip {feardeath_effect}Uses:981 45Used by:Timeline
Symbol 1100 Sound {return_of_the_knights_b}Used by:1143
Symbol 1101 Sound {rollingthunder_c}Used by:1143
Symbol 1102 Sound {equip_sound}Used by:1143
Symbol 1103 Sound {equip_sword_sound}Used by:1143
Symbol 1104 Sound {equip_bow_sound}Used by:1143
Symbol 1105 Sound {equip_shield_sound}Used by:1143
Symbol 1106 Sound {destroy_item_sound}Used by:1143
Symbol 1107 Sound {disintegrate_sound}Used by:1143
Symbol 1108 Sound {equip_staff_sound}Used by:1143
Symbol 1109 Sound {battle_start2}Used by:1143
Symbol 1110 Sound {potion_sound}Used by:1143
Symbol 1111 Sound {coins_sound}Used by:1143
Symbol 1112 Sound {title_music}Used by:1143
Symbol 1113 Sound {lightning_sound}Used by:1143
Symbol 1114 Sound {poison_sound}Used by:1143
Symbol 1115 Sound {freeze_sound}Used by:1143
Symbol 1116 Sound {flames_sound}Used by:1143
Symbol 1117 Sound {armor_buff_sound}Used by:1143
Symbol 1118 Sound {hide3_sound}Used by:1143
Symbol 1119 Sound {mage_staff_sound}Used by:1143
Symbol 1120 Sound {curse_sound}Used by:1143
Symbol 1121 Sound {summon1_sound}Used by:1143
Symbol 1122 Sound {summon2_sound}Used by:1143
Symbol 1123 Sound {arrow_fire_sound}Used by:1143
Symbol 1124 Sound {slash1_sound}Used by:1143
Symbol 1125 Sound {heal1_sound}Used by:1143
Symbol 1126 Sound {writing_sound}Used by:1143
Symbol 1127 Sound {web_squirt_sound}Used by:1143
Symbol 1128 Sound {buff_chant_sound}Used by:1143
Symbol 1129 Sound {debuff_sound}Used by:1143
Symbol 1130 Sound {cosmic_prison_sound}Used by:1143
Symbol 1131 Sound {monster_magic_sound}Used by:1143
Symbol 1132 Sound {power_up_sound}Used by:1143
Symbol 1133 Sound {punch_sound}Used by:1143
Symbol 1134 Sound {blind_sound}Used by:1143
Symbol 1135 Sound {thrown_sound}Used by:1143
Symbol 1136 Sound {creature_slash_sound}Used by:1143
Symbol 1137 Sound {basilisk_sound}Used by:1143
Symbol 1138 Sound {poison_drake_sound}Used by:1143
Symbol 1139 Sound {miss_melee_sound}Used by:1143
Symbol 1140 Sound {miss_ranged_sound}Used by:1143
Symbol 1141 Sound {miss_thrown_sound}Used by:1143
Symbol 1142 Sound {miss_magic_sound}Used by:1143
Symbol 1143 MovieClipUses:216 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142Used by:Timeline
Symbol 1144 GraphicUsed by:1154
Symbol 1145 EditableTextUses:16 18 24Used by:1149
Symbol 1146 EditableTextUses:16 18 24Used by:1149
Symbol 1147 EditableTextUses:16 18 24Used by:1149
Symbol 1148 EditableTextUses:16 18 24Used by:1149
Symbol 1149 MovieClip {VolumeSelector}Uses:321 1145 1146 1147 1148Used by:1154
Symbol 1150 TextUses:24Used by:1154
Symbol 1151 TextUses:24Used by:1154
Symbol 1152 TextUses:24Used by:1154
Symbol 1153 GraphicUsed by:1154
Symbol 1154 MovieClip {VolumeControl}Uses:1144 1149 1150 1151 1152 1153Used by:Timeline
Symbol 1155 BitmapUsed by:1156
Symbol 1156 GraphicUses:1155Used by:1157
Symbol 1157 MovieClipUses:1156Used by:1177
Symbol 1158 GraphicUsed by:1159
Symbol 1159 ButtonUses:1158Used by:1177
Symbol 1160 GraphicUsed by:1162
Symbol 1161 GraphicUsed by:1162
Symbol 1162 MovieClip {dungeon_fla.freeinternetgames_276}Uses:1160 1161Used by:1177
Symbol 1163 SoundUsed by:1177
Symbol 1164 GraphicUsed by:1176
Symbol 1165 GraphicUsed by:1176
Symbol 1166 GraphicUsed by:1176
Symbol 1167 GraphicUsed by:1176
Symbol 1168 GraphicUsed by:1176
Symbol 1169 GraphicUsed by:1176
Symbol 1170 GraphicUsed by:1176
Symbol 1171 GraphicUsed by:1176
Symbol 1172 GraphicUsed by:1176
Symbol 1173 GraphicUsed by:1176
Symbol 1174 GraphicUsed by:1176
Symbol 1175 GraphicUsed by:1176
Symbol 1176 MovieClip {dungeon_fla.clip_sd88detincelle_277}Uses:1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175Used by:1177
Symbol 1177 MovieClip {MaxGamesIntro}Uses:12 1157 1159 1162 1163 1176Used by:Timeline
Symbol 1178 MovieClip {DungeonMain}Used by:Timeline

Instance Names

"logo"Frame 1Symbol 15 Button
"loaded_label"Frame 1Symbol 19 EditableText
"total_label"Frame 1Symbol 20 EditableText
"bar"Frame 1Symbol 22 MovieClip
"biclops"Frame 1Symbol 28 Button {BiclopsPreloaderLink}
"gfx"Symbol 5 MovieClip {CorridorConnectorV} Frame 1Symbol 4 MovieClip
"bg"Symbol 91 MovieClip {SkillIcon} Frame 1Symbol 31 MovieClip {SkillIconBG}
"slot1"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"slot2"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"slot3"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"slot4"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"slot5"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"slot6"Symbol 99 MovieClip {SkillBar} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"empty"Symbol 110 MovieClip {EmptyPortrait} Frame 1Symbol 109 MovieClip
"lightbar"Symbol 215 MovieClip {PowerBar} Frame 1Symbol 214 MovieClip
"bar"Symbol 215 MovieClip {PowerBar} Frame 1Symbol 214 MovieClip
"lightbar"Symbol 218 MovieClip {HealthBar} Frame 1Symbol 217 MovieClip {RedBar}
"bar"Symbol 218 MovieClip {HealthBar} Frame 1Symbol 217 MovieClip {RedBar}
"graphic"Symbol 221 MovieClip {CharacterPortrait} Frame 1Symbol 211 MovieClip {CharGraphic}
"powerbar"Symbol 221 MovieClip {CharacterPortrait} Frame 1Symbol 215 MovieClip {PowerBar}
"healthbar"Symbol 221 MovieClip {CharacterPortrait} Frame 1Symbol 218 MovieClip {HealthBar}
"nametag"Symbol 221 MovieClip {CharacterPortrait} Frame 1Symbol 219 EditableText
"clear_rate"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 236 EditableText
"explore_rate"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 237 EditableText
"leaders"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 238 EditableText
"shrines_used"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 240 EditableText
"party_defeats"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 242 EditableText
"member_deaths"Symbol 257 MovieClip {StatusStatScroller} Frame 1Symbol 244 EditableText
"clear_rate"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 251 EditableText
"explore_rate"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 252 EditableText
"member_deaths"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 253 EditableText
"party_defeats"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 254 EditableText
"shrines_used"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 255 EditableText
"leaders"Symbol 257 MovieClip {StatusStatScroller} Frame 180Symbol 256 EditableText
"bg"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 104 MovieClip {SaveGameStatusBG}
"infinite_mode_icon"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 107 MovieClip
"char1"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 221 MovieClip {CharacterPortrait}
"char2"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 221 MovieClip {CharacterPortrait}
"char3"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 221 MovieClip {CharacterPortrait}
"char4"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 221 MovieClip {CharacterPortrait}
"load_btn"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 228 MovieClip {LoadButton}
"del_btn"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 231 MovieClip {DeleteButton}
"stats"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 257 MovieClip {StatusStatScroller}
"score"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 259 EditableText
"level_label"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 260 EditableText
"empty_panel"Symbol 264 MovieClip {SaveGameStatus} Frame 1Symbol 263 MovieClip {SaveGameEmpty}
"party1"Symbol 268 MovieClip {LoadParty} Frame 1Symbol 264 MovieClip {SaveGameStatus}
"party2"Symbol 268 MovieClip {LoadParty} Frame 1Symbol 264 MovieClip {SaveGameStatus}
"party3"Symbol 268 MovieClip {LoadParty} Frame 1Symbol 264 MovieClip {SaveGameStatus}
"menu_btn"Symbol 268 MovieClip {LoadParty} Frame 1Symbol 267 MovieClip {BackButton}
"bg"Symbol 296 MovieClip {ClassIcon} Frame 1Symbol 295 MovieClip {ClassIconBG}
"random_name_btn"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 280 MovieClip
"description_text"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 281 EditableText
"portrait"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 211 MovieClip {CharGraphic}
"portrait_right"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 284 Button {SelectArrow}
"portrait_left"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 284 Button {SelectArrow}
"delete_button"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 285 EditableText
"class_text"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 286 EditableText
"gender_icon"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 289 MovieClip {GenderIcon}
"name_text"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 292 EditableText
"class1"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 296 MovieClip {ClassIcon}
"class2"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 296 MovieClip {ClassIcon}
"class3"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 296 MovieClip {ClassIcon}
"class5"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 296 MovieClip {ClassIcon}
"class4"Symbol 297 MovieClip {CharCreationPanel} Frame 1Symbol 296 MovieClip {ClassIcon}
"description"Symbol 308 MovieClip {dCheckBox} Frame 1Symbol 304 EditableText
"empty1"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 276 MovieClip {CharCreationEmpty}
"empty2"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 276 MovieClip {CharCreationEmpty}
"empty3"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 276 MovieClip {CharCreationEmpty}
"empty4"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 276 MovieClip {CharCreationEmpty}
"char1"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 297 MovieClip {CharCreationPanel}
"char2"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 297 MovieClip {CharCreationPanel}
"char3"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 297 MovieClip {CharCreationPanel}
"char4"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 297 MovieClip {CharCreationPanel}
"enter_button"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 301 MovieClip {ContinueButton}
"back_button"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 267 MovieClip {BackButton}
"hardcore_check"Symbol 309 MovieClip {PartyCreation} Frame 1Symbol 308 MovieClip {dCheckBox}
"low"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 1Symbol 322 EditableText
"mid"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 1Symbol 323 EditableText
"full"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 1Symbol 324 EditableText
"off"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 1Symbol 325 EditableText
"global_selector"Symbol 331 MovieClip {VolumeControlMenu} Frame 1Symbol 326 MovieClip {VolumeSelectorMenu}
"music_selector"Symbol 331 MovieClip {VolumeControlMenu} Frame 1Symbol 326 MovieClip {VolumeSelectorMenu}
"sfx_selector"Symbol 331 MovieClip {VolumeControlMenu} Frame 1Symbol 326 MovieClip {VolumeSelectorMenu}
"yes_btn"Symbol 332 MovieClip {OptionsScreen} Frame 1Symbol 301 MovieClip {ContinueButton}
"vc"Symbol 332 MovieClip {OptionsScreen} Frame 1Symbol 331 MovieClip {VolumeControlMenu}
"showHintsBox"Symbol 332 MovieClip {OptionsScreen} Frame 1Symbol 308 MovieClip {dCheckBox}
"yes_btn"Symbol 343 MovieClip {CreditsScreen} Frame 1Symbol 301 MovieClip {ContinueButton}
"biclops_link"Symbol 343 MovieClip {CreditsScreen} Frame 1Symbol 338 Button
"cerberus_link"Symbol 343 MovieClip {CreditsScreen} Frame 1Symbol 342 Button
"continue_button"Symbol 380 MovieClip {TitleScreen} Frame 1Symbol 347 Button {PlayGameButton}
"credits_button"Symbol 380 MovieClip {TitleScreen} Frame 1Symbol 350 Button {CreditsButton}
"options_button"Symbol 380 MovieClip {TitleScreen} Frame 1Symbol 353 Button
"biclops_logo"Symbol 380 MovieClip {TitleScreen} Frame 1Symbol 372 Button {BiclopsLogo}
"maxgames_logo"Symbol 380 MovieClip {TitleScreen} Frame 1Symbol 379 Button
"floor"Symbol 419 MovieClip {rCell} Frame 1Symbol 399 MovieClip {RandomFloor}
"floor"Symbol 421 MovieClip {rChamber} Frame 1Symbol 399 MovieClip {RandomFloor}
"gfx"Symbol 425 MovieClip {rCorridorH} Frame 1Symbol 424 MovieClip
"gfx"Symbol 426 MovieClip {rCorridorV} Frame 1Symbol 424 MovieClip
"floor"Symbol 427 MovieClip {rGallery} Frame 1Symbol 399 MovieClip {RandomFloor}
"floor"Symbol 430 MovieClip {rLargeRoom} Frame 1Symbol 399 MovieClip {RandomFloor}
"floor"Symbol 431 MovieClip {rTallRoom} Frame 1Symbol 399 MovieClip {RandomFloor}
"floor"Symbol 432 MovieClip {rWideRoom} Frame 1Symbol 399 MovieClip {RandomFloor}
"door_gfx"Symbol 435 MovieClip {DoorIcon} Frame 1Symbol 434 MovieClip
"gfx"Symbol 436 MovieClip {CorridorConnectorH} Frame 1Symbol 4 MovieClip
"rune1"Symbol 442 MovieClip {rDemonRoom} Frame 2Symbol 441 MovieClip
"rune2"Symbol 442 MovieClip {rDemonRoom} Frame 3Symbol 441 MovieClip
"rune3"Symbol 442 MovieClip {rDemonRoom} Frame 4Symbol 441 MovieClip
"rune4"Symbol 442 MovieClip {rDemonRoom} Frame 5Symbol 441 MovieClip
"rune5"Symbol 442 MovieClip {rDemonRoom} Frame 6Symbol 441 MovieClip
"rune3"Symbol 442 MovieClip {rDemonRoom} Frame 7Symbol 441 MovieClip
"rune2"Symbol 442 MovieClip {rDemonRoom} Frame 7Symbol 441 MovieClip
"rune6"Symbol 442 MovieClip {rDemonRoom} Frame 7Symbol 441 MovieClip
"rune4"Symbol 442 MovieClip {rDemonRoom} Frame 8Symbol 441 MovieClip
"rune7"Symbol 442 MovieClip {rDemonRoom} Frame 8Symbol 441 MovieClip
"rune8"Symbol 442 MovieClip {rDemonRoom} Frame 9Symbol 441 MovieClip
"rune9"Symbol 442 MovieClip {rDemonRoom} Frame 10Symbol 441 MovieClip
"tooltip_bg"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 444 MovieClip {ItemTooltipBg}
"title_label"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 445 EditableText
"t1"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 446 EditableText
"p1"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"p2"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"p3"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"p4"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"p5"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"p6"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 211 MovieClip {CharGraphic}
"t2"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 447 EditableText
"t3"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 448 EditableText
"t4"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 449 EditableText
"t5"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 450 EditableText
"t6"Symbol 452 MovieClip {HordeTooltip} Frame 1Symbol 451 EditableText
"tooltip_bg"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 444 MovieClip {ItemTooltipBg}
"name_label"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 453 EditableText
"stats_label"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 454 EditableText
"usable_label"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 455 EditableText
"type_label"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 456 EditableText
"level_label"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 457 EditableText
"equipped_text"Symbol 460 MovieClip {ItemTooltip} Frame 1Symbol 459 MovieClip
"tooltip_bg"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 444 MovieClip {ItemTooltipBg}
"title_label"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 461 EditableText
"text_label"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 462 EditableText
"requires_label"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 463 EditableText
"power_cost_label"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 464 EditableText
"increase_label"Symbol 466 MovieClip {SkillTooltip} Frame 1Symbol 465 EditableText
"tooltip_bg"Symbol 469 MovieClip {Tooltip} Frame 1Symbol 444 MovieClip {ItemTooltipBg}
"title_label"Symbol 469 MovieClip {Tooltip} Frame 1Symbol 467 EditableText
"text_label"Symbol 469 MovieClip {Tooltip} Frame 1Symbol 468 EditableText
"count_label"Symbol 475 MovieClip {InventoryPanel} Frame 1Symbol 474 EditableText
"flasher"Symbol 487 MovieClip {InventoryTab} Frame 1Symbol 483 MovieClip {tab_flash}
"tab_text"Symbol 487 MovieClip {InventoryTab} Frame 1Symbol 484 EditableText
"nlabel"Symbol 496 MovieClip {StatNumber} Frame 1Symbol 495 EditableText
"str_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"end_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"dex_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"int_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"accuracy_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"armor_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"damage_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"reduction_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"poisonResist_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"stunResist_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"powerRegen_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"healthRegen_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"quickness_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"statpoints_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"vampiric_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"stun_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"poison_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"reflection_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"blind_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"lethality_number"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 496 MovieClip {StatNumber}
"strength_inc"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 513 MovieClip {StatIncreaseButton}
"endurance_inc"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 513 MovieClip {StatIncreaseButton}
"dexterity_inc"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 513 MovieClip {StatIncreaseButton}
"intellect_inc"Symbol 514 MovieClip {CharStatsPanel} Frame 1Symbol 513 MovieClip {StatIncreaseButton}
"idle1"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle2"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle3"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle6"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle7"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle8"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle4"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle5"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle9"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"idle10"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active1"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active2"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active3"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active4"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active5"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"active6"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 93 MovieClip {SkillIconEmpty}
"skillpoints_number"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 518 EditableText
"newskills_button"Symbol 521 MovieClip {CharSkillsPanel} Frame 1Symbol 520 EditableText
"stats_tab"Symbol 522 MovieClip {CharInfoPanel} Frame 1Symbol 487 MovieClip {InventoryTab}
"skills_tab"Symbol 522 MovieClip {CharInfoPanel} Frame 1Symbol 487 MovieClip {InventoryTab}
"stats_panel"Symbol 522 MovieClip {CharInfoPanel} Frame 1Symbol 514 MovieClip {CharStatsPanel}
"skills_panel"Symbol 522 MovieClip {CharInfoPanel} Frame 1Symbol 521 MovieClip {CharSkillsPanel}
"boots"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"offhand"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"ring"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"weapon"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"gloves"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"armor"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"head"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"cloak"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"legs"Symbol 527 MovieClip {Paperdoll} Frame 1Symbol 526 MovieClip {PaperdollEmptySlot}
"bar"Symbol 540 MovieClip {NumericIndicatorHealth} Frame 1Symbol 538 MovieClip {RedBarHorz}
"numbers"Symbol 540 MovieClip {NumericIndicatorHealth} Frame 1Symbol 539 EditableText
"bar"Symbol 544 MovieClip {NumericIndicatorPower} Frame 1Symbol 542 MovieClip {BlueBarHorz}
"numbers"Symbol 544 MovieClip {NumericIndicatorPower} Frame 1Symbol 543 EditableText
"sound_icon"Symbol 561 MovieClip {SoundButton} Frame 1Symbol 559 MovieClip {SoundIcon}
"party_items"Symbol 563 MovieClip {Inventory} Frame 1Symbol 475 MovieClip {InventoryPanel}
"statusbar"Symbol 563 MovieClip {Inventory} Frame 1Symbol 476 EditableText
"destroy"Symbol 563 MovieClip {Inventory} Frame 1Symbol 479 MovieClip {ItemDestroyTarget}
"info_panel"Symbol 563 MovieClip {Inventory} Frame 1Symbol 522 MovieClip {CharInfoPanel}
"paperdoll"Symbol 563 MovieClip {Inventory} Frame 1Symbol 527 MovieClip {Paperdoll}
"empty1"Symbol 563 MovieClip {Inventory} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"empty2"Symbol 563 MovieClip {Inventory} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"empty3"Symbol 563 MovieClip {Inventory} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"empty4"Symbol 563 MovieClip {Inventory} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"help_btn"Symbol 563 MovieClip {Inventory} Frame 1Symbol 531 MovieClip {HelpButton}
"exit_btn"Symbol 563 MovieClip {Inventory} Frame 1Symbol 534 MovieClip {ReturnButton}
"large_portrait"Symbol 563 MovieClip {Inventory} Frame 1Symbol 211 MovieClip {CharGraphic}
"player_name_label"Symbol 563 MovieClip {Inventory} Frame 1Symbol 535 EditableText
"player_level_label"Symbol 563 MovieClip {Inventory} Frame 1Symbol 536 EditableText
"player_health_bar"Symbol 563 MovieClip {Inventory} Frame 1Symbol 540 MovieClip {NumericIndicatorHealth}
"player_power_bar"Symbol 563 MovieClip {Inventory} Frame 1Symbol 544 MovieClip {NumericIndicatorPower}
"sort_level_btn"Symbol 563 MovieClip {Inventory} Frame 1Symbol 548 MovieClip {LevelButton}
"sort_name_btn"Symbol 563 MovieClip {Inventory} Frame 1Symbol 553 MovieClip {NameButton}
"sort_type_btn"Symbol 563 MovieClip {Inventory} Frame 1Symbol 555 MovieClip {TypeButton}
"bg"Symbol 699 MovieClip {InventoryIcon} Frame 1Symbol 570 MovieClip {InventoryIconBg}
"stack_bg"Symbol 699 MovieClip {InventoryIcon} Frame 1Symbol 573 MovieClip
"stack_size"Symbol 699 MovieClip {InventoryIcon} Frame 1Symbol 574 EditableText
"bg"Symbol 703 MovieClip {BuySkillPanel} Frame 1Symbol 701 MovieClip
"sk_icon"Symbol 703 MovieClip {BuySkillPanel} Frame 1Symbol 91 MovieClip {SkillIcon}
"sk_description"Symbol 703 MovieClip {BuySkillPanel} Frame 1Symbol 702 EditableText
"bg"Symbol 705 MovieClip {BuySkillPanelR} Frame 1Symbol 701 MovieClip
"sk_icon"Symbol 705 MovieClip {BuySkillPanelR} Frame 1Symbol 91 MovieClip {SkillIcon}
"sk_description"Symbol 705 MovieClip {BuySkillPanelR} Frame 1Symbol 704 EditableText
"sk1"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 703 MovieClip {BuySkillPanel}
"sk2"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 703 MovieClip {BuySkillPanel}
"sk3"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 703 MovieClip {BuySkillPanel}
"sk4"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 703 MovieClip {BuySkillPanel}
"sk5"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 705 MovieClip {BuySkillPanelR}
"sk6"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 705 MovieClip {BuySkillPanelR}
"sk7"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 705 MovieClip {BuySkillPanelR}
"sk8"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 705 MovieClip {BuySkillPanelR}
"points_txt"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 708 EditableText
"cancel_btn"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 710 MovieClip {CancelButton}
"continue_btn"Symbol 711 MovieClip {BuySkills} Frame 1Symbol 301 MovieClip {ContinueButton}
"bar_mask"Symbol 726 MovieClip {ProgressCleared} Frame 1Symbol 720 MovieClip
"holder"Symbol 726 MovieClip {ProgressCleared} Frame 1Symbol 724 MovieClip {ProgressHolder}
"label"Symbol 726 MovieClip {ProgressCleared} Frame 1Symbol 725 EditableText
"bar_mask"Symbol 729 MovieClip {ProgressExplored} Frame 1Symbol 720 MovieClip
"holder"Symbol 729 MovieClip {ProgressExplored} Frame 1Symbol 724 MovieClip {ProgressHolder}
"label"Symbol 729 MovieClip {ProgressExplored} Frame 1Symbol 728 EditableText
"slot1"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"slot2"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"slot3"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"slot4"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"level_label"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 714 EditableText
"items_label"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 715 EditableText
"maxgames_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 718 Button {MaxGamesHudButton}
"cleared_bar"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 726 MovieClip {ProgressCleared}
"explored_bar"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 729 MovieClip {ProgressExplored}
"newdungeon_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 730 EditableText
"clear_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 731 EditableText
"explore_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 732 EditableText
"help_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 531 MovieClip {HelpButton}
"descend_button"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 735 MovieClip {DownLevelButton}
"hint_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 740 MovieClip {HintButton}
"menu_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 743 MovieClip {MenuButton}
"inventory_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 746 MovieClip {CharsButton}
"rest_button"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 747 MovieClip
"sound_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 561 MovieClip {SoundButton}
"gear_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 748 EditableText
"rating_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 751 MovieClip
"heal_btn"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 752 EditableText
"level_debug"Symbol 755 MovieClip {DungeonInterface} Frame 1Symbol 754 EditableText
"owner_label"Symbol 757 MovieClip {grid_marker} Frame 1Symbol 756 EditableText
"glow"Symbol 772 MovieClip {Horde} Frame 1Symbol 766 MovieClip {HordeIconGlow}
"icon"Symbol 772 MovieClip {Horde} Frame 1Symbol 769 MovieClip {HordeIcon}
"bg"Symbol 772 MovieClip {Horde} Frame 1Symbol 771 MovieClip
"glow"Symbol 788 MovieClip {EntryStairs} Frame 1Symbol 774 MovieClip {StairsGlow}
"bg"Symbol 804 MovieClip {ProceedButton} Frame 1Symbol 801 MovieClip
"bg"Symbol 804 MovieClip {ProceedButton} Frame 15Symbol 801 MovieClip
"prose"Symbol 805 MovieClip {DungeonLoading} Frame 1Symbol 793 EditableText
"proceed_btn"Symbol 805 MovieClip {DungeonLoading} Frame 1Symbol 804 MovieClip {ProceedButton}
"no_btn"Symbol 814 MovieClip {DownLevelDialog} Frame 1Symbol 810 MovieClip {NotYetButton}
"yes_btn"Symbol 814 MovieClip {DownLevelDialog} Frame 1Symbol 813 MovieClip {YesButton}
"yes_btn"Symbol 817 MovieClip {ShrineUseDialog} Frame 1Symbol 813 MovieClip {YesButton}
"no_btn"Symbol 817 MovieClip {ShrineUseDialog} Frame 1Symbol 810 MovieClip {NotYetButton}
"bg"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 819 MovieClip
"consumables_lbl"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 825 EditableText
"weapons_lbl"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 826 EditableText
"armor_lbl"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 827 EditableText
"take_btn"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 830 MovieClip {TakeButton}
"discard_btn"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 832 MovieClip {DiscardButton}
"selected_count_label"Symbol 838 MovieClip {TreasureReport} Frame 1Symbol 833 EditableText
"dlg_text"Symbol 841 MovieClip {WarningDialog} Frame 1Symbol 840 EditableText
"yes_btn"Symbol 841 MovieClip {WarningDialog} Frame 1Symbol 301 MovieClip {ContinueButton}
"yes_btn"Symbol 847 MovieClip {SaveDeleteDialog} Frame 1Symbol 231 MovieClip {DeleteButton}
"no_btn"Symbol 847 MovieClip {SaveDeleteDialog} Frame 1Symbol 846 MovieClip {KeepButton}
"yes_btn"Symbol 850 MovieClip {RestDialog} Frame 1Symbol 813 MovieClip {YesButton}
"no_btn"Symbol 850 MovieClip {RestDialog} Frame 1Symbol 810 MovieClip {NotYetButton}
"bg"Symbol 854 MovieClip {HintDialog} Frame 1Symbol 851 MovieClip
"dlg_title"Symbol 854 MovieClip {HintDialog} Frame 1Symbol 852 EditableText
"dlg_text"Symbol 854 MovieClip {HintDialog} Frame 1Symbol 853 EditableText
"yes_btn"Symbol 854 MovieClip {HintDialog} Frame 1Symbol 301 MovieClip {ContinueButton}
"showCheck"Symbol 854 MovieClip {HintDialog} Frame 1Symbol 308 MovieClip {dCheckBox}
"yes_btn"Symbol 866 MovieClip {RatingDialog} Frame 1Symbol 301 MovieClip {ContinueButton}
"col1"Symbol 866 MovieClip {RatingDialog} Frame 1Symbol 857 EditableText
"col2"Symbol 866 MovieClip {RatingDialog} Frame 1Symbol 858 EditableText
"col3"Symbol 866 MovieClip {RatingDialog} Frame 1Symbol 860 EditableText
"total"Symbol 866 MovieClip {RatingDialog} Frame 1Symbol 863 EditableText
"name_label"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 871 EditableText
"large_portrait"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 211 MovieClip {CharGraphic}
"description_label"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 872 EditableText
"level_label"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 873 EditableText
"health_bar"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 540 MovieClip {NumericIndicatorHealth}
"power_bar"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 544 MovieClip {NumericIndicatorPower}
"damage_resist_number"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 874 EditableText
"poison_resist_number"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 875 EditableText
"stun_resist_number"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 876 EditableText
"accuracy_number"Symbol 879 MovieClip {BattleInfoPanel} Frame 1Symbol 877 EditableText
"pass_skill"Symbol 882 MovieClip {BattleActionsBar} Frame 1Symbol 91 MovieClip {SkillIcon}
"retreat_all_skill"Symbol 882 MovieClip {BattleActionsBar} Frame 1Symbol 91 MovieClip {SkillIcon}
"retreat_skill"Symbol 882 MovieClip {BattleActionsBar} Frame 1Symbol 91 MovieClip {SkillIcon}
"line1"Symbol 890 MovieClip {BattleMessageBox} Frame 1Symbol 883 EditableText
"line2"Symbol 890 MovieClip {BattleMessageBox} Frame 1Symbol 884 EditableText
"previous_btn"Symbol 890 MovieClip {BattleMessageBox} Frame 1Symbol 889 Button {BattleMessageScroller}
"next_btn"Symbol 890 MovieClip {BattleMessageBox} Frame 1Symbol 889 Button {BattleMessageScroller}
"bg"Symbol 894 MovieClip {InitiativeList} Frame 1Symbol 892 MovieClip
"bg"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 869 MovieClip
"active_info_panel"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 879 MovieClip {BattleInfoPanel}
"target_info_panel"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 879 MovieClip {BattleInfoPanel}
"pc1"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"pc2"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"pc3"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"pc4"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"pc5"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"pc6"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc2"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc3"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc4"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc5"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc6"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"npc1"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 110 MovieClip {EmptyPortrait}
"skillbar"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 99 MovieClip {SkillBar}
"selected_skill_text"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 880 EditableText
"actionsbar"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 882 MovieClip {BattleActionsBar}
"messages"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 890 MovieClip {BattleMessageBox}
"initDisplay"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 894 MovieClip {InitiativeList}
"help_btn"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 531 MovieClip {HelpButton}
"sound_btn"Symbol 895 MovieClip {Battlefield} Frame 1Symbol 561 MovieClip {SoundButton}
"name_label"Symbol 901 MovieClip {InitiativeIcon} Frame 1Symbol 896 EditableText
"pos_icon"Symbol 901 MovieClip {InitiativeIcon} Frame 1Symbol 898 MovieClip {InitiativePositionIndicator}
"name_label"Symbol 901 MovieClip {InitiativeIcon} Frame 21Symbol 899 EditableText
"pos_icon"Symbol 901 MovieClip {InitiativeIcon} Frame 21Symbol 898 MovieClip {InitiativePositionIndicator}
"name_label"Symbol 901 MovieClip {InitiativeIcon} Frame 31Symbol 900 EditableText
"pos_icon"Symbol 901 MovieClip {InitiativeIcon} Frame 31Symbol 898 MovieClip {InitiativePositionIndicator}
"shield"Symbol 959 MovieClip {armor_buff_effect} Frame 1Symbol 958 MovieClip {dungeon_fla.shield_gleam_200}
"slash"Symbol 976 MovieClip {horz_slash} Frame 1Symbol 975 MovieClip
"blood"Symbol 977 MovieClip {creature_slash} Frame 6Symbol 966 MovieClip {BloodRandom}
"flames"Symbol 983 MovieClip {fire_effect} Frame 1Symbol 938 MovieClip {fire_scroll}
"hslash"Symbol 992 MovieClip {player_multi_slash} Frame 1Symbol 991 MovieClip
"hslash"Symbol 993 MovieClip {player_slash} Frame 1Symbol 991 MovieClip
"slash"Symbol 1000 MovieClip {creature_weapon} Frame 1Symbol 976 MovieClip {horz_slash}
"blood"Symbol 1000 MovieClip {creature_weapon} Frame 6Symbol 966 MovieClip {BloodRandom}
"gfx"Symbol 1002 MovieClip {revive_effect} Frame 1Symbol 211 MovieClip {CharGraphic}
"slash"Symbol 1007 MovieClip {dungeon_fla.vert_slash_225} Frame 1Symbol 1006 MovieClip
"slash"Symbol 1008 MovieClip {creature_spear} Frame 1Symbol 1007 MovieClip {dungeon_fla.vert_slash_225}
"blood"Symbol 1008 MovieClip {creature_spear} Frame 6Symbol 966 MovieClip {BloodRandom}
"hit"Symbol 1011 MovieClip {dungeon_fla.player_arrow_impact_228} Frame 1Symbol 1010 MovieClip
"spark"Symbol 1012 MovieClip {player_arrow} Frame 1Symbol 1011 MovieClip {dungeon_fla.player_arrow_impact_228}
"hit"Symbol 1017 MovieClip {monster_arrow_impact} Frame 1Symbol 1016 MovieClip
"spark"Symbol 1018 MovieClip {monster_arrow} Frame 1Symbol 1017 MovieClip {monster_arrow_impact}
"blood"Symbol 1018 MovieClip {monster_arrow} Frame 6Symbol 966 MovieClip {BloodRandom}
"spark"Symbol 1077 MovieClip {monster_arrow_drainpower} Frame 1Symbol 1017 MovieClip {monster_arrow_impact}
"blood"Symbol 1077 MovieClip {monster_arrow_drainpower} Frame 6Symbol 966 MovieClip {BloodRandom}
"lightning"Symbol 1089 MovieClip {LightningFlash} Frame 1Symbol 1088 MovieClip {RandomLightning}
"flash"Symbol 1090 MovieClip {Lightning} Frame 1Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 6Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 11Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 16Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 21Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 26Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 31Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 36Symbol 1089 MovieClip {LightningFlash}
"flash"Symbol 1090 MovieClip {Lightning} Frame 41Symbol 1089 MovieClip {LightningFlash}
"spark"Symbol 1098 MovieClip {monster_thrown} Frame 5Symbol 1017 MovieClip {monster_arrow_impact}
"blood"Symbol 1098 MovieClip {monster_thrown} Frame 11Symbol 966 MovieClip {BloodRandom}
"low"Symbol 1149 MovieClip {VolumeSelector} Frame 1Symbol 1145 EditableText
"mid"Symbol 1149 MovieClip {VolumeSelector} Frame 1Symbol 1146 EditableText
"full"Symbol 1149 MovieClip {VolumeSelector} Frame 1Symbol 1147 EditableText
"off"Symbol 1149 MovieClip {VolumeSelector} Frame 1Symbol 1148 EditableText
"global_selector"Symbol 1154 MovieClip {VolumeControl} Frame 1Symbol 1149 MovieClip {VolumeSelector}
"music_selector"Symbol 1154 MovieClip {VolumeControl} Frame 1Symbol 1149 MovieClip {VolumeSelector}
"sfx_selector"Symbol 1154 MovieClip {VolumeControl} Frame 1Symbol 1149 MovieClip {VolumeSelector}
"link_btn"Symbol 1177 MovieClip {MaxGamesIntro} Frame 1Symbol 1159 Button

Special Tags

FileAttributes (69)Timeline Frame 1Access local files only, Metadata not present, AS3.
Protect (24)Timeline Frame 10 bytes ""
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 256, ScriptTimeout: 20 seconds

Labels

"normal"Symbol 104 MovieClip {SaveGameStatusBG} Frame 1
"highlight"Symbol 104 MovieClip {SaveGameStatusBG} Frame 2
"alt1"Symbol 211 MovieClip {CharGraphic} Frame 6
"alt2"Symbol 211 MovieClip {CharGraphic} Frame 7
"alt3"Symbol 211 MovieClip {CharGraphic} Frame 8
"alt4"Symbol 211 MovieClip {CharGraphic} Frame 9
"alt5"Symbol 211 MovieClip {CharGraphic} Frame 10
"skeleton"Symbol 211 MovieClip {CharGraphic} Frame 23
"skeleton_archer"Symbol 211 MovieClip {CharGraphic} Frame 24
"vampire"Symbol 211 MovieClip {CharGraphic} Frame 25
"fallen knight"Symbol 211 MovieClip {CharGraphic} Frame 26
"necromancer"Symbol 211 MovieClip {CharGraphic} Frame 27
"lich"Symbol 211 MovieClip {CharGraphic} Frame 28
"bone_horror"Symbol 211 MovieClip {CharGraphic} Frame 29
"berserker"Symbol 211 MovieClip {CharGraphic} Frame 31
"troll"Symbol 211 MovieClip {CharGraphic} Frame 32
"goblin"Symbol 211 MovieClip {CharGraphic} Frame 33
"goblin_archer"Symbol 211 MovieClip {CharGraphic} Frame 34
"orc warlord"Symbol 211 MovieClip {CharGraphic} Frame 35
"half-troll"Symbol 211 MovieClip {CharGraphic} Frame 36
"shaman"Symbol 211 MovieClip {CharGraphic} Frame 37
"greebler"Symbol 211 MovieClip {CharGraphic} Frame 47
"poison_drake"Symbol 211 MovieClip {CharGraphic} Frame 48
"lightning_drake"Symbol 211 MovieClip {CharGraphic} Frame 49
"cult_warrior"Symbol 211 MovieClip {CharGraphic} Frame 51
"cult_archer"Symbol 211 MovieClip {CharGraphic} Frame 52
"cult_priest"Symbol 211 MovieClip {CharGraphic} Frame 53
"aetherguard"Symbol 211 MovieClip {CharGraphic} Frame 54
"ascendant"Symbol 211 MovieClip {CharGraphic} Frame 55
"chosen"Symbol 211 MovieClip {CharGraphic} Frame 56
"engine"Symbol 211 MovieClip {CharGraphic} Frame 57
"neophyte"Symbol 211 MovieClip {CharGraphic} Frame 58
"demon"Symbol 211 MovieClip {CharGraphic} Frame 60
"male"Symbol 289 MovieClip {GenderIcon} Frame 1
"female"Symbol 289 MovieClip {GenderIcon} Frame 2
"off"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 1
"low"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 2
"mid"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 3
"full"Symbol 326 MovieClip {VolumeSelectorMenu} Frame 4
"WaitRight"Symbol 360 MovieClip {dungeon_fla.Eye1_59} Frame 18
"WaitLeft"Symbol 360 MovieClip {dungeon_fla.Eye1_59} Frame 82
"WaitLeft"Symbol 361 MovieClip {dungeon_fla.Eye2_60} Frame 51
"WaitRight"Symbol 361 MovieClip {dungeon_fla.Eye2_60} Frame 103
"on"Symbol 559 MovieClip {SoundIcon} Frame 1
"off"Symbol 559 MovieClip {SoundIcon} Frame 2
"normal"Symbol 701 MovieClip Frame 1
"selected"Symbol 701 MovieClip Frame 2
"complete"Symbol 724 MovieClip {ProgressHolder} Frame 1
"normal"Symbol 724 MovieClip {ProgressHolder} Frame 2
"normal"Symbol 772 MovieClip {Horde} Frame 1
"fade"Symbol 772 MovieClip {Horde} Frame 2
"battle"Symbol 772 MovieClip {Horde} Frame 16
"blue"Symbol 785 MovieClip {MovementArrowHead} Frame 1
"red"Symbol 785 MovieClip {MovementArrowHead} Frame 2
"chest"Symbol 838 MovieClip {TreasureReport} Frame 1
"drop"Symbol 838 MovieClip {TreasureReport} Frame 2
"miss"Symbol 1071 MovieClip {PortraitAnimationFrame} Frame 8
"immune"Symbol 1071 MovieClip {PortraitAnimationFrame} Frame 9
"stun"Symbol 1071 MovieClip {PortraitAnimationFrame} Frame 10
"pass"Symbol 1071 MovieClip {PortraitAnimationFrame} Frame 11
"dungeon music"Symbol 1143 MovieClip Frame 1
"battle music"Symbol 1143 MovieClip Frame 2
"off"Symbol 1149 MovieClip {VolumeSelector} Frame 1
"low"Symbol 1149 MovieClip {VolumeSelector} Frame 2
"mid"Symbol 1149 MovieClip {VolumeSelector} Frame 3
"full"Symbol 1149 MovieClip {VolumeSelector} Frame 4




http://swfchan.com/1/3123/info.shtml
Created: 17/6 -2019 09:51:10 Last modified: 17/6 -2019 09:51:10 Server time: 06/05 -2024 20:58:21