Bug - Fixed Pigsticker of Violence messes up maximizer results

bsander

Member
Not sure whether to file this as a bug or feature because technically this functions correctly, but I believe it does break regular player expectations.

The pigsticker of violence is a ranged weapon which bases its damage on the player's muscle. That means that maximizing something like "mox, -melee, weapon dmg, ranged dmg, elemental dmg", which normally generates a usable plinking-style configuration, suddenly isn't effective anymore because the pigsticker ranks high in that formula, but may only generate glancing blows when actually used in combat.

I'm not really sure what the preferred way to fix this is, maybe a dynamic change to the weapon dmg property based on the players muscle? But it sure would be great if somehow this anomaly could be considered in the maximizer's calculations! (I know i can explicitly add "-equip pigsticker" every time but that kinda sucks)
 

Bale

Minion
According to the wiki, not just damage, but hit chance is based on muscle.

So the only way that this is a ranged weapon is the damage bonuses that apply to it? Since there are fairly few enchantments which affect ranged damage without also affecting melee damage I suspect this can be 95% fixed by just calling it a melee weapon.
 

lostcalpolydude

Developer
Staff member
Ranged vs. melee also affects dual-wielding. I'm guessing the other slot needs to be a ranged weapon still, but I can't test that myself.
 

Veracity

Developer
Staff member
Well, poo. Last night after rollover, I freed the king, went into the Sea, got a Pigsticker, ascended, and went to bed.

Had I waited until I got up this morning to ascend, I'd be able to experiment with the Pigsticker right now. As it is, it will have to wait until Saturday.
 

Veracity

Developer
Staff member
The pigsticker of violence is a ranged weapon which bases its damage on the player's muscle.
Like all weapons, ranged or melee, right? MUS is the only ability score I see anywhere in the damage formula.

According to the wiki, not just damage, but hit chance is based on muscle.
The discussion page on the Wiki says that the person who discovered this reported it in-game as a bug. That seems like the correct response. On the other hand, I would say that putting special code in the Maximizer to work around this KoL bug would be an incorrect response, since we will have to go and remove it - when somebody writes another bug report here :) - when KoL fixes the real bug.
 

Veracity

Developer
Staff member
Thanks.

And if the Pigsticker of Violence is a ranged weapon which does not behave that way, that is a KoL bug.
 

Fluxxdog

Active member
That post is two months old. How hard could it be to make it work like normal?
Easy for you or me to say. ;)
Being a developer, I'd think you'd have a little more insight as to how easy it would be ^^ But yeah, if we got our hands on KoL's code, how long would it take for us to figure it out?

I'd put out a bug report, but I haven't even gone in the sea yet. Haven't had the compulsion yet.
 

Veracity

Developer
Staff member
I've been 7 times through the Scholar path and 6 times through the Gladiator path. Tomorrow, I will see Dad Sea Monkee for the first time. I'm enjoying the new Sea, although I expect I'll be tired of it by the time I finish the requisite 27 runs to end up with all the outfits and all the factoids.

Unfortunately, I crafted my Pigsticker into a Stick Knife of Loathing and it will be several more runs before I replace it.

Perhaps somebody else here could submit a bug report...
 

Crowther

Active member
Being a developer, I'd think you'd have a little more insight as to how easy it would be ^^ But yeah, if we got our hands on KoL's code, how long would it take for us to figure it out?
I get enough fun supporting code by amateur programmers. I like to be able to rant about it. I guess you don't. Here's a great one:
Code:
        for(region=0;region<buffsize;region++)  //region temporarily being used as a counter due to laziness.
Yes, he was too lazy to write "int hpos;" and so used the wrong variable with a longer name and wrote a significantly longer comment about it. WTF? This guy pretty much never has a variable with a name that matches what it does. Often they are misleadingly wrong.
 

Fluxxdog

Active member
I don't mean bad code writing, I mean being able to determine the flow of all his code. Jick is (hopefully) not an amateur.

BTW, supporting? You work in debugging or teaching?
 

Crowther

Active member
I don't mean bad code writing, I mean being able to determine the flow of all his code. Jick is (hopefully) not an amateur.
Jick was certainly an amateur when he started and I've heard there's still plenty of code left over from then.
BTW, supporting? You work in debugging or teaching?
I work at an academic lab. I sling data. I help students with their work. I have students working for me at times. I work with scientists and engineers too. Sometimes they program, always poorly. If what they develop is useful, I'm the one who extends it, makes it efficient and keeps it running years later. The example above is from a student I failed to mentor properly. I've done everything from designing hardware and real time systems to processing data on a super computer. I've done plenty of field work and worked with instruments costing millions of dollars. I could make lots more money at a industry job, but I'd never enjoy it nearly as much. A few years back we hired a programmer with more professional experience than me. It's great fun not being the fussiest anymore. He switch me from RCS to Mercurial. I was having trouble getting anyone else to use revision control at all.
 

roippi

Developer
The thing about Jick is that he just doesn't think like a computer programmer/engineer.

One of the things I learned early on in programming is that you should always be lazy. Always make things as easy on yourself as possible. If you find yourself doing something 10 times, stop and write yourself a thing that does the thing for you. Or, better, google it and find that someone has already solved your problem for you.

There's lots of examples of this in KoL - for years, every monster in KoL had to be hand-entered into their database. Then someone went "hey, Jick, we should have a program that does this for us" so they wrote a monster spooler that prompts you for all the esoteric stuff that each monster needs (see: wax lips messages). Now, relatively few monsters show up with missing info because they have a tool that does the heavy lifting, but this was not always the case.

Jick just doesn't think like this. It's not that he wants his life to be hard, he just doesn't stop and worry about things like code maintainability, how much work he just made for himself over the next year, etc. He just never developed those habits. Hell, I swear that he still codes HTML in notepad. We see tags like <centeR></center> all the time.
 
Top