Mafia's Code

From Kolmafia
Revision as of 17:18, 1 February 2010 by imported>Bumcheekcity
Jump to navigation Jump to search

Character

Under Hardcore or Ronin

KoLCharacter.canInteract();

This function returns true if the character is out of Hardcore or Ronin, false otherwise. It is essentially used to check mall access.

Items

Check if we have a certain Item

We can either use:

InventoryManager.hasItem( final int itemId )	
InventoryManager.hasItem( final int itemId, boolean shouldCreate )
InventoryManager.hasItem( final AdventureResult item )
InventoryManager.hasItem( final AdventureResult item, final boolean shouldCreate )

InventoryManager.hasItem( 1650, true );
InventoryManager.hasItem( ItemPool.MILK_OF_MAGNESIUM, true );

Essentially the top three overloaded functions call the bottom function, telling it NOT to create the item.

Setting "shouldCreate" to true will NOT create the item, instead it will find out if you COULD create the item.

hasItem() will return true if you have the item, or could create it and specify shouldCreate to be true.

The Item Pool

The Item Pool, at /objectpool/itempool/ItemPool.java is primarily a list of items, mapped to their item number. Its purpose is to make code more readable. ItemPool.UNDERWORLD_ACORN is much more obvious than "4274".

Effects

See if we are under the effects of Ode or Got Milk

KoLConstants.activeEffects.contains( ItemDatabase.ODE );
KoLConstants.activeEffects.contains( ItemDatabase.MILK );

Both of these are boolean variables.

Iteracting with the Player

A Yes/No dialogue box

if ( !InputFieldUtilities.confirm( "Are you sure you want to drink without ode?" ) )
{
	return false;
}

Is the Script being run unattended?

If Mafia is being run from the command line, or similar, a user may not be able to see, let alone answer, dialogue boxes. In this case:

StaticEntity.isHeadless()

returns true if the user can not respond to dialogue boxes.