Thursday, July 31, 2008

Diablo II: Matriarch Clotho

Clotho is the second of three planned bowazon characters. The first was Atropos, and following in the theme Clotho is named for the second of the three Fates in Greek mythology. Clotho will be a pure physical bowazon that is determined to utilize the Lycander's Aim unique bow as her main weapon. I've already matted two bowazons that used the Buriza as their weapon, so it was time for a change. My personal rules for this character is limited twinkling until Hell, basically only her weapon can be upgraded. This lead to bows like the Rogue's Bow and Skystrike being utilized, when normally they simply sit in my stash collecting dust.

Clotho started as a melee character, mainly because that is what her starting gear allowed and also because she wasn't too worried about facing the monsters in Act I toe-to-toe. Against normal mobs this worked well, but against bosses such as Blood Raven she utilized a one point Cold Arrow to deal with them from afar. This worked very well up until Act II, where Clotho was able to hire a desert warrior mercenary to tank for her and she changed her main weapon to the Rogue Bow. While her mercenary was doing the vast majority of the damage, Clotho was able to support him with timely Cold Arrows and a rapid hail of normal bolts that ever so slowly picked away at the monster's health. The Cold/Ice Arrows came in quite handy in the Tombs of Act II and eliminating all of the skeletons before the Unravellers could resurret them.

Unfortunately Clotho wasn't able to obtain level thirty before facing Mephisto, so her desert companion didn't survive the encounter as he was without Valkyrie support. However a game of hide-and-seek around the columns on the level allowed Clotho to pick away at Mephisto's health while dodging his cold and lightning attacks. Diablo on the other hand was faced with a valkyrie, but that still didn't help the mercenary survive. However the valkyrie tanked quite well and a volley of Freezing Arrows dropped Diablo after a short struggle. The same could be said for Baal, as nothing of note occured on the way to him.

Onward to Nightmare difficulty. Reaching it around level 45 but waited until Clotho finished off Baal to equip the Lycander's Aim, more a point of pride than anything else. I aim to make Lycander's the final weapon for Clotho. Due to the twinkled weapon most of Nightmare was fairly uneventful. This was also greatly supported by a nice mercenary weapon drop early in the difficulty.

Bone Prod
Pike
Two-Hand Damage: 25 to 113
Durability: 51 of 75
Required Dexterity: 45
Required Strength: 60
Required Level: 13
Spear Class - Slow Attack Speed
Item Version: 1.10+ Expansion
Item Level: 31
Fingerprint: 0x78cbffd7
+79% Enhanced Damage
+58 to Attack Rating
+1 to Maximum Damage
Adds 1-3 fire damage
5% Chance to cast Level 1 Amplify Damage on striking

Not the fastest weapon but the chance to cast Amplify Damage was spectacular and greatly enhanced Clotho's destructive abilities. Judicious use of decoy and valkyrie kept Clotho's companion alive enough to keep him viable, as his Might aura just makes things that much more devestating. The rest of the difficulty was fairly simple and completed without much hardship. Nothing of real note fell, but that was ok since all of Clotho's twinkling gear is set and equipped for her travels through Hell.

Hell didn't start out too difficult and Clotho and company made steady progress all the way until Act III with no incident. Up to this point Clotho has been playing HC apparently, as she hasn't had many close calls and zero deaths.

All of that changed in the Spider Forest unfortunately. A hawk boss (cold enhanced, extra fast) streaked past the Valkyrie and nailed Clotho with a devestating strike that reduced her life to about 1/8 its total value. The timing was terrible for the attack, as Clotho was just in the process of firing off a round of strafe shots, several of which hit the boss. It exploded right at Clotho's feet and the cold nova wiped out the rest of Clotho's life before she even knew what hit her. Not bad really considering I've only placed 20 points into Vitality total with the rest going to Dexterity and Strength. So she has close to her base vitality currently, and with a low cold resistance that was simply the wrong boss at the wrong time.

This ended up being her one and only death. After that Clotho got annoyed, and ripped through the rest of Hell until Act V, even Big D couldn't stand up to the one-point-wonder that is Freezing Arrow (my bosskiller).

The wide open spaces of the barbarian homeland slowed Clotho down a bit, as she wasn't able to bottle up the monster packs so well and ended up having her damage spread 360 degrees around her instead. Regardless progress was steady, even against the Ancients. They only had to be rerolled four times to find a group that wasn't cursed, all other mods were not deemed worthy of a reroll. Splitting them up was a bit of a challenge, especially since Clotho has zero Increased Run/Walk. But after much running in circles and spamming of Decoy she was able to draw them off one at a time to be deal with.

After that the WSK was fairly simple, OKs and Souls made their traditional appearances but with Decoy used to scout ahead, they were picked off from a distance with only a bosspack of Souls giving Clotho a rare NDE. By far my favorite level as 2, where Flayers made an appearance. Just like Act III, it was far too much fun to strafe the hordes of small, low life monsters into oblivion. Quite satisfying after all those characters that had to chase them down one at a time.

Baal proved to be a sturdy fellow, but none too interesting. He didn't fall quickly, as it took three trips back to town to restock on potions, but he didn't defend himself very smartly either. The clone made a single appearance and no appendages could be seen, nor did he teleport very often at all. As a result Clotho's companion was actually able to survive this fight, a rare occurance indeed.

Side Note: The mercenary's weapon was vital to this build. With Decrepify casting on a farily regular basis this allowed Clotho to mow down monster packs without too much difficulty.

Stats:
Level 83
Strength - 73(98)
Dexterity - 377(453)
Vitality - 40(60)
Energy - 15(45)

Life - 334(502)
Mana - 138(223)

Lightning Resistance - 42
Fire Resistance - 51
Cold Resistance - 43
Poison Resistance - 6

Skills:
Strafe - 20(27)
Valkyrie - 20(25)
Penetrate - 20(25)
Pierce - 5(10)
Freezing Arrow - 1(8)

Equipment:
Weapon: Lycander's Aim (Shael)
Armor: Lionheart breastplace
Boots: LR 22%, CR 40%, PR 33%, 14% MF
Belt: Razortail
Gloves: Laying of Hands
Helm: All Resist 13%, +38 life, 7-27 cold dmg,
+2 Amazon skills, +15% IAS
Ring 1: Ravenfrost
Ring 2: Mandal Heal
Amulet: Highlord's Wrath

Mercenary(Might Desert Warrior)
Helm: Tal Rasha's Crest
Armor: Shaftstop
Weapon: The Reaper's Toll

Hellforge
NM: Shael
Hell: Io

Monday, July 28, 2008

Java: Hotline Update #6

For the upcoming month (August) one of the call options needs to be switched out. This is something I haven't had to do before. I've added options but never removed one. Specifically the Lucene call option is being removed and an options titled Only Online is being put in its place.

The work in the OptionPanel class was simple. All I needed to do was to rename the variable that is used to title the Lucene JButton to "Online Only". It was the ReportPanel class where more work was required.

A new If-Else clause needed to be added to the ButtonListener. Specifically the previous last clause that was handled by the simple "else" command needed to clarified for which date range it would cover, which in this case was November 2007 to July 2008.

Once this change was in place the same code block was added onto the end without the If portion of the statement so that all dates after July 2008 would be covered. Then the slot in the issue array for the Lucene option was replaced with one for the Online Only option, for the last clause in the If-Else statement only. This way all months prior to the change in August 2008 could still have reports run looking for the Lucene option while everything afterwards would only look for the Online Only option.

Tuesday, July 22, 2008

Java: IP Analyzer Update #1

Up to this point the IP Analyzer has been used only by myself as I find it easier than an Excel spreadsheet. However that has just changed. The Sales team is now in possession of the application, and some changes have become necessary. It turns out several of them have used the Add button instead of the Compare button and now IPs that do not belong on the restricted list are in fact there. The temporary solution is easy, I can erase the misplaced information as it is only a text file. However a more permanent solution is needed.

And this is where the JPasswordField compoent comes into play. I decided to password protect the Add button so that I was the only one with access to this feature. At first I would have to wrap the entire Add method into an statement checking the password, that is until I realized I was making this so much harder than they had to be.

There were two things that needed to be done, obtain the password input from the user and then decide whether or not to display the Add dialogue window. The first portion took some doing to organize the dialogue window correctly.

JOptionPane.showConfirmDialog(textPanel, passPanel, "Enter Password", JOptionPane.DEFAULT_OPTION, JOptionPane.PLAIN_MESSAGE);


Choosing a dialogue method was a bit difficult, and took several attempts before the above one was decided upon. The passPanel is a small JPanel that contains a JLabel and the input JPasswordField.

Once the password was input an IF statement was created that would decide what to do next.

if (password.compareTo(String.valueOf(input)) > 0 || password.compareTo(String.valueOf(input)) <>

If the password was correct (value = 0) then this statement is bypassed and the rest of the Add method is acted upon. However if the password is incorrect then the If statement does two things: displays a message stating the password is incorrect and Returns out of the Add method completely.

The change was fairly simple but should ensure that none of the Sales team adds anymore values into the restricted IP list without approval.