@Override
	public boolean okMessage(final Environmental myHost, final CMMsg msg)
	{
		if(!super.okMessage(myHost,msg))
			return false;

		if((msg.targetMinor()==CMMsg.TYP_DAMAGE)
		&&(msg.tool() instanceof AmmunitionWeapon)
		&&(CMLib.combat().isAShipSiegeWeapon((Item)msg.tool()))
		&&(affected instanceof MOB)
		&&(((MOB)affected).location()==CMLib.map().roomLocation(msg.tool()))
		&&(msg.value()>0))
		{
			msg.setValue(msg.value()+((int)Math.round(CMath.mul(5+(2*getX3Level((MOB)affected)),CMath.div(proficiency(),100.0)))));
			if(CMLib.dice().rollPercentage()<10)
				helpProficiency((MOB)affected, 0);
		}
		return true;
	}