Bug - Fixed Decorating pirates uses wrong check for whether pirate is insultable.

Veracity

Developer
Staff member
Can you use the Pirate Insult Book on Dinsey pirates? I noticed that when I fought some today it decorated them with the number of insults I'd learned. Unfortunately, I did not try using my insult book to see if they'd come back with a rejoinder. I'll try tomorrow, but I would guess not, based on the following method from FightRequest.java:

Code:
	public static final boolean isPirate()
	{
		AreaCombatData barr = AdventureDatabase.getAreaCombatData( "Barrrney's Barrr" );
		AreaCombatData belowdecks = AdventureDatabase.getAreaCombatData( "Belowdecks" );
		AreaCombatData cove = AdventureDatabase.getAreaCombatData( "The Obligatory Pirate's Cove" );
		AreaCombatData fcle = AdventureDatabase.getAreaCombatData( "The F'c'le" );
		AreaCombatData poopDeck = AdventureDatabase.getAreaCombatData( "The Poop Deck" );
		
		MonsterData monster = MonsterStatusTracker.getLastMonster();
		
		return ( barr.hasMonster( monster ) ||
			 belowdecks.hasMonster( monster ) ||
			 cove.hasMonster( monster ) ||
			 fcle.hasMonster( monster ) ||
			 poopDeck.hasMonster( monster ) );
	}
I think I'd rewrite that to have less processing - why fetch the combat data for all the areas, when the || is capable of short-circuiting the processing? - but this seems to indicate that only pirates at the Cove banter with you. Presumably, RequestEditorKit should adjust to use this method (or something based on it), rather than the following:

Code:
		if ( monsterName.contains( "pirate" ) && !monsterName.equals( "stone temple pirate" ) )
		{
			int count = BeerPongRequest.countPirateInsults();
			monsterData.append( ", Insults: ");
			monsterData.append( count );
			monsterData.append( " (");
			float odds = BeerPongRequest.pirateInsultOdds( count ) * 100.0f;
			monsterData.append( KoLConstants.FLOAT_FORMAT.format( odds ) );
			monsterData.append( "%)");
		}
 
Revision 15759 makes decoration use FightRequest.isPirate, which I also improved as described.
Tomorrow I will verify that Dinsey pirates are not insultable.
Unless they are, in which case, I will adjust isPirate.
Unless that would be a KoL bug.
 
Jick talked about changing it on the latest radio show, and I responded in /dev by telling him that it wouldn't be a good change. Reducing the turncount for the pirate path when he wants people to go copperhead route doesn't make any sense (and I think it reduces the strategy involved there). Ideally, I think any monster in the pirate phylum that isn't on the hardcoded list should give some different message about why the insult book doesn't work, but that's just narrative.
 
Strategy, sure, since you wouldn't need a boat - but turn count? Not doubting you, I'm just having a lack of imagination at the moment.
 
Strategy, sure, since you wouldn't need a boat - but turn count? Not doubting you, I'm just having a lack of imagination at the moment.

You get more stats from dinsey pirates, and you can guarantee that you won't run into any unwanted noncombats. Being able to wear whatever gear you want and always getting the jump are nice bonuses too.
 
Though it'd only be a good place to go after you have the captain's map, which is often after collecting enough insults, so it's not going to be a great turnsaver.
 
In any case, I have verified that we do not decorate Dinsey pirates with insults and do not fail to decorate Cove pirates with insults, so, this is fixed.
 
Back
Top