I've played in more tournaments than I've posted, so I'm catching up on the older ones I've been a part of, hence the next few posts.
The Glass Cannon Tournament is designed for everyone to be an Amazon and all stat points must be placed into Dexterity.
I entered with Yoga_Instructor, who I planned on making a Strafazon. Not a good plan as it turned out since finding a good bow was going to be difficult at best, the elemental bow skills would have been much better to use. She didn't have any trouble all the way up to Mehpisto in Normal, and then promptly died at level 29. Her mercenary was tanking quite well while Yoga_Instructor fired from afar. Suddenly Mephisto stepped to the side and fired a cold ball at Yoga_Instructor. With very low cold resistance it one-hit-killed her, ouch.
Decided not to rejoin this tournament, I'm thinking a single entrant to most is better with maybe two if I do really well the first time. Dying in Normal is not what I consider "doing well".
Friday, October 3, 2008
Thursday, October 2, 2008
Diablo II: Emperor's Clothes Tournament
A lot of the tournaments of the SPF at diii.net revolve around either skill or item restrictions. The Emperor's Clothes tournament by Merlin is an item restriction only contest. The basic idea is that items dropped by Super Uniques and Act Bosses are the only items that may be worn, normal monster drops are not allowed. White items may be worn until a suitable replacement is found.
The tournament was both very frustrating and enjoyable. The challenge of making a viable character with limited equipment was quite interesting. Thankfully skills were not very restricted, the only thing not allowed was summonable minions, so builds like the Fishymancer and Summoning Druid were automatically out. The frustrating part came when normal monsters dropped the best items, while SUs dropped Isenharts cases. However this was considered and one of the rules of the tournament was that the personalization quest (Act V) could be used to make a normal drop usable.
In this tournament I entered one character, Enkidu. He was a Teslafroster, a build I've never tried before. Ended up being quite safe, but still had his share of NDEs. I'm not sure I'll enter another character here or not. I have a few personal builds I want to make in Softcore outside of tournaments and then maybe I'll try my hand in another one.
The tournament was both very frustrating and enjoyable. The challenge of making a viable character with limited equipment was quite interesting. Thankfully skills were not very restricted, the only thing not allowed was summonable minions, so builds like the Fishymancer and Summoning Druid were automatically out. The frustrating part came when normal monsters dropped the best items, while SUs dropped Isenharts cases. However this was considered and one of the rules of the tournament was that the personalization quest (Act V) could be used to make a normal drop usable.
In this tournament I entered one character, Enkidu. He was a Teslafroster, a build I've never tried before. Ended up being quite safe, but still had his share of NDEs. I'm not sure I'll enter another character here or not. I have a few personal builds I want to make in Softcore outside of tournaments and then maybe I'll try my hand in another one.
Java: Hotline Update #7
Another round of changes was made to the Hotline program today. This round was exactly the same as before, except that this time the PPC Changes option was removed and replaced with an iPhone option. Process was identical to before.
The only change came from the fact that this was done in the month I wanted changes to take place, rather than before the reps were able to use the program. As a result I had to move all of the data created yesterday out of the program and re-enter it under the correct date and representative's name to ensure the accuracy of the application.
The only change came from the fact that this was done in the month I wanted changes to take place, rather than before the reps were able to use the program. As a result I had to move all of the data created yesterday out of the program and re-enter it under the correct date and representative's name to ensure the accuracy of the application.
Wednesday, October 1, 2008
Java: CharSi Update #9
It turns out an array of arrays was the best way to contain all of the information needed for the Runeword Wizard. This allowed me to use For and While loops for any comparison purposes as I had an array for all of the selected options and then compared each slot to its corresponding slots in the array of arrays. Somewhat of a brute force method but I'm satisfied with the results.
To start off I needed to create the main variable of this program, the array of Strings that would hold all of my selection choices.
String[] selectionArray = {"", "", "1", "0", "2", "1", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
There are 58 slots to this array, one for each rune, base item and search modifier. A value of "1" equals true while a "0" equals false. All runes are initially selected while the base items are not. As components are selected their corresponding Listeners will alter the necessary value in this array. Along with the selectionArray, a separate array was created for each possible runeword, of which there are eighty-three. To that end there were quite a few arrays that looked similiar to this:
String[] heartOfTheOak = {"heartoftheoak.txt", "Heart of the Oak", "1", "0", "4", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "1"};
After creation each array is then added to a slot in main runeword array to create the needed array of arrays. This becomes key when doing the actual comparison between what is needed and the runewords available. The workhorse of this program is a method named CompareRunewordCriteria(). This method is called when the Display Jbutton is pressed. To start it sets a boolean variable to false, assuming the runeword won't fit the criteria given. Then it compares the base items needed with those selected, if there is a match then the variable is set to true, if there isn't a match then we move on to the next runeword. Then runes available are compared to those needed, as well as if the runeword has the right number of slots, contains an aura and all the other selection criteria are compared. If after all that the boolean variable is set to true, then the runeword name is added to the DefaultListModel so that it is displayed as an option in the JList component.
That was the hard part. After that it was simply hooking up the JList component Listener to display the right text file when an option in the JList is selected. The code for displaying the text was borrowed from the AMAS Rune panel, as was the text files containing the runeword information.

After everything was in place I did run some comparisons between my program and the online runeword calculator to ensure my results were accurate. A few changes had to be made, I apparently didn't consider all weapon types when melee weapons are concerned. Also Mauls were removed as a selection since those are incoporated into the Hammer option and Daggers were put in place instead. When originally thinking about daggers I assumed one socket was all they could have, which turned out to be incorrect. But a few quick variable name changes and daggers are now an available option.
This Runeword Wizard now replaces the runeword list from the AMAS program as this one is much more robust. I can search on specific runes and it provides a much larger pool of available base items beyond the four originally available (shield, helm, armor, weapon). Gradually I'll be phasing AMAS out of use, but I don't see doing so for quite a while as I want to finish the character simulator portion of CharSi before adding any other reference tools to the program.
To start off I needed to create the main variable of this program, the array of Strings that would hold all of my selection choices.
String[] selectionArray = {"", "", "1", "0", "2", "1", "0", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"};
There are 58 slots to this array, one for each rune, base item and search modifier. A value of "1" equals true while a "0" equals false. All runes are initially selected while the base items are not. As components are selected their corresponding Listeners will alter the necessary value in this array. Along with the selectionArray, a separate array was created for each possible runeword, of which there are eighty-three. To that end there were quite a few arrays that looked similiar to this:
String[] heartOfTheOak = {"heartoftheoak.txt", "Heart of the Oak", "1", "0", "4", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "1", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "1", "0", "0", "0", "0", "0", "0", "0", "1"};
After creation each array is then added to a slot in main runeword array to create the needed array of arrays. This becomes key when doing the actual comparison between what is needed and the runewords available. The workhorse of this program is a method named CompareRunewordCriteria(). This method is called when the Display Jbutton is pressed. To start it sets a boolean variable to false, assuming the runeword won't fit the criteria given. Then it compares the base items needed with those selected, if there is a match then the variable is set to true, if there isn't a match then we move on to the next runeword. Then runes available are compared to those needed, as well as if the runeword has the right number of slots, contains an aura and all the other selection criteria are compared. If after all that the boolean variable is set to true, then the runeword name is added to the DefaultListModel so that it is displayed as an option in the JList component.
That was the hard part. After that it was simply hooking up the JList component Listener to display the right text file when an option in the JList is selected. The code for displaying the text was borrowed from the AMAS Rune panel, as was the text files containing the runeword information.

After everything was in place I did run some comparisons between my program and the online runeword calculator to ensure my results were accurate. A few changes had to be made, I apparently didn't consider all weapon types when melee weapons are concerned. Also Mauls were removed as a selection since those are incoporated into the Hammer option and Daggers were put in place instead. When originally thinking about daggers I assumed one socket was all they could have, which turned out to be incorrect. But a few quick variable name changes and daggers are now an available option.
This Runeword Wizard now replaces the runeword list from the AMAS program as this one is much more robust. I can search on specific runes and it provides a much larger pool of available base items beyond the four originally available (shield, helm, armor, weapon). Gradually I'll be phasing AMAS out of use, but I don't see doing so for quite a while as I want to finish the character simulator portion of CharSi before adding any other reference tools to the program.
Saturday, September 27, 2008
Diablo II: Guardian Enkidu
Enkidu is a Teslafroster from Merlin's Emperor's Clothes tournament. For those not familiar with this tournament the character may only be equipped with items that drop from Super Uniques/Act bosses, with white items as place holders until that slot is filled. Along with this there is a restriction on summons, basically they aren't allowed. It is a single-pass, untwinkled tournament, as is the norm.

As one can imagine the item restrictions was both entertaining and extremely frustrating, as more often than not a normal monster would drop needed equipment while SUs dropped Isenhart cases. Case in point not a single gear upgrade was made from the SU drops in Hell, which the switch shield fell from Normal Bloodraven. Thankfully there was a provision that allowed the personalization quest to make a normal drop wearable. This lead to an uber shield from Act V Normal until endgame being wearable.
Skills
Holy Freeze - 20(24)
Holy Shock - 20(24)
Resist Cold - 20(24)
Resist Lightning - 16(20)
Zeal - 4(8)
Holy Shield - 5(9)
Stats
Level - 82
Strength - 77(83)
Dexterity - 163(182)
Vitality - 250(272)
Energy - 15(23)
Life - 952(1075)
Mana - 136(258)
Resist Fire - 75
Resist Lightning - 83
Resist Cold - 85
Resist Poison - 75
Equipment
Helm - Tarnhelm
Armor - Goldskin
Shield - Spirit (in 32% resist all Targe)
Weapon - War scepter, +1 paladin skills, 20% IAS, +AR/Max dmg per char lvl
Belt - 16% FR, 11% PR
Boots - Hsarus' Iron Heel
Gloves - 8% FR, +5 light radius, 5% AR
Amulet - 2 strength, 13 dex, 27% FR, 19% CR, 3% LR, 3% PR
Ring 1 - 12% LR
Ring 2 - 27% CR, 10% MF
Switch:
Weapon - Battle dart, 22-57 cold dmg, +AR/Max dmg per char lvl
Shield - 19% LR, 17% FR, 9% CR, 9% PR
Mercenary:
Helm - Tal Rasha's Horadric Crest
Armor - Heavenly Garb (ethereal)
Weapon - Partizan, 123% ED, 183 AR, 7% LL, +Max dmg per char lvl
Since this was a single pass tournament and only drops from SUs counted I found myself going into areas I normally just skip, for example the Cave and Cold Crow. As it was I didn't actually fully clear the entire game, I simply walked until I found all the SUs and Waypoints then moved on. I did not however skip anyone on purpose other than a single boss monster in the WSK Hell level.
Enkidu's journey started off utilizing a one point Holy Fire until Holy Freeze became available. This made progress through Normal and the early part of Nightmare manageable, not fast by any means but not slow either. A typical battle scene for Enkidu had his mercenary tanking the entire pack while Enkidu worked on the outside concentrating on one or two monsters at a time. For the most part this was OK as long as the mercenary was sent a steady supply of health potions. Granted such tactics couldn't be used against the monsters that cause melee builds the most problems, Dolls. Against these migit minions Enkidu switched to his alternate weapon and went ranged, still allowing the merc to tank of course. Same tactic was used in the Chaos Sanctuary and anywhere else Oblivion Knights appeared.
Things started to slow down a bit mid Nightmare as Holy Freeze was maxed out and it's synergy while the monsters kept getting more and more hit points. Also started to run into Cold Immunes and the few points in Holy Shock I had at that point really made dealing with them a chore. Still, plugged through and as Holy Shock was increased the killing speed started to progress again. However I did use Holy Freeze as the main aura. It worked well to slow down any packs so I could see what I was dealing with before engaging. Then they stayed slow during the fight. However I would switch to Holy Shock if the group was CI or highly cold resistant.
Still, in Act IV of NM I ran into a brick wall. Progress slowed drastically from that point onward and instead of fighting mobs straight on I had to being to split them up to deal with them. This lead to much running away to string out the monsters, especially when cursed or might enhanced bosses were around (which happened often). This continued all the way through the end of Hell. Only difference between the end of NM and Hell was the number of NDEs and the fact that the mercenary had to be resurrected on a regular basis. My last tournament character had trouble with gold so from the beginning of Hell I started to pick up every piece of equipment that would catch a good price with Charsi. This ended up working out as by the time Baal fell I had enough money to resurrect the mercenary about a dozen times or so.
One thing I probably would have changed would be to hire a Blessed Aim mercenary rather than the Defiance one I had. Enkidu has real trouble hitting the Ancients and all Hell act bosses. The +AR per character level mod on both his main and switch weapons was extremely helpful in that regard, but still didn't make up for the fact that he wasn't only hitting them one-fifth of the time at best. Regular monster packs didn't have the same issue, nor bosses, so regular questing the Defiance aura was more helpful in allowing the mercenary to tank a bit longer.
One odd thing I noticed is that the mercenary, while having trouble with normal monster packs, was a champ when it came to the act bosses. He survived NM Baal onward, except for Hell Mephisto, without the need for many health potions (not a single one for Hell Baal/Diablo).
Overall I'd say this character was a lot of fun to play, and not too underpowered being untwinkled with item restrictions. Although I think my definition of decent killing speed may be not quite as high as a lot of other people, as I think my Strafazon without Fortitude/Windforce has decent killing speed too. Overall very durable character and I'd be interested to see what a twinkled version could do, perhaps a project for another time. Enkidu becomes the third of my tournament guardian sept, with both Necromancer and Amazon being previously completed.
For such a small amount of MF this character did fairly well in the item finding department. Some notable drops:
Cerebus' Bite
Griswold's Redemption
Stoneraven
Tal's Mask x2
Eye of Etlich
Mahim-Oak Curio
Oculus
Thundergod's Vigor
As for runes, I can't recall what the NM hellforge was but in Hell a Hel fell, fittingly. Other finds were 3 Dols, 1 Shael and a Ko.
As one can imagine the item restrictions was both entertaining and extremely frustrating, as more often than not a normal monster would drop needed equipment while SUs dropped Isenhart cases. Case in point not a single gear upgrade was made from the SU drops in Hell, which the switch shield fell from Normal Bloodraven. Thankfully there was a provision that allowed the personalization quest to make a normal drop wearable. This lead to an uber shield from Act V Normal until endgame being wearable.
Skills
Holy Freeze - 20(24)
Holy Shock - 20(24)
Resist Cold - 20(24)
Resist Lightning - 16(20)
Zeal - 4(8)
Holy Shield - 5(9)
Stats
Level - 82
Strength - 77(83)
Dexterity - 163(182)
Vitality - 250(272)
Energy - 15(23)
Life - 952(1075)
Mana - 136(258)
Resist Fire - 75
Resist Lightning - 83
Resist Cold - 85
Resist Poison - 75
Equipment
Helm - Tarnhelm
Armor - Goldskin
Shield - Spirit (in 32% resist all Targe)
Weapon - War scepter, +1 paladin skills, 20% IAS, +AR/Max dmg per char lvl
Belt - 16% FR, 11% PR
Boots - Hsarus' Iron Heel
Gloves - 8% FR, +5 light radius, 5% AR
Amulet - 2 strength, 13 dex, 27% FR, 19% CR, 3% LR, 3% PR
Ring 1 - 12% LR
Ring 2 - 27% CR, 10% MF
Switch:
Weapon - Battle dart, 22-57 cold dmg, +AR/Max dmg per char lvl
Shield - 19% LR, 17% FR, 9% CR, 9% PR
Mercenary:
Helm - Tal Rasha's Horadric Crest
Armor - Heavenly Garb (ethereal)
Weapon - Partizan, 123% ED, 183 AR, 7% LL, +Max dmg per char lvl
Since this was a single pass tournament and only drops from SUs counted I found myself going into areas I normally just skip, for example the Cave and Cold Crow. As it was I didn't actually fully clear the entire game, I simply walked until I found all the SUs and Waypoints then moved on. I did not however skip anyone on purpose other than a single boss monster in the WSK Hell level.
Enkidu's journey started off utilizing a one point Holy Fire until Holy Freeze became available. This made progress through Normal and the early part of Nightmare manageable, not fast by any means but not slow either. A typical battle scene for Enkidu had his mercenary tanking the entire pack while Enkidu worked on the outside concentrating on one or two monsters at a time. For the most part this was OK as long as the mercenary was sent a steady supply of health potions. Granted such tactics couldn't be used against the monsters that cause melee builds the most problems, Dolls. Against these migit minions Enkidu switched to his alternate weapon and went ranged, still allowing the merc to tank of course. Same tactic was used in the Chaos Sanctuary and anywhere else Oblivion Knights appeared.
Things started to slow down a bit mid Nightmare as Holy Freeze was maxed out and it's synergy while the monsters kept getting more and more hit points. Also started to run into Cold Immunes and the few points in Holy Shock I had at that point really made dealing with them a chore. Still, plugged through and as Holy Shock was increased the killing speed started to progress again. However I did use Holy Freeze as the main aura. It worked well to slow down any packs so I could see what I was dealing with before engaging. Then they stayed slow during the fight. However I would switch to Holy Shock if the group was CI or highly cold resistant.Still, in Act IV of NM I ran into a brick wall. Progress slowed drastically from that point onward and instead of fighting mobs straight on I had to being to split them up to deal with them. This lead to much running away to string out the monsters, especially when cursed or might enhanced bosses were around (which happened often). This continued all the way through the end of Hell. Only difference between the end of NM and Hell was the number of NDEs and the fact that the mercenary had to be resurrected on a regular basis. My last tournament character had trouble with gold so from the beginning of Hell I started to pick up every piece of equipment that would catch a good price with Charsi. This ended up working out as by the time Baal fell I had enough money to resurrect the mercenary about a dozen times or so.
One thing I probably would have changed would be to hire a Blessed Aim mercenary rather than the Defiance one I had. Enkidu has real trouble hitting the Ancients and all Hell act bosses. The +AR per character level mod on both his main and switch weapons was extremely helpful in that regard, but still didn't make up for the fact that he wasn't only hitting them one-fifth of the time at best. Regular monster packs didn't have the same issue, nor bosses, so regular questing the Defiance aura was more helpful in allowing the mercenary to tank a bit longer.
One odd thing I noticed is that the mercenary, while having trouble with normal monster packs, was a champ when it came to the act bosses. He survived NM Baal onward, except for Hell Mephisto, without the need for many health potions (not a single one for Hell Baal/Diablo).
Overall I'd say this character was a lot of fun to play, and not too underpowered being untwinkled with item restrictions. Although I think my definition of decent killing speed may be not quite as high as a lot of other people, as I think my Strafazon without Fortitude/Windforce has decent killing speed too. Overall very durable character and I'd be interested to see what a twinkled version could do, perhaps a project for another time. Enkidu becomes the third of my tournament guardian sept, with both Necromancer and Amazon being previously completed.
For such a small amount of MF this character did fairly well in the item finding department. Some notable drops:
Cerebus' Bite
Griswold's Redemption
Stoneraven
Tal's Mask x2
Eye of Etlich
Mahim-Oak Curio
Oculus
Thundergod's Vigor
As for runes, I can't recall what the NM hellforge was but in Hell a Hel fell, fittingly. Other finds were 3 Dols, 1 Shael and a Ko.
Thursday, September 18, 2008
Diablo II: Teslafroster Skill Layout
A Teslafroster is a melee Paladin build that utilizes both the Holy Freeze and Holy Shock auras to deal damage. This build is less damaging than a pure Frost Zealot or Tesladin, however it will be able to handle immunities much easier than those builds. The skill setup is as follows:
Might - 1
Smite - 1
Sacrifice - 1
Holy Fire - 1
At level size Holy Fire becomes available to increase the damage output of the character. No points are invested into this skill beyond the one requirement, however that will allow the character to proceed at a decent pace until the main skills become available.
Zeal - 1
At level twelve Zeal becomes available to replace the slow normal attack used up to this point. This will speed up the progress, especially when at level fifteen Zeal is up to 4 hard points so that the maximum number of hits per Zeal cycle (5) is reached. The bonus to attack rating is also a nice side benefit.
Holy Freeze - 1
Cold Resist - 8
Lightning Resist - 1
At level eighteen Holy Freeze becomes available and replaces Holy Fire as the main aura. Any monsters that come within range will be slowed by the aura and this drastically increases the character's survival potential. The synergy to Holy Freeze, Cold Resist, is given all extra points at this time to increase the damage output as much as possible. Lightning Resist is also given a single point for use in Act II when the lightning beetles are encountered. If played untwinkled melee builds have a lot of difficulties in this area, but with the lightning resistance provided by this aura that problem is fairly moot.
Holy Freeze - 20
Cold Resist - 10
Salvation - 1
At level thirty-seven Holy Freeze is maxed out and providing a very nice amount of damage per hit. Progress through the rest of Normal isn't very difficult as a result, even though some of the Act V monsters are cold resistant.
Holy Shock - 1
Cold Resist - 20
At level forty-seven Holy Freeze's synergy Cold Resist is maxed to bring that skill up to its final potential. Holy Shock, the other main aura for this build, also receives a single point for us against any cold immune monsters that may appear in early Nightmare.
Holy Bolt - 1
Charge - 1
Blessed Hammer - 1
Holy Shield - 5
At level fifty-four Holy Shield is added to the character's skill arsenal. While in Normal blocking isn't very important, this changes as the character progresses through Nightmare and all the way through Hell. Level five, with plus skills, should be fine to allow the character to obtain maximum blocking percentage without too many stat points invested into Dexterity.
Holy Shock - 20
By level seventy-one Holy Shock is maxed out and providing a decent amount of damage. Holy Frost will be the main aura so that all monsters are slowed, even if they are cold immune, which increases the characters survivability. The aura can be switched easily to Holy Shock when cold immunes are encountered. From here on out all extra skill points are placed in the Lightning Resist skill as a synergy to Holy Shock. By level eighty the damage of Holy Shock will be greater than Holy Freeze, however I still prefer Holy Freeze as the main aura for the slowing effect. This also allows the character time to review the threat faced before deciding on a course of action.
Final Skill Distribution:
Holy Freeze - 20
Holy Shock - 20
Resist Cold - 20
Zeal - 4
Holy Shield - 5
Salvation - 1
Resist Lightning - rest
Might - 1
Smite - 1
Sacrifice - 1
Holy Fire - 1
At level size Holy Fire becomes available to increase the damage output of the character. No points are invested into this skill beyond the one requirement, however that will allow the character to proceed at a decent pace until the main skills become available.
Zeal - 1
At level twelve Zeal becomes available to replace the slow normal attack used up to this point. This will speed up the progress, especially when at level fifteen Zeal is up to 4 hard points so that the maximum number of hits per Zeal cycle (5) is reached. The bonus to attack rating is also a nice side benefit.
Holy Freeze - 1
Cold Resist - 8
Lightning Resist - 1
At level eighteen Holy Freeze becomes available and replaces Holy Fire as the main aura. Any monsters that come within range will be slowed by the aura and this drastically increases the character's survival potential. The synergy to Holy Freeze, Cold Resist, is given all extra points at this time to increase the damage output as much as possible. Lightning Resist is also given a single point for use in Act II when the lightning beetles are encountered. If played untwinkled melee builds have a lot of difficulties in this area, but with the lightning resistance provided by this aura that problem is fairly moot.
Holy Freeze - 20
Cold Resist - 10
Salvation - 1
At level thirty-seven Holy Freeze is maxed out and providing a very nice amount of damage per hit. Progress through the rest of Normal isn't very difficult as a result, even though some of the Act V monsters are cold resistant.
Holy Shock - 1
Cold Resist - 20
At level forty-seven Holy Freeze's synergy Cold Resist is maxed to bring that skill up to its final potential. Holy Shock, the other main aura for this build, also receives a single point for us against any cold immune monsters that may appear in early Nightmare.
Holy Bolt - 1
Charge - 1
Blessed Hammer - 1
Holy Shield - 5
At level fifty-four Holy Shield is added to the character's skill arsenal. While in Normal blocking isn't very important, this changes as the character progresses through Nightmare and all the way through Hell. Level five, with plus skills, should be fine to allow the character to obtain maximum blocking percentage without too many stat points invested into Dexterity.
Holy Shock - 20
By level seventy-one Holy Shock is maxed out and providing a decent amount of damage. Holy Frost will be the main aura so that all monsters are slowed, even if they are cold immune, which increases the characters survivability. The aura can be switched easily to Holy Shock when cold immunes are encountered. From here on out all extra skill points are placed in the Lightning Resist skill as a synergy to Holy Shock. By level eighty the damage of Holy Shock will be greater than Holy Freeze, however I still prefer Holy Freeze as the main aura for the slowing effect. This also allows the character time to review the threat faced before deciding on a course of action.
Final Skill Distribution:
Holy Freeze - 20
Holy Shock - 20
Resist Cold - 20
Zeal - 4
Holy Shield - 5
Salvation - 1
Resist Lightning - rest
Wednesday, September 10, 2008
Java: Character Simulator Update #8
I had a decision to make as to whether to create a Runeword Wizard or finish the character simulator part of CharSi. I know that were I to start the character part I wouldn't be finished for quite a while. Since I already have a decent idea how to make the runeword wizard I decided that was the application I would work on. It is still going to be part of the overall CharSi program, but more of an add-on than an integral part since it won't interact with any other tabs.

I have a general idea as to what type of information was needed to perform the runeword query properly. After I had my list created I reviewed an online runeword calculator to ensure I didn't miss anything important. From that version I added the Paladin only aura runeword option, but that was all. The online version has some modifiers I can't see myself using, and since this is primarily for my personal use I'm not adding them in.
So then it was off to create the look-and-feel portion of the program. I created a separate JPanel for each section to be combined at the end into a single JPanel. I borrowed code from a few earlier programs to speed up the process, no need to recreate the wheel all over again. Specifically I am using a JList and JTextArea panel from the equipment tabs of CharSi. Virtually a cut-and-paste operation with only a few variable names changed. Also utilizing the Rune JPanel from the AMAS program, with a few modifications. The columns were changed from three to two and I needed to use a different constructor for the JCheckBoxes.
Actually it's a different component all together to be honest. Also needed to set their value upon initialization as I wanted all of the rune options to be initially checked. As a result had to borrow all of the rune images as well to include with the JPanel.
As it turned out the only pieces that had to be created from scratch were the query modifiers. Once that was all done the separate JPanels were grouped together using GroupLayout to display correctly. Now I need to look into how I want to handle the queries, and how to store the runeword information so that the information displayed is accurate. I'm considering an array of arrays so that For and While loops can be used rather than a separate instance for each runeword.

I have a general idea as to what type of information was needed to perform the runeword query properly. After I had my list created I reviewed an online runeword calculator to ensure I didn't miss anything important. From that version I added the Paladin only aura runeword option, but that was all. The online version has some modifiers I can't see myself using, and since this is primarily for my personal use I'm not adding them in.
So then it was off to create the look-and-feel portion of the program. I created a separate JPanel for each section to be combined at the end into a single JPanel. I borrowed code from a few earlier programs to speed up the process, no need to recreate the wheel all over again. Specifically I am using a JList and JTextArea panel from the equipment tabs of CharSi. Virtually a cut-and-paste operation with only a few variable names changed. Also utilizing the Rune JPanel from the AMAS program, with a few modifications. The columns were changed from three to two and I needed to use a different constructor for the JCheckBoxes.
JCheckBoxMenuItem (String text, Icon icon, boolean b)
Actually it's a different component all together to be honest. Also needed to set their value upon initialization as I wanted all of the rune options to be initially checked. As a result had to borrow all of the rune images as well to include with the JPanel.
As it turned out the only pieces that had to be created from scratch were the query modifiers. Once that was all done the separate JPanels were grouped together using GroupLayout to display correctly. Now I need to look into how I want to handle the queries, and how to store the runeword information so that the information displayed is accurate. I'm considering an array of arrays so that For and While loops can be used rather than a separate instance for each runeword.
Subscribe to:
Posts (Atom)